Go to Full Documentation

APRS Command Reference

For Ham Radio Operators - Gearsmen Comms Center

On your radio: set To = KQ4YSV. In the Message body, type the Command, then Target (recipient, group name, etc.), then your Message. Use your Codebook (view or regenerate at the dashboard) to authenticate and prevent spoofing-see the Codebook section in the main docs.

Structure: To (gateway) → CommandTargetMessage. Not every command needs all fields.

Features (source of truth - FEATURES command uses this)

Send FEATURES via APRS to get this list over the radio.

Free

  • HELP - List commands
  • PING - Test latency
  • ECHO - Echo text
  • DATE - Current date
  • STATUS - System status
  • WX/WEATHER - Weather
  • ALERTS - NWS alerts
  • FLIGHT/NEWS/SCORE - Flights, news, sports
  • POS - Store lat/lon
  • CODE - Shortcuts
  • GROUP - Manage groups
  • AUTO - Scheduled SMS

Paid (subscription)

  • SMS - Text to phone
  • AI - Chat
  • DIR - Directions
  • GROUP SEND - SMS to group
  • CALL/DXCC - QRZ lookup

Each section below includes example requests - exact message bodies you can send. If you don't see your use case listed, try a similar phrase; these examples show what the system understands.

SMSSender (SMS Relay)

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    SMS +17845551234 Need pickup at trailhead- one-to-one text
  • To: KQ4YSV
    Message:
    SMS +17845551234 Running low on water. ETA 2 hours.- longer message
  • To: KQ4YSV
    Message:
    SMS +15551234567 All good, on schedule- US number (+1)
  • To: KQ4YSV
    Message:
    SMS +17845551234 Emergency. Need evacuation.- emergency wording

Send a text message

Send an SMS to a phone number. Recipient must have replied START to opt in.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
SMS +17845551234 Need pickup at trailhead. Running low on water.

Use E.164 format (+1 for US). Rate limits apply. Use your codebook to authenticate-see main docs.

Groups

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    GROUP CREATE SAR-TEAM- create a group
  • To: KQ4YSV
    Message:
    GROUP CREATE FAMILY- another group name
  • To: KQ4YSV
    Message:
    GROUP ADD SAR-TEAM +17845551234- add by phone number
  • To: KQ4YSV
    Message:
    GROUP ADD SAR-TEAM HOME- add by contact alias
  • To: KQ4YSV
    Message:
    GROUP SEND SAR-TEAM Rally at base camp 1400Z- broadcast to group
  • To: KQ4YSV
    Message:
    GROUP SEND FAMILY All safe. Check in when you can.- family check-in
  • To: KQ4YSV
    Message:
    GROUP LIST- list your groups
  • To: KQ4YSV
    Message:
    GROUP MEMBERS SAR-TEAM- list group members
  • To: KQ4YSV
    Message:
    GROUP REMOVE SAR-TEAM +17845551234- remove a member
  • To: KQ4YSV
    Message:
    ALERT SAR-TEAM Need backup at base- urgent broadcast to group

Create a group

Create a named group for broadcast messaging.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
GROUP CREATE SAR-TEAM

Add a contact to a group

Add a phone number or codebook name to an existing group.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
GROUP ADD SAR-TEAM +17845551234

Target can be +E164 or a contact alias: GROUP ADD SAR-TEAM HOME

Send to a group

Broadcast a message to all group members.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
GROUP SEND SAR-TEAM Rally at base camp 1400Z

List your groups

See all groups you've created.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
GROUP LIST

List group members

See who is in a group.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
GROUP MEMBERS SAR-TEAM

Remove a contact from a group

Remove a phone number from a group.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
GROUP REMOVE SAR-TEAM +17845551234

Urgent broadcast (ALERT)

Send priority message to group when you need immediate response.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
ALERT SAR-TEAM Need backup at base

