Cottages and camps
A power wall built over the years, a generator in the shed and a fridge full of food. See it all from town.
- Budget and mixed-brand gear
- Flooded lead-acid or lithium banks
- Two-wire generator start
Origin89 reads the charge controller, inverter, batteries, probes and generator at your site, runs your rules there and keeps every reading with its age.
In active development. Not for sale yet.
Most off-grid walls grow one box at a time: a charge controller from one maker, an inverter from another, a meter, a generator in the shed. Nothing ties them together. The Controller wires into all of them and makes the site’s decisions on one 12 V board, with or without the internet.
The copper behind this text is board A’s top layer, drawn from its Gerbers.
Anyone responsible for power at a place they can’t see from where they are.
A power wall built over the years, a generator in the shed and a fridge full of food. See it all from town.
Batteries, a genset and a tower hours from the nearest road. Know the site’s state before the truck leaves.
Gensets, pumps and battery banks spread across a site. Planned: several Controllers per location, in one account.
The board files, Gerbers, bill of materials and firmware are public. Every part on this page has a designator you can look up: where it sits on the board, what it is and why it was chosen.

| U7 | STM32G0B1RET6 · LQFP-64 |
| U8 | ESP32-C6-WROOM-1-N8 |
| U3–U5 | MAX13487EESA+T · RS-485 |
| U9 | FM24W256 · FRAM |
The budget is about 256 KB, not 512. Dual-bank A/B updates keep the new image in one half while the other holds the one it replaces.
binary 67,696 B25 % of one slot
Pluggable screw terminals for field wiring, keyed headers for VE.Direct and the generator link. Point at a terminal to see what it connects to, its pins and its limits.
Point at or tap a terminal
Two processors. One of them decides.
The usual site monitor is one Linux computer. Networking, the web interface and the generator logic share its operating system. Origin89 splits the job: a microcontroller that only reads, decides and records, and a separate radio module that only talks. A Wi-Fi fault can’t take the generator rule with it.
Victron Cerbo GX: Venus OS, a Linux distribution, on a dual-core processor. Home Assistant Green: a quad-core Rockchip RK3566. SolarAssistant: a Raspberry Pi. Checked against their makers’ pages on 16 September 2026.
Every decision, all timing, all storage, all actuation.
U7 · STM32G0B1RET6 · Arm Cortex-M0+ · 512 KB flash in two banks
Runs unchanged if the ESP32 is unplugged. The rules, the record and the generator link never depend on the radio.
Carries the data. Decides nothing.
U8 · ESP32-C6-WROOM-1-N8 · RISC-V · 2.4 GHz Wi-Fi 6 and Bluetooth LE
One wire format, compiled twice. Both processors talk over a UART with hardware flow control, using the same KM43 framing, checksum and authentication from one Rust crate.
One fused circuit on the battery bank. No inverter has to stay on to keep it awake.
Both at 13.1 V. Origin89: first bench readings on board revision A. Cerbo GX MK2: 2.8 W from Victron’s datasheet.

Your site’s data is yours. The Controller speaks KM43, an open protocol with a public specification and published libraries. Keep the safety rules on the Controller and automate everything else wherever you already do.

