FIRMWARE
Flash & Configure
ESP32 firmware for the Void Core. Arduino-based, PlatformIO-managed, MIT licensed.
View Source on GitHubQUICK REFERENCE
At a Glance
CONTROLLER
ESP32 DevKit V1 (38-pin, dual-core)
FRAMEWORK
Arduino via PlatformIO
WIFI SSID
VoidCore
DASHBOARD
http://192.168.4.1
GETTING STARTED
Flash the Firmware
Upload the Void Core firmware to your ESP32 using PlatformIO.
Install PlatformIO
Install Visual Studio Code, then add the PlatformIO IDE extension.
Clone the Repository
Clone the hardware repository from GitHub.
git clone https://github.com/elastik/void-blueprints.git
Open Firmware Directory
Open firmware/ in VS Code. PlatformIO detects platformio.ini automatically.
cd void-blueprints/firmware
Connect ESP32 via USB
Use a data-capable micro-USB cable. Verify the serial port appears.
Upload Firmware
Click PlatformIO Upload or run the command.
pio run --target upload
Verify Boot
Open Serial Monitor at 115200 baud. Look for the Void Core banner.
pio device monitor --baud 115200
CONNECTIVITY
WiFi & Dashboard
The ESP32 creates its own WiFi access point. Connect from any device.
SSID
VoidCore
PASSWORD
voidgrows
DASHBOARD URL
http://192.168.4.1
LOCAL ONLY
All data stays on your local network. No cloud account required.
CONTROLS
Button & Light Modes
The physical button controls light modes and UV-C sterilization.
Short Press
Cycle through light modes
Long Press (3 seconds)
Trigger UV-C sterilization cycle (15 minutes).
SAFETY
UV-C only activates when the dome is seated. Removing it physically breaks the circuit.
HARDWARE
GPIO Pin Reference
Complete GPIO assignments for ESP32 DevKit V1. Safety-critical pins in magenta.
REST API
HTTP Endpoints
The ESP32 serves a local REST API at http://192.168.4.1. All requests and responses use JSON.
/api/statusCurrent sensor readings and system state
{ "temperature": 22.5, "humidity": 88.3, "pressure": 1013.2, "lightMode": "voidGlow", "fanSpeed": 128, "uvcActive": false, "domeSeated": true }/api/lightsSet light mode
{ "mode": "voidGlow" }/api/uvcTrigger UV-C sterilization cycle (15 min)
{ "action": "start", "confirm": true }/api/fanSet fan speed (0–255 PWM)
{ "speed": 180 }/api/humidifierSet target humidity percentage
{ "target": 90 }CRITICAL
Safety Systems
The Void Core uses a hardware-first approach to UV-C safety. Software checks supplement a physical circuit break.
HARDWARE INTERLOCK
A reed switch (GPIO 16) is wired in series with the UV-C LED power path. Removing the dome physically breaks the circuit. No firmware can override this.
FIRMWARE WATCHDOG
Even if the hardware interlock fails, the firmware polls the reed switch state and will refuse to drive GPIO 27 HIGH unless GPIO 16 reads LOW (dome seated).
RED INDICATOR LED
GPIO 2 drives a red LED visible through the dome whenever UV-C is active. Provides a clear visual warning even if the dome is opaque to UV light.