SX1509 IO Expander Breakout - KeirRice/PolarTable GitHub Wiki

SX1509 I/O Expander breakout provides a ready to go wrapper around the SIMTECH SX1509. This adds an additional 16 GPIO pins that can be accessed over an I2C connection. Datasheet

There are at least two versions of the board, the original one from Spark Fun, and a clone by CJMCU. They appear to use the same core design.

CJMCU board

Sparkfun has an extensive tutorial page on the device. There is also an Arduino library to make interfacing with the board very easy.

Notes

  • All of the output pins can generate interrupts.
  • Only pins 4-7 and 12-15 can use the LED 'breathe' feature.
  • All pins can do PWM.
  • It has a built in debounce that can be activated per pin. The debounce happens before the interrupt is generated.

Interrupts. The board has a single INT out signal that you connect to your Arduino. Use an interrupt enabled pin on the Arduino side like D2 or D3. When you get an interrupt signal you can query the SX1509 and get back a mask of which SX1509 pins generated the original interrupt. Then you can query just the pin value you need.


The SX1509 is runs at 3.3V this means that you need to provide a logic level converter from 5v down to 3.3v if you are using an Arduino as an I2C host.