How seymenkonuk/esp32-handheld-application-platform works
ROWS is an ESP32 application platform with companion OTA and MQTT-auth backend services and asset converters. The principal workflow is device startup, input-driven application execution and rendering, with optional network configuration, MQTT communication, and OTA checks/downloads. The graph combines sampled call sites and SOURCE INDEX references with documented capabilities; unsampled subsystems and external service wiring are linked only where the README supports them.
Main entry points: main.cpp Firmware Loop · NetManager.cpp Network Settings · OTAService.cpp OTA Updater · AppManager.cpp App Lifecycle
Components 29
Firmware Runtime
- Firmware Loop
firmware/src/main.cpp - App Registry
firmware/src/app/AppStack.cpp - App Lifecycle
firmware/src/core/system/AppManager.cpp - Input Manager
firmware/src/core/system/InputManager.cpp - Screen Driver
firmware/src/device/Screen.cpp - Graphics Renderer
firmware/src/graphics/Renderer.cpp - LittleFS Access
firmware/src/core/system/Filesystem.cpp - Wi-Fi and AP
firmware/src/network/Network.cpp - Device Web Server
firmware/src/network/DeviceServer.cpp - HTTP API Client
firmware/src/network/APIClient.cpp - Device Certificates
firmware/src/network/Certificate.cpp - OTA Updater
firmware/src/network/OTAService.cpp - MQTT Client
firmware/src/network/MQTTClient.cpp - Audio Playback
firmware/src/audio/MusicPlayer.cpp
Device Applications
- Network Settings
firmware/src/app/system/netmanager/NetManager.cpp - Update Center
firmware/src/app/system/updatecenter/UpdateCenter.cpp - System Apps
firmware/src/app/system/launcher/Launcher.cpp - User Apps
firmware/src/app/user/app1/App1.cpp
Backend Services
- Firmware Update API
backends/services/firmware-update-service/app/Http/Controllers/UpdateController.php - Firmware Metadata
backends/services/firmware-update-service/app/Domain/Services/FirmwareService.php - Firmware Repository
backends/services/firmware-update-service/app/Domain/Repositories/FirmwareRepository.php - MQTT Auth API
backends/services/mqtt-auth-service/app/Http/Controllers/AuthController.php
Asset Converters
- Image Converter
tools/image-converter/src/writer.c - Image Writer
tools/image-converter/src/writer.c - Melody Converter
tools/melody-converter/src/main.c - Melody Writer
tools/melody-converter/src/writer.c - Note Definitions
tools/melody-converter/include/pitches.h
Other components
- Device User
- MQTT Broker
Connections 32
- Device User → Firmware Loop: uses device
README.md - Firmware Loop → Input Manager: updates input
firmware/src/main.cpp - Firmware Loop → App Lifecycle: runs lifecycle
firmware/src/main.cpp - Firmware Loop → LittleFS Access: initializes
firmware/src/main.cpp - Firmware Loop → Wi-Fi and AP: starts networking
firmware/src/main.cpp - Firmware Loop → Device Web Server: starts and loops
firmware/src/main.cpp - Firmware Loop → HTTP API Client: initializes
firmware/src/main.cpp - Firmware Loop → Device Certificates: initializes
firmware/src/main.cpp - Firmware Loop → OTA Updater: initializes
firmware/src/main.cpp - Firmware Loop → Audio Playback: initializes playback
firmware/src/main.cpp - Firmware Loop → App Registry: selects initial app
firmware/src/main.cpp - App Lifecycle → System Apps: runs current app
- App Lifecycle → User Apps: runs current app
- Network Settings → Input Manager: reads controls
firmware/src/app/system/netmanager/NetManager.cpp - Network Settings → App Lifecycle: switches app
firmware/src/app/system/netmanager/NetManager.cpp - Network Settings → Wi-Fi and AP: toggles network
firmware/src/app/system/netmanager/NetManager.cpp - Network Settings → Device Web Server: toggles server
firmware/src/app/system/netmanager/NetManager.cpp - Network Settings → Graphics Renderer: renders settings
firmware/src/app/system/netmanager/NetManager.cpp - Graphics Renderer → Screen Driver: draws on
- OTA Updater → HTTP API Client: requests updates
firmware/src/network/OTAService.cpp - OTA Updater → LittleFS Access: writes firmware
firmware/src/network/OTAService.cpp - HTTP API Client → Device Certificates: uses client TLS
firmware/src/network/APIClient.cpp - OTA Updater → Firmware Update API: checks and downloads
README.md - Firmware Update API → Firmware Metadata: gets version data
backends/services/firmware-update-service/app/Http/Controllers/UpdateController.php - Firmware Metadata → Firmware Repository: queries metadata
backends/services/firmware-update-service/app/Domain/Services/FirmwareService.php - MQTT Client → MQTT Broker: communicates
README.md - MQTT Broker → MQTT Auth API: authenticates via HTTP
README.md - Image Converter → Image Writer: writes converted image
- Melody Converter → Melody Writer: writes converted melody
- Melody Converter → Note Definitions: uses note data
- Image Converter → Device User: prepares device assets
README.md - Melody Converter → Device User: prepares device assets
README.md