Build one ESP-IDF codebase that supports several different ESP32 boards without duplicating driver setup.
Describe a board's pins and hardware in a separate file instead of hardcoding them in your program.
Reuse the same custom driver across multiple hardware variants by swapping the board description.
Add support for a new custom ESP32 board by writing a small hardware description file.
| oldrev/lwdt | ffmpegkit-maintained/ffmpeg | gkaragioul/openjkdf2-modern | |
|---|---|---|---|
| Stars | 6 | 6 | 6 |
| Language | C | C | C |
| Setup difficulty | hard | easy | moderate |
| Complexity | 4/5 | 2/5 | 2/5 |
| Audience | developer | developer | general |
Figures from each repo's GitHub metadata at analysis time.
Requires a working ESP-IDF development environment and familiarity with CMake board configuration before first build.
LWDT is a tool for people building embedded electronics projects on ESP32 chips, the small, cheap microcontrollers commonly used in DIY hardware and Internet of Things devices. It works on top of ESP-IDF, which is the official software toolkit Espressif provides for programming these chips, and it is aimed at developers who need their code to work across several different hardware boards without duplicating or tangling their setup for each one. The problem it solves is a common one in embedded programming: when a project needs to support multiple circuit board variants, developers often end up with code full of conditional branches, hardcoded pin numbers, and copy-pasted driver setup for each board, which becomes hard to maintain. LWDT addresses this by letting you describe a board's hardware, such as which pin an LED is connected to, in a separate, structured description file rather than mixing that information into your program logic. A small program then converts that description into C code your project can use directly, and a lightweight runtime handles starting up the right drivers in the correct order based on that description. The idea is borrowed from Zephyr, a different embedded operating system known for this kind of hardware-description approach, but LWDT deliberately does not replace ESP-IDF itself, since many ESP32 projects still depend on Espressif's own Bluetooth, Wi-Fi, and other native features that are tightly tied to ESP-IDF. In practice, you select which board you are building for with a build flag, and LWDT automatically loads the matching hardware description, whether that is one of its several built-in board definitions or a custom one you write for your own hardware. You can also layer small overrides on top of an existing board description instead of rewriting the whole thing. Your own application code then reads specific pin numbers or other hardware details through generated macros rather than hardcoding them. The project is written in C, Python, and CMake, includes automated build testing, and is licensed under the Apache 2.0 License.
LWDT is a lightweight framework for ESP32 projects on ESP-IDF that describes each board's hardware separately from your code, so one codebase can support many boards cleanly.
Mainly C. The stack also includes C, Python, CMake.
Use, modify, and distribute freely, including commercially, as long as you keep the license notice and attribution.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.