Working CamS3-5MP firmware with MJPEG stream, works with Frigate, MQTT
-
Me, and Claude Code have been working on a custom ESP-IDF firmware for the M5Stack Unit CamS3-5MP board.
It's part of a fun home project I have to scare the cats off the kitchen counters when I'm not there :)
- MJPEG streaming over HTTP (port 81 /stream) — compatible with Frigate NVR
- Single JPEG snapshot over HTTP (port 80 /)
- MQTT telemetry — RSSI, uptime, heap, PSRAM, FPS, error counters every 10 s
- Home Assistant auto-discovery — sensor, number, and button entities on connect
- Camera image controls via MQTT — brightness, contrast, saturation, white balance
- URL-based OTA — publish firmware URL to MQTT; device flashes and reboots
- Recovery manager — NVS boot-loop detection, 2-minute health timer, OTA rollback
- Core dump to flash — download crash dumps via GET /api/coredump
- BLE Wi-Fi provisioning — no hardcoded credentials; first-boot BLE setup
More details of features at
https://github.com/hbentel/M5Stack-Unit-CamS3-5MP