This commit is contained in:
MarekZegare4
2026-09-19 11:35:22 +00:00
parent b426bc2484
commit bb885d4316
8 changed files with 109 additions and 40 deletions
File diff suppressed because one or more lines are too long
+25 -25
View File
@@ -2,102 +2,102 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/</loc> <loc>https://meshcore-dev.github.io/meshcore/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/cli_commands/</loc> <loc>https://meshcore-dev.github.io/meshcore/cli_commands/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/companion_protocol/</loc> <loc>https://meshcore-dev.github.io/meshcore/companion_protocol/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/docs/</loc> <loc>https://meshcore-dev.github.io/meshcore/docs/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/faq/</loc> <loc>https://meshcore-dev.github.io/meshcore/faq/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/kiss_modem_protocol/</loc> <loc>https://meshcore-dev.github.io/meshcore/kiss_modem_protocol/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/nrf52_power_management/</loc> <loc>https://meshcore-dev.github.io/meshcore/nrf52_power_management/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/number_allocations/</loc> <loc>https://meshcore-dev.github.io/meshcore/number_allocations/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/packet_format/</loc> <loc>https://meshcore-dev.github.io/meshcore/packet_format/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/payloads/</loc> <loc>https://meshcore-dev.github.io/meshcore/payloads/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/qr_codes/</loc> <loc>https://meshcore-dev.github.io/meshcore/qr_codes/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/stats_binary_frames/</loc> <loc>https://meshcore-dev.github.io/meshcore/stats_binary_frames/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/terminal_chat_cli/</loc> <loc>https://meshcore-dev.github.io/meshcore/terminal_chat_cli/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/design/nearby_redesign/</loc> <loc>https://meshcore-dev.github.io/meshcore/design/nearby_redesign/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/design/solo_ui_framework/</loc> <loc>https://meshcore-dev.github.io/meshcore/design/solo_ui_framework/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/design/trail_redesign/</loc> <loc>https://meshcore-dev.github.io/meshcore/design/trail_redesign/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/development/roadmap/</loc> <loc>https://meshcore-dev.github.io/meshcore/development/roadmap/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/solo_features/build_flags/</loc> <loc>https://meshcore-dev.github.io/meshcore/solo_features/build_flags/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/solo_features/external_keyboard/</loc> <loc>https://meshcore-dev.github.io/meshcore/solo_features/external_keyboard/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/solo_features/clock_screen/clock_screen/</loc> <loc>https://meshcore-dev.github.io/meshcore/solo_features/clock_screen/clock_screen/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/solo_features/favourites_dial/favourites_dial/</loc> <loc>https://meshcore-dev.github.io/meshcore/solo_features/favourites_dial/favourites_dial/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/solo_features/message_screen/message_screen/</loc> <loc>https://meshcore-dev.github.io/meshcore/solo_features/message_screen/message_screen/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/solo_features/screen_lock/screen_lock/</loc> <loc>https://meshcore-dev.github.io/meshcore/solo_features/screen_lock/screen_lock/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/solo_features/settings_screen/settings_screen/</loc> <loc>https://meshcore-dev.github.io/meshcore/solo_features/settings_screen/settings_screen/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
<url> <url>
<loc>https://meshcore-dev.github.io/meshcore/solo_features/tools_screen/tools_screen/</loc> <loc>https://meshcore-dev.github.io/meshcore/solo_features/tools_screen/tools_screen/</loc>
<lastmod>2026-09-09</lastmod> <lastmod>2026-09-19</lastmod>
</url> </url>
</urlset> </urlset>
BIN
View File
Binary file not shown.
+48
View File
@@ -966,6 +966,17 @@
</span> </span>
</a> </a>
</li>
<li class="md-nav__item">
<a href="#external-pa-tx-power-curve" class="md-nav__link">
<span class="md-ellipsis">
External PA / TX power curve
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
@@ -1615,6 +1626,17 @@
</span> </span>
</a> </a>
</li>
<li class="md-nav__item">
<a href="#external-pa-tx-power-curve" class="md-nav__link">
<span class="md-ellipsis">
External PA / TX power curve
</span>
</a>
</li> </li>
<li class="md-nav__item"> <li class="md-nav__item">
@@ -1841,6 +1863,32 @@ layered on top of GPS support, not a requirement for it.</p>
</tbody> </tbody>
</table> </table>
<hr /> <hr />
<h3 id="external-pa-tx-power-curve">External PA / TX power curve</h3>
<p>For a board with an always-on external power amplifier after the SX1262. Both
flags are needed together; leave them unset on a bare-SX1262 board.</p>
<table>
<thead>
<tr>
<th>Flag</th>
<th>Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>LORA_TX_POWER=&lt;dBm&gt;</code> / <code>MAX_LORA_TX_POWER=&lt;dBm&gt;</code></td>
<td>Default and ceiling for the TX power the app/CLI may request. The SX1262 alone tops out at 22; a board with a PA sets these to what the PA really delivers (the GAT562 30S sets 30).</td>
</tr>
<tr>
<td><code>NUM_PA_POINTS=&lt;n&gt;</code> + <code>TX_GAIN_LORA=&lt;g0,g1,…&gt;</code></td>
<td>The PA's measured gain in dB for each SX1262 register setting <code>0 … n-1</code>. Requesting <em>X</em> dBm picks the lowest register setting whose <code>setting + gain</code> reaches <em>X</em>, clamped at the last entry once the PA saturates — so the reported power matches the radiated one. A request below the PA's floor gain still radiates at that floor, and the value stored/reported back is the power actually applied.</td>
</tr>
</tbody>
</table>
<p>The GAT562 30S uses the vendor-measured 869 MHz curve from
<a href="https://github.com/meshtastic/firmware/pull/11212">meshtastic/firmware#11212</a>.
Note the on-device <strong>Settings › Radio › TX Pwr</strong> row is still capped at 22 dBm;
values above that are set from the phone app or the CLI.</p>
<hr />
<h3 id="misc">Misc</h3> <h3 id="misc">Misc</h3>
<table> <table>
<thead> <thead>
@@ -1828,9 +1828,9 @@
<td><code>lat lon</code> decimal degrees, or <code>no fix</code></td> <td><code>lat lon</code> decimal degrees, or <code>no fix</code></td>
</tr> </tr>
<tr> <tr>
<td>Altitude</td> <td>Altitude (Baro)</td>
<td>Alt</td> <td>Alt</td>
<td>metres from onboard sensor (GPS or barometric)</td> <td>metres/feet (per Settings › System › Units) from onboard barometric sensor (<code>--</code> without one)</td>
</tr> </tr>
<tr> <tr>
<td>Luminosity</td> <td>Luminosity</td>
@@ -1857,6 +1857,11 @@
<td>Sats</td> <td>Sats</td>
<td>GPS satellite count (or <code>--</code> without GPS)</td> <td>GPS satellite count (or <code>--</code> without GPS)</td>
</tr> </tr>
<tr>
<td>Altitude (GPS)</td>
<td>AltG</td>
<td>metres/feet (per Settings › System › Units) from the GPS fix (or <code>no fix</code>)</td>
</tr>
</tbody> </tbody>
</table> </table>
<p>Sensor fields show <code>--</code> when the sensor is not connected or has no data.</p> <p>Sensor fields show <code>--</code> when the sensor is not connected or has no data.</p>
@@ -1850,7 +1850,8 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
<p>Messages appear as chat bubbles sized to their content — <strong>right</strong>-anchored for outgoing, <strong>left</strong> for incoming — with sender name and a compact age indicator (<code>3m</code>, <code>2h</code>, <code>&gt;1d</code>) in the top-right corner. List runs <strong>newest at the bottom</strong>; opening a history starts at the latest message, scrolling up goes further back.</p> <p>Messages appear as chat bubbles sized to their content — <strong>right</strong>-anchored for outgoing, <strong>left</strong> for incoming — with sender name and a compact age indicator (<code>3m</code>, <code>2h</code>, <code>&gt;1d</code>) in the top-right corner. List runs <strong>newest at the bottom</strong>; opening a history starts at the latest message, scrolling up goes further back. The list wraps at both ends like every other list: <strong>UP</strong> at the oldest message jumps to the newest, and <strong>DOWN</strong> past the newest lands on the compose row and then wraps to the oldest.</p>
<p>A tiny digit icon on a bubble is its hop count: on your own messages, how many repeaters echoed them back; on a <strong>received</strong> DM or channel post, how many hops it took to reach you. A received message always shows a time — if its timestamp is unknown or reads slightly ahead of this device's clock (sender/receiver clock skew, or the clock isn't synced yet), the receipt time is shown instead. In a channel history the title carries the channel's scope in brackets (<code>name [scope]</code>) whenever it is set to anything but <code>*</code>.</p>
<p><strong>Short Enter</strong> on a message opens it in fullscreen. <strong>Hold Enter</strong> — on a history row or in fullscreen — opens the same options menu: Reply, plus <strong>Navigate</strong> / <strong>Save waypoint</strong> / <strong>Set as target</strong> when the message contains a location, and <strong>Path</strong> / <strong>Relayed by</strong> when hop data is available (see Fullscreen message view). You don't need to open the message first.</p> <p><strong>Short Enter</strong> on a message opens it in fullscreen. <strong>Hold Enter</strong> — on a history row or in fullscreen — opens the same options menu: Reply, plus <strong>Navigate</strong> / <strong>Save waypoint</strong> / <strong>Set as target</strong> when the message contains a location, and <strong>Path</strong> / <strong>Relayed by</strong> when hop data is available (see Fullscreen message view). You don't need to open the message first.</p>
<hr /> <hr />
<h3 id="fullscreen-message-view">Fullscreen message view</h3> <h3 id="fullscreen-message-view">Fullscreen message view</h3>
@@ -2018,6 +2019,10 @@
<td>Add or remove this channel from favourites — <strong>LEFT/RIGHT</strong> or <strong>Enter</strong> to toggle</td> <td>Add or remove this channel from favourites — <strong>LEFT/RIGHT</strong> or <strong>Enter</strong> to toggle</td>
</tr> </tr>
<tr> <tr>
<td>Scope: <name></td>
<td><strong>Enter</strong> opens a picker over the shared scope list (Settings › Radio › Scope) — <code>*</code> sends this channel unscoped, any named scope tags its flood traffic with that region. Each channel keeps its own pick, matching the phone app's per-channel region picker.</td>
</tr>
<tr>
<td>Pin to dial / Unpin (slot N)</td> <td>Pin to dial / Unpin (slot N)</td>
<td>Pin this channel to a <a href="../../favourites_dial/favourites_dial/">Favourites Dial</a> slot</td> <td>Pin this channel to a <a href="../../favourites_dial/favourites_dial/">Favourites Dial</a> slot</td>
</tr> </tr>
@@ -1803,6 +1803,11 @@
<td>OFF / 5 / 10 / 20 / 30</td> <td>OFF / 5 / 10 / 20 / 30</td>
<td>Partial refreshes between full clears; reduces ghosting on long sessions</td> <td>Partial refreshes between full clears; reduces ghosting on long sessions</td>
</tr> </tr>
<tr>
<td>Msg wake</td>
<td>ON / OFF</td>
<td>Whether an incoming message turns the display back on when it was off and no phone/app is connected (default ON — today's behaviour either way).</td>
</tr>
</tbody> </tbody>
</table> </table>
<hr /> <hr />
@@ -1846,11 +1851,6 @@
<td>All / Zero-hop</td> <td>All / Zero-hop</td>
<td>Filters the AD sound so it plays for every advert or only for local zero-hop adverts.</td> <td>Filters the AD sound so it plays for every advert or only for local zero-hop adverts.</td>
</tr> </tr>
<tr>
<td>Msg wake</td>
<td>ON / OFF</td>
<td>Whether an incoming message turns the display back on when it was off and no phone/app is connected (default ON — today's behaviour either way).</td>
</tr>
</tbody> </tbody>
</table> </table>
<p>Melody 1 and Melody 2 are custom sequences editable in <strong>Tools › Ringtone Editor</strong>.</p> <p>Melody 1 and Melody 2 are custom sequences editable in <strong>Tools › Ringtone Editor</strong>.</p>
@@ -1890,7 +1890,7 @@
<tr> <tr>
<td>TX Pwr</td> <td>TX Pwr</td>
<td>2–22 dBm</td> <td>2–22 dBm</td>
<td>LEFT/RIGHT. With <strong>Auto pwr</strong> on this is the <em>ceiling</em> — the radio may transmit lower.</td> <td>LEFT/RIGHT. With <strong>Auto pwr</strong> on this is the <em>ceiling</em> — the radio may transmit lower. On the <strong>GAT562 30S</strong> (external 30 dBm PA) the requested power maps through the PA's measured gain curve, so the stored value matches what is radiated; this row stays capped at 22, while the phone app / CLI can request up to 30 dBm — see <a href="../../build_flags/#external-pa--tx-power-curve">Build Flags › External PA</a>.</td>
</tr> </tr>
<tr> <tr>
<td>Preset</td> <td>Preset</td>
@@ -1929,8 +1929,8 @@
</tr> </tr>
<tr> <tr>
<td>Scope</td> <td>Scope</td>
<td>text</td> <td>list</td>
<td>Names your device's radio "community" (e.g. <code>pl</code>) — typing a name derives a shared key the same way on every device, so any device that types the same name lands on the same scope automatically, no key exchange needed. Tags this device's own DM/channel sends so repeaters can tell your community's flood traffic apart from others sharing the same frequency; paired with <strong>Tools › Repeater › Scope only</strong>, it's also what this device relays for in repeater mode. Not encryption — message content is unaffected either way. <strong>Enter</strong> opens the keyboard; empty clears it (unscoped, the previous default).</td> <td>Shows the list's <strong>default</strong> scope. <strong>Enter</strong> opens the <strong>SCOPE</strong> list: <code>*</code> (wildcard = unscoped, always first, can't be renamed or deleted) plus up to 8 named scopes of your own (e.g. <code>pl</code>). Typing a name derives a shared key the same way on every device, so any device that types the same name lands on the same scope automatically, no key exchange needed. <strong>Enter</strong> on a row opens <strong>Set as default</strong> / <strong>Rename</strong> / <strong>Delete</strong> (delete confirms first); <strong>+ Add scope</strong> at the bottom opens the keyboard. The <strong>default</strong> scope (marked <code>[default]</code>) governs <strong>DMs</strong> and the <strong>repeater's own relay slot</strong>; each <strong>channel</strong> carries its own pick — set from the channel's context menu (see <a href="../../message_screen/message_screen/">Message Screen</a>) — and a channel left on <code>*</code> sends unscoped. Scopes tag flood traffic so repeaters can tell your community's messages apart from others sharing the same frequency; paired with <strong>Tools › Repeater › Scope only</strong> it's also what this device relays for in repeater mode. The default also syncs both ways with the phone app's default-scope setting. Not encryption — message content is unaffected either way. Upgrading from a build with the old single Scope field carries it over as the default entry and seeds every existing channel with it, so nothing changes on the air.</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@@ -2060,10 +2060,21 @@
<td>ON / OFF</td> <td>ON / OFF</td>
<td>Sort favourites to the top of every list (default ON)</td> <td>Sort favourites to the top of every list (default ON)</td>
</tr> </tr>
<tr>
<td>Expire</td>
<td>Off / 7d / 30d / 90d</td>
<td>Age after which a contact with no advert/update counts as inactive (default Off). Only used by <strong>Prune now</strong> — nothing is ever deleted automatically.</td>
</tr>
<tr>
<td>Prune now</td>
<td>action (<strong>Enter</strong>)</td>
<td>Counts the contacts older than <strong>Expire</strong>, then asks <code>Remove N contacts?</code> (defaults to Cancel) before deleting anything. Shows <code>Expire is Off</code> / <code>No inactive contacts</code> instead when there is nothing to do.</td>
</tr>
</tbody> </tbody>
</table> </table>
<p>Favourites are set per item in its context menu (<strong>Hold Enter</strong> › <strong>Fav: ON / OFF</strong>) — see <a href="../../message_screen/message_screen/">Message Screen</a>, and the same row exists in Tools › Nodes. A contact's or room's favourite flag is the same one the companion app shows as a starred contact, so it syncs both ways; a channel's is device-only.</p> <p>Favourites are set per item in its context menu (<strong>Hold Enter</strong> › <strong>Fav: ON / OFF</strong>) — see <a href="../../message_screen/message_screen/">Message Screen</a>, and the same row exists in Tools › Nodes. A contact's or room's favourite flag is the same one the companion app shows as a starred contact, so it syncs both ways; a channel's is device-only.</p>
<p>A favourite is marked with a ★ on its row wherever it is listed, and — unless <strong>Favs top</strong> is off — sorted above everything else. The three filters above are independent of that: they control what's <em>listed at all</em>, the sort only controls the order.</p> <p>A favourite is marked with a ★ on its row wherever it is listed, and — unless <strong>Favs top</strong> is off — sorted above everything else. The three filters above are independent of that: they control what's <em>listed at all</em>, the sort only controls the order.</p>
<p><strong>Pruning.</strong> A contact is inactive when its last advert/update is older than <strong>Expire</strong>. <strong>Favourites are never pruned</strong>, and neither is a contact with no timestamp or one that reads ahead of the device's own clock (e.g. the clock isn't set yet) — the rule only ever errs on the side of keeping data.</p>
<hr /> <hr />
<h3 id="messages">Messages</h3> <h3 id="messages">Messages</h3>
<table> <table>
@@ -3230,12 +3230,12 @@ Mark the spot first with <strong>Tools › Trail → Hold Enter → Mark here</s
<tr> <tr>
<td>Scope only</td> <td>Scope only</td>
<td>ON / OFF</td> <td>ON / OFF</td>
<td>Only forward flood traffic matching this device's own <strong>Scope</strong> (Settings › Radio) or one of the <strong>Extra scopes</strong> below — drops unscoped floods and floods tagged for a different community. No-op while neither is set, so switching this on with no scope configured can't silently stop all relaying.</td> <td>Only forward flood traffic matching this device's own default <strong>Scope</strong> (Settings › Radio) or one of the <strong>Extra scopes</strong> below — drops unscoped floods and floods tagged for a different community. No-op while neither is set, so switching this on with no scope configured can't silently stop all relaying.</td>
</tr> </tr>
<tr> <tr>
<td>Extra scopes</td> <td>Extra scopes</td>
<td>text</td> <td>pick list</td>
<td>Comma-separated extra region names this repeater also relays for (e.g. <code>eu,de</code>), on top of its own Settings › Radio › <strong>Scope</strong> — relay-only, never changes what scope this device's own messages send under. <strong>Enter</strong> opens the keyboard.</td> <td>Extra scopes this repeater also relays for, on top of its own Settings › Radio default <strong>Scope</strong> — relay-only, never changes what scope this device's own messages send under. Shows <code>N picked</code>. <strong>Enter</strong> opens a checklist of the Settings › Radio scope list (<strong>Enter</strong> toggles a row, <strong>Back</strong> closes); at most 4 are active. Shows <code>No scopes defined</code> until at least one named scope exists.</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>