Commit Graph

2 Commits

Author SHA1 Message Date
Clément Saillant e35058f53d chore(box): commit firmware base + feature docs
Backfills the working firmware that had stayed uncommitted across the
build sessions, so the branch is self-contained.

- audio: audio_player, radio_pipeline, sd_player, calm_tone, aac_player
- net: podcast (RSS), udp_log
- modes: balloons, plus calm/games/radio tweaks
- ui: fonts header, icons; build files (CMakeLists, idf_component.yml,
  sdkconfig.defaults)
- docs/superpowers: Histoires design + plan

Note: sdkconfig stays gitignored (Wi-Fi creds + tuned LFN/FS/mbedtls
settings); a fresh checkout must reconfigure those.
2026-06-15 00:20:47 +02:00
Clément Saillant a53d7e273b feat(net,audio): add networking and audio layers
Context:
  Lisael Box needs Wi-Fi + time + weather for the home screen, and an
  audio path for webradio and SD playback, all child-safe.

Approach:
  net/ : STA bring-up with auto-reconnect (creds from NVS then
  menuconfig), SNTP with the Europe/Paris TZ string (no setlocale), and
  a periodic open-meteo.com fetch (HTTPS via the CA bundle, cJSON parse)
  that degrades to "—" on failure.
  audio/ : one shared ES8311 codec (BSP) behind a facade enforcing the
  child volume cap (persisted to NVS). Webradio and SD playback use
  ESP-ADF pipelines (http_stream/fatfs -> decoder -> i2s), guarded by
  __has_include so a no-ADF build still configures.

Changes:
  - net/wifi, net/sntp_time, net/weather
  - audio/audio_player (codec + volume facade)
  - audio/radio_pipeline (ESP-ADF http stream)
  - audio/sd_player (ESP-ADF fatfs + manifest.json parser)

Impact:
  Sources are idiomatic but unverified on hardware. The BSP<->ADF I2S
  ownership and the radio URLs are flagged in the README.
2026-06-14 00:40:19 +02:00