Developers

A contract small enough to hold in your head

Firmware and dashboard widgets share a widget ID. Push a value to that ID and the widget updates; the widget sends a command and your handler receives it. Everything else is built on that.

The loop

Values up, commands down

Push a value

// Arduino
device.updateWidget(
  targetId,
  "tempGauge",
  27.4
);

A Gauge whose widget ID is tempGauge now reads 27.4. No polling — the value arrives over the realtime channel.

Receive a command

// Arduino
device.setUserCommandHandler(
  [](JsonObject &msg) {
    // inspect and act on it
  }
);

Commands arrive parsed as structured JSON, with helpers to find the command, action and params.

Scripting

APIs available to dashboard scripts

Logic that belongs closer to the interface than to the firmware.

Widgets

Read and write widget values from a dashboard script

Device context

Which device the script is running against

Database

Query and write the product's tables

Storage

Persist state between runs

Events

React to incoming values and lifecycle hooks

WebSocket

Talk to the realtime channel directly

Location

Positional data where the device provides it

Firmware

Two SDKs, same contract

Arduino for the quickest path, ESP-IDF when you want the native toolchain. Both speak the same protocol, so a product can move between them without changing anything on the platform side.

Arduino

library

Secure by default. Call begin() and the device generates its keypair on-chip, provisions over Wi-Fi and authenticates itself.

#include <hyperwisor-iot.h>

HyperwisorIoT device;

void setup() {
  device.begin("SSID", "PASSWORD");
}
Arduino SDK

ESP-IDF

component

A drop-in component: provisioning, secure WebSocket transport, the command runtime, widgets, NTP, NVS helpers and optional OTA — all behind one umbrella header, UI-framework agnostic.

# main/idf_component.yml
dependencies:
  nikolaindustry/hyperwisor: "^0.1.0"

$ idf.py reconfigure

Targets

ESP32 · S2 · S3 · C3 · C6 · P4

ESP-IDF

>= 5.5, < 7.0

License

Apache-2.0

UI

LVGL / raw / none

ESP-IDF install

Any board

Or bring one we don't ship an SDK for

Underneath the SDKs it's standard protocols. Anything that can hold one of these connections can talk to the platform — you wire the protocol yourself instead of using a drop-in library.

WebSocket

MQTT

HTTPS

Full documentation

Wire up a board

Generate the firmware skeleton and watch a widget move.