KYKN — Travel & Work Office
ActiveThinkNode M5 (ESP32-S3)
Portable node for the work office and out-of-town travel. Quiet at home so it never competes with the router; promoted to CLIENT at the office.
Commissioned September 12, 2026Notes updated September 12, 2026
Radio
- Hardware
- ThinkNode M5 (ESP32-S3)
- Firmware
- 2.7.26
- Role
- CLIENT_MUTE
- Region
- —
- Modem preset
- —
- Frequency slot
- —
- Hop limit
- 5
- TX power
- —
- Node ID
- —
- MQTT
- off
Power
- Source
- battery
- Solar
- —
- Battery
- —
- Chemistry
- —
- Notes
- Wi-Fi off by default — it is the main drain on this node.
Site
- Deployment
- portable
- Area
- —
- Grid square
- —
- Elevation
- —
- Fixed position
- no
- Position precision
- —
Remote admin
- Master slot
- M5 (admin master)
- Public key
- 4VyAwe95ytDwLrWEUYaQDNeLbGg7QEOX5oO/g1NyqGg=
Other
- GPS update interval
- 120 s
- Smart broadcast
- on, 100 m minimum
- Position broadcast
- 3600 s (firmware floor)
- Wi-Fi
- disabled by default, credentials retained
- NTP
- meshtastic.pool.ntp.org
- Map reporting
- off — does not publish location publicly
Note on COM ports: The
COM##numbers in this guide are the author’s own, shown as examples — your port will differ. On Windows, open Device Manager → Ports (COM & LPT) with the node plugged in to find the COM number your device enumerated as, and use that in place of the example in every command. On macOS/Linux the equivalent is a/dev/tty.*,/dev/ttyUSB*, or/dev/ttyACM*path. Always confirm your own port before running these commands.
Purpose & Design Intent
This profile is for a member’s portable node — one that rides along on trips and sits at a work office, not a fixed home station.
A key assumption: the home site already has a dedicated ROUTER node. Because a router is already covering the home area, this node does not relay at home — it is left as a quiet client (CLIENT_MUTE) so it doesn’t compete with the home router on the air. When the node is at the office, away from the home router, it can be temporarily promoted to a relaying role so it helps other office nodes reach each other (see Alterations).
Battery is a priority. GPS runs, but Wi-Fi is disabled by default; it draws almost nothing until you deliberately turn it on to reach the node over the network.
1. Target Configuration (verified)
| Section | Setting | Value | Purpose |
|---|---|---|---|
| Device | role | CLIENT_MUTE | Quiet client; doesn’t relay near the home router |
| Device | node_info_broadcast_secs | 10800 | NodeInfo every 3 h |
| Position | fixed_position | false | Node moves — must not be pinned |
| Position | gps_mode | ENABLED | Live GPS |
| Position | gps_update_interval | 120 | Fix cadence, seconds |
| Position | position_broadcast_smart_enabled | true | Send position when it actually moves |
| Position | broadcast_smart_minimum_distance | 100 | Metres moved before a smart send |
| Position | position_broadcast_secs | 3600 | Stationary heartbeat (see note) |
| Network | wifi_enabled | false | Off by default to save battery; credentials retained |
| Network | ntp_server | meshtastic.pool.ntp.org | Public time source; works anywhere |
| MQTT | map_reporting_enabled | false | Does not publish its location to the public map |
Firmware-floor note: On this firmware the M5 will not hold position_broadcast_secs below 3600 or broadcast_smart_minimum_interval_secs below 300. Lower values are accepted by the CLI, then revert on the next reboot. These are treated as the working floors — smart broadcast (movement-based) does the real work while travelling, and 3600 s is only the idle heartbeat. Do not keep re-trying lower values.
2. CLI Procedure (Windows CMD, serial)
Before starting
- Disconnect the phone app from the node (Bluetooth + serial together makes writes unreliable).
- Connect by USB; confirm the COM port in Device Manager (COM16 at time of writing).
- Every committed write reboots the node — wait 60–90 s before the next command. If the port drops mid-run, that’s the reboot; wait and re-run the same command.
Step 1 — Config transaction (one reboot)
meshtastic --port COM16 --begin-edit --set device.role CLIENT_MUTE --set position.fixed_position false --set position.gps_mode ENABLED --set position.gps_update_interval 120 --set position.position_broadcast_smart_enabled true --set position.broadcast_smart_minimum_distance 100 --set mqtt.map_reporting_enabled false --set network.ntp_server meshtastic.pool.ntp.org --commit-edit
Step 2 — Wait for reboot, then verify (Section 4).
Step 3 — Confirm Wi-Fi is off (default, but check)
meshtastic --port COM16 --set network.wifi_enabled false
CLI rules learned on this hardware
--begin-edit … --commit-editbatches multiple--setfields into a single reboot over serial. The multi-field timeout problem only appears over RF (remote--dest), not on the serial cable.- A large transaction may ack but silently drop one or two fields. Always verify with
--get, then re-send any missed field one at a time. --getprints only non-default fields. A missingfixed_positionorwifi_enabledline means it’s at its default (false) — absence is not failure.position_broadcast_secsandbroadcast_smart_minimum_interval_secswill not hold below their firmware floors (3600 / 300); accept them.
3. iOS / Android App Procedure (Meshtastic app)
Use if a cable isn’t available. A GUI save rewrites the whole section, so re-verify with the CLI when you can.
Connect to the node over Bluetooth, then:
Settings → Radio Configuration → Device
- Device Role: Client Mute
- Node Info Broadcast Interval: 3 hours
- Save
Settings → Radio Configuration → Position
- GPS Mode: Enabled
- Fixed Position: Off
- GPS Update Interval: 2 minutes
- Smart Position: On
- Minimum Distance: 100 m
- Position Broadcast Interval: leave at default (1 hour — the node won’t accept lower)
- Save
Settings → Radio Configuration → Network
- WiFi Enabled: Off
- (Leave the stored SSID / password in place so it’s one toggle to bring Wi-Fi back)
- NTP Server: meshtastic.pool.ntp.org
- Save
Settings → Module Configuration → MQTT
- Map Reporting: Off
- Save
Each save reboots the node; wait for it to reconnect before the next section.
4. Verification
Commands
meshtastic --port COM16 --get position --get network
meshtastic --port COM16 --get mqtt
meshtastic --port COM16 --info | findstr /i "wifi role"
Expected values
role: CLIENT_MUTE
position.gps_mode: 1 (ENABLED)
position.gps_update_interval: 120
position.position_broadcast_smart_enabled: True
position.broadcast_smart_minimum_distance: 100
position.position_broadcast_secs: 3600 (firmware floor)
network.ntp_server: meshtastic.pool.ntp.org
wifiEnabled: false
fixed_positionshould be absent (= false). If it printsTrue, re-send--set position.fixed_position false.map_report_settings/ map reporting should be off — the node must not publish location to the public map.hwModelshould read THINKNODE_M5 andhasWifi: true— confirms you’re on the right node.
Field check
- role = CLIENT_MUTE
- fixed_position absent (false)
- gps_mode = 1, gps_update_interval = 120
- smart position on, min distance = 100
- wifi_enabled = false, SSID/PSK still stored
- ntp = public pool
- map reporting off
5. Alterations (run as your situation changes)
A. Turn Wi-Fi on / off (battery vs. network access)
Wi-Fi is off by default. Turn it on only when you need to reach the node over the network; turn it back off to save battery.
ON: meshtastic --port COM16 --set network.wifi_enabled true
OFF: meshtastic --port COM16 --set network.wifi_enabled false
On the road you’ll usually do this in the app instead: Settings → Radio Configuration → Network → WiFi Enabled.
Important: the node stores one Wi-Fi network at a time. The toggle only connects where that stored SSID exists (e.g. your home network). At the office, a hotel, or anywhere new, set that location’s SSID and password first, then enable Wi-Fi:
meshtastic --port COM16 --set network.wifi_ssid "<network name>"
meshtastic --port COM16 --set network.wifi_psk "<password>"
meshtastic --port COM16 --set network.wifi_enabled true
B. Promote to a relaying role at the office (and revert when leaving)
At the office — away from the home router — you can let this node relay for other office nodes. Revert it before bringing it home, so it doesn’t compete with the home router.
AT THE OFFICE: meshtastic --port COM16 --set device.role CLIENT
LEAVING/HOME: meshtastic --port COM16 --set device.role CLIENT_MUTE
Each reboots the node. Run over whichever transport you have (USB serial, Bluetooth in the app, or over the network if Wi-Fi is on).
6. Remote Admin Keys (applied & verified)
This node can be administered remotely by the fleet’s admin (“master”) nodes using Meshtastic PKC admin. It carries the public keys of the other two masters — not its own, since a node never needs its own admin key. See the global Admin-Key ADR for the full model and rationale.
KYKN (M5) holds:
- M1 / handheld:
base64:hytoF5RjxNLoFVmWDPu43kr185CKiwivBKfnuguf/Fs= - M2 / base:
base64:7CDjTOmJVFaNrf+KNd1+eYZYQ7mIjMN43xtwDx8N3nY=
Applied (one transaction, one reboot):
meshtastic --port COM16 --begin-edit --set security.admin_key "base64:hytoF5RjxNLoFVmWDPu43kr185CKiwivBKfnuguf/Fs=" --set security.admin_key "base64:7CDjTOmJVFaNrf+KNd1+eYZYQ7mIjMN43xtwDx8N3nY=" --commit-edit
Repeated --set security.admin_key appends to the list (it does not overwrite). Verify:
meshtastic --port COM16 --get security
Confirmed output lists both keys under security.admin_key. These are public keys — safe to publish. Only the matching private key, held on the handheld/base, can actually administer this node.
7. Private Channel (set up on the device, then share by QR)
This document intentionally does not include private channel keys or names. To add a private/group channel, create it once on a device in the Meshtastic app (Settings → Channels → add a channel, give it a name and let it generate a key), then share it to other members by having them scan the channel QR code the app produces. That copies the channel — name and encryption key — onto their node without anyone typing or publishing the key.
8. Operating Notes
- Keep Wi-Fi off unless you need network access — it’s the main battery drain on this node.
- Default role is CLIENT_MUTE; only promote to CLIENT at the office, and always revert before coming home.
- The node reports position live while moving (smart broadcast) and once an hour when parked.
- It does not report its location to the public map.
- Any time the app writes to the node, re-run the Section 4 verification when you’re next on a cable.