element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Project Videos
  • Challenges & Projects
  • element14 presents
  • Project Videos
  • More
  • Cancel
Project Videos
Documents RP2040 PCB: Design, Turn-On, and Debug - How Hard Could It Be? -- Episode-638
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Project Videos to participate - click to join for free!
Related
Recommended
Engagement
  • Author Author: tariq.ahmad
  • Date Created: 11 Jan 2024 5:01 PM Date Created
  • Last Updated Last Updated: 11 Jan 2024 5:08 PM
  • Views 4350 views
  • Likes 10 likes
  • Comments 8 comments

RP2040 PCB: Design, Turn-On, and Debug - How Hard Could It Be? -- Episode-638

James originally intended to make a video about a tool called a "State Mode Logic Analyzer." One of its core components is the RP2040 from Raspberry Pi and its programmable IO (PIO) modules. However, getting the RP2040s to work on the custom-made PCBs turned out to be a chore. Instead, James shares soldering RP2040 (QFN) techniques, easy-to-solder parts for RP2040 designs, and what to debug when turning on custom microcontroller boards. After all, how hard can it be to make a custom RP2040 PCB? 

Watch the Video:

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Links and Downloads | Bill of Material | Discussion

Custom RP2040 Design Tips 

image

The Pi Pico microcontroller (MCU) board features an RP2040. While the Pico is very easy to solder, even for inexperienced engineers, the RP2040's QFN-56 is not as forgiving. So, James opens the video by showing how to solder a QFN using hot air (from the board's back) and a little bit of practice. The techniques are not perfect and do not work 100% of the time, but they do demonstrate it is possible for novices to work with the QFN. 

image

The example design here uses a linear regulator to drop USB's 5 volts down to 3.3 volts. Then, the RP2040's built-in linear regulator generates 1.1 volts for its logic core. James makes a point regarding the decoupling capacitors. The reference design in Raspberry Pi's "Hardware Design with RP2040" PDF shows many more capacitors than James used. The rationale is that he prefers larger 0603 and 0805 capacitors. So, there is not enough room for many 100 nanofarad caps. As explained in the article "The Myth of Three Capacitors," the multilayer nature of ceramic capacitors (MLCCs) already have multiple capacitors in parallel. (Reminder: James invites you to discuss this decision in the comments below! 

image

James uses an external programmer to load binary code into the custom RP2040 PCB's flash memory. In his case, he has a Segger J-LINK Mini (EDU edition). However, you can PicoProbe with another Pi Pico or Raspberry Pi's Pico Debug tool. Using an external programmer provides two advantages. First, they can access the RP2040's on-chip debugger so you can set breakpoints, step through code, and examine memory. Second, if the RP2040's USB bootloader does not work (or is not available), they offer another way to program the chip (or its EEPROM.) 

image

Raspberry Pi chose not to include a RESET button on the Pi Pico. This means you must hold the BOOTSEL button while cycling the USB connector to put the RP2040 into bootloader mode. James recommends both a RESET and BOOTSEL button in custom RP2040 PCB designs. That way, it is very easy to bootload the chip. And even if you do not plan to make use of the USB bootloader, at least consider putting solder jumpers so you can short them easily. 

image

Keep in mind that James provided a link below to the project used in this video. You can use the design as a starting point for a custom RP2040 circuit. His design is based on the reference design from Raspberry Pi. However, the KiCad file contains part numbers (and Newark SKUs) for the actual parts he uses often. Except for the RP2040's QFN, he finds these parts are easier to solder than the 0402s and 0201s of the reference. 

Turn-On

image

The last section of the video shows James turning on four copies of this custom RP2040 design. James always reflow solders at least two copies of a PCB. However, for this project, he did four because the PCBs are two different circuits. (The RP2040 area is the same. There are additional chips that have two different functions.) But that explanation must wait for a future video.

image

During this troubleshooting section, James finds a handful of solder issues. One issue was a solder blob that shorted the 1.1 volt and 3.3 volt rails together. James found the USB port also had shorted connections after Windows complained about a failed USB device. Another board had a very strange issue where it worked for a short time and then stopped responding to USB. Board #3 displayed a behavior where it would reboot into bootloader mode when programmed via SWD and by USB. The issue was, once again, some bad solder joints. James used an oscilloscope to watch the EEPROM's Chip Select (CS) line and then two of the data signals. One of the data signals was not connected. 

image

After troubleshooting all of the issues on the custom RP2040 PCBs, James had two fully functional boards. His final demonstration was to run an I2C program on one of them. This program attempts to read from all valid I2C addresses to see if a device responds. Then, it prints an ASCII table over serial showing what it found. This scanner cannot identify the ICs, but it can at least tell if they are responding. And... they were! The board tested has three ICs on it, but only two are connected to the I2C bus. 

image

James closes the video by commenting that creating and turning on a custom RP2040-based circuit can be easy. Then he adds, as long as you know where to look for the problems! Let us know what you think and if you have any RP2040 turn-on tips to share with the element14 Community! 

