finds.dev← search

// the find

MaJerle/lwesp

★ 559 · C · MIT · updated Jun 2026

Lightweight and versatile AT parser library for ESP8266 and ESP32 devices.

LwESP is a C99 AT command parser for ESP8266/ESP32 Wi-Fi modules running Espressif's official AT firmware. It abstracts the raw UART AT protocol behind a proper API with both blocking and non-blocking call styles, sitting between your MCU firmware and the ESP module. The target audience is embedded developers on STM32 or similar Cortex-M parts who want Wi-Fi without running a full TCP/IP stack on the host.

The two-task architecture — one for UART RX parsing, one for user commands — is the right call for RTOS environments and avoids the common mistake of parsing AT responses in the ISR. The netconn sequential API is a genuine convenience: you write socket-style code and the library handles the AT command choreography underneath. The porting layer is thin and well-defined — you implement maybe four functions to bring up a new platform. Examples cover both STM32CubeIDE and CMake, which saves real time when getting started on a new board.

AT command firmware on ESP32 is a dead end for anything serious — Espressif's own direction is ESP-IDF with native TCP/IP, and the AT firmware lags badly on features and bug fixes. The library inherits that ceiling. There's no async DNS or mDNS support in the netconn API, so you're stuck with IP addresses or polling. The two-task model means you need a full RTOS; there's no bare-metal polling mode for simpler MCUs where RTOS overhead isn't justified. Last meaningful code activity appears to be slowing down, which matters when AT firmware updates break command syntax.

View on GitHub → Homepage ↗

// 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 →