
Built a lightweight HAL framework for ESP32/Arduino to make embedded dev a bit less painful — just open sourced it (Beta)
Hey everyone,
I've been building embedded projects on ESP32 for a while now, and kept rewriting the same boilerplate for pin control, non-blocking delays, and communication setup across projects. So I built a HAL framework called AERL.h to clean that up, and just open sourced the beta.
A few things it does:
- Non-blocking pin control —
AERL.glow(pin, duration),AERL.flash(pin, duration)instead of manually jugglingmillis()timers everywhere - Clear separation between non-blocking and blocking delay (
AERL.delay()vsAERL.bcdelay()) - Simple UART/I2C/SPI activation and send/receive wrappers
- Basic sleep/wake handling for power management
- Beginner-friendly compile-time error messages (e.g. it'll tell you clearly if you pass a
Stringwhere it expects a number)
It's genuinely beta — I've flagged a few known issues (sleep can be flaky on some boards, WiFi/BLE support is coming in about a week), and I'd rather be upfront about that than oversell it.
MIT licensed, built on top of Arduino.h. If anyone's interested in trying it out, breaking it, or has feedback on the API design, I'd genuinely appreciate it — this is exactly the stage where outside eyes catch things I can't see anymore.
GitHub: https://github.com/AERL-Official/AERL-C-Framework#
Thanks for reading, and happy to answer any questions about the design decisions.