How agharsallah/esp-labs works
esp-labs is an ESP32-S3 learning-lab repository: learners run standalone firmware labs across display/input, Wi-Fi, RFID/NFC, Bluetooth LE and sound, reusing shared kit libraries. Some labs extend into companion phone or desktop workflows, including door-card management, a friends game, BLE control, Wi-Fi control and AI-assisted weather. The graph preserves these branches and central shared layers; source excerpts are selective, so connections among unsampled subsystems are shown only where the README documents them.
Main entry points: src/main.cpp BLE labs · src/main.cpp Wi-Fi labs · src/main.cpp RFID labs · src/main.cpp Sound labs
Components 19
Firmware tracks
- Display labs
labs/03b-showcase/src/main.cpp - Wi-Fi labs
labs/wifi-lab-w2/src/main.cpp - RFID labs
labs/rfid-lab-r7/src/main.cpp - BLE labs
labs/ble-lab-b7/src/main.cpp - Sound labs
labs/sound-lab-s8/src/main.cpp - Weather and AI
labs/wifi-lab-w3/src/main.cpp
Shared firmware kits
- Wi-Fi kit
kit/lib/wifi-kit/src - BLE shell
kit/lib/ble-kit/src/ble_lab.h - BLE links
kit/lib/ble-kit/src/ble_link.h - BLE peripheral
kit/lib/ble-kit/src/server_link.h - BLE views
kit/lib/ble-kit/src/bench_views.h - Sound shell
kit/lib/sound-kit/src/sound_lab.h - Sound analysis
kit/lib/sound-kit/src/onsets.h
Companion apps
- Door manager
apps/door-app/src/App.tsx - Friends game
apps/friends-app/src/App.tsx - BLE controller
apps/ble-app/src/App.tsx - Wi-Fi dashboard
apps/dashboard/web/src/App.tsx
Network services
- AI gateway
apps/ai-gateway
Other components
- Learner
Connections 20
- Learner → Display labs: runs labs
README.md - Learner → Wi-Fi labs: runs labs
README.md - Learner → RFID labs: runs labs
README.md - Learner → BLE labs: runs labs
README.md - Learner → Sound labs: runs labs
README.md - Wi-Fi labs → Wi-Fi kit: uses kit
README.md - RFID labs → Wi-Fi kit: uses kit
README.md - BLE labs → BLE shell: uses shell
labs/ble-lab-b7/src/main.cpp - BLE labs → BLE peripheral: uses peripheral
labs/ble-lab-b7/src/main.cpp - BLE labs → BLE views: uses views
- BLE shell → BLE links: reads link state
kit/lib/ble-kit/src/ble_lab.h - BLE peripheral → BLE links: updates state
kit/lib/ble-kit/src/server_link.h - Sound labs → Sound shell: uses shell
labs/sound-lab-s8/src/main.cpp - Sound labs → Sound analysis: uses onset analysis
- RFID labs → Door manager: companion app
labs/rfid-lab-r7/src/main.cpp - RFID labs → Friends game: companion app
- BLE labs → BLE controller: companion app
README.md - Wi-Fi labs → Wi-Fi dashboard: phone control
labs/wifi-lab-w2/src/main.cpp - Wi-Fi labs → Weather and AI: extends Wi-Fi
README.md - Weather and AI → AI gateway: AI requests
labs/wifi-lab-w3/src/main.cpp