element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • 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 & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • 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
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • 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
Raspberry Pi Projects
  • Products
  • Raspberry Pi
  • Raspberry Pi Projects
  • More
  • Cancel
Raspberry Pi Projects
Blog Custom Manufactured RP2040 Boards, Part 3 - Final Results
  • Blog
  • Documents
  • Events
  • Polls
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi Projects to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: shabaz
  • Date Created: 6 Jul 2026 6:42 PM Date Created
  • Views 248 views
  • Likes 9 likes
  • Comments 23 comments
  • kicad
  • pico
  • PCB production
  • pcb assembly
  • rpiexpert
  • rp2040
  • raspberry_pi_projects
  • production
  • pi pico
Related
Recommended

Custom Manufactured RP2040 Boards, Part 3 - Final Results

shabaz
shabaz
6 Jul 2026


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:

image

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.

image

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

image

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! 

image

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.

image

Here is the underside:

image

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.

image

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.

image

 

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!

  • Sign in to reply
Parents
  • shabaz
    shabaz 4 days ago

    Time to work on the enclosure; I really like the Multicomp G403 enclosures, and the PCB had been designed to fit that. The only minor annoyance with that enclosure is that the end panels are not a simple shape. 

    With KiCad, it's not too difficult to create end panels. With calipers and a mobile phone, the procedure I tried was:

    (1) Take a photo of the end panel against a contrasting background. I used my mobile phone camera, but it's best to keep it some distance from the target, and zoom in (rather than bring the camera up close and zoom out), to reduce distortion which would not be good!

    (2) Use MS Paint, or PowerPoint, or any other image manipulation software, to first straighten the image if it's necessary, then crop it to the smallest rectangle that will fit the edges of the shape, and then "poster-ize" or do whatever you can, to make the edges very clear.

    (3) Use the calipers and measure the end panel piece, to the outermost edges, horizontally and vertically, and make a note of those two values.

    (4) Use KiCad's Image Converter app. Set the image size to precisely what was measured in step 3! Then pick a temporary layer of your choice, and Export to Clipboard.

    image

    (5) Go into the Footprint Editor and create a new footprint. Now just set the grid to something fine (like 0.1 mm) and use the line tool, and trace out half the shape. Then, group it, copy it, and then flip it horizontally, and then drag it so that it connects precisely. Ungroup, and then change the lines (using the Properties panel) to become 0.05mm Edge.Cuts lines instead. You can now check with the 3D viewer, that all the lines did indeed connect, such that the Edge.Cuts layer becomes a complete board outline. You can now delete the content off the temporary image layer that was used.

    image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • shabaz
    shabaz 4 days ago

    Time to work on the enclosure; I really like the Multicomp G403 enclosures, and the PCB had been designed to fit that. The only minor annoyance with that enclosure is that the end panels are not a simple shape. 

    With KiCad, it's not too difficult to create end panels. With calipers and a mobile phone, the procedure I tried was:

    (1) Take a photo of the end panel against a contrasting background. I used my mobile phone camera, but it's best to keep it some distance from the target, and zoom in (rather than bring the camera up close and zoom out), to reduce distortion which would not be good!

    (2) Use MS Paint, or PowerPoint, or any other image manipulation software, to first straighten the image if it's necessary, then crop it to the smallest rectangle that will fit the edges of the shape, and then "poster-ize" or do whatever you can, to make the edges very clear.

    (3) Use the calipers and measure the end panel piece, to the outermost edges, horizontally and vertically, and make a note of those two values.

    (4) Use KiCad's Image Converter app. Set the image size to precisely what was measured in step 3! Then pick a temporary layer of your choice, and Export to Clipboard.

    image

    (5) Go into the Footprint Editor and create a new footprint. Now just set the grid to something fine (like 0.1 mm) and use the line tool, and trace out half the shape. Then, group it, copy it, and then flip it horizontally, and then drag it so that it connects precisely. Ungroup, and then change the lines (using the Properties panel) to become 0.05mm Edge.Cuts lines instead. You can now check with the 3D viewer, that all the lines did indeed connect, such that the Edge.Cuts layer becomes a complete board outline. You can now delete the content off the temporary image layer that was used.

    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 © 2026 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.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube