We’re taking an even deeper loop into deep sleep in this video. As always, big thanks to PCBWay for sponsoring this video - check them out at https://www.PCBWay.com/?from=atomic.

We’re following on the previous deep sleep deep dive video (https://youtu.be/YOjgZUg_skU) and taking a look at the Ultra Low Power (ULP) coprocessor.

The ULP coprocessor is a really interesting part of the ESP32 device. It’s a really powerful additional processor that can run even when the main device is in deep sleep.

I had to learn how to use this to get deep sleep working well in my DIY e-Reader project (https://youtu.be/VLiCgB0odOQ).

There is a plugin for the Arduino IDE that will add support for the ULP assembler - https://github.com/duff2013/ulptool and there’s also a C compiler that will generate ULP assembly code - https://github.com/jasonful/lcc

[0:00] Why are we here? [1:14] What are we doing in this video? [2:14] What is this ULP thing anyway? [3:00] The ULP instruction set [6:30] How to use it with PlatformIO [8:50] How to use it with the Arduino IDE [9:13] Waking up the main processors [10:13] Reading GPIO pins from the ULP [13:00] Sharing data between the ULP coprocessor and the main processors [14:02] Writing to GPIO pins - Blink on the ULP

GitHub repo with the code is here: https://github.com/atomic14/esp32-ulp

Thanks for watching - I’ll see you in the next video!

Patreon: https://www.patreon.com/atomic14 ko-fi: https://ko-fi.com/atomic14