Ultra Low Power (ULP) processor - Part 1
-
Introduction
In deep sleep most of the peripherals are turned off, however, the ULP processor, the RTC slow and fast memories and the RTC controller can still be powered on. In deep sleep the ULP can perform measurements using the ADC, read sensor data using the I2C interface, pulse counting, etc. In this short tutorial we will show how to compile the ULP processor.
Compiling the ULP library
To compile the ULP you need to set up the xtensia gcc toolchain, export the bin path and clone the pycom-esp-idf repository. Please follow the instructions here
Before compiling the ulp library you need select this feature from the menuconfig. Go to "examples" -> "wifi" -> "scan" and in Terminal / command prompt type:
make menuconfig
The following screen will pop up:
Go to "Component config" -> ESP32-sepific and then choose the "Enable Ultra Low Power (ULP) Coprocessor as shown below:
Now exit from menuconfig and in the terminal type:
make -j4
to compile the libraries. The ULP library can now be found in "examples" -> "wifi" -> "scan" -> "build" -> "ulp"
-
@oligauc What are the developments regarding the ULP processor? It already works on a regular ESP32 with MicroPython firmware... I can't get it to work with the Pycom firmware.
-
I would like to see an example of an I2C sensor, read it value, check if below or above a threshold and then wake up the main CPU.
To make it work: (missing assumptions)
I had to $ export IDF_PATH=~/pycom-esp-idf
and install much more dev packages like sudo apt-get install build-essential (Windows ubuntu 18.04)
-
Nice, will we be seeing a part 2? :-)