Change the state of a time display depending on the state of buttons that are pressed and held or released.
It's fairly simple and generic embedded software functionality. The more novel thing I've done here is make all of the application-level code use an abstraction layer that can be linked against either FreeRTOS, Zephyr, or a unit test environement.
cd ports/esp-idf
idf.py build
west build -p always -b esp32_devkitc_wroom/esp32/procpu ports/zephyr
sh build_unit_test.sh