I'm looking to daisy chain multiple MCP23017 chips (upward of 10) to essentially give me more IO to play with from my Pi.

I've started to work on the circuit diagram, but I'm really lost with all the addressing. Put simply, how do I layout these chips to allow me to one day be able to interface with each one from Python? (E.g. I want to make IC12 GPA3 high, then IC4 GPB5 High). If that makes sense?

Also, is the diagram below the standard way of daisy chaining? I can't find any examples online of this and I'm completely new to it.

enter image description here

(I've seen this: How to get pin addresses on a MCP23017 and it seems a great answer, it just sadly means very little to me)

  • I do not understand what you are trying to do. Each MCP23017 needs a unique I2C address. There are three address lines so you can have a maximum of 8 chips on the bus (for 128 gpios). What do you mean by daisy chain? – joan Nov 13 '14 at 20:06
  • Perhaps I'm fundamentally misunderstanding this then. I need 96 IO and trying to find a way to achieve this. Could you possibly explain how you achieve 128 GPIO from just 8 Chips? – gunnarain Nov 13 '14 at 20:14
  • Each MCP23017 has 16 gpios. 8*16 = 128. – joan Nov 13 '14 at 20:16
  • 1
    Thank you, Thank you! You've cleared up a few days worth of tangling myself up – gunnarain Nov 13 '14 at 20:34
  • 1
    I've been playing with one over the past few days. raspberrypi.org/forums/viewtopic.php?p=639691#p639691 may be of interest. – joan Nov 13 '14 at 20:38

Your Answer

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

Browse other questions tagged or ask your own question.