Adafruit PCF8574 I2C GPIO Expander Breakout

Sale price A$11.73   Inc. GST
2 units Ships in 24 hours
50 units Ships in 7 to 10 days

Expand your project possibilities, with the Adafruit PCF8574 GPIO Expander Breakout - an affordable 8 channel I2C expander.

GPIO expanders work like this: you have a board with some number of GPIO but not enough for your project - maybe you need more buttons or LEDs. You could upgrade to a board with massive number of GPIO like the Grand Central, or you could pop on one of these boards. Connect it over I2C and then you can send/receive I2C commands to control the GPIO pins to write and read them. It's going to be slower than direct GPIO access, but maybe that doesn't matter if it takes a millisecond instead of a microsecond. You only need the two I2C pins, and you can even share the I2C port with other sensors and devices. Heck, you can even add more expanders for massive I/O control!

The PCF8574 is a common, and slightly unusual I2C expander for folks who are used to the MCP230xx series:

  • First up, its very affordable - who doesn't love that?
  • It has 8 I/O pins
  • Three I2C address select jumpers mean up to 8 expanders to one bus for 64 total GPIO added
  • Each pin can be an input with light pull-up or an output sink
  • IRQ output will automatically alert you when input pins change value
  • This chip does not have a pin direction register. You cannot set the pins to be input or output - instead each pin has two possible states. Basically you can think of it as an open-drain output with a 100K resistor pull-up built in.
  • Option one: Lightly pulled up 'input' - by default it will read as a high logic level, but connecting the GPIO to ground will cause it to read as a low logic level.
  • Option two: Strong 20mA low-driving transistor sink output. This means the output is 'forced' to be low and will always read as a low logic level.

The pin direction / state thing is a little odd but it actually works fine for many purposes as long as you know what to expect.

For example, if you want to read a button or switch, connect one side to the PCF and the other side to ground. Then set the pin to 'light pull-up input' When the button is pressed it will read low, when released it will read high.

If you want to control an LED, connect the anode to positive voltage through a resistor. When the PCF pin is set to 'light pull-up input' the LED will be off. When the PCF pin is set to 'strong ground output' the LED will connect to ground and turn on.

If you want to send a GPIO output logic level to some other device or peripheral, the light pull-up acts as high logic out, the strong ground output acts as low logic out.

If you want to receive a GPIO input logic level, set the pin to light pull-up and then read the pin to determine if the GPIO input is high or low.

Basically, the only thing to watch for is you cannot drive an LED that is expecting the expander GPIO to go high to turn on the LED, or connect a button input to a positive voltage without adding an additional pull-down resistor. If this is a bit confusing, worry not - all this stuff is taken care of for you in our Arduino PCF8574 library or CircuitPython/Python PCF8574 library - you can pretend it has input/output modes and the library will fake out what you are expecting.

To get you going fast, we spun up a custom-made PCB in the STEMMA QT form factor, making it easy to interface with. The STEMMA QT connectors on either side are compatible with the SparkFun Qwiic I2C connectors. This allows you to make solderless connections between your development board and the PCF8574 or to chain it with a wide range of other sensors and accessories using a compatible cable.

QT Cable is not included, but we have a variety in the shop

Technical Details

Product Dimensions: 25.5mm x 17.7mm x 4.6mm / 1.0" x 0.7" x 0.2"

Product Weight: 1.7g / 0.1oz

    Shipping rates Australia wide and New Zealand

    Please add the items in cart and proceed to checkout to calculate shipping cost. We have range of shipping options once goods are ready to dispatch. 
    1. Regular shipping: Goods will be shipped using Australia post regular shipping service. 
    2. Express shipping: Goods will be shipped using Australia post EXPRESS shipping service. 
    3. Express split shipping: Local stock from Melbourne will be shipped ASAP (1 business day) using EXPRESS shipment while remaining items from overseas stock when arrived in Melbourne shipped using second EXPRESS shipment. 
    4. Pick up from Thomastown, Melbourne is available on appointment between 9 am to 3 pm during business days. 



    • How do I estimate shipping for my order?
      • Add products in the shopping cart and head to the checkout page to estimate the shipping.

    Dispatch time

    Unless expressly agreed otherwise with you, we will not commence delivery of an order until we have received cleared payment of the purchase price in full.

    All orders placed before 11 am AEST (Monday to Friday) will ordinarily be processed on the same day.

    We will endeavour to ship the Products by the applicable time indicated on the website, but all times are indicative only.  All shipping times are dispatch times only, and actual delivery dates will depend on the shipping method chosen, delivery address and delivery service provider. 

    Note- Please make a note during purchase if you require any item urgently. However we cannot guarantee that we will be able to comply with any request

    *Go to Australia post delivery time calculation to get various Australia post service in your area please use our shipping postcode Thomastown, 3074 as the "from" address -

    Shipping Destinations

    We ship all products throughout mainland Australia, Tasmania and New Zealand - Including Darwin, Melbourne, Sydney, Tasmania, Adelaide, Brisbane, Perth, all metro and regional areas but do not deliver to areas in Australia where the Australia Post delivery network is not available. 

    Check Express shipping delivery coverage area at -

    Receipt of deliveries

    Deliveries to post office boxes are not permitted where delivery is by courier. If delivery is by courier and nobody is available at the delivery address to accept delivery when delivery is attempted then the courier may either:

    • leave the relevant parcel at the unattended address (the courier will do so if specified in your delivery requirements); or
    • re-attempt delivery at a later time or date, in which case we may charge you an additional re-delivery fee. 

    Note that if a delivery is left unattended at the shipping address and is subsequently stolen then the theft is your responsibility, not ours.

    Payment & Security

    Apple Pay Generic Google Pay Mastercard PayPal Shop Pay Visa

    Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

    You may also like