Links and Downloads:

  • Download Schematics and CAD Files!
  •  Pros and Cons of Low-Temp Solder Paste - Workbench Wednesdays 46 
  •  Desoldering Wick Tips and Tricks with Superwick - Workbench Wednesdays 37 
  •  Twin Lead Oscilloscope Probe Adapters (Ditch the Aligator Clips) - Workbench Wednesdays 73 
  •  How to Decide Which Type of Flux to Use and How to Use Flux! - Workbench Wednesdays 59  
  •  Why You Need a Raspberry Pi Pico Development Board by Shabaz - Workbench Wednesdays 70  
  • Pi Pico One-Click Installer for Windows and VSCode
  • Hardware design with RP2040 (PDF)
  • The Myth of 3 Capacitor Values

Bill of Material:

Product Name Quantity Buy Kit
RP2040, 32-bit dual-core Arm Cortex-M0+ 1 Buy Now
PCB Test Point, S1751 Series, Surface Mount, Brass, Tin Plated Contacts 5 Buy Now
TACTILE SWITCH, SPST, 0.05A, 16VDC, SMD 1 Buy Now
Tactile Switch, SPST-NO, PTS810 Series, Top Actuated, Surface Mount, Oval Button, 600 gf 1 Buy Now
Flash Memory, Serial NOR, 128 Mbit, 16M x 8bit, SPI, SOIC, 8 Pins 1 Buy Now
CRYSTAL, 12MHZ, 18PF, SMD, 3.2MM X 2.5MM ROHS COMPLIANT: YES 1 Buy Now
Fixed LDO Voltage Regulator, 2.3V to 6V, 250mV Dropout, 3.3Vout, 1Aout, SOT-223-3 RoHS Compliant: Yes 1 Buy Now
USB Connector, 5A, 48V, 240W, 0.6mm, USB Type C, USB 2.0, Receptacle, 16 Positions 1 Buy Now
ESD Protection Device, TVS, 335 mW, 7 V, SOT-353, 5 RoHS Compliant: Yes 1 Buy Now
SMD Multilayer Ceramic Capacitor, 10 µF, 16 V, 0805 [2012 Metric], ± 10%, X7R, CL Series 10 Buy Now
SMD Multilayer Ceramic Capacitor, 27 pF, 50 V, 0603 [1608 Metric], ± 10%, C0G / NP0 2 Buy Now
SMD Chip Resistor, 5.1 kohm, ± 5%, 100 mW, 0603 [1608 Metric], Thick Film, General Purpose 2 Buy Now
RP2040 Xiao 1 Buy Now
Pi Pico Debug Probe 1 Buy Now
PTS525 - Hand solderable SMT Switch 1 Buy Now
J-Link Mini EDU 1 Buy Now
 


element14 presents

element14 presents  |  About James |  Project Videos

  • RP2040 logic analyzer
  • Custom RP2040 PCB
  • Custom microcontroller board tutorial
  • KiCad RP2040 design
  • RP2040 troubleshooting
  • RP2040 QFN soldering
  • RP2040 turn-on tips
  • RP2040 programming tutorial
  • Raspberry Pi Pico projects
  • e14p_JBE
  • Soldering RP2040 components
  • raspberry pi
  • pcb turn-on
  • rp2040
  • debugging rp2040
  • RP2040 design tips
  • debug pcb
  • custom pcb
  • Segger J-LINK Mini programming
  • RP2040 GPIO programming
  • friday_release
  • RP2040 soldering techniques
  • RP2040 PCB troubleshooting
  • Share
  • History
  • More
  • Cancel
Actions
  • Share
  • More
  • Cancel
  • Sign in to reply
Parents
  • misaz
    misaz over 1 year ago

    Nice video but, are you sure that loading 1V1 rail by LED is good idea?

    I think there two issues:

    1) I am not exactly sure about RP2040, but in most cases LDO for CPU core voltage usualy should not be loadeded externally at all.

    2) 1.1V is below most LEDs forward voltage, so it most probably will not light up even proper voltage is provided (but at least they do not load supply much).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • baldengineer
    baldengineer over 1 year ago in reply to misaz

    Regarding #1, I had not considered that point! You are very likely correct. I should look closer at what the specs are for that LDO.

    However, regarding #2, I realized that while I was loading the boards. On one (or two), I put the LEDs on. The rest, I didn't bother because I knew they weren't going to work. I just added it to the schematic without thinking (at all.)

    It's also why we added the "LOL" and the comment I made immediately after showing the schematic...

    image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • baldengineer
    baldengineer over 1 year ago in reply to misaz

    Regarding #1, I had not considered that point! You are very likely correct. I should look closer at what the specs are for that LDO.

    However, regarding #2, I realized that while I was loading the boards. On one (or two), I put the LEDs on. The rest, I didn't bother because I knew they weren't going to work. I just added it to the schematic without thinking (at all.)

    It's also why we added the "LOL" and the comment I made immediately after showing the schematic...

    image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube