Troubleshooting

Start by reading the panel itself — it tells you which stage it is stuck at.

What the panel is telling you

On the panelMeaning
DataPix splashBooting. Clears after a few seconds.
Scrolling “CONNECT TO WIFI …” No Wi-Fi saved. The device is running its own DataPix access point — join it and open http://192.168.4.1.
WIFI CONNECTEDJust joined your network (shown ~3 s).
Scrolling “OPEN http://… TO CREATE YOUR FIRST VIEW” On your network, but no enabled view has any content yet.
Your views, rotatingNormal operation.

Placeholders inside a view

ShowsMeaning
--Value not fetched yet — wait one rotation.
N/AThe API field / path didn't match the response.
ERRThe response wasn't valid JSON, or was larger than 8 KB.

Symptom → cause → fix

SymptomCauseFix
Panel dark, nothing shows No panel power, or the panel is running off the controller's USB Give the panel its own 5 V supply; check the HUB75 ribbon orientation.
Whole panel red / a colour channel dead / washed-out colours Undervoltage — the panel is not getting enough current Use a dedicated 5 V supply sized for the panel (a 64×32 panel at full white draws several amps). This is the usual cause, not wiring.
Can't reach the interface Wrong IP, different network, or expecting datapix.local (which doesn't exist on this build) Use the IP shown on the panel, on the same network. Check WiFi Connection → WiFi Status.
Stuck on the DataPix access point / forgot Wi-Fi password Saved Wi-Fi credentials are wrong System → Factory reset — the device clears its settings and reopens the setup access point.
Phone's captive-portal page hangs The captive browser is stuck Open http://192.168.4.1 directly in a normal browser.
Panel says “NO VIEWS SET” but you have a view The view is disabled or has no content Enable it and give it at least one element, some painted pixels, an effect or an imported image.
A value stays on -- Not fetched yet, or the element is on a view that isn't in rotation Wait one rotation; make sure the element is on an enabled view.
A value shows N/A The saved JSON path no longer matches the response Re-open the view, run Test API again, re-pick the field.
A $sensor (temperature / humidity) value stays on -- No DHT22 fitted, wrong DHT_PIN, or the sensor read is failing Check the DHT22 wiring and that its data pin matches DHT_PIN (GPIO2 by default). The serial log prints [sensor] DHT read failed (NaN) on a bad read. If your build has no sensor, remove the $sensor element.
Live data updates slowly or not at all Provider poll intervals and free-tier rate limits Built-in providers refresh on their own schedule (weather every 10 min, crypto every 2 min, stock quote every minute). Free API tiers limit requests — e.g. Twelve Data allows 8/min and a stock view costs two calls.
Animation strobes / static text on it flickers Older single-buffered rendering Already fixed in current firmware (double-buffered). Update the firmware if you're on an old build.
Device reboots itself every few minutes under heavy use Memory fragmentation recovery Expected self-heal. Reduce the number of enabled data-bound views if it happens often.
Building from source — developer issues
SymptomFix
Boot-loop with RTCWDT_RTC_RST roughly every 9 s, no serial console Keep the PlatformIO platform pinned to espressif32@6.3.0; newer versions boot-loop on this ESP32-S3 revision.
Could not open COMx / Access is denied when flashing Kill any stray platformio process holding the port, replug the USB-UART cable, retry.
Blank web interface after esptool erase_flash Run pio run -e esp32-s3-n16r8 -t uploadfs once to rebuild the filesystem partition.
Link error dangerous relocation: l32r Add -mtext-section-literals to the environment's build_flags.