Scheduled Messages

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    AUTO CREATE CheckIn AT 14:00 SEND +17845551234 All good, on schedule- daily check-in at 2 PM
  • To: KQ4YSV
    Message:
    AUTO CREATE Morning AT 08:30 SEND HOME Leaving camp now- target is contact alias HOME
  • To: KQ4YSV
    Message:
    AUTO CREATE Alert AT 18:00 SEND SAR-TEAM Evening roll call- send to a group at 6 PM
  • To: KQ4YSV
    Message:
    AUTO REPEAT Morning DAILY AT 08:00 SEND FAMILY All good- daily recurring
  • To: KQ4YSV
    Message:
    AUTO ENABLE CheckIn- turn automation on
  • To: KQ4YSV
    Message:
    AUTO DISABLE CheckIn- turn automation off
  • To: KQ4YSV
    Message:
    AUTO DELETE CheckIn- delete an automation
  • To: KQ4YSV
    Message:
    AUTO LIST- list all your automations

Schedule a one-time message

Set up a single message at a specific time. Use 24-hour time (HH:MM).

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
AUTO CREATE CheckIn AT 14:00 SEND +17845551234 All good, on schedule

AT 14:00 = 2:00 PM. Target can be a phone number or group name.

Daily recurring message

Send the same message every day at the same time.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
AUTO REPEAT Morning DAILY AT 08:00 SEND FAMILY All good

Target can be phone number or group name.

Delete an automation

Remove a scheduled automation.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
AUTO DELETE CheckIn

Enable an automation

Turn on a scheduled automation.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
AUTO ENABLE CheckIn

Disable an automation

Turn off a scheduled automation.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
AUTO DISABLE CheckIn

List automations

See all your scheduled automations.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
AUTO LIST

AI Commands

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    AI HEAT STROKE TREATMENT- first aid
  • To: KQ4YSV
    Message:
    AI HYPOTHERMIA FIRST AID- cold exposure
  • To: KQ4YSV
    Message:
    AI DEHYDRATION SYMPTOMS- survival info
  • To: KQ4YSV
    Message:
    AI HOW TO PURIFY WATER- outdoor skills
  • To: KQ4YSV
    Message:
    AI SNAKE BITE WHAT TO DO- emergency
  • To: KQ4YSV
    Message:
    AI SHORTEST ROUTE TO HIGHWAY- navigation concept (use DIR for actual routing)
  • To: KQ4YSV
    Message:
    AI WHAT PLANTS ARE EDIBLE- foraging (general)

Ask AI a question

Get AI-generated answers (first aid, survival info, etc.). Replies are compressed for APRS.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
AI HEAT STROKE TREATMENT

When enabled. Uses OpenAI. Keep queries short; replies are truncated for radio.

Utility & Account

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    CALL K4ABC- lookup callsign (name + location)
  • To: KQ4YSV
    Message:
    DXCC K4ABC- lookup country/DXCC entity
  • To: KQ4YSV
    Message:
    HELP- list all commands
  • To: KQ4YSV
    Message:
    HELP SMS- help for a topic
  • To: KQ4YSV
    Message:
    CONTACTS- list your contacts
  • To: KQ4YSV
    Message:
    TIME- server time (UTC)
  • To: KQ4YSV
    Message:
    LAST- last message status
  • To: KQ4YSV
    Message:
    ME- your callsign and account
  • To: KQ4YSV
    Message:
    BALANCE- remaining credits
  • To: KQ4YSV
    Message:
    CODE LIST- list aliases
  • To: KQ4YSV
    Message:
    SMS +17845551234 ?- check opt-in status
  • To: KQ4YSV
    Message:
    REPLY On my way- reply to last inbound

Lookup callsign (CALL)

Name + location from QRZ. Free.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
CALL K4ABC

Not found returns 'Not in QRZ'. No blocking.

Lookup country (DXCC)

Country/DXCC entity from QRZ.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
DXCC K4ABC

Free lookup.

Get help

List commands or get topic help.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
HELP SMS

List contacts

See your phone numbers.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
CONTACTS

Server time

UTC time.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
TIME

Last message status

Check your most recent send.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
LAST

Account info

Your callsign and account.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
ME

Reply to last

Reply to last inbound SMS.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
REPLY On my way

