Meshtastic Apps and Interfaces

Meshtastic Android App Overview

The Meshtastic Android app is the primary interface for configuring and using Meshtastic devices. It is the most feature-complete of the Meshtastic client apps and receives updates most frequently.

Installation and Requirements

Connecting to a Node

  1. Enable Bluetooth on your phone
  2. Power on your Meshtastic device
  3. Open the app - it should automatically scan for nearby Meshtastic devices
  4. Tap your device in the "Connect a Radio" list
  5. For first connection: confirm the pairing PIN displayed on the device (if equipped with a screen), or accept the default PIN

Alternative connections (for ESP32 boards):

Key App Screens

Messages

Shows conversation threads. "Primary Channel" is the default public channel. Additional configured channels appear as separate tabs. Direct message threads appear separately. The app shows sent/received/acknowledged status for each message.

Nodes

Lists all nodes visible to your network within the configured hop count. Shows: node name, short name, last heard timestamp, signal quality (SNR/RSSI), battery level, and distance/bearing from your location. Tap a node to see detailed info or initiate a direct message.

Map

Displays node positions on a map. Your node appears as a solid icon; other nodes appear with their short names. Tap a node on the map to see its details. The map works offline if you've previously loaded the tiles for that area (tiles are cached on first use).

Radio Config

Device configuration organized into sections: Device, Position, Power, Network, Display, LoRa, Bluetooth, and Security. Changes are pushed to the connected node immediately when saved.

Useful App Features

Meshtastic iOS App Overview

The Meshtastic iOS app provides core functionality for iPhone and iPad users, including messaging, node management, and configuration. Feature parity with the Android app has improved substantially in recent releases.

Installation

Connecting Your Node

iOS Bluetooth handling differs from Android:

  1. Enable Bluetooth on your iPhone/iPad
  2. Open the Meshtastic app - it will scan for nearby BLE devices
  3. Your node should appear under "Radio Configuration" → "Radio"
  4. Tap to connect. iOS may require granting Bluetooth permission on first use.
  5. The node pairs automatically - no PIN entry required in most cases

Important iOS difference: iOS does not allow background BLE connections to stay active when the app is not in the foreground. Your phone must be awake and the Meshtastic app must be active to relay messages. This is an iOS system limitation, not a Meshtastic issue.

Feature Comparison: Android vs iOS

FeatureAndroidiOS
MessagingYesYes
Node mapYesYes
Full Radio ConfigYesYes (improving with each release)
Background BLEYesNo (iOS limitation)
USB Serial connectionYes (with OTG)Limited
WiFi TCP connectionYesYes
Export/Import configYesYes
Range test module controlYesYes
Apple Watch companionN/AYes (basic)

iOS-Specific Tips

Meshtastic Web Client and Python CLI

Meshtastic Web Client

The Meshtastic Web Client (client.meshtastic.org) provides a browser-based interface for configuring Meshtastic nodes without installing a mobile app. It supports WebSerial (Chrome/Edge) for USB connections and WebBluetooth for BLE connections on supported platforms.

Use Cases for the Web Client

Connecting via Web Serial

  1. Open client.meshtastic.org in Chrome or Edge (not Firefox)
  2. Click "New Connection" → "Serial"
  3. Select your device's COM port or /dev/tty device
  4. The full configuration interface loads directly in the browser

Meshtastic Python CLI

The Python CLI is the most powerful configuration interface - it provides access to every configurable parameter and supports automation scripting.

Installation

pip install meshtastic

Requires Python 3.8+. Works on Windows, macOS, and Linux.

Essential Commands

# Connect to a serial node and show device info
meshtastic --info

# List all nodes in the node database
meshtastic --nodes

# Set a configuration value
meshtastic --set lora.modem_preset MEDIUM_SLOW

# Set multiple values at once
meshtastic --set device.role ROUTER --set bluetooth.enabled false

# Export full configuration to JSON
meshtastic --export-config > config-backup.json

# Import configuration from JSON
meshtastic --import-config config-backup.json

# Send a test message
meshtastic --sendtext "Test message from CLI"

# Listen to all incoming packets
meshtastic --listen

# Connect to a node via TCP (WiFi/network)
meshtastic --host 192.168.1.100 --info

# Factory reset
meshtastic --factory-reset

Scripting with Python API

import meshtastic
import meshtastic.serial_interface

# Connect
iface = meshtastic.serial_interface.SerialInterface()

# Get device info
info = iface.localNode.localConfig
print(info)

# Send a message
iface.sendText("Hello mesh!")

# Listen for messages
from pubsub import pub
def on_receive(packet, interface):
 print(f"Received: {packet}")
pub.subscribe(on_receive, "meshtastic.receive")

iface.close()

Specifying a Connection

# Serial (auto-detect)
meshtastic --info

# Serial (specific port - Windows)
meshtastic --port COM3 --info

# Serial (specific port - Linux/Mac)
meshtastic --port /dev/ttyUSB0 --info

# TCP (WiFi connection)
meshtastic --host 192.168.1.100 --info

# BLE (by node name)
meshtastic --ble "Meshtastic_ABCD" --info