How racmanmontes09-cyber/firmware works
Project L.E.A.F. is ESP32 firmware for monitoring and controlling a growing environment. Its main runtime initializes configuration, sensors, networking, and storage, then periodically samples sensors and sends telemetry while maintaining MQTT and Wi-Fi. The firmware also exposes actuator control, calibration and diagnostics, OTA rollback protection, and performance reporting. The graph reflects only relationships visible in the excerpts or source index; several subsystem implementations and runtime connections were not sampled.
Main entry points: main.cpp Main loop · ApiClient.cpp MQTT and API client · Sensors.cpp Sensor acquisition · WifiManager.cpp Wi-Fi manager
Components 14
Firmware runtime
- Main loop
src/main.cpp
Sensing and control
- Sensor acquisition
src/Sensors.cpp - Actuator control
src/Actuators.cpp
Connectivity and telemetry
- Wi-Fi manager
src/WifiManager.cpp - MQTT and API client
src/ApiClient.cpp - Telemetry queue
src/TelemetryQueue.cpp - Cellular manager
src/CellularManager.cpp
Configuration and support
- Runtime settings
src/RuntimeConfig.cpp - Firmware settings
include/Config.h - OTA rollback
src/OtaRollback.cpp - Diagnostics
src/Diag.cpp - Performance metrics
src/PerfBenchmark.cpp
Other components
- MQTT service
- Device operator
Connections 12
- Main loop → Runtime settings: initializes
src/main.cpp - Main loop → Sensor acquisition: starts and samples
src/main.cpp - Main loop → Wi-Fi manager: starts and maintains
src/main.cpp - Main loop → Telemetry queue: mounts storage
src/main.cpp - Main loop → MQTT and API client: maintains MQTT
src/main.cpp - Main loop → MQTT and API client: sends readings
src/main.cpp - Main loop → MQTT and API client: publishes heartbeat
src/main.cpp - Main loop → OTA rollback: marks boot success
src/main.cpp - Main loop → Diagnostics: starts diagnostics
src/main.cpp - Main loop → Performance metrics: starts benchmarking
src/main.cpp - Device operator → Main loop: issues serial commands
src/main.cpp - MQTT and API client → MQTT service: communicates via MQTT