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:
- Association drops — the Wi-Fi client can lose its association with the AP after power events or AP firmware updates, requiring manual intervention.
- Channel congestion — in a dense environment, 2.4 GHz interference degrades throughput and increases latency for TCP clients.
- 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.
No comments to display
No comments to display