CubeCellMeshCore v0.8.0 - Command Reference

March 7, 2026 ยท View on GitHub

Serial console at 115200 baud. Type help for command list.

Commands marked MeshCore use the standard MeshCore CLI naming.

Status & Info

CommandDescription
helpShow available commands
statusFirmware version, node name/hash, uptime, time sync
statsSession counters: RX/TX/FWD/ERR, ADV TX/RX, queue length
stats-coreBattery voltage/percent, uptime, queue status MeshCore
verShow firmware version MeshCore
boardShow hardware board name (HTCC-AB01) MeshCore
clockShow current time (alias of time) MeshCore
timeShow current time and sync status
lifetimePersistent stats: boot count, total uptime, RX/TX/FWD
radiostatsNoise floor, last RSSI/SNR, airtime TX/RX
packetstatsPacket breakdown: flood/direct RX/TX
telemetryBattery mV/%, uptime
identityNode name, hash, location, public key
locationShow current GPS coordinates (read-only)
nodesDiscovered nodes (hash, name, RSSI, SNR, packet count, last seen)
nodes <page>Paginated node list (3 per page: nodes 0, nodes 1, ...) MeshCore
contactsKnown contacts with public keys (serial only)
neighbours / neighborsDirect repeater neighbours (0-hop ADVERTs)
healthSystem dashboard: uptime, battery, network, mailbox, alerts, problem nodes
mailboxStore-and-forward mailbox status (slots, EEPROM/RAM, age)
powerShow power mode, RX boost, deep sleep status
powersavingShow current power save mode (0/1/2) MeshCore
radioShow current radio parameters (+ temp radio if active)
rssiShow last RSSI and SNR
aclShow admin/guest passwords and active session count
repeatShow repeat status and max hops
advert intervalShow ADVERT interval (minutes) and next scheduled
txpowerShow current TX power, max, auto status
get nameShow current node name MeshCore
get latShow current latitude MeshCore
get lonShow current longitude MeshCore
get freqShow current radio frequency MeshCore
get flood.maxShow max flood hops MeshCore
get guest.passwordShow guest password MeshCore
get public.keyShow public key (hex, serial only) MeshCore
get owner.info / set owner.infoShow node owner info text MeshCore
get af / set afShow airtime/duty-cycle factor (tenths: 10=1.0x) MeshCore
get adc.multiplier / set adc.multiplierShow battery ADC calibration (tenths: 10=1.0x) MeshCore
get txdelay / set txdelayShow TX jitter delay factor (0-500, default 100) MeshCore
get rxdelay / set rxdelayShow RX delay factor (0-500, default 100) MeshCore
get direct.txdelay / set direct.txdelayShow direct TX delay factor (0-500, default 100) MeshCore
get agc.reset.interval / set agc.reset.intervalShow AGC reset interval in seconds (0=disabled) MeshCore
get flood.advert.interval / set flood.advert.intervalShow flood ADVERT interval in hours (0=auto) MeshCore

Node Configuration

CommandDescription
set name <name>Set node name (1-15 chars), saves to EEPROM MeshCore
set lat <latitude>Set latitude (decimal, e.g. 45.123456), saves to EEPROM MeshCore
set lon <longitude>Set longitude (decimal, e.g. 7.654321), saves to EEPROM MeshCore
set repeat on|offEnable/disable packet repeating
set flood.max <n>Set max flood hops (1-15)
set owner.info <text>Set node owner info (max 31 chars) MeshCore
set af <n>Set airtime factor (tenths: 0=off, 10=1.0x, max 90=9.0x) MeshCore
set adc.multiplier <n>Set battery ADC multiplier (tenths: 0=auto, 10=1.0x, max 100) MeshCore
set txdelay <n>Set TX jitter delay factor (0-500, default 100) MeshCore
set rxdelay <n>Set RX delay factor (0-500, default 100) MeshCore
set direct.txdelay <n>Set direct TX delay factor (0-500, default 100) MeshCore
set agc.reset.interval <sec>Set AGC reset interval (0=disabled, multiples of 4) MeshCore
set flood.advert.interval <hours>Set flood ADVERT interval (0=auto, 3-48h) MeshCore
mode 0|1|2Set power mode (0=performance, 1=balanced, 2=powersave)
powersaving onSet power save mode 2 (maximum savings) MeshCore
powersaving offSet power save mode 0 (performance) MeshCore
sleep on|offEnable/disable deep sleep
rxboost on|offEnable/disable RX gain boost
nodetype chat|repeaterSet node type (serial only)
time <timestamp>Set Unix time manually (serial only)

