This commit is contained in:
ripplebiz
2026-04-19 01:35:26 +00:00
parent 60d3d3f1be
commit f1d489d758
17 changed files with 1368 additions and 31 deletions

View File

@@ -403,6 +403,33 @@
<li class="md-nav__item">
<a href="/meshcore/number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/meshcore/packet_format/" class="md-nav__link">

View File

@@ -471,6 +471,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#discover-zero-hop-neighbors" class="md-nav__link">
<span class="md-ellipsis">
Discover zero hop neighbors
</span>
</a>
</li>
</ul>
@@ -683,6 +694,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#view-or-change-the-boosted-receive-gain-mode" class="md-nav__link">
<span class="md-ellipsis">
View or change the boosted receive gain mode
</span>
</a>
</li>
<li class="md-nav__item">
@@ -705,6 +727,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#view-or-change-this-nodes-rx-boosted-gain-mode-sx12xx-only-v1141" class="md-nav__link">
<span class="md-ellipsis">
View or change this node's rx boosted gain mode (SX12xx only, v1.14.1+)
</span>
</a>
</li>
</ul>
@@ -926,6 +959,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#view-or-change-the-duty-cycle-limit" class="md-nav__link">
<span class="md-ellipsis">
View or change the duty cycle limit
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1136,6 +1180,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#view-or-change-the-default-scope-region-for-this-node" class="md-nav__link">
<span class="md-ellipsis">
View or change the default scope region for this node
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1601,6 +1656,33 @@
<li class="md-nav__item">
<a href="../number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../packet_format/" class="md-nav__link">
@@ -1915,6 +1997,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#discover-zero-hop-neighbors" class="md-nav__link">
<span class="md-ellipsis">
Discover zero hop neighbors
</span>
</a>
</li>
</ul>
@@ -2127,6 +2220,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#view-or-change-the-boosted-receive-gain-mode" class="md-nav__link">
<span class="md-ellipsis">
View or change the boosted receive gain mode
</span>
</a>
</li>
<li class="md-nav__item">
@@ -2149,6 +2253,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#view-or-change-this-nodes-rx-boosted-gain-mode-sx12xx-only-v1141" class="md-nav__link">
<span class="md-ellipsis">
View or change this node's rx boosted gain mode (SX12xx only, v1.14.1+)
</span>
</a>
</li>
</ul>
@@ -2370,6 +2485,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#view-or-change-the-duty-cycle-limit" class="md-nav__link">
<span class="md-ellipsis">
View or change the duty cycle limit
</span>
</a>
</li>
<li class="md-nav__item">
@@ -2580,6 +2706,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#view-or-change-the-default-scope-region-for-this-node" class="md-nav__link">
<span class="md-ellipsis">
View or change the default scope region for this node
</span>
</a>
</li>
<li class="md-nav__item">
@@ -2999,6 +3136,10 @@
- <code>pubkey_prefix</code>: The public key of the node to remove from the neighbors list. This can be a short prefix or the full key. All neighbors matching the provided prefix will be removed.</p>
<p><strong>Note:</strong> You can remove all neighbors by sending a space character as the prefix. The space indicates an empty prefix, which matches all existing neighbors.</p>
<hr />
<h3 id="discover-zero-hop-neighbors">Discover zero hop neighbors</h3>
<p><strong>Usage:</strong>
- <code>discover.neighbors</code></p>
<hr />
<h2 id="statistics">Statistics</h2>
<h3 id="clear-stats">Clear Stats</h3>
<p><strong>Usage:</strong> <code>clear stats</code></p>
@@ -3062,6 +3203,15 @@
<p><strong>Default:</strong> Varies by board</p>
<p><strong>Notes:</strong> This setting only controls the power level of the LoRa chip. Some nodes have an additional power amplifier stage which increases the total output. Refer to the node's manual for the correct setting to use. <strong>Setting a value too high may violate the laws in your country.</strong></p>
<hr />
<h4 id="view-or-change-the-boosted-receive-gain-mode">View or change the boosted receive gain mode</h4>
<p><strong>Usage:</strong>
- <code>get radio.rxgain</code>
- <code>set radio.rxgain &lt;state&gt;</code></p>
<p><strong>Parameters:</strong>
- <code>state</code>: <code>on</code>|<code>off</code></p>
<p><strong>Default:</strong> <code>off</code></p>
<p><strong>Note:</strong> Only available on SX1262 and SX1268 based boards.</p>
<hr />
<h4 id="change-the-radio-parameters-for-a-set-duration">Change the radio parameters for a set duration</h4>
<p><strong>Usage:</strong>
- <code>tempradio &lt;freq&gt;,&lt;bw&gt;,&lt;sf&gt;,&lt;cr&gt;,&lt;timeout_mins&gt;</code></p>
@@ -3082,6 +3232,16 @@
<p><strong>Default:</strong> <code>869.525</code></p>
<p><strong>Note:</strong> Requires reboot to apply
<strong>Serial Only:</strong> <code>set freq &lt;frequency&gt;</code></p>
<hr />
<h4 id="view-or-change-this-nodes-rx-boosted-gain-mode-sx12xx-only-v1141">View or change this node's rx boosted gain mode (SX12xx only, v1.14.1+)</h4>
<p><strong>Usage:</strong>
- <code>get radio.rxgain</code>
- <code>set radio.rxgain &lt;state&gt;</code></p>
<p><strong>Parameters:</strong>
- <code>state</code>: <code>on</code>|<code>off</code></p>
<p><strong>Default:</strong> <code>on</code></p>
<p><strong>Temporary Note:</strong> If you upgraded from an older version to 1.14.1 without erasing flash, this setting is <code>off</code> because of <a href="https://github.com/meshcore-dev/MeshCore/issues/2118">#2118</a></p>
<hr />
<h3 id="system">System</h3>
<h4 id="view-or-change-this-nodes-name">View or change this node's name</h4>
<p><strong>Usage:</strong>
@@ -3238,7 +3398,26 @@
- <code>value</code>: Receive delay base (0-20)</p>
<p><strong>Default:</strong> <code>0.0</code></p>
<hr />
<h4 id="view-or-change-the-duty-cycle-limit">View or change the duty cycle limit</h4>
<p><strong>Usage:</strong>
- <code>get dutycycle</code>
- <code>set dutycycle &lt;value&gt;</code></p>
<p><strong>Parameters:</strong>
- <code>value</code>: Duty cycle percentage (1-100)</p>
<p><strong>Default:</strong> <code>50%</code> (equivalent to airtime factor 1.0)</p>
<p><strong>Examples:</strong>
- <code>set dutycycle 100</code> — no duty cycle limit
- <code>set dutycycle 50</code> — 50% duty cycle (default)
- <code>set dutycycle 10</code> — 10% duty cycle
- <code>set dutycycle 1</code> — 1% duty cycle (strictest EU requirement)</p>
<blockquote>
<p><strong>Note:</strong> Added in firmware v1.15.0</p>
</blockquote>
<hr />
<h4 id="view-or-change-the-airtime-factor-duty-cycle-limit">View or change the airtime factor (duty cycle limit)</h4>
<blockquote>
<p><strong>Deprecated</strong> as of firmware v1.15.0. Use <a href="#view-or-change-the-duty-cycle-limit"><code>get/set dutycycle</code></a> instead.</p>
</blockquote>
<p><strong>Usage:</strong>
- <code>get af</code>
- <code>set af &lt;value&gt;</code></p>
@@ -3247,8 +3426,8 @@
- <code>af = 1</code> → ~50% duty
- <code>af = 2</code> → ~33% duty
- <code>af = 3</code> → ~25% duty
- <code>af = 9</code> → ~10% duty<br />
Yyou are responsible for choosing a value that is appropriate for your jurisdiction and channel plan (for example EU 868 Mhz 10% duty cycle regulation).</p>
- <code>af = 9</code> → ~10% duty
You are responsible for choosing a value that is appropriate for your jurisdiction and channel plan (for example EU 868 Mhz 10% duty cycle regulation).</p>
<p><strong>Default:</strong> <code>1.0</code></p>
<hr />
<h4 id="view-or-change-the-local-interference-threshold">View or change the local interference threshold</h4>
@@ -3264,7 +3443,7 @@
- <code>get agc.reset.interval</code>
- <code>set agc.reset.interval &lt;value&gt;</code></p>
<p><strong>Parameters:</strong>
- <code>value</code>: Interval in seconds rounded down to a multiple of 4 (17 becomes 16)</p>
- <code>value</code>: Interval in seconds rounded down to a multiple of 4 (17 becomes 16). 0 to disable.</p>
<p><strong>Default:</strong> <code>0.0</code></p>
<hr />
<h4 id="enable-or-disable-multi-acks-support">Enable or disable Multi-Acks support</h4>
@@ -3367,6 +3546,13 @@
<p><strong>Parameters:</strong>
- <code>name</code>: Region name</p>
<hr />
<h4 id="view-or-change-the-default-scope-region-for-this-node">View or change the default scope region for this node</h4>
<p><strong>Usage:</strong>
- <code>region default</code>
- <code>region default {name|&lt;null&gt;}</code></p>
<p><strong>Parameters:</strong>
- <code>name</code>: Region name, or <null> to reset/clear</p>
<hr />
<h4 id="create-a-new-region">Create a new region</h4>
<p><strong>Usage:</strong>
- <code>region put &lt;name&gt; [parent_name]</code></p>
@@ -3471,7 +3657,9 @@ region save
<p><strong>Parameters:</strong>
- <code>state</code>: <code>on</code>|<code>off</code></p>
<p><strong>Default:</strong> <code>off</code></p>
<p><strong>Note:</strong> Output format: <code>{status}, {fix}, {sat count}</code> (when enabled)</p>
<p><strong>Note:</strong> Output format:
- <code>off</code> when the GPS hardware is disabled
- <code>on, {active|deactivated}, {fix|no fix}, {sat count} sats</code> when the GPS hardware is enabled</p>
<hr />
<h4 id="sync-this-nodes-clock-with-gps-time">Sync this node's clock with GPS time</h4>
<p><strong>Usage:</strong>

