The Arduino platform offers a powerful suite of tools to make interactive electronic devices. For many projects, wiring up a breadboard is all that is needed. But if you have more ambitious plans for developing your device, you may need to build the circuit on a printed circuit board. In this Instructable we will go through the steps for designing an Arduino shield like the one shown here, and ordering a small batch of boards from a PCB manufacturer.
Step 1: Design Your Board
A shield is a board that "piggybacks" onto an Arduino board. It has male headers that mate with the female headers on the Arduino, so that it can use the Arduino input and output pins and the Arduino programming to support the shield design.
The shield shown here has holes that match the pins on the Arduino Mega 2560 R3. There is an extra set of pads to make wire connections if needed. I designed it using the free software from Diptrace (highly recommended!). To use this template, download and install Diptrace, then download the shield file here: http://lightboxkit.com/Mega%20Shield.dip
It is easy to change the size and shape of the shield in Diptrace, as required for your project.
Step 2: Adding Components to the Board
Open the Mega shield file in Ditrace PCB Layout. Place your components on the shield, based on the circuit you designed and prototyped on a breadboard using the Mega board.
Here I added a resistor and an LED as a simple example of how to use the program. The LED is in the "MISC" library, on the top of the screen. The resistor is in the Resistor library. Follow the Diptrace support documents to see how to move, rotate, annotate etc the added components.
Step 3: Add Ratlines to Connect Parts and Pins
Now connect the components to the Arduino board. Click on "Objects/Place ratline" in the PCB Layout program. Left click on the starting point for the trace (copper pathway) and drag the line to the end connection. The ratline is converted to a copper trace at a later step.
Here I connected digital pin 10 (the power pin for the LED) to the resistor. The other side of the resistor is connected to the positive lead (anode) of the LED. The negative lead of the LED (cathode) is attached to ground (this connection to ground is hidden in Diptrace). So the current flows from digital pin 10, through the resistor and LED, to ground.
Step 4: Run Auto Router
After placing all of the components on the virtual PCB board and connecting them with ratlines, convert the ratlines into the copper traces to be laid on the PCB. Run Auto Router: Route/Run Auto Router. The free version of the program allows 300 pads (holes).
Step 5: Order PCBs for Prototyping
After routing the PCB board, check all of the connections and make sure the board properly represents the schematic. If it looks OK, you can send the board to a manufacturer.
The manufacturing shop uses Gerber files to make the PCBs. To convert your layout to Gerber files, click "File/Export/Gerber..." and export all files into a folder.
Repeat this to make a file that shows where to drill holes in the board: "File/Export/ N/C Drill..."
Compress the Gerber and drill files into a .zip file. Send this to a PCB manufacturer, with instructions for how many boards you want.
I used Bay Area Circuits to make the PCB shown here. The "Weekend Warrior" product makes the most boards per dollar for my projects (I recently got 9 boards for ~ $145, including shipping). You can of course find other PCB manufacturers online.
Step 6: Soldering Components Onto the PCB
When the PCBs arrive from the manufacturer, you are ready to assemble the board. I start with the male headers, shown in the picture. These are placed on the outer rows of holes in the shield. The short end of the header is attached to the board. The long pins will be inserted into the corresponding sockets on the the Arduino board. Other components are added to either side of the board.
An assembled shield is shown as an example. I placed female sockets on this board so I could test a variety of components prior to soldering them onto the board.
There are many choices for soldering irons. If you are doing a lot of soldering consider getting a temperature regulated set-up to make things easier.
Note: It may be useful to clean the board with a little alcohol and clean cloth. Clean copper pads are easier to solder.
Step 7: Plug the Shield in and Give It a Go!
When all of the headers and parts are soldered on, connect the shield to a Mega 2560 R3 board.The example here is a circuit with a three color LED and two light-to-frequency converters (TAOS TSL235 side-looker sensors). The shield is not completely pressed in, to show the pins.
Plug the Arduino board into your computer, upload your code, and (fingers crossed) see how the board works.
As a side note, if you get stuck on an advanced problem in circuit design, and don't have a friend or colleague to provide guidance, check out Odesk. You might find a talented electrical engineer on Odesk willing to help with your project for a reasonable fee.