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, 2014 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, 2014 at 20:14
  • Each MCP23017 has 16 gpios. 8*16 = 128.
    – joan
    Nov 13, 2014 at 20:16
  • 1
    Thank you, Thank you! You've cleared up a few days worth of tangling myself up
    – gunnarain
    Nov 13, 2014 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, 2014 at 20:38

1 Answer 1


Here this is correct wring for Daisy chain:

I/O Expander using 8 MCP23017 Daisy Chain

  • Please explain why you think this is the correct wiring.
    – Chenmunka
    Jun 9, 2023 at 12:33
  • Well I tested it out so I do Know it works. Only thing I missed is the 10K Resistor attached to Reset PIN and then to VCC. Rest all is covered The whole system is in parallel connection and so have same Voltage. I have defined address to each MCP23017 and the along with the HEX above them. Also I tested it out on a bread board and works fine with NodeMCU. It doesn't matter if one uses RasPi or Arduino, it works fine with all. I'm a Developer so this may not follow the standards but I'm sure it's a working model Jun 9, 2023 at 15:03

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.