🏠 Room Servers

A Room Server is a MeshCore infrastructure node that acts as a persistent message store for a channel — a kind of off-grid bulletin board that runs entirely without internet. Late-arriving radios sync queued messages when they reconnect, so nobody misses a conversation just because they were out of range for a while.

Key Reasons to Use a Room Server

📬
Store-and-forward messaging

Room Servers queue the last ~16 messages per channel. When a radio reconnects after being out of range, it automatically pulls any messages it missed — like catching up on an SMS thread after coming back into cell service.

📡
Works 100% offline

No internet. No cell towers. No cloud servers. A Room Server keeps local groups coordinated during power outages, backcountry trips, or any scenario where ordinary infrastructure is unavailable.

📋
Shared bulletin board (BBS)

Acts like a low-tech community noticeboard. Anyone in radio range can post a message that others will see when they check in — useful for daily check-ins, local announcements, or emergency coordination.

📶
Built-in Wi-Fi access point

A Room Server can broadcast its own Wi-Fi hotspot. Phones and laptops connect directly over Wi-Fi and interact with the mesh without needing a paired radio or a Bluetooth companion device.

🔋
Headless & low-power

Runs without a screen or keyboard. Tuck it in a weatherproof enclosure, power it from a small solar panel, and forget about it. Ideal for a community hub on Vashon or a remote camp site.

🔁
Optional repeater mode

Issue set repeater true in the admin CLI to also forward mesh traffic. This turns a single device into a combined message store and range extender — though with trade-offs (see below).

🌐
MQTT bridge (advanced)

When internet is available, a Room Server can relay messages to an MQTT broker for long-term storage or cross-network bridging — a handy escape hatch past the 16-message queue cap.

🏘️
Community coordination hub

Gives a neighbourhood group a single known "address" on the mesh. Everyone points their radio at the same Room Server for shared channel history, so new-to-the-area members can get up to speed immediately.

How It Works

When you flash a device with the Room Server firmware (one of four MeshCore firmware types), it listens on the mesh for channel traffic and stores incoming messages in a circular queue. Any radio that later connects and requests history receives whatever messages are still in the queue.

The four MeshCore firmware types are:

  • Companion (Bluetooth) — paired with a phone or laptop over BLE. Best for everyday portable use.
  • Companion (Wi-Fi) — same as above, but connects via Wi-Fi instead of Bluetooth.
  • Repeater — fixed infrastructure node; relays all mesh traffic over multiple hops without any user UI.
  • Room Server — fixed infrastructure node; stores messages and can host a Wi-Fi hotspot for direct browser or app access.

Limitations & Honest Trade-offs

"Room Servers can be accessed as long as there is a path — however in reality they don't seem to work very well for paths greater than 2 hops max (even 2 hops struggles). I've been running a Room Server for the past year with a local mesh accessing it here over 1 or 2 hops max, with 4 or 5 people leaving messages on a daily basis — works ok-ish, but message syncing struggles with >1 hop."

— MeshCore community contributor

  • 16 messages per queue: Each channel queue holds at most 16 messages. If more than 16 are posted while you are away, the oldest are silently dropped. Work-arounds include MQTT bridging or keeping your check-in interval short.
  • Hop limit: Reliable sync degrades beyond ~2 hops. Place your Room Server centrally so the majority of your group is no more than one hop away.
  • Repeater trade-off: Enabling set repeater true reduces the available message-store capacity and disables some repeater functions. Choose based on your primary need.
  • Active development: The Room Server code base is functional but less mature than the Companion or Repeater firmware. Bug reports and contributions are welcome on the MeshCore GitHub.

Configuration

Room Servers are managed through the MeshCore web config app at config.meshcore.dev. Key settings include:

  • Channel setup — assign the shared channel key so the Room Server and companion radios can communicate.
  • Wi-Fi AP — enable the built-in access point and set an SSID/password for direct browser access.
  • Repeater mode — toggle with set repeater true/false in the admin CLI.
  • MQTT bridge — provide broker URL and credentials to push messages to the internet when connectivity is available.

To flash a device as a Room Server, use the MeshCore Flasher and select the Room Server firmware option.