How racmanmontes09-cyber/firmware-camera works
Project L.E.A.F. Camera combines ESP32 camera/audio firmware, LAN live-view endpoints, and a Go relay for remote camera streams. The main workflow captures video and audio, serves local viewers and telemetry, and can uplink to relay services; viewers receive streams through the relay. The README documents the dashboard, snapshots, controls, diagnostics, and backend heartbeat. Edges are limited to relationships visible in excerpts or the README; unsampled implementation details are not inferred.
Main entry points: main.cpp Firmware Loop · main.go Go Relay Server · StreamServer.h HTTP Stream Server · CameraManager.h Camera Capture
Components 25
Device Capture
- Firmware Loop
src/main.cpp - Device Configuration
include/Config.h - Camera Capture
include/CameraManager.h - Microphone Capture
include/AudioManager.h
Local Experience
- HTTP Stream Server
include/StreamServer.h - Live Dashboard
include/StreamServer.h - JPEG Snapshot
include/StreamServer.h - Status Telemetry
include/StreamServer.h - Camera Controls
include/StreamServer.h
Connectivity and Uplink
- Wi-Fi Manager
include/NetworkManager.h - Backend Heartbeat
src/main.cpp - WebSocket Uplink
include/RelayClient.h - RTP Video Pusher
include/RtpPusher.h - TLS Trust Anchor
include/TlsCertificates.h
Remote Relay
- Go Relay Server
relay/main.go - Camera Authentication
relay/auth.go - Camera Sessions
relay/session.go - Camera WebSocket
relay/camera.go - Video Stream Handler
relay/stream.go - Audio Stream Handler
relay/audio.go - Credential Handler
relay/credentials.go
Other components
- Camera Viewer
- Laravel Backend
- Remote Viewer
- RTP Receiver
Connections 28
- Firmware Loop → Camera Capture: manages
src/main.cpp - Firmware Loop → Microphone Capture: manages
src/main.cpp - Firmware Loop → Wi-Fi Manager: manages
src/main.cpp - Firmware Loop → HTTP Stream Server: monitors
src/main.cpp - Firmware Loop → WebSocket Uplink: checks status
src/main.cpp - Firmware Loop → Backend Heartbeat: runs
src/main.cpp - Firmware Loop → Device Configuration: uses
src/main.cpp - HTTP Stream Server → Camera Capture: streams frames
include/StreamServer.h - HTTP Stream Server → Microphone Capture: serves audio
include/StreamServer.h - Camera Viewer → Live Dashboard: opens
README.md - Live Dashboard → HTTP Stream Server: requests
include/StreamServer.h - Camera Viewer → JPEG Snapshot: requests
README.md - JPEG Snapshot → HTTP Stream Server: handled by
README.md - Camera Viewer → Status Telemetry: requests
README.md - Status Telemetry → HTTP Stream Server: handled by
README.md - Camera Viewer → Camera Controls: adjusts
include/StreamServer.h - Camera Controls → Camera Capture: sets quality
include/StreamServer.h - Backend Heartbeat → Laravel Backend: posts heartbeat
src/main.cpp - WebSocket Uplink → TLS Trust Anchor: uses trust
include/RelayClient.h - WebSocket Uplink → Go Relay Server: connects by WSS
include/RelayClient.h - RTP Video Pusher → Camera Capture: captures frames
include/RtpPusher.h - RTP Video Pusher → RTP Receiver: sends RTP
- Go Relay Server → Camera Authentication: routes camera
relay/main.go - Go Relay Server → Video Stream Handler: routes stream
relay/main.go - Go Relay Server → Audio Stream Handler: routes audio
relay/main.go - Go Relay Server → Credential Handler: routes credentials
relay/main.go - Go Relay Server → Camera Sessions: creates manager
relay/main.go - Remote Viewer → Go Relay Server: requests streams