OpenNova Wiki¶
Welcome to the complete technical documentation for the OpenNova project -- an open-source local server replacement for Novabot robot mowers.
This project replaces the Novabot cloud (app.lfibot.com / mqtt.lfibot.com) with a local Node.js/TypeScript server, enabling the robot mower and charging station to operate fully offline. Devices are provisioned via BLE with direct IP addresses, so DNS rewrites and custom firmware are optional.
Getting started
The recommended setup uses the OpenNova mobile app + BLE provisioning to point devices directly at your local server IP. No DNS rewrites or custom mower firmware required for basic operation.
Novabot Cloud Unreliable
The Novabot cloud (app.lfibot.com / mqtt.lfibot.com) has been experiencing frequent outages since March 2026. When the cloud is down, the official app and devices stop working. OpenNova keeps your mower operational regardless of cloud status.
Project Components¶
| Component | Directory | Technology | Purpose |
|---|---|---|---|
| Server | server/ |
Express + Aedes MQTT + Socket.io | Local cloud replacement |
| OpenNova App | app/ |
React Native + Expo | Mobile app (iOS/Android) |
| ESP32 OTA Tool | firmware/esp32-tool/ |
PlatformIO + LVGL | Standalone provisioning + OTA device |
| Mower | mower/ |
Python + ROS 2 | Open robot_decision replacement |
| Bootstrap wizard | bootstrap/ |
Node.js + noble BLE | Desktop provisioning tool |
| Docker container | — | Node.js + dnsmasq | Production deployment |
Current Firmware Versions¶
| Device | Firmware | MCU | Key Features |
|---|---|---|---|
| Mower | v6.0.2-custom-16 |
STM32 v3.6.6 | SSH, mDNS discovery, camera stream, PIN lock fix |
| Charger | v0.4.0 (patched) |
— | MQTT host patched to local server |
Known Devices¶
| Device | Serial Number | Type | MQTT Client ID |
|---|---|---|---|
| Charger (Base Station) | LFIC1230700XXX |
ESP32-S3 | ESP32_XXXXXX |
| Mower | LFIN2230700XXX |
Horizon X3 (ARM64) | LFIN2230700XXX_6688 |
What's Optional?¶
| Feature | Required? | Details |
|---|---|---|
| OpenNova server | Yes | Local cloud replacement (Docker or native) |
| BLE provisioning | Yes | Configures devices with direct server IP |
| DNS rewrites | No | Only needed if using the official Novabot app instead of OpenNova app |
| Custom mower firmware | No | Only needed for mDNS discovery, SSH access, camera streaming |
Documentation Sections¶
- Architecture -- System design, hardware, network topology, distribution model
- HTTP API -- All REST endpoints (cloud API, dashboard, mower-to-server)
- MQTT Protocol -- Complete MQTT command reference with payloads
- BLE Protocol -- Bluetooth Low Energy provisioning commands
- LoRa Protocol -- Charger <-> Mower radio communication
- Firmware -- Charger (ESP32-S3) and Mower (Horizon X3) firmware analysis
- Custom Firmware -- Build script, STM32 patches, extended commands (OPTIONAL)
- Flow Diagrams -- Mermaid diagrams for all key workflows