With my 100% PCB-related success rate still fresh in my mind, I decided that I wanted to try and design my own PCB from scratch. I assumed this would require some kind of qualification and expensive software, but to my surprise it needed none of these things.
I stumbled across DesignSpark PCB – free PCB design software from RS. Yes, free!
Like my grandfather meeting Microsoft Excel for the first time, I was initially intimidated by the unfamiliar buttons, layout and general PCB-territory – but I stuck with it, learnt how to design a PCB, and even got my own batch made (which you can WIN at the bottom of this blog!)
I’ve written this blog post to show you how easy it is to create a PCB for free using DesignSpark PCB. This guide is designed to be a simple introduction based on what I learnt – we‘ll cover more advanced stuff in later blogs.
Let‘s get started…
Download the Software
You’re not going to get very far if you don’t download the application, so click the link below to go to the DesignSpark download page.
Once downloaded, go through the install and activation process (activation can be achieved using the same link above). This part is very self-explanatory so I won’t go into it.
Open the application
When the main screen opens, you are usually greeted with a little splash screen highlighting new products and news. Close the splash box and you’ll be presented with the default start view:
The DesignSpark PCB start screen
This is the part where I initially panicked. Tabs, buttons, sidebars – and none of it means anything to me!? Luckily for you I’ve done the homework so I can guide you through the process and explain what to do, what to click, where to look and so on.
Start your first PCB Project!
There are two ways to kick off your PCB design:
- You can use the schematic view to select and connect components, and then transfer to the PCB design view to arrange the components on the board
- You can head straight to the PCB design view and do everything there
For my first design I used the schematic view first, but I didn’t bother with this the second time as I found it easier to just place the components on the board first and then connect them together. This probably isn’t wise with large complex PCB designs.
For the benefit of this tutorial, we will use the schematic view first, then transfer this to the PCB design view.
Open Schematic View
To start in schematic view, click the ‘New’ icon first:
A box will pop up. Select ‘Schematic Design’ and click ‘OK’:
Select Schematic Design to start off
Your schematic ‘canvas’ will show as a new tab, ready for you to start adding components:
Your blank schematic canvas full of potential
So, let’s grab some of the standard built-in components.
Click the ‘Add Component’ button to open the components menu. The ‘Add Component’ menu will pop up, showing you the default DesignSpark library of components (the button we pressed is highlighted blue in the screenshot):
Adding components is easy – search, select then place
As we’re designing a board for a Raspberry Pi here, let’s grab the most important part – the GPIO connector. Click on ‘Find’ – then search for ’26’, which should bring up an item called ‘CONN_DIL_26’:
Adding the GPIO connector – an essential component for our Raspberry Pi board
To place the component in your design, just double-click on the name of it. The pop up box will disappear, and you will have the schematic component following your mouse (components are orange until you click to place them):
Components will ‘float‘ with your mouse until you click to place it down
Click the ‘canvas’ to place your item. In this example, the GPIO connector comes in two parts, so you’ll need to click again to place the second part:
The GPIO connector starts our schematic diagram
TIP: Press ‘esc’ to return to mouse mode and stop your mouse adding more and more components
Now let’s add an LED, because we all love LEDs don’t we? Same as before, click the ‘Add Component’ button, then click ‘Find’ and search for ‘LED’. Go for the one called…you guessed it…’LED’:
Now we add an LED to our circuit, to connect to our GPIO
Again double click to select the LED, then click on the canvas to place it:
Our LED is now placed into our schematic
Now that little LED isn’t going to live long without a resistor, so let’s add one of those next. Same as before – Search, select and place. This time I searched for ‘resistor’ and chose…’resistor’ (easy isn’t it!?):
The final component for this simple board – a resistor, for the LED.
Once again, I’ve selected and placed this on my schematic:
All parts are now in place for our example board
I’ll leave it at that for adding components in this example, I don’t think I need to show you any more components – you get the jist. Search and add, search and add, and so on.
TIP: We‘re using parts from the built-in library, but you can download more from the DesignSpark site. I will cover this in a future blog.
Now that we have the GPIO connector, LED and resistor – we can now connect them to make a circuit.
I’m going to connect this LED/resistor to a GPIO pin, which is 3.3V. We should only allow around 16mA max to this LED. I won’t enter the resistor rating in my design, I just want the hole spacing and label to show on my PCB.
To connect components, select the ‘Add Schematic Connection’ button to the left:
Press the ‘Add Schematic Connection‘ button to connect your components
Your mouse is now ready to connect parts. All you need to do is connect the ends of each part (you connect to the ‘x‘ part of each component), remembering to check the polarity of things like LEDs.
TIP: It‘s worthwhile zooming in at this point. To zoom back out to see your entire board, click the ‘View All’ button.
Here is my simple LED example all connected up: (Note the GPIO connector is numbered by physical pins, I’ve connected to physical pin 11 / GPIO 17, and a GND pin next to it)
Our components are all connected
Arrange Components on the PCB
For now let’s assume that’s all we wanted to do – make a simple add-on board for the Raspberry Pi that just has a single LED attached to GPIO 17. Now that we’re done with the components, let’s move over to the PCB view to arrange them on the board.
Remember – you can just come straight to this view at the start if you want to. It’s a personal preference thing – but I imagine the Schematic view is clearer for more complex designs (and using the Schematic view first is probably ‘the right way’ of doing things).
Translate Schematic to PCB
To move over to the PCB view, click ‘Tools‘ and then ‘Translate to PCB:
We now translate our schematic to a PCB
The new PCB Wizard box will pop up. Click ‘Next‘ to start.
The PCB wizard helps you move your design over to a board
The next page sets up the PCB technology. Don‘t worry too much about this, just keep the option ticked to ‘Use Default Technolgy‘. Below this, select your precision – everything I do is in mm, so select this and set the precision a ‘1‘ – for a simple board like this we can work in mm.
TIP: Later on you can select to work with your PCB grid in fractions of your precision.
Here we specify the units we will work with
Click next to go to the next step, which will be the ‘Layers‘ settings.
Now this simple design could easily get away with a 1-layer board, but select 2 layers anyway as this is the norm. Then select ‘top side‘ and ‘bottom side‘ solder mask and ‘cover vias‘ – this is the layer that we can later apply print to (such as GPIO numbers, board name etc). Leave all the other values as they are:
We‘re going for a 2 layer board here, but one layer would be enough
The next section defines the board outline i.e. the shape/cut of the board. It doesn‘t really matter what you enter here as you can adjust it later, so let‘s just got for 50×50.
Keep all other values as default:
The board size can be adjusted later if needed
Finally, we need to tell the application if we want it to leave our parts outside the board, or ask it to try and arrange them for us. I‘ve tried both ways, and found that the auto placement option isn‘t really worth doing on simple boards like this as you‘re likely to want to move things around anyway.
Select ‘Arrange outside the board‘ and click next:
Simpler designs are better off manually arranged
The last screen just gives you an opportunity to change the default file save path if you feel the need:
Make a note of where you save your file
Once you‘ve done that, press ‘Finish‘ to enter PCB view.
Arrange the Components on the PCB
You should now see a large green square, and your components just outside of it. That square is your PCB outline:
We now have a PCB outline and components to arrange
To arrange your components on the PCB, simply click and hold on a component to move it. If you want to rotate a component, just click ‘R‘ on your keyboard whilst it is selected.
Here is our single LED design with the GPIO re-arranged to be in the top-left corner for a Model A/B Raspberry Pi board (the GPIO has moved on the Model B+):
We‘ve aranged the GPIO to fit a Raspberry Pi
Our simple design doesn’t need all of that board space, so we simply click and drag the green board outline shape to resize it. Here‘s my resized board:
Resize your PCB to save space and money on manufacturing costs
Route what? “Traces” (or “Nets” or “Tracks”) are just the lanes of copper that connect your parts, think of them as wire on a prototyping board.
At the moment your traces will be all over the place after placing your parts on your PCB (in this example, diagonal). The easiest way to re-route the traces is to use the built in ‘Auto Route Nets‘ tool that tries to work out the ideal route for all your traces whilst trying to avoid clashes and overlapping at the same time.
To use this, click ‘Tools‘ > ‘Auto Route Nets‘ > ‘All Nets‘:
Auto Routing is a very helpful feature to save you time and headaches
The result on our example board can be seen below. Notice the blue and red lines, with yellow circles? The different colour lines represent different layers of the board (we have 2 remember) and the yellow circles are ‘Vias‘ which just mean the track is changing layer:
Here is our Auto Routed board – much tidier
Now this isn’t always a success, sometimes your design just won’t auto-route properly with your component layout. You can always manually draw the traces if this happens.
If you want to manually add tracks, click the ‘Add track‘ button to start the track tool. All you do now is simply click the first componenent to start the track, and the second component to finish.
Here‘s an example of what laying a track looks like:
Tracks can be added manually if required
TIP: Right-click a track to change it‘s layer or other properties
Adding Print to the Solder Mask
Take a look at most, if not all PCBs on the market and you will see numbering, text and even company logos printed on them. We can do this too using DesignSpark PCB, and it’s very easy.
Let‘s add a really bad name to our simple board. Click on the ‘Add Text‘ button. A box will pop up. Enter a name for the board (I‘ve used ‘NaffBoard‘ here) and make sure you select the layer ‘Top Silkscreen‘ (because it gets printed on the silkscreen):
Make sure you select ‘Top Silkscreen‘ or your board house may not print it
Once you‘ve done that, your text will ‘float‘ until you click to place it (behaves the same way as a component). I‘ve added mine to the bottom of this board as can be seen in the next section in the 3D model.
TIP: Double-click on text to change font, size alignment and more.
…and that‘s it! you‘ve got your componenets arranged, traces routed, board outline set and solder printing added – you’re done with the design phase! Congratulations, you’ve got a PCB design!
Click ‘File‘ > ‘Save As’ and make a note of where your project file is.
Want to see what your board would look like in the flesh? Click ‘3D‘ then ‘3D View‘ to see a model of your new board. Here‘s the example board in 3D:
The 3D view tool is VERY cool!
Next step – getting your PCB made…
How to Manufacture your PCB Design
There are loads of PCB manufacturers (board houses) aound now, and the choice is yours when it comes to speed/quality/cost. You kind of get what you pay for here. My favourite is SunSoarTech
In order for the board house to use your design, they need it to be in ‘Gerber’ format. Gerbers are a set of files, each containing a different element of the board such as outline, drill holes, screen print etc. Combined, they give the manufacturer everything they need to create your PCB.
The file you saved in DesignSpark PCB isn’t a Gerber, it’s just a DesignSpark PCB project file. We need to export your design as a set of Gerbers, and then do a bit of file name tweaking to make them acceptable by the majority of board houses.
Click on ‘Output‘, then ‘Manufacturing Plots‘. This box will show:
We‘re making Gerbers – but there are lots of other export formats available
On the left (tick box section) you have the different plots. Everywhere else is generally the settings for each plot. Now the default settings here aren‘t quite right for PCB Manufacturers, so let‘s make the neccassary changes.
(Credit to Jason Barnett here for his help working this out, and the equally handy guide on his blog: (post no longer available)
Here‘s what you need to do:
- Delete ‘Top Copper (Paste)‘, ‘Bottom Copper (Paste)‘ and ‘Drill Ident Data – Through Hole‘ (click to select, then click ‘Delete Plot‘ on each)
- Tick all remaining tick boxes
- Click ‘Add Plot‘ and select ‘Gerber‘ on the pop-up box. Rename this ‘Board Outline‘, change the type to ‘Outline‘, then select the ‘Layers‘ tab and double click on ‘(Board Outline)‘
- Click on ‘Drill Data – through Hole‘, then the ‘Output‘ tab, and then the ‘Device Setup‘ button. Un-tick ‘Separate files for plated and unplated holes‘ if already ticked.
- Click ‘Options‘ (bottom right) and un-tick ‘Include design name in plot file name‘. Also set the output path whilst you‘re here, to tell the application where to save your gerber files.
You‘re now ready to run the export. Click ‘Run‘ and give it a minute to export the Gerber files. A text file log will appear, just close that and head to the folder that you selected the files to be saved in – you should have a file for each plot we just made.
Now, the file extensions for these files need to be changed to make them board house friendly. Follow the steps below:
- Board Outline.gbr [change to] Board Outline.gko
- Bottom Copper.gbr [change to] Botton Copper.gbl
- Bottom Solder Mask.gbr [change to] Bottom Solder Mask.gbs
- Drill data – Through Hole.drl [change to] Drill data – Through Hole.xln
- Top Copper.gtr [change to] Top Copper.gbl
- Top Silkscreen.gbr [change to] Top Silkscreen.gto
- Top Solder Mask.gbr [change to] Top Solder Mask.gts
Once you‘ve done that, create a new .zip file and move them inside. Call the .zip file whatever you want, ideally the board name.
If you want to test the file, companies like OSHPark.com have an online Gerber checker – but this can be fiddly as they usually look for bottom silkscreen even if you don‘t have any print on the underside. You can get around this by creating a ‘Bottom Silkscreen‘ plot when you make the gerbers.
More Tips & Tricks
I plan to write a further blog on DesignSpark PCB, showing you some of the more advanced features such as downloading parts from the RS site, editing components, creating board outline cut-outs and so on. Keep an eye out for that
WIN a DesignSpark PCB made by the Average Man!
I spent some time fiddling with DesignSpark PCB so couldn‘t resist getting a board made up, just to see if it all worked (it did!). I called it the ‘RPi32‘ – it simply contains 2 MCP23017 chips and headers to give you 32 additional inputs/outputs to connect ‘things‘ to (LEDs etc).
Here‘s my DesignSpark PCB design:
This one took a little longer to figure out…
Here‘s the 3D view:
The 3D view, once again a VERY cool feature
This is the manufactured PCB with headers soldered (MCP23017 not fitted):
My RPi32 board…not bad for a first try
The board works but I overlooked the size / outline when I designed it (only works as a stacker as some of the Pi‘s components get in the way), and also the text size (went a bit too small in places) – but they work great when stacked on top of another breakout board. Hey, you live and learn.
Enter the Competition
I have 5 of these up for grabs, and RS have kindly offered to supply the parts to complete the boards. This time it‘s a Twitter ‘retweet and mention‘ competition, so use the button below to be in with a chance of winning.
Competition closes Saturday 16th August 2015, 22:00 GMT.
*** COMPETITION CLOSED ***
I‘ll also be taking some to the Southend Raspberry Jam on the 16th August, so come see me there if you can make it.
As always, if you have any questions – find me on Twitter or post a comment below.