2016-02-10

This is the first PCB that I have designed and sent off to be manufactured.  Yesterday I received the boards, soldered them up, and they work!



This write-up outlines the process I used in the hope that it will be useful to other hobbyists and builders.  There are links at the end which provide additional detail.

Selecting a Project

The project consists of a small board with a MSP430G2553 microcontroller and an nRF24L01 radio.  I started with a radio attached with jumpers to a LaunchPad quite some time back and then built one on a proto-board.  The photograph below shows a G2553 with radio powered by a buck-boost converter attached to a super capacitor and solar panel.  I used it for a while with my weather station which never was quite completed.



Although I could have started with that, I actually chose to start with something simpler.  The goal was to focus on the PCB design process and to minimize the issues associated with a new or technically challenging project.  The objectives, strategies, and constraints I decided on included the following:

Inexpensive – around $10 in case it is a flop.  Also, I’m cheap.

Simple to do – use through-hole components that I’m familiar with in a familiar circuit.

Battery powered – easy to make work and inexpensive.

Small footprint – keeps the cost down.  I decided mine should fit on the battery holder

Note that some objectives might clash.  For example, it would be cheaper and result in a smaller footprint to use surface mounted components but in my case harder to solder.

Selecting a Design Tool

There are a number of design tools to choose from.  I looked into Eagle and KiCad since they seem to be widely used on amateur projects.  I ended up using KiCad for this project and despite some idiosyncrasies like it.   Due to limited experience I can’t recommend one over the other (or any of the others out there) but here are some general comments.

There are free restricted versions for many of the tools.  The restricted versions can be more than adequate for a hobbyist, but check that it will meet your needs.

Make sure there is online training if you are going to teach yourself.

Look to see if it has a community associated with the software that supports new users and hobbyists

Investigate how much error/design checking the software does

Check out the library of parts – you don’t want to create footprints and components if you don’t have to

Finally, make sure it can generate the files required by manufacturers you are likely to use.

Designing the Board

The software is all a little different and I won’t go into detail on the design process since there are good tutorials out there already.  But plan to spend time learning the following:

Drawing schematics

Using the parts library

Designing new component parts, or modifying existing ones

Using the design rule checks and resolving errors

Laying out components to minimize overall footprint and reduce trace length

Routing traces and using vias (for me, the most fun part)

Going back to the beginning and fixing the error you found when almost finished (or more likely when you get the fabricated board back).

Here are some screenshots from KiCad and views of the board ready to submit for fabrication.



Schematic - nice and simple

Completed Layout with Fills - meets all the design rules and no errors - oh yeah

3D Rendering in KiCad - kind of fun and helped me arrange a tidier package

Silk Screen and Graphics - PCBs have a geometric aesthetic that is pleasing I think

Bill of Maerials - $12 not counting shipping, almost met my cost target

Selecting a Manufacturer

My experience is limited to OSH Park who I was satisfied with.  But your choice will depend on location, layers, how many boards you want, and of course cost.  There is a link that may prove useful at the end of the post.

The Hardest Part

The hardest part for me was waiting 3 weeks for the boards to arrive.  But arrive they did.  Below, a photo of the boards and the basic materials for one unit.

Lessons Learned

The things I would pay more attention to and possibly change next time include:

Pay attention to all mechanical details (and don’t trust footprints you pull in from others).  The pins on the nRF24 were a bit too large for the holes I placed on the board.  I ended up filing the pin diameter down with small files and a bit of dremel work.

Have all components on hand before ordering the PCB – I ordered the components at the same time as the board, received the components, and waited 2 ½ weeks for the boards.  It would probably be wiser to order the parts as soon as the design is complete and print off a paper copy of the board after receiving parts to mock up and see how it all fits before ordering the board.

Add on/off switch – Battery removal and replacement is a pretty crude way to do it

Space the headers so they will accept a standard boosterpack

Add a user controlled button

Consider smaller / rechargeable batteries

Add voltage regulation / improper polarity protection

Add mounting holes

Use SMD parts

References and Links

Programming a MSP430G2 on a Breadboard by 43oh on 43oh:http://43oh.com/2011/11/tutorial-to-use-your-launchpad-as-a-programmer/

nRF24L01 Energia Library by spirilis on 43oh:  http://forum.43oh.com/topic/3237-energia-library-nordic-nrf24l01-library/

PCB calculators links in a thread started by zeke on 43oh: http://forum.43oh.com/topic/1248-pcb-calculator-programs/

Eagle tutorials at Sparkfun - do a search at their site.  I wasn't able to link.

“Kicad like a Pro” course on Udemy.  If you can get a (heavily) discounted price like I did it is worth it.

Checklist – do a google search, you might be surprised at how many of these you find. http://www-ppd.fnal.gov/EEDOffice-w/Projects/MicroBoone/EDR/Electronic_assemblies_checklist_062812.pdf

Comparison shopper site that gives comparative prices from 26 PCB manufacturers based on your requirements – it also has customer ratings: http://pcbshopper.com/

A Superior Design for something similar by Lgbeno on 43oh: http://forum.43oh.com/topic/8750-new-msp430-wireless-sensor-node/

Show more