A tinkerer's tool for PCB design and printing

No readers like this yet.
open hardware

Opensource.com

A while ago, I created a small extension board for the Raspberry Pi to do some hardware hacking.

The first iteration was on a bread board with some wiring to connect to the Pi. For the next iteration, I took a stripe PCB and soldered the components onto it. It worked, but it wasn't pretty:

As I worked on the concept, I decided I needed some printed circuits (PCB). The main motivation here was to be able to run some workshops at the local Java User Group, where people would solder the board and then program it.

I played around with some options for producing the layouts. Unfortunately, nothing was really great for hobbyists like me. On top of that, I also did not want to manufacture the PCBs myself with all the chemicals needed. After some more searching I found Fritzing, which was exactly what I was looking for.

Fritzing is an open source application that allows users to create schematics by selecting parts from a large part library, connecting them, and laying them out on a virtual breadboard.

After the schematic is created, Fritzing can autoroute the schematic onto a PCB design (it supports single and double-sided PCBs). Most of the time, though, it needs some human help.

Once you're happy with the designs and/or the PCBs, you can export them as images (which is what you often see in the Arduino documentation). Or you can send them to the Fritzing Fab service.

Fritzing was created by FH Potsdam in Germany and is now evolving via the Friends of Fritzing Foundation. Project sources are available on GitHub.

I went the route of the Fab service, waited a bit, and got some very professional PCBs back. The following image shows the final PCB assembled and mounted on a Pi.

The other nice thing about Fritzing is that it allows you to publish your designs so that other makers can take them, create them, or remix them to their needs. The above board can e.g. be found here.

When you put the board onto the extension header of the Pi (the inner row closest to the CPU), the following little shell script will light all LEDs and then display the current temperature every second

#!/bin/sh
set -x
cd /sys/class/gpio
for i in 10 22 27
do
echo $i > export
sleep 5
echo out > gpio$i/direction
sleep 5
echo 1 > gpio$i/value
done

cd /sys/bus/w1/devices/10-*
while true
do
cat w1_slave | grep t=
sleep 60
done

There is one line that may need tailoring, depending on the variant of DS1820 thermometer chip you have:

cd /sys/bus/w1/devices/10-*

One thing where I'm not yet sure about is whether the DS1820 actually needs the phantom power. In an older experiment with the chip, I did not connect pin 3 at all. I think this additional power may even heat the thermometer chip, as the values that I currently get are some 5-6 degrees too high.

To read the state of the push button you can use this script:

cd /sys/class/gpio
echo 9 > export
cd gpio9
while true ; do cat value; done

This article was originally posted on the blog, Some things to remember.

Open
Hardware

A collection of articles on the current state and future of open hardware.

User profile image.
Heiko is a long time open source committer. He currently works for Red Hat on the topic of monitoring and management of server and softwares systems. Heiko has received a master in Computer Science from University of Karlsruhe and has written two books on JBoss AS and Enterprise Java Beans.

4 Comments

Great article Heiko, thanks for sharing. The FAB service looks great, making open hardware, and especially remix/redesign schematics, more accessible.

I learned how to make PCB's the 'old' way, sketching the design/film, lighting, and chemicals. This sure is lots easier.

Thank you Robin,
I meanwhile saw that Fritzing can also export Gerber files, so you are not limited to their Fab service, which probably makes it even more interesting for some people.

In reply to by robinmuilwijk

Thank you very much ... did not know about this ...

Might be the place to go for my net project.

I think your post stress to much the Fritzing server.
Now all I get is: Internal Server Error

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.