Radio

CommandDescription
radioShow current radio parameters
get freqShow current frequency only MeshCore
set freq <MHz>Set frequency only (keeps other params), activates temp radio MeshCore
set radio <freq>,<bw>,<sf>,<cr>Set radio parameters (comma-separated, serial only) MeshCore
set radio <f>,<bw>,<sf>,<cr>,<min>Set radio with auto-revert timeout in minutes MeshCore
tempradio <freq> <bw> <sf> <cr>Set temporary radio params (space-separated, serial only)
tempradio <f> <bw> <sf> <cr> <min>Temp radio with auto-revert timeout in minutes MeshCore
tempradio offRestore default radio params
tempradioShow temp radio status

Example: set radio 869.618,62.5,8,8 or tempradio 869.618 62.5 8 8 Example with timeout: set radio 869.618,62.5,8,8,30 (reverts after 30 minutes)

TX Power

CommandDescription
txpowerShow current TX power and auto status
set tx <dBm>Set manual TX power (disables auto) MeshCore
set tx auto onEnable adaptive TX power MeshCore
set tx auto offDisable auto, restore max power MeshCore

Adaptive TX Power (v0.7.0+)

Automatic transmission power adjustment based on neighbour link quality:

  • Enabled: set tx auto on
  • Disabled: set tx auto off
  • Manual: set tx 14 (sets 14 dBm, disables auto)
  • Status: txpower shows: TxP:14dBm max:21 auto:on

How it works:

  • Evaluates every 60 seconds
  • Calculates average SNR of all neighbours
  • If avg SNR > +10dB: Reduces power by 2 dBm (energy saving)
  • If avg SNR < -5dB: Increases power by 2 dBm (better coverage)
  • Range: 5 dBm (minimum) to 21 dBm (maximum, hardware limit)
  • Step size: 2 dBm

Benefits:

  • Energy saving when signal is strong
  • Automatic coverage optimization when signal is weak
  • Reduced interference on the mesh network
CommandDescription
advertSend ADVERT packet immediately (flood)
advert localSend ADVERT packet (direct, 0-hop only)
set advert.interval <min>Set ADVERT interval in minutes (1-1440) MeshCore
advert intervalShow current interval and next scheduled
pingSend broadcast test packet (FLOOD)
ping <hash>Directed ping to node by hex hash, auto-PONG reply
trace <hash>Trace route to node, shows path and hop count

Passwords & Security

CommandDescription
passwordShow admin and guest passwords
password admin <pwd>Set admin password (serial only)
password guest <pwd>Set guest password (serial only)
password <pwd>Set admin password (remote CLI) MeshCore
set guest.password <pwd>Set guest password (remote CLI) MeshCore
get guest.passwordShow guest password MeshCore
setperm <pubkey> <perm>Set per-node ACL permission (0-255, serial only) MeshCore

Region Filtering (v0.8.0+)

Deny-based flood filtering aligned with MeshCore 1.10.0+ protocol. Each region entry controls whether flood packets with matching transport codes are forwarded or dropped. Default: forward everything (no filtering when no regions configured).

CommandDescription
regionList wildcard and all region entries with flood status (A=allow, D=deny)
region put <name>Add region entry (admin only)
region remove <name>Remove region entry (admin only)
region allowf <name>Allow flood forwarding for region or * (admin only)
region denyf <name>Deny flood forwarding for region or * (admin only)
region savePersist region map to EEPROM (admin only)
region loadLoad region map from EEPROM (admin only)

