finds.dev← search

// the find

whitecatboard/Lua-RTOS-ESP32

★ 1,320 · C · NOASSERTION · updated Apr 2026

Lua RTOS for ESP32

Lua RTOS is a three-layer embedded OS that sits Lua 5.3 on top of FreeRTOS on ESP32, ESP8266, and PIC32MZ. The hardware abstraction layer is the only thing you rewrite to port it; everything above stays the same. Target audience is IoT developers who want a scripting layer and don't want to ship a full Linux image.

1. The layered architecture is honest and clean — HAL at the bottom, FreeRTOS in the middle, Lua on top. Porting to a new MCU means writing only the HAL, not touching the interpreter or scheduler. 2. LoRa/LoRaWAN support is built in at the Lua module level, which is rare in this class of project and genuinely useful for low-power sensor deployments. 3. Board coverage is wide — 30+ board configs including M5Stack, TTGO LoRa32, ESP32-POE, Adafruit HUZZAH32. Most are available as both OTA and non-OTA variants. 4. The precompiled firmware path with the wcc tool is fast to get running — plug in, run wcc -f, you're at a Lua REPL in under 5 minutes.

1. The build system requires Python 2, which hit end-of-life in January 2020. The README explicitly tells you to install pyenv and pin an old Python just to build. That's a hard maintenance debt that will only get worse. 2. Lua 5.3.4 is pinned from 2015. Lua 5.4 ships proper integer types (integer vs float subtype), which matters on microcontrollers where you care about whether something is doing float math. There's no sign of a Lua 5.4 upgrade. 3. The build system uses the legacy ESP-IDF make toolchain, not the CMake-based IDF v4+/v5+ that Espressif has used for years. You'll be fighting toolchain compatibility every step of the way with a current install. 4. No support for the ESP32-S2, S3, or C3 variants — the ESP32 lineup fragmented heavily and the newer chips are cheaper and more common now, making the project feel frozen on aging hardware.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →