Tiny dependency-free wire-framing codec: CRC-32 length-delimited typed frames with an incremental, resynchronizing StreamParser for carrying messages over any raw byte stream (USB/CDC/socket/UART)
ZigNode — a modular ESP32 Zigbee/Wi-Fi node. One ESP-IDF component with a board-selectable module registry; its flagship module is a safety-gated watering pump (max-runtime watchdog, min-off cooldown, dry-run gate, 3-way relay/MOSFET drive) with soil-moisture auto-watering, plus status LED, button gestures, a wear-safe persistent event log, optional OLED / buzzer / RTC / microSD, a Wi-Fi web panel, and Zigbee Router endpoints with an OTA client. Boards: M5Stack NanoH2 (ESP32-H2) and Seeed Studio XIAO ESP32-C6 (bare or on the Expansion Base).
Multiplex several framed protocols (OTA, crash-dump, CAN bridge, app control, ...) over one byte stream: parses the stream_frame codec once and routes each frame to a per-module handler by the frame's module byte