MeshCore App Guide Getting Started with the MeshCore App The MeshCore app is your primary interface for configuring and using MeshCore devices. It connects to your node via Bluetooth and provides access to messaging, network status, and device configuration. Installing the App Android - Available on Google Play Store: search "MeshCore". Check the Play Store listing's "Requires Android" field for the current minimum OS version (verify before installing on an older phone; as of 2026). iOS - Available on the Apple App Store: search "MeshCore". Check the App Store listing for the current minimum iOS version. Desktop/CLI - The MeshCore serial console is accessible via a terminal emulator (e.g. PuTTY) at 115200 baud. Full serial CLI configuration is primarily exposed on repeater, room-server, and sensor firmware; on companion (BLE) firmware several CLI commands are "Serial Only" and the BLE app is the main configuration path. First Connection Power on your MeshCore device Open the MeshCore app Tap "Scan for devices" - your node should appear in the list Tap your device to pair. A BLE PIN may be required - on many firmware builds/devices the default is 123456 (see the common-issues-and-fixes page). Once connected, the app shows the main interface with messaging, contacts, and settings App Overview Messages Tab Shows conversation threads. Public channel messages appear in a "Public" thread. Direct messages to specific nodes appear as separate threads. Tap a contact or "Public" to open a conversation and type a message. Contacts Tab Lists nodes that have been discovered by your node via advertisements. Each contact shows: Node name Last heard timestamp RSSI/SNR of last received advertisement Battery status (if reported) GPS coordinates and distance (if the node has GPS) Settings Tab Device configuration options including radio settings, advertisement configuration, position, and security settings. Changes are pushed to the connected device; some settings may require a device reboot to take effect. Connecting to a Community Network Tap Settings → Choose Preset Select USA/Canada (Recommended) for North American networks. Important: confirm this preset selects a frequency in the US 902-928 MHz ISM band (the North American community convention is ~910.525 MHz / SF7 / BW 62.5 kHz). MeshCore firmware boots on the EU default (869.525 MHz) until a region is set, so setting the region before transmitting is required - never transmit on a 868/869 MHz EU frequency in the US. Set your node name to something identifiable (your callsign or a location name) Enable advertisements and set flood mode to reach the full network Return to Contacts - nearby repeaters should appear within a few minutes as their advertisements arrive MeshCore App: Messaging and Contacts Sending Messages Public Channel Messages Messages sent to the "Public" channel are received by all nodes on the network that share your channel key. For the standard community network using the USA/Canada preset, all nodes on the public channel will see your message. Public-channel messages are encrypted with a publicly known channel key, so they are readable by anyone running MeshCore on the public channel - including passive observers who load the well-known key. Treat public-channel traffic as effectively unencrypted: do not send anything sensitive on it. Only a private channel with a secret key you control actually restricts who can read your messages. Direct Messages Tap a specific contact in the Contacts tab to open a direct message thread. Direct messages are end-to-end encrypted to the recipient's public key using a shared secret derived from each node's keys (ECDH key exchange), so intermediate repeaters relay but cannot read them. In normal use only you and the recipient can read them - this assumes you have the recipient's correct key. Note that keys are static (no forward secrecy), and a compromised device exposes that node's messages. Requirements: The recipient must have been discovered by your node (appeared in Contacts at some point) Their public encryption key must be cached in your node's contact database Your message will be routed via whatever path is available to reach them Message Delivery Confirmation MeshCore provides delivery status for direct messages: Sending - Message has been transmitted locally Delivered - The destination node has acknowledged receipt Failed - No acknowledgment received within timeout. The node may be offline or out of route. Delivery status reflects whether an acknowledgement was received, not certainty of delivery. A lost ACK on the return path can show Failed even when the message actually arrived. Do not treat delivery status as authoritative for life-safety messages - confirm critical traffic out-of-band. Public channel messages do not provide individual delivery confirmations (they're broadcast, not unicast). Contact Management Contacts Discovered Automatically Contacts appear automatically when their advertisements reach your node. You don't need to "add" contacts manually - the mesh is self-discovering. Contact Information Tap any contact to see: Full node details: name and hardware/node type (firmware version is not carried in the advertisement that discovers a contact - it requires a separate stats/query request to that node) Signal information: last RSSI and SNR readings Location: GPS coordinates and bearing/distance from your position Battery level (if the node reports it) Direct Message button to start an encrypted conversation Contact Expiry Contacts that haven't been heard from in an extended period are marked as "stale" or may be removed from the active contacts list. They reappear when a new advertisement is received from that node. Message History and Store-and-Forward When connected to a room server, you can request message history - public channel messages sent while you were offline. Tap the "Request History" option in the Public channel conversation. The room server will replay stored messages to your node. Direct messages sent while you were offline may be stored if your network operator has enabled store-and-forward on your network. MeshCore App: Radio Settings and Position Radio Settings Access via Settings → Radio (or Device → Radio Config depending on app version). Preset Selection The most important radio setting. Always use the preset that matches your local network: USA/Canada (Recommended) - North American convention (Oct-2025 "narrow"): 910.525 MHz, SF7, BW 62.5 kHz, CR5. Use this unless your local community uses something different. Europe - 868 MHz band. Use it on EU-region networks; make sure your hardware and antenna support 868 MHz. Custom - Manual parameter entry. Only use if you know exactly what you're doing and why. Do not use Custom preset unless your network coordinator specifically instructs you to. Incorrect custom settings make your node invisible to the rest of the network. Important: MeshCore firmware boots on the EU default (869.525 MHz) until you set a region, and the device will transmit on that default. You must set the correct region/preset for North America before relying on the node. TX Power Transmit power in dBm (valid range 1-22 dBm on SX1262 hardware). Higher power = more range and more power consumption. Under FCC Part 15.247 (902-928 MHz), the maximum conducted output is 30 dBm (1 W). With an antenna of 6 dBi or less this gives 36 dBm (4 W) EIRP. For every dB of antenna gain above 6 dBi you must reduce conducted power by the same dB (15.247(b)(4)), so EIRP stays at or below ~36 dBm. Example: a 9 dBi antenna requires reducing TX power to 27 dBm. The 36 dBm EIRP figure is a ceiling, not free headroom - do not assume you can run full 1 W into any high-gain antenna, and note that the fixed point-to-point high-gain exemption does not apply to point-to-multipoint mesh use. The app displays the maximum for your hardware; leave at default unless you have a specific reason to reduce it. Position Settings Access via Settings → Position. Enable GPS If your device has a GPS module, enable it here. GPS provides position for the contact map and enables distance calculation in the contacts list. On fixed infrastructure nodes, GPS is optional if you configure a static position manually. Fixed Position For nodes without GPS, or for fixed repeaters where GPS accuracy is not needed: Enable "Fixed Position" Enter latitude and longitude Tap Save - the node will broadcast this position in its advertisements Use your actual deployment coordinates, not your home address. The position is broadcast to the network and appears on community maps. Position Privacy If you don't want your exact position broadcast on the public network, disable position reporting, or set an approximate fixed position (e.g. a nearby landmark rather than your exact coordinates) instead of your precise location. Infrastructure operators typically share full position; personal nodes may prefer to share only an approximate location or none at all. Advertisement Settings MeshCore advertisements use one of two modes rather than a generic numeric hop limit: flood (rebroadcast by repeaters, so it propagates network-wide) or zero-hop (heard only by nodes in direct range, local only). The CLI equivalents are advert (flood) and advert.zerohop. Advertisement Interval - How often your node broadcasts its existence. There are two separate intervals: the flood advert interval is set in hours (3-168, default 12 hours), and the zero-hop advert interval is set in minutes (60-240). The default 12-hour flood interval is appropriate for stable deployments. Reduce the interval during initial setup to confirm discovery. Advertisement Mode - Choose flood for network-wide visibility (community repeaters) or zero-hop for local-only announcements. Node Name - Your node's display name. Use a consistent format with your community's naming convention.