Skip to content
MeshSat Dashboard

MeshSat: Meshtastic-to-Iridium Satellite Bridge

An open-source gateway that bridges Meshtastic LoRa mesh networks to the Iridium satellite constellation via Short Burst Data (SBD). One gateway device provides satellite backhaul for an unlimited number of mesh nodes — instead of paying per device like Garmin and ACR charge. Overview Aspect Details Function Bidirectional Meshtastic ↔ Iridium SBD bridge Hardware Raspberry Pi 5, Lilygo T-Echo, RockBLOCK 9603 Backend Go 1.24 (chi router, SQLite) Frontend Vue.js 3 (SSE, Leaflet maps) Deployment Docker multi-arch (ARM64 + x86_64) License GPLv3 Repository github.com/cubeos-app/meshsat Why MeshSat Consumer satellite communicators like Garmin inReach and ACR Bivy Stick MESH charge per person or cap at 12 devices. A 20-person expedition pays €300/month for individual Garmin subscriptions. MeshSat replaces that with a single €15/month satellite link shared across the entire mesh network. ...

March 4, 2026 · 5 min · Kyriakos Papadopoulos
HAHA IoT Cluster Topology

Home Assistant High Availability (HAHA)

HAHA — Home Assistant High Availability. The acronym was unintentional but too fitting to change. Three Proxmox nodes running Home Assistant, Mosquitto, Zigbee2MQTT, ESPHome, and Node-RED in a Pacemaker cluster, because a smart home that dies when one machine fails isn’t really smart. Overview Aspect Details Nodes 3 Proxmox hosts Clustering Pacemaker + Corosync Storage 3.6TB DRBD dual-primary + OCFS2 Network 2x10Gbps LACP per node Services Home Assistant, Mosquitto, Zigbee2MQTT, ESPHome, Node-RED Technology Stack Clustering Pacemaker + Corosync with STONITH fencing (3-node cluster) Floating virtual IP for seamless failover Quorum-based decision making Storage 3.6TB DRBD dual-primary replication OCFS2 cluster filesystem shared via NFS KINGSTON SFYRD4000G NVMe drives with PCI passthrough Networking LACP etherchannel (2x10Gbps per node) Cisco WS-C3850-12X48U switch Network-attached IoT peripherals (no USB dependencies) Dockerized Services Home Assistant (core automation) Mosquitto (MQTT broker) Zigbee2MQTT (Zigbee gateway) ESPHome (ESP device management) Node-RED (flow-based automation) IoT Peripherals Ethernet Zigbee: TubesZB CC2652P7 Ethernet Bluetooth: Olimex ESP32-POE-ISO USB-free design for clean failover AI Integration Local LLM (Ollama) on RTX 3090 Ti Private voice control and inference No cloud dependency Architecture ┌─────────────────────────────────────────────────────────────────┐ │ Floating VIP (Active) │ └───────────────────────────┬─────────────────────────────────────┘ │ ┌───────────────────────┼───────────────────────┐ │ │ │ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ pve01 │ │ pve02 │ │ pve03 │ │ Active │◄─────────►│ Standby │◄─────────►│Arbitrator│ │ │ DRBD │ │ DRBD │ │ └────┬────┘ Sync └────┬────┘ Sync └────┬────┘ │ │ │ │ Corosync Ring │ │ └─────────────────────┴─────────────────────┘ ┌─────────────────────────────────────────────────────────────────┐ │ DRBD + OCFS2 + NFS │ │ (3.6TB Replicated Storage) │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Docker Services │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │Home Assistant│ │ Mosquitto │ │ Zigbee2MQTT │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ ESPHome │ │ Node-RED │ │ │ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────────┘ │ ┌──────────────────┼──────────────────┐ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Ethernet Zigbee │ │Ethernet Bluetooth│ │ Local LLM │ │ TubesZB CC2652P7│ │ Olimex ESP32-POE │ │ RTX 3090 Ti │ └─────────────────┘ └─────────────────┘ └─────────────────┘ What I Got Right (and Wrong) The USB-to-Ethernet migration was the best decision in this project. Zigbee coordinator → TubesZB CC2652P7 (Ethernet), Bluetooth → Olimex ESP32-POE-ISO (Ethernet). USB devices can’t fail over between physical hosts; network devices don’t care which host they’re talking to. Re-pairing dozens of Zigbee devices was painful, but the result is a setup where the smart home stack moves between nodes without caring about peripheral hardware. ...

April 1, 2025 · 3 min · Kyriakos Papadopoulos
SYMFONISK Speaker Conversion

opensymf — Open-Source SYMFONISK & Sonos Speaker Conversion

A whole-house project converting seven IKEA SYMFONISK and Sonos speakers from proprietary systems to Raspberry Pi-based open-source audio players — escaping vendor lock-in while keeping the original hardware intact. Source code & docs: github.com/papadopouloskyriakos/opensymf Why? Sonos ended support for older speakers, stranding them on a frozen S1 platform with no future updates or integration with newer devices. IKEA SYMFONISK speakers, being Sonos-based internally, face the same fate. Rather than accept planned obsolescence, this project replaces the proprietary brains while keeping the original power supplies, speaker drivers, buttons, and LEDs. ...

March 1, 2025 · 5 min · Kyriakos Papadopoulos
Home Assistant HA architecture diagram

Home Assistant High Availability (HAHA)

The problem with smart homes There is a certain irony in building a smart home that becomes useless the moment a single Raspberry Pi decides to fail. I had been running Home Assistant on a standalone VM for years, and while it worked, I found myself increasingly aware of just how fragile the setup was. A failed disk, a corrupted SD card, an unfortunate kernel panic during a firmware update — any of these would leave me fumbling for light switches like it was 1995. ...

April 15, 2025 · 5 min · Kyriakos Papadopoulos