Publish 1.17.1.9 USA Cascade picker and Mesh America catalogs

Point both stable providers and runtime controls to the validated v1.17.1.9-halo-keymind-cascade-dev-88c85108 family. Record completed package validation while retaining hardware coverage limitations. Give all documentation source pages their exact hosted links and mount the telemetry form only in the browser. Verify current combined Full and nRF52 Full/Reduced catalog fixtures.
This commit is contained in:
mikecarper committed 2026-10-07 13:56:17 -07:00
1 parent d2b6244ae0
commit 4bbd613417
191 files changed
+17402 -18128

No files matched your search

+15
View File
@@ -27,6 +27,7 @@ jobs:
python3 -B test/test_management_report.py -v
python3 -B test/test_management_cli_wrapper.py -v
node test/test_management_decoder.js
node scripts/test_telemetry_decoder.js
stm32-companion-smoke:
runs-on: ubuntu-latest
@@ -499,3 +500,17 @@ jobs:
with:
name: test-results
path: .pio/build/native/
hosted-doc-links:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v6
with:
python-version: '3.13'
- name: Install the documentation renderer
run: python3 -m pip install mkdocs==1.6.1 mkdocs-material==9.7.7
- name: Verify source links and published page routes
run: python3 -B test/test_hosted_doc_links.py -v
- name: Verify hosted-link visibility and navigation
run: node test/test_hosted_doc_links.js
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/WiFi/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# WiFi and MQTT by Firmware Type
MeshCore itself does not require WiFi or the internet. LoRa packet exchange,
File diff suppressed because it is too large. Load diff
+32
View File
@@ -0,0 +1,32 @@
/* Source links help GitHub readers; the hosted page is already their destination. */
(function () {
"use strict";
const hostedHostname = "mikecarper.github.io";
const bannerSelector = ".meshcore-hosted-doc-link";
function hideHostedDocLinks(doc, hostname) {
if (hostname !== hostedHostname) return 0;
const banners = doc.querySelectorAll(bannerSelector);
for (const banner of banners) banner.hidden = true;
return banners.length;
}
if (typeof module === "object" && module.exports) {
module.exports = { hideHostedDocLinks };
}
if (typeof window === "undefined" || typeof document === "undefined") return;
const hide = function () {
hideHostedDocLinks(document, window.location.hostname);
};
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", hide, { once: true });
} else {
hide();
}
// Material can replace article content without loading the page again.
if (typeof document$ !== "undefined" && document$ && typeof document$.subscribe === "function") {
document$.subscribe(hide);
}
})();
+56
View File
@@ -17,6 +17,59 @@
const METERS_PER_DEGREE = 111320;
const DEGREES_TO_RADIANS = Math.PI / 180;
// Keep the browser form out of GitHub's Markdown preview.
const DECODER_MARKUP = `
<div class="telemetry-examples" aria-label="Load an example reply">
<strong>Try an analyzer example:</strong>
<button type="button" data-telemetry-example="packetTemperature">Temperature packet</button>
<button type="button" data-telemetry-example="packetVoltage">Voltage packet</button>
<button type="button" data-telemetry-example="packetExternalVoltage">I2C voltage packet</button>
<button type="button" data-telemetry-example="externalVoltage">I2C voltage CLI page</button>
</div>
<label for="telemetry-reply-input">Raw packet or payload hex</label>
<textarea
id="telemetry-reply-input"
data-role="input"
spellcheck="false"
autocomplete="off"
placeholder="Paste hexadecimal Raw Data from the analyzer packet page"
aria-describedby="telemetry-input-help"
></textarea>
<p class="telemetry-tool-help" id="telemetry-input-help">
Spaces, line breaks, colons, dashes, a leading <code>0x</code>, and a quoted
JSON field are accepted. CLI Base64 replies are also auto-detected. Paste
multiple compatible packet or reply lines together to merge them by
timestamp before downloading one CSV. Press Ctrl/Command+Enter to decode.
</p>
<div class="telemetry-actions">
<button class="telemetry-primary-action" type="button" data-role="decode">Decode telemetry</button>
<button type="button" data-role="clear">Clear</button>
<label class="telemetry-local-time">
<input type="checkbox" data-role="local-time">
Show browser-local time
</label>
</div>
<div class="telemetry-error" data-role="error" role="alert" aria-live="polite" hidden></div>
<section class="telemetry-results" data-role="results" aria-live="polite" hidden>
<div class="telemetry-results-header">
<h2 data-role="result-title">Decoded telemetry</h2>
<button type="button" data-role="download">Download CSV</button>
</div>
<dl class="telemetry-summary" data-role="summary"></dl>
<div class="telemetry-warnings" data-role="warnings" hidden>
<strong>Decode notes</strong>
<ul data-role="warning-list"></ul>
</div>
<div class="telemetry-table-wrap">
<table class="telemetry-table" data-role="table"></table>
</div>
</section>
`;
const EXAMPLES = Object.freeze({
packetTemperature: Object.freeze({
label: "Analyzer temperature packet",
@@ -976,6 +1029,9 @@
const root = document.querySelector("[data-telemetry-decoder]");
if (!root) return;
// This is trusted, static markup; pasted telemetry is rendered as text below.
root.innerHTML = DECODER_MARKUP;
const input = root.querySelector("[data-role='input']");
const decodeButton = root.querySelector("[data-role='decode']");
const clearButton = root.querySelector("[data-role='clear']");
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/bootloader_version_stock_audit/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/bootloader_version_stock_audit/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/cad_scan_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/cad_scan_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/carrier_wave/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Carrier-wave RF checks
`cw` and `cw2` transmit a continuous, unmodulated carrier at the selected
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/carrier_wave_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/carrier_wave_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/charge_voltage/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Battery charge voltage
The `charge.voltage` commands change the battery charger's constant-voltage
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/cli_build_matrix/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# CLI Availability by Firmware Build
MeshCore command availability is determined in three layers:
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/cli_command_availability/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# CLI Command Availability Matrix
This page is the command-by-command companion to
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/cli_commands/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# CLI Commands
See [two LoRa profiles](radio_profiles.md) for `radio2`, `tempradio2`, scheduling,
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/cli_settings_audit/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/cli_settings_audit/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/companion_contact_cache/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../research/companion_contact_cache/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/companion_contact_cache_results/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/companion_contact_cache_results/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/companion_offline_queue/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Companion Offline Message Queue
Companion firmware keeps received channel data, channel messages, and direct
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/companion_protocol/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Companion Protocol
- **Last Updated**: 2026-08-26
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/companion_radio_full/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Full Companion
Configure message alerts with the [Companion notification builder](notifications.md).
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/companion_usb_ascii_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/companion_usb_ascii_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/companion_usb_client_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/companion_usb_client_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/docs/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Local Documentation
This document explains how to build and view the MeshCore documentation locally.
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/double_frequency_v4_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/double_frequency_v4_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/esp32_memory_budget/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../research/esp32_memory_budget/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/esp32_partition_catalog/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# ESP32 release partition lookup table
The canonical LUT is `firmware/esp32_partition_catalog.json` in this fork.
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/esp32_wifi_partition_migration/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# ESP32 legacy-partition migration over Wi-Fi or LoRa
The partition-migration bridge lets a supported ESP32 node move from a small
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/espnow_bridge_setup/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# ESP-NOW bridge: simple setup
Use two ESP32 LoRa boards to join two MeshCore networks with different radio
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/faq/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Frequently Asked Questions
For this fork's **1.17.1.5 USA Cascade** release, start with
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/filter_tool/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Filter policy playground
Build a forwarding policy, see its readable definition, and simulate how a
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/firmware_memory_budget/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../research/firmware_memory_budget/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/firmware_picker/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Firmware picker
Each result now includes **Restore your settings after flashing**. Its commands
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/flood_filtering/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Flood Filtering and Moderation
This guide explains the Keymind forwarding filters. Repeaters expose the full
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/four_fixed_tx_dwell_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/four_fixed_tx_dwell_validation/" + window.location.hash, window.location.href));</script>
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/four_fixed_tx_single_pass_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/four_fixed_tx_single_pass_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/full_companion_features/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Full Companion: turn features on and off
For side-by-side Companion and infrastructure commands, see
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/full_companion_usb_switcher/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Companion USB CLI and binary switcher
USB Companion uses one primary USB serial interface for two incompatible wire
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/full_profiles/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Full firmware profiles
Full combines the features supported by an exact board and firmware role in
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/full_usb_logging_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/full_usb_logging_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/gps_tracking/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# GPS Tracking
This document describes how GPS telemetry works for companion/client nodes and
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/halo_keymind_settings/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Halo and Keymind Branch Settings
This file covers only CLI settings and helper commands added by the Halo or
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/hardware_validation_bluetooth_stealth_2026-09-07/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Report moved
<script>window.location.replace(new URL("../test-results/hardware_validation_bluetooth_stealth_2026-09-07/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/hardware_validation_checklist/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/hardware_validation_checklist/" + window.location.hash, window.location.href));</script>
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/heltec_v4_wifi_partition_migration/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Heltec V4 legacy-partition migration over Wi-Fi
Heltec V4/V4.3 OLED repeaters with their normal 16 MiB flash use the shared
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/home_text_spacing/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/home_text_spacing/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/host_cli_service/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# LoRa CLI Host Service
The repeater `host <text>` command lets an authenticated LoRa administrator
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# MeshCore documentation
Choose firmware with the [firmware picker](firmware_picker.md). For help with a device already in service, start with the [FAQ](faq.md).
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/kiss_modem_protocol/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# MeshCore KISS Modem Protocol
Standard KISS TNC firmware for MeshCore LoRa radios. Compatible with any KISS client (Direwolf, APRSdroid, YAAC, etc.) for sending and receiving raw packets. MeshCore-specific extensions (cryptography, radio configuration, telemetry) are available through the standard SetHardware (0x06) command.
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/lora_ota_automation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Scripted LoRa OTA from start to finish
For **1.17.1.5**, use the exact board/storage profile from
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/management_decoder/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Management report decoder
Paste MGR1 or MGR2 management-report payloads or complete GroupData packets from a
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/management_reports/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Management reports (MGR1/MGR2)
Available on repeater (including observer), room-server and sensor firmware.
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/mbedtls-tls-footprint/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/mbedtls-tls-footprint/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/mixed_scan_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/mixed_scan_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/mixed_sf_bw_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/mixed_sf_bw_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/nimble_companion_trial/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/nimble_companion_trial/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/nimble_companion_trial_results/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/nimble_companion_trial_results/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/notifications/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Companion notification builder
Make a rule, preview it here, then copy the CLI commands or apply and test it
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/nrf52-usb-ready-fix/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/nrf52-usb-ready-fix/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/nrf52_bluetooth_debug/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../research/nrf52_bluetooth_debug/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/nrf52_companion_storage_recovery/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/nrf52_companion_storage_recovery/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/nrf52_power_management/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# nRF52 Power Management
## Overview
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/number_allocations/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Number Allocations
This document lists unique numbers/identifiers used in various MeshCore protocol payloads.
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/old-releases/1.17.1.5-doc-audit/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Markdown audit — 1.17.1.5 USA Cascade
Audited on 2026-09-05 against firmware source `26303793`, the resolved build
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/old-releases/1.17.1.5/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# MeshCore 1.17.1.5 Dev - USA Cascade
Use [feature switches by role](../role_feature_switches.md) for exact on/off
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/old-releases/1.17.1.6/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# MeshCore 1.17.1.6 Dev - USA Cascade
This release builds the current `keymindCascade` source after repairing the
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/old-releases/1.17.1.7/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# MeshCore 1.17.1.7 USA Cascade
This development release uses 910.525 MHz, 62.5 kHz bandwidth, SF7, and CR5 with Cascade defaults. Saved radio settings take precedence. The firmware source is `2d03e098cf75d58adcf35fe3d4dbbeaf0af114e1`.
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/old-releases/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Old Releases
Historical release notes and their supporting files are kept here for reference. Use the [current 1.17.1.8 release notes](../releases/1.17.1.8.md) for current firmware.
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/ota_easy/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Easy firmware updates over LoRa
For **1.17.1.5**, use the exact board/storage profile from
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/ota_meshtower_v2_sdcard/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# MeshTower V2 microSD LoRa OTA
`Heltec_tower_v2_sdcard_repeater_lora_ota_no_external_sensors` is the one
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/ota_nrf52_bootloader_update/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# nRF52 bootloader updates over LoRa
For **1.17.1.5**, use the exact board/storage profile from
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/ota_nrf52_qspi/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# nRF52 repeater LoRa OTA with external QSPI
For **1.17.1.5**, use the exact board/storage profile from
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/ota_protocol/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# MeshCore OTA - `.mota` container & LoRa protocol
This is the **single source of truth** for MeshCore's over-the-air firmware update system ("mOTA"). It is
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/ota_user_guide/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Updating your node over the air (OTA) - user guide
For **1.17.1.5**, use the exact board/storage profile from
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/packet_format/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Packet Format
This document describes the MeshCore packet format.
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/pair_4p6_300us_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/pair_4p6_300us_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/pair_preamble32_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/pair_preamble32_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/payloads/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Payload Format
Inside each [MeshCore Packet](./packet_format.md) is a payload, identified by the payload type in the packet header. The types of payloads are:
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/pr7_review_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/pr7_review_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/preamble_detection_investigation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/preamble_detection_investigation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/preset_test/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# <span data-role="preset-test-page-title">Temporary radio test builder</span>
<span data-role="preset-test-page-summary">Choose a window and radio tuple to
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/qr_codes/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# QR Codes
This document provides an overview of QR Code formats that can be used for sharing MeshCore channels and contacts. The formats described below are supported by the MeshCore mobile app.
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/radio_chirp_math_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/radio_chirp_math_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/radio_dwell_policy_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/radio_dwell_policy_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/radio_profile_switch_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/radio_profile_switch_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/radio_profiles/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Two LoRa profiles on one radio
`radio2` lets one LoRa transceiver alternate between two frequencies or modulation
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/radio_profiles_validation/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/radio_profiles_validation/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/radio_receive_calibration/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../test-results/radio_receive_calibration/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/rak3401_1.17.1.7_legacy24/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../research/rak3401_1.17.1.7_legacy24/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/rak3401_mota_chain/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Document moved
<script>window.location.replace(new URL("../research/rak3401_mota_chain/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/releases/1.17.1.5-doc-audit/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Release notes moved
<script>window.location.replace(new URL("../../old-releases/1.17.1.5-doc-audit/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/releases/1.17.1.5/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Release notes moved
<script>window.location.replace(new URL("../../old-releases/1.17.1.5/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/releases/1.17.1.6/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Release notes moved
<script>window.location.replace(new URL("../../old-releases/1.17.1.6/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/releases/1.17.1.7/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Release notes moved
<script>window.location.replace(new URL("../../old-releases/1.17.1.7/" + window.location.hash, window.location.href));</script>
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/releases/1.17.1.8/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# MeshCore 1.17.1.8 USA Cascade
This release uses 910.525 MHz, 62.5 kHz bandwidth, SF7, and CR5 with Cascade defaults. Saved radio settings take precedence. The firmware source is `9053038ffa7f481e4b0af2bb8382210683a2c317`.
+17 -11
View File
@@ -1,9 +1,12 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/releases/1.17.1.9/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# MeshCore 1.17.1.9 USA Cascade
Candidate firmware source: `88c85108005a30a730fa7b78b2899b210754f3be`.
<!-- RELEASE_FINAL_PACKAGE_STATUS_INTRO: finalize only after exact88c package validation. -->
Final package validation remains pending. Hardware observations below retain
the exact source and installation route tested.
Firmware source: `88c85108005a30a730fa7b78b2899b210754f3be`.
Release packages and their public assets passed validation. Hardware
observations below retain the exact source and installation route tested.
USA Cascade defaults are 910.525 MHz, 62.5 kHz bandwidth, SF7 and CR5. Saved
radio settings take precedence. Match the exact board, role and storage
@@ -156,13 +159,16 @@ See the [role controls](../role_feature_switches.md),
## Verification scope
<!-- RELEASE_FINAL_PACKAGE_STATUS_DETAIL: replace this paragraph from the validated publication plan. -->
Final release packaging is still being checked against firmware source
`88c851080`. Publish only after the complete checksum inventory, capabilities,
memory checks, Full/Reduced nRF52 pairs and exact migration packages pass.
The older completed 463-recipe inventory belongs to `1e421ff4`; it does not
qualify the rebuilt release. The publisher must record the completed new
inventory here before switching the firmware picker and Mesh America catalogs.
The completed release contains 463 qualified firmware profiles
across 5 stable release groups with 1988 verified public assets.
All 114 nRF52 Full/Reduced sensor pairs and 94 exact ESP32
board/role migration packages passed checksum, capability, memory, identity
and layout checks for firmware source `88c851080`. Public asset digests and
the exact release family marked GitHub Latest were independently verified.
Download the [1.17.1.9 USA Cascade family](https://github.com/mikecarper/MeshCore/releases/tag/v1.17.1.9-halo-keymind-cascade-dev-88c85108) and its
[migration utilities](https://github.com/mikecarper/MeshCore/releases/tag/utility-v1.17.1.9-halo-keymind-cascade-dev-88c85108). These verified releases supply
the firmware picker and Mesh America catalogs.
Production-code host regressions cover the official configuration GUI's
five-second command deadline, app protocol and ACL replies, USB lifecycle,
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/research/companion_contact_cache/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Companion contact caches
Full Companions on ESP32 and nRF52 without PSRAM, plus the high-contact RAK4631
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/research/esp32_full_build_audit_2026-10-06/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Why ESP32 builds still have options besides Full
Audit date: 2026-10-06. Source baseline: `2ee62b981435df7dc4bcd79de39e61a4d5e98652` on `keymindCascade`.
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/research/esp32_memory_budget/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Classic ESP32 image memory budget
Classic ESP32 has 320 KiB of internal DRAM, but at most 160 KiB can hold
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/research/firmware_choice_followup_2026-10-06/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Further firmware choice consolidation audit - 6 October 2026
Baseline: pulled commit `08bf174ea30e2e075cdd9fc74111580662b461bb`.
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/research/firmware_memory_budget/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Firmware memory checks
Every firmware environment runs `scripts/check_firmware_ram.py` against its
+4
View File
@@ -1,3 +1,7 @@
<!-- meshcore-hosted-doc-link:start -->
<p class="meshcore-hosted-doc-link"><a href="https://mikecarper.github.io/MeshCore/research/">View this page on MeshCore Docs</a>.</p>
<!-- meshcore-hosted-doc-link:end -->
# Research
Engineering investigations, design notes, diagnostic methods, and historical update-chain studies live here. For measured outcomes, see [Test Results](../test-results/index.md); for current installation instructions, use the [documentation homepage](../index.md).
Loaded 100 of 191 files, more files were not shown because too many files have changed in this diff. Show more