In one of my projects I need six PWM outputs, 12 digital I/O and around six analog inputs to be controlled by a Raspberry Pi. What are some of the best options available to increase the I/O capability of the Raspberry Pi?

For PWM, I am thinking of getting SPI-based 12 to 16 channel PWM controllers from Adafruit. For other requirements, are there any easy-to-use products available?

Currently, the only option that comes to my mind is to wire various digital decoders, ADCs, etc. to the Raspberry Pi and control them using available I/O lines. I am looking for more robust and easy solution like I²C or SPI-interface-based controllers.

  • there are plenty of I2C enabled ADC converters or digital input chips everywhere, and this is totally unrelated to Raspberry Pi.
    – lenik
    Sep 9, 2013 at 23:38
  • I am looking for some examples which are known to work with raspberry pi.
    – Punit Soni
    Sep 10, 2013 at 3:42
  • any 100khz i2c should work, just don't buy 400khz "hi-speed" chips, these are more expensive and, in this particular case, the speed gain would not be worth time spent debugging.
    – lenik
    Sep 10, 2013 at 4:28
  • 1
    I think your idea of the PWM controller from Adafruit is a good one. For the A2D, take a look at the Nwazet Key Lime Pi. nwazet.com/pi-keylime
    – recantha
    Sep 10, 2013 at 8:11
  • key lime pi looks great. I wish they added IO expander, PWM and ADC all in one package.
    – Punit Soni
    Sep 10, 2013 at 20:46

2 Answers 2


AtoD DtoA

Board for PI This board has DtoA/AtoD, I2C and comes with scripts downloadable to get you started.

PWM Board for 16 / 32 Channels

This board has PWM and has SPI interface for 16 more Digital Pins.


Maybe it can be a good idea to use a recommended chip (I²C, SPI, GPIO expander) from the wiringPi library because it's simpler to code specific software based on this library... And you have a complete example (wiring, code) adapted to the Raspberry Pi.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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