Emergency & Safety

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    CHECKIN- log position (uses POS if set)
  • To: KQ4YSV
    Message:
    CHECKIN SAR-TEAM- check in and notify group
  • To: KQ4YSV
    Message:
    CHECKIN +17845551234- check in and notify contact
  • To: KQ4YSV
    Message:
    ALERT SAR-TEAM Need backup at base- urgent broadcast

Check in

Log position. Optionally notify a group or contact.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
CHECKIN SAR-TEAM

Use POS 35.22 -80.84 first to set your location for CHECKIN.

Urgent alert

Priority broadcast when you need immediate response.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
ALERT SAR-TEAM Need backup at base

Field Tools (Sun, Moon, Quakes, Nav)

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    SUNRISE 35.22 -80.84- sunrise time
  • To: KQ4YSV
    Message:
    SUNSET 35.22 -80.84- sunset time
  • To: KQ4YSV
    Message:
    MOON- moon phase and rise/set
  • To: KQ4YSV
    Message:
    TAF CLT- terminal area forecast (aviation)
  • To: KQ4YSV
    Message:
    QUAKE- recent earthquakes
  • To: KQ4YSV
    Message:
    QUAKE CA- earthquakes in California
  • To: KQ4YSV
    Message:
    DIR Charlotte TO Asheville- driving directions
  • To: KQ4YSV
    Message:
    DIR GAS NEAR ME- gas stations near your POS
  • To: KQ4YSV
    Message:
    DIR HOSPITAL NEAR 35.22 -80.84- hospitals near coords

Sunrise time

Sunrise for a location.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
SUNRISE 35.22 -80.84

Sunset time

Sunset for a location.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
SUNSET 35.22 -80.84

Moon phase

Moon phase and rise/set.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
MOON

Terminal area forecast

TAF for aviation. IATA code.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
TAF CLT

Earthquakes

Recent quakes (USGS). Optional region.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
QUAKE CA

Driving directions

Turn-by-turn between two places.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
DIR Charlotte TO Asheville

Find POIs near location

Gas, hospital, etc. Use NEAR ME if POS is set.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
DIR GAS NEAR ME

Or: DIR HOSPITAL NEAR 35.22 -80.84

SkyWatch (Weather)

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    WX TEMP Charlotte NC- temp only (shortest reply)
  • To: KQ4YSV
    Message:
    WX TEMP Atlanta GA- city and state
  • To: KQ4YSV
    Message:
    WX TEMP London UK- international
  • To: KQ4YSV
    Message:
    WX WIND Charlotte NC- wind only
  • To: KQ4YSV
    Message:
    WEATHER Charlotte NC- full conditions by city
  • To: KQ4YSV
    Message:
    WEATHER 35.22 -80.84- full conditions by lat/lon
  • To: KQ4YSV
    Message:
    ALERTS- NWS severe alerts (default area)
  • To: KQ4YSV
    Message:
    ALERTS 35.22 -80.84- NWS alerts for coordinates (US only)

Current weather (short)

Get temp only - fastest reply.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
WX TEMP Charlotte NC

Wind only

Get wind speed and direction.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
WX WIND Charlotte NC

Full conditions

Current weather by city or coordinates.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
WEATHER Charlotte NC

Or: WEATHER 35.22 -80.84 for lat/lon.

NWS severe weather alerts

NOAA alerts for a location. US only.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
ALERTS 35.22 -80.84

Or ALERTS for default (Charlotte area).

Flights

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    FLIGHT AA1004- status for one flight (IATA)
  • To: KQ4YSV
    Message:
    FLIGHT UA501- different airline
  • To: KQ4YSV
    Message:
    FLIGHTS DEP CLT- departures from Charlotte
  • To: KQ4YSV
    Message:
    FLIGHTS DEP ATL- departures from Atlanta
  • To: KQ4YSV
    Message:
    FLIGHTS ARR ATL- arrivals at Atlanta
  • To: KQ4YSV
    Message:
    FLIGHTS ARR JFK- arrivals at JFK
  • To: KQ4YSV
    Message:
    AIRPORT CLT- airport info by IATA code
  • To: KQ4YSV
    Message:
    AIRPORT LAX- another airport

