SparkFun
SparkFun 16 Output I/O Expander Breakout - SX1509
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 microcontro...
Get notified when back in stock
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!
Features:
- 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
Documents:
- Schematic
- Eagle Files
- Hookup Guide
- Datasheet
- GitHub (Design Files)
- GitHub (Library)
Jargon buster
Plain-language definitions for the technical terms used above.
- breakout
- A breakout board carries a small or fine-pitched component and brings its connections out to standard, breadboard- and header-friendly pins. Describing a part as a breakout means it can be wired into a project without soldering directly to the component's tiny contacts.
- GPIO
- General-purpose input/output pins are microcontroller pins you can set in software to read signals, switch devices on and off, or connect to peripherals. The number of GPIO pins matters because it limits how many buttons, LEDs, sensors, and other parts you can wire directly to the board.
- Headers
- Rows of connector contacts on a fixed pitch (commonly 2.54 mm) used to link a board to a breadboard, jumper wires, or another board. They come as male pin headers and female socket headers; when a module ships with pre-soldered headers it can be used straight away, whereas bare pads require soldering the pins yourself.
- LED driver
- An LED driver is a control chip or circuit that supplies and switches power to LEDs. For a display board, it reduces the number of microcontroller pins needed and handles tasks like lighting the right segments and adjusting brightness.
- microcontroller
- A microcontroller is a small computer on a single chip that runs a stored program and controls connected inputs and outputs such as buttons, sensors, displays and communication interfaces. In a device built around one, it is the part that executes the code and coordinates the device's behaviour.
- multiplexer
- A multiplexer (mux) is a chip or circuit that selects one of several input signals and routes it to a single shared output, with select lines choosing which input is connected; running the same idea in reverse, to send one input to a chosen output, gives a demultiplexer. Multiplexers let a single controller or line work with several signals or devices that would otherwise clash on a shared connection.
- PWM
- Pulse Width Modulation is a way for a digital pin to simulate variable output power by switching on and off very quickly. It matters for controlling things like LED brightness, motor speed, or servo-style signals from a microcontroller pin.
Find this product in
SX1509 Breakout Schematic
Schematic · 112.6 KB · Click any page to view full size
SX1509 Datasheet
Datasheet · 727.4 KB · Click any page to view full size
Supplier page — sparkfun.com
Supplier Description · 665.9 KB · Click any page to view full size
Resources & Downloads
Guides, code examples, and more
Source Code
Open-source libraries, firmware & example projects for this product
Arduino library for the SX1509 16-I/O GPIO expander.
523e4fe
about 1 year ago
· 71 commits
- examples Create DigitalReadWriteCombined.ino over 4 years ago
- extras Updating README for hardware v20 almost 11 years ago
- src Fixes issue in SX1509::readWord(uint8_t, uint16_t *) over 2 years ago
- keywords.txt Correct case of reference link in keywords.txt almost 8 years ago
- library.properties v3.0.6 about 1 year ago
- README.md Update writeBytes to write buffer instead of byte wise. over 4 years ago
Arduino library and hardware files for the SX1509 IO Expander Breakout board.
cc235c1
over 4 years ago
· 46 commits
- Hardware Standardizing Eagle file names almost 11 years ago
- Libraries Removing old library from repo. Point at current Arduino library repo. over 4 years ago
- Production made panel v20 larger over 10 years ago
- .gitattributes Updating readmes about 11 years ago
- .gitignore Merging in hardware v2.0 almost 11 years ago
- LICENSE.md Updating readmes about 11 years ago
- README.md Added product name to documentation over 10 years ago
Related Tutorials
Free guides on learn.littlebird.com.au