Program your sensors
as a flow
Wire sensors, actuators and logic on a visual canvas, run it on the real board through a driver on your machine, and step through it action by action — with every value on screen.
Get early access and news — take a 2-minute surveyPackages you wire together
18 packages, ready to install — sensors, motors, displays, the network.
Real workflows, running
Each one is built from the real packages — the nodes, settings and bindings the studio makes. Watch it step through, drag the nodes around.
A DHT22 read in a loop, the temperature on an OLED, and a fan at full speed past 30 °C. Pass Context carries the reading past the display to the If.
Everything between the idea and the blinking LED
One place to design, run and inspect what your microcontroller does.
A visual studio
Actions are nodes, outputs are wires. Branch with If and Switch (as many cases as you need), loop with Repeat, keep notes on every node.
Triggers
Start, a pin changing, a timer, a web request, an IR code, a leak — each trigger runs its own branch, side by side with the others.
Many boards
A board is a package — its pins, its firmware, what it offers (Wi-Fi, Bluetooth). ESP32 out of the box; move a workflow to another board in its settings.
A step-through debugger
Run the flow one action at a time, or Listen on a trigger until it fires. Read every output, edit configs and values on the fly, then Continue.
Components from npm
Sensors, displays, Wi-Fi, HTTP, IR, servos… each an npm package. Install them from a registry, or publish your own in a few lines of MicroPython.
Bindings and variables
Feed one action's output into another's config — or further down the flow with Pass Context — and keep values in workflow variables across loops.
Yours to host
Run the whole platform on your own machine or server, and move workflows around as portable .hio files.
Every trigger runs its own branch
Start joins the Wi-Fi once. Then a request on /led and a timer each start a branch of their own — side by side, each with its own values.
- Start, a pin, a timer, a web request, an IR code, a leak — each one a node with no input.
- A branch that fires runs right away, even while another waits in a Delay.
- Listen on a trigger in the debugger, and step through its branch when it fires.
Step through it, value by value
Debug pauses before each action. See what the last one published, where the flow goes next, and go on when you're ready.
- Every output on screen — a reading, a list, an object as a table.
- Edit a config or a value mid-session, then Continue.
- Run a single action with ▶ to try it out on the board.
From a fresh board to a running flow
- 1
Host it and pair a driver
Start Henglos IO on your machine, then pair the driver on the computer your board is plugged into.
$ - 2
Compose a workflow
Pick a board, add components from the library, and wire their actions and triggers on the canvas.
- 3
Upload, run and debug
Compile and upload in one click, run a single action with ▶, or step through the whole flow.
A component is a manifest and a script
Describe its actions and triggers in YAML — configs, outputs, an icon, what it needs of the board — write each one in MicroPython, publish it to npm. The studio builds the nodes, the forms and the bindings from the manifest.
1kind: component2name: Water Sensor3dependences:4 platform: ^3.0.056schema:7 displayName: Water Sensor8 actions:9 - displayName: Read10 icon: droplets11 script: src/read.py12 configurations:13 - displayName: Signal Pin14 type: pin15 from: board16 filterBy: [analog_in]17 outputSchema:18 - name: wet19 type: bool2021 triggers:22 - displayName: Water Trigger23 icon: siren24 script: src/water_trigger.py
1from machine import ADC, Pin2from hio.sdk import HIOAction, action, SUCCESS, FALLBACK345@action("water sensor/read")6class ReadAction(HIOAction):78 async def execute(self, context):9 pin = context.get("read/signal pin")10 if pin is None:11 return FALLBACK1213 level = ADC(Pin(pin)).read_u16()14 context.set("wet", level > 8000)15 return SUCCESS
Plug in a board. Draw the flow. Watch it run.
Set up Henglos IO on your machine in a few minutes and run your first workflow on an ESP32.
A 2-minute survey — tell us what you build, and get news and early access by email.