Expansion Module CJMCU-SX1509 16 channel I/o Output Module GPIO

AED 52.50



Does your Arduino have too few GPIO pins? This module is a great solution for increasing the number of GPIOs. The SX1509 is a 16-channel GPIO expander with an I2C control bus. In addition to the possibility of reading the pin status or setting them, it is possible to generate a PWM signal. The PWM signal can be used to adjust the LED brightness, servo control and much more. The system has its own level shifters so it can work with signals from 1.2V up to 5V. A wide range of supply voltages predisposes this system to battery applications. 

CJMCU - SX1509 has a matrix keyboard controller and can support as many as 64 buttons (8x8).


  • Low supply voltage.
  • 5.5V signal tolerance.
  • IT contains PWM LED drivers (256 levels).
  • Includes a flash controller (224 values).
  • Includes a brightening/dimming controller.
  • It includes a keyboard controller, the system itself scans the matrix without the involvement of the processor.
  • It has configurable contacts against vibration.
  • Programmable pull-up resistors.
  • Programmable Push-Pull or open-drain mode.
  • Programmable output polarization.
  • Inputs can report interrupts. Programming edge and bitmask.
  • Internal 2MHz clock.
  • I2C 400KHz support.
  • Four I2C addresses defined.
  • Super low power consumption of 1uA.
  • Wide temperature range -40 to 85 ° C.
  • ESD 2kV protection.



VCC1.425V - 3.6V
Power consumptionOscillator OFF 1uA
Oscillator ON 365 uA
High entry conditionfrom 0.7 * VCC to 5.5V
Low entry condition-0.4V to 0.3 * VCC @VCC> 2V
-0.4V to 0.2 * VCC @VCC <2V
Output load8mA @VCC> 2V


  • Library for Arduino ZIP
  • Arduino library description.

    this CJMCU - SX1509 is the same as sparkfun module so you can use this example

    • Ameba x 1
    • SX1509 I/O Expander x 1
    • LED x 1


    In this example we use SX1509 I/O Expander module to expand I/O ports to 16 I/O ports.
    We need the following library:

    Please refer to Arduino official tutorial to add .zip library to Ameba:

    Open the sample code in "File" -> "Examples" -> "SX1509 IO Expander" -> "breathe"

    RTL8195 Wiring diagram:

    RTL8710 Wiring diagram:

    Code reference

    This example makes the LED dims and lights like the breathing lights.
    First, set pin 15 of SX1509 to be the output port of LED. Therefore, the positive pole of LED should be connected to pin 15 on SX1509.

    const byte SX1509_LED_PIN = 15;

    Use internal 2MHz oscillator and set the LED clock to 500kHz (2MHz / (