When rises above 7 °C for , .
import { MessageType, Quality } from "@origin89/km43";
// Follow the Controller’s event stream,
// and never act on an old or missing value.
send({ type: MessageType.Subscribe });
onReading((r) => {
if (r.quality === Quality.Stale) return;
if (r.quality === Quality.Absent) return;
publish("site/fridge_shelf", r.value);
});
The enums are real, from @origin89/km43. send, onReading and publish stand in for your own code.
The difference is in how it’s built. A microcontroller decides without an operating system to boot, the radio can fail without taking the rules with it, and the generator contact opens by itself if the Controller stops.
| Feature | Origin89 Controller | Victron Cerbo GX MK2 | SolarAssistant | Home Assistant, DIY |
|---|---|---|---|---|
| Built to keep running | ||||
| Control and networking | On separate chipsA microcontroller decides; a radio module only talks, so a Wi-Fi fault can’t stop the rules | One Linux computerVenus OS runs networking, the display and generator control on one dual-core processor | One Raspberry PiLinux-based image | One Linux computerHome Assistant OS; HA Green uses a quad-core RK3566 |
| After a power cut | No operating system to bootThe firmware runs directly on the microcontroller; start-up time not yet measured | Linux boots firstAbout 2 to 2.5 min, as reported on Victron’s community forum | Linux boots firstTime not stated | A few minutesUp to 5 min, per Home Assistant support |
| If the controller stops | The generator contact opens by itselfA hardware watchdog on the generator board opens two relays in series, 4.3 s after the last kick on the bench | Not documentedIts watchdog restarts the computer; no documented interlock on the generator relay | Not stated | Depends on your relay and automation |
| Temperature rating | Parts rated −40 to +85 °CController board. Generator board relays: −25 to +65 °C. Product rating pending testing | −20 to +50 °C | 0 to 50 °CRaspberry Pi 4 board | 0 to 40 °CIndoor use only |
| Idle draw | About 0.5 WUnder a fifth of a Cerbo GX. 38 mA at 13.1 V with Wi-Fi and Bluetooth on; 11 mA with the radio off. First bench readings | 2.8 WAt 12 V, without the GX Touch display | Not statedA Raspberry Pi board | About 1.7 WHA Green at 12 V, plus adapters |
| Connects to | ||||
| Mixed-brand gear | Designed for itEach model verified before it’s listed | Victron-firstSome third-party PV inverters and CAN batteries | 20+ inverter brandsEPEver and Renogy not supported | AnythingIf you write the integration |
| RS-485 | 3 ports, one bus each | USB adapter | USB adapter per device | DIY adapters |
| CAN and VE.Direct | 1 × CAN, 2 × VE.Direct | 2 × VE.Can, 3 × VE.Direct | USB adapter per device | DIY |
| Temperature probes | 1-Wire probes on one cable | 4 inputsVictron sensors | BMS-reported only | DIY with ESPHome |
| Tank level | 4–20 mA input | 4 resistive inputs4–20 mA through the GX Tank 140 add-on | Not stated | DIY |
| Generator start | Two-wire startOn its own generator board | Built-in relayState of charge, voltage, load and quiet hours | Not stated | DIY relay and automation |
| Decides with no internet | Yes | Yes | Monitoring yesOffline rules not stated | Yes |
| Open and available | ||||
| Open source | Firmware and board files | PartlyParts of Venus OS; no hardware files | No | Software yesHardware varies |
| Availability | In active development, not for sale yet | Shipping | Shipping | Shipping |
Checked on 17 September 2026 against Victron’s Cerbo GX datasheet, GX manual and developer wiki; SolarAssistant’s documentation and supported-inverter list; the Raspberry Pi 4 product brief; Home Assistant Green’s specifications and support pages; and the datasheets of the Controller’s parts. The Cerbo’s boot time comes from Victron’s community forum, not an official figure. The Origin89 column comes from the revision A design files; temperature figures are part ratings, the idle draw and the generator watchdog timing are bench readings and other values are not yet measured. Corrections welcome at hello@origin89.com.
The Offgrid app shows what the Controller reads and what it decided, each value with the time it was taken. When the site is offline, you see the last reading and its age, never a number that only looks fresh.
The app is in development. Screens and readings here are samples.

Why did the generator start at 5:40?
The charge controller reported the battery bank at 11.84 V at 05:38. That’s under your 11.9 V start rule, so the Controller asked the generator box to run.
The outdoor probe hasn’t reported for 14 minutes, so I left it out.
Is the fridge okay?
Yes. The middle shelf read 3.8 °C 41 seconds ago, and it has stayed between 3 and 5 °C since last night.
Ask in plain words. Buddy answers from the site’s own readings and rules, says where each number came from and how old it is, and leaves out what it can’t trust.
Buddy only advises. It can’t start, stop or switch anything. Only the Controller’s rules act on equipment.
From the revision A design files, exported 9 September 2026. Values marked in amber wait on bench measurement.
Bench results and progress on the Controller, posted as we go.
Two unattended nights on the first Controller board: one bad reply in 58 169 Modbus polls, a working Wi-Fi link, and the tests still to run.
The Controller's main board never closes the generator's start contact itself. A second board with two relays, a hardware watchdog and no firmware does, and only while the controller keeps asking. It now holds and drops on the bench, 4.3 s after the last kick.
An off-grid cabin at km 43 in Québec, solar gear and a generator from different makers, and no monitoring that worked with all of it.
We’ll write when bench results are in and again when boards can be reserved. Nothing else.
We’ll email you a link to confirm your address.