View File

@@ -531,6 +531,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#6-send-channel-data-datagram" class="md-nav__link">
<span class="md-ellipsis">
6. Send Channel Data Datagram
</span>
</a>
</li>
<li class="md-nav__item">
@@ -976,6 +987,33 @@
<li class="md-nav__item">
<a href="../number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../packet_format/" class="md-nav__link">
@@ -1323,6 +1361,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#6-send-channel-data-datagram" class="md-nav__link">
<span class="md-ellipsis">
6. Send Channel Data Datagram
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1917,6 +1966,24 @@ Bytes 7+: Message Text (UTF-8, variable length)
</code></pre>
<p><strong>Response</strong>: <code>PACKET_MSG_SENT</code> (0x06) on success</p>
<hr />
<h3 id="6-send-channel-data-datagram">6. Send Channel Data Datagram</h3>
<p><strong>Purpose</strong>: Send binary datagram data to a channel.</p>
<p><strong>Command Format</strong>:</p>
<pre><code>Byte 0: 0x3E
Bytes 1-2: Data Type (`data_type`, 16-bit little-endian)
Byte 3: Channel Index (0-7)
Bytes 4+: Binary payload bytes (variable length)
</code></pre>
<p><strong>Data Type / Transport Mapping</strong>:
- <code>0x0000</code> is invalid for this command.
- <code>0xFFFF</code> (<code>DATA_TYPE_DEV</code>) is the developer namespace for experimenting and developing apps.
- Other non-zero values can be used as assigned application/community namespaces.</p>
<p><strong>Note</strong>: Applications that need a timestamp should encode it inside the binary payload.</p>
<p><strong>Limits</strong>:
- Maximum payload length is <code>163</code> bytes.
- Larger payloads are rejected with <code>PACKET_ERROR</code>.</p>
<p><strong>Response</strong>: <code>PACKET_OK</code> (0x00) on success</p>
<hr />
<h3 id="6-get-message">6. Get Message</h3>
<p><strong>Purpose</strong>: Request the next queued message from the device.</p>
<p><strong>Command Format</strong>:</p>

