Supported Devices

What works today, what's stubbed, what's planned. Pick a row before you place a parts order.

ESP32 family

ChipLibrary compilesgateway-provisioningCaptive portalOTAProduction-ready
ESP32Yesv0.1.1YesYesYes
ESP32-S3Yesv0.1.1YesYesYes
ESP32-C3YesNoNoYes (with hand-flashed WiFi)Roadmap
ESP32-C6YesNoNoYes (with hand-flashed WiFi)Roadmap
ESP32-S2YesNoNo (no WiFi softAP support in the variant)Yes (with hand-flashed WiFi)Not planned

Notes:

  • gateway-provisioning v0.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 libscadable builds cleanly for the target. idf.py build succeeds; the artifact runs end-to-end against the broker.
  • ESP32-C3 / C6 will land once the C3 IDF target lands in the gateway-provisioning build matrix. No code blocker; toolchain matrix work.

Flash + RAM requirements

MinimumRecommended
Flash4 MB8 MB
RAM320 KB512 KB (S3 + PSRAM is comfortable)
Partitionsfactory + ota_0 + ota_1 + nvs ≥ 16 KBDefault 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-N16R8V variant 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

TargetTier
x86_64-unknown-linux-gnuProduction
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.