Personal Project · Active
ESP Home Server
Overview
ESP Home Server is a local-network-first home automation system built around a network of ESP32 devices. A handheld voice controller (Waveshare ESP32-C6 Touch AMOLED) streams hold-to-record mono PCM audio to a Python HTTP server over Wi-Fi. The server transcribes with ElevenLabs, resolves the command through a registry, and dispatches events to registered devices — displays, cameras, button nodes — which poll or expose endpoints depending on their role.
The system supports multi-turn conversations (a 'set timer' command prompts for duration if not supplied), a script-based action registry for packaged server-side tasks, and an expanded browser dashboard showing device state, recent commands, startup diagnostics, active timers, and action test controls. A relay server enables authenticated external access to the dashboard and device feeds from outside the local network, with a Windows pairing agent that keeps the relay informed of the server's current IP. Each firmware project is a standalone ESP-IDF build targeting different chips — ESP32-C6 for the voice controller and display nodes, ESP32-C3 for button nodes, standard ESP32 for camera modules. The server persists the device registry, command history, and a local firmware catalog for future OTA rollout.
Media





Key Contributions
Waveshare ESP32-C6 Touch AMOLED voice controller streaming chunked PCM to a local Python server
ElevenLabs speech-to-text → command registry → device event dispatch pipeline
Multi-turn conversation support — commands can prompt for missing parameters before resolving
Relay server for authenticated external access to the dashboard and device feeds
Windows tray pairing agent keeping the relay updated with the server's current local IP
Browser dashboard with device state, recent commands, diagnostics, timers, and action controls
Media proxy routing camera and audio streams through the server to prevent device overload
Eight ESP-IDF firmware projects across ESP32-C6, ESP32-C3, and ESP32 device families
Local firmware catalog with semantic versioning (d/s/p channels) for future OTA rollout