All the material present in this page is covered by the Creative Commons Attribution-Non commercial-ShareAlike license.
Raspberry PI I/O expansion based on Gertboard
This project was born because I wasn't able to buy an original Gertboard
from Element14. The problem was that the kit at
Element14 kept going out of availability, and also that Element14 won't sell anything in Italy to anyone without a VAT code.
While I was copying the schematic, it came to me that maybe I could make it more suitable to my needs. So, while it started as a perfect
clone of the Gertboard, it came out with quite a bit of improvements (at least IMHO).
The specifications are thus the same of the Gertboard, with these differences:
All the components are PTH, so there is no need for a very good hand at soldering;
The L6203 circuit now faces towards the outside of
the board, so that it is possible to put a big heatsink on this part (I tried with an Aavid 5903). Also, the current sense resistor is now a big 5W resistor, so it is possible to
use all the power that the driver can deliver (4A). I tried to make the nets as big as possible for the same reason;
The dual channel ADC MCP3002 has been swapped
with an 8 channel part (MCP3008). Also, there is a
jumper to choose wether to connect Vref (this pin was not present on the MCP3002) to the board 3V3 or to an external reference voltage;
The 3V3 power regulator circuit has been improved by placing a 2A bridge rectifier and a Varistor to protect against energy spikes. Also, the DC power jack has been
swapped with a 2-way terminal block with 5,08mm pitch (I've used a Phoenix MSTBVA model, but it is not mandatory)
and there is enough space to put an Aavid 5772 heatsink on the linear regulator. The bridge, Varistor and input capacitors are shared with the aux power regulator;
The aux power regulator, that in the Gertboard was left unmounted for heating problems, has been changed to a switching configuration based on
the MC34167 IC (TO220-5 package). The package has
enough space around it to place an Aavid 5772 heatsink inside the board edges, or something bigger (again, I tried with an Aavid 5903) outside. The circuit
can be trimmed from 5 to 20V (depending from the input voltage) just by changing a resistor (or by using a fixed resistor + a multiturn trimmer) and can deliver
more than 2A, with the effective available current being 2A minus the 3V3 current (limited by the bridge);
The ULN2803AN driver has all 8 channels available, and there is also
a jumper to easily swap it with a high side circuit like the
TD62783AP (it is sufficient to change the IC and mirror the jumper position). This
enables to choose between source and sink drive when needed (unfortunately it is not possible to have both at the same time);
There are now 4 pushbuttons instead of 3;
All the input and output connectors of the buffered IOs have 100K pull-ups. This prevents the buffers from being in an unstable state when not connected;
The connectors have been updated in order to provide all the IO pins of the new Raspberry Pi B+ / Raspberry Pi 2. The board is still compatible with Raspberry Pi models A and B;
The ID EEPROM for B+ / 2 versions is available on the board, together with a jumper used to set write protect or enable;
IO pins 0, 1 and 21 have been renamed as 2, 3 and 27 to comply with rev2 PI boards. Pin 27 has also been moved to the end of J2 to keep the pins ordered. This is one of the
few things to keep in mind when using gertboard-based diagrams or software, the others being MCP3008 slightly different communication mode and some connectors moved around or changed
The board is sized exactly to 150x100mm, since this is a price boundary for the small batch PCB manufacturers (such
as Itead or
All the files needed for production are already packed in this zip file, so if you wish
you can simply download it and put it on production. This is the full BOM with the order codes for
Mouser, with the right quantities to make 1 board (or as close as possible).
Finally, this is the spreadsheet to calculate the values for the
Aux power circuit, should you want to change something.
Test software adapted from the gertboard suite. This software will check your
PI revision in order to address the right IOs. As for the gertboard version, it doesn't do anything really useful, it is meant to be used only to test the assembled board for any
problem and as a start to write more useful programs to command the board or specific circuits based on some of its parts. With the revision 2 of the board, the software has been
modified to make it compatible with the Raspberry Pi 2. Read the README file inside the zip file for further informations.
Please don't ask me if I can sell kits or parts or anything else. The answer is that it would not be convenient for you, since I'd have to ask for more than 200€ for each assembled
board given the assembly time needed and components price. If you want an already made board or a prepackaged kit then go to Element14 and buy the Gertboard, or else ask someone you know to make it
for you, or choose one of the other expansion boards available for the PI.
I've tested the switcher circuitry with a Vin from 8Vdc to 24Vdc, and I've been able to reach about 21V on the Vx pins with 24V on input terminal block. With Vout=12V and a load of about 1.1A for 24h,
the AAVID 5772 heatsink stays under 70°C with a room temperature of 19°C (I've put thermal grease between heatsink and slug). This means that the system should be able to drive more than 15W
without the need for a bigger heatsink.
Also, the line regulation is quite good, with the no-load output being about 12.027V and the 1.1A load output being about 11.975V.