# OpenScribe firmware ESP32-S3 recorder firmware. Built with PlatformIO + Arduino-ESP32. > Status: M0 scaffold. Boots and reports the board profile + PSRAM. Audio, storage, WiFi, > REST API, uploader and BLE land in milestones M1-M4 (see `../state/TODO.md`). ## Boards Two profiles, matching `../hardware/BOM.md`: - `esp32s3_dev` (default) - ESP32-S3 devkit with PSRAM, external I2S mic + SD module. - `xiao_esp32s3` - Seeed XIAO ESP32-S3 (Sense): compact, onboard PDM mic + microSD. ## Build and flash ```bash pio run # build default env (esp32s3_dev) pio run -e xiao_esp32s3 # build the compact profile pio run -t upload # flash over USB pio device monitor # serial console at 115200 ``` Install PlatformIO (`pip install platformio` or the VS Code extension). On Windows install the USB-serial driver (CP210x / CH34x) so the board enumerates a COM port. ## Layout ``` platformio.ini Build profiles (esp32s3_dev, xiao_esp32s3) include/pins.h Pin map (override per board; defaults = BOM Build B) src/main.cpp Entry point + module seams ``` ## Design The device records audio to microSD and syncs three ways: BLE (control/provisioning), WiFi REST API (transfer to the app), and independent WiFi upload to object storage when on charge. See `../state/ARCHITECTURE.md` and the API in `../api/openapi.yaml`.