Bootstrap of the project (M0). Sets up the monorepo, design docs, hardware BOM, the open API contract, component skeletons, licensing and CI, following the Default Workflow SOP. What changed: - CLAUDE.md + docs/: copied the Default Workflow so sessions load the SOP. - state/: PROJECT, ARCHITECTURE, DECISIONS, TODO, NOTES filled in for OpenScribe. ARCHITECTURE captures the four-part design (firmware, server, app, case) and the three sync paths; DECISIONS records the hardware, AI-stack, storage, app and licensing choices; TODO lays out milestones M1-M9. - hardware/BOM.md: two build options (compact XIAO ESP32-S3 Sense; dev ESP32-S3 + I2S mic + SD), wiring/pinout, indicative cost. - api/openapi.yaml: the completely open API (device + server surfaces), including recording list/download/delete and exports (wav/ogg/txt/srt/vtt/md/json). - firmware/: PlatformIO ESP32-S3 project, two board profiles, pin map, boot scaffold with module seams for M1-M4. - server/: FastAPI skeleton mirroring the OpenAPI, config for self-hosted MinIO, faster-whisper and Ollama; stub routes browsable at /docs. - app/, case/: Flutter app plan; parametric OpenSCAD enclosure. - Licensing: GPL-3.0 (code), CERN-OHL-S-2.0 (hardware), CC-BY-SA-4.0 (case/docs), REUSE-style LICENSES/ with SPDX headers; LICENSING.md explains the split. - CI: Forgejo Actions workflow builds firmware (both profiles) and lints/imports server. Why: - Everything self-hosted and openly licensed per the user's requirements: an open API, three sync paths (BLE control, WiFi transfer, independent WiFi upload on charge to generic cloud storage), and a full self-hosted transcription+summary stack. Notes: - No custom PCB in v1; off-the-shelf modules. Physical verification waits on parts. - Component code is stubs at M0; features land milestone by milestone, each as its own branch/PR per the workflow. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
35 lines
No EOL
1,010 B
INI
35 lines
No EOL
1,010 B
INI
; SPDX-License-Identifier: GPL-3.0-only
|
|
; OpenScribe firmware - PlatformIO project.
|
|
; Two build profiles: a dev board (Build B) and the compact XIAO ESP32-S3 (Build A).
|
|
; See ../hardware/BOM.md for the matching hardware and pinout.
|
|
|
|
[platformio]
|
|
default_envs = esp32s3_dev
|
|
src_dir = src
|
|
include_dir = include
|
|
|
|
[env]
|
|
platform = espressif32
|
|
framework = arduino
|
|
monitor_speed = 115200
|
|
build_flags =
|
|
-DCORE_DEBUG_LEVEL=3
|
|
; PSRAM is required for audio ring buffers
|
|
-DBOARD_HAS_PSRAM
|
|
lib_deps =
|
|
; Pinned in later milestones as modules land (I2S mic, SD, BLE, HTTP server).
|
|
|
|
; --- Build B: ESP32-S3 dev board with PSRAM (N16R8), external I2S mic + SD ---
|
|
[env:esp32s3_dev]
|
|
board = esp32-s3-devkitc-1
|
|
board_build.arduino.memory_type = qio_opi
|
|
build_flags =
|
|
${env.build_flags}
|
|
-DOPENSCRIBE_BOARD_DEV=1
|
|
|
|
; --- Build A: Seeed XIAO ESP32-S3 (Sense) - compact wearable, onboard PDM mic + SD ---
|
|
[env:xiao_esp32s3]
|
|
board = seeed_xiao_esp32s3
|
|
build_flags =
|
|
${env.build_flags}
|
|
-DOPENSCRIBE_BOARD_XIAO=1 |