AVAILABLE Q3 — 2026

Back to lab notebook

Experiment // 001 Active Started Sep 2026

ESP32-S3 smart hub

Ongoing build: an ESP32-S3 smart hub with air-quality sensors, a 5-level alert state machine and a cloned-voice French TTS. Because off-the-shelf hubs don't say things the way I want.

Started
Sep 2026
Status
Active
Category
Home lab · ESP32 · TTS
Stack
ESPHome · YAML · C++

An ongoing home lab build: a custom smart hub replacing an off-the-shelf smart home device that never quite did what I wanted. Built around an ESP32-S3-DevKitC-1-N16R8 (16MB flash, 8MB octal PSRAM) housed in the original enclosure, wired into Home Assistant over ESPHome.

Sensors

Air-quality package: SCD41 (photoacoustic NDIR for CO₂) with BMP280 pressure compensation, SHT45 for temperature and humidity, and a DFRobot SEN0466 electrochemical CO monitor. Hardware selected; integration is next on the workbench.

Audio and voice

MAX98357A I²S amplifier for audio output, driving a French text-to-speech pipeline via Pocket TTS. The voice is Avina_24k — a custom clone trained from Mass Effect Andromeda audio, because the default TTS voices lack character. Critical alerts play pre-generated WAV files for guaranteed reliability; everything else is synthesized on-demand and cached.

Buzzer

A TFM-28 piezo transducer driven through a discrete C1815 oscillator with a 60mH center-tapped inductor, switched by a BC238 commutator on GPIO16. Old-school analog circuitry meeting modern firmware — because sometimes you just want a real buzzer, not another WAV file.

Alert state machine

Five levels: notification-low (LED pulse), notification-medium (LED + buzzer), moderate alarm (slow buzzer with daily reminders), urgent alarm (fast buzzer, gyrophare LED, escalating reminders), and critical (no dismissal, never goes chronic). TTS and buzzer are coordinated — the buzzer plays while TTS prepares, cuts during the announcement, and resumes when the speaker goes idle.

Coming next

INMP441 microphone for a local voice assistant via microWakeWord. A dedicated ESP32-C3 for the video interphone integration (doorbell detection, gate relay control). And eventually a Bluetooth proxy on the older ESP32-WROOM-32U with its external antenna, kept separate from the main hub.