Adding additional pins?

I promise that I searched the forums for other threads before asking this here :smile:

I am starting a project where I will need 16pins minimum…(8 sensors and 8 relays). A single Photon will not provide this, but was curious if there is any way to expand the amount of pins? I would like to avoid using 2 Photons as it is more to manage…although I’m sure Particle would like me to use 2 Photons :smile:

Any info would be appreciated. Thank you!

What you want is a port expander. There are plenty of them available, for instance this one from Adafruit.


Also, the line of relays at all connect via I2C (D0/D1) so all of the remaining IO pins are available, even if you use a 32-relay module.


Heck yes to both these answers.


Suggest you look at a MCP23017 - this is I2C controlled and will give 16 GPIO - 8 inputs for digital sensors and 8 outputs for relay control. Rather than buying boards you can very simply drive a relay with a darlington transistor TIP102G doing the switching and handling the current and voltage your relays require to actuate. You will need a 2.2K ohm resistor and a diode 1N4001 (flyback) across the relay coil. You will also need a separate power supply for the relays (which will draw 0.6W each.) Of course you can also buy boards to do this!