24

I would like to be able to output 75 digital out signals from the Raspberry Pi. However it has only 26 GPIO pins. Precise timing is not critical as long as it is within 1 second. I need to be able to turn all the signals on or off at the same time, so charlie-plexing won't work.

I'd imagine such a thing would be possible with another module connected by USB but I was wondering if there would be an easier way to do this using the existing hardware?

Dooley_labs
  • 105
  • 4
Scoop
  • 2,679
  • 7
  • 27
  • 25
  • 5
    Just note that although there are 26 pins, only 17 of them can be used for GPIO and the others are grounds/power. – Seanny123 Jun 09 '14 at 22:39

7 Answers7

11

The best solution to this is probably to go for a 'port expander'.

There is an expander kit available from HobbyTronics in the UK: http://www.hobbytronics.co.uk/mcp23017-port-expander-board

For a general briefing on port expanders, here's a page on Wikipedia: http://en.wikipedia.org/wiki/Port_expander

Dooley_labs
  • 105
  • 4
recantha
  • 4,489
  • 20
  • 26
9

It is possible to expand up to 64 additional GPIO ports using some MCP23008 chips connected via I2C interface. Each adds 8 GPIOs and up to eight can be connected through I2C. As you need 75, I suppose you go with the big brother of MCP23008 the MCP23017 which has 16 GPIO ports. It's not possible to mix both and get over 128 as the limit of 8 on the I2C-Bus applys to both together because the addresses overlap.

For ease access to the I2C-Bus you could use the I2C-Python-API from Quick2Wire. Quick2Wire has also a post on the chips.

Mose
  • 661
  • 5
  • 12
5

Take a look at this answer where MAX7219, MAX7221, MAX6950, MAX6951 and TLC5940 were discussed as an option for similar problem.

avra
  • 1,273
  • 8
  • 9
3

You could also use the IO Pi by AB Electronics UK which is based off of the MCP23017. The IO Pi allows for 32 Digital I/Os and you can control it with the Raspberry Pi's I2C port. You can also fit up to 4 of them on a single Pi and for a maximum of 128 pins. It is basically two MCP23017 on one board. Although it is cheaper to use two MCP23017s as opposed to an IO Pi.

2

I know this is a very old post but it's the first one you find in Google when searching for how to access multiple gpio pins... and the results don't include a new facility that may be the easiest option:

so for other searchers, this new software may be what you're looking for:

sudo apt install usbbootgui

(described in more detail at https://www.raspberrypi.org/blog/gpio-expander/ )

allowing you to access the GPIOs of multiple pies over USB. I guess limited by the number of USB ports you have.

I'll be using that myself to create an eprom reader to dump old game cartridges. (which is why I was looking for this)

Graham Toal
  • 161
  • 3
1

A Raspberry Pi "Compute module" is now available and it (and the corresponding development board if you want to make things easier for yourself) offers ALL 120 of the BCM2835's GPIO pins! However there are other things that it doesn't have which may impact on whether you want to use it...

SlySven
  • 3,621
  • 1
  • 18
  • 45
0

Use a shift register. https://www.sparkfun.com/products/10680 They are cheap and you can put as many as you like in series. Some have an output enable/latch mechanism that allows you to go tri-state and shift levels at the same time.