Program the machine.
Not the IDE.

Melanite is a universal, user-programmable soft PLC. Wire up real-time control logic, industrial protocols, smart-home, a touch HMI and a live spatial 3D editor — directly on the device. No developer toolchain. No deployment step.

Free, forever, for personal use.

Wired on the device. The machine changes behaviour when the wire lands — there is no compile step in between. The oven is simulated in your browser at 24× speed. The controller is the PID node's own algorithm, ported line for line (Kp 6, Ki 0.2, Kd 5).
Ships with
  • EtherCAT master
  • Modbus TCP
  • MQTT
  • WLED
On the roadmap
  • OPC UA
  • CANopen
  • EtherNet/IP
  • Modbus RTU
  • Matter

Why it exists

One device bridges industrial automation, the smart home and spatial computing — programmable by the person who understands the process, not only by a developer.

Node-RED runs on an event loop, not a real-time cycle. CODESYS is programmed in a desktop IDE. Home Assistant has no real-time control and no EtherCAT. WLED drives light, not logic. Melanite is one coherent system that does all of it, on a €50 compute module, with no IDE and no deployment step.

It runs offline by default: no account, no cloud service, no telemetry, no phone-home. The licence verifies on the device itself.

The real-time core, measured

Numbers, with their conditions attached.

Every controller claims to be real-time. Melanite measures itself and publishes the histograms on the device, so you can check this table on your own hardware instead of believing it.

The figures below come from one continuous window on a Raspberry Pi CM5 driving four EtherCAT slaves — not a lab bench set up for the occasion.

The Melanite health page on a device, showing RT status running, average jitter 0.19 microseconds, maximum jitter 0.86 microseconds and an uptime of 1 day 4 hours.
The device's own health page during that window.
0.1 µs 1 µs 10 µs 100 µs 1 ms deadline p50 0.256 µs p99 0.768 µs p99.9 1.280 µs worst 150.8 µs
p50 · median
0.256µs
p99
0.768µs
p99.9
1.280µs
worst · 1 in 104 million
150.8µs
Deadline jitter across 104,031,000 consecutive cycles. Median and p90 fall in the same 512 ns bucket, so only the median is marked. Nothing here is a model — the device publishes these percentiles itself.
Measured real-time performance on a Raspberry Pi CM5
Quantity Measured Unit Conditions
Cycles executed 104,031,000 28.9 h continuous, 1 kHz, EtherCAT in OP
Missed deadlines 0 Across all 104 million
Deadline jitter, median 0.256 µs Same window
Deadline jitter, p99.9 1.28 µs Same window
Deadline jitter, worst 150.8 µs Rarest excursion; 15% of the 1 ms budget
Wake latency, p99.9 22.8 µs Cyclictest-equivalent, same window
RT-thread allocations 0 bytes Tripwire armed the whole window
Stall events 0 Same window

Raspberry Pi CM5, PREEMPT_RT, four EtherCAT slaves in OP, one uninterrupted window. The cycle is configurable down to 250 µs, but we have no benchmark at that rate, so it is not claimed as verified.

What it does

Eleven things, one binary.

No add-on packs, no per-protocol licences, no feature gates between tiers. The status column is the honest one.

On a live device

Field record

Something it has actually done.

A €10,000 controller, rebuilt in about an hour

A lab reactor controller had been commissioned from a professional CODESYS integrator: €10k, months of lead time, and an interface nobody could change afterwards. Working through Melanite's agent API, an AI agent rebuilt it — a ΔT-clamped cascade PID, a multi-segment setpoint program, real EtherCAT I/O and a purpose-built operator page — in roughly an hour, editable ever since.

Our own lab project, not a customer deployment.

Free at home.
Licensed at work.

The Community tier is the whole platform, free for private use. Any use by a business needs a Commercial licence — a machine you sell, and just as much a test rig, a production line, a dashboard or a building you run in-house. One build runs every tier; the licence toggles entitlements, never the feature set.