Back to portfolio

Coolblue LED Controller

ESP32 LED strip controllers for Coolblue stores across Europe — on the createq BRIQX 208-series controller family. Dashboard sends MQTT color commands; the fixture drives the strips. Native ESP-IDF (ported from Arduino), SoftAP provision, staging/prod MQTT. Ship: v1.0.x.

BRIQX 208-series controller used for Coolblue LED

Project Overview

Coolblue retail furniture / demo lighting needs remote color control from BRIQX Control — same MQTT fleet as the audio demos, running on 208-series BRIQX controllers. I ported the Arduino Coolblue LED controller to native ESP-IDF on ESP32-S3 Mini, kept button/UI parity for store staff, and hooked strip colors + install IDs into the dashboard Device Actions / LED colors pages.

Flow: BRIQX dashboard → MQTT → ESP32 (208) → LED strips. SoftAP portal at http://10.10.10.10/; build flag selects production MQTTS or BRIQX staging broker.

BRIQX 208i controller with interactive display

My Key Contributions

1
Arduino → Native ESP-IDF Port

Rewrote the LED strip controller for ESP32-S3 Mini (USB-JTAG /dev/ttyACM0) with host parity tests against the original Arduino sources. BOOT/B8 button map preserved: SoftAP hold, double-tap factory Wi-Fi wipe, CYCLE / SELECT_COLOR strip UI. Outcome: production firmware in the same monorepo toolchain as Audio AIO.

2
Wi-Fi + MQTT Staging/Prod Channels

First-boot SoftAP portal, NVS Wi-Fi defaults, forever reconnect with backoff, and build-time CQ_STAGING_BUILD for mqtt://…:11883 vs production mqtts://…:8883 / WSS. Boot log exposes staging marker for field debug. Outcome: same binary family safely targets staging or production brokers.

3
Dashboard LED Colors & Device Actions

Integrated with fleet cloud: factory + custom color profiles, strip-by-name/RGB resolution, Install IDs (customer / fleet / position) from dashboard or SoftAP, factory reset via MQTT. ACL tests cover company-scoped LED color access for staff vs customers. Outcome: operators set strip colors and install identity without a serial console.

4
Monorepo Build & Flash Tooling

Added ./build.sh led-controller targets (build, flash, app-flash, host test, staging env). Chip mismatch guards refuse wrong USB devices. Outcome: factory and lab use the same scripted path as other CreateQ ESP products.

Operator UX (on-device)

  • SoftAP: hold BOOT in first 3 s, or hold BOOT ≥600 ms / B8 ≥5 s at runtime
  • Factory Wi-Fi wipe: double short BOOT within 4 s, then short B8 (keeps MQTT password + LED NVS)
  • Strip UI: IDLE → CYCLE strips 1–4 → SELECT_COLOR presets → STORE; 10 s idle timeout

Key Metrics

1.0.x
Ship Version
4
LED Strips
16
Color Presets
S3
ESP32 Mini

Technologies

CESP-IDF 5.3ESP32-S3 FreeRTOSMQTT / MQTTSSoftAP NVSOTANext.js Dashboard