Gearsmen Overview
Live map, radio gateway, mesh networking, and field command platform
Gearsmen (GRS) is a communications and mapping platform for APRS, Meshtastic, GRS Mesh, and other radio networks. It provides a real-time map with 19+ data layers and 7 weather overlays, a radio-to-SMS/email gateway, LoRa mesh networking with custom firmware, a 3D globe mode, voice rooms, organization management for SAR teams, and a browser-based device simulator. One hub, every network.
Key features
- ✓Live Map: 19 real-time data layers (APRS, Meshtastic, MeshCore, GRS Mesh, ADS-B, AIS, DMR, PSK, TAK, and more) with 3D Buildings, Globe mode, and 9 visual themes
- ✓Weather System: 7 overlays including animated radar, satellite IR, NWS severe alerts, real-time lightning, wind, temperature, pressure
- ✓Radio Gateway: APRS message to KQ4YSV or Meshtastic via MQTT - routes to SMS, email, Winlink, and other radio networks
- ✓GRS Mesh: flash custom firmware onto ESP32 devices, link to your account, send SMS/APRS/email from LoRa with no internet on the device
- ✓SMSSender: text anyone when off-grid; recipients opt in with START
- ✓Organizations: team management with roster, operations control, SAR tools, shared map zones, audit logs
- ✓GRSM & Simulator: turn your browser into a real mesh device, or test firmware on virtual hardware with accurate power models
- ✓Voice Rooms & GRS Call: real-time voice channels (WebRTC) and mesh-based voice dialing
- ✓Skybridge: Meshtastic/GRS Mesh to Iridium satellite gateway for true off-grid operations
- ✓Device Security: fingerprinting, stolen device tracking, hardware banning, compliance logging
- ✓Codebook: dashboard-generated auth codes to prevent spoofing and token theft over open APRS
- ✓Regulatory compliance: FCC Part 97 (amateur radio), TCPA (SMS consent), ISM band regulations (LoRa), GDPR, CCPA - documented and enforced at every layer
- ✓Security: bcrypt password hashing, AES-256-GCM file encryption, TLS in transit, JWT authentication, compliance audit logging (SOC 2 / ISO 27001 aligned)
How It Works - Cross-Platform Architecture
How Gearsmen connects every radio network, device, and protocol into one platform
Gearsmen is a unified communications hub that bridges radio networks that cannot natively talk to each other. An APRS ham radio, a Meshtastic LoRa device, a GRS Mesh node, a browser, a satellite terminal, and a cell phone can all exchange messages through Gearsmen. This page explains how that works - from the radio to the cloud and back - without revealing proprietary implementation details.
Key features
- ✓Unified identity: one Gearsmen account maps to every network identity - callsign (APRS), node ID (Meshtastic/GRS Mesh/MeshCore), ICAO hex (ADS-B), browser fingerprint (GRSM), GX phone number, GX email - resolved by the Device Identity Resolver
- ✓Message routing engine: inbound messages from any network are normalized to a common format, routed by the gateway to the correct destination network, and delivered via that network's native protocol
- ✓APRS path: ham radio → APRS-IS (internet backbone) → Gearsmen APRS listener → gateway processing → outbound to SMS/email/Winlink/mesh/APRS reply. Operates under FCC Part 97 - no commercial use of amateur spectrum
- ✓Meshtastic path: LoRa device → Meshtastic MQTT broker (mqtt.meshtastic.org) → Gearsmen MQTT subscriber → gateway processing → outbound delivery. Uses free public MQTT - no hardware bridge required
- ✓GRS Mesh path: LoRa device → hop-by-hop mesh relay → bridge node (WiFi-connected GRS Mesh device) → Gearsmen cloud API → gateway processing → outbound delivery. Store-and-forward: messages queue on device until a bridge is in range
- ✓MeshCore path: MeshCore gateway → Gearsmen MQTT broker (private credentials) → gateway processing → outbound delivery. Cross-mesh: GRS Mesh ↔ MeshCore ↔ Meshtastic all route through Gearsmen cloud
- ✓Satellite path (Skybridge): Meshtastic/GRS Mesh → Iridium SBD modem → Iridium satellite constellation → Gearsmen cloud → outbound delivery. True off-grid: works anywhere on Earth with sky visibility
- ✓Browser path (GRSM): browser WebSocket → Gearsmen cloud → treated as a mesh node with full device identity. SHA-256 browser fingerprint serves as hardware identifier
- ✓SMS path: Gearsmen cloud → Vonage SMS API → cellular network → recipient phone. TCPA-compliant: opt-in (START) required, opt-out (STOP) honored, rate-limited equally for all users
- ✓Email path: Gearsmen cloud → GX email (handle@gx.gearsmen.app) or Winlink CMS → recipient inbox. GX email is native; Winlink bridges to the amateur radio email network
- ✓Voice path: WebRTC (Voice Rooms) for real-time audio channels; GRS Call for mesh-based voice messages encoded as audio packets over LoRa - not real-time, but works off-grid
- ✓Map data aggregation: 19+ data layers are polled or streamed from external sources (APRS-IS, Meshtastic MQTT, ADS-B Exchange, AIS, DMR RadioID, PSK Reporter, NWS, Blitzortung, etc.), normalized, and rendered on the map with native Google Maps markers or the Three.js globe
- ✓Cross-network example: a GRS Mesh user types SMS +15551234567 Hello → device queues message → LoRa relay to bridge → bridge uplinks to cloud → cloud validates identity and opt-in → Vonage sends SMS → recipient replies → reply routed back through cloud → bridge downlinks to mesh → original device receives reply
- ✓Simultaneous GRS + Meshtastic + MeshCore via Time-Division Multiplexing (TDM) on single radio
- ✓Automatic cross-protocol message translation with loop prevention
- ✓Appears as native node on Meshtastic (protobuf) and MeshCore (Ed25519) networks
- ✓Configurable TDM duty cycles and power-save profiles
Identity Resolution
Every inbound message must be resolved to a Gearsmen user account. The Device Identity Resolver accepts any identifier - callsign, node ID, serial number, browser fingerprint, ICAO hex code - and maps it to the owning account. This is how a single user can send from an APRS radio and receive the reply on a Meshtastic device: both identifiers resolve to the same account.
Identity resolution also enforces security gates: stolen device reports, hardware bans, and node ID bans are checked on every inbound message. A banned device is rejected before any processing occurs.
All identity resolution events are logged to the compliance audit trail (SOC 2, GDPR, CCPA, ISO 27001 aligned logging). Logs include timestamp, source network, identifier used, resolved account, and action taken.
Store-and-Forward Mesh Delivery
GRS Mesh devices do not require internet. Messages are stored in persistent flash memory on the device (surviving reboots and power loss) and forwarded hop-by-hop across the LoRa mesh until they reach a bridge node with internet access.
Bridge nodes uplink queued messages to the Gearsmen cloud via authenticated HTTPS API. The cloud processes and routes the message to the destination network. Replies follow the reverse path: cloud → bridge → mesh → device.
Delivery time depends on bridge proximity. In urban areas with multiple bridges, delivery is near-instant. In remote wilderness, messages may queue for hours until a bridge comes into range - but they will always be delivered once connectivity is available.
Message integrity is protected end-to-end: CRC-32 validation on flash storage, TLS encryption in transit (bridge to cloud), and AES-256 encryption for private mesh channels.
Security Architecture
Authentication: JWT tokens with httpOnly, secure, sameSite cookies. Passwords hashed with bcrypt. GRSM passcodes hashed with SHA-256 server-side (raw passcode stored only in the user's browser localStorage).
Device identity: browser fingerprinting uses SHA-256 hash of stable hardware signals (screen geometry, GPU renderer, CPU cores, timezone). This is deterministic device identification, not behavioral tracking. Disclosed in our Privacy Policy §4.
Transport security: all connections use TLS 1.2+ encryption. API endpoints enforce CSRF origin checking. WebSocket connections are authenticated with the same JWT session.
Data at rest: GRS Vault files encrypted with AES-256-GCM. Database credentials and API keys stored in environment variables, never in client-side code. PostgreSQL connections encrypted in transit via Cloud SQL Proxy.
Compliance logging: all security-relevant actions (login, permission changes, device registrations, data access, identity resolution) are logged to an immutable audit trail aligned with SOC 2 Type II, GDPR Article 30, CCPA §1798.100, and ISO 27001 Annex A.12 requirements.
Device security: stolen device reports trigger immediate blocking across all networks. Hardware bans are permanent and tied to the device fingerprint, not the user account. Node ID bans block specific mesh identities.
Regulatory Compliance
FCC Part 97 (§97.113): amateur radio transmissions via the APRS gateway are noncommercial. All users receive identical APRS and SMS rate limits regardless of subscription tier. Paid subscriptions pay only for cloud software features (dashboard tools, AI queries, map routing) - never for increased radio reach, throughput, or transmission priority.
TCPA (47 U.S.C. §227): SMS recipients must opt in by replying START before receiving messages. Recipients may opt out at any time by replying STOP. Rate limits apply equally to all users. No unsolicited commercial messages are permitted.
ISM band compliance: GRS Mesh firmware operates on ISM bands (915 MHz US, 868 MHz EU, 433 MHz Asia) in compliance with FCC Part 15, ETSI EN 300 220, and equivalent regional regulations. Devices are programmed with region-appropriate frequency plans.
GDPR (EU General Data Protection Regulation): users may request data export or account deletion from the dashboard. Deletion is processed within 30 days. Data retention policies are documented in the Privacy Policy §5.
CCPA (California Consumer Privacy Act): California residents have the right to know what data is collected, request deletion, and opt out of data sales (we do not sell personal data).
Iridium/satellite: Skybridge operations comply with ITU Radio Regulations for satellite communication. Iridium SBD messages are transmitted via the Iridium satellite network under their operating licenses.
Simultaneous Multi-Protocol Operation (TDM)
GRS Mesh firmware supports Time-Division Multiplexing (TDM) to operate GRS Mesh, Meshtastic, and MeshCore protocols on a single LoRa radio. The radio cycles through each protocol in configurable time slots, transmitting and receiving on each in turn.
Default TDM cycle: 60% GRS Mesh, 25% Meshtastic, 15% MeshCore. Each slot handles TX, RX, and channel-activity detection for its protocol before handing off. The cycle repeats continuously, giving the appearance of simultaneous operation on all three networks.
TDM is opt-in. When disabled, the device operates on GRS Mesh only. When enabled, the device participates in all three networks and appears as a native node on each.
Cross-Protocol Message Translation
When a message arrives on one protocol, the firmware can automatically relay it to the other active protocols. A Meshtastic text message received during the Meshtastic TDM slot is re-encoded as a GRS Mesh packet and transmitted during the GRS Mesh slot, and vice versa.
Translation preserves the sender identity by embedding the original node ID and protocol tag in the relayed message header. This allows the recipient to see which network the message originated from.
Loop prevention: each relayed message carries a 16-bit relay hash. If a device receives a message whose relay hash matches one it recently forwarded, the message is dropped rather than re-relayed. The hash ring holds the last 64 entries.
Protocol Compatibility Details
GRS Mesh: proprietary packet format with CRC-32, store-and-forward flash queue, hop-by-hop relay. Encryption via AES-256 on private channels. Node identity is a 32-bit device ID.
Meshtastic: protobuf-encoded packets on LoRa. The GRS Mesh device speaks native Meshtastic protocol during its TDM slot - it encodes and decodes protobuf, participates in Meshtastic mesh routing, and appears as a standard Meshtastic node to other devices.
MeshCore: Ed25519 signed packets with compact binary encoding. The GRS Mesh device generates an Ed25519 keypair on first boot (stored in NVS) and uses it to sign MeshCore packets. It appears as a native MeshCore node to MeshCore gateways.
Configuring Cross-Protocol Relay
Dashboard: navigate to My Hardware > GRSM tab > select device > Cross-Protocol settings. Toggle TDM on/off, adjust duty-cycle percentages, and enable/disable per-protocol relay.
Firmware serial console: use the commands XPROTO TDM ON, XPROTO TDM OFF, XPROTO DUTY <grs%> <mt%> <mc%>, and XPROTO RELAY <ON|OFF>. Changes take effect immediately and persist across reboots.
Over-the-air: if the device is connected to a bridge, configuration changes pushed from the dashboard are delivered via the bridge downlink and applied without a reboot.
Battery and Power Considerations
TDM increases power consumption because the radio must wake for each protocol slot rather than sleeping between GRS Mesh windows. Typical impact: 15-25% reduction in battery life compared to GRS-Mesh-only mode.
Power-save profiles: Low Power (longer sleep between TDM cycles, higher latency), Balanced (default), and High Performance (continuous cycling, lowest latency, highest power draw). Configurable from the dashboard or via XPROTO POWER <LOW|BAL|HIGH>.
When battery drops below 15%, the firmware automatically falls back to GRS-Mesh-only mode to conserve power. TDM resumes when battery recovers above 20%.
Getting Started
First Steps
Sign up, add contacts, and send your first message via APRS. Your account is protected with industry-standard authentication (bcrypt password hashing, JWT session tokens) and all connections are encrypted with TLS.
Key features
- ✓Create an account at gearsmen.app - sign up with email, Google, or callsign (QRZ lookup)
- ✓Add phone numbers in the Comms Center
- ✓Recipients reply START to opt in before receiving SMS (TCPA §227 compliance)
- ✓From your radio, message KQ4YSV with the command in the message body
- ✓All account data is encrypted in transit (TLS) and passwords are hashed with bcrypt - never stored in plaintext
APRS Command Reference
Radio-Style To / Message Fields
Every command uses the same recipe: To = KQ4YSV, Message body = command + parameters. Designed to match your radio's APRS message form. All APRS gateway operations comply with FCC Part 97 - no commercial use of amateur spectrum.
Key features
- ✓To (recipient): always KQ4YSV
- ✓Message body: command and parameters (e.g. SMS +17845551234 Hello)
- ✓Replies chunked at 64 chars; multi-part sent automatically
- ✓Covers SMS, Groups, Automation, AI, Weather, Flight, News, Sports, Utility, Emergency, Field Tools, Navigation
- ✓All APRS operations are noncommercial per FCC Part 97 §97.113. SMS recipients must opt in per TCPA §227. Identical rate limits for all users regardless of subscription tier
Commands
HELP [topic]List commands or get help for a topic
HELP SMS
SMS <number> <text>Send SMS to a phone number
SMS +17845551234 Need pickup at trailhead
SMS <number> ?Check opt-in status of a contact
SMS +17845551234 ?
REPLY <text>Reply to last inbound SMS
REPLY On my way
GROUP CREATE <name>Create a group
GROUP CREATE SAR-TEAM
GROUP ADD <group> <number>Add contact to group
GROUP ADD SAR-TEAM +17845551234
GROUP SEND <group> <text>Broadcast to group
GROUP SEND SAR-TEAM Rally at base camp 1400Z
GROUP LISTList your groups
GROUP LIST
GROUP MEMBERS <group>List members of a group
GROUP MEMBERS SAR-TEAM
GROUP REMOVE <group> <number>Remove contact from group
GROUP REMOVE SAR-TEAM +17845551234
ALERT <group> <text>Urgent broadcast to group (priority)
ALERT SAR-TEAM Need backup at base
AUTO CREATE <name> AT <time> SEND <target> <text>Schedule a one-time message
AUTO CREATE CheckIn AT 14:00 SEND +17845551234 All good
AUTO REPEAT <name> DAILY AT <time> SEND <target> <text>Daily recurring message
AUTO REPEAT Morning DAILY AT 08:00 SEND FAMILY All good
AUTO ENABLE <name>Enable automation
AUTO ENABLE CheckIn
AUTO DISABLE <name>Disable automation
AUTO DISABLE CheckIn
AUTO DELETE <name>Delete an automation
AUTO DELETE CheckIn
AUTO LISTList automations
AUTO LIST
AI <query>Ask AI (when enabled)
AI HEAT STROKE TREATMENT
CHECKIN [target]Log position, optionally notify contact or group
CHECKIN SAR-TEAM
CONTACTSList your contacts (phone numbers)
CONTACTS
MEYour callsign and account info
ME
TIMEServer time (UTC)
TIME
LASTStatus of last sent message
LAST
CODE LISTList contact and location aliases
CODE LIST
BALANCERemaining credits (if applicable)
BALANCE
WEATHER <city> or <lat> <lon>Current weather (OpenWeather)
WEATHER Charlotte NC
ALERTS [lat lon]NOAA NWS severe weather alerts (US)
ALERTS
SUNRISE <lat> <lon>Sunrise time for location
SUNRISE 35.22 -80.84
SUNSET <lat> <lon>Sunset time for location
SUNSET 35.22 -80.84
MOONMoon phase and rise/set
MOON
TAF <airport>Terminal area forecast (aviation)
TAF CLT
QUAKE [region]Recent earthquakes (USGS)
QUAKE CA
FLIGHT <IATA>Flight status (AviationStack)
FLIGHT AA1004
FLIGHTS DEP <airport>Departures from airport
FLIGHTS DEP CLT
FLIGHTS ARR <airport>Arrivals at airport
FLIGHTS ARR ATL
AIRPORT <code>Airport info
AIRPORT CLT
DIR <from> TO <to>Driving directions between places
DIR Charlotte TO Asheville
DIR <what> NEAR <location>Find POIs near location (e.g. HOSPITAL, GAS)
DIR GAS NEAR ME
NEWS [query]Headlines or search (NewsAPI)
NEWS
SCORE <team>Latest match score (API Football)
SCORE Liverpool
STANDINGS <league>League table (EPL, LaLiga, etc.)
STANDINGS EPL
STATUSCheck gateway status
STATUS
PINGConnectivity check (returns PONG)
PING
INFRA [miles]List digipeaters, repeaters, mesh nodes near you (subscription). Send position first.
INFRA 5
Reply 1-NAfter INFRA, reply with a number for full details of that item
2
BEST PATHSummary of best path / nearby infrastructure (subscription)
BEST PATH
SIGNAL TESTWhich frequency has the most activity in your area (subscription). Activity-based, not RF signal strength.
SIGNAL TEST
ECHO <text>Echo back for testing
ECHO test
DATECurrent date (YYYY-MM-DD)
DATE
Telemetry & Alerts
Turn your radios and mesh into field IoT
Get alerts when battery, temperature, or other sensors cross your thresholds. APRS and Meshtastic telemetry in one place; SMS or email when something's wrong. Configure rules in Dashboard → Telemetry & Alerts or in Meshtastic → Alerts.
Key features
- ✓APRS telemetry: VOLT=, TEMP=, sensor packets parsed and stored
- ✓Meshtastic environment and detection events
- ✓Threshold and event rules (battery %, temp, etc.)
- ✓Actions: SMS, email, APRS reply, dashboard alert
- ✓Unified rule engine for all sources
Commands
Configure in DashboardCreate and edit rules in Telemetry & Alerts or Meshtastic → Alerts
Dashboard → Telemetry & Alerts
Infrastructure Discovery
Find digipeaters, repeaters, and mesh near you
One command from APRS or Meshtastic: INFRA 5MI. Get a numbered list of nearby infrastructure; reply with a number for full details, or ask BEST PATH for a summary. Requires subscription and your position (send position or beacon first).
Key features
- ✓INFRA [miles] - list nearby digipeaters, repeaters, Meshtastic nodes
- ✓Reply 1-N for details (e.g. reply "2" after INFRA for item 2)
- ✓BEST PATH - summary of best path / nearby infrastructure
- ✓SIGNAL TEST - which frequency has the most activity (activity-based, not RF signal)
- ✓Sources: APRS digipeaters, DMR repeaters, Meshtastic nodes, Winlink RMS
- ✓View on map (Infrastructure layer) and download CSV/JSON from dashboard
Commands
INFRA [mi]List infrastructure within radius (default 25 mi)
INFRA 5
Reply 1-NGet full details for item N from last INFRA
2
BEST PATHBest path summary for your location
BEST PATH
SIGNAL TESTBest frequency for activity in your area
SIGNAL TEST
SMSSender (SMS Relay)
Text from Your Radio
Send SMS Cellular to any phone number when you have APRS but no cellular signal. Recipients must opt in by replying START. Add contacts in the Comms Center first.
Key features
- ✓E.164 phone numbers (e.g. +17845551234 for US; include country code)
- ✓TCPA compliance - opt-in required (recipient replies START)
- ✓Add contacts at gearsmen.app/dashboard before sending
- ✓Check opt-in: SMS +17845551234 ?
- ✓Reply to last inbound: REPLY <text>
- ✓Rate limits: 1 SMS per 2-3 min, daily/monthly caps
- ✓Response codes: QUEUED, SENT, DENIED (not opted in), RATE LIMITED
- ✓Regulatory: all SMS operations comply with TCPA (47 U.S.C. §227) and carrier requirements. Consent is verified before every outbound message. Opt-out (STOP) is processed immediately and irrevocably until the recipient re-opts in
Commands
SMSSend SMS to a phone number
SMS +17845551234 Need pickup at trailhead
SMS ?Check opt-in status
SMS +17845551234 ?
REPLYReply to last inbound SMS
REPLY On my way
Groups
Broadcast Messaging
Create named groups, add contacts, and broadcast messages to all members at once.
Key features
- ✓Create groups with GROUP CREATE
- ✓Add contacts with GROUP ADD
- ✓Send to all with GROUP SEND
- ✓List groups with GROUP LIST
- ✓List members with GROUP MEMBERS
- ✓Remove contacts with GROUP REMOVE
- ✓Urgent broadcast with ALERT for priority messages
- ✓Group messages to phone numbers comply with TCPA - each member must have opted in individually. Group data is stored securely and accessible only by the account owner
Commands
GROUP CREATECreate a group
GROUP CREATE SAR-TEAM
GROUP ADDAdd contact to group
GROUP ADD SAR-TEAM +17845551234
GROUP SENDBroadcast to group
GROUP SEND SAR-TEAM Rally at base camp
GROUP LISTList your groups
GROUP LIST
GROUP MEMBERSList members of a group
GROUP MEMBERS SAR-TEAM
GROUP REMOVERemove contact from group
GROUP REMOVE SAR-TEAM +17845551234
ALERTUrgent broadcast to group (priority)
ALERT SAR-TEAM Need backup at base
Scheduled Messages
Scheduled Messages
Set up one-time or recurring messages. Use 24-hour time (HH:MM). Target can be phone number or group name.
Key features
- ✓One-time: AUTO CREATE <name> AT <HH:MM> SEND <target> <message>
- ✓Daily: AUTO REPEAT <name> DAILY AT <HH:MM> SEND <target> <message>
- ✓Enable/disable with AUTO ENABLE / AUTO DISABLE
- ✓Delete with AUTO DELETE
- ✓List automations with AUTO LIST
- ✓Scheduled messages still require recipient opt-in (TCPA). Automations targeting opted-out numbers are blocked automatically
Commands
AUTO CREATESchedule one-time message
AUTO CREATE CheckIn AT 14:00 SEND +17845551234 All good
AUTO REPEATDaily recurring message
AUTO REPEAT Morning DAILY AT 08:00 SEND FAMILY All good
AUTO ENABLEEnable automation
AUTO ENABLE CheckIn
AUTO DISABLEDisable automation
AUTO DISABLE CheckIn
AUTO DELETEDelete an automation
AUTO DELETE CheckIn
AUTO LISTList automations
AUTO LIST
AI Commands
Ask AI Over APRS
Get AI-generated answers for first aid, survival info, and more. Replies are compressed for APRS. AI queries are processed server-side - your query is sent to the AI provider and the response is returned to your radio. No conversation history is stored beyond the current session.
Key features
- ✓AI <query> - ask a question
- ✓Uses OpenAI when enabled
- ✓Replies truncated for radio packet size
- ✓Useful for emergency procedures, survival info
- ✓Privacy: AI queries are not stored long-term or used for model training. Processed via secure API connection (TLS encrypted)
Commands
AIAsk AI a question
AI HEAT STROKE TREATMENT
Utility & Account
Help, Contacts, Time, Status
Commands to get help, list contacts, check server time, see last message status, and view account info.
Key features
- ✓HELP or HELP <topic> - list commands or get topic help
- ✓CONTACTS - list your phone numbers
- ✓TIME - server time (UTC)
- ✓LAST - status of last sent message
- ✓ME - your callsign and account info
- ✓BALANCE - remaining credits (if applicable)
- ✓CODE LIST - list contact and location aliases
- ✓Account data is protected with bcrypt password hashing and JWT session authentication. All API calls are encrypted with TLS
Commands
HELPList commands or get help
HELP SMS
CONTACTSList your contacts
CONTACTS
TIMEServer time (UTC)
TIME
LASTLast message status
LAST
MEYour callsign and account info
ME
BALANCERemaining credits
BALANCE
CODE LISTList aliases
CODE LIST
Emergency & Safety
Check-in, Alert, Urgent Broadcast
Check-in to log your position and optionally notify contacts. ALERT for urgent group broadcasts when you need immediate backup. Note: Gearsmen is not a substitute for emergency services (911/112). Do not rely on it as your sole means of emergency communication.
Key features
- ✓CHECKIN - log position (uses POS if set)
- ✓CHECKIN <group> or <number> - log and notify
- ✓ALERT <group> <msg> - urgent broadcast to group (priority)
- ✓Use when you need immediate response
Commands
CHECKINLog position, optionally notify
CHECKIN SAR-TEAM
ALERTUrgent broadcast to group
ALERT SAR-TEAM Need backup at base
Field Tools
Sun, Moon, Weather, Quakes, Navigation
Sunrise/sunset times, moon phase, earthquake info, and turn-by-turn directions. Essential for SAR, hiking, and off-grid ops.
Key features
- ✓SUNRISE/SUNSET <lat lon> - sunrise and sunset times
- ✓MOON - moon phase and rise/set
- ✓TAF <airport> - terminal area forecast (aviation)
- ✓QUAKE [region] - recent earthquakes (USGS)
- ✓DIR <from> TO <to> - driving directions
- ✓DIR <what> NEAR <location> - find POIs (HOSPITAL, GAS, etc.)
Commands
SUNRISESunrise time for location
SUNRISE 35.22 -80.84
SUNSETSunset time for location
SUNSET 35.22 -80.84
MOONMoon phase and rise/set
MOON
TAFTerminal area forecast
TAF CLT
QUAKERecent earthquakes
QUAKE CA
DIR TODriving directions
DIR Charlotte TO Asheville
DIR NEARFind POIs near location
DIR GAS NEAR ME
Free & Paid Features
Compliance-Safe Model
We do not sell or prioritize amateur radio communications. All APRS/SMS capability (rate limits, groups, automation) is identical for every user. Paid subscriptions, when offered, pay only for cloud intelligence and dashboard convenience - never for increased radio reach or throughput.
Key features
- ✓Free: APRS→SMS relay, groups, automation, HELP, STATUS - all via radio, rate-limited equally
- ✓Free: Same SMS limits for everyone (cooldown, daily/monthly caps)
- ✓Paid (when offered): AI query credits, map routing, search, dashboard UI, logs - cloud software only
- ✓Paid users never get: higher APRS throughput, increased SMS limits, or priority delivery
- ✓FCC/compliance: We do not monetize amateur radio transmission capability
Rate Limits & Compliance
TCPA-Friendly
Rate limits apply to all users. Paid tiers do not bypass limits. TCPA compliance required.
Key features
- ✓Cooldown: 1 SMS per sender every 2-3 minutes
- ✓Daily cap: 10-15 SMS per sender
- ✓Monthly cap: 40-60 SMS per sender
- ✓Burst: max 3 SMS in 10 minutes
- ✓Recipients must opt in (START) before receiving
GRS Comms Center
Web Dashboard
The GRS Comms Center at gearsmen.app/dashboard is the web interface for managing your Gearsmen (GRS) account. Add contacts, view groups, check message status, and configure settings.
Key features
- ✓Add and manage phone numbers (contacts)
- ✓Recipients must reply START to opt in before receiving SMS
- ✓View group membership and automations
- ✓Check message delivery status
- ✓Manage your callsign and account
- ✓Access from any browser when you have internet
- ✓Security: authenticated via JWT session tokens (httpOnly, secure, sameSite cookies). All dashboard connections encrypted with TLS. CSRF protection on all API endpoints
- ✓Data protection: contact data stored in encrypted PostgreSQL database. Account deletion available from Settings - processed within 30 days per GDPR/CCPA requirements
Security & Privacy
Opt-in, Data Protection & Regulatory Compliance
Gearsmen follows TCPA compliance and security best practices. Recipients opt in with START. The codebook (generated in your dashboard) authenticates your messages and prevents spoofing and token theft by malicious users. We maintain full compliance with FCC Part 97 (amateur radio) and other governing bodies-we do not monetize amateur spectrum; paid tiers pay only for cloud software.
Key features
- ✓Opt-in required: Recipients reply START to receive SMS; reply STOP to opt out
- ✓TCPA compliance: No messages without prior express consent
- ✓FCC Part 97 compliant: We do not sell or prioritize amateur radio. Same SMS/APRS limits for all users. Paid tiers pay for cloud features only, never for radio reach
- ✓Codebook: Private list of numbers used one at a time; only the next code authorizes-prevents impersonation and token drainage
- ✓Data protection: Your contacts and account data are protected
- ✓APRS is open: Anyone can hear. Use the next number in your codebook to authenticate and protect your account
Codebook
Number-Based Auth to Prevent Spoofing & Token Theft
The codebook is your private list of short numbers (e.g. 482, 197, 650) used one at a time. The server only accepts the NEXT expected number-so even if someone copies your callsign or sees old traffic, they cannot use your account. Callsign alone never authorizes actions; the next code in your codebook does. APRS is open; the codebook keeps only you in control.
Key features
- ✓Private list of numbers, used in order; only the next number is valid (previous ones are burned)
- ✓View and print your codebook at gearsmen.app/dashboard when logged in
- ✓Regenerate a new codebook anytime from the dashboard if compromised
- ✓RESYNC: if you lose your place, use RESYNC <code1> <code2> to re-align to two consecutive numbers
- ✓Optional: require a code for all commands (including free ones) to block spoofers entirely
- ✓Keep your codebook private-treat it like a password. Do not share over the air.
- ✓Security protocol: codebook numbers are stored server-side with one-way validation. Even if an attacker intercepts APRS traffic and sees a used code, it cannot be replayed - each code is burned after use
FCC & Regulatory Compliance
How Gearsmen Stays Within the Rules
We maintain full compliance with FCC Part 97 (amateur radio), TCPA (SMS), and carrier requirements. This section documents how-so any claim that we are breaking the rules can be addressed with specific evidence.
Key features
- ✓FCC Part 97 (§97.113): Amateur radio cannot be used for commercial purposes. We comply: we do not charge for APRS/SMS capability. All users get identical rate limits. Paid subscriptions pay only for cloud software (AI, maps, dashboard)-never for amateur radio transmission reach or throughput
- ✓No pecuniary interest: We do not charge per message over amateur spectrum. The gateway is a noncommercial service to the amateur community
- ✓TCPA: Recipients must opt in (START) before receiving SMS. We honor STOP. No unsolicited messages
- ✓Carrier compliance: Consent, opt-out, rate limits, sender identification-all enforced
- ✓Defensive documentation: If someone claims we break rules, point them here. We have documented our compliance posture for FCC, TCPA, and related regulations
Opt-in (START / STOP)
SMS Consent
Before you can send SMS to a phone number, that recipient must have opted in. They do this by replying START to an initial message. They can opt out anytime by replying STOP.
Key features
- ✓Add the number in Comms Center - system may send an opt-in request
- ✓Recipient replies START to consent to receive SMS
- ✓Recipient replies STOP to opt out; no more messages will be delivered
- ✓DENIED (not opted in) - you'll see this if you try to send before they've replied START
- ✓TCPA and carrier requirements - we enforce this for compliance
Inbound Replies
SMS Back to Your Radio
When someone replies to an SMS you sent, that reply is routed back to your callsign via APRS. You receive it on your radio. System messages (START/STOP confirmations) are handled automatically.
Key features
- ✓Replies from SMS recipients come back to your callsign on APRS
- ✓START and STOP replies are processed automatically - no manual action needed
- ✓APRS is not guaranteed delivery - retry or use alternative contact if critical
- ✓Inbound SMS routing complies with TCPA - only messages from opted-in numbers are processed. START/STOP consent state is tracked per sender-recipient pair
Response Codes
What You'll See
The gateway replies with status codes so you know if your message was accepted or why it failed.
Commands
QUEUEDMessage accepted for delivery
SENTSMS delivered successfully
DENIED (not opted in)Recipient must reply START first
RATE LIMITEDExceeded rate limits
INVALID FORMATCommand syntax error
Meshtastic
Two-way messaging: Meshtastic ↔ SMS, Email, APRS, and more
GRS connects to the Meshtastic network through the free public MQTT bridge (mqtt.meshtastic.org). No physical gateway device needed - GRS listens in the cloud. Link your device node ID in your GRS dashboard so we can identify you. Info commands (PING, HELP, WX) are free. Outbound SMS, email, and APRS from Meshtastic require a subscription (Meshtastic is ISM band, not ham radio). Receiving messages is always free. APRS messaging via ham radio remains free per FCC Part 97.
Key features
- ✓Two-way messaging: send from Meshtastic to SMS/email/APRS, and receive replies and incoming messages back on your Meshtastic device.
- ✓Link your device: Go to gearsmen.app/dashboard → Meshtastic → Settings and enter your device node ID (e.g. !a1b2c3d4). This links your device to your GRS account so GRS knows who you are.
- ✓All commands require linking your device to a GRS account. Info commands (PING, HELP, WX) are free. Sending SMS, Email, and APRS from Meshtastic requires a paid subscription (Meshtastic uses ISM band, not ham radio). Receiving messages is always free on any account.
- ✓Simple setup: Enable MQTT on your Meshtastic device (one toggle in settings). Leave broker address blank - it auto-connects to the free public Meshtastic server.
- ✓Enable Uplink on your primary channel so your outgoing messages reach the internet.
- ✓Enable Downlink on your primary channel so you can receive GRS replies and incoming messages back on your device.
- ✓Send a text message starting with a GRS command: SMS <phone> <message>, EMAIL <address> <message>, APRS <callsign> <message>, PING, or HELP.
- ✓GRS receives your message from the MQTT network, looks up your linked account, processes the command, and delivers it.
- ✓GRS replies go back through the MQTT network to your mesh. At least one node in your mesh needs Downlink enabled for the reply to reach your device over LoRa.
- ✓Incoming messages (e.g. someone texts your phone number) are forwarded by GRS back to your Meshtastic device the same way.
- ✓No computer, no bridge script, no physical gateway device needed. Works from any Meshtastic device with MQTT enabled.
- ✓Optional: Advanced users can run a local Meshtastic bridge (API key auth) for private traffic or custom integrations.
- ✓Regulatory: Meshtastic operates on ISM bands (915 MHz US, 868 MHz EU) per FCC Part 15 / ETSI EN 300 220. Outbound SMS from Meshtastic requires TCPA opt-in. APRS via ham radio remains free per FCC Part 97
- ✓Security: device identity verified via linked node ID. All MQTT traffic encrypted with TLS. Account data protected under GDPR and CCPA
Commands
SMS <phone> <message>Send SMS to a phone number (subscription required)
SMS +15551234567 Headed your way ETA 2hrs
EMAIL <address> <message>Send email (subscription required)
EMAIL user@example.com Need pickup at trailhead
APRS <callsign> <message>Send to APRS station (subscription required)
APRS KQ4YSV Check in from trail
WX <city>Get current weather for a city (free)
WX Charlotte
PINGTest if GRS is receiving your messages (free)
PING
HELPList all available commands (free)
HELP
Winlink Email Bridge
Send and receive email over radio
Winlink is a worldwide radio email system used by amateur radio operators, emergency services, and mariners. GRS bridges Winlink so you can send email to any Winlink operator directly from the dashboard - no Winlink software needed on your end. Messages are delivered via the Winlink network to the recipient's Winlink inbox.
Key features
- ✓Send email to any Winlink callsign (e.g. KQ4YSV@winlink.org) from the GRS dashboard.
- ✓No Winlink software needed on your side - just type and send through GRS.
- ✓Full message history so you can track what you've sent.
- ✓Reach operators in remote or off-grid locations where there's no internet.
- ✓Great for emergency communications, check-ins, and coordination.
- ✓Messages delivered via the Winlink Common Message Server (CMS).
- ✓Winlink operates under FCC Part 97 for amateur radio email. Messages are transmitted in compliance with amateur radio regulations. Email content is encrypted in transit (TLS)
Radio Connect
Full APRS terminal in your browser
Connect your radio to GRS via USB, Bluetooth, or Audio (iPhone: mic from radio). Receive and send APRS packets, see live activity, and optionally forward traffic to the GRS gateway. Works on desktop and mobile - a full APRS TNC in the browser.
Key features
- ✓Full APRS TNC: receive and send packets from your browser.
- ✓USB and Bluetooth: type a message and send over the air.
- ✓iPhone/mobile: use Audio interface - no cable; decode APRS from your radio's speaker (send requires USB/BT).
- ✓Live packet feed with source, destination, and payload.
- ✓Optional bridge to GRS gateway - forward traffic from your radio to the GRS system.
- ✓Works with Kenwood, Icom, Yaesu, Mobilinkd TNC, or any radio with audio out.
- ✓All radio operations via Radio Connect comply with FCC Part 97. USB/Bluetooth connections use WebSerial/Web Bluetooth APIs - no data leaves your browser except when you explicitly bridge to the GRS gateway
System Replies & Status Messages
What GRS replies mean and what to do next
When you send a command from your radio (APRS) or Meshtastic device, GRS replies with a status message. This guide explains every reply you may see, what it means, and what action to take. All GRS replies start with "GRS:" so you know the message is from the system.
Reply Reference
- Account & Device Linking
- ✓GRS: Link your device first. Go to gearsmen.app/dashboard → Meshtastic → Settings → enter your node ID. Then try again.Your Meshtastic device is not linked to a GRS account. All commands require linking. Sign up at gearsmen.app, go to Dashboard → Meshtastic → Settings, enter your node ID (e.g. !a1b2c3d4), and try your command again.
- ✓GRS: Subscription required to send SMS/Email/APRS from Meshtastic. Subscribe at gearsmen.app/pricing. Free: PING, HELP, WX. Receiving is always free.Your device is linked but you need a paid subscription to send outbound messages (SMS, Email, APRS) from Meshtastic. Info commands (PING, HELP, WX) and receiving messages are free. Subscribe at gearsmen.app/pricing.
- Success Messages
- ✓GRS: Pong! Node !xxxxxxxx linked. Send HELP for commands.Your PING was successful. GRS received your message, recognized your linked device, and is working correctly. You're ready to use commands.
- ✓GRS: SMS delivered to +1xxxxxxxxxxYour SMS was sent successfully. The recipient will see the message on their phone. If they reply, GRS will forward it back to your Meshtastic device.
- ✓GRS: SMS queued to +1xxxxxxxxxx (pending delivery)Your SMS was accepted and queued. Delivery is in progress. This usually means the message will arrive shortly.
- ✓GRS: Email sent to user@example.comYour email was delivered successfully.
- ✓GRS: Email queued to user@example.com (pending delivery)Your email was accepted and is being delivered.
- ✓GRS: APRS msg sent to CALLSIGNYour message was queued for delivery to the APRS station via APRS-IS.
- ✓GRS: WX Charlotte: 72F, clear sky, wind 5mphWeather report for the requested city. Shows temperature (Fahrenheit), conditions, and wind speed.
- Error Messages
- ✓GRS: Error sending SMS. Try again.Something went wrong while sending your SMS. Check the phone number format (use +1 followed by 10 digits for US numbers) and try again.
- ✓GRS: Error sending email. Try again.Email delivery failed. Verify the email address format and try again.
- ✓GRS: Error queuing APRS message. Try again.Could not queue the APRS message. Check that the callsign is valid (e.g. KQ4YSV) and try again.
- ✓GRS: No weather data for "CityName". Try: WX <city name>Weather lookup didn't find results for that city. Check spelling or try a larger/nearby city.
- ✓GRS: Weather lookup failed for "CityName". Try again.Temporary error fetching weather data. Wait a moment and try again.
- Help & Info Replies
- ✓GRS Commands: SMS <phone> <msg> - Send SMS (subscription) ...The full command list. Commands marked (subscription) require a paid plan. Commands marked (free) work on any linked account.
- ✓GRS: Message received from !xxxxxxxx. Send HELP for commands.GRS received your message but didn't recognize it as a specific command. Send HELP to see all available commands.
- ✓GRS: Received. Send HELP for commands.Generic acknowledgment. Your message arrived but wasn't a recognized command.
- APRS Gateway Replies (ham radio)
- ✓QUEUEDYour APRS command was accepted and queued for processing.
- ✓SENTYour APRS SMS was sent to the recipient's phone. APRS → SMS is free per FCC Part 97.
- ✓DENIED (not opted in)The recipient hasn't opted in to receive SMS from Gearsmen. Ask them to text START to the Gearsmen number first.
- ✓RATE LIMITEDYou're sending too fast. Wait 2-3 minutes between SMS commands. Daily and monthly caps apply.
- ✓INVALID FORMATYour command syntax is wrong. Check the command reference at gearsmen.app/docs#aprs-commands or send HELP.
Quick Links
All GRS replies start with "GRS:" followed by the status. On Meshtastic, replies arrive as text messages on your device screen. On APRS, replies come as APRS messages to your callsign.
Create a free account at gearsmen.app. You can sign up with email, Google, or callsign.
gearsmen.app/auth →After signing up, go to Dashboard → Meshtastic → Settings and enter your node ID (starts with ! followed by 8 hex characters, e.g. !a1b2c3d4). Find your node ID in your Meshtastic app under Settings → Device.
gearsmen.app/dashboard?section=meshtastic-bridge →Go to gearsmen.app/pricing to choose a Monthly ($5/mo) or Yearly ($50/yr) plan. Subscription unlocks outbound SMS, Email, and APRS from Meshtastic.
gearsmen.app/pricing →Visit gearsmen.app/support or send HELP from your radio/Meshtastic device. Full command docs at gearsmen.app/docs.
gearsmen.app/support →Coming Soon
Planned & In-Progress Features
Features currently in development. Many GRS services are already live - see the full documentation for what is available today. The features below are planned expansions. Check the changelog for updates.
Key features
- ✓SAR Base Station - freehand map drawing, search segments with team assignments, trail logging with coverage visualization, SAR mission dashboard
- ✓Moving Geofences - perimeters that travel with a person or vehicle (ATAK-style)
- ✓QuickScan - Query the web and get AI-summarized answers over APRS
- ✓OrbitView - ISS and satellite visibility times from the field
GRS Mesh
Off-grid LoRa mesh with cloud bridge - free for firmware users
GRS Mesh connects your LoRa radio to SMS, APRS, email, and other GRS users - no cell service or internet required on the device. Flash firmware onto an ESP32, link it to your account, and you are on the network. Everything below is written as a walkthrough: what you see, what you click, and what happens next.
Key features
- ✓Flash GRS Mesh firmware onto ESP32 devices (T-Beam, T-Deck, Heltec, and more) in one click from the browser
- ✓Link your device to your account - all cloud features are free for firmware users, no subscription needed
- ✓Send SMS, APRS messages, emails, and GRS-to-GRS messages from your radio with no internet on the device
- ✓Messages queue on device and uplink automatically when any bridge node is in LoRa range
- ✓One identity everywhere - same callsign on mesh, APRS, SMS, and Winlink; one inbox, one map
- ✓Private encrypted channels - create or join a private network; only your team can read traffic
- ✓Map layer - see GRS Mesh nodes in real time on the Gearsmen map; filter to your private channels
- ✓Configure devices from the dashboard - settings pushed to device via cloud downlink
- ✓Cross-network: send to Meshtastic users from GRS (and vice versa) via Gearsmen cloud
- ✓SMS replies from recipients are routed back to your mesh device automatically
- ✓ISM band compliance: GRS Mesh operates on 915 MHz (US), 868 MHz (EU), 433 MHz (Asia) per FCC Part 15, ETSI EN 300 220, and equivalent regional regulations
- ✓Security: private channels use AES-256 encryption end-to-end over LoRa. Bridge-to-cloud communication encrypted with TLS. Device identity verified via node ID linked to authenticated account
- ✓SMS from mesh devices requires TCPA opt-in. All rate limits (SMS, uplink, downlink) apply equally regardless of subscription tier
Step 1 - Flash your device (first-time setup)
What you need: an ESP32-based LoRa device (T-Beam, T-Deck, Heltec V3, or similar) and a USB cable. Use Chrome or Edge on desktop - Firefox does not support WebSerial.
Where to go: Dashboard sidebar → GRS Mesh → Flash Firmware. Or go to the Download page and click "Flash GRS Mesh Firmware."
What you see: the Firmware Flasher page. It shows a board selector at the top (e.g. T-Beam, Heltec V3) and a firmware version dropdown (Latest is pre-selected).
What to do: plug your device into USB, then click "Connect device." A browser dialog pops up listing available serial ports - select your device (usually "USB Serial" or "CP210x"). Click Connect.
What happens: the flasher auto-detects your board by USB VID/PID and selects it for you. If it guesses wrong, change the board in the dropdown. Click "Flash." The flasher downloads the firmware binary, verifies the checksum, and writes it to the device. A progress bar shows the write. When done, you see "Flash complete - device is ready."
If you are offline: the flasher shows "No internet connection - firmware download requires internet." It will not attempt to flash. Connect to internet and try again.
After flashing: the device reboots and starts broadcasting on LoRa. Now go to Step 2 to link it.
Step 2 - Link your device to your account
Where to go: Dashboard sidebar → GRS Mesh. You land on the main GRS Mesh page.
What you see: if you have no linked devices, you see an onboarding banner at the top: "No linked devices yet. Link your node ID to activate cloud features." Below it is a "Link a device" button.
What to do: click "Link a device." A form appears with a single field: Node ID. Your node ID is printed on the device screen after boot (format: !a1b2c3d4 - an exclamation mark followed by 8 hex characters). Type or paste it in and click Link.
What happens: the device is now linked to your account. The onboarding banner disappears. Your device appears in the "My Devices" list with its node ID, callsign (if set), and last-seen time.
Callsign: if you have a verified callsign on your Gearsmen account, it is automatically used as your mesh identity. Other users can address you by callsign instead of node ID.
Multiple devices: you can link more than one device. Each appears as a separate row in My Devices. Click a device to configure it or send to it.
If you lose or replace a device: go to Settings tab → find the old device → click Unlink. Then link the new device. Your message history and account stay intact.
Step 3 - Send your first message from the dashboard
Where to go: Dashboard sidebar → GRS Mesh → Send tab.
What you see: a "Send To" dropdown (SMS, APRS, Email, GRS Node, Meshtastic), an address field, and a message body field.
What to do: pick a destination type from the dropdown, enter the address, type your message, and click Send.
SMS: enter a phone number in E.164 format (e.g. +15551234567). The recipient must have texted START to the Gearsmen number to opt in. If they have not opted in, you will see an error.
APRS: enter a callsign (e.g. W1AW). The message is sent via the Gearsmen APRS gateway.
Email: enter an email address. The message is sent via Winlink/email service.
GRS Node: enter a node ID (e.g. !a1b2c3d4) or a callsign. The message is queued in the outbox and delivered to that device the next time a bridge sees it.
Meshtastic: enter a Meshtastic node ID (e.g. !xyz1234). The message is routed via Gearsmen cloud to the Meshtastic MQTT network.
What happens after you click Send: you see a "Sent" confirmation. The message appears in the Messages tab. If the destination is a GRS node, delivery is store-and-forward - it may take minutes or hours depending on when a bridge sees the target device.
Step 4 - Send a message from your device (on the radio)
Your device sends messages using command prefixes typed into the radio's message input. The format is always: PREFIX address message body.
SMS: type SMS +15551234567 Hello from the field - sends a text to that number.
APRS: type APRS W1AW Hello - sends an APRS message to callsign W1AW.
Email: type EMAIL user@example.com Field report - sends an email.
GRS (another GRS node): type GRS !a1b2c3d4 Meet at the rally point - or use a callsign: GRS KQ4YSV Meet at the rally point.
Meshtastic: type MESH !xyz1234 Hello - routes to a Meshtastic user via cloud.
PING: type PING - you get a reply confirming your device is linked and the cloud can reach you.
HELP: type HELP - you get a list of available commands as a downlink reply.
What happens: the message is stored on your device. When any bridge node is in LoRa range, the message uplinks to the Gearsmen cloud, which routes it to the destination. If the destination is another GRS node, the reply comes back the same way.
Step 5 - Read incoming messages
Where to go: Dashboard sidebar → GRS Mesh → Messages tab.
What you see: a list of messages, newest first. Each row shows the sender (node ID or callsign), the message body, and the timestamp.
Unread badge: the GRS Mesh sidebar item shows a red badge with the count of unread messages. It clears when you open the Messages tab.
On your device: incoming messages appear on the device screen (if it has one). The device beeps or vibrates depending on your settings.
SMS replies: if you sent an SMS and the recipient replied, their reply appears in your Messages tab and is delivered to your device as a downlink.
Step 6 - Configure your device
Where to go: Dashboard sidebar → GRS Mesh → your device row → click Configure (or the gear icon).
What you see: a configuration form with sections for: Node name, Callsign, Channel, Radio settings (TX power, bandwidth, spread factor, region), WiFi credentials (for bridge mode), Bridge mode toggle, Private network membership, Display settings (if device has a screen), GPS reporting interval.
All settings have sensible defaults - you do not have to change anything for the device to work.
How settings are applied: click "Save & Push to Device." Settings are saved in the dashboard and pushed to your device as a cloud downlink the next time it is in range of a bridge.
Apply immediately via USB: if the device is in your hand, click "Connect via USB" in the Configure tab. A browser dialog asks you to select the serial port. Once connected, settings are applied immediately over the USB connection.
Bridge mode: if your device has WiFi, turn on Bridge mode and enter your WiFi credentials. The device will connect to WiFi when in range and uplink mesh messages to the cloud. Most nodes are not bridges - only nodes with reliable internet access should be bridges.
Step 7 - See your nodes on the map
Where to go: Dashboard → Map (sidebar → APRS Map). Click the layer selector overlay (top-right of the map, or the map mode button).
What you see: a list of map layers including "Gearsmen Mesh." Toggle it on.
What happens: GRS Mesh nodes that have been seen by a bridge appear as markers on the map. Each marker shows the node ID and callsign. Positions update as bridge nodes uplink.
Filter: in GRS Mesh section → Settings tab → Map Layer Filter, choose "All GRS Mesh nodes" (default) or "My private channels only." The second option shows only nodes in your private networks.
Click a marker: you see the node ID, callsign, and last-seen time. Buttons let you send a message to that node or open its configuration (if it is your linked device).
GTAK preset: if you use the GTAK map preset (map mode overlay → GTAK Map), the Gearsmen Mesh layer is on by default alongside CoT positions.
Step 8 - Create or join a private network
Where to go: Dashboard sidebar → GRS Mesh → Networks tab.
Create a network: click "Create network." Enter a name. You get a join code (a short alphanumeric string) and an optional QR code. Share the join code with your team.
Join a network: click "Join with key." Enter the join code from whoever created the network. Click Join.
What happens: the private network key is pushed to your device via cloud downlink the next time it is in range of a bridge. Your device and all devices in the network share the same channel and encryption key. Only those devices can read each other's traffic over the air.
Map filter: once you are in a private network, you can set the map layer to show only nodes in your private channels (GRS Mesh → Settings → Map Layer Filter → My private channels only).
Bridged messages: when a message from a private network is bridged to SMS, APRS, or email, we decrypt it at the bridge so the external recipient receives readable text. Mesh-to-mesh traffic stays encrypted end to end.
Cross-network messaging - GRS ↔ Meshtastic
GRS Mesh and Meshtastic are different radio protocols. They cannot talk directly over LoRa, but via Gearsmen cloud, users on both networks can message each other.
From GRS to Meshtastic: on your GRS device, type MESH !xyz1234 Hello. Gearsmen routes it to the Meshtastic MQTT network. The Meshtastic user receives it on their device.
From Meshtastic to GRS: on a Meshtastic device, type GRS !a1b2c3d4 Meet at the rally point. Gearsmen's Meshtastic handler parses the GRS prefix, looks up the GRS node, and queues the message to the GRS outbox. Your GRS device receives it via bridge downlink.
Address by callsign from Meshtastic: type GRS KQ4YSV Your message. Gearsmen resolves the callsign to the linked GRS node ID.
Both users must have Gearsmen accounts and linked devices for cross-network delivery to work.
Cross-network messaging - GRS ↔ MeshCore
MeshCore gateways can connect directly to Gearsmen's MQTT broker. Once linked, MeshCore users can message GRS Mesh nodes and vice versa - all through Gearsmen cloud.
How to link a MeshCore gateway: go to Dashboard → GRS Mesh → MeshCore tab → Link a MeshCore Gateway. Enter your gateway's node ID and click Link. You will receive MQTT credentials (broker URL, username, password). Configure your MeshCore gateway to point to our broker with those credentials.
From GRS to MeshCore: on your GRS device, type MESHCORE !nodeid Hello. Gearsmen queues the message to the MeshCore outbox and delivers it via your linked gateway.
From MeshCore to GRS: on a MeshCore device, type GRS !a1b2c3d4 Hello. Gearsmen's MeshCore handler routes it to the GRS Mesh outbox. The GRS device receives it via bridge downlink.
From MeshCore to Meshtastic: type MESH !xyz1234 Hello on your MeshCore device. Gearsmen routes it to the Meshtastic network.
From the dashboard: once a MeshCore gateway is linked, use Dashboard → GRS Mesh → MeshCore tab → Send to MeshCore Node to send messages directly.
From the Send tab: select "MeshCore (node ID)" as the destination type and enter the target node ID.
Both users must have Gearsmen accounts and linked gateways for cross-network delivery to work.
Adding a node ID - where to find it
Your node ID is generated by the firmware and is unique to your device. It looks like !a1b2c3d4 - an exclamation mark followed by 8 hex characters.
On a device with a screen: the node ID is shown on the boot screen and in the device info screen.
On a headless device (no screen): connect via USB and open a serial terminal at 115200 baud. The device prints its node ID on boot.
From the flasher: after flashing, the flasher shows the detected node ID if the device is still connected.
In the dashboard: once linked, your node ID appears in GRS Mesh → My Devices. You can copy it from there.
If you do not know your node ID: type PING on your device. The cloud reply includes your node ID in the response.
How store-and-forward works
Your device does not need internet. It stores outgoing messages locally and forwards them hop-by-hop across the LoRa mesh until they reach a bridge node.
A bridge node is a GRS Mesh device that also has WiFi and is connected to the internet. When a bridge receives a message from the mesh, it uplinks it to the Gearsmen cloud.
You do not pick which bridge to use. Any bridge in LoRa range will uplink your messages. If there is no bridge nearby, messages queue on your device until one comes into range.
Downlinks (replies, incoming messages) work the same way in reverse: the cloud first sends the message to the bridge that last saw your node; if that bridge is unknown, it tries multiple paths by sending to all bridges linked to your account. The chosen bridge injects the message into the LoRa mesh.
Delivery time depends on how often a bridge is in range. In a dense area with many bridge nodes, delivery is near-instant. In a remote area with no bridges, messages queue until you or a bridge move into range.
Rate limits
SMS: 100 messages per user per day. This limit applies whether you send from the dashboard or from your mesh device.
Uplink messages: 500 per node per hour. If you exceed the limit, your device receives a "Rate limit" reply and the message is not sent.
SMS opt-in: recipients must have texted START to the Gearsmen number before you can send them SMS. If they reply STOP, they are removed from your contact list automatically.
Quick Reference - I want to…
| I want to… | Command or action | From |
|---|---|---|
| Flash firmware onto my device | Dashboard → GRS Mesh → Flash Firmware | Browser (Chrome/Edge) |
| Link my device to my account | Dashboard → GRS Mesh → Link a device → enter Node ID | Dashboard |
| Find my node ID | Boot screen on device, or type PING on device | Device or dashboard |
| Send a text message | SMS +15551234567 Your message | GRS device |
| Send to an APRS user | APRS KQ4YSV Your message | GRS device |
| Send an email | EMAIL user@example.com Your message | GRS device |
| Send to another GRS node | GRS !a1b2c3d4 Your message | GRS device |
| Send to a Meshtastic user | MESH !xyz1234 Your message | GRS device |
| Send to a MeshCore user | MESHCORE !a1b2c3d4 Your message | GRS device |
| Send to a GRS user from Meshtastic | GRS !a1b2c3d4 Your message | Meshtastic device |
| Link a MeshCore gateway | Dashboard → GRS Mesh → MeshCore tab → Link Gateway | Dashboard |
| Send to a GRS user from MeshCore | GRS !a1b2c3d4 Your message | MeshCore device |
| Send to a MeshCore user from dashboard | Dashboard → GRS Mesh → MeshCore tab → Send | Dashboard |
| Check device link status | PING | GRS device |
| Configure my device | Dashboard → GRS Mesh → device row → Configure | Dashboard |
| See my nodes on the map | Dashboard → Map → layer selector → enable Gearsmen Mesh | Dashboard |
| Create a private network | Dashboard → GRS Mesh → Networks → Create | Dashboard |
| Join a private network | Dashboard → GRS Mesh → Networks → Join with key | Dashboard |
| See all commands | HELP | GRS device |
Commands
SMSSend a text message to a phone number. Recipient must have opted in (texted START to our number). SMS replies are routed back to your device.
SMS +15551234567 Hello from the field
APRSSend an APRS message to a callsign via the Gearsmen APRS gateway.
APRS W1AW Hello from GRS Mesh
EMAILSend an email via Winlink/email service.
EMAIL user@example.com Field report - all clear at grid 4
GRSSend a message to another GRS Mesh node by node ID or callsign. Queued in outbox; delivered when bridge sees the target node.
GRS !a1b2c3d4 Meet at the rally point
MESHSend a message to a Meshtastic user by node ID via Gearsmen cloud cross-network routing.
MESH !xyz1234 Hello from GRS Mesh
MESHCORESend a message to a MeshCore user by node ID via Gearsmen cloud cross-network routing. Requires a linked MeshCore gateway.
MESHCORE !a1b2c3d4 Hello from GRS Mesh
PINGCheck that your device is linked and the cloud can reach you. You get a reply with your node ID.
PING
HELPReceive a list of available commands as a downlink reply on your device.
HELP
Device Reliability & Resilience
Why GRS Mesh devices never fail - and what happens when things go wrong
GRS Mesh firmware is engineered with Apple-grade reliability principles: atomic storage, hardware watchdogs, multi-layer recovery, crash forensics, progressive power management, and the "Undead Relay" feature that keeps dead devices relaying. This section explains every resilience layer, why it exists, and real-world examples of what it protects against.
Key features
- ✓Hardware watchdog reboots the device within 30 seconds if any task freezes - no hung devices in the field
- ✓Atomic config writes use copy-on-write - power loss mid-save never corrupts your settings
- ✓CRC-32 integrity on all flash storage - bit rot is caught and handled automatically
- ✓Boot-loop detection with 3-tier recovery: auto-rollback at 3 crashes, factory defaults at 5, safe mode at 8
- ✓Factory recovery partition - a known-good firmware image that can always boot, even if both OTA slots are corrupt
- ✓"Undead Relay" mode - when battery dies, the LoRa radio stays alive at 5 microamps and continues relaying mesh packets
- ✓Progressive power shedding - as battery drops, non-essential features (display, GPS, high TX power) are shed to keep the radio alive longer
- ✓Crash forensics - every crash is logged to flash and uplinked to the cloud on next boot for remote diagnostics
- ✓Message queue persistence - queued messages survive reboots and power loss; the device picks up exactly where it left off
- ✓Heard-node table persistence - the list of nearby mesh peers survives reboots so the device reconnects to the mesh instantly
- ✓SD card health monitoring - free space tracking, corruption detection, write-verify checks, and automatic cleanup of temp files
- ✓Graceful queue overflow - when message queues fill up, the oldest messages are evicted instead of dropping new ones
- ✓Screenshot capture - iPhone-like screenshot on every device tier via button combo, touch gesture, keyboard shortcut, or remote command
- ✓Firmware security: optional ESP32 Secure Boot v2 (ECDSA-P256 signature verification) and AES-256-XTS flash encryption for production deployments. Crash forensics data is encrypted in transit (TLS) during cloud uplink
- ✓Data integrity: CRC-32 validation on all flash storage operations. Atomic config writes prevent corruption from power loss. Message queue persistence uses write-ahead logging for ACID-like guarantees on embedded hardware
Why reliability matters for mesh devices
A mesh radio deployed in the field is not like a phone in your pocket. You cannot walk over and restart it. It might be on a mountaintop, in a vehicle, or strapped to a tree at a trailhead. If it crashes, freezes, or corrupts its settings, you have lost a relay node - and every device that depended on it for message forwarding.
GRS Mesh firmware is built to handle every failure mode we could find: power loss mid-write, bad firmware updates, memory leaks, hardware faults, dead batteries, flash memory degradation, and more. The goal is simple: a GRS device should never need manual intervention to recover.
We studied what makes Apple devices, NASA flight computers, and medical devices reliable - and brought those same engineering principles to a $20 ESP32 board.
Layer 1: Hardware watchdog - "Never hang"
Every task in the firmware (display, LoRa radio, MQTT bridge, GPS, telemetry, serial config) registers with a hardware watchdog timer. Each task must report a heartbeat at least once every 30 seconds.
If any task stops responding - due to a deadlock, infinite loop, or hardware fault - the watchdog reboots the entire device within 30 seconds. The crash reason is logged to flash so we can diagnose it later.
A separate health monitor task runs every 10 seconds, checking heap memory and task freshness. If free heap drops below 10 KB, it logs a warning. If a task has not reported a heartbeat recently, it flags it before the watchdog fires.
Real-world example: The I2C bus to the OLED display locks up due to electrical noise. The display task stops responding. Within 30 seconds, the watchdog reboots the device. It comes back online with the display working again. The crash is logged and uplinked to the cloud. Total downtime: under 1 minute.
Layer 2: Crash-safe storage - "Never corrupt"
The most common way embedded devices fail is data corruption after unexpected power loss. If the device is writing a config value to flash and power dies mid-write, you get a half-written, unreadable config. Next boot: crash.
GRS firmware uses atomic copy-on-write for all config saves - the same principle Apple uses in APFS. The sequence: (1) write all new values to a shadow namespace, (2) set a commit flag, (3) copy shadow to live config, (4) erase shadow. If power dies at any step, the device detects the incomplete transaction on next boot and keeps the last-good config.
All files written to flash (queued messages, crash logs, config backups) include a CRC-32 integrity footer. On read, the CRC is validated. If it fails, the corrupt file is deleted and the device falls back to defaults - it never tries to use corrupt data.
Real-world example: You are configuring your device via the dashboard. A downlink pushes new WiFi credentials. The device starts writing them to flash - and at that exact moment, your dog chews through the USB cable. On reboot, the device detects the incomplete write, discards it, and boots with the previous WiFi credentials that were working fine. No corruption, no manual intervention.
Layer 3: Multi-layer recovery - "Never brick"
Apple devices have 4 layers of recovery: normal boot, Recovery Mode, Fallback Recovery, and DFU. GRS Mesh devices have the same structure:
Layer A - Normal boot: The device boots the current OTA firmware. This is what happens 99.9% of the time.
Layer B - OTA rollback: If the new firmware crashes within the first 3 boot cycles, the bootloader automatically rolls back to the previous working firmware. No user action needed.
Layer C - Factory defaults: If the device crashes 5 times in a row (even after rollback), it erases all settings and reloads factory defaults. This handles the case where corrupt config data causes crashes.
Layer D - Recovery mode: If the device crashes 8 times in a row (even after factory defaults), it enters a minimal safe mode - serial console and display only, no radio, no WiFi. You can reflash via USB from this state.
The boot-loop counter uses dual storage: RTC memory (survives soft reboot) and NVS flash (survives power cycle). On a successful boot, the counter resets to zero.
Real-world example: A firmware update has a bug that crashes on T-Beam boards but works fine on Heltec. A T-Beam in the field receives the OTA, reboots, crashes. Reboots again, crashes. On the third crash, the bootloader rolls back to the previous firmware. The device is back online running the old version. No one had to drive to the mountaintop.
Layer 4: Power-aware operation - "Never die suddenly"
Most devices just die when the battery runs out - mid-message, mid-write, mid-everything. GRS Mesh devices handle low battery progressively, shedding non-essential functions to keep the radio alive as long as possible.
At 3.7V (Normal): everything runs - display, GPS, WiFi, full TX power.
At 3.5V (Conserve): display brightness drops to 25%. Telemetry interval extends.
At 3.3V (Critical): display turns off. GPS turns off. TX power drops to half. The device focuses entirely on LoRa relay.
Below 3.3V (Emergency): TX power drops to minimum (5 dBm). Only LoRa relay runs.
Below 3.1V (Shutdown): the device performs a clean shutdown - saves config, persists message queues and heard-node table to flash, then enters deep sleep with LoRa wakeup enabled.
The voltage is checked every 15 seconds. Each tier change is logged and reported to the cloud.
Real-world example: You deploy a solar-powered relay node. After 3 cloudy days, the battery drops to 3.3V. The device shuts off the screen and GPS, extending runtime by 3x. After 5 cloudy days, the battery hits 3.1V. The device does a clean shutdown and enters Undead Relay mode - still forwarding messages on microamps.
The "Undead Relay" - mesh nodes that never truly die
This is the signature feature of GRS Mesh firmware. When a device runs out of battery, it does not just die. It enters an ultra-low-power deep sleep where the LoRa radio chip (SX1262) stays in receive mode at approximately 5 microamps.
When a mesh packet arrives over LoRa, the radio chip wakes up the ESP32. The processor boots in milliseconds, relays the packet, and goes back to deep sleep. No display, no WiFi, no GPS - just pure mesh relay.
The device also wakes every 30 minutes to check if a charger has been connected. If so, it exits Undead Relay and boots normally.
A field of "dead" Gearsmen devices is still a functioning mesh relay network. This is the kind of engineering that makes the difference between a toy and a tool.
Real-world example: Your search-and-rescue team deploys 20 nodes along a mountain trail. After a week, all batteries are depleted. But every single node is still relaying messages in Undead Relay mode. A hiker with a Gearsmen device at the trailhead can still reach a Gearsmen device at the summit - the "dead" nodes in between carry the message.
Crash forensics - remote diagnostics
Every crash is recorded to flash with: the crash reason, free heap at time of crash, boot count, and whether the previous shutdown was clean or dirty. Up to 3 crash records are stored in a ring buffer.
On the next successful boot, unreported crash records are uplinked to the Gearsmen cloud as telemetry. This means we can see exactly what went wrong on any device in the field - without anyone having to plug in a USB cable.
The health monitor also tracks: current free heap, task heartbeat freshness, and power tier. This data is available via the cloud dashboard.
Real-world example: A device deployed on a boat reboots unexpectedly at 2 AM. By 2:01 AM, the crash report is in the cloud: "watchdog timeout on bridge_task, heap was 8 KB, dirty shutdown." We see it was a memory leak in the MQTT reconnection path. We push a fix in the next OTA release. The boat owner never knew anything happened.
Message and mesh state persistence
Store-and-forward queues (up to 32 uplinks and 16 downlinks) are persisted to flash during clean shutdown. On the next boot, they are restored automatically. No messages are lost across reboots.
The heard-node table (up to 32 recently-seen mesh peers) is also persisted. This means the device knows its mesh neighborhood immediately after rebooting - it does not have to wait to hear packets again before it knows who is nearby.
Both use CRC-32 integrity verification. If a persisted file is corrupt (flash bit rot, interrupted write), it is discarded and the device starts fresh rather than using bad data.
Real-world example: Your bridge node has 12 queued messages waiting for WiFi. A brief power glitch causes a reboot. The device comes back in 8 seconds with all 12 messages still in the queue. WiFi reconnects, messages upload. Zero messages lost.
SD card health & storage management
GRS devices use SD cards for offline map tiles, encrypted file storage, and data exports. The firmware actively monitors the card health: free space, file count, read/write integrity, and encryption state. All of this is visible on the device Storage screen and through USB serial commands.
On boot, the firmware checks whether the SD card is present and readable. A write-verify test writes random data to a temporary file, reads it back, and verifies every byte matches. If the card fails this test, the firmware marks it as corrupt and warns the user.
Free space is tracked continuously. When the card drops below 10% free, the firmware logs a warning. Below 1%, it flags the card as full. You can run "sd cleanup" via serial to remove temp files, or "sd info" to see exactly how much space is used and how many files are on the card.
If the card is damaged, read-only, or missing, the firmware continues operating normally - SD storage is optional. Queued messages, config, and heard-node data all live on internal SPIFFS flash (128 KB) which is always available regardless of SD card state.
Serial commands: "sd status" (encryption state), "sd info" (space/files/health), "sd check" (integrity test), "sd list" (show all files), "sd cleanup" (remove temp files), "sd format" (erase all data), "sd eject" (decrypt for safe removal), "sd remount" (re-encrypt after PC read).
Real-world example: You pull a GRS node from a remote site after 3 months. The SD card is nearly full from map sync files. You plug in USB and run "sd info" - it shows 94% used, 847 files. You run "sd cleanup" and free 200 MB of temp data. Or you run "sd eject" to decrypt all files, pull the card, and read the data on your laptop.
Screenshot capture
Every GRS device can take screenshots of its display, just like an iPhone. The captured frame is saved as a BMP file to the SD card (in /sdcard/screenshots/) or, if no SD card is present, uplinked via MQTT to the cloud dashboard.
Trigger gestures by device type: On single-button devices (T-Beam, Heltec V3), triple-press the button quickly (3 taps within 800 ms). On T-Deck, press the P key. On touch-screen devices (T-Watch, T4-S3, T-Display-S3, T5-S3 E-Paper), tap the top-right corner of the screen.
When a screenshot is taken, you get instant feedback: LCD screens flash white briefly (like iPhone), e-paper displays show a "Screenshot saved" confirmation, the T-Watch vibrates, and the T-LoRa Pager beeps.
You can also trigger a screenshot remotely from the cloud dashboard or via USB serial with the "screenshot" command. Remote screenshots let you see exactly what a distant device is displaying without being physically present.
Screenshots are saved as standard BMP files that open on any computer. OLED screenshots are tiny (~1 KB), LCD screenshots are about 230 KB, and e-paper screenshots are about 518 KB.
Secure boot (production hardening)
For production deployments, GRS firmware supports ESP32 Secure Boot v2 with ECDSA-P256 hardware verification. Once enabled, the device will only boot firmware signed with your private key. Flash encryption (AES-256-XTS) protects data at rest.
This is a one-time, irreversible operation (burns eFuses in the chip). It prevents anyone from loading modified firmware onto a stolen or captured device.
Combined with NVS encryption, this protects WiFi passwords, MQTT credentials, and encryption keys stored on the device.
Real-world example: A GRS node is deployed at a remote infrastructure site. Someone physically removes it and tries to flash modified firmware to intercept mesh traffic. Secure Boot rejects the unsigned image. The device remains locked to your authorized firmware.
The 4-layer recovery guarantee
A GRS Mesh device with all resilience layers active should survive: power yanked mid-config-write, firmware update interrupted at 50%, a bad OTA pushed to the entire fleet, both OTA partitions corrupted, any task deadlock or infinite loop, battery dying in the field, slow battery degradation over months, flash memory bit rot, and 6 months of unattended operation.
If the current firmware is bad → it rolls back. If rollback is bad → it loads factory defaults. If defaults do not help → it enters recovery mode for USB reflash. At no point is the device bricked.
This is not theoretical. Every layer is implemented in real code, with real hardware watchdogs, real flash storage, and real power management. The code is on the device right now.
Device firmware: maps, markers & mesh messaging
How maps and markers work on your device, how messages flow, and what you should know
This section explains how GRS Mesh firmware handles the map and markers on your device (T-Deck, T-Beam, etc.), how map data is updated, and how the mesh messaging system works end-to-end. Use it when you want to understand where your message goes, why you see (or do not see) markers, or how to use the map when off-grid.
Key features
- ✓Map on device - pre-downloaded world tiles (z0-z6) so the map works offline; when on WiFi, tiles can load from the network
- ✓Single marker API - the device fetches one endpoint that returns all layers (APRS, Meshtastic, MeshCore, GRS Mesh, AIS, ADS-B, DMR, PSK, TAK, Trains) so the firmware does not call many APIs
- ✓Marker refresh - when the device has WiFi and is not in offline mode, it polls the marker API every 30 seconds for up-to-date layer data; when offline, it uses the last cached snapshot
- ✓Layer toggles - on the map screen you can show or hide each layer (mesh peers, GRS Mesh, APRS, etc.) so you can focus on what matters
- ✓Track a contact - from Messages or Nodes you can tap "Track" on someone who sent coordinates; the map centers on them and shows a distinct marker; works offline using the pre-downloaded map
- ✓Hop path - incoming messages can show the path the message took (origin → relay nodes → you); bridge nodes that relay traffic are highlighted
- ✓Closest bridge - the Nodes screen can show which bridge node is closest (best RSSI) so you know where to move for best uplink
- ✓Security: marker API requests are authenticated. Tile requests are proxied through Gearsmen servers - device IP is not exposed to third-party providers. Message integrity is verified with CRC-32 at every hop
- ✓Privacy: map data displayed on the device comes from public networks (APRS-IS, community APIs). Your device position is only shared when GPS beaconing is enabled - you control whether your location is broadcast
How we handle maps on the device
The firmware map uses the same geographic data as the Gearsmen web map, but optimized for small screens and limited connectivity. Map tiles (the background imagery) are served from our servers when the device has internet. For offline use, we bundle a lightweight set of OpenStreetMap tiles (zoom levels 0-6) so the map still shows a world view and your position even with no connection.
Tiles are requested via our tile API (e.g. /api/tiles/...) so the device never talks directly to third-party tile providers. That avoids referrer and CORS issues and lets us cache and serve tiles consistently. On the device, you can switch between dark, street, and satellite styles; the dark style is the default and is easiest on the eyes and battery.
How markers are loaded and updated
All map layers (APRS, Meshtastic, MeshCore, GRS Mesh, AIS, ADS-B, DMR, PSK, TAK, Trains) are combined into a single firmware-friendly API: GET /api/simulator/map-markers (the same data is used by the web simulator and by real firmware). The response includes a timestamp, a TTL (time-to-live in seconds), per-layer counts, and the actual marker lists with id, label, lat, lng, and any layer-specific fields.
When your device has WiFi and is not in "offline mode," it polls this API every 30 seconds. New or updated markers (e.g. a new GRS node that just came online) appear within half a minute. When the device is offline or has no WiFi, it uses the last snapshot it received - so you still see markers, but they may be slightly stale until you are back in range of a bridge or WiFi.
The device does not call separate APIs per layer. One request returns everything; the firmware then filters by the layers you have enabled (layer toggles on the map screen). This keeps the device simple and reduces battery and data usage.
Where does your mesh message go?
When you send a message from your GRS device (e.g. to another GRS node, or SMS, or APRS), the message is stored on your device first. Your device does not need internet. It broadcasts over LoRa. Any GRS Mesh node in range that has "bridge mode" enabled and is connected to WiFi/internet can receive your packet and uplink it to the Gearsmen cloud.
Path for an outgoing message: Your device → LoRa radio → (any bridge in range) → internet → Gearsmen cloud. The cloud then routes the message to the destination: if it is SMS, we deliver via our SMS provider; if it is another GRS node, we put it in that node's outbox and deliver it the next time a bridge sees that node; if it is MeshCore or Meshtastic, we enqueue to the MeshCore or Meshtastic outbox for delivery via the linked gateway or MQTT; if it is APRS or email, we use the appropriate gateway.
Path for an incoming message (e.g. a reply): The cloud tries to reach you via a bridge. We first send the downlink to the bridge that last saw your node (the one that most recently uplinked traffic from you). If we do not have a "last seen" bridge for your node (for example you have not uplinked yet, or the record is missing), we try multiple paths by fanning out to all bridges linked to your account - so any of your own devices that are bridges and in range can deliver the message. In both cases the message goes: Gearsmen cloud → chosen bridge(s) → LoRa → your device. The firmware and dashboard can show you the "hop path" (origin → relay node IDs → you) so you see which node relayed the message. Bridge nodes are highlighted in the Nodes list and on the map so you can identify the closest bridge.
Bridge nodes and relay path
A "bridge" is a GRS Mesh device that has WiFi (or ethernet) and is connected to the internet. Bridge mode is a setting you enable in the device configuration. Only nodes with reliable internet should be bridges. When a bridge receives a mesh packet over LoRa, it forwards (uplinks) it to the Gearsmen cloud. When the cloud has a message for a node, it first sends the downlink to the bridge that last saw that node; if that bridge is unknown, it fans out to all bridges linked to that user so any of them in range can deliver the message. The chosen bridge then injects it (downlink) into the LoRa mesh.
You do not choose which bridge handles your traffic. Any bridge in LoRa range can relay. If no bridge is in range, your messages queue on your device until you or a bridge moves into range. On the firmware Nodes screen, we show which nodes are acting as relays (bridge nodes) and which bridge is "closest" (best signal) so you know where to go for best connectivity.
Multi-hop: a message can pass through several mesh nodes before reaching a bridge. The hop path (e.g. displayed in Messages) shows each relay so you can see how many hops and which node IDs were involved. This is useful for understanding coverage and for finding the best place to stand for uplink.
General firmware behavior - what users should know
Offline mode: the firmware can be put in "offline mode" (e.g. in the simulator or via a setting). In that mode, the device does not use WiFi for tiles or for the marker API; it relies on pre-downloaded tiles and the last cached marker snapshot. Use this to test or to save power when you know you have no internet.
Default position: if the device has no GPS fix, the map defaults to a known location (e.g. Orlando, FL) so you always see a valid map view. Once GPS locks, the map centers on you.
Tracking a contact: from the Messages screen, if someone sent a message with their GPS coordinates, you see a "Track" button. Tapping it pins that person on the map, jumps you to the map screen, and centers the map on them. You can clear the pin with the "✕" on the tracking banner. This works offline because the map tiles are already on the device.
Node ID lookup: on the Nodes screen you can search by callsign or node ID. Each node with GPS can be "Tracked" on the map. The same tracking and center-on-peer behavior applies so you can navigate to a contact even when off-grid.
Quick Reference - I want to…
| I want to… | Command or action | From |
|---|---|---|
| See map layers on the device | Map screen → Layers (≡) → toggle layers on/off | Device |
| Refresh marker data (when on WiFi) | Automatic every 30 s; or leave map screen and return | Device |
| Track a contact on the map | Messages or Nodes → Tap "Track" / "📍 Map" next to that contact | Device |
| See who relayed a message | Messages → hop path and "⇄ Bridge" badge on multi-hop messages | Device |
| Find the closest bridge node | Nodes screen → "Closest bridge" banner and bridge badges on node list | Device |
| Use map fully offline | Enable offline mode; pre-downloaded z0-z6 tiles + last marker cache used | Device / settings |
Dashboard & Live Map
Real-time map with 19+ data layers, weather, and 3D globe
The Gearsmen dashboard at gearsmen.app/dashboard is your command center. The live map renders real-time positions from APRS, Meshtastic, MeshCore, GRS Mesh, ADS-B, AIS, DMR, PSK, TAK, Trains, and more - all on one map. Toggle between 2D, 3D buildings, and a full 3D globe (Google Earth for ham radio). Weather overlays, fog of war, and 9 visual themes complete the picture.
Key features
- ✓19 real-time data layers: APRS, Meshtastic, MeshCore, GRS Mesh, ADS-B, AIS, DMR, PSK, Infrastructure, TAK, Trains, Disasters, Submarine Cables, GPS Jamming, Public Safety, POTA, SOTA, SondeHub, Repeaters
- ✓7 weather overlays: Radar (animated playback), Satellite IR, Severe Alerts (NWS polygons), Lightning (Blitzortung real-time), Wind, Temperature, Pressure
- ✓3D Buildings mode: toggle WebGL vector rendering for realistic 3D city buildings with tilt and rotation controls
- ✓Globe mode: full Three.js Earth with all data layers, weather composited on sphere, signal arcs, submarine cables, day/night terminator, and satellite passes
- ✓9 visual themes: Light, Dark, Midnight, Satellite, Terrain, Night Vision, Night Vision Red, Neon, Desert Tan
- ✓Fog of war overlay: hide areas outside your operational zone
- ✓Marker modes: full icons above zoom 13, compact dots below for 72k+ features at scale
- ✓Map presets: APRS Classic, Mesh Monitor, GTAK Tactical, Flight Tracker, Marine Traffic, and custom presets
- ✓Data handling: map data is aggregated from public and community sources. Position data displayed on the map is already publicly available (APRS-IS is an open network). No private position data is exposed without the user's consent
- ✓Security: all map data requests are authenticated. API endpoints are rate-limited and protected against abuse. Map tile requests are proxied through Gearsmen servers - your IP is not exposed to third-party tile providers
Data layers
Toggle layers from the map controls panel (top-right). Each layer polls its data source independently. Polling intervals are configurable (minimum 25 seconds). Layers with large datasets (Meshtastic 20k+, MeshCore 24k+, DMR 28k+) use optimized rendering with canvas symbols - no SVG image decoding.
Below zoom level 13, all markers switch to compact dot mode for performance. Above zoom 13, full icons with labels are shown. The transition is seamless.
Layer data sources: APRS stations come from APRS-IS. Meshtastic and MeshCore come from their respective community APIs. GRS Mesh nodes come from the Gearsmen cloud. ADS-B aircraft data comes from adsb.fi. AIS marine data comes from community feeds. DMR repeaters come from HearHam (21k+ repeaters). PSK reporter spots show propagation paths with SNR-based glow intensity.
Data refresh rates -- how often markers update
All map layer data is refreshed on the server every 10 minutes by a background job. When you load the map, you see the most recent server snapshot. If your station or node was just activated, it may take up to 10 minutes to appear on the map for the first time.
Once the map is loaded, the dashboard polls for fresh data automatically. Different layers refresh at different speeds depending on how fast the underlying data changes:
Fast-moving layers (25-60 seconds): APRS stations, ADS-B aircraft, AIS vessels, TAK positions, PSK spots, GRS Mesh nodes, and Trains all refresh every 25 seconds (the minimum polling interval). Incidents (emergency alerts) refresh every 60 seconds. These layers show near-real-time positions.
Medium-speed layers (2-5 minutes): Satellites refresh every 30 seconds (fastest-moving objects). Weather balloons (SondeHub) refresh every 2 minutes. POTA activations, SOTA activations, and RF Scanner data refresh every 5 minutes.
Slow-changing layers (30-60 minutes): DMR repeaters, HearHam repeaters, Cell towers, and Radiation monitors refresh every 30 minutes. Submarine cables, Power grid, Water infrastructure, and Active fires refresh every 60 minutes. These represent mostly static infrastructure.
Meshtastic and MeshCore nodes are loaded as a full snapshot when the map opens. Meshtastic uses a combination of the Gearsmen database and the Liamcottle community API to show the most complete picture. New Meshtastic nodes appear within 10 minutes of their first position report being seen by any gateway.
APRS stations appear as soon as the next server refresh runs after your radio sends a position beacon to APRS-IS. If you just keyed up, wait about 10 minutes, then reload or let auto-refresh pick it up.
Tip: the freshness indicator in the top-right corner of the map shows "Live" when actively polling. If it shows a time like "Updated 5m ago," your data may be stale -- check your connection or refresh the page.
Weather overlays
Weather overlays are independent of data layers - toggle them from the Weather submenu in map controls. Radar uses the RainViewer API (free, global coverage) with animated playback: 2 hours of past data plus 30 minutes of forecast, in 10-minute frames. Use play/pause/step controls to scrub through time.
Severe weather alerts pull NWS warnings (US coverage) and render color-coded polygons on the map. Lightning strikes come from the Blitzortung community network and refresh every minute with age-based fade.
Wind, temperature, and pressure overlays use OpenWeatherMap tile layers. All weather overlays render on both the 2D map and the 3D globe.
3D Buildings and Globe mode
3D Buildings mode switches the map to Google Maps WebGL vector rendering. Buildings appear as extruded 3D shapes. Tilt and heading controls let you view the map at angles up to 60 degrees. A floating toolbar provides tilt up/down, rotate left/right, and reset buttons.
Globe mode launches a full Three.js Earth sphere. All 19 data layers render as 3D markers on the globe surface. Weather overlays are composited onto a transparent sphere. PSK signal propagation paths render as great-circle arcs with SNR-based glow and breathing opacity animation. Submarine cables render as glowing polylines. A real-time day/night terminator shows the dark hemisphere based on UTC sun position.
Globe mode includes: auto-rotation when idle, marker pulse animations, station count HUD (top-right), altitude-based filtering, and smooth orbit camera controls.
Themes
Nine unified themes control both the dashboard UI and the map appearance. Standard themes (Light, Dark, Midnight, Satellite, Terrain) apply via CSS class. Immersive themes (Night Vision, Night Vision Red, Neon, Desert Tan) tint the entire UI to match - green monochrome for night vision, cyan/magenta for neon, warm sandy tones for desert tan.
Switch themes from the sidebar theme picker or from Account → Settings. The selected theme persists across sessions.
Organizations
Team management, operations, SAR, and shared resources
Gearsmen Organizations let you create or join teams with shared map views, personnel management, operations control, and search-and-rescue tools. Organizations are designed for SAR teams, ARES/RACES groups, emergency management agencies, and any group that needs coordinated radio operations.
Key features
- ✓Org Hub: overview, member count, announcements, and team chat channels
- ✓Personnel Management: roster with roles (Admin, Officer, Field Lead, Member, Observer), invites, and departure tracking
- ✓Operations Control: incident board, alert dispatch, SITREP/AAR report templates
- ✓Org Map: shared map view filtered to org members and zones with operational, restricted, staging, and rally zone types
- ✓Calendar: shared event scheduling for training, deployments, and meetings
- ✓Resources & Logistics: asset tracking and equipment catalog
- ✓Audit Logs: full history of permission changes, member actions, and resource access
- ✓Search & Rescue: dedicated SAR operations view (planned: search segments, trail logging, coverage tracking)
- ✓Webhooks: subscribe to org events (member joins, alerts, incidents) and route to Slack, Discord, or custom endpoints
- ✓Security: role-based access control with granular permissions. All member actions logged to immutable audit trail. Permission changes require Admin role and are compliance-logged
- ✓Data governance: org data retention policies configurable per organization. GDPR data subject requests supported - members can request their personal data be removed from the organization. Full data export available for compliance audits
Creating and joining an organization
To create an organization: Dashboard sidebar → Organizations → Org Hub → Create Organization. Enter a name and optional description. You become the Admin by default.
To join: get an invite link or join code from an existing org admin. Go to Dashboard → Organizations → Join Organization → enter the code. Some orgs require admin approval before you are added.
You can belong to multiple organizations. Switch between them using the org strip at the top of relevant dashboard pages.
Roles and permissions
Organizations use role-based access control with 5 built-in roles: Admin (full control), Officer (manage members, alerts, operations), Field Lead (assign tasks, update status), Member (view and participate), and Observer (read-only).
Admins can create custom roles with granular permissions. Individual members can receive permission overrides for specific capabilities.
All role changes are logged in the org audit trail for accountability.
Operations and incident management
The Org Operations view provides incident management: create incidents, assign teams, track resolution, and generate SITREP and AAR reports using built-in templates.
Alert dispatch routes notifications to members by role - you can send priority alerts to all Officers while Field Leads receive assignment updates.
Org zones drawn on the map (operational, restricted, staging, rally) are visible to all org members and color-coded by type.
GRSM & Device Simulator
Turn your browser into a real GRS Mesh node, or test firmware on virtual hardware
The GRS Device Runtime turns any browser into a real GRS Mesh node - your browser gets a persistent device identity (node ID, callsign), registers on the mesh, and can send and receive real messages. The Simulator mode lets you test firmware on virtual hardware devices (T-Beam, T-Deck, Heltec, etc.) with accurate power models, display emulation, and LoRa radio simulation.
Key features
- ✓GRSM mode: your browser becomes a persistent mesh device with its own node ID and callsign
- ✓Device identity survives browser restarts and machine restarts (localStorage + server-side database)
- ✓Browser device fingerprinting (SHA-256 of hardware signals) for stable identity - no account required to identify the device
- ✓Setup wizard: Wi-Fi verification, region selection, optional passcode lock, device naming
- ✓Passcode lock screen: 4-digit lock with Apple-style dot indicators, auto-lock on idle
- ✓Erase All Content & Settings: reset device to factory state while preserving hardware identity
- ✓Simulator mode: up to 3 simultaneous virtual devices on a shared mesh bus
- ✓Accurate power models: per-subsystem current draw (MCU, display, LoRa TX/RX, GPS, solar) with live battery drain
- ✓Display emulation: OLED (30Hz), LCD (60Hz), E-ink (0.5Hz with refresh flash)
- ✓Bridge Mode: route simulator messages through the real GRS Mesh outbox to physical LoRa nodes
- ✓Fullscreen mode: firmware fills entire viewport - device-as-node experience
- ✓Device housing: physical case rendering with buttons, LEDs, USB port, keyboard (T-Deck)
- ✓Stolen/banned device detection: blocked devices see an error screen and cannot register
- ✓Privacy: browser fingerprinting is deterministic device identification, not behavioral tracking. Disclosed in Privacy Policy §4. Fingerprint is a SHA-256 hash - the raw signals are not stored. Users can erase device identity at any time
- ✓Security: device registration checks stolen device reports, hardware bans, and node ID bans before allowing boot. Passcodes are SHA-256 hashed server-side. All registration events are compliance-logged
GRSM - your browser as a mesh device
When you open GRSM (Dashboard sidebar → Configure Device → GRSM), your browser generates a device fingerprint from stable hardware signals (screen resolution, GPU, CPU cores, timezone, etc.). This fingerprint is sent to the server, which either returns your existing device identity or creates a new one.
Your GRSM device gets a real node ID (format: !xxxxxxxx) and callsign (format: GRSxxxxL). These persist across browser restarts and machine restarts - the identity is stored both in your browser's localStorage and in the Gearsmen database.
On first visit, you go through a setup wizard: Wi-Fi verification (must be online for device registration), region selection, optional 4-digit passcode, and device naming. On return visits, the device boots directly to the desktop or lock screen.
The GRSM device appears in your Linked Accounts page alongside your physical GRS Mesh devices. It can send and receive real mesh messages.
Simulator - virtual hardware testing
The Simulator (Dashboard sidebar → Explore → Simulator) lets you run firmware on virtual devices. Select a device profile (T-Beam, T-Deck, Heltec V3, T-Echo, etc.) and the firmware renders on a virtual screen matching the real hardware resolution.
The power model tracks real current draw: MCU active/idle, display on/off, LoRa TX at different power levels, GPS acquisition/tracking, and solar charging. Battery percentage drains in real time based on what the firmware is doing.
Up to 3 devices can run simultaneously on a shared mesh bus, so you can test device-to-device messaging without physical hardware.
Bridge Mode connects the simulator to the real GRS Mesh cloud. Messages sent from the simulator are routed through the actual GRS Mesh outbox and can be received by physical LoRa devices in the field.
Security: device identity and stolen device protection
Device registration checks three security tables before allowing a device to boot: hardware-banned fingerprints, active stolen device reports, and banned node IDs.
If a device is reported stolen, the registration endpoint returns a DEVICE_STOLEN error and the browser shows a "Device Blocked" screen. If a hardware fingerprint is banned, the device cannot register on any account.
Each user is limited to 10 GRSM devices. The node ID is deterministically derived from userId + fingerprint, so the same user on the same browser always gets the same identity.
Passcodes are stored as SHA-256 hashes on the server. The raw 4-digit code is only kept in the browser's localStorage for lock screen comparison.
Voice Rooms & GRS Call
Real-time voice alongside radio activity
Voice Rooms provide internet-based voice channels (WebRTC via LiveKit) for real-time group audio. GRS Call provides mesh-based voice dialing with an Apple Phone-style interface. Both systems complement radio communications - use voice rooms for team coordination while monitoring radio traffic on the map.
Key features
- ✓Voice Rooms: create or join real-time audio channels (WebRTC)
- ✓Push-to-talk or open-mic mode
- ✓Room discovery: browse active rooms or create private ones
- ✓GRS Call: mesh-based voice dialing with Apple Phone-style interface
- ✓Dialer with callsign prefill (open via ?to=CALLSIGN)
- ✓Call history and favorites
- ✓Works alongside the live map - monitor radio traffic while talking
- ✓Privacy: voice room audio is real-time WebRTC - audio is not recorded or stored on Gearsmen servers. Room participation metadata (join/leave times) is logged for operational awareness
- ✓Security: WebRTC connections are encrypted end-to-end (SRTP). Room access is authenticated via your Gearsmen session. GRS Call voice messages are transmitted over LoRa mesh and subject to ISM band regulations
GRS Skybridge
Meshtastic and GRS Mesh to Iridium satellite gateway
GRS Skybridge bridges Meshtastic and GRS Mesh devices to the Iridium satellite network via Short Burst Data (SBD). Send and receive messages from anywhere on Earth - even where there is no cell service, no internet, and no LoRa mesh coverage. Skybridge is for true off-grid operations: ocean crossings, polar expeditions, and remote backcountry.
Key features
- ✓Meshtastic ↔ Iridium SBD gateway: send messages from your mesh device via satellite
- ✓GRS Mesh ↔ Iridium SBD: same bridge for GRS Mesh firmware devices
- ✓SOS capability: emergency satellite messaging when all other communications fail
- ✓Satellite pass predictions: see when Iridium satellites are overhead
- ✓Geofencing: auto-send position reports when crossing geographic boundaries
- ✓Docker-based gateway deployment for physical Iridium terminals
- ✓Message compression for efficient use of SBD data credits
- ✓Regulatory: Skybridge operates via the Iridium satellite network under ITU Radio Regulations for satellite communication. Iridium SBD is a commercial service - satellite usage fees apply per Iridium's terms
- ✓Important: Skybridge is not a substitute for dedicated emergency beacons (PLB/EPIRB). For life-threatening emergencies, use 911/112 or activate a registered PLB
Device Identity & Security
Device fingerprinting, stolen device tracking, and hardware banning
Gearsmen maintains a multi-layer device identity and security system. Every device - physical hardware or browser-based GRSM - is tracked by a unique identity. Stolen devices can be reported and remotely locked. Banned hardware fingerprints are blocked from registration across all accounts. The device identity resolver traces any inbound data packet back to its owning user account.
Key features
- ✓Device Identity Resolver: resolves node_id, callsign, serial number, hardware fingerprint, or ICAO hex to the owning user account
- ✓Stolen Device Reports: report a device as stolen - it is blocked from registering and can trigger firmware lockdown
- ✓Hardware Banning: ban a device fingerprint permanently - it cannot register on any account
- ✓Node ID Banning: ban a specific node_id - blocks the device identity across all platforms
- ✓Browser Device Fingerprinting: SHA-256 hash of stable hardware signals (screen, GPU, CPU, timezone) for GRSM identity
- ✓Compliance Logging: SOC2, GDPR, CCPA, ISO 27001, HIPAA, PCI-DSS event logging for all security-relevant actions
- ✓Immediate Deletion Service: full user data wipe on account deletion (contacts, devices, messages, bots, subscriptions)
- ✓Callsign Trust System: assign trust levels to callsigns - verified, trusted, or untrusted
How device identity resolution works
When data arrives from any source (LoRa mesh uplink, APRS packet, MQTT message, API call), the Device Identity Resolver checks all available identifiers against the database. It searches in priority order: node_id in GRS Mesh linked devices, node_id in Meshtastic linked devices, callsign in callsign claims, browser fingerprint in GRSM devices, serial number or hardware fingerprint in hardware devices, and finally the hardware device identifier junction table.
The resolver also checks stolen device reports and banned fingerprints. If the device is reported stolen, inbound data can be rejected and a firmware lockdown command can be triggered. If the hardware fingerprint is banned, the device is blocked entirely.
Reporting a stolen device
If your device is lost or stolen, report it from Dashboard → Linked Accounts → select the device → Report Stolen. You can choose to: reject all data from the device (so stolen traffic is not attributed to your account), lock the firmware (if supported, the device shows a "This device has been reported stolen" screen), or both.
The stolen device report stays active until you cancel it. If you recover the device, go to the same page and click "Cancel Report" to restore normal operation.
Linked Accounts
Connect your radios, devices, and external identities to Gearsmen
The Linked Accounts page (Dashboard → Devices → Linked Accounts) is where you connect external devices and identities to your Gearsmen account. Link your APRS callsign, GRS Mesh node, Meshtastic device, MeshCore gateway, DMR radio, ADS-B receiver, PSK reporter station, phone number, or email address. Each linked identity appears on the map under your account and can receive messages routed through Gearsmen.
Key features
- ✓9 platform tabs: APRS, GRS Mesh, Meshtastic, MeshCore, DMR, ADS-B, PSK, Phone, Email
- ✓Each tab shows your linked devices/identities and their last-seen status
- ✓GRS Mesh and Meshtastic tabs include a "Live Dashboard" mode toggle for real-time device monitoring
- ✓Deep linking: ?device=grsm opens GRS Mesh tab, ?device=meshtastic opens Meshtastic tab, etc.
- ✓Device management: rename, unlink, report stolen, view activity history
- ✓GRSM devices (browser-based) appear alongside physical hardware devices
- ✓Security: device linking is authenticated - only the account owner can link or unlink devices. Stolen device reports trigger immediate blocking across all networks. All linking/unlinking events are compliance-logged
- ✓Privacy: linked device identifiers (callsigns, node IDs, serial numbers) are stored in encrypted PostgreSQL. Account deletion removes all linked identities per GDPR Article 17 and CCPA §1798.105
GX Identity
Your GX phone numbers and GX email - native Gearsmen identity
GX Identity is your native Gearsmen identity: GX phone numbers for SMS routing and GX email addresses (handle@gx.gearsmen.app) for email. GX numbers are allocated from region-based area codes and are separate from your real phone number. GX email is a native messaging alias that lives entirely within Gearsmen.
Key features
- ✓GX Phone Numbers: allocate a number from any available US area code (e.g. 404 for Atlanta, 212 for New York)
- ✓Claim via SMS: verify ownership of a real phone number by receiving a one-time code via inbound SMS
- ✓Area code browser: see allocation capacity per region (e.g. "404 - 523/1000 allocated")
- ✓Number status: active (green), provisional (blue, pending verification), cooldown (orange, recently retired), retired (gray)
- ✓Retire a number: remove from active use - enters a cooldown period before becoming available again
- ✓GX Email: create a handle@gx.gearsmen.app alias - one-click copy to clipboard
- ✓Multiple aliases: create several GX email addresses and mark one as primary
- ✓Separation from Linked Accounts: GX identity (internal to Gearsmen) lives here; external accounts (Gmail, real phone, callsigns) live in Linked Accounts
- ✓Privacy: GX numbers and email addresses are internal identifiers - they are not shared with third parties. Upon account deletion, all GX identities are permanently deactivated per GDPR/CCPA
- ✓SMS verification: phone claiming uses one-time verification codes delivered via SMS. Verification codes expire after 10 minutes and are single-use
How GX phone numbers work
GX phone numbers are virtual numbers allocated within Gearsmen. They are not real carrier phone numbers - they are identifiers used for SMS routing within the GRS network. When someone sends an SMS to a GX number, it is routed to your Gearsmen account.
To allocate a new number: Dashboard sidebar → Devices → My GX Identity → select an area code → click Allocate. The number is provisioned immediately. To verify it, you can optionally claim a real phone number by entering it and receiving a one-time SMS verification code.
Each user can have multiple GX numbers. You can retire numbers you no longer need - they enter a cooldown period before becoming available to other users.
How GX email works
GX email gives you an @gx.gearsmen.app address. To create one: go to My GX Identity → GX Email section → type your desired handle → click Create. The address is created instantly.
GX email addresses are used for internal Gearsmen messaging and for receiving messages routed through the GRS gateway. They are not standard SMTP email addresses - they exist within the Gearsmen ecosystem.
You can create multiple GX email aliases and mark one as primary. Copy any alias to your clipboard with one tap.
GRS Call
Voice dialing over mesh - Apple Phone-style interface
GRS Call lets you place voice calls over the GRS Mesh network. The interface mirrors the Apple Phone app with five tabs: Favorites, Recents, Contacts, Keypad, and Blocked. Record a voice message, select a destination device, and send it over LoRa - the message is delivered via store-and-forward when a bridge sees the target device.
Key features
- ✓Favorites tab: grid of starred contacts with gradient initials, one-tap to call
- ✓Recents tab: call history with directional arrows (outgoing blue, incoming green, missed red), call duration, device indicator
- ✓Contacts tab: full contact list with search, initials, callsign/node ID
- ✓Keypad tab: standard 4x3 phone pad with #/*, large green call button, search dropdown as you type 2+ characters
- ✓Blocked tab: manage blocked callsigns and node IDs
- ✓Device picker: when you have multiple linked devices, choose which device the call originates from
- ✓Voice recording: inline mic recorder with duration display - record your message, then send
- ✓Estimated delivery time: shown before sending, based on mesh topology and bridge availability
- ✓Deep link support: open with ?to=CALLSIGN to prefill the dialer
- ✓Privacy: voice messages are transmitted over the mesh network and delivered to the target device. Voice data is not stored on Gearsmen servers after delivery. ISM band regulations apply to all LoRa transmissions
How voice over mesh works
GRS Call is not real-time phone calling - it is voice messaging over LoRa mesh. You record a voice message (like a walkie-talkie), and the audio file is sent to the destination device via the GRS Mesh store-and-forward system.
When you tap the green call button, the app opens an inline voice recorder. Tap the mic to record your message. When done, you see the estimated delivery time based on which bridge nodes are nearby. Tap Send to queue the message.
The audio is compressed and sent to the GRS Mesh outbox. When a bridge node is in LoRa range of the target device, the voice message is delivered. The recipient hears it on their device speaker.
For real-time voice, use Voice Rooms (WebRTC) which provide internet-based group audio. GRS Call is designed for off-grid scenarios where internet is not available.
RF Scanner
Passive radio frequency scanning from your browser or device
The RF Scanner lets you passively scan for wireless signals (BLE, WiFi, cellular) using your browser's Web Bluetooth API or a connected GRS Mesh device. Visualize signal strength over time, save scan sessions, and export data for analysis. This is receive-only passive scanning - no signals are transmitted.
Key features
- ✓Live tab: real-time signal list with RSSI strength bars, frequency, signal name, modulation type
- ✓Sessions tab: saved scan sessions with duration, signal count, timestamp
- ✓Detail tab: deep dive into a selected signal - modulation, bandwidth, SNR estimates
- ✓Analysis tab: charts and heatmaps of signal strength over time
- ✓Browser BLE scanning: works standalone via Web Bluetooth API (no external hardware needed)
- ✓GRSM device integration: adds WiFi and cellular scan capability when a GRS Mesh device is connected
- ✓Filter by type: WiFi, BLE, cellular, or all signals
- ✓Export data: download scan results as CSV (WiGLE-compatible format) or JSON
- ✓Regulatory: RF scanning is receive-only (passive monitoring) - no signals are transmitted. Compliant with FCC Part 15 for radio receivers. Scanning does not intercept encrypted communications content
- ✓Privacy: scan data is stored only in your account. Sessions are not shared with third parties. Delete sessions at any time from the dashboard
Beacon Transmitter
Automated APRS position beaconing from your browser
The Beacon feature turns your browser into an APRS beacon transmitter. It uses your device's GPS to determine your position and broadcasts it via APRS-IS (internet) and/or a connected TNC (radio). SmartBeacon automatically adjusts the transmission interval based on your speed and heading changes.
Key features
- ✓Dual-path beaconing: APRS-IS (internet) and/or TNC (radio) - checkboxes to select
- ✓SmartBeacon algorithm: fast moving = frequent beacons, stationary = sparse beacons, turning = immediate beacon
- ✓Symbol picker: dropdown with APRS symbol options (car, plane, house, etc.) with icon previews
- ✓Custom comment: text attached to each beacon (e.g. "Gearsmen APRS", "SAR Team 3")
- ✓Digipeater path: configurable (e.g. WIDE1-1,WIDE2-1) for radio propagation
- ✓Altitude transmission: optional checkbox to include elevation data
- ✓Interval controls: min interval (10-60s), max interval (60-3600s), with SmartBeacon toggle
- ✓Live GPS readout: latitude/longitude in DMS format, altitude, speed, heading, fix accuracy
- ✓TNC connection: USB serial or Bluetooth radio pairing
- ✓Ambiguity slider: 0-4 levels to blur your coordinates for privacy (0 = exact, 4 = 10km precision loss)
- ✓Beacon status: last beacon time, next scheduled beacon, total transmission count
- ✓Regulatory: APRS beaconing over radio requires a valid amateur radio license (FCC Part 97 for US operators). APRS-IS (internet) beaconing does not require a license but uses your linked callsign for identification
- ✓Privacy: the ambiguity slider lets you intentionally degrade your position accuracy for privacy (up to 10km precision loss). Position data transmitted via APRS-IS is publicly visible on the open APRS network
How SmartBeacon works
SmartBeacon dynamically adjusts your beacon interval based on movement. When you are moving fast (above 60 mph), beacons are sent at the minimum interval (e.g. every 10 seconds). When you are stationary, beacons are sent at the maximum interval (e.g. every 5 minutes).
If you make a significant heading change (more than 28 degrees) while moving, an immediate beacon is triggered - so your track on the map shows the turn accurately.
SmartBeacon saves radio bandwidth and battery while keeping your position accurate on the map.
Device Manager
ThermoShield, DataGate, Connect Device, LastPin, and Hotspot
The Device Manager is a unified hub for configuring connected GRS Mesh and Meshtastic devices. It provides ThermoShield (temperature safety), DataGate (network firewall), device connection, LastPin (last known position), and Hotspot (Wi-Fi tethering) - all in one place.
Key features
- ✓All devices list: linked GRSM/Meshtastic devices with online/offline status, battery %, last seen time
- ✓ThermoShield: configurable temperature thresholds - warning, CPU throttle, and emergency shutdown temperatures (in Celsius)
- ✓Voltage floor: minimum operating voltage (mV) before forced shutdown
- ✓DataGate: network firewall with presets - Open Relay (full relay), Field Ops (normal + cloud sync), Local Mesh Only (air-gapped)
- ✓DataGate hop whitelist/blacklist: control which node IDs can relay through your device
- ✓DataGate receive mode: accept from any node, or whitelist-only
- ✓DataGate gate log: table of blocked/allowed packets with direction, type, and origin node ID
- ✓Connect Device: QR code scanner or manual node ID entry for pairing new devices
- ✓LastPin: shows last GPS position, age of last ping, and map button to view on APRS map
- ✓Hotspot: Wi-Fi tethering configuration - SSID, password, max clients, band, idle timeout, data caps
- ✓Security: DataGate provides network-level access control - audit every packet your device relays. ThermoShield events are logged for diagnostics. Hotspot passwords are stored only on the device firmware
- ✓Device safety: ThermoShield emergency shutdown protects hardware from damage. All threshold events are logged with raw sensor values for field diagnostics and post-incident review
ThermoShield - temperature safety
ThermoShield monitors your device's internal temperature sensor and takes automatic action to prevent overheating. You configure three thresholds: Warning (displays an alert), Throttle (reduces CPU clock speed), and Shutdown (emergency power-off).
Every threshold trigger is logged with timestamp, raw temperature value, and the action taken. You can view the event history as a graph showing temperature over time with throttle/shutdown events marked.
ThermoShield is especially important for solar-powered field deployments where devices may be exposed to direct sunlight.
DataGate - mesh network firewall
DataGate controls what traffic your device accepts and relays. Three presets are available: Open Relay (relays all mesh traffic - good for coverage nodes), Field Ops (normal relay + cloud sync - default for most users), and Local Mesh Only (completely air-gapped, no internet uplink).
For advanced control, you can add specific node IDs to a whitelist (only relay from these) or blacklist (never relay from these). The gate log shows every packet your device has blocked or allowed, so you can audit mesh traffic.
DataGate is useful for sensitive deployments where you want to control exactly which devices can use your node as a relay.
GRS Hotspot - Wi-Fi tethering via mesh
If your GRS Mesh device has WiFi capability, you can enable it as a Wi-Fi hotspot for nearby devices (phones, laptops). The hotspot bridges WiFi clients to the mesh network, giving them access to GRS Mesh messaging even without a LoRa radio.
Configure the SSID (network name), password, maximum clients, band (2.4/5 GHz), idle timeout (auto-shutdown after inactivity), and data caps (per-session and daily limits).
View connected clients in real time: MAC address, IP, hostname, data usage. You can kick individual clients. Session history shows past usage with duration and data transferred.
GRS Vault
Encrypted file storage for firmware, configs, keys, and documents
GRS Vault provides encrypted cloud storage for sensitive files. Upload firmware binaries, configuration files, encryption keys, or any document - all files are encrypted at rest with AES-256-GCM. Files are organized by type with filter tabs and can be downloaded, decrypted, and managed from the dashboard.
Key features
- ✓File types: Firmware (blue), Configs (cyan), Keys (amber), Files (black) - each with distinct icon
- ✓Automatic encryption: files are encrypted server-side with AES-256-GCM upon upload
- ✓Filter tabs: All, Firmware, Configs, Keys, Files - quick filtering by type
- ✓File details: name, size, encryption status (lock icon), signature status (checkmark), upload date
- ✓Upload: click button → select file → automatically encrypted and stored
- ✓Download: decrypts and saves to your local device
- ✓Delete: permanently remove from vault
- ✓Search: filter entries by filename
- ✓Security: AES-256-GCM encryption at rest - industry standard used by government and financial institutions. Encryption keys are managed server-side and never exposed to the client
- ✓Compliance: files are retained while your account is active. Account deletion permanently removes all vault data per GDPR Article 17 and CCPA §1798.105
NodeDrop
Share contacts, files, and profiles with nearby devices
NodeDrop lets you share data with nearby GRS Mesh devices - similar to AirDrop for mesh radios. Share contact cards, files, profile information, or network invite codes with devices in LoRa range. Transfers happen over BLE (fast, short range) or LoRa (longer range, slower).
Key features
- ✓Send tab: choose what to share - contact card, file, profile, or network invite
- ✓Inbox tab: incoming drops with sender info, type, and accept/decline buttons
- ✓History tab: past drops (sent and received) with timestamps
- ✓Info tab: 3-step explanation of how NodeDrop works
- ✓Status badges: Pending (orange), Accepted (green), Declined (red), Expired (gray)
- ✓Automatic discovery: passive BLE/LoRa beacon detection for nearby devices
- ✓Transfer methods: BLE (fast, ~1-5 min for contacts) or LoRa (long range, ~15-30 min for files)
- ✓Drops expire after 24 hours if not accepted
- ✓Privacy: NodeDrop transfers are peer-to-peer between devices. File content is not stored on Gearsmen servers. Both sender and receiver must explicitly consent (accept/decline) before data is transferred
News Center
Aggregated news from Reddit, YouTube, GitHub, and more
The News Center aggregates content from multiple sources into an Apple News-inspired layout. Browse stories from amateur radio subreddits, YouTube channels, GitHub releases, and news feeds - all in one scrollable grid.
Key features
- ✓Apple News-style layout: hero cards (large image + title) and smaller story tiles in a responsive grid
- ✓Source filters: Reddit, YouTube, GitHub, Instagram, News - tap to filter by source
- ✓Source icons: Reddit (orange), YouTube (red play button), GitHub (octocat), Instagram (gradient)
- ✓Story cards: thumbnail, source logo, title, summary, publication date
- ✓Open story: tap to open the original URL in a new tab
- ✓Auto-pagination: more stories load as you scroll to the bottom
- ✓Privacy: the News Center aggregates publicly available content. No personal data is shared with content sources. Gearsmen does not track which stories you read
Developer API
Build integrations with the Gearsmen API
The Developer API lets you build external integrations with Gearsmen. Create API keys, browse the endpoint catalog, and see live data availability. API keys authenticate your requests - all calls require a Bearer token in the Authorization header.
Key features
- ✓API key management: create named keys, view last-used date, revoke keys
- ✓One-time key display: the full key is shown once upon creation - copy it immediately (no retrieval)
- ✓Endpoint catalog: ~13 documented endpoints (voice contacts, radio activity, status beacons, groups, voicemail, APRS positions, TTS, DTMF, group broadcast, etc.)
- ✓Data availability indicators: Growing (blue), Active (green), Low/no data yet (amber) - shows live counts
- ✓Authentication: Bearer token in Authorization header, or key= in request body
- ✓Rate limits: per-key limits enforced - excessive usage may result in key revocation
- ✓Security: API keys are hashed server-side after initial display - the full key cannot be retrieved after creation. Keys are scoped to your account and cannot access other users' data
- ✓Compliance: API usage is logged for audit purposes. Keys used in violation of the Terms of Service may be revoked without notice. Developers are responsible for complying with applicable law in their integrations
GRS App Store
Browse, install, and develop applications for GRS firmware
The GRS App Store is an iOS-style app marketplace for GRS Mesh firmware devices. Browse and install apps, or develop and submit your own through the Developer Portal. Apps go through an automated review process before being published.
Key features
- ✓Browse apps: card grid with app name, icon, ratings, review count, install count
- ✓Install: one-tap install to your linked GRS Mesh device
- ✓Developer Portal: register as a developer, create apps, submit for review
- ✓Submission workflow: Draft → Pending Review → In Review → Approved → Live (or Changes Requested / Rejected)
- ✓Automated checks: syntax validation, capability scans, security review
- ✓Version history: see all submitted versions with status badges and rejection reasons
- ✓Publish/unpublish: self-service toggle to make your app visible or hidden
- ✓Bundle ID: unique identifier for each app (reverse-domain style)
- ✓Security: all submissions undergo automated security review (syntax validation, capability scans). Malicious code results in rejection and potential account suspension per Terms of Service §9
- ✓Developer responsibility: submitted apps must include accurate metadata, privacy policies, and support contact information. Apps must not contain malware, hidden functionality, or code that violates applicable law
Terminal
Command-line interface for power users
The Terminal is a command-line emulator built into the dashboard. Type commands to check system status, navigate to dashboard sections, view your identity, and perform quick actions - all without touching the mouse.
Key features
- ✓CLI-style interface: dark background, monospace font, green text (xterm aesthetic)
- ✓Boot animation: ASCII art welcome banner with version and uptime
- ✓Auto-complete: suggestions dropdown as you type, Tab key to complete
- ✓Command history: arrow keys cycle through previous commands
- ✓Commands: help, clear, status, version, map, mesh, nodes, aprs, account, prefs, navigate, api, whoami, date, echo, firmware, device, logs, network, settings, profile, notifications, beacon, sms, contacts, and more
- ✓Navigation: type "navigate map" or "nav mesh" to jump to any dashboard section
- ✓Keyboard shortcuts: Ctrl+C (clear input), Ctrl+L (clear screen), exit/quit (leave terminal)
- ✓Security: terminal commands run within your authenticated session scope. No root/system-level access - commands are limited to dashboard operations and your account data. All terminal actions are subject to the same permission checks as the GUI
Telemetry & Smart Alerts
Threshold rules for temperature, battery, and sensor data
Telemetry & Alerts lets you set threshold rules on sensor data from your devices. When a value crosses your threshold (e.g. temperature above 45°C, battery below 20%), the system triggers an action: notification, SMS alert, email, or APRS reply. Works with APRS telemetry, Meshtastic environmental sensors, and GRS Mesh device sensors.
Key features
- ✓Rule builder: dropdown menus for sensor → condition → value → action
- ✓Sensor types: temperature (°C), voltage (mV), battery (%), altitude (m), distance from home (m), motion detection
- ✓Conditions: greater than, less than, equals, not equals, in range
- ✓Actions: dashboard alert (notification), SMS to phone, email, APRS reply to callsign, throttle CPU, shutdown device
- ✓Enable/disable per rule: toggle individual rules on and off
- ✓Rule history log: every trigger with timestamp, raw sensor value, and action taken
- ✓Visualization: graph of sensor values over time with threshold events marked
- ✓Multi-source: unified rule engine for APRS telemetry packets, Meshtastic environment data, and GRS Mesh device sensors
- ✓Security: telemetry data is scoped to your account. Alert rules execute server-side - no sensitive data is exposed to the client. SMS alerts from telemetry rules comply with TCPA opt-in requirements
Weather Dashboard
Apple Weather-style forecast with live device sensors
A full weather dashboard with current conditions, hourly and 7-day forecasts, detail cards for wind, humidity, pressure, UV, visibility, and sunrise/sunset. If you have GRS Mesh devices with sensors linked, their live temperature, humidity, pressure, and battery readings overlay on the dashboard alongside forecast data.
Key features
- ✓Current conditions hero card: animated weather icon, temperature, feels-like, humidity, cloud cover, wind speed and direction
- ✓Hourly forecast: scrollable 48-hour timeline with temps, icons, and precipitation probability
- ✓7-day forecast: daily cards with high/low temps, conditions, and rain chance
- ✓Detail cards: Wind compass with gust/direction, humidity gauge, barometric pressure with trend arrow, UV index arc, visibility distance, sunrise/sunset times
- ✓Device sensor overlay: live data from linked GRS Mesh nodes (temperature, humidity, pressure, battery %) shown alongside weather API data
- ✓Military/operations section: wind rose diagram and mission weather brief for field teams
- ✓Weather-based gradient backgrounds: card colors shift based on conditions and day/night
- ✓Mini sparkline charts for temperature trends and precipitation bar charts
- ✓Data source: Open-Meteo API (free, no key required) via /api/gearsmen/weather
- ✓Privacy: weather requests use your approximate location (city-level) - exact GPS coordinates are not shared with weather API providers. Device sensor data from linked GRS Mesh nodes is visible only to the device owner
Contacts
Unified contact book for all mesh and radio networks
Apple Contacts-style unified address book for managing contacts across APRS, Meshtastic, MeshCore, GRS Mesh, DMR, and other networks. Store phone numbers, emails, callsigns, node IDs, frequencies, and custom fields. Contacts sync to the cloud and work offline with service worker queue.
Key features
- ✓Alphabetically grouped contact list with search and lazy loading
- ✓Rich contact detail card: avatar, banner, name, callsign, multiple phones/emails/URLs/addresses
- ✓My Card: your own profile with all mesh identifiers, license class, grid square, TAK UID
- ✓Multi-value fields: multiple phone numbers, emails, callsigns, node IDs, frequencies, social profiles, satellite device IMEIs
- ✓Trusted Allies: integration with the alliance system - accepted allies appear in your contacts
- ✓Voice contacts: suggested contacts populated from DMR activity history
- ✓Contact sources: color-coded badges showing origin (Manual, Device, AirDrop, Mesh, System)
- ✓Add, edit, delete, favorite, mark emergency contacts
- ✓Avatar upload with image handling
- ✓CSV import for bulk contact entry
- ✓Offline support: contacts cached locally, pending changes queued via service worker and synced when online
- ✓Default "Gearsmen Support" contact auto-seeded on first load
- ✓Data protection: contact data is stored in encrypted PostgreSQL and accessible only by your account. You may export or delete all contact data at any time per GDPR Article 20 (data portability) and Article 17 (right to erasure)
- ✓Privacy: contacts are never shared with third parties. Offline cached data is stored in your browser only and cleared when you clear site data
Message Viewer
Unified iMessage-style chat for all networks
A unified messaging inbox that combines conversations from every network: APRS, Meshtastic, MeshCore, GRS Mesh, Satellite, SMS, TAK, Voicemail, Support, and Organization channels. Messages are displayed as chat bubbles in a conversation view with network-specific gradient badges.
Key features
- ✓Conversation list (left panel): network badge with gradient color, last message preview, unread count, timestamp
- ✓Chat view (right panel): incoming/outgoing bubbles grouped by conversation pair
- ✓Network filter tabs: All, APRS, Mesh, MeshCore, GRS Mesh, Satellite, SMS, TAK, Voicemail, Support, Org - each with distinct icon
- ✓Message types: text messages, call events (in-call/missed/answered), group broadcasts (with group name and member count), org channel messages, voicemail, media offers (voice/photo/file)
- ✓Compose: rich message editor with To, CC, body, and subject (for email-style messages)
- ✓Actions: reply, forward, mark read/unread, delete, copy callsign/message to clipboard
- ✓Keyboard shortcuts: j/arrow-down = next message, k/arrow-up = previous, etc.
- ✓Deep link support: ?to=CALLSIGN opens compose to that recipient
- ✓Lazy loading: 100 messages initial, loads more on scroll (up to 1000)
- ✓Smart mesh delivery time estimates for store-and-forward messages
- ✓Dominant network detection: conversations show which network is most active
- ✓Data retention: messages are retained for up to 90 days for delivery and debugging, then purged per Privacy Policy §5. APRS messages transmitted via APRS-IS are publicly visible on the open APRS network
- ✓Security: all message data is encrypted in transit (TLS). Message content is accessible only by the sender and recipient accounts. Account deletion removes all message history per GDPR/CCPA
Notifications & Alerts
Notification center with time-grouped alerts and deep linking
A centralized notification center that aggregates alerts from every part of the platform: messages, calls, warnings, device events, security events, billing, and system notices. Notifications are grouped by time (Today, Yesterday, This Week, Earlier) and deep-link to the relevant dashboard section when clicked.
Key features
- ✓Time-grouped notifications: Today, Yesterday, This Week, Earlier
- ✓Notification types: Message, Call, Warning, Error, Success, Device, Security, Billing, System
- ✓Platform-specific notifications: APRS, Meshtastic, DMR, GRS Mesh, PSK, Winlink, D-Star, Email
- ✓Inbox filters: All, Unread, Read
- ✓Mark as read/unread, delete individual notifications, "Mark all as read"
- ✓Deep linking: click a notification to navigate to its source (messages, grs-call, my-ids, account settings, billing)
- ✓Preferences tab: toggle notification types on/off per category
- ✓Stat badges: total count and unread count displayed in header
- ✓Toast messages for actions (success/error feedback)
- ✓Security: security-type notifications (login from new device, permission changes) are generated by the compliance logging system and cannot be suppressed. All notification delivery events are audit-logged
Node Explorer
Search stations, track movement, inspect mesh routing and packet paths
A unified exploration tool for discovering and inspecting stations across all networks. Five merged tabs: search/filter stations by callsign and network, view moving stations with speed and heading, visualize mesh routing topology with hop counts, inspect packet relay chains, and look up callsigns via QRZ.
Key features
- ✓Stations tab: search and filter by callsign, station type, or network
- ✓Moving tab: active mobile stations with real-time speed, heading, and course data
- ✓Mesh Routing tab: mesh network topology visualization with hop counts, RSSI, and SNR per segment
- ✓Packet Paths tab: message routing history showing full relay chains with deep packet inspection
- ✓Callsign Lookup tab: QRZ-style callsign database search with license details
- ✓Deep link support: URL params ?nodeId=, ?pathId=, ?packet=, ?msgId= auto-select the right tab and item
- ✓Full-height scrollable content per tab
- ✓Data sources: station data comes from public networks (APRS-IS, Meshtastic MQTT, community APIs). Position data displayed is already publicly available. QRZ callsign lookup uses publicly accessible FCC license records
TAK Integration
Team Awareness Kit tactical coordination
Integration with TAK (Team Awareness Kit) for professional tactical coordination. TAK is used by military, first responders, and field teams for shared situational awareness. Gearsmen displays TAK cursor-on-target (CoT) data on the map and supports TAK network bridge settings.
Key features
- ✓TAK data layer on the live map: cursor-on-target positions, team names, and tactical markers
- ✓TAK network bridge settings: configure TAK server connection and CoT forwarding
- ✓TAK UIDs stored in contacts for cross-platform identification
- ✓TAK messages appear in the unified Message Viewer
- ✓Security: TAK server connections are authenticated. CoT data is transmitted over TLS. TAK is used by US DoD and first responders - Gearsmen integration follows standard TAK interoperability protocols
Winlink & GX Email
Dual email inbox: native GX email and Winlink radio email bridge
A full email client with two inboxes: GX Email (native Gearsmen email at handle@gx.gearsmen.app) and Winlink (amateur radio email system). Supports compose, reply, forward, drafts, trash, contacts, Winlink form templates, and system logs. Your GX email alias is auto-provisioned on first visit.
Key features
- ✓Dual inbox: GX Inbox (native email) and Winlink (ham radio email)
- ✓Tabs: GX Inbox, Winlink, Sent, Drafts, Trash, Contacts, Forms, Logs
- ✓Compose pane: To, CC, Subject, Body with send and save-as-draft
- ✓Reply, forward, delete, mark read actions on each message
- ✓GX Email: auto-provisioned handle@gx.gearsmen.app alias, copy address, manage settings
- ✓Winlink: traditional Winlink email via gateway, supports standard Winlink addressing
- ✓Contacts tab: email address book management (add, edit, delete)
- ✓Forms tab: Winlink form templates library - apply templates to compose
- ✓Logs tab: system event log with CSV export
- ✓Keyboard shortcuts: j/k for navigation, n for new message
- ✓Search across folders, folder unread counts, 30-second auto-refresh
- ✓Security: all email connections encrypted with TLS. GX email is internal to Gearsmen - not routed through third-party SMTP providers. Winlink email complies with FCC Part 97 for amateur radio email transmission
- ✓Data retention: email messages are retained while your account is active. Account deletion removes all email data per GDPR Article 17 and CCPA §1798.105
Advertising Marketplace
Create and manage in-app ad campaigns
A self-serve advertising dashboard for creating campaigns that run as placements within the Gearsmen app. Create a campaign, upload creative assets, set a budget and date range, submit for review, and track impressions, clicks, and CTR with analytics.
Key features
- ✓Campaign creation wizard: select placement (sidebar, header, various sizes), upload creative, set date range and budget, optional priority scheduling
- ✓Campaign management: pause, resume, take down, delete campaigns
- ✓Analytics: impressions, clicks, CTR, daily chart, trends
- ✓Spend summary cards: total spent, active campaigns, total impressions, total clicks
- ✓Status tracking: active, pending review, paused, rejected (with reason), archived
- ✓Queue system: limits concurrent campaigns per placement, shows estimated wait time
- ✓Priority scheduling: pay a surcharge for priority queue placement
- ✓Payment: Stripe integration for campaign payment, post-payment redirect handling
- ✓How It Works onboarding: 4-step guide shown for new advertisers
- ✓Content review: all ad campaigns are reviewed before publication. Campaigns containing prohibited content (deceptive, illegal, or violating Terms of Service) are rejected
- ✓Payment security: payments processed by Stripe (PCI DSS Level 1 compliant). Gearsmen does not store credit card numbers - all payment data is handled by Stripe under their privacy policy
Home & Live Map
Full-bleed real-time map with 19 data layers and station inspector
The main dashboard landing page. A full-bleed live map displaying all 19+ data layers (APRS, Meshtastic, MeshCore, GRS Mesh, ADS-B, AIS, DMR, PSK, TAK, Trains, Disasters, Cables, GPS Jamming, Public Safety, POTA, SOTA, SondeHub, Repeaters, and more). Click any station to open an inspector panel with details. Supports 3D Buildings mode, Globe mode, 9 visual themes, and 7 weather overlays.
Key features
- ✓19+ real-time data layers toggleable from the controls panel
- ✓7 weather overlays: animated radar, satellite IR, NWS severe alerts, real-time lightning, wind, temperature, pressure
- ✓3D Buildings mode: Google Maps WebGL vector rendering with tilt and rotation controls
- ✓Globe mode: Three.js Earth with all layers, signal arcs, submarine cables, day/night terminator
- ✓9 visual themes: Light, Dark, Midnight, Satellite, Terrain, Night Vision, Night Vision Red, Neon, Desert Tan
- ✓Station inspector panel: click any marker to see callsign, position (DMS), last heard, RSSI/SNR, battery, device type, frequency, path
- ✓Inspector actions: message station, view on map, share location
- ✓Map mode presets: save and recall layer combinations (APRS-focused, Mesh-focused, Aviation, etc.)
- ✓Dot mode: below zoom 13, all markers render as tiny dots for performance with 72k+ features
- ✓Shareable map links: URL params encode center, zoom, and selected station
- ✓Data sources: all map data comes from public or community sources. APRS-IS is an open network. ADS-B data is publicly broadcast. No private position data is displayed without the user's opt-in consent
Organization Hub
Create, browse, and manage your organizations
The organization landing page. Browse all your organizations in a grid view with category filters and search. Create new organizations with a step-by-step wizard. Once inside an org, view the Overview (metrics, recent activity, quick links), Structure (org chart hierarchy), and Partnerships (joint operations with other orgs).
Key features
- ✓All-orgs grid: cards showing org name, category badge, member count, creation date, active operations
- ✓Category filters: All, Emergency, Military, Ham Radio, SAR, Community, Government, Other
- ✓Search by organization name
- ✓Create Organization wizard: basic info (name, description, category, logo) → team setup (roles, invites) → settings (visibility, permissions) → complete
- ✓Active org Overview tab: banner with metrics, quick links to all org views, recent activity timeline, member preview, upcoming events
- ✓Structure tab: organizational chart with role hierarchy (Commander → Executive Officer → Team Leaders → Members)
- ✓Partnerships tab: partner organization list, joint operations, invite partners, accept/decline proposals
- ✓Security: organization creation and management require authenticated accounts. All org operations are logged to the audit trail for compliance and accountability
Organization Roster
Member management, invitations, ranks, and training records
Manage your organization's members, send invitations, track training certifications, and handle member transfers. Each member has a rank with insignia, a role, readiness status, and GPS sharing state.
Key features
- ✓Members tab: member list with avatar, name, callsign, rank insignia badge, role, readiness status, GPS/online indicators
- ✓Rank insignia: Commander (★), Executive Officer (◆), Senior NCO (▲), Sergeant/Team Lead (■), Specialist (◇), Operator (●), Trainee/Recruit (○)
- ✓Readiness status: Available (green), On Duty (blue), Standby (orange), Unavailable (red), Deployed (purple)
- ✓Trail visualization: toggle 24-hour position history with fade gradient, timestamps, coordinates
- ✓Invites tab: pending invite list with recipient, inviter, status (pending/accepted/expired), resend and revoke buttons
- ✓Training tab: certifications tracker with completion status, expiry dates, level progression, attached records
- ✓Transfers tab: member transfer history between organizations with approval status
- ✓Actions: edit member role/rank, remove member, invite new members via email, request position sharing
- ✓Privacy: GPS sharing is opt-in - members control whether their position is visible to the organization. Position history (trails) is retained for up to 30 days per Privacy Policy §5
- ✓Data rights: individual members may request removal of their personal data from an organization at any time per GDPR Article 17. All roster changes are logged to the immutable audit trail
Organization Map
Live member tracking, device fleet, zones, and routes
A map view scoped to your organization. Track live member positions with 24-hour trails, monitor your device fleet status, create operational zones (circles or polygons), and plan patrol/evacuation/supply routes with waypoints.
Key features
- ✓Members tab: live member positions on map, click for 24h trail polyline with timestamps, trails ON/OFF toggle
- ✓Fleet tab: device status list with device ID, status badge (Active/Lost/Compromised/Returned/Retired), battery, GPS, assigned member, hardware model
- ✓Zones tab: create circle zones (center + radius, "use my location" button) or polygon zones (add vertices), zone types: Operational (blue), Restricted (red), Staging (orange), Rally (green), Monitoring (purple), Custom (gray)
- ✓Routes tab: create patrol/supply/evacuation/comms-check routes with waypoints (lat/lng pairs), route type badges
- ✓"Open Full Map" button to draw zones and routes on the main map
- ✓Permission-gated: view_fleet permission required for fleet tab, manage_zones for zone/route editing
- ✓Privacy: member location tracking is opt-in. Zone and route data is scoped to the organization and not shared externally. Fleet device data is accessible only to members with view_fleet permission
Operations Center
Alerts, roll call, active operations, reports, and resource management
The operations command center for your organization. Manage real-time alerts by severity, run roll calls for attendance, track active and joint operations, generate standardized reports (SITREP, AAR, Incident, SPOT), schedule tasks, and manage resource requests.
Key features
- ✓Alerts tab: alert list with severity badges (Emergency/Critical/Warning/Info), status (Active/Resolved/Acknowledged), broadcast alerts to org
- ✓Roll Call tab: quick member attendance check-in with status indicators, bulk check-in, attendance summary (X/Y checked in)
- ✓Active Ops tab: live operations with status (Active/Planning/Completed/Suspended), lead member, team count, pause/resume/complete controls
- ✓Joint Ops tab: multi-organization operations, partner orgs involved, coordination status, cross-org communication
- ✓Reports tab: 4 templates - SITREP (situation report), AAR (after action review), Incident Report, SPOT (specific point observation) - each color-coded with typed fields and photo attachments
- ✓Scheduled Tasks tab: time-based notifications, daily briefings, recurrence options
- ✓Resources tab: supply/equipment/personnel request tracking with priority levels and status (pending/approved/fulfilled/denied)
- ✓Accountability: all operational actions (alert dispatch, roll call, status changes, report submissions) are logged to the org audit trail with actor, timestamp, and action details
Organization Calendar
Events, shift scheduling, RSVP, and iCal export
Full calendar for scheduling organization events, training, operations, and shift assignments. Five view modes: Month, Week, Day, Agenda, and Shifts. Members can RSVP to events. Admins can assign shifts in a member-by-day grid. Export to Apple Calendar, Google Calendar, or Outlook via iCal.
Key features
- ✓Month view: calendar grid with color-coded events (Training: blue, Operation: red, Exercise: orange, Social: green, Meeting: purple, Maintenance: gray), "+N more" overflow
- ✓Week view: 7-column × 24-hour grid with events in time slots, click empty slot to create
- ✓Day view: single-day 24-hour grid with RSVP buttons (Yes/Maybe/No) on each event
- ✓Agenda view: chronological event list with type badges, description, location, RSVP buttons and count summary
- ✓Shifts view: member × day table, click "+" to assign shifts, shift type badges, delete on hover
- ✓Event creation: title, description, type (7 options), start/end time, location, all-day toggle
- ✓RSVP system: Going / Maybe / Not Going per member
- ✓iCal Subscribe: generates calendar feed URL for Apple Calendar / Google Calendar / Outlook
- ✓iCal Export: download all events as .ics file
- ✓Navigation: prev/next, "Today" button
- ✓Data export: iCal feeds and .ics exports contain event data only - no personal member data is included in calendar exports. Calendar data is scoped to the organization
Organization Resources
Asset inventory, document library, config profiles, fleet, vault, and data exports
Manage all organizational resources across six tabs: physical asset inventory, document repository with versioning, device configuration profiles, fleet management with remote control, secure credential vault, and data export with watermarking.
Key features
- ✓Assets tab: inventory of equipment (radios, vehicles, medical supplies), status tracking (Available/Checked Out/Maintenance/Lost/Retired), check out/return workflow, serial numbers, storage locations
- ✓Documents tab: document library with versioning, access control (All Members/Admins Only/Custom), file upload, category (Operations/Training/Personnel/Other), revision history
- ✓Configs tab: device configuration profiles (radio presets, frequency sets), import/export as JSON for backup
- ✓Fleet tab: device list with status, battery, GPS, assignment, remote control (send commands, firmware update, restart, retire)
- ✓Vault tab: encrypted storage for sensitive credentials (API keys, passwords, admin notes), access log showing who accessed what
- ✓Exports tab: export org data (Assets/Documents/Configs/Fleet/All) as JSON or CSV, export history with watermark IDs for compliance, auto-expiry after 7 days
- ✓Security: vault credentials are encrypted at rest. Document access is controlled by permission roles. All resource access is logged to the audit trail
- ✓Compliance: data exports include watermark IDs for tracking and accountability. Exports auto-expire after 7 days. Export permissions are role-gated (export_data permission required)
Organization Settings
Configuration, permissions, integrations, notifications, and danger zone
Full organization configuration across nine tabs: general info, role-based permissions with audit trail, device policies, visibility settings, data retention policies, third-party integrations, notification preferences with sound packs, org documentation, and a danger zone for irreversible actions.
Key features
- ✓General tab: org name, description, category, logo upload, accent color, contact info
- ✓Permissions tab: role editor (Commander/XO/Operator/Trainee + custom), permission grid (role × permission matrix with toggles), user-level overrides, permission audit log
- ✓Devices tab: device approval workflow (auto/manual), max devices per member, firmware update policy
- ✓Visibility tab: public/private org, member list visibility, location sharing default, operations visibility
- ✓Retention tab: data retention policies for audit logs, messages, position history, reports - GDPR purge on request
- ✓Integrations tab: Slack webhook, Discord integration, custom webhook endpoint, API key management
- ✓Notifications tab: sound pack selector (Standard/Tactical/Silent), per-type toggles (Alerts/Events/Reports/Member Actions/System), Do Not Disturb schedule
- ✓Docs tab: organization policies, code of conduct, SOPs with version control
- ✓Danger Zone: encryption key rotation, data purge panel, leave organization, disband organization (all with confirmation)
- ✓Playbook Runner: one-click automated workflows (e.g. "Activate SAR Mode" creates mission + assigns teams + sends alerts)
- ✓Security: permission audit trail is immutable - permission changes cannot be deleted or backdated. Danger zone actions require explicit confirmation and are double-logged
- ✓GDPR compliance: data retention policies support automated purge schedules. Data purge operations are irreversible and compliance-logged. Members can exercise data subject rights (access, rectification, erasure) through the org admin
Audit Logs
Activity timeline, detailed audit log, and data export requests
Track all activity within your organization with three views: a chronological timeline of events, a detailed audit log with action-type filters and change diffs, and a data export request system with watermarking for compliance.
Key features
- ✓Timeline tab: chronological event list with color-coded action dots (member: blue, alert: red, channel: green, permission: orange, device: purple, asset: orange, document: green, settings: gray)
- ✓Audit Log tab: detailed activity log with 8 action-type filters (All/Members/Alerts/Permissions/Devices/Channels/Assets/Settings), actor name, action, target, JSON change diff, timestamp
- ✓Exports tab: request data exports (Roster/Messages/Audit Logs/Assets/Events/Full Data Dump), format selector (JSON/CSV), export history with status (Pending/Approved/Processing/Completed/Denied/Expired)
- ✓Completed exports: download link, file size, watermark ID for tracking, auto-expiry after 7 days
- ✓Permission-gated: export_data permission required for data export requests
- ✓Compliance: audit logs are aligned with SOC 2 Type II, ISO 27001 Annex A.12, and GDPR Article 30 requirements. Logs are immutable - entries cannot be modified or deleted after creation
- ✓Data exports include watermark IDs for chain-of-custody tracking. All audit log access is itself logged (meta-auditing) for complete accountability
SAR Field Command
Search & rescue mission control with segments, teams, clues, and tactical overlays
A purpose-built search and rescue operations center with 11 tabs covering every aspect of SAR mission management: common operating picture, mission creation, search segment assignment, team deployment tracking, GPS trail logging, clue/evidence management, mission timeline, intelligence dossiers, tactical drawings, map overlays, and data export.
Key features
- ✓11 operational tabs: COP, Missions, Segments, Teams, Tracking, Clues, Timeline, Dossiers, Drawings, Overlays, Export
- ✓Mission types: SAR, Training, Patrol, Tactical, Disaster, Custom
- ✓Search tactics: hasty, grid, sweep, contour, attraction, type 1/2/3
- ✓Segment priority 1-5 with color gradients and status color coding
- ✓Team check-in monitoring with overdue alerts
- ✓GPS tracking with breadcrumb trails and geofence boundary alerts
- ✓Evidence/clue logging with GPS, photos, and IPP distance/bearing
- ✓Tactical drawing tools for freehand map annotations
- ✓Georeferenced overlay uploads (aerial imagery, topo maps, floor plans)
- ✓Export to JSON, KMZ, or PDF with watermarking for compliance
- ✓SAR symbol library: military-standard tactical icons for positions, command posts, hazards, checkpoints
- ✓Data governance: all mission data is scoped to the organization. Exports include watermark IDs for chain-of-custody compliance. Georeferenced overlays have access-controlled sharing with time-limited links
- ✓Important: SAR Field Command is a planning and coordination tool. It does not replace emergency services (911/112) or certified SAR management systems required by your jurisdiction. Always follow your agency's incident command system (ICS) protocols
COP (Common Operating Picture)
The COP tab is your mission-at-a-glance dashboard. It shows mission status (Planning/Active/Completed/Suspended), coverage stats (total segments, % completed, in-progress, assigned), team deployment status, weather conditions, incident commander name, and elapsed mission time.
Quick-action buttons let you send briefings, status updates, and resource requests without leaving the COP view.
Missions
Create and manage SAR missions. Each mission has a name, type (SAR/Training/Patrol/Tactical/Disaster/Custom), description, weather conditions, IPP (Initial Planning Point) with "Use my location" button, and incident commander assignment.
Mission status transitions: Planning → Active → Completed or Suspended. The first active mission is auto-selected on load.
Segments
Divide the search area into operational segments with codes (A1, A2, etc.), polygon boundaries, priority (1-5), terrain type, and search tactic (hasty/grid/sweep/contour/attraction/type 1-3).
Segment status: Unassigned → Assigned → In Progress → Completed Negative or Completed Found → Suspended. Status changes are color-coded on the map and auto-timestamp time-in/time-out.
Coverage progress bars show completion percentage per segment.
Teams
Deploy teams with name, member roster, assigned segment, tactic, radio channel, and check-in interval. Team status: Staging → Deployed → Searching → Returning → Resting → Stood Down.
Last check-in indicator changes color (green: recent, yellow: aging, red: overdue). Elapsed time is displayed for deployed teams.
Tracking
Real-time team positions with breadcrumb trails showing position history. Displays altitude, speed, GPS accuracy, distance from IPP, and bearing (cardinal direction).
Geofence alerts if a team leaves their assigned segment boundary.
Clues
Log evidence found during the search. Each clue has a type (Physical/Track-Sign/Witness/Scent K9/Electronic/Other), description, GPS location, finder name and team, distance/bearing from IPP, and assigned segment.
Clues can be marked as verified (higher confidence). Photo attachments supported.
Timeline, Dossiers, Drawings, Overlays, Export
Timeline: chronological mission event log (segment assigned, team deployed, clue found, etc.) with add-note for commander annotations.
Dossiers: knowledge base entries categorized as Subject/Intel/Terrain/Comms/Logistics/AAR/General with classification levels (Unclassified/Internal/Restricted).
Drawings: freehand tactical annotations on the map (pen, eraser, line, polygon, text label) with color picker, undo/redo, save as overlay.
Overlays: upload georeferenced imagery (GeoTIFF, KMZ, aerial photos, floor plans) with opacity, rotation, and z-order controls. Shareable time-limited links with watermark IDs.
Export: download mission data as JSON (full dump), KMZ (Google Earth), or PDF (printable briefing) with optional watermarking.
GRS Mesh Firmware Flasher
Flash GRS Mesh firmware in one click - no command line needed
The GRS Mesh Firmware Flasher installs GRS Mesh firmware onto your ESP32 device directly from the browser using WebSerial. No command-line tools or manual downloads. This page walks you through exactly what you will see and what to do.
Key features
- ✓Works in Chrome and Edge on desktop - Firefox does not support WebSerial
- ✓Auto-detects your board by USB VID/PID; you can override the selection
- ✓Shows latest and previous firmware versions per board
- ✓Verifies checksum after download before writing to device
- ✓Shows "Coming soon" for boards without firmware yet - no broken flows
- ✓After flashing: link your device in GRS Mesh → Link a device to activate cloud features
Before you start
You need: an ESP32-based LoRa device (T-Beam, T-Deck, Heltec V3, or similar), a USB data cable (not a charge-only cable), and Chrome or Edge on a desktop computer.
Firefox does not support WebSerial. If you are on Firefox, switch to Chrome or Edge.
On Windows: you may need to install a USB serial driver (CP210x or CH340) if your device is not detected. The flasher will tell you if no ports are found.
On macOS and Linux: no extra drivers are usually needed.
How to flash - step by step
Step 1 - Open the flasher: Dashboard sidebar → GRS Mesh → Flash Firmware. Or go to the Download page and click "Flash GRS Mesh Firmware."
Step 2 - What you see: the flasher page shows a board selector dropdown at the top and a firmware version dropdown (Latest is pre-selected). Below is a "Connect device" button.
Step 3 - Plug in your device via USB, then click "Connect device." A browser dialog pops up listing available serial ports. Select your device (usually "USB Serial," "CP210x," or "CH340"). Click Connect.
Step 4 - Board detection: the flasher reads the USB VID/PID of your device and pre-selects the matching board. If it guesses wrong, change the board in the dropdown.
Step 5 - Pick a version: Latest is pre-selected. If you need to downgrade or test a specific version, open the version dropdown and pick one.
Step 6 - Click "Flash." The flasher downloads the firmware binary, shows a checksum verification step, then writes the firmware to the device. A progress bar fills as the write proceeds.
Step 7 - When done, you see "Flash complete - device is ready." The device reboots automatically.
Step 8 - Go to Dashboard → GRS Mesh → Link a device and enter your node ID to activate cloud features.
What each status message means
"Connecting…" - the browser is opening the serial port. If this hangs, unplug and replug the device.
"Downloading firmware…" - the flasher is fetching the binary from the Gearsmen server. Requires internet.
"Verifying checksum…" - the flasher is confirming the download was not corrupted. If this fails, it retries once automatically.
"Writing to device…" - firmware is being written. Do not unplug the device during this step.
"Flash complete - device is ready." - success. The device is rebooting.
"No internet connection" - the flasher cannot reach the firmware server. Connect to internet and try again.
"No ports found" - the browser did not see any serial devices. Check the USB cable, try a different port, and make sure the driver is installed.
"Board not supported yet" - firmware for this board is coming soon. Check back for updates.
After flashing
Your device boots and starts broadcasting on LoRa. The node ID is shown on the device screen (if it has one).
Go to Dashboard → GRS Mesh → Link a device. Enter the node ID (format: !a1b2c3d4). Click Link.
Once linked, all GRS Mesh cloud features are free - no subscription required.
To update firmware later: plug the device in again, open the flasher, and click "Flash." If a newer version is available, the version dropdown shows "Latest (update available)."
APRS Interface
Primary command interface via radio
Gearsmen uses APRS as the main interface. Message KQ4YSV from your radio with commands in the message body. The Comms Center web dashboard lets you manage contacts and view activity.
Changelog
Latest updates & improvements
- •GRSM: browser becomes a persistent GRS Mesh device with device fingerprinting, setup wizard, passcode lock, and stolen device detection
- •Device Simulator: accurate power models, display emulation (OLED/LCD/E-ink), Bridge Mode to real mesh, up to 3 simultaneous devices
- •Device Identity Resolver: multi-identifier resolution (node_id, callsign, serial, fingerprint, ICAO) with stolen/banned device gating
- •Organizations: SAR operations view, org zones on map, roster with roles, operations control with SITREP/AAR templates
- •Glassmorphic dashboard layout: all pages use unified blur backdrop, 9 visual themes including immersive Night Vision, Neon, Desert Tan
- •Globe mode: Three.js Earth with all data layers, weather on sphere, signal arcs, submarine cables, day/night terminator
- •3D Buildings mode: Google Maps WebGL vector rendering with tilt/rotation controls
- •4 new map layers: POTA (park activations), SOTA (summit activations), SondeHub (weather balloons), Repeaters (21k HearHam)
- •7 weather overlays: Radar (animated playback), Satellite IR, Severe Alerts (NWS), Lightning (Blitzortung), Wind, Temperature, Pressure
- •GRS Skybridge: Meshtastic/GRS Mesh to Iridium satellite SBD gateway
- •GRS Call: mesh-based voice dialing with Apple Phone-style interface
- •GRS Mesh firmware: device reliability (hardware watchdog, atomic storage, crash forensics, Undead Relay, progressive power shedding)
- •GRS Mesh Firmware Flasher: one-click WebSerial browser flashing with auto board detection
- •Cross-network messaging: GRS Mesh to Meshtastic and MeshCore via Gearsmen cloud
- •Device maps and messaging: firmware map with all data layers, marker API, store-and-forward messaging
- •Private encrypted mesh networks: create or join with a join code
- •MeshCore gateway linking and cross-mesh routing
- •Meshtastic MQTT gateway - two-way messaging from any Meshtastic device, no hardware bridge needed
- •Device linking - link your Meshtastic node ID to your GRS account for identity, analytics, and subscription checks
- •Subscription model - outbound SMS/Email/APRS from Meshtastic requires subscription; info commands and receiving always free
- •APRS via ham radio remains free (FCC Part 97 compliance)
- •System replies documentation - full guide to every GRS response and what to do next
- •Meshtastic troubleshooting section added
- •Terminology standardized: GRS Gateway, SMSSender, Voice Rooms
- •Expanded command set: HELP, CONTACTS, TIME, LAST, ME, BALANCE, CODE LIST
- •GROUP MEMBERS, ALERT (urgent broadcast), AUTO DELETE, AUTO REPEAT (daily)
- •CHECKIN, Emergency & Safety section
- •Field Tools: SUNRISE, SUNSET, MOON, TAF, QUAKE
- •Navigation: DIR <from> TO <to>, DIR <what> NEAR <location>
- •SMS ? (opt-in check), REPLY (reply to last inbound)
- •Feature names consolidated: Groups, Scheduled Messages, AI, Flights, SkyWatch, SignalWire, ScoreLine, and more
- •Weather, Flight, News, Sports commands wired (OpenWeather, AviationStack, NewsAPI, API Football)
- •FCC & regulatory compliance documentation
- •Logo support for feature cards (add images to /images/gearsmen/)
- •SMS relay via APRS gateway
- •Group creation and broadcast messaging
- •Scheduled automations
- •AI query support (when enabled)
- •APRS command reference with radio-style To/Message fields
Troubleshooting
Common issues & solutions
🔧Common Issues
📻APRS & Radio
📡Meshtastic
⎕GRSM & Simulator
🗺️Map & Globe
🏢Organizations
Support
Get help & contact us
Before contacting support
- •Check the APRS command reference and troubleshooting sections above
- •Ensure recipients have opted in (replied START) for SMS
- •Include your callsign and a brief description of the issue