The Raspberry Pi Pico C/C++ SDK has all you need to write an I2C master, but is curiously lacking when it comes to I2C in slave mode. This library fills that gap to easily turn the Pico into an I2C slave.
An example program is included where the slave acts as a 256 byte external memory. See example_mem
.
For those who prefer the Wire API commonly used with Arduino, there is a second version on top of a Wire wrapper. See example_mem_wire
.
To keep it simple, both master and slave run on the same board. Just add jumpers between the two I2C instances: GP4 to GP6 (SDA), and GP5 to GP7 (SCL).
Follow the instructions in Getting started with Raspberry Pi Pico to setup your build environment. Then:
git clone https://github.com/vmilea/pico_i2c_slave
cd pico_i2c_slave
mkdir build
,cd build
,cmake ../
,make
- copy
example_mem/example_mem.uf2
to Raspberry Pico - open a serial connection and check output
- Pico as I2C slave - basic setup using raw registers
- DroneBot Workshop - building an I2C sensor
Valentin Milea [email protected]