MeshCore Room Servers
What is a Room Server?
What is a MeshCore Room Server?
A Room Server is a store-and-forward bulletin board that runs directly on a LoRa node running MeshCore firmware. It acts as a shared message board for the mesh community - any node that can reach the room server can post and read messages without needing internet access or a central server. The whole point of a room server (versus an ordinary channel) is that it retains message history: roaming users who were out of range can come back later and pull the messages they missed, much like an email server.
Key Characteristics
- Storage: The room server retains message history and pushes it to clients when they connect - a client receives the previous 32 unseen messages on login. (Persistence across a reboot/power cycle depends on your firmware and hardware; do not assume messages survive a power loss without verifying on your firmware version.)
- Access control: Two passwords - an admin password and a guest password - plus a per-companion ACL (
setperm <pubkey> <level>, with levels Guest / Read-only / Read-write / Admin) and a separateset allow.read.onlyflag for unauthenticated read access. - Repeater hybrid: A room server can also be configured as a repeater with
set repeat on, but this is a trade-off - room servers benefit from an indoor location for USB/Bluetooth administration, whereas repeaters perform best with a high external antenna. - Radio requirements: The room server's radio preset (frequency/bandwidth/spreading factor/coding rate) must match the rest of the network; otherwise its packets and adverts cannot be received by other nodes.
Access Control
MeshCore room servers use two passwords plus a per-companion ACL - not a single "three-tier" password ladder:
| Mechanism | Default | Permissions |
|---|---|---|
| Admin password | password | Full control: manage permissions, delete messages, change all settings |
| Guest password | hello | Read and write messages once authenticated as a guest |
Per-companion ACL (setperm) | per node | Levels: Guest / Read-only / Read-write / Admin |
set allow.read.only flag | off | When enabled, allows unauthenticated read-only access; off by default (no automatic no-password read) |
Warning: Both default passwords must be changed immediately after first login. The default admin password password and guest password hello are publicly known.
Why Room Servers Matter
Room servers enable asynchronous community communication entirely over the mesh. A traveler passing through can read recent area messages, a neighborhood can coordinate during a power outage, or volunteers can leave notes for the next person who checks in - all without any internet connection or cellular infrastructure. Because the server stores and re-pushes missed messages, participants do not all need to be in range at the same time.
Room Server Setup & Configuration
Step 1 - Flash Room Server Firmware
Use the MeshCore web flasher at flasher.meshcore.io. Select your hardware (e.g., Heltec V3) and choose the Room Server firmware variant.
Step 2 - Connect via Serial or Bluetooth
Connect via USB serial at 115200 baud using a terminal emulator (PuTTY, screen, minicom) or via Bluetooth using the MeshCore companion app.
Step 3 - Immediate Security: Change Default Passwords
Before anything else, change both default passwords. The defaults are publicly documented and must not remain in production:
password yourSecureAdminPassword
set guest.password yourSecureGuestPassword
These are the two passwords a room server uses (admin and guest). For finer control you can also assign per-companion permissions with setperm <pubkey> <level> (Guest / Read-only / Read-write / Admin), and enable unauthenticated read-only access with set allow.read.only on (default off). This is a two-password-plus-ACL model, not a single three-tier password ladder.
Step 4 - Set Node Identity and Location
set name MyRoomServer
set lat 46.879682
set lon -96.789803
Accurate coordinates allow the room server to appear correctly on network maps and help users gauge how far they are from it.
Step 5 - Verify Radio Preset
The room server's radio settings must match the network. The MeshCore USA/Canada preset (as of 2026-06-08) for most North American MeshCore networks (NoDakMesh, RegionMesh, etc.) is:
- Frequency: 910.525 MHz
- Bandwidth: 62.5 kHz
- Spreading Factor: SF7
- Coding Rate: CR5
Prefer applying the named USA/Canada preset from the firmware menu or companion app rather than hand-entering these values - that sets them automatically and avoids landing off the network if the preset has changed. Verify against the current MeshCore preset for your region before relying on the numbers above.
Step 6 - Optional: Enable Repeat Mode
If there is no separate repeater at this location, you can enable packet relay on the room server:
set repeat on
See Dual Deployment: Repeater + Room Server for why a dedicated repeater device is preferred over this option.
Step 7 - Broadcast Presence
Trigger an immediate advertisement so other nodes discover the room server without waiting for the next scheduled broadcast:
advert
Complete Configuration Reference
set guest.password yourGuestPassword
password yourAdminPassword
set name MyRoomServer
set lat 46.879682
set lon -96.789803
set repeat on # optional: also relay packets
advert # broadcast presence immediately
Dual Deployment: Repeater + Room Server
Dual Deployment: Separate Repeater and Room Server
The recommended best practice for any fixed site is to deploy two separate devices rather than enabling repeat mode on the room server.
Why Two Devices?
A repeater and a room server have conflicting placement requirements:
| Device | Ideal Placement | Why |
|---|---|---|
| Repeater | Outdoors, elevated, high external antenna | Maximum RF range in all directions |
| Room Server | Indoors, near power and USB/BT access | Easy administration, configuration, and monitoring |
Forcing one device to do both jobs means compromising on placement - either the repeater antenna is too low, or the room server is too hard to access for administration.
Recommended Hardware
- Device 1 (Repeater): Heltec V3 flashed with Repeater firmware + high-gain external antenna (fiberglass omni or directional yagi)
- Device 2 (Room Server): Heltec V3 flashed with Room Server firmware + stock indoor antenna
Cost
Two Heltec V3 units cost approximately $54 total (roughly $27 each, as of 2026-06-08; pricing is volatile - verify current street price). This is a minimal investment for a significant capability improvement at a fixed site.
When Single-Device is Acceptable
If budget or space constraints make dual deployment impossible, enabling set repeat on on the room server is workable - it simply won't perform as well as a dedicated repeater at height. (set repeat on is the documented MeshCore CLI command for the repeater-hybrid mode; confirm against your firmware's CLI help output.) In that case, do your best to place the device near a window or in an elevated location to improve the antenna's line of sight.