FOURLEDS Cloud Controllers
Cellular lighting controllers for heritage facades: six KiCad boards, ESP-IDF firmware, fleet server, dashboard
A complete system for remotely controlling and monitoring architectural facade lighting across a region: custom KiCad hardware (4G 'core' controller, relay 'coil' units, 8-channel mains...

A complete system for remotely controlling and monitoring architectural facade lighting across a region: custom KiCad hardware (4G 'core' controller, relay 'coil' units, 8-channel mains presence 'sensor'), ESP-IDF C++ firmware with a hardened cellular/MQTT stack and ESP-NOW local mesh, and a FastAPI + PostgreSQL/TimescaleDB + EMQX fleet server with a SvelteKit dashboard (map, schedules, OTA, compliance, Telegram bot).
Deployed on a fleet of ~18 sites in production, with sunrise/sunset scheduling, OTA pipeline and deep field-stability instrumentation.
Production hardware for a commercial street/architectural lighting control system (silkscreen: 'FOURLEDS Online controller v. 2.11.7').
A 4G Core board (ESP32-C3-WROOM-02 + SimCom A7672E/S, 102.8 x 87 mm, 2-layer, 75 footprints, 1188 tracks) talks to the cloud over LTE and to satellite modules over ESP-NOW: the Coil board (7x 16 A Hongfa relays, MOV protection, DS3231 RTC, HDC1080 climate sensor, ADM2582E isolated RS-485), the Sensor board (8x 220 V presence inputs via LTV-817S optos), a DALI bus interface (EL357N optos, MB6S bridge, isolated URB2403S DC-DC) and a ZMPT101B voltage-monitor board.
An earlier monolithic 'All-in-One' (208 x 87 mm, 229 footprints, ESP32-S3 + SIM800C + BL0937 energy metering + CP2102N USB) and the 2025 'Simple LED Controller' generation show the design evolution.
Gerbers, drill files, interactive BOMs, 3D STEP/STL/GLB exports and assembly drawings exist for the shipped boards.
What it does
- Cellular-only controller firmware: PPP over 3GPP 27.010 CMUX with a parallel AT channel for SMS/CSQ, multi-level recovery ladder (MQTT reconnect -> PDP re-activation -> DCE re-init -> PWRKEY power-cycle -> RESET)
- ESP-NOW reliable relay between core and dependent coil/sensor boards with ack/dedupe rings, idempotent command replay and dependency OTA (dep_ota)
- On-device stability log (stablog) surviving resets via RTC_NOINIT, plus server-side stablog ingest and 7-day health exports used to diagnose carrier CGNAT blackholes and heap storms
- Server: MQTT consumer, command service with watchdog, sunrise/sunset scheduler (astral), schedule push worker, OTA engine with artifact library auto-published from the PlatformIO build, power/relay/compliance analytics
- SvelteKit dashboard: fleet map (MapLibre), per-device pages (ping, stablog, relay history, compliance), lighting schedule editor, OTA, audit, control center, raw MQTT/ESP-NOW admin views, i18n
- Core: ESP32-C3 + A7672 LTE modem with micro-SIM, SMA antenna, 12x SN74LVC1T45 1.8 V level shifters, MIC29302 LDOs, NSD15-12S5/48S5 isolated DC-DC so the same board runs from 12 V or 48 V, DS3231 RTC, VL53L4CX ToF sensor, ESD arrays, Cloud/4G status LEDs
- Coil: 7x HF32FV-16 16 A relays with MMBT3904 drivers and 14D471K MOVs, PC817 optos, DS3231, HDC1080 temp/humidity, ADM2582E isolated RS-485, SN74AXC4T245 level shifter - 32.9 x 86.5 mm slim form factor
- Sensor: 8-channel 220 V presence detection (9x LTV-817S, S1M diodes, TE 282837 terminals), 50 x 87 mm
- DALI: bus-powered DALI interface (EL357N optos, MB6S bridge, IRLML0060 MOSFETs, SMAJ33A TVS, URB2403S isolated supply) - Aug 2026 work in progress
Full vertical stack designed and built by one engineer: PCB design (9 KiCad projects, gerbers, 3D renders) -> ESP-IDF firmware with a custom modem recovery FSM, CMUX/PPP cellular stack, ESP-NOW reliable relay and self-reporting stability log -> production FastAPI/TimescaleDB/EMQX backend with 58 migrations, 40 test modules, scheduler, OTA pipeline and Telegram bot -> SvelteKit map dashboard. Rigorous, data-driven field engineering: multi-week fleet telemetry analyses that traced outages to carrier CGNAT and heap starvation, and shipped targeted fixes (storm-aware backoff, reconnect-burst suppression, downlink keepalive). Cryptographically sealed SMS gateway transport. Real production deployment controlling facade lighting of heritage buildings in several cities. A shipped, fielded product line, not a hobby board: multiple fabricated revisions (EasyEDA v993->v1235 then KiCad 2025-11 -> 2026-08), mixed mains/LTE/isolated-RS-485 designs, a modular 87 mm form factor, dual 12/48 V input, fab outputs and interactive BOMs, plus a custom BOM price/availability checker with API rate-limit tracking.
Gallery








Want something like this?
I build it live on a Zoom call, you watch the screen, the timer stops when you say stop. First 15 minutes are free.