Pick the one that fits where you're starting from.
Get your first radio, flash it, and send your first message.
Getting Started →Put your town on the MeshTexas map with its own region. It takes one observer.
Bring Your Area →Broker details and step-by-step setup for each kind of observer.
Observer Setup ↓The MeshTexas broker accepts connections from any Texas-area MeshCore observer. Auth uses the same JWT model as MeshMapper and Waev — your device signs its own token from its keypair. No credentials or registration required.
mqtt.meshtexas.org443WebSocket Secure (WSS)JWT — auto, from device keypairDevices tagged with a region code that isn't in the list below won't be able to connect. Don't see your area? Let us know and we'll add it.
CRP, ACT, DRT, UVA, and LRD are MeshTexas-only regions; MeshMapper doesn't have them. If your observer feeds both networks, it needs a different code for each broker:
mqtt.iata to MeshMapper's nearest region, then give the MeshTexas slot its own code with set mqttN.iata (see step 8 below).Standard MeshCore firmware from meshcore-dev doesn't publish to MQTT brokers on its own. Observers use one of the three options above.
Select the software your observer is running:
For Heltec V3/V4, T-LoRa, Tracker, and any ESP32-based board running agessaman's MQTT Observer firmware, a community build of MeshCore with MQTT broker support. Standard MeshCore firmware won't work here.
Flash it automatically using the observer.gessaman.com web flasher — pick your board and role (repeater/room server), then flash directly over USB in your browser (Chrome or Edge; uses the Web Serial API). No manual downloads or separate tools needed.
Connect via USB serial at 115200 baud using a terminal (PuTTY, screen, minicom) or the MeshCore serial console — or use the Console button on observer.gessaman.com for a browser-based serial console, no separate terminal app needed.
Open the MeshCore companion app, connect to your device over Bluetooth, then navigate to Remote Management → Command Line — all commands below are entered there, no USB cable needed.
Over USB serial (not available via Bluetooth), run get prv.key and save the 64-character key it returns. If a bad setting ever leaves your device stuck in a reboot loop, you can wipe it and start fresh, then restore your exact identity with set prv.key <key> — instead of losing your MeshMapper/analyzer history to a brand-new key.
set radio 910.525,62.5,7,5
set tx 22
set name YourObserverName
set wifi.ssid YourWiFiNetwork
set wifi.pwd YourWiFiPassword
rebootThe radio line (freq,bw,sf,cr) above is just an example — use the actual settings your local mesh runs, not this value. Ask other operators in your area if you're not sure.
SAT San AntonioCovers: San Antonio, Pearsall, Jourdanton, Pleasanton, FloresvilleAUS AustinHOU HoustonDFW Dallas–Fort WorthELP El PasoABI AbileneAMA AmarilloMFE McAllenCovers: McAllen, Edinburg, HarlingenSJT San AngeloTXK TexarkanaTYR Tyler–LongviewCRP Corpus ChristiACT WacoLBB LubbockMAF Midland–OdessaDRT Del RioCovers: Del Rio, BrackettvilleUVA Uvalde / Winter GardenCovers: Uvalde, Sabinal, Eagle Pass, La Pryor, Crystal City, Carrizo SpringsLRD LaredoCovers: Laredo, Cotullaset mqtt.iata AUSget mqtt.status — it lists each slot already in use (e.g. 1: meshmapper (ok)); pick any slot number not shown.mqtt1 with your chosen slot:set mqtt1.preset meshtexas
rebootmeshtexas preset?If set mqtt1.preset meshtexas errors, or get mqtt1.preset doesn't show meshtexas after rebooting, your build predates this preset (added July 2026). Reflash from the latest observer-mqtt-latest release, or configure it manually:
set mqtt1.preset custom
set mqtt1.server mqtt.meshtexas.org
set mqtt1.port 443
set mqtt1.audience mqtt.meshtexas.org
rebootCRP, ACT, DRT, UVA, LRD) and you also feed MeshMapper, leave mqtt.iata on MeshMapper's nearest region and set this slot's code separately. Replace mqtt1 with your slot:set mqtt1.iata UVA
get mqtt1.iataThe slot reconnects by itself. To go back to using mqtt.iata, run set mqtt1.iata with no code.Per-slot codes are a feature of agessaman's MQTT Observer firmware, not standard MeshCore firmware. They're in its observer-mqtt-beta-latest builds from October 21, 2026 on, and aren't in its stable release yet. A node flashed from the beta channel keeps getting beta updates over the air until you re-flash it by cable. On older builds, set mqtt1.iata returns an error and nothing changes.
get mqtt.statusYou should see mqtt1: connected.For RAK4631 and any serial-connected MeshCore device running meshcoretomqtt.
/etc/mctomqtt/config.d/ on Linux.AUS with the Texas city nearest to you, then expand the option that matches your setup:SAT San AntonioCovers: San Antonio, Pearsall, Jourdanton, Pleasanton, FloresvilleAUS AustinHOU HoustonDFW Dallas–Fort WorthELP El PasoABI AbileneAMA AmarilloMFE McAllenCovers: McAllen, Edinburg, HarlingenSJT San AngeloTXK TexarkanaTYR Tyler–LongviewCRP Corpus ChristiACT WacoLBB LubbockMAF Midland–OdessaDRT Del RioCovers: Del Rio, BrackettvilleUVA Uvalde / Winter GardenCovers: Uvalde, Sabinal, Eagle Pass, La Pryor, Crystal City, Carrizo SpringsLRD LaredoCovers: Laredo, CotullaSets IATA only for the MeshTexas broker — safe when you're also connected to other regional meshes. Create 30-texasmesh.toml in config.d/:
[[broker]]
name = "meshtexas"
enabled = true
server = "mqtt.meshtexas.org"
port = 443
transport = "websockets"
keepalive = 60
qos = 0
retain = true
[broker.tls]
enabled = true
verify = true
[broker.auth]
method = "token"
audience = "mqtt.meshtexas.org"
[broker.topics]
iata = "AUS"Simpler option — sets IATA globally. Create or edit /etc/mctomqtt/config.d/99-user.toml:
[general]
iata = "AUS"Then create 30-texasmesh.toml in config.d/ without a [broker.topics] block:
[[broker]]
name = "meshtexas"
enabled = true
server = "mqtt.meshtexas.org"
port = 443
transport = "websockets"
keepalive = 60
qos = 0
retain = true
[broker.tls]
enabled = true
verify = true
[broker.auth]
method = "token"
audience = "mqtt.meshtexas.org"sudo systemctl restart meshcoretomqtt
journalctl -u meshcoretomqtt -fRun ls /etc/mctomqtt/config.d/ to see what files already exist before picking a number.
For any MeshCore observer running meshcore-packet-capture.
AUS with the Texas city nearest to you, then expand the option that matches your setup:SAT San AntonioCovers: San Antonio, Pearsall, Jourdanton, Pleasanton, FloresvilleAUS AustinHOU HoustonDFW Dallas–Fort WorthELP El PasoABI AbileneAMA AmarilloMFE McAllenCovers: McAllen, Edinburg, HarlingenSJT San AngeloTXK TexarkanaTYR Tyler–LongviewCRP Corpus ChristiACT WacoLBB LubbockMAF Midland–OdessaDRT Del RioCovers: Del Rio, BrackettvilleUVA Uvalde / Winter GardenCovers: Uvalde, Sabinal, Eagle Pass, La Pryor, Crystal City, Carrizo SpringsLRD LaredoCovers: Laredo, CotullaSets IATA only for the MeshTexas broker — safe when you're also connected to other regional meshes. Create meshtexas.toml in your presets directory:
[[broker]]
name = "meshtexas"
enabled = true
server = "mqtt.meshtexas.org"
port = 443
transport = "websockets"
keepalive = 60
qos = 0
retain = true
iata = "AUS"
[broker.tls]
enabled = true
verify = true
[broker.auth]
method = "token"
audience = "mqtt.meshtexas.org"Simpler option — sets IATA globally. Create or edit /etc/meshcore-packet-capture/config.d/99-user.toml:
[general]
iata = "AUS"Then create meshtexas.toml in your presets directory without an iata line:
[[broker]]
name = "meshtexas"
enabled = true
server = "mqtt.meshtexas.org"
port = 443
transport = "websockets"
keepalive = 60
qos = 0
retain = true
[broker.tls]
enabled = true
verify = true
[broker.auth]
method = "token"
audience = "mqtt.meshtexas.org"After connecting, search for your node name on the MeshTexas Analyzer. It should appear within a few minutes of your device sending its first advert packet.
Open Analyzer ↗