Flight status

Check a flight. IATA code.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
FLIGHT AA1004

Departures from airport

Upcoming departures.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
FLIGHTS DEP CLT

Arrivals at airport

Incoming flights.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
FLIGHTS ARR ATL

Airport info

Look up an airport by IATA code.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
AIRPORT CLT

SignalWire (News)

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    NEWS- US top headlines
  • To: KQ4YSV
    Message:
    NEWS US- same as NEWS
  • To: KQ4YSV
    Message:
    NEWS TECH- technology headlines
  • To: KQ4YSV
    Message:
    NEWS SPORTS- sports headlines
  • To: KQ4YSV
    Message:
    NEWS hurricane- search by topic
  • To: KQ4YSV
    Message:
    NEWS election- search topic
  • To: KQ4YSV
    Message:
    NEWS weather- search topic

US headlines

Top US headlines.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
NEWS

Tech headlines

US technology headlines.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
NEWS TECH

Search news

Search by topic.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
NEWS hurricane

ScoreLine (Sports)

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    SCORE Liverpool- latest match for team
  • To: KQ4YSV
    Message:
    SCORE Manchester United- another team
  • To: KQ4YSV
    Message:
    STANDINGS EPL- English Premier League table
  • To: KQ4YSV
    Message:
    STANDINGS LaLiga- Spanish league
  • To: KQ4YSV
    Message:
    STANDINGS Bundesliga- German league
  • To: KQ4YSV
    Message:
    STANDINGS SerieA- Italian league
  • To: KQ4YSV
    Message:
    STANDINGS Ligue1- French league

Latest score

Most recent match for a team.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
SCORE Liverpool

League standings

Top of table. EPL, LaLiga, Bundesliga, etc.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
STANDINGS EPL

PathFinder / NearBy (DIR)

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    DIR HOSPITAL Charlotte NC- nearest hospital near city
  • To: KQ4YSV
    Message:
    DIR HOSPITAL Atlanta GA- hospital near another city
  • To: KQ4YSV
    Message:
    DIR HOSPITAL NEAR ME- nearest hospital (set POS first)
  • To: KQ4YSV
    Message:
    DIR GAS Charlotte NC- nearest gas station
  • To: KQ4YSV
    Message:
    DIR GAS NEAR ME- gas near your stored position
  • To: KQ4YSV
    Message:
    DIR FUEL Atlanta GA- fuel (alias for GAS)
  • To: KQ4YSV
    Message:
    DIR SHELTER Charlotte NC- nearest shelter
  • To: KQ4YSV
    Message:
    DIR SHELTER NEAR ME- shelter near you
  • To: KQ4YSV
    Message:
    POS 35.22 -80.84- set position for NEAR ME (lat lon)

Nearest hospital

Find hospital near a city. OpenStreetMap.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
DIR HOSPITAL Charlotte NC

Nearest gas station

Find fuel near a city.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
DIR GAS Atlanta GA

Nearest shelter

Find shelter near a city.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
DIR SHELTER Charlotte NC

Utility

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    STATUS- gateway online and health check
  • To: KQ4YSV
    Message:
    HELP- summary of available commands

Check system status

Verify the gateway is online and get a quick health check.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
STATUS

Get help (command summary)

Returns a short list of available commands (SMS, CODE, CALL, DXCC, POS, DIR, WX, WEATHER, ALERTS, FLIGHT, NEWS, SCORE, STATUS).

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
HELP

Rate Limits

  • • Cooldown: 1 SMS per sender every 2-3 minutes
  • • Daily cap: 10-15 SMS/day per sender
  • • Monthly cap: 40-60 SMS/month
  • • Burst: Max 3 SMS in 10 minutes

Compliance: Paid users do NOT get higher limits.

Response Codes

  • QUEUED - Message accepted
  • SENT - SMS delivered
  • DENIED (not opted in) - Recipient must reply START
  • RATE LIMITED - Exceeded limits
  • INVALID FORMAT - Command syntax error

Opt-in (START / STOP)

