Esp32 ULP I2C code and bmp180 example
Switch branches/tags
Nothing to show
Clone or download
Latest commit 93d6067 Oct 30, 2017
Failed to load latest commit information.
main Fix comment Oct 13, 2017
LICENSE Create LICENSE Oct 30, 2017
Makefile init Oct 9, 2017 Update Oct 24, 2017
sdkconfig Add I2C utils: read8/16, write8 Oct 10, 2017

ULP I2C demo application

Example of ESP-32 ULP I2C application which reads a sensor (BMP-180) and wakes up the main processors after a significant change of the measured values.

I2C bit banged support

Note that this example uses a bit-banged I2C implementation, because the hardware ULP I2C support cannot read 16 bit values. This is not essential for the BMP-180, but some sensors like the ADS-1015 DO require 16-bit readouts.

Example of Macro usage and ULP stack/subroutines

In additon this example shows ULP stack handling and reusable subroutines examples, like


Wait some milliseconds


Compute abs value of register


Parts of the original C code from

were translated to ESP assembly.


Be aware of an assembler bug: