ESP-IDF firmware for the M5StickS3 (ESP32-S3-PICO-1-N8R8) companion device.
- MCU: ESP32-S3 dual-core @ 240MHz, 8MB Flash, 8MB PSRAM
- Display: ST7789 1.14" IPS, 135x240 RGB565
- Audio: ES8311 codec + AW8737 amp + MEMS mic
- Input: 2 buttons (A=front, B=side)
- Battery: 250mAh LiPo
- Extras: BMI270 IMU, IR TX/RX
See HARDWARE.md for full pin map.
# 1. Install ESP-IDF v5.2
# 2. Configure secrets
cp .env.example .env
# Edit .env with your WiFi, API key, etc.
# 3. Build and flash
make flashWiFi can be configured via:
- Build-time: Set
SECRET_SSID/SECRET_PASSWORDin.env - Improv Serial: Use a browser-based Improv tool over USB
- Serial commands:
APIKEY:xxx,VOLUME:50,GETCONFIG,CLEARCONFIG
- Button A: Toggle conversation mode (press to start/stop voice chat)
- Button B: Reserved for future use
- Display shows connection status, battery, and MQTT activity
Same as firmware-watcher but adapted for M5StickS3 hardware:
- ST7789 SPI display (was SPD2010 QSPI)
- ES8311 ADC for microphone (was ES7243E separate ADC)
- GPIO buttons (was touch screen + rotary knob)
- No WS2812 LED (display-based state indicators)
- Separate I2S ports for speaker (NUM_0) and mic (NUM_1)