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 a browser dashboard showing device state, recent commands, and proxied camera feeds. 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.
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
Browser dashboard showing device online state, recent commands, and proxied camera feeds
Media proxy routing camera and audio streams through the server to prevent device overload
Seven 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