Region names: ISO 3166-1 alpha-2 codes (e.g., nl, au, us) or UNECE subdivision codes (e.g., nl-li, au-nsw). Max 11 characters (12 in EEPROM). Use * for the wildcard (controls legacy FLOOD packets).

Example:

region put it          # Add Italy region
region put it-lom      # Add Lombardy sub-region
region denyf au        # Block Australian flood traffic
region allowf *        # Allow legacy flood packets
region save            # Persist to EEPROM (survives reboot)

How it works:

  • Transport codes are cryptographic: HMAC-SHA256(SHA256(region_name), payload) truncated to 2 bytes
  • 4 region slots + 1 wildcard entry
  • TRANSPORT_FLOOD packets: matched against region map via transport code verification
  • Legacy FLOOD packets: controlled by wildcard * entry only
  • Direct messages (DMs) are never filtered

Store-and-Forward Mailbox

The repeater stores messages for offline nodes and re-delivers them when the node comes back online (sends an ADVERT). Storage: 2 persistent EEPROM slots + 4 volatile RAM slots = 6 messages max, 24h TTL.

CommandDescription
mailboxShow mailbox status: used/total, EEPROM (E) and RAM (R) counts
mailbox clearClear all mailbox slots (admin only)

Health Monitor

Automatic mesh health monitoring. Checks for offline nodes (>30 min) and sends alerts.

CommandDescription
healthDashboard: uptime, battery, online/offline nodes, problem nodes
alertShow alert status (on/off, destination)
alert on|offEnable/disable automatic health alerts
alert dest <name>Set alert destination (by contact name)
alert clearClear alert configuration
alert testSend a test alert (serial only)

Daily Report

CommandDescription
reportShow report status (on/off, time, destination)
report onEnable daily report (requires destination key)
report offDisable daily report
report testSend a test report immediately
report nodesSend a nodes report immediately
report time HH:MMSet report send time (24h format)
report dest <name>Set report destination (by contact name)
report clearClear destination key and disable report

Quiet Hours

Reduce forward rate during configurable hours. Requires TimeSync.

CommandDescription
quietShow quiet hours status
quiet <start> <end>Set quiet hours (0-23, e.g. quiet 22 6)
quiet offDisable quiet hours

Circuit Breaker

Blocks DIRECT forwarding to neighbours with degraded links (SNR < -10dB). After 5 min, transitions to half-open. Good SNR closes breaker. FLOOD is never blocked.

CommandDescription
cbShow count of open circuit breakers

Neighbours

CommandDescription
neighbours / neighborsList direct repeater neighbours with link quality statistics
neighbor.remove <hex>Remove neighbour by pubkey hex prefix MeshCore

The neighbours command shows enhanced link quality metrics:

  • Current and Average RSSI/SNR: Compare instantaneous vs smoothed values (EMA)
  • Packet Count: Total packets received from each neighbour
  • Circuit Breaker State: Link health indicator (ok/OPEN/half)

Example output:

Nbr:2
 A3 Node1 -82dBm(-84) s:9.0(8.5)dB p:156 cb:ok 5s
 F7 Node2 -95dBm(-93) s:3.5(4.0)dB p:89 cb:ok 12s

Rate Limiting

CommandDescription
ratelimitShow rate limiter status and blocked counts
ratelimit on|offEnable/disable rate limiting
ratelimit resetReset rate limit counters

Default limits: Login 5/min, Request 30/min, Forward 100/min.

Statistics & Maintenance

CommandDescription
clear statsReset session counters (RX/TX/FWD/ERR/ADV) MeshCore
savestatsForce save persistent statistics to EEPROM (serial only)

System

CommandDescription
saveSave configuration to EEPROM
resetReset configuration to factory defaults
rebootRestart device
clkrebootReset internal clock sync and reboot MeshCore
newidGenerate new Ed25519 identity (serial only)
get prv.keyExport Ed25519 private key seed (64 hex chars, serial only) MeshCore
set prv.key <hex>Import Ed25519 seed and regenerate identity (serial only) MeshCore
get public.keyShow public key (hex, serial only) MeshCore

