This commit is contained in:
mikecarper committed 2026-09-08 20:51:43 +00:00
1 parent efbff3f9fd
commit 4e1a2b32ed
55 files changed
+13852 -200

No files matched your search

+112 -4
View File
@@ -355,6 +355,60 @@
<li class="md-nav__item">
<a href="/MeshCore/companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/MeshCore/companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/MeshCore/companion_offline_queue/" class="md-nav__link">
@@ -922,6 +976,33 @@
<li class="md-nav__item">
<a href="/MeshCore/nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/MeshCore/nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1435,6 +1516,33 @@
<li class="md-nav__item">
<a href="/MeshCore/v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1444,10 +1552,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1465,8 +1573,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -540,6 +540,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1107,6 +1161,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1620,6 +1701,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1629,10 +1737,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1650,8 +1758,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -490,6 +490,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1057,6 +1111,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1570,6 +1651,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1579,10 +1687,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1600,8 +1708,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -595,6 +595,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1162,6 +1216,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1675,6 +1756,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1684,10 +1792,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1705,8 +1813,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+113 -5
View File
@@ -16,7 +16,7 @@
<link rel="prev" href="../cli_command_availability/">
<link rel="next" href="../companion_offline_queue/">
<link rel="next" href="../companion_contact_cache/">
@@ -2391,6 +2391,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -2958,6 +3012,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -3471,6 +3552,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -3480,10 +3588,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -3501,8 +3609,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+113 -5
View File
@@ -13,7 +13,7 @@
<link rel="canonical" href="https://mikecarper.github.io/MeshCore/companion_offline_queue/">
<link rel="prev" href="../cli_commands/">
<link rel="prev" href="../companion_contact_cache_results/">
<link rel="next" href="../companion_protocol/">
@@ -364,6 +364,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
@@ -1002,6 +1056,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1515,6 +1596,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1524,10 +1632,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1545,8 +1653,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1567,6 +1621,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -2080,6 +2161,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -2089,10 +2197,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -2110,8 +2218,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1124,6 +1178,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1637,6 +1718,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1646,10 +1754,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1667,8 +1775,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -991,6 +1045,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1504,6 +1585,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1513,10 +1621,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1534,8 +1642,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1002,6 +1056,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1515,6 +1596,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1524,10 +1632,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1545,8 +1653,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1964,6 +2018,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -2477,6 +2558,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -2486,10 +2594,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -2507,8 +2615,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1024,6 +1078,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1537,6 +1618,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1546,10 +1654,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1567,8 +1675,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+121 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1002,6 +1056,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1515,6 +1596,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1524,10 +1632,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1545,8 +1653,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
@@ -1740,6 +1848,11 @@ color framebuffer must have at least 72 KiB available before startup allocations
Headless and OLED devices use their own smaller totals. The JSON lists each
component and checks the largest available region against the largest planned
single allocation.</p>
<p>The <a href="../v4_pixel5_font_trial/">small-screen message layout</a> retains complete
160-byte messages. Its expanded preview records add 2,816 bytes to the
startup allowance and increase the contiguous history allocation budget.
The V4 can allocate that history in PSRAM; the guard conservatively reserves
internal capacity so that PSRAM availability cannot hide a RAM shortage.</p>
<p>These are engineering allowances for supported configurations, not measured
free heap after boot or a guarantee against every future allocation failure.
Unknown platforms, unknown display drivers and missing linker metadata fail
@@ -1753,6 +1866,10 @@ refuses the loan; sync messages with an app first. USB/TCP source detach or
disconnect returns all 256 slots and releases the ESP32 proof/leaf scratch
buffers. The display and simultaneous USB, Bluetooth and WiFi remain enabled.</p>
<h2 id="release-evidence-and-regression-tests">Release evidence and regression tests</h2>
<p>Full Companions without PSRAM also use
<a href="../companion_contact_cache/">16-entry path and shared-secret caches</a>.
The optional NimBLE capacity trials retain the same RAM guards at 350
contacts and 256 normal offline frames.</p>
<p>Each newly built firmware has a matching <code>.memory.json</code> report. It records
the linked ELF SHA-256, available internal RAM, required RAM, largest region,
and SHA-256 hashes for the actual firmware files and capability manifest.
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1068,6 +1122,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1581,6 +1662,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1590,10 +1698,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1611,8 +1719,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1163,6 +1217,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1676,6 +1757,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1685,10 +1793,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1706,8 +1814,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1035,6 +1089,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1548,6 +1629,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1557,10 +1665,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1578,8 +1686,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1140,6 +1194,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1653,6 +1734,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1662,10 +1770,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1683,8 +1791,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1046,6 +1100,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1559,6 +1640,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1568,10 +1676,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1589,8 +1697,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1101,6 +1155,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1614,6 +1695,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1623,10 +1731,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1644,8 +1752,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1057,6 +1111,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1570,6 +1651,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1579,10 +1687,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1600,8 +1708,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1151,6 +1205,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1664,6 +1745,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1673,10 +1781,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1694,8 +1802,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1046,6 +1100,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1559,6 +1640,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1568,10 +1676,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1589,8 +1697,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+113 -4
View File
@@ -374,6 +374,60 @@
<li class="md-nav__item">
<a href="companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="companion_offline_queue/" class="md-nav__link">
@@ -941,6 +995,33 @@
<li class="md-nav__item">
<a href="nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1454,6 +1535,33 @@
<li class="md-nav__item">
<a href="v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1463,10 +1571,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1484,8 +1592,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
@@ -1618,6 +1726,7 @@
<li><a href="telemetry_decoder/">Telemetry Decoder</a></li>
<li><a href="cli_build_matrix/">CLI Availability by Firmware Build</a></li>
<li><a href="esp32_memory_budget/">Classic ESP32 image memory budget</a></li>
<li><a href="companion_contact_cache/">Full Companion contact caches and capacity trials</a></li>
<li><a href="ota_easy/">Easy LoRa OTA: ESP32 and nRF52 firmware updates</a></li>
<li><a href="lora_ota_automation/">Scripted LoRa OTA: Bash and PowerShell</a></li>
<li><a href="ota_nrf52_qspi/">nRF52 repeater OTA with external QSPI</a></li>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1323,6 +1377,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1836,6 +1917,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1845,10 +1953,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1866,8 +1974,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1151,6 +1205,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1664,6 +1745,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1673,10 +1781,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1694,8 +1802,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1113,6 +1167,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1626,6 +1707,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1635,10 +1743,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1656,8 +1764,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+127 -6
View File
@@ -16,7 +16,7 @@
<link rel="prev" href="../mbedtls-tls-footprint/">
<link rel="next" href="../nrf52_companion_storage_recovery/">
<link rel="next" href="../nimble_companion_trial_results/">
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -1024,6 +1078,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1537,6 +1618,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1546,10 +1654,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1567,8 +1675,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
@@ -1740,6 +1848,12 @@
<p>These optional builds use NimBLE-Arduino 2.5.1 with the existing ESP32 Arduino
2.0.17 toolchain. They are hardware qualification builds, outside the normal
release matrix and firmware picker.</p>
<p>See the <a href="../nimble_companion_trial_results/">2026-09-08 hardware results</a> for
measured RAM, MAC-policy checks, WiFi updates, and remaining qualification.</p>
<p>The <a href="../companion_contact_cache/">contact-cache guide</a> adds six optional
350-contact trials for ESP32 boards without PSRAM, including Heltec V3.
Their <a href="../companion_contact_cache_results/">qualification results</a> include
linked RAM margins, V4/RAK hardware tests and the mOTA queue policy.</p>
<table>
<thead>
<tr>
@@ -1771,6 +1885,9 @@ release matrix and firmware picker.</p>
It is not the generic XIAO profile for separately wired radio modules. Both
boards retain their parent Full Companion features, USB mOTA sender, WiFi
update slots, and PSRAM-backed offline queue. The V4 also retains direct MQTT.</p>
<p>The <a href="../v4_pixel5_font_trial/">small-screen Picopixel layout</a> uses 5-pixel
capital letters, a compact channel/sender line and full message previews.
A named V4 trial profile is available for hardware qualification.</p>
<h2 id="build">Build</h2>
<p>Enable the optional configuration in the ignored <code>platformio.local.ini</code>:</p>
<pre><code class="language-ini">[platformio]
@@ -1867,6 +1984,7 @@ python3 -B test/test_heltec_v4_wifi_setup_page.py
python3 -B test/test_firmware_ram.py
python3 -B test/test_esp32_dram.py
python3 -B test/test_shared_mota_queue.py
python3 -B test/test_companion_mqtt_stack.py
pio test -e native -f test_companion_node_prefs \
-f test_ble_tx_stall_watchdog -f test_companion_frame_queue \
-f test_display_driver
@@ -1876,7 +1994,10 @@ sanitizers with API doubles. It injects allocation, identity and bond failures;
checks PIN authentication and stealth; and exercises 176-byte frames, MTU and
notification subscription gating, retry and duplicate prevention. Embedded
builds compile against the pinned real library. RAM reports retain the existing
wireless budget; linked headroom is not a measurement of live free heap.</p>
wireless budget; linked headroom is not a measurement of live free heap.
The MQTT save callback also has a compiler-enforced stack-frame regression
check: nested preference copies previously overflowed the V4 loop task when
saving MQTT settings through WebConfig, despite sufficient free heap.</p>
<p>Hardware qualification must additionally verify pairing and reconnection,
advertised addresses for every MAC policy, contact synchronization, WiFi/BLE
coexistence, and uptime under load. BlueZ results do not establish iOS or
File diff suppressed because it is too large. Load diff
+113 -5
View File
@@ -13,7 +13,7 @@
<link rel="canonical" href="https://mikecarper.github.io/MeshCore/nrf52_companion_storage_recovery/">
<link rel="prev" href="../nimble_companion_trial/">
<link rel="prev" href="../nimble_companion_trial_results/">
<link rel="next" href="../nrf52_power_management/">
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -931,6 +985,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
@@ -1526,6 +1607,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1535,10 +1643,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1556,8 +1664,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1692,6 +1773,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1701,10 +1809,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1722,8 +1830,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1456,6 +1537,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1465,10 +1573,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1486,8 +1594,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1687,6 +1768,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1696,10 +1804,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1717,8 +1825,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1576,6 +1657,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1585,10 +1693,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1606,8 +1714,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1548,6 +1629,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1557,10 +1665,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1578,8 +1686,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1576,6 +1657,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1585,10 +1693,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1606,8 +1714,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1809,6 +1890,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1818,10 +1926,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1839,8 +1947,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1692,6 +1773,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1701,10 +1809,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1722,8 +1830,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1576,6 +1657,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1585,10 +1693,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1606,8 +1714,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1847,6 +1928,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1856,10 +1964,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1877,8 +1985,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1515,6 +1596,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1524,10 +1632,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1545,8 +1653,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1709,6 +1790,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1718,10 +1826,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1739,8 +1847,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+113 -5
View File
@@ -13,7 +13,7 @@
<link rel="canonical" href="https://mikecarper.github.io/MeshCore/releases/1.17.1.5-doc-audit/">
<link rel="prev" href="../../usb_serial_backpressure/">
<link rel="prev" href="../../v4_pixel5_font_trial/">
<link rel="next" href="../1.17.1.5/">
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1444,6 +1525,33 @@
<li class="md-nav__item">
<a href="../../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1457,10 +1565,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" checked>
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1478,8 +1586,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -364,6 +364,60 @@
<li class="md-nav__item">
<a href="../../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../companion_offline_queue/" class="md-nav__link">
@@ -931,6 +985,33 @@
<li class="md-nav__item">
<a href="../../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1442,6 +1523,33 @@
<li class="md-nav__item">
<a href="../../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1455,10 +1563,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" checked>
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1476,8 +1584,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1604,6 +1685,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1613,10 +1721,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1634,8 +1742,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+1 -1
View File
@@ -1 +1 @@
{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"Introduction","text":"<p>Welcome to the MeshCore documentation.</p> <p>Below are a few quick start guides.</p> <ul> <li>1.17.1.5 Markdown audit</li> <li>1.17.1.5 USA Cascade release</li> <li>Feature switches by role: Companion, Repeater, Room Server, Sensor</li> <li>USB web console</li> <li>Full Companion feature switches</li> <li>Frequently Asked Questions</li> <li>Firmware Picker</li> <li>CLI Commands</li> <li>LoRa CLI Host Service</li> <li>Filter Policy Playground</li> <li>Telemetry Decoder</li> <li>CLI Availability by Firmware Build</li> <li>Classic ESP32 image memory budget</li> <li>Easy LoRa OTA: ESP32 and nRF52 firmware updates</li> <li>Scripted LoRa OTA: Bash and PowerShell</li> <li>nRF52 repeater OTA with external QSPI</li> <li>nRF52 bootloader updates over LoRa</li> <li>MeshTower V2 microSD self-updates</li> <li>GPS Tracking</li> <li>Companion Protocol</li> <li>Companion Offline Message Queue</li> <li>Full Companion: ESP32 and nRF52</li> <li>Full Companion USB CLI and binary switcher</li> <li>Packet Format</li> <li>QR Codes</li> </ul> <p>If you find a mistake in any of our documentation, or find something is missing, please feel free to open a pull request for us to review.</p> <ul> <li>Documentation Source</li> </ul>"},{"location":"WiFi/","title":"WiFi and MQTT by Firmware Type","text":"<p>MeshCore itself does not require WiFi or the internet. LoRa packet exchange, repeating, room servers, companions, and sensors can all operate without either. WiFi is added by particular ESP32 firmware targets for one or more of these purposes:</p> <ul> <li>a TCP connection between a WiFi companion and a phone or computer;</li> <li>the WebConfig browser interface;</li> <li>MQTT uplinking from the radio to internet or LAN brokers;</li> <li>WiFi-assisted OTA services on builds that include them;</li> <li>ESP-NOW bridging, which uses the ESP32's 2.4 GHz radio but is not a connection to a WiFi access point.</li> </ul> <p>The firmware role and the build profile are separate choices. USB logging does not itself provide MQTT. MQTT-capable Full Companions include that feature without <code>mqtt</code> in their filename; check the artifact capability manifest. See feature switches by role for the different Companion and infrastructure controls and the USB web console.</p>"},{"location":"WiFi/#quick-reference","title":"Quick reference","text":"Firmware target or role Infrastructure WiFi MQTT What WiFi does <code>*_repeater</code> Build-dependent on ESP32 No FULL builds provide WebConfig, browser OTA, and the TCP 5001 LoRa-OTA seeder while WiFi is active <code>*_repeater_observer_mqtt</code> Yes Yes Uplinks heard and selected transmitted LoRa packets; repeating remains enabled by default <code>*_room_server</code> Build-dependent on ESP32 No FULL builds provide WebConfig, browser OTA, and the TCP 5001 LoRa-OTA seeder while WiFi is active <code>*_room_server_observer_mqtt</code> Yes Yes Runs the room server and uplinks radio traffic <code>*_companion_radio_wifi</code> Yes No Exposes the MeshCore companion protocol on TCP port 5000 <code>*_companion_radio_wifi_mqtt</code> Yes Yes Runs both the TCP companion interface and the MQTT uplink <code>*_companion_radio_full*</code> ESP32, subject to board/transport selection Where compiled on ESP32 Includes supported USB/wireless transports; configure MQTT through WebConfig Dedicated USB, BLE, or serial companion (not Full) No No Uses the transport named by the target instead <code>*_repeater_bridge_espnow</code> Build-dependent on ESP32 No Uses ESP-NOW for its bridge; <code>bridge.format wrapped|raw</code> selects legacy bridge framing or primary-ESP-NOW compatibility; a FULL build also exposes the TCP 5001 LoRa-OTA seeder whenever WiFi is usable RS232 bridge No No Bridges through a serial interface Ethernet repeater/room server No WiFi No Uses wired Ethernet for its role-specific network interface <code>*_sensor</code> Build-dependent on ESP32 No A FULL ESP32 sensor can expose the TCP 5001 LoRa-OTA seeder through its browser-OTA setup AP Terminal-chat or KISS modem No in current targets No Uses LoRa and its role-specific local interface <code>*_lora_ota_no_external_sensors</code> On demand on ESP32 No Lean LoRa-OTA repeater image; ESP32 builds retain the compact <code>start ota</code> browser uploader <p>Direct on-device WiFi and MQTT are currently ESP32 features. nRF52, STM32, and the currently enabled RP2040 targets do not run this MQTT bridge. An nRF52 connected to a Raspberry Pi can still be logged or uplinked by software on the Pi, but that is a separate host-side bridge rather than MQTT running in the radio firmware.</p>"},{"location":"WiFi/#how-the-mqtt-bridge-works","title":"How the MQTT bridge works","text":"<p>The MQTT bridge is an outbound observer. It does not subscribe to MLine truncated
{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"Introduction","text":"<p>Welcome to the MeshCore documentation.</p> <p>Below are a few quick start guides.</p> <ul> <li>1.17.1.5 Markdown audit</li> <li>1.17.1.5 USA Cascade release</li> <li>Feature switches by role: Companion, Repeater, Room Server, Sensor</li> <li>USB web console</li> <li>Full Companion feature switches</li> <li>Frequently Asked Questions</li> <li>Firmware Picker</li> <li>CLI Commands</li> <li>LoRa CLI Host Service</li> <li>Filter Policy Playground</li> <li>Telemetry Decoder</li> <li>CLI Availability by Firmware Build</li> <li>Classic ESP32 image memory budget</li> <li>Full Companion contact caches and capacity trials</li> <li>Easy LoRa OTA: ESP32 and nRF52 firmware updates</li> <li>Scripted LoRa OTA: Bash and PowerShell</li> <li>nRF52 repeater OTA with external QSPI</li> <li>nRF52 bootloader updates over LoRa</li> <li>MeshTower V2 microSD self-updates</li> <li>GPS Tracking</li> <li>Companion Protocol</li> <li>Companion Offline Message Queue</li> <li>Full Companion: ESP32 and nRF52</li> <li>Full Companion USB CLI and binary switcher</li> <li>Packet Format</li> <li>QR Codes</li> </ul> <p>If you find a mistake in any of our documentation, or find something is missing, please feel free to open a pull request for us to review.</p> <ul> <li>Documentation Source</li> </ul>"},{"location":"WiFi/","title":"WiFi and MQTT by Firmware Type","text":"<p>MeshCore itself does not require WiFi or the internet. LoRa packet exchange, repeating, room servers, companions, and sensors can all operate without either. WiFi is added by particular ESP32 firmware targets for one or more of these purposes:</p> <ul> <li>a TCP connection between a WiFi companion and a phone or computer;</li> <li>the WebConfig browser interface;</li> <li>MQTT uplinking from the radio to internet or LAN brokers;</li> <li>WiFi-assisted OTA services on builds that include them;</li> <li>ESP-NOW bridging, which uses the ESP32's 2.4 GHz radio but is not a connection to a WiFi access point.</li> </ul> <p>The firmware role and the build profile are separate choices. USB logging does not itself provide MQTT. MQTT-capable Full Companions include that feature without <code>mqtt</code> in their filename; check the artifact capability manifest. See feature switches by role for the different Companion and infrastructure controls and the USB web console.</p>"},{"location":"WiFi/#quick-reference","title":"Quick reference","text":"Firmware target or role Infrastructure WiFi MQTT What WiFi does <code>*_repeater</code> Build-dependent on ESP32 No FULL builds provide WebConfig, browser OTA, and the TCP 5001 LoRa-OTA seeder while WiFi is active <code>*_repeater_observer_mqtt</code> Yes Yes Uplinks heard and selected transmitted LoRa packets; repeating remains enabled by default <code>*_room_server</code> Build-dependent on ESP32 No FULL builds provide WebConfig, browser OTA, and the TCP 5001 LoRa-OTA seeder while WiFi is active <code>*_room_server_observer_mqtt</code> Yes Yes Runs the room server and uplinks radio traffic <code>*_companion_radio_wifi</code> Yes No Exposes the MeshCore companion protocol on TCP port 5000 <code>*_companion_radio_wifi_mqtt</code> Yes Yes Runs both the TCP companion interface and the MQTT uplink <code>*_companion_radio_full*</code> ESP32, subject to board/transport selection Where compiled on ESP32 Includes supported USB/wireless transports; configure MQTT through WebConfig Dedicated USB, BLE, or serial companion (not Full) No No Uses the transport named by the target instead <code>*_repeater_bridge_espnow</code> Build-dependent on ESP32 No Uses ESP-NOW for its bridge; <code>bridge.format wrapped|raw</code> selects legacy bridge framing or primary-ESP-NOW compatibility; a FULL build also exposes the TCP 5001 LoRa-OTA seeder whenever WiFi is usable RS232 bridge No No Bridges through a serial interface Ethernet repeater/room server No WiFi No Uses wired Ethernet for its role-specific network interface <code>*_sensor</code> Build-dependent on ESP32 No A FULL ESP32 sensor can expose the TCP 5001 LoRa-OTA seeder through its browser-OTA setup AP Terminal-chat or KISS modem No in current targets No Uses LoRa and its role-specific local interface <code>*_lora_ota_no_external_sensors</code> On demand on ESP32 No Lean LoRa-OTA repeater image; ESP32 builds retain the compact <code>start ota</code> browser uploader <p>Direct on-device WiFi and MQTT are currently ESP32 features. nRF52, STM32, and the currently enabled RP2040 targets do not run this MQTT bridge. An nRF52 connected to a Raspberry Pi can still be logged or uplinked by software on the Pi, but that is a separate host-side bridge rather than MQTT running in the radio firmware.</p>"},{"location":"WiFi/#how-the-mqtt-bridge-works","title":"How the MQTT bridge works","text":"<p>The MQTTLine truncated
+16
View File
@@ -20,6 +20,14 @@
<loc>https://mikecarper.github.io/MeshCore/cli_commands/</loc>
<lastmod>2026-09-08</lastmod>
</url>
<url>
<loc>https://mikecarper.github.io/MeshCore/companion_contact_cache/</loc>
<lastmod>2026-09-08</lastmod>
</url>
<url>
<loc>https://mikecarper.github.io/MeshCore/companion_contact_cache_results/</loc>
<lastmod>2026-09-08</lastmod>
</url>
<url>
<loc>https://mikecarper.github.io/MeshCore/companion_offline_queue/</loc>
<lastmod>2026-09-08</lastmod>
@@ -104,6 +112,10 @@
<loc>https://mikecarper.github.io/MeshCore/nimble_companion_trial/</loc>
<lastmod>2026-09-08</lastmod>
</url>
<url>
<loc>https://mikecarper.github.io/MeshCore/nimble_companion_trial_results/</loc>
<lastmod>2026-09-08</lastmod>
</url>
<url>
<loc>https://mikecarper.github.io/MeshCore/nrf52_companion_storage_recovery/</loc>
<lastmod>2026-09-08</lastmod>
@@ -180,6 +192,10 @@
<loc>https://mikecarper.github.io/MeshCore/usb_serial_backpressure/</loc>
<lastmod>2026-09-08</lastmod>
</url>
<url>
<loc>https://mikecarper.github.io/MeshCore/v4_pixel5_font_trial/</loc>
<lastmod>2026-09-08</lastmod>
</url>
<url>
<loc>https://mikecarper.github.io/MeshCore/releases/1.17.1.5-doc-audit/</loc>
<lastmod>2026-09-08</lastmod>
BIN
View File
Binary file not shown.
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1526,6 +1607,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1535,10 +1643,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1556,8 +1664,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1699,6 +1780,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1708,10 +1816,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1729,8 +1837,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1587,6 +1668,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1596,10 +1704,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1617,8 +1725,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+112 -4
View File
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1515,6 +1596,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1524,10 +1632,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1545,8 +1653,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
+113 -5
View File
@@ -16,7 +16,7 @@
<link rel="prev" href="../terminal_chat_cli/">
<link rel="next" href="../releases/1.17.1.5-doc-audit/">
<link rel="next" href="../v4_pixel5_font_trial/">
@@ -366,6 +366,60 @@
<li class="md-nav__item">
<a href="../companion_contact_cache/" class="md-nav__link">
<span class="md-ellipsis">
Full Companion contact caches
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_contact_cache_results/" class="md-nav__link">
<span class="md-ellipsis">
Contact-cache and NimBLE RAM qualification
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../companion_offline_queue/" class="md-nav__link">
@@ -933,6 +987,33 @@
<li class="md-nav__item">
<a href="../nimble_companion_trial_results/" class="md-nav__link">
<span class="md-ellipsis">
ESP32-S3 NimBLE trial results, 2026-09-08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
@@ -1515,6 +1596,33 @@
<li class="md-nav__item">
<a href="../v4_pixel5_font_trial/" class="md-nav__link">
<span class="md-ellipsis">
Small-screen Picopixel message font
</span>
</a>
</li>
@@ -1524,10 +1632,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_46" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_50" >
<label class="md-nav__link" for="__nav_46" id="__nav_46_label" tabindex="0">
<label class="md-nav__link" for="__nav_50" id="__nav_50_label" tabindex="0">
@@ -1545,8 +1653,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_46_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_46">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_50_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_50">
<span class="md-nav__icon md-icon"></span>
File diff suppressed because it is too large. Load diff