I am venturing into the space of designing expansion boards for Raspberry Pi's. I have done this for Arduino boards but RPi's are a different beast.

From personal experience I have already had problems with damaged UART pins on the RPi and I am keen on finding ways not to repeat his experience.

Considerations I have come up with:

  • The IO pins are sensitive and needs protection. It can be as simple as Zener Diode to ensure the voltage stays at 3.3V and a current limiting resistor. Example Circuit
  • The GPIO pins are 3.3V , can source about 16mA and can only do about 50mA in total. The 3.3V rail is limited to 50mA and not suited for powering external components. Instead the 5V rail with +500mA can be regulated to supply more
  • The GPIO's are not suited for hot-swappable expansion boards and need to be powered down before installed.
  • External Power supply for extension boards are recommended.
  • Expansion boards can stacked but the limited current on the 3.3V rail could be an issue.

Considerations in question:

  • ESD - How well does a Rpi deal with people handling it.

Any other suggestions will be mush appreciated.

Extra Links worht looking at:

  • \$\begingroup\$ have you looked at using tri-state bi-directional GPIO buffers to act as an intermediate layer for the Pi's GPIO pins? A series 1K resistor never hurts, limiting output current per pin to only 3.3mA. \$\endgroup\$ – KyranF Apr 23 '15 at 7:38


Check out that page which deals with protecting an arduino. Your GPIO pins never need to source a lot of current unless you are powering LED's. Simply place a resistor in series that limits the current to 10-15 mA. A 330Ω or 220Ω resistor should do.

The total 50mA limit is internal to the RPi so external buffers and power supply would be needed if you plan to source more current. Something like the MC74LCX16245 can do 16 bits of bi-directional buffering. Keep in mind this chip has two 8 bit buffers and bidirectional means you have to select which direction the entire 8 bits goes. There is no individual selecting of direction for each bit. So you can do 16 out, 8 out/8in or 16 in. Another great benefit is that it can handle 5.5v on the inputs so you can interface this to 5V logic if needed. The enable pins could be used to power down the GPIO pins for hot inserting. It can also protect against ESD.

An 74HC244 can do 8 bits uni directional with two 4 bit groups that are individually enabled. This can be split to 4in/4out if needed. Might be best for driving LED's or split for UARTS Tx/Rx. An 74AHCT16244 is a quad 4 bit version for a total of 16 bits. Also had ESD protection.

If you need more 3.3V current, you could use a small switching regulator to step down the 5V. The 5V is limited by your 5V USB supply. here is an example of a small 3.3V 300ma regulator: http://www.hobbytronics.co.uk/d24v3f3-3v3-regulator

This Digikey article also has some pointers for digital input protection and also talks about ESD protection: http://www.digikey.com/en/articles/techzone/2012/apr/protecting-inputs-in-digital-electronics


This description could be useful for you: https://www.raspberrypi.org/introducing-raspberry-pi-hats/

Detailed specification for Raspberry HAT-s can be found on GitHub: https://github.com/raspberrypi/hats


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.