AceRoutine
A low-memory, fast-switching, cooperative multitasking library using stackless coroutines on Arduino platforms. Supported macros include COROUTINE(), COROUTINE_BEGIN(), COROUTINE_YIELD(), COROUTINE_DELAY(), COROUTINE_AWAIT(), COROUTINE_LOOP(), and COROUTINE_END(). Verified to work on AVR (Nano, UNO, etc), SAMD21, Teensy ARM, ESP8266 and ESP32.