I2C Slave

Note this guide was written for MicroPython.org firmware and not Adafruit CircuitPython firmware. This guide is not maintained and is probably no longer working! We're only maintaining CircuitPython libraries at this time, but you can run CircuitPython libraries on MicroPython using Adafruit_Blinka - check that out here https://github.com/adafruit/Adafruit_Blinka

Some MicroPython boards support the ability to act as an I2C 'slave' or peripheral.  This means they can be assigned an I2C address and listen for requests from other I2C devices.  You could use this for example if you're creating a sensor in MicroPython that exposes its data to other boards with I2C.

Currently the pyboard is the only board that supports I2C slave mode.  In particular the ESP8266 MicroPython port does not currently support I2C slave mode.  Check out the pyboard documentation for more details on I2C slave mode usage.

This guide was first published on Sep 14, 2016. It was last updated on Sep 14, 2016. This page (I2C Slave) was last updated on Nov 19, 2019.