I wanted to make a custom RP2040 microcontroller-based project, and in Part 1 it was discussed how the schematic and PCB files of Raspberry Pi’s custom minimal RP2040 project were adapted and modified.
In Part 2, the PCB layout was improved for manufacturability, and the PCB assembly order was sent to a manufacturer, to produce ten of the boards.
This final Part 3 discusses the results; in brief, the boards functioned, which was a relief!
This morning the following small bundle was received, inside a box:

All the assembled boards were secured with tape on the underside. The amount of bubble-wrap was more than adequate, all the boards look great.

The first thing I did was to examine a sample board, to ensure components were oriented the correct way.

I'm glad we had an 0402 parts discussion, and the results of that can be seen in the photo below. I have not got out the protractor and set-square, but I think those parts are textbook-grade aligned!

The PCB is not densely populated, so there was space for very large component reference silkscreen text. With the settings shown below, the text is extremely readable in my opinion.

Here is the underside:

A through-hole USB-C connector was used (this cost a bit more for assembly as a result) but it was needed due to the particular enclosure I hope to use. The soldering looks good.

I don’t know how the through-hole soldering was done. The manufacturer portal indicated that the board went through a wave soldering process, but that would have solder-plugged the deliberately unpopulated through-hole pads that are on the board. Those through-hole pads are just lightly tinned, ready for inserting header pins if/when needed. Maybe the manufacturer masked the unpopulated through-hole pads.
For board bring-up some tests ought to be run first (and it would be very helpful to create some sort of a test jig), but I decided to just try one board immediately, since this isn’t a complex design. I held down the BOOTSEL button and plugged the USB cable into the PC. It was great to hear the Windows hardware detected sound, just as if it were a Pi Pico board that was plugged in!
The RP2040 has a built-in internal bootloader that makes the device appear as a file system, so all that is needed is to drag-and-drop the binary file onto the drive letter. A GPIO pin on the board is connected to an LED that is used for status, and it successfully lit up. I then ran some end-to-end tests (the board is an RS-485 adapter, so I tested that I could send and receive).
After that, it took just a couple of minutes to program up all the remainder boards in the same way. I have not tested these end-to-end, so for now I just observed that the status light was lit, which proves the CPU is running and that the USB connection is functioning.
The LEDs that were chosen are overly bright with the particular resistor values, but that's a minor issue. I should have also created a silkscreen location for serial numbers, but I forgot.

It is a relief that things have gone well. The changes made to the custom minimal project are published on GitHub (both myself and geralds contributed to the content there) so hopefully it can be useful to others looking to make custom RP2040 boards too (and it would be super-interesting to hear if anyone plans to do something similar).
If I were to do it again, I would put more thought into how I'd want to automate the testing, although for this simple design it is fast to manually run through a few tests.
This concludes the blog series, although some end panels need to be designed for the enclosure, and then do the final assembly.
Thanks for reading!
-
shabaz
-
Cancel
-
Vote Up
0
Vote Down
-
-
Sign in to reply
-
More
-
Cancel
Comment-
shabaz
-
Cancel
-
Vote Up
0
Vote Down
-
-
Sign in to reply
-
More
-
Cancel
Children