Before you can send SMS to a phone number, the recipient must opt in. They reply START to consent. They can opt out anytime by replying STOP. This is required for TCPA compliance.

Add contacts in the Comms Center (gearsmen.app/dashboard). The system may send an opt-in request. Recipients reply START to receive messages. If you get DENIED (not opted in), they haven't replied START yet.

Inbound Replies

Inbound SMS replies (except START/STOP) are routed back to your callsign via APRS. You receive them on your radio. START and STOP replies are processed automatically.

Contact & Location Aliases

Map short names to phone numbers or locations. Use SMS HOME msg instead of the full number. This is separate from your Codebook (auth codes)-view or regenerate that in the dashboard.

What you can request (examples)

On your radio: To = KQ4YSV. Message = one of the following.

  • To: KQ4YSV
    Message:
    CODE ADD HOME +17845551234- contact alias (then SMS HOME msg)
  • To: KQ4YSV
    Message:
    CODE ADD BASE Charlotte NC- location alias (for DIR HOSPITAL BASE)
  • To: KQ4YSV
    Message:
    CODE ADD SAR1 +15551234567- another contact alias
  • To: KQ4YSV
    Message:
    CODE LIST- list your aliases
  • To: KQ4YSV
    Message:
    CODE REMOVE HOME- delete an alias
  • To: KQ4YSV
    Message:
    POS 35.22 -80.84- set position for DIR ... NEAR ME
  • To: KQ4YSV
    Message:
    LOC 35.22 -80.84- same as POS

Add a contact alias

Map a short name to a phone number. Then use SMS HOME msg instead of the full number.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
CODE ADD HOME +17845551234

Add a location alias

Map a short name to a city/location for DIR commands.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
CODE ADD BASE Charlotte NC

List your aliases

See all your contact and location aliases.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
CODE LIST

Remove an alias

Delete an alias.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
CODE REMOVE HOME

Set your position (for DIR NEAR ME)

Store lat/lon so DIR HOSPITAL NEAR ME works.

To (on your radio)
KQ4YSV
Message (type only this - To is separate on your radio)
POS 35.22 -80.84

APRS is not guaranteed delivery. Do not rely solely on this system for life safety.

GRS Mesh

GRS Mesh is an optional off-grid layer for Gearsmen. Flash GRS Mesh firmware onto an ESP32 device and it joins the network - no cell service or internet required. When any bridge node is in range, your messages uplink to the cloud and can reach SMS, APRS, email, and other GRS users.

What GRS Mesh solves

  • Messages don't disappear when you close the app. The cloud holds your messages. Read and send from the dashboard without staying connected.
  • We run the servers. No self-hosted MQTT broker. Link your device and it connects to Gearsmen automatically.
  • Simple setup. Flash, link, done. No command syntax to learn for basic use. Works in the browser first.
  • One identity everywhere. Same callsign on mesh, APRS, SMS, and Winlink. One inbox, one map.
  • Your traffic is yours. Private channels use keys you control. We don't read mesh-to-mesh traffic.
  • Always free for firmware users. Link your device and all GRS Mesh features are free - no subscription required.

Device commands

From your GRS Mesh device, send commands in the message body. The GRS cloud routes them to the right destination.

Send SMS

Send a text message to a phone number. Number must have opted in (texted START to our number).

Message:
SMS +15551234567 Hello

Send APRS message

Send a message to an APRS callsign.

Message:
APRS W1AW Hello from the field

Send email

Send an email. Subject and body separated by |.

Message:
EMAIL user@example.com Subject | Body

Send to GRS node

Send a message to another GRS Mesh node by node ID.

Message:
GRS !a1b2c3d4 Hello

Broadcast on mesh

Broadcast a message to all nodes on your current channel.

Message:
MESH Hello team

Ping the cloud

Check that your device is linked and the cloud can reach you. You get a reply.

Message:
PING

Get command list

Receive a list of available commands as a downlink reply.

Message:
HELP