View File

@@ -472,6 +472,33 @@
<li class="md-nav__item">
<a href="../number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../packet_format/" class="md-nav__link">

View File

@@ -1229,15 +1229,15 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#71-q-how-to-update-nrf-rak-t114-seed-xiao-repeater-and-room-server-firmware-over-the-air-using-the-new-simpler-dfu-app" class="md-nav__link">
<a href="#71-q-how-to-update-nrf-rak-t114-seed-xiao-companion-repeater-and-room-server-firmware-over-the-air-using-the-new-simpler-dfu-app" class="md-nav__link">
<span class="md-ellipsis">
7.1. Q: How to update nRF (RAK, T114, Seed XIAO) repeater and room server firmware over the air using the new simpler DFU app?
7.1. Q: How to update nRF (RAK, T114, Seed XIAO) companion, repeater and room server firmware over the air using the new simpler DFU app?
</span>
</a>
<nav class="md-nav" aria-label="7.1. Q: How to update nRF (RAK, T114, Seed XIAO) repeater and room server firmware over the air using the new simpler DFU app?">
<nav class="md-nav" aria-label="7.1. Q: How to update nRF (RAK, T114, Seed XIAO) companion, repeater and room server firmware over the air using the new simpler DFU app?">
<ul class="md-nav__list">
<li class="md-nav__item">
@@ -1395,6 +1395,33 @@
<li class="md-nav__item">
<a href="../number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../packet_format/" class="md-nav__link">
@@ -2386,15 +2413,15 @@
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#71-q-how-to-update-nrf-rak-t114-seed-xiao-repeater-and-room-server-firmware-over-the-air-using-the-new-simpler-dfu-app" class="md-nav__link">
<a href="#71-q-how-to-update-nrf-rak-t114-seed-xiao-companion-repeater-and-room-server-firmware-over-the-air-using-the-new-simpler-dfu-app" class="md-nav__link">
<span class="md-ellipsis">
7.1. Q: How to update nRF (RAK, T114, Seed XIAO) repeater and room server firmware over the air using the new simpler DFU app?
7.1. Q: How to update nRF (RAK, T114, Seed XIAO) companion, repeater and room server firmware over the air using the new simpler DFU app?
</span>
</a>
<nav class="md-nav" aria-label="7.1. Q: How to update nRF (RAK, T114, Seed XIAO) repeater and room server firmware over the air using the new simpler DFU app?">
<nav class="md-nav" aria-label="7.1. Q: How to update nRF (RAK, T114, Seed XIAO) companion, repeater and room server firmware over the air using the new simpler DFU app?">
<ul class="md-nav__list">
<li class="md-nav__item">
@@ -2828,7 +2855,7 @@ https://github.com/meshcore-dev/MeshCore/blob/main/src/Packet.h#L19</p>
#define PAYLOAD_TYPE_TXT_MSG 0x02 // a plain text message (prefixed with dest/src hashes, MAC) (enc data: timestamp, text)
#define PAYLOAD_TYPE_ACK 0x03 // a simple ack #define PAYLOAD_TYPE_ADVERT 0x04 // a node advertising its Identity
#define PAYLOAD_TYPE_GRP_TXT 0x05 // an (unverified) group text message (prefixed with channel hash, MAC) (enc data: timestamp, "name: msg")
#define PAYLOAD_TYPE_GRP_DATA 0x06 // an (unverified) group datagram (prefixed with channel hash, MAC) (enc data: timestamp, blob)
#define PAYLOAD_TYPE_GRP_DATA 0x06 // an (unverified) group datagram (prefixed with channel hash, MAC) (enc data: data_type, data_len, blob)
#define PAYLOAD_TYPE_ANON_REQ 0x07 // generic request (prefixed with dest_hash, ephemeral pub_key, MAC) (enc data: ...)
#define PAYLOAD_TYPE_PATH 0x08 // returned path (prefixed with dest/src hashes, MAC) (enc data: path, extra)
</code></pre>
@@ -3043,7 +3070,7 @@ https://www.austinmesh.org/learn/meshcore-vs-meshtastic/</p>
<code># setfacl -m u:YOUR_USER_HERE:rw /dev/ttyUSB0</code></p>
<hr />
<h2 id="7-other-questions">7. Other Questions:</h2>
<h3 id="71-q-how-to-update-nrf-rak-t114-seed-xiao-repeater-and-room-server-firmware-over-the-air-using-the-new-simpler-dfu-app">7.1. Q: How to update nRF (RAK, T114, Seed XIAO) repeater and room server firmware over the air using the new simpler DFU app?</h3>
<h3 id="71-q-how-to-update-nrf-rak-t114-seed-xiao-companion-repeater-and-room-server-firmware-over-the-air-using-the-new-simpler-dfu-app">7.1. Q: How to update nRF (RAK, T114, Seed XIAO) companion, repeater and room server firmware over the air using the new simpler DFU app?</h3>
<p><strong>A:</strong> The steps below work on both Android and iOS as nRF has made both apps' user interface the same on both platforms:</p>
<ol>
<li>Download nRF's DFU app from iOS App Store or Android's Play Store, you can find the app by searching for <code>nrf dfu</code>, the app's full name is <code>nRF Device Firmware Update</code></li>
@@ -3057,8 +3084,15 @@ https://www.austinmesh.org/learn/meshcore-vs-meshtastic/</p>
<li>Select the device you want to update. If the device you want to update is not on the list, try enabling<code>OTA</code> on the device again</li>
<li>If the device is not found, enable <code>Force Scanning</code> in the DFU app</li>
<li>Tab the <code>Upload</code> to begin OTA update</li>
<li>If it fails, try turning off and on Bluetooth on your phone. If that doesn't work, try rebooting your phone.</li>
<li>Wait for the update to complete. It can take a few minutes.</li>
<li>If it fails, try turning off and on Bluetooth on your phone. If that doesn't work, try rebooting your phone. If you keep getting failures at the "Enabling Bootloader" step, try forgetting the NRF board in your IOS or Andriod device's bluetooth settings and re-pair it through the DFU app.</li>
<li>Wait for the update to complete. It can take a few minutes. </li>
<li>It is strongly recommended that you install and use the OTAFIX bootloader at https://github.com/oltaco/Adafruit_nRF52_Bootloader_OTAFIX. </li>
<li>To update a companion node over OTA, it must be running companion firmware v1.15 or greater. </li>
<li>Please see the Meshcore Blog for additional information on OTA firmware flashing: <ul>
<li>https://blog.meshcore.io/2026/04/06/otafix-bootloader</li>
<li>https://blog.meshcore.io/2026/04/02/nrf-ota-update</li>
</ul>
</li>
</ol>
<h4 id="711-q-can-i-update-seeed-studio-wio-tracker-l1-pro-using-ota">7.1.1 Q: Can I update Seeed Studio Wio Tracker L1 Pro using OTA?</h4>
<p><strong>A:</strong> You can flash this safer bootloader to the Wio Tracker L1 Pro

