Maker.io main logo

Hardware Design with the RP2040 Part 3: Soldering and Testing

2021-07-06 | By ShawnHymel

License: Attribution

Previously,‌ ‌we‌ ‌talked‌ ‌about‌ ‌how‌ ‌to‌ ‌create‌ ‌a‌ layout ‌for‌ ‌your‌ ‌own‌ ‌RP2040-based‌ ‌PCB‌ ‌design.‌ ‌ ‌

 ‌In‌ this follow-on article, I'll show you some tips for soldering and reworking the Raspberry Pi RP2040 and some lessons learned on component selection.

 ‌The‌ ‌board‌ ‌schematic‌ ‌and‌ ‌layout‌ ‌files‌ ‌(created‌ ‌in‌ ‌KiCad‌ ‌v5.1)‌ ‌can‌ ‌be‌ ‌found‌ ‌here:‌ ‌

https://github.com/ShawnHymel/rpi-pico-debugger-shoe‌

 ‌See‌ ‌here‌ ‌if‌ ‌you‌ ‌would‌ ‌like‌ ‌to‌ ‌view‌ ‌this‌ ‌content‌ ‌in‌ ‌video‌ ‌form:‌ ‌

 

Recommended Reading

Before getting started, we highly recommend going over some documents (or videos) or having them handy to use as a reference:

Soldering with a Reflow Oven

I used a stencil ordered from OSH Stencils to apply solder paste. I put a bead of solder paste on top of the stencil and swiped it using the provided spreader (a credit card would also work).

Swiping solder paste on stencil

Once done, I carefully lifted the stencil and placed the parts on their associated footprints. You can see from the image that I used 3 other boards to create a jig to hold the PCB in place while I applied solder paste and populated the components.

Populating PCB with RP2040 and components

From there, I put the populated PCB into my reflow oven. The oven in the photo is a modified toaster oven using the Whizoo Controleo3 kit.

Reflow soldering in a modified toaster oven

I let the oven run the lead-free soldering profile. When it was done, I removed the board using some pliers (careful, the board and oven will still be hot!).

Inspection and Rework

I used a loupe and my camera’s macro lens to inspect the solder work. My oven seems to run a little hot, which is why I think there is some discoloration on the solder mask and joints. Additionally, I noticed some bridging between connections on the RP2040 QFN package.

Visible solder bridges on QFN

There are a few ways to fix bridging on a QFN. The first possible technique is to reseat the part using a hot air reflow station. Flux all the pins and pre-soak the board for a couple of minutes using hot air from the station (or a hot plate, if you have one). 

Next, slowly bring the nozzle down to about 0.5 - 0.75 inches away from the component while circling it around the edges of the part. The solder should reflow, allowing you to tap it lightly with some tweezers. This should break and reform any solder joints.

Reseating QFN with hot air rework station

Slowly lift the nozzle away from the component making the same small circles. Let the board cool and then clean off any residual flux as needed.

You can also flux one of the sides where you see bridging. Use a clean (and shiny) small conical or chisel tip on a soldering iron to break the bridges by dragging it across the row of pins and pads.

Repairing bridged solder joints on QFN

Testing and Memory Issues

The RP2040 comes with the UF2 bootloader out of the box, which means if you place the part into bootloader mode, it will enumerate on your computer as a mass storage device.

I discovered that while the UF2 bootloader works, I could not run programs from the flash memory. As it turns out, my Macronix flash chip was not a true drop-in replacement for the Winbond part. To use the Macronix, I would need to re-write some header files for the board definition package in order to get the execute in place (XIP) working. That is a project for a future time.

Instead, I ordered some Winbond flash memory chips and replaced the Macronix chip with one.

Removing quad-SPI flash chip from RP2040 board

This allowed me to successfully upload programs and run them from the flash memory chip.

With everything working, I soldered pass-through/stacking headers to my board so that I could place a Raspberry Pi Pico on top of it.

RP2040 board with stacking headers

I connected the SWD debugging pins using some simple jumper wires.

Raspberry Pi Pico stacked on top of Debugger Shoe

From there, I could load a program in debugging mode using VS Code.

Debugging RP2040 in VS Code

This allowed me to perform step-through debugging of my target Raspberry Pi Pico!

Flashing LED on Raspberry Pi Pico

Conclusion

I hope these guides have helped you (or at least inspired you) to create your own RP2040-based PCB. Soldering the QFN can be tricky, but it can be done with the right tools!

Recommended Reading

TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum