Welcome to SCADABLE

SCADABLE is the developer platform for connected hardware. You write firmware in C with ESP-IDF, link libscadable for the platform plumbing, push to GitHub, and SCADABLE handles the cloud side: device identity, secure MQTT, OTA updates, and a dashboard your team operates from.

Think of it as Vercel for hardware. You ship code, we ship it to your fleet — no broker setup, no certificate management, no infrastructure to maintain.

Add libscadable to your firmware

idf.py add-dependency "scadable/libscadable^0.1.0"

The minimum integration

#include "scadable.h"
#include "esp_wifi.h"

void scadable_user_main(void) {
    my_wifi_connect();          // your code: bring up the network
    // ... your application code ...
}

That's the entire firmware-side integration. The library owns app_main (as a weak symbol); you define scadable_user_main instead. Your job: bring up the network (Wi-Fi STA, Ethernet, cellular — whatever fits your hardware). The library's job: everything between IP-up and the dashboard.

Provisioning happens at flash time via the dashboard's browser flasher. The cert + identity + broker defaults are written into NVS. On boot, the library reads them, calls the edge router to discover its broker, opens a TLS MQTT session, starts publishing heartbeats, and listens for OTA commands. Device shows up green on the dashboard within ~30 seconds.

What you get in v0.1.0

  • Certificate-based device identity. Per-device cert minted by SCADABLE, flashed into NVS by the web flasher.
  • Broker discovery. Library hits edge.scadable.com/v1/route on every boot and connects to the broker it returns. Regions can change without flashing.
  • Managed MQTT. TLS to the discovered broker. Reconnect with exponential backoff is handled.
  • Heartbeats. Periodic device-health publish every 30 seconds (uptime, free heap, boot count, firmware version).
  • OTA updates. Dashboard Deploy triggers a download + install + restart + auto-rollback-on-failure flow. No code on your side.
  • Dashboard. Live status, deploy history, per-device drill-down.

What's coming in v0.2.0+

  • Customer-facing event publishing helpers and typed metric APIs.
  • Log forwarding from ESP_LOG_* to the dashboard.
  • Inbound command handlers beyond OTA.
  • Schema-driven typed events from .scadable/events.yaml.
  • mTLS at the broker for stronger device auth.

v0.1.0 ships the smallest demonstrable thing — prove the install + provision + heartbeat + OTA loop end-to-end. Everything else layers on top of the same primitives.

Where to start

  • Quickstart: zero to first device in ~15 minutes.
  • Mental Model: how libscadable + the build pipeline + the cloud fit together.
  • Library / ESP32: the v0.1.0 component, surface and integration patterns.
  • Developer MCP: point your AI editor at the live docs for accurate answers.