View File

@@ -422,6 +422,33 @@
<li class="md-nav__item">
<a href="number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="packet_format/" class="md-nav__link">

View File

@@ -793,6 +793,33 @@
<li class="md-nav__item">
<a href="../number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../packet_format/" class="md-nav__link">

View File

@@ -16,7 +16,7 @@
<link rel="prev" href="../kiss_modem_protocol/">
<link rel="next" href="../packet_format/">
<link rel="next" href="../number_allocations/">
@@ -660,6 +660,33 @@
<li class="md-nav__item">
<a href="../number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../packet_format/" class="md-nav__link">
@@ -1100,6 +1127,12 @@
<td>Yes</td>
</tr>
<tr>
<td>GAT562 Mesh Watch13</td>
<td>Yes</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>Promicro nRF52840</td>
<td>No</td>
<td>No</td>

View File

@@ -0,0 +1,711 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Documentation for the open source MeshCore firmware">
<link rel="canonical" href="https://meshcore-dev.github.io/meshcore/number_allocations/">
<link rel="prev" href="../nrf52_power_management/">
<link rel="next" href="../packet_format/">
<link rel="icon" href="../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.6">
<title>Number Allocations - MeshCore Docs</title>
<link rel="stylesheet" href="../assets/stylesheets/main.484c7ddc.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../_stylesheets/extra.css">
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#number-allocations" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href=".." title="MeshCore Docs" class="md-header__button md-logo" aria-label="MeshCore Docs" data-md-component="logo">
<img src="../_assets/meshcore.svg" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
MeshCore Docs
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Number Allocations
</span>
</div>
</div>
</div>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/meshcore-dev/meshcore/" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
</div>
<div class="md-source__repository">
meshcore-dev/meshcore
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href=".." title="MeshCore Docs" class="md-nav__button md-logo" aria-label="MeshCore Docs" data-md-component="logo">
<img src="../_assets/meshcore.svg" alt="logo">
</a>
MeshCore Docs
</label>
<div class="md-nav__source">
<a href="https://github.com/meshcore-dev/meshcore/" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
</div>
<div class="md-source__repository">
meshcore-dev/meshcore
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href=".." class="md-nav__link">
<span class="md-ellipsis">
Introduction
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../cli_commands/" class="md-nav__link">
<span class="md-ellipsis">
CLI Commands
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_protocol/" class="md-nav__link">
<span class="md-ellipsis">
Companion Protocol
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docs/" class="md-nav__link">
<span class="md-ellipsis">
Local Documentation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../faq/" class="md-nav__link">
<span class="md-ellipsis">
Frequently Asked Questions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../kiss_modem_protocol/" class="md-nav__link">
<span class="md-ellipsis">
MeshCore KISS Modem Protocol
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_power_management/" class="md-nav__link">
<span class="md-ellipsis">
nRF52 Power Management
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../packet_format/" class="md-nav__link">
<span class="md-ellipsis">
Packet Format
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../payloads/" class="md-nav__link">
<span class="md-ellipsis">
Payload Format
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../qr_codes/" class="md-nav__link">
<span class="md-ellipsis">
QR Codes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../stats_binary_frames/" class="md-nav__link">
<span class="md-ellipsis">
Stats Binary Frame Structures
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../terminal_chat_cli/" class="md-nav__link">
<span class="md-ellipsis">
Terminal Chat CLI
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<a href="https://github.com/meshcore-dev/meshcore/edit/main/docs/number_allocations.md" title="Edit this page" class="md-content__button md-icon" rel="edit">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg>
</a>
<h1 id="number-allocations">Number Allocations</h1>
<p>This document lists unique numbers/identifiers used in various MeshCore protcol payloads.</p>
<h1 id="group-data-types">Group Data Types</h1>
<p>The <code>PAYLOAD_TYPE_GRP_DATA</code> payloads have a 16-bit data-type field, which identifies which application the packet is for.</p>
<p>To make sure multiple applications can function without interfering with each other, the table below is for reserving various ranges of data-type values. Just modify this table, adding a row, then submit a PR to have it authorised/merged.</p>
<p>NOTE: the range FF00 - FFFF is for use while you're developing, doing POC, and for these you don't need to request to use/allocate.</p>
<p>Once you have a working app/project, you need to be able to demonstrate it exists/works, and THEN request type IDs. So, just use the testing/dev range while developing, then request IDs before you transition to publishing your project.</p>
<table>
<thead>
<tr>
<th>Data-Type range</th>
<th>App name</th>
<th>Contact</th>
</tr>
</thead>
<tbody>
<tr>
<td>0000 - 00FF</td>
<td>-reserved for internal use-</td>
<td></td>
</tr>
<tr>
<td>FF00 - FFFF</td>
<td>-reserved for testing/dev-</td>
<td></td>
</tr>
</tbody>
</table>
<p>(add rows, inside the range 0100 - FEFF for custom apps)</p>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["content.action.edit", "content.code.copy", "search.highlight", "search.suggest"], "search": "../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../assets/javascripts/bundle.79ae519e.min.js"></script>
</body>
</html>

