PCB Design Software

Altium Designer is the design software that I’ve been using on a regular basis because we’ve got a license at work. It doesn’t come with too many components but more can be downloaded online. Creating new components is pretty easy too. Components can contain embedded 3D models, which makes it easy to review pad alignment and such. The final PCB can be viewed in 3D too making it really easy to review mechanical constraints.


These are some useful keyboard shortcuts that come in handy in the PCB design view.

1, 2 or 3 – switch between board planning, 2D layout, and 3D views.
a – alignment pop-up.
ctrl+m – measure distance between two points.
ctrl-z – undo.
escape – exit current tool.
g – change grid resolution.
j – jump to a location.
l – view layer configuration.
p – place.
q – switch between imperial (mils) and international (mm) units.
shift-s – toggle (show/hide) information on other layers.
u – un-route net, connection, component, or room.

Altium provides powerful design rules creation and checking capabilities that come in handy to ensure manufacturability and assembly.

Circuit Maker from the makers of Altium is a community driven design software. Designs are stored online and available to all. It feels very much like Altium.

Eagle is the quintessential PCB design tool used by professionals and hobbyists. Small PCB designs can be done for free. It is useful to have to study open source designs such as the one for Arduino Uno. There’s a lot of information available about and for Eagle such as a wonderful series of tutorials from SparkFun.

Fritzing has become very popular among makers to represent breadboard views of circuits. It also comes with quite powerful PCB editing and verification capabilities. Designs can be exported for manufacturing.

gerbv is very useful to review Gerber format manufacturing files. I always review mine in gerbv before sending them off to the manufacturer.

Land Pattern Calculator page can be used to download PCB Library Expert for IPC. It makes calculating land patterns easy. Input the requested dimensions and tolerances, and it outputs the land pattern dimensions for different types of surface mount components.

123 Design is not a PCB design software, but I find it pretty handy to view and tweak 3D models of components.



Getting Started with the ESP-03

The ESP-03 is a very affordable Wi-Fi module built around the ESP8266EX chip by Espressif. The ESP8266 has become very popular among makers who want to add wireless smarts to things at home and work.

The ESP-03 has two useful modes of operation that can be initiated by controlling its GPIO pins – normal mode and flash mode.

Normal mode wiring is show in the figure below. ESP-03 shown here is powered using SparkFun’s FTDI Basic Breakout – 3.3V – USB to serial module.

Normal Mode

In this mode, ESP-03 executes firmware programmed to the SPI Flash. SPI Flash is an external NOR Flash chip where program instructions are stored, and retrieved during execution.

The ESP-03 has a 4 Mbit 25Q40BT part which allows for 512 KB of program space. Of that, about 423 KB is available for your own programs.

Serial Flash Chip

In flash mode, new program instructions can be flashed to SPI Flash, using tools such as the ESP Flash Download Tool. The wiring is similar to that for normal mode, with the addition of GPIO0 connected to GND.

Flash Mode

ESP8266 can be programmed using an SDK distributed by Espressif. Popular embedded development platforms such as the Arduino IDE, MicroPython, and Lua can also be used.

Adafruit provides instructions for configuring the Arduino IDE for ESP8266 development. Here’re the settings I use with the Arduino IDE – under Tools menu.

Arduino Settings

Try the example project under File -> Examples -> ESP8266WiFi. With it, you’ll be controlling a GPIO pin on the ESP-03, over your Wi-Fi network, in no time at all.

Wi-Fi Web Server

The box lasts longer

…than what comes within it. I got myself an iPhone 6 Plus as a replacement. It’s hard to resist a wish come true.

Case for Raspberry Pi printed with MakerBot Replicator 2

Being able to cheaply produce 3D prototypes makes MakerBot Replicator amazing. We recently acquired a Replicator 2 at work, which we used to print a case for Raspberry Pi Model B Rev 2. Here’s the result.


Here’s some lessons learned:

  • I had a hard time fitting Raspberry Pi into the case. I had to use a box cutter to make several adjustments. I was wishing I had a Dremel.
  • I wanted a transparent case, but the printed case is quite opaque. So much so that it is hardly possible to make out which LEDs on the board are lit (see image below).
  • It took above an hour to print each half of the case. Be prepared to let the printer do its work for a good few hours.
  • The final finish is rough to touch, it appears neatly textured though.
  • The case becomes warm to touch after running Raspberry Pi continuously for a day or so, without much CPU load. At 30% CPU load, held for two hours, temperature within the case rises to 35 °C, CPU/GPU temperature to 60 °C, at an ambiente temperature of 26 °C.
  • We have had our Raspberry Pi reboot spontaneously due to RF interference. We’ll probably need to go for a metallic case.


Despite all the hard work, a case such as this would have taken us much longer to prototype in the past.

Prototyping a PCB using LPKF ProtoMat S62

The last time I designed my own PCB, in 1995, I used parchment (butter) paper and stickers. The fabrication was contracted out to a third-party. Times have changed, we now have simple circuit design software such as Fritzing, and rapid PCB prototyping machines such as the LPKF ProtoMat S62. Though the latter doesn’t come cheap, it is totally worth it.

The PCB I designed is very simple, and contains only through-hole parts. It is a custom breakout for the Raspberry Pi Model B Rev 2. I found most components in the Fritzing library. The Raspberry Pi component was obtained from the Adafruit Fritzing library at GitHub (AdaFruit.fzbz).

Fritzing Breadboard

This is how the breadboard view looks.

Fritzing Breadboard View

Fritzing Schematic

The schematic after some cleanup looks like this.

Fritzing Schematic View

Fritzing PCB

The two-sided PCB after some work looks like this. I let Fritzing autoroute traces, and then fixed whatever issues its DRC (design rules checker) brought up.

Fritzing PCB View

The prototyping environment lacks PTH (plated through hole) capability. Although holes are drilled, we are unable to deposit copper through holes and vias. To enable easier soldering, I moved traces leading away from the header to the top PCB layer. Since the header is placed on the bottom layer, I would only be able to solder its pins on the top layer.

PCB Milling

Milling was carried out by a colleague at work, who’s trained herself to use the ProtoMat S62 and its accompanying software such as CircuitCam and BoardMaster. She used the Gerber (RS-274X) files I exported using Fritzing.

This is the kind of machine that was used.

ProtoMat S62

Here’s how the finished PCB looks (bottom layer appears first).

PCB bottom

PCB top

Assembled PCB

Here’s the PCB with most components soldered.

PCB bottom

PCB top

Some components are soldered on both sides because they pass signals from one layer to another. As mentioned earlier, we lack PTH capability.

I have a lot to learn about PCB designing and the ProtoMat S62, but it’s a start.

Fritzing to design and prototype electronics circuits

I have been playing with Fritzing lately, and I have to say I am impressed. It is seductively easy to create and document electronics designs, and turn them into beautiful working circuits.

Here’s an example of an Arduino project documented using the Breadboard view. The components are all available from the parts library built into the tool. SparkFun is a huge contributor, as is Adafruit.


The Schematic view is automatically produced as you work in the Breadboard view. It has autoroute support, and it is fairly easy to move things around. The color of the wires has to be chosen manually.


The PCB view allows you to quickly produce a PCB design. You can place components on the top and bottom layers, add additional boards, autoroute, and further manipulate wires and components. The tool will even derive the text in the silk screen layers from the labels on the parts. When you’re done, you can export for production in the Gerber RS-274x format. The image below shows the Gerber layers exported by Fritzing, as viewed in Gerbv. This PCB allows an Arduino Pro to be plugged on one side, and several small boards to be plugged on the other side.