Using Circuits.io to cook up something tasty for the Raspberry Pi

My latest project was designing and building a circuit board on the web-based Circuits.io. They have made it super easy to make a PCB in comparison to using Eagle Cad and sending files to a boardhouse.
One of the first things I did with my Raspberry Pi when I got it was an Adafruit Learning tutorial on analog inputs. The Pi doesn't have analog like the Arduino, so it needs a little help. Using a MCP3008 on a SPI bus can get you 8 channels of 10-bit analog. Take that Arduino!  At the time, I used Adafruit's cobbler board which makes breadboarding things a snap.  This looked like a perfect project for trying out Circuits.io, and it was.
After laying out the board, I ordered them straight from the Circuits.io website. No CAM job or gerber files to mess with. The boards are made by a company called OSH Park in Lake Oswego, Oregon, and took about two weeks to arrive. They come with a distinctive purple coating. It was about $9 per board, which is pretty cheap as far as PCBs go, and well worth the education I was receiving.
I built the boards using spring terminals so I could easily add and remove inputs. I also added a power LED, a input button and a output LED to do simple digital I/O with.
This is destined for my train layout, which needs 14 analog inputs. I designed the board to be extendable, mainly because you have to buy a minimum of three PCBs. With two boards linked together, I can read 16 inputs!

The main trick with chaining the boards together like this is to have small pads to solder-bridge to determine the chip select line. Each board needs a signal to know who is to do the talking. The way I have done it here limits me to two boards, but that was what I needed.  I also added I2C breakouts because I intend to talk to the Arduino motor controller that way, and that can connect any number of devices. The other caveat with two boards is to insulate the ethernet and USB jacks on the Raspberry or you will short out against the second board!


My daughter and I had a chance to show this off on Adafruit's Show and Tell. Nothing like getting face-time with Adafruit's Boss and the Entrepreneur of the Year. I also recorded a similar demo to show it in action that explains the chaining of the boards a bid better.


Circuits.io is under "beta", and is still under active development. The only downside I see from here is the silkscreen layer. You lack the ability to add text, and the component footprints for items I used like LEDs and capacitors lacked polarity markings. It made assembly a bit tricky, but hey, if the designer can't figure it out, maybe it shouldn't be built . . .

In true Open Source fashion, you can copy the board layout here and warp it to your fancy. You should dig in and mess with it just to see how cool the web interface is! The Python code running in the video and on the Show and Tell is in my Bitlocker under mc3008/mcp3008_dual.py.

Happy Hacking!

Parts List (for one board):
1 x Raspberry Pi Header, Adafruit #1112 $1.95/ea
1 x MCP3008 Analog SPI chip, Adafruit #856 $3.95/ea
16 x Configurable spring terminal blocks, Adafruit #1074  $4.95/15pieces
    or some combination of 0.1" pitch terminal blocks like
    2 x Terminal block 8 pos, Digikey ED10566-ND $1.64/ea (haven't tried)
1 x IC Socket, 16 Pin, Digikey A100206-ND $0.24/ea (optional, recommended)
1 x Capcitor 0.1uF, Digikey 399-4151-ND $0.30/ea
1 x Capcitor 10uF, Digikey P975-ND $0.23/ea
8 x Resistor (pull down) 10k ohm

To bridge two boards together:
1 x Male header, right angle 10 position, Digikey 609-3410-ND $0.38
1 x Female header, right angle 10 position, Digikey S5558-ND $1.35

Optional LEDs and button:
1 x Adafruit 8x8 Bicolor I2C Matrix, Adafruit #902 $15.95
1 x Header, 4 position (I2C), Digikey A32905-ND $1.31
1 x tactile switch, Digikey SW402-ND $0.41/ea
1 x Resistor (pull down for switch) 10k ohm
2 x LEDs, your color choice
2 x Resistor (LED current limiting) ~330 ohm

2 comments:

  1. Looks good! What kind of sample rate have you been able to achieve?

    ReplyDelete
  2. I don't know. I'm not taking advantage of the hardware SPI, so it not as fast as it could be, but for what I'm doing it is plenty fast enough. In the video I'm running a 0.1 second delay between readings. The MCP3008 datasheet claims "200 ksps max. sampling rate at VDD = 5V".

    ReplyDelete