View File

@@ -13,7 +13,7 @@
<link rel="canonical" href="https://meshcore-dev.github.io/meshcore/packet_format/">
<link rel="prev" href="../nrf52_power_management/">
<link rel="prev" href="../number_allocations/">
<link rel="next" href="../payloads/">
@@ -412,6 +412,33 @@
<li class="md-nav__item">
<a href="../number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>

View File

@@ -414,6 +414,33 @@
<li class="md-nav__item">
<a href="../number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../packet_format/" class="md-nav__link">
@@ -1223,7 +1250,7 @@
</tr>
</tbody>
</table>
<h1 id="group-text-message-datagram">Group text message / datagram</h1>
<h1 id="group-text-message">Group text message</h1>
<table>
<thead>
<tr>
@@ -1251,6 +1278,60 @@
</tbody>
</table>
<p>The plaintext contained in the ciphertext matches the format described in <a href="#plain-text-message">plain text message</a>. Specifically, it consists of a four byte timestamp, a flags byte, and the message. The flags byte will generally be <code>0x00</code> because it is a "plain text message". The message will be of the form <code>&lt;sender name&gt;: &lt;message body&gt;</code> (eg., <code>user123: I'm on my way</code>).</p>
<h1 id="group-datagram">Group datagram</h1>
<table>
<thead>
<tr>
<th>Field</th>
<th>Size (bytes)</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>channel hash</td>
<td>1</td>
<td>first byte of SHA256 of channel's shared key</td>
</tr>
<tr>
<td>cipher MAC</td>
<td>2</td>
<td>MAC for encrypted data in next field</td>
</tr>
<tr>
<td>ciphertext</td>
<td>rest of payload</td>
<td>encrypted data, see below for details</td>
</tr>
</tbody>
</table>
<p>The data contained in the ciphertext uses the format below:</p>
<table>
<thead>
<tr>
<th>Field</th>
<th>Size (bytes)</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>data type</td>
<td>2</td>
<td>Identifier for type of data. (See number_allocations.md)</td>
</tr>
<tr>
<td>data len</td>
<td>1</td>
<td>byte length of data</td>
</tr>
<tr>
<td>data</td>
<td>rest of payload</td>
<td>(depends on data type)</td>
</tr>
</tbody>
</table>
<h1 id="control-data">Control data</h1>
<table>
<thead>

View File

@@ -414,6 +414,33 @@
<li class="md-nav__item">
<a href="../number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../packet_format/" class="md-nav__link">

File diff suppressed because one or more lines are too long

View File

@@ -2,50 +2,54 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://meshcore-dev.github.io/meshcore/</loc>
<lastmod>2026-04-08</lastmod>
<lastmod>2026-04-19</lastmod>
</url>
<url>
<loc>https://meshcore-dev.github.io/meshcore/cli_commands/</loc>
<lastmod>2026-04-08</lastmod>
<lastmod>2026-04-19</lastmod>
</url>
<url>
<loc>https://meshcore-dev.github.io/meshcore/companion_protocol/</loc>
<lastmod>2026-04-08</lastmod>
<lastmod>2026-04-19</lastmod>
</url>
<url>
<loc>https://meshcore-dev.github.io/meshcore/docs/</loc>
<lastmod>2026-04-08</lastmod>
<lastmod>2026-04-19</lastmod>
</url>
<url>
<loc>https://meshcore-dev.github.io/meshcore/faq/</loc>
<lastmod>2026-04-08</lastmod>
<lastmod>2026-04-19</lastmod>
</url>
<url>
<loc>https://meshcore-dev.github.io/meshcore/kiss_modem_protocol/</loc>
<lastmod>2026-04-08</lastmod>
<lastmod>2026-04-19</lastmod>
</url>
<url>
<loc>https://meshcore-dev.github.io/meshcore/nrf52_power_management/</loc>
<lastmod>2026-04-08</lastmod>
<lastmod>2026-04-19</lastmod>
</url>
<url>
<loc>https://meshcore-dev.github.io/meshcore/number_allocations/</loc>
<lastmod>2026-04-19</lastmod>
</url>
<url>
<loc>https://meshcore-dev.github.io/meshcore/packet_format/</loc>
<lastmod>2026-04-08</lastmod>
<lastmod>2026-04-19</lastmod>
</url>
<url>
<loc>https://meshcore-dev.github.io/meshcore/payloads/</loc>
<lastmod>2026-04-08</lastmod>
<lastmod>2026-04-19</lastmod>
</url>
<url>
<loc>https://meshcore-dev.github.io/meshcore/qr_codes/</loc>
<lastmod>2026-04-08</lastmod>
<lastmod>2026-04-19</lastmod>
</url>
<url>
<loc>https://meshcore-dev.github.io/meshcore/stats_binary_frames/</loc>
<lastmod>2026-04-08</lastmod>
<lastmod>2026-04-19</lastmod>
</url>
<url>
<loc>https://meshcore-dev.github.io/meshcore/terminal_chat_cli/</loc>
<lastmod>2026-04-08</lastmod>
<lastmod>2026-04-19</lastmod>
</url>
</urlset>

Binary file not shown.

View File

@@ -414,6 +414,33 @@
<li class="md-nav__item">
<a href="../number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../packet_format/" class="md-nav__link">

View File

@@ -412,6 +412,33 @@
<li class="md-nav__item">
<a href="../number_allocations/" class="md-nav__link">
<span class="md-ellipsis">
Number Allocations
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../packet_format/" class="md-nav__link">
@@ -611,9 +638,12 @@
<pre><code>set lon {longitude}
</code></pre>
<p>Sets your advertisement map longitude. (decimal degrees)</p>
<pre><code>set dutycycle {percent}
</code></pre>
<p>Sets the transmit duty cycle limit (1-100%). Example: <code>set dutycycle 10</code> for 10%.</p>
<pre><code>set af {air-time-factor}
</code></pre>
<p>Sets the transmit air-time-factor.</p>
<p>Sets the transmit air-time-factor. Deprecated — use <code>set dutycycle</code> instead.</p>
<pre><code>time {epoch-secs}
</code></pre>
<p>Set the device clock using UNIX epoch seconds. Example: time 1738242833</p>