Creative Commons images are CC BY 2.0

Description: Are you low on I/O? No problem! The SX1509 Breakout is a 16-channel GPIO expander with an I2C interface – that means with just two wires, your microcontroller can interface with 16 fully configurable digital input/output pins. But the SX1509 can do so much more than just simple digital pin control. It can produce PWM signals, so you can dim LEDs. It can be set to blink or even breathe pins at varying rates. This breakout is similar to a multiplexer or “mux,” in that it allows you to get more IO from less pins. And, with a built-in keypad engine, it can interface with up to 64 buttons set up in an 8x8 matrix.

Two headers at the top and bottom of the breakout board function as the input and control headers to the board. This is where you can supply power to the SX1509, and where your I2C signals – SDA and SCL – will terminate. GPIO and power buses are broken out in every-which direction, and configurable jumpers cover most of the rest of the board.

Since the I/O banks can operate between 1.2V and 3.6V (5.5V tolerant) independent of both the core and each other, this device can also work as a level-shifter. The SX1509 breakout makes it easy to prototype so you can add more I/O onto your Arduino or I/O limited controller. We’ve even spun up an Arduino Library to get you started!


  • Enable Direct Level Shifting Between I/O Banks and Host Controller
  • 5.5V Tolerant I/Os, Up to 15mA Output Sink on All I/Os
  • Integrated LED Driver with Intensity Control
  • On-Chip Keypad Scanning Engine Supports Up to 8x8 Matrix (64 Keys)
  • 16 Channels of True Bi-directional Style I/O
  • 400kHz I2C Compatible Slave Interface


Recommended Products

Customer Comments

  • Does each pin have its own hardware address? I have 15 I2C-capable OLED displays all with the same hardware address and I can’t spare the pins on my Arduino. Still new to all of this. If this board isn’t an option, can you suggest another approach? Thank you.

    • Oh, I see. You don’t need to worry about separate hardware addresses, as the SX1509 library will handle the IO for you.

  • What’s the initial state of the I/O’s on power up? Looking to use with relay boards that are active low and don’t want them engaging on power up.

  • If I connect VDD (Main Supply) to 3.3v and leave VCC1 and VCC2 unconnected, will those banks be powered by VDD? Or does VDD simply power the chip, and without VCC1 or VCC2 directly pulled up to a voltage, the banks will be unpowered?

  • The SX1509 breakout is back! YES! (And with mounting holes too!)

    Seriously, I was really disappointed when the previous version was retired. This is such a cool and useful chip, and SparkFun was the only company that made a breakout board for it. (One individual did make some and sell them on Tindie, IIRC, but only because they were no longer available from SparkFun.)

  • If being driven by a 16Mhz Arduino Teensy, does anyone have a “good” guess about how frequently either all inputs or all outputs can be monitored or modified?

    I’m guessing no faster than about once a millisecond.

    • John “S”
    • The SX1509 goes up to 400kHz I2C rate, so you’ll be more limited by the I2C bus than your MCU clock. Even though it’s only 400kHz, the I2C read/write operations are quite small (Think 3-4 bytes typically). Theoretically, you should be able to do an operation every 0.1ms or less as long as conditions are good (and as long as the SX1509 can keep up - I’ve noticed that some operations cause a small [~1ms] delay). That said, this module also has some very useful features that let you set a PWM, Blink, or Fade effect so if you for instance need to flash an LED at 5Hz you could start it with a couple of setup commands and and stop it with another. This minimizes the total number of I2C operations required for a lot of common tasks. I have used a couple of SX1509s (with an RPi master) to control a multi-zone heating and humidification system for a reptile habitat - it worked out quite well for PWM control of the fans and heating elements.

Customer Reviews

3.5 out of 5

Based on 2 ratings:

Currently viewing all customer reviews.

Outstanding board !!!

Compact for embedding - very flexible i/o configurations open up many possibilities. Well designed. I only wish the i2c addressing was greater 4,5 even 6 bit.

Really bad design for breadboarding

Might be nice for hard wiring, but the same length board could be had much better pin-outs for breadboard. Could have been narrower also.

Related Tutorials

SX1509 I/O Expander Breakout Hookup Guide

September 24, 2015

Learn how you can use the SX1509 to control 16 LEDs or up to 64 buttons with just two pins.