Linking your device

  1. Open the Comms Center and go to GRS Mesh in the sidebar.
  2. Click Link Device and enter your node ID (shown on device or over serial).
  3. Copy the provisioning secret and enter it on your device (or scan the QR if your device supports it).
  4. Your device is now linked. Messages it sends will appear in your GRS Mesh inbox.

Flashing firmware

Use the browser-based flasher - no command line needed. Plug in your ESP32 device via USB, open the flasher, pick your board, and click Flash.

Open Firmware Flasher →

Architecture

GRS Mesh has three layers: the device (ESP32 with LoRa radio running GRS Mesh firmware), the bridge (a device with WiFi that connects to the Gearsmen cloud over MQTT), and the cloud (Gearsmen servers that route messages to SMS, APRS, email, and other GRS nodes).

  1. Device sends a message over LoRa. The mesh relays it hop by hop.
  2. A bridge node picks it up and publishes it to grs/mesh/<bridge_id>/uplink on the Gearsmen MQTT broker.
  3. The cloud handler parses the envelope, looks up the sender by node ID, and routes the message.
  4. Replies are published to grs/mesh/<bridge_id>/downlink and the bridge delivers them back to the device over LoRa.

Wire format (envelope)

Every uplink and downlink uses this JSON envelope:

{
  "msg_id":          "<uuid>",
  "origin_node_id":  "!hex",
  "origin_callsign": "<optional>",
  "channel_id":      0,
  "ts":              <unix_ms>,
  "ttl":             32,
  "payload_type":    "text" | "command" | "receipt" | "config",
  "payload":         "<string>",
  "hop_count":       0,
  "bridge_id":       "!hex",
  "lat":             <optional float>,
  "lng":             <optional float>
}

Destination types

TypeCommand syntaxWhat happens
smsSMS +15551234567 HelloSends a text message via Vonage. Recipient must have opted in (texted START to our number). Replies are routed back to your device.
aprsAPRS W1AW HelloSends an APRS message to the specified callsign via the Gearsmen APRS gateway.
emailEMAIL user@example.com Subject | BodySends an email via the Gearsmen email service. Subject and body separated by |.
grsGRS !a1b2c3d4 HelloSends a message to another GRS Mesh node. Queued in outbox; delivered when bridge sees the target node.
meshMESH Hello teamBroadcasts a message to all nodes on your current channel.

Cross-network routing

GRS Mesh is the bridge between off-grid LoRa and the rest of the world. When your device sends a command, the cloud routes it through the appropriate existing service - SMS via Vonage, APRS via the GRS gateway, email via the GRS email service. No new infrastructure is needed; GRS Mesh just wires your device into what already exists.

Replies travel the same path in reverse: an SMS reply from a phone triggers the Vonage webhook, which looks up the most recent outbound mesh SMS to that number and enqueues a downlink reply to the origin node.

Map integration

Every uplink that includes lat and lng updates the node's position in the database. Nodes appear on the live map in the Comms Center under the Gearsmen Mesh layer. The layer is on by default if you have linked devices; off by default otherwise. You can toggle it from the map layer selector.

Click a GRS Mesh marker on the map to see the node's ID, callsign, and last-seen time. If it's your device, a Configure button links directly to the device settings. A Send button opens the GRS Mesh send form with that node pre-filled as the target.

Private channels

You can create a private encrypted channel from the GRS Mesh section in the Comms Center. A join code is generated; share it with your team. Members enter the join code on their device (or it can be pushed via downlink when a device is linked and online). Only devices with the same channel key can read traffic on that channel.

Rate limits

ActionLimit
SMS per user per day100
Uplink messages per node per hour500
Commands (SMS/EMAIL/APRS) per user per day100

When a limit is exceeded, the device receives a downlink reply: "GRS: Rate limit reached. Try again later."

Data retention

  • Messages: kept for 90 days, then deleted.
  • Node position history: kept for 30 days.
  • Outbox messages: delivered or expired after 7 days.
  • On account closure or GDPR request: all GRS Mesh data for your account is purged.

GRS Mesh is not guaranteed delivery. Do not rely solely on this system for life safety. Range depends on LoRa radio physics and terrain.

APRS • Part 97 • ISM bands