Android · Meshtastic / LoRa
NTsocial MeshLink operation manual
Connect an Android phone to Meshtastic radios, exchange off-grid text, manage as many as four radio endpoints, and optionally let selected NTsocial channels reach LoRa.
Connections → select the radio → wait for synchronization → set the correct LoRa region → open Conversations. A region is a radio-law setting, not a language choice.
Chapter 01
What MeshLink does
MeshLink is an independent Meshtastic controller for Android and an optional local gateway for NTsocial. NTsocial is not required for ordinary Meshtastic use.
Two ways to use it
Connect to a compatible radio, send channel or direct text, inspect nearby nodes, and configure LoRa, channels, security, device settings and supported modules.
Keep MeshLink connected to the radio while NTsocial sends explicitly bound text and supported state through MeshLink to a Meshtastic channel.
The five main destinations
- Conversations: Channel Hub, channel conversations and direct messages, with an all-radio view and per-radio tabs.
- Nodes: Devices learned from the mesh and their status, position and telemetry when available.
- MeshCore: A separate feature path. It is not the Meshtastic radio connection used by the NTsocial gateway.
- Settings: Radio, device, channel, security, modules, backup, maintenance and app preferences.
- Connections: Scan for Bluetooth radios, connect, and manage the saved radio fleet.
Current Android boundaries
- The Android connection screen exposes Bluetooth radios. Do not expect a USB or TCP connection button in this release.
- LoRa is a low-bandwidth text and state path. MeshLink does not send NTsocial images, voice clips, PTT audio or general files over LoRa.
- Native Meshtastic radio messaging does not need the internet. Internet can still be used by optional features you explicitly configure, such as MQTT or obtaining firmware.
- Map tiles are not bundled into this cloud-free Android release. Position values and position-related metrics may still be visible.
Chapter 02
Meshtastic essentials
Understanding the two wireless links prevents most setup mistakes: Bluetooth connects the phone to one nearby radio; LoRa connects that radio to other Meshtastic radios.
How one message travels
- Android phoneMeshLink creates or displays the text
- BluetoothShort-range control link to your radio
- Your radioEncodes and transmits a Meshtastic packet
- LoRa meshOther nodes receive and may rebroadcast it
Core terms
- Node
- One Meshtastic radio. It has a node ID, long and short names, and may report battery, position and telemetry.
- Mesh and hop
- Nodes can rebroadcast packets. Each relay is a hop. More hops can extend reach but also consume shared airtime.
- Region
- The legal frequency plan for where the radio is physically used. Set it correctly before transmitting.
- Modem preset
- A bundle of LoRa speed/range parameters. Radios must use compatible radio settings to hear each other.
- Primary / secondary channel
- A radio stores channel slots. The primary channel also carries important mesh behavior; secondary channels provide additional conversations.
- PSK
- The shared channel key. Matching name alone is not enough—peers need compatible radio settings and the same channel key.
- Role
- Controls node behavior such as ordinary client or routing-focused use. Choose a role for the device's real job.
- Airtime
- LoRa capacity is limited and shared. Short, infrequent text is healthier for the mesh than rapid or bulky traffic.
What affects range
- Antenna quality, frequency match, antenna height, terrain, buildings, radio power and modem preset all matter.
- Line of sight usually matters more than raw transmitter power. Move a node higher and away from metal before chasing aggressive settings.
- A repeater is not automatically beneficial. Use rebroadcast-oriented roles only when the placement and local airtime plan justify them.
Rebroadcast mode = ALL. It can increase network load and should be a deliberate, team-wide decision.What delivery indicators mean
Statuses such as queued, sent or acknowledged describe different milestones. A packet admitted to the local database or radio queue is not proof that a remote person read it. In difficult terrain, confirm important messages by a reply or another agreed procedure.
Chapter 03
Install and first launch
MeshLink 1.0.7 supports Android 8.0 or later. A compatible Meshtastic radio should normally run firmware 2.5.14 or later; older firmware can hide features or behave differently.
First-launch flow
- Choose English, 繁體中文 or 日本語. You can change the app language later in Settings.
- Read the introduction, then grant Nearby devices / Bluetooth so the app can discover and connect to the radio.
- Location is optional for phone-location and distance features. MeshLink asks only when that function is used; it does not request background location.
- Allow notifications if you want new-message, new-node or low-battery alerts. Critical alerts are optional.
Before the first connection
- Charge the phone and radio, and attach the correct antenna before transmitting.
- Enable Bluetooth on the phone and wake the radio.
- Keep the radio near the phone during pairing and initial synchronization.
- Stop another controller app from holding the same radio connection.
- Know the permitted frequency region for your physical location.
Chapter 04
Connect the first radio
Use Connections for discovery and fleet management. Scanning is bounded rather than permanent, which saves power and avoids stale results.
Scan and connect
- Power on the radio, place it nearby, and open Connections.
- Wait for the scan window. If the device does not appear, restart the scan after confirming Bluetooth permission and radio advertising.
- Tap the correct device name/address. Complete the Android pairing prompt or radio PIN if one appears.
- Wait until the connection state is ready and the app finishes reading radio configuration, node data and channels.
After the first synchronization
Open Settings → LoRa and set the correct region if the app warns that it is unset. Then verify the owner name and radio channel. Some setting changes make the radio reboot and reconnect.
Disconnect, reconnect and forget
- Disconnect ends the current Bluetooth session but keeps the saved endpoint and its local history.
- Connect resumes a saved endpoint. Keep the device awake and in Bluetooth range.
- Remove forgets a non-primary saved endpoint from the fleet. It is not the same as erasing the physical radio.
- The compatibility primary endpoint is marked Legacy primary and cannot be removed from the fleet card.
Chapter 05
Use up to four radios
MeshLink can retain a catalog of four distinct Meshtastic Bluetooth endpoints. Each endpoint keeps its own radio data and conversation history while app-wide preferences stay shared.
Register another endpoint
- Open Connections and confirm the fleet capacity shown near the radio cards.
- Disconnect the current radio if necessary, wake the next radio, then scan and select it.
- Let synchronization finish before adding another device. Use the name and address suffix to distinguish similar radios.
Select and inspect a radio
Use the radio card's Select action to make an endpoint current, then connect or disconnect it. Endpoint-aware pages return to their main screen after a radio switch; they do not keep a separate hidden navigation stack for every radio.
In Conversations and endpoint-aware settings, tabs can show the final four address characters. All aggregates conversations from the fleet. A disconnected radio can still show cached information, but that view is read-only until the endpoint is connected.
What is separate and what is shared
Radio connection, node database, channels, radio configuration, message history and cached Channel Hub state.
Language, theme and other application preferences that do not belong to one physical radio.
Chapter 06
Conversations and messages
The Channel Hub combines channel and direct conversations. Use the All view for fleet awareness or an endpoint tab to focus on one radio.
Read the Channel Hub
- Cards can show the endpoint, channel role, lock/security state, latest text, time, unread count and channel appearance.
- A connected endpoint can open a live conversation. A disconnected endpoint may show cached history as read-only.
- Channel conversations broadcast to members using the same channel configuration. Direct messages target a node ID.
Send a channel or direct message
- Open Conversations and choose the intended endpoint or All.
- Open a channel card, or choose a node/contact for a direct conversation.
- Enter a short text message and send. Keep LoRa messages concise.
- Watch the status indicator, but request a reply for operationally important information.
Message tools
Depending on message state and context, the conversation screen supports search, reply, reactions, copy, local deletion, selection, delivery details, resend and reusable Quick Chat text. Deleting a local record does not recall a packet already transmitted over the mesh.
Interpreting status
| Status family | Practical meaning | What it does not prove |
|---|---|---|
| Queued / pending | The app or radio path accepted work for later handling. | That a LoRa transmission occurred. |
| Sent / en route | The packet progressed into the radio network. | That the intended person received or read it. |
| Acknowledged / delivered | A protocol acknowledgement was observed where supported. | Human comprehension or action. |
| Failed | The local path could not complete the send. | That no other earlier copy ever left the radio. |
Chapter 07
Nodes and radio diagnostics
The Nodes page is the radio's learned mesh directory. Entries age as packets are heard; an old entry is not evidence that a device is online now.
Use the node list
Search and filter the list to find a node, then check its long/short name, ID, last-heard time, hop information and available signal or battery data. Values appear only when the node and firmware report them.
Open node details
Detail pages can contain device information, position, environment, signal, power, air-quality, host, Pax, neighbor and other telemetry. Missing panels usually mean the source node, sensor module or firmware did not provide that data—not that the app failed to draw it.
Traceroute and metrics
Use traceroute sparingly to learn the path when the network supports it. A route can change between packets. RSSI and SNR describe a received radio link, while hop count describes relaying; compare trends instead of treating one sample as a guarantee.
Remote administration
Chapter 08
The MeshCore tab
MeshCore appears as its own top-level destination because it is a separate radio ecosystem and workflow. It should not be confused with the Meshtastic connection managed in Connections.
- Meshtastic conversations, nodes, channels and the NTsocial gateway use the Meshtastic endpoint path documented in the rest of this guide.
- Opening or configuring MeshCore does not bind an NTsocial channel to Meshtastic.
- Do not assume a MeshCore device can carry NTsocial gateway traffic unless the NTsocial gateway screen explicitly lists a compatible, ready route.
Connections, verify its Meshtastic channel, then bind it from the NTsocial app.Chapter 09
Channels, QR codes and security
A channel is more than a displayed name. Communication depends on compatible LoRa settings, channel slot and role, and the shared key.
Primary and secondary channels
The primary channel is the radio's main channel slot and participates in mesh behavior. Secondary channels add conversations. Before changing the primary channel on a working fleet, record the existing configuration and coordinate the change with the whole team.
Clear, well-known and private keys
- Clear / no PSK: channel traffic is not protected by a private shared key.
- Well-known/default: convenient for public interoperability but not a secret.
- Custom PSK: only devices with the same key can interpret that channel's protected payload.
Share or import a channel set
- Open Settings → Channels and choose the channel or sharing action.
- Generate a QR only for the intended team. Treat the QR like a password when it contains a private key.
- On the receiving phone, scan on device and review whether the action will add channels or replace the current set.
- Confirm the region separately. Importing a channel is not permission to use the sender's regional frequency plan.
Apply and verify
Channel and LoRa changes may reboot the radio. The app can show a neutral pending state for roughly 30 seconds while the radio reconnects and configuration is read back. You may leave the page; success is established by verified readback, while an explicit rejection or mismatch is an error.
Built-in NTsocial channel
MeshLink can register its canonical NTsocial Meshtastic channel when an unused slot exists. It does not overwrite an already configured region or modem preset and must fail safely when no channel slot is available. Review the result instead of assuming the radio was reconfigured.
Chapter 10
Radio and app settings
Settings are endpoint-aware. Select the intended radio before changing radio configuration. The app hides options that the hardware, role or firmware does not support.
Radio configuration
- User: owner long/short name and identity-related radio values.
- LoRa: region, modem preset, hop and transmit-related options. Change only with a network plan.
- Channels: primary/secondary channel slots, role and key.
- Security: device and administration security controls.
Device configuration
Depending on the radio, pages can include Device, Position, Power, Network, Display and Bluetooth. Phone-location sharing is opt-in and needs foreground location conditions. A setting shown for one endpoint might not appear for another model.
Module settings
Supported firmware can expose MQTT, serial, external notification, Store & Forward, range test, telemetry, canned messages, audio, remote hardware, neighbor info, ambient lighting, detection sensor, Paxcounter, status, traffic management and TAK. Enabling a module consumes radio, memory, power or airtime; enable only what the deployment uses.
App-local settings
Language, theme, privacy/location choices, notification behavior, filters, device links, cache and CSV export belong to the Android app. They are not broadcast as Meshtastic radio configuration. Wi-Fi provisioning may appear for supported radios even though ordinary Android radio connections remain Bluetooth-first.
Administration
Backup/restore protects configuration before risky changes. Reboot, shutdown, factory reset, node-database reset, clean local database and debug tools have different scopes—read the confirmation carefully. A factory reset of the radio is not the same operation as clearing MeshLink's local cache.
Chapter 11
Use MeshLink with NTsocial
MeshLink owns the Bluetooth radio session. NTsocial talks to MeshLink through a protected local app service and routes only channels you explicitly bind.
Prepare both apps
- Install current NTsocial and NTsocial MeshLink builds on the same Android phone.
- Connect MeshLink to the intended radio and let synchronization finish.
- Set the lawful region and verify the target Meshtastic channel in MeshLink.
- Keep Bluetooth on and prevent another radio controller from taking the connection.
Choose MeshLink as the provider
Only one gateway provider is active at a time. Wait until NTsocial reports that MeshLink is ready before binding a channel. Selecting the provider does not send every NTsocial conversation over LoRa.
Bind an NTsocial channel
- In NTsocial, open the channel that should use LoRa and its transport/radio binding controls.
- Choose only an endpoint and Meshtastic channel currently listed as ready by the gateway.
- Save the binding, then return to the channel and send a short, non-sensitive test message.
- Verify from another Meshtastic node or by a reply. Do not use the sender's local status as the only proof.
Gateway data and delivery boundaries
- Supported text and compact state/control data can use the bound LoRa route.
- Images, audio, PTT bytes and arbitrary files stay on NTsocial's phone transports.
- “Accepted” can mean stored in local Room data, WorkManager or the radio queue. It never promises RF airtime, remote receipt or a human read.
- NTsocial owns its canonical conversation history. MeshLink is the radio transport and diagnostic surface.
- If the radio, endpoint identity, channel key or gateway provider changes, review and revalidate the binding.
A reliable field test
- Disconnect mobile data/Wi-Fi if you want to prove the off-grid path, while keeping Bluetooth enabled.
- Use two separated Meshtastic nodes with matching region/preset/channel settings.
- Send a unique short phrase from the bound NTsocial channel.
- Confirm it at the remote side and send a reply in the reverse direction.
Chapter 12
Firmware and maintenance
Firmware controls the radio's capabilities. Update only when the device, connection method and firmware package match.
Update safely
- Charge the phone and radio, use the correct antenna and keep the devices close.
- Back up radio configuration and channel information first.
- Choose the exact hardware model and supported update path shown by the app.
- Do not close the app, power off the radio or move out of range during an active transfer.
- Expect the radio to reboot; reconnect and verify region, channels and owner data afterward.
Firmware controls appear only for compatible hardware. The app may offer Bluetooth OTA or Wi-Fi-based provisioning/update paths where supported; their presence does not add a general Wi-Fi radio connection mode to the Connections screen.
Backup, export and clean-up
Use configuration backup before experiments. CSV export is useful for inspection but is not a complete radio restore. Clean local database removes app-side data; node-database reset affects the radio's learned nodes; factory reset is broader. Confirm the scope every time.
After an interrupted change
Keep the radio powered, wait for its normal boot cycle, then reopen Connections and scan. If it advertises, reconnect and read settings before attempting another update. Follow the device maker's recovery procedure when it no longer boots or advertises.
Chapter 13
Troubleshooting
Start at the phone-to-radio Bluetooth link, then the radio configuration, then the over-air mesh. Testing in that order prevents one failure from being mistaken for another.
Radio does not appear or connect
- Confirm the radio is awake and advertising, Bluetooth is on, and Nearby devices permission is granted.
- Move close, stop the other controller app, restart the bounded scan, then power-cycle only the radio if needed.
- If Android pairing is stale, forget the Bluetooth pairing in system settings and pair again.
Connected, but messages do not arrive
- Compare region, modem preset, channel slot/role and PSK on both radios.
- Check antenna, frequency compatibility, battery, placement, last-heard time and whether the correct endpoint is selected.
- Send one short test and wait. Rapid retries consume airtime and can make congestion worse.
Channel change remains pending
Allow the reboot/reconnect window, then revisit the channel and verify readback. If the radio reports a rejection or the values differ, treat the change as failed; do not assume a green local toast overrules the radio's actual configuration.
NTsocial cannot use the route
- Verify MeshLink is connected and NTsocial selected MeshLink—not another gateway provider.
- Open NTsocial's radio catalog again and bind only a currently ready entry.
- Rebind after replacing a radio, resetting channels or changing the channel key.
- Remember that a saved secondary radio is not automatically gateway-ready.
Battery or background reliability
Bluetooth, frequent position updates, telemetry, screen-on time and chatty modules all use power. Permit the notifications/foreground service the app explains, keep phone and radio charged, and disable modules the deployment does not need.