Supported Devices
What works today, what's stubbed, what's planned. Pick a row before you place a parts order.
ESP32 family
| Chip | Library compiles | gateway-provisioning | Captive portal | OTA | Production-ready |
|---|---|---|---|---|---|
| ESP32 | Yes | v0.1.1 | Yes | Yes | Yes |
| ESP32-S3 | Yes | v0.1.1 | Yes | Yes | Yes |
| ESP32-C3 | Yes | No | No | Yes (with hand-flashed WiFi) | Roadmap |
| ESP32-C6 | Yes | No | No | Yes (with hand-flashed WiFi) | Roadmap |
| ESP32-S2 | Yes | No | No (no WiFi softAP support in the variant) | Yes (with hand-flashed WiFi) | Not planned |
Notes:
gateway-provisioningv0.1.1 is the bootstrap firmware that runs the captive portal. Without it, you can still ship — you just have to write WiFi creds at flash time via Direct mode, and the customer can't change WiFi without re-flashing.- Library compiles means
libscadablebuilds cleanly for the target.idf.py buildsucceeds; the artifact runs end-to-end against the broker. - ESP32-C3 / C6 will land once the C3 IDF target lands in the
gateway-provisioningbuild matrix. No code blocker; toolchain matrix work.
Flash + RAM requirements
| Minimum | Recommended | |
|---|---|---|
| Flash | 4 MB | 8 MB |
| RAM | 320 KB | 512 KB (S3 + PSRAM is comfortable) |
| Partitions | factory + ota_0 + ota_1 + nvs ≥ 16 KB | Default IDF table works |
Sub-4 MB modules can run the library but the dual-OTA + provisioner partitioning is tight. Not officially supported.
WiFi limitations today
- WPA2 personal only. WPA-Enterprise / WPA3 / open networks are roadmap.
- 2.4 GHz only on stock ESP32. ESP32-S3 with the
M-MINI-1U-N16R8Vvariant supports 5 GHz. - Captive portal AP runs on channel 1; no override today.
Linux gateways
gateway-linux is the older binary, separate from libscadable. Same broker, same dashboard, different code path. Use it when you need richer drivers (Modbus TCP, OPC-UA, BLE, BACnet, CAN), are running on a Pi or x86 industrial PC and don't want to write firmware, or need full A/B systemd-managed updates against a Linux rootfs.
Targets
| Target | Tier |
|---|---|
x86_64-unknown-linux-gnu | Production |
aarch64-unknown-linux-gnu (Pi 4/5, generic ARM64) | Production |
armv7-unknown-linux-gnueabihf (older Pi, generic ARMv7) | Production |
Install paths in the older Linux gateway docs are still accurate. Cert auto-rotation and EST simplereenroll are wired and working there — that's the path the ESP port is mirroring.
What's NOT supported
- STM32, nRF, RP2040. No port today. C API is portable; only the platform shim differs. We port when customers ask.
- Bare metal (no RTOS). Library assumes a FreeRTOS-style scheduler.
- MicroPython / Lua / scripting. Not on the roadmap.
Picking a chip for a new project
Default: ESP32-S3 with 8 MB flash, PSRAM if you can swing it. Captive portal works, OTA works, toolchain is the most-tested, on-device EST will land here first.
ESP32 (classic) is the right call when cost matters more than RAM headroom.
ESP32-C3/C6 — wait unless you have a specific reason (low power, BLE/Thread combo).
For non-ESP needs, talk to us before placing the parts order.
Updated 4 days ago
