Files
lisael-box/sdcard/README.md
T
Clément Saillant 72fee10538 docs: add README and SD card layout
Context:
  The README is the primary usable deliverable: how to install
  ESP-IDF + ESP-ADF, build, flash, and prepare the microSD card, plus an
  honest list of what is unverified.

Changes:
  - README.md: prerequisites (ADF_PATH), build/flash, provisioning,
    module table, child-safety notes, and a thorough "A verifier sur le
    materiel" section (build, BSP<->ADF I2S, radio URLs, emoji fonts...)
  - sdcard/README.md + sdcard/sounds/manifest.json example

Impact:
  A reader can stand the project up and knows exactly what still needs
  validation on real hardware.
2026-06-14 00:40:46 +02:00

45 lines
1.5 KiB
Markdown

# Carte microSD — disposition attendue
Formatez la carte en **FAT32** et copiez l'arborescence suivante à la racine :
```
/ (racine de la carte microSD, montée sur /sdcard)
└── sounds/
├── manifest.json # décrit la grille de la "Boîte à sons"
├── miaou.mp3
├── ouaf.mp3
├── coucou.mp3
├── bravo.mp3
├── histoire.mp3 # joué par le bouton "Histoire du soir" (Horloge)
└── calme.mp3 # ambiance douce optionnelle (Coin calme)
```
## `manifest.json`
Tableau JSON d'objets `{ file, title, emoji }` :
```json
[
{ "file": "miaou.mp3", "title": "Le chat", "emoji": "🐱" }
]
```
- `file` : nom du fichier **sous `/sounds/`** (pas de chemin absolu).
- `title` : libellé affiché sous le bouton.
- `emoji` : icône du bouton (rendu si une police emoji est embarquée — voir
README principal, section "À vérifier sur le matériel").
Le firmware lit jusqu'à `LISAEL_SD_MAX_SOUNDS` (32) entrées. Sans carte ou sans
`manifest.json`, l'écran "Boîte à sons" affiche un message d'invite au lieu
d'une erreur.
## Format audio
Fichiers **MP3** (le pipeline SD utilise le décodeur MP3 d'ESP-ADF). Les clips
seront générés plus tard par TTS FR. Préférez un débit modéré (ex. 128 kbit/s,
44.1 kHz) pour un décodage léger sur l'ESP32-S3.
Les fichiers `histoire.mp3` et `calme.mp3` sont chargés par nom en dur
(respectivement par l'écran Horloge et le Coin calme) ; ils peuvent aussi
figurer dans le `manifest.json` pour apparaître dans la grille.