Design and Build Your Own Custom RP2040 Dev Board

By Jeremy S. Cook

Freelance Tech Journalist / Technical Writer, Engineering Consultant

Jeremy Cook Consulting

September 08, 2023

Blog

Image Credit: Jeremy Cook

The Raspberry Pi Pico, Pico W, and other boards based on the RP2040 present a wide range of use possibilities. At the same time, this limits you to what is currently on the market. Perhaps you want something like a Pico, but with 8MB of Flash, a USB-C port, and mounting holes. Or, maybe you’d like to integrate a bare RP2040 and associated components into your larger design.

While one might consider a fully customized layout to be the ultimate goal of dev boards, getting this right does take a bit of work. In this series, I’ll go over what’s involved in designing and assembling your own board, what not to do, and the not-to-be-overlooked software challenges that you’ll face when integrating an RP2040 chip directly.

What’s Required

For your custom RP2040 board, you’ll need to integrate the following components:

  • RP2040 chip
  • Decoupling capacitors for RP2040
  • Flash chip
  • Button or other boot select method for Flash programming
  • USB receptacle
  • 12 MHz crystal
  • 3.3V Power Supply
  • Assorted passives required for devices listed.

You may also want to add a transient voltage suppression (TVS) diode to account for electrostatic discharge (ESD) at the USB input. This one worked nicely in my design. I also added a secondary battery input plus Schottky diodes to avoid power reversal.

Image Credit: Jeremy Cook

 

Reference Design

Raspberry Pi actually has very good documentation on setting up a custom board using this chip. Here you can find the RP2040 datasheet, along with a hardware design guide with several examples, and a KiCad-format minimal viable board design.

The hardware design guide is probably the best place to start in your RP2040 journey, followed by downloading and poking around in the KiCad design. I’d also recommend this Technoblogy post as a good secondary example, as well as this video by Shawn Hymel where he goes through the design process.

Layout Considerations

Image Credit: Jeremy Cook

 

The interesting and challenging thing about creating a dev board is that you don’t just need to connect traces, but you need to do so in an efficient way that minimizes undesirable capacitance and inductance. While I’m far from an expert in dev board layout, here are a few techniques that I used to help ensure a viable design:

  • Minimize trace lengths when possible, especially for decoupling capacitors
  • Use stitching vias between upper and lower ground planes, especially where capacitors are grounded
  • 3.3V Power comes from a central point and branches off in what one might loosely call an “F” configuration
  • Exclude copper pour from area around crystal to avoid ringing effect
  • Exact same oscillator as reference design (Abracon ABLS-12.000MHZ-B4-T). You may wish to use a different device.

Notably, the RP2040 reference design connects 3.3V to the top fill plane, which might initially seem like a good idea. At the same time, it’s notable that the actual Pico production boards instead use ground planes on the top and bottom. After some experimentation, I settled on a dual top-bottom ground plane design a la the Pico, along with a branching 3.3V power bus.

Another point discussed in Hymel’s video is that the USB traces need to be balanced. While this is certainly true at a certain length, in my design I made the distance between the USB port and RP2040 µC short enough that there’s very little to balance–especially after the resistors and TVS diode are added.

Perhaps if you make traces short enough that you can’t worry about it, then don’t worry about it. I’m not sure if that’s an acceptable design mantra, but it seems to have worked in this case. I’m open to suggestions (hi at jeremyscook.com).

Great Success!

After much studying, a non-quite-right PCB iteration that I’ll discuss in my next post, and lots of feedback during the process, I now have a board that I’m quite proud of. The board is shown blinking away in the clip below, and the PCB design is available here for your reference.

This journey started from my first PCB–and really much earlier–and involved countless hours of work for this board specifically. At the end of the day, you may be better served integrating a Pico or Pico W (with their convenient castellated pads) as I did in this RP20-Footie project. This will, however, limit you to using existing boards in your new device!

Jeremy Cook is a freelance tech journalist and engineering consultant with over 10 years of factory automation experience. An avid maker and experimenter, you can follow him on Twitter, or see his electromechanical exploits on the Jeremy S. Cook YouTube Channel!

More from Jeremy