Skip to main content

Room Server Hardware and OS Requirements

Room Server Hardware and OS Requirements

A MeshCore room server runs the meshcore-room daemon on any general-purpose Linux (or Android) host. Hardware selection is straightforward: almost any single-board computer (SBC) produced since 2018 is capable. This page documents the minimum and recommended specifications and explains why certain choices (wired ethernet, SSD storage) improve reliability in production deployments.

Minimum Hardware Requirements

Resource Minimum Recommended
CPU Single-core ARMv7 / x86 @ 1 GHz Quad-core ARM64 @ 1.5 GHz+
RAM 256 MB free after OS 512 MB – 1 GB
Storage 2 GB available 8 GB+ on SSD/industrial SD
Network Wi-Fi (2.4 GHz) Wired Ethernet (100 Mbps+)
Serial / USB 1 × USB-A or UART header 1 × USB-A (dedicated, not shared hub)

Supported Hardware Platforms

Raspberry Pi Family

  • Pi Zero 2 W — Minimum viable option. Quad-core Cortex-A53, 512 MB RAM. Adequate for a small community room with low traffic. Wi-Fi only (no built-in ethernet); use a USB-ethernet adapter for production.
  • Pi 3 Model B / B+ — Comfortable headroom. 1 GB RAM, built-in 100 Mbps ethernet and Wi-Fi. Well-supported by Raspberry Pi OS Lite.
  • Pi 4 Model B (1–8 GB) — Recommended for high-traffic rooms or multi-room federation deployments. Gigabit ethernet, USB 3.0 ports, native SSD boot via USB.
  • Pi 5 — Overkill for most room server use-cases but works perfectly. Consider if also running Node-RED, Grafana, or other co-located services.

Other ARM SBCs

  • Orange Pi Zero 2W / 3 — Cost-effective Pi alternatives. Requires Armbian or Ubuntu Server image; not all GPIO features are needed.
  • Rock Pi / Radxa boards — Suitable; follow the same Debian/Ubuntu steps.
  • ODROID-C4 — Excellent I/O; Armbian supported.

x86 Linux

Any PC, mini-PC (Intel NUC, Beelink, etc.) or virtual machine running a Debian-based distro works perfectly. x86 is useful when co-locating the room server with other services on existing infrastructure. The daemon is provided as a compiled binary for amd64.

Android

An Android phone or tablet (Android 8+) can run the MeshCore room server app from the Play Store or as a sideloaded APK. The LoRa radio attaches via USB-OTG. This is the fastest path for experimentation but not recommended for permanent deployments due to aggressive background process management in modern Android versions.

Operating System Recommendations

Raspberry Pi OS Lite (Debian Bookworm / Bullseye)

The canonical choice for Raspberry Pi hardware. Use the Lite (headless) variant — no desktop environment is needed and the reduced footprint leaves more RAM for the daemon and message store.

# Flash with Raspberry Pi Imager — choose:
# Raspberry Pi OS Lite (64-bit) for Pi 3/4/5
# Raspberry Pi OS Lite (32-bit) for Pi Zero 2 W

Ubuntu Server 22.04 LTS / 24.04 LTS

Preferred for x86 and non-Pi ARM boards. Five-year LTS support, excellent package ecosystem, systemd is the default init system. Use the minimal or server ISO.

Debian 12 (Bookworm)

Suitable for any supported architecture. More conservative package versions than Ubuntu but highly stable.

Armbian

For non-Raspberry-Pi ARM boards that lack official Ubuntu/Debian images. Choose the minimal CLI variant.

Why Wired Ethernet is Preferred

Wi-Fi introduces three failure modes that wired ethernet avoids entirely:

  1. Association drops — the Wi-Fi client can lose its association with the AP after power events or AP firmware updates, requiring manual intervention.
  2. Channel congestion — in a dense environment, 2.4 GHz interference degrades throughput and increases latency for TCP clients.
  3. Hidden-node interference — the room server's LoRa radio and the Wi-Fi antenna share the 2.4 GHz band (for 433/868/915 MHz LoRa this is not an issue, but for 2.4 GHz LoRa experiments it is).

A wired ethernet connection provides deterministic, low-latency connectivity and is strongly recommended for any deployment intended to run unattended for weeks or months.

USB Serial Connection to the LoRa Radio

The LoRa radio module attaches to the host via a USB-to-serial bridge chip. Common modules and their bridge chips are listed below.

Radio Module USB Bridge Chip Linux Device Name
Heltec WiFi LoRa 32 v3 CP2102N /dev/ttyUSB0
LILYGO T-Beam / T3S3 CP2102 / CH9102 /dev/ttyUSB0
RAK WisBlock + RAK5005-O CH340C /dev/ttyUSB0
Seeed Wio-E5 Mini CP2102 /dev/ttyUSB0
TTGO LoRa32 v2.1 CP2104 /dev/ttyUSB0

After plugging in the radio, confirm detection with:

dmesg | grep -E "tty|usb" | tail -20
ls /dev/ttyUSB* /dev/ttyACM*

Add the daemon's service user to the dialout group so it can access the serial port without running as root:

sudo usermod -aG dialout meshcore
# Re-login or run: newgrp dialout

SD Card vs. SSD Storage

The room server daemon writes to its message store on every received packet. On a busy channel this can amount to thousands of small write operations per day. Standard SD cards have a limited write-endurance rating and can fail within months under this workload.

For production deployments, boot from an SSD via USB (Pi 4/5 support USB boot natively) or use an industrial-grade SD card rated for high-endurance (e.g., Samsung PRO Endurance, Sandisk MAX Endurance). Alternatively, mount the message store on a RAM disk backed by periodic rsync to a secondary storage location.

Power Supply Considerations

USB-C power adapters for Raspberry Pi boards must supply adequate current:

  • Pi Zero 2 W: 2.5 A minimum
  • Pi 3B+: 2.5 A
  • Pi 4: 3 A (official Pi PSU recommended)
  • Pi 5: 5 A (USB-C PD, official PSU required for full performance)

Under-voltage conditions (dmesg will report voltage_normalize warnings) cause the CPU to throttle and can corrupt the SD card on abrupt shutdown. Use a UPS or a good-quality wall adapter.