Packet Log

Requires ENABLE_PACKET_LOG compile flag.

CommandDescription
logShow packet log count and recent entries
log startEnable packet logging (serial only)
log stopDisable packet logging (serial only)
log eraseClear packet log (serial only)

Serial-Only Commands

These commands are only available via USB serial console, not remotely:

CommandDescription
contactsList known contacts
contact <hash>Show contact details and public key
nodetype chat|repeaterSet node type
time <timestamp>Set Unix time
newidGenerate new identity
get prv.keyExport Ed25519 private key seed
set prv.key <hex>Import Ed25519 seed
get public.keyShow public key hex
setperm <pubkey> <perm>Set per-node ACL permission
savestatsForce save stats to EEPROM
tempradio ...Temporary radio parameters
set radio ...Set radio parameters
set freq <MHz>Set frequency only
log start|stop|erasePacket log control
alert testSend test alert
msg <name> <message>Send direct message to contact

Remote Configuration (via MeshCore app)

All shared commands are available remotely via the MeshCore app's encrypted CLI channel.

Guest-allowed commands (read-only)

status  stats  stats-core  ver  board  clock  time
lifetime  radiostats  packetstats  telemetry  identity
location  nodes  nodes <page>  neighbours  health  mailbox
power  powersaving  radio  rssi  acl  quiet  cb  log
repeat  advert interval  txpower  region
get name  get lat  get lon  get freq
get flood.max  get guest.password
get owner.info  get af  get adc.multiplier  get txdelay
get rxdelay  get direct.txdelay  get agc.reset.interval
get flood.advert.interval
set owner.info  set af  set adc.multiplier  set txdelay
set rxdelay  set direct.txdelay  set agc.reset.interval
set flood.advert.interval
alert  ratelimit  sleep  rxboost  help

Admin-only commands (read-write)

set name <X>  set lat <X>  set lon <X>
set repeat on/off  set flood.max <N>
set advert.interval <min>  set tx <dBm>  set tx auto on/off
set owner.info <text>  set af <N>  set adc.multiplier <N>
set txdelay <N>  set rxdelay <N>  set direct.txdelay <N>
set agc.reset.interval <sec>  set flood.advert.interval <hours>
password <pwd>  set guest.password <pwd>
powersaving on/off  mode 0/1/2
sleep on/off  rxboost on/off
advert  advert local  ping  ping <hash>  trace <hash>
alert on/off/dest/clear  mailbox clear
quiet <start> <end>  quiet off
region put/remove/allowf/denyf <name>  region save  region load
ratelimit on/off/reset  clear stats  neighbor.remove <hex>
report on/off/dest/time/test/nodes
save  reset  reboot  clkreboot

Radio Settings (EU868 default)

ParameterValue
Frequency869.618 MHz
Bandwidth62.5 kHz
Spreading FactorSF8
Coding Rate4/8
TX Power14 dBm
Sync Word0x12

Tips

  1. Always save after changing configuration
  2. Set passwords before deploying: password admin myAdminPwd and password guest myGuestPwd
  3. Use set lat and set lon separately to set GPS coordinates
  4. Use set advert.interval 5 for 5-minute ADVERT interval
  5. Use set tx auto on to enable adaptive TX power
  6. Use powersaving on for maximum battery life (mode 2)
  7. Use health to monitor mesh link quality and node availability
  8. Enable alert on to get automatic notifications when nodes go offline
  9. The mailbox stores messages for offline nodes automatically - no config needed
  10. Use tempradio to test radio parameters without persisting, set radio to apply
  11. Use get prv.key to backup your identity seed before flashing new firmware
  12. Use set af to adjust duty cycle (0=off, 10=1.0x, 20=2.0x slower)
  13. Use set agc.reset.interval 60 to reset receiver gain every 60 seconds
  14. Use tempradio 869.618 62.5 8 8 30 to auto-revert radio params after 30 minutes
  15. Use region put <code> to add region entries for flood filtering (MeshCore 1.10.0+)