mirror of
https://github.com/mikecarper/MeshCore.git
synced 2026-09-17 09:54:29 +00:00
2017 lines
43 KiB
HTML
2017 lines
43 KiB
HTML
|
|
<!doctype html>
|
|
<html lang="en" class="no-js">
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
|
|
<meta name="description" content="Documentation for the open source MeshCore firmware">
|
|
|
|
|
|
|
|
<link rel="canonical" href="https://mikecarper.github.io/MeshCore/firmware_picker/">
|
|
|
|
|
|
<link rel="prev" href="../filter_tool/">
|
|
|
|
|
|
<link rel="next" href="../flood_filtering/">
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="icon" href="../assets/images/favicon.png">
|
|
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.7">
|
|
|
|
|
|
|
|
<title>Firmware picker - MeshCore Docs</title>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../assets/stylesheets/main.ec1eaa64.min.css">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../_stylesheets/extra.css">
|
|
|
|
<link rel="stylesheet" href="../_stylesheets/firmware_picker.css">
|
|
|
|
<link rel="stylesheet" href="../_stylesheets/telemetry_decoder.css">
|
|
|
|
<link rel="stylesheet" href="../_stylesheets/filter_tool.css">
|
|
|
|
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
<body dir="ltr">
|
|
|
|
|
|
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
<label class="md-overlay" for="__drawer"></label>
|
|
<div data-md-component="skip">
|
|
|
|
|
|
<a href="#firmware-picker" class="md-skip">
|
|
Skip to content
|
|
</a>
|
|
|
|
</div>
|
|
<div data-md-component="announce">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<header class="md-header md-header--shadow" data-md-component="header">
|
|
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
<a href=".." title="MeshCore Docs" class="md-header__button md-logo" aria-label="MeshCore Docs" data-md-component="logo">
|
|
|
|
<img src="../_assets/meshcore.svg" alt="logo">
|
|
|
|
</a>
|
|
<label class="md-header__button md-icon" for="__drawer">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
</label>
|
|
<div class="md-header__title" data-md-component="header-title">
|
|
<div class="md-header__ellipsis">
|
|
<div class="md-header__topic">
|
|
<span class="md-ellipsis">
|
|
MeshCore Docs
|
|
</span>
|
|
</div>
|
|
<div class="md-header__topic" data-md-component="header-topic">
|
|
<span class="md-ellipsis">
|
|
|
|
Firmware picker
|
|
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-header__button md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
</label>
|
|
<div class="md-search" data-md-component="search" role="dialog">
|
|
<label class="md-search__overlay" for="__search"></label>
|
|
<div class="md-search__inner" role="search">
|
|
<form class="md-search__form" name="search">
|
|
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
<label class="md-search__icon md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
</label>
|
|
<nav class="md-search__options" aria-label="Search">
|
|
|
|
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
</button>
|
|
</nav>
|
|
|
|
<div class="md-search__suggest" data-md-component="search-suggest"></div>
|
|
|
|
</form>
|
|
<div class="md-search__output">
|
|
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
<div class="md-search-result" data-md-component="search-result">
|
|
<div class="md-search-result__meta">
|
|
Initializing search
|
|
</div>
|
|
<ol class="md-search-result__list" role="presentation"></ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="md-header__source">
|
|
<a href="https://github.com/mikecarper/MeshCore/" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
mikecarper/MeshCore
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
</header>
|
|
|
|
<div class="md-container" data-md-component="container">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<main class="md-main" data-md-component="main">
|
|
<div class="md-main__inner md-grid">
|
|
|
|
|
|
|
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
<div class="md-sidebar__scrollwrap">
|
|
<div class="md-sidebar__inner">
|
|
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
|
<label class="md-nav__title" for="__drawer">
|
|
<a href=".." title="MeshCore Docs" class="md-nav__button md-logo" aria-label="MeshCore Docs" data-md-component="logo">
|
|
|
|
<img src="../_assets/meshcore.svg" alt="logo">
|
|
|
|
</a>
|
|
MeshCore Docs
|
|
</label>
|
|
|
|
<div class="md-nav__source">
|
|
<a href="https://github.com/mikecarper/MeshCore/" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
mikecarper/MeshCore
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href=".." class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Introduction
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../WiFi/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
WiFi and MQTT by Firmware Type
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../cli_build_matrix/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
CLI Availability by Firmware Build
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../cli_command_availability/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
CLI Command Availability Matrix
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../cli_commands/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
CLI Commands
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../companion_offline_queue/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Companion Offline Message Queue
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../companion_protocol/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Companion Protocol
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../companion_radio_full/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Full Companion
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../docs/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Local Documentation
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../esp32_memory_budget/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Classic ESP32 image memory budget
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../faq/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Frequently Asked Questions
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../filter_tool/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Filter policy playground
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active">
|
|
|
|
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Firmware picker
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<a href="./" class="md-nav__link md-nav__link--active">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Firmware picker
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__title" for="__toc">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Table of contents
|
|
</label>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#what-the-choices-mean" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
What the choices mean
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#full-versus-standard" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
FULL versus standard
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#installation-methods" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Installation methods
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#lora-ota-and-otafix" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
LoRa OTA and OTAFIX
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#hardware-and-variant-names" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Hardware and variant names
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../flood_filtering/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Flood Filtering and Moderation
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../full_companion_features/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Full Companion: turn features on and off
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../full_companion_usb_switcher/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Full Companion USB CLI and binary switcher
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../gps_tracking/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
GPS Tracking
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../halo_keymind_settings/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Halo and Keymind Branch Settings
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../hardware_validation_checklist/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Hardware validation checklist
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../host_cli_service/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
LoRa CLI Host Service
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../kiss_modem_protocol/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
MeshCore KISS Modem Protocol
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../lora_ota_automation/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Scripted LoRa OTA from start to finish
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../mbedtls-tls-footprint/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Shrinking the per-connection TLS footprint on non-PSRAM observers
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../nrf52_companion_storage_recovery/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
nRF52 Companion automatic ExtraFS recovery
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../nrf52_power_management/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
nRF52 Power Management
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../number_allocations/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Number Allocations
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../ota_easy/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Easy firmware updates over LoRa
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../ota_meshtower_v2_sdcard/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
MeshTower V2 microSD LoRa OTA
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../ota_nrf52_bootloader_update/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
nRF52 bootloader updates over LoRa
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../ota_nrf52_qspi/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
nRF52 repeater LoRa OTA with external QSPI
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../ota_protocol/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
MeshCore OTA - .mota container & LoRa protocol
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../ota_user_guide/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Updating your node over the air (OTA) - user guide
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../packet_format/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Packet Format
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../payloads/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Payload Format
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../qr_codes/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
QR Codes
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../rak3401_mota_chain/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
RAK3401 1W repeater compact LoRa update chain
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../spiffs_regular_file_reads/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
SPIFFS regular-file reads and login replay state
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../stats_binary_frames/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Stats Binary Frame Structures
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../telemetry_decoder/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Telemetry decoder
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../terminal_chat_cli/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Terminal Chat CLI
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../usb_serial_backpressure/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Native USB backpressure and radio liveness
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_42" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_42" id="__nav_42_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Releases
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_42_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_42">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Releases
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../releases/1.17.1.5/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
MeshCore 1.17.1.5 Dev — USA Cascade
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
<div class="md-sidebar__scrollwrap">
|
|
<div class="md-sidebar__inner">
|
|
|
|
|
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__title" for="__toc">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Table of contents
|
|
</label>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#what-the-choices-mean" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
What the choices mean
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#full-versus-standard" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
FULL versus standard
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#installation-methods" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Installation methods
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#lora-ota-and-otafix" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
LoRa OTA and OTAFIX
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#hardware-and-variant-names" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Hardware and variant names
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="md-content" data-md-component="content">
|
|
|
|
<article class="md-content__inner md-typeset">
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://github.com/mikecarper/MeshCore/edit/keymindCascade/docs/firmware_picker.md" title="Edit this page" class="md-content__button md-icon" rel="edit">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
<h1 id="firmware-picker">Firmware picker</h1>
|
|
<p>Pick the choices in any order. Every selection narrows all the other controls
|
|
to firmware combinations that were actually built in the current release set.</p>
|
|
<p>The picker reads public release metadata from GitHub. It does not upload device
|
|
information. Hardware names, target names, and download links come directly
|
|
from the published firmware assets.</p>
|
|
<div class="firmware-picker" data-firmware-picker data-release-repo="mikecarper/MeshCore">
|
|
<div class="firmware-picker-intro" role="note">
|
|
<strong>Current release set</strong>
|
|
<p data-role="release-set">Loading release information...</p>
|
|
<p>
|
|
For a new installation, choose the exact board and role, prefer a
|
|
<strong>FULL / complete profile</strong> when it is available, and select
|
|
<strong>Erase & fresh install (merged .bin)</strong>. Narrower profiles
|
|
remain available when their reduced transport or feature set is intentional.
|
|
</p>
|
|
</div>
|
|
|
|
<p class="firmware-picker-order-note">
|
|
Pick in any order. Use <strong>Any</strong> to clear one choice, or clear
|
|
everything with the button below.
|
|
</p>
|
|
|
|
<form class="firmware-picker-form" data-role="form">
|
|
<div class="firmware-picker-control firmware-picker-select-control">
|
|
<label for="firmware-picker-hardware-family">Hardware</label>
|
|
<select id="firmware-picker-hardware-family" data-field="hardwareFamily" disabled>
|
|
<option value="">Loading hardware...</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="firmware-picker-control firmware-picker-select-control" data-role="hardware-variant-control" hidden>
|
|
<label for="firmware-picker-hardware">Hardware variant</label>
|
|
<select id="firmware-picker-hardware" data-field="hardware" disabled>
|
|
<option value="">Choose hardware first</option>
|
|
</select>
|
|
</div>
|
|
|
|
<fieldset class="firmware-picker-control firmware-picker-radio-control firmware-picker-wide" data-radio-field="install" disabled>
|
|
<legend>Install operation</legend>
|
|
<div class="firmware-picker-radio-options" data-field="install">
|
|
Loading install choices...
|
|
</div>
|
|
</fieldset>
|
|
|
|
<fieldset class="firmware-picker-control firmware-picker-radio-control" data-radio-field="role" disabled>
|
|
<legend>Firmware role</legend>
|
|
<div class="firmware-picker-radio-options" data-field="role">
|
|
Loading roles...
|
|
</div>
|
|
</fieldset>
|
|
|
|
<fieldset class="firmware-picker-control firmware-picker-radio-control" data-radio-field="logging" disabled>
|
|
<legend>Logging / MQTT</legend>
|
|
<div class="firmware-picker-radio-options" data-field="logging">
|
|
Loading logging choices...
|
|
</div>
|
|
</fieldset>
|
|
|
|
<fieldset class="firmware-picker-control firmware-picker-radio-control" data-radio-field="ota" disabled>
|
|
<legend>OTA capability</legend>
|
|
<div class="firmware-picker-radio-options" data-field="ota">
|
|
Loading OTA choices...
|
|
</div>
|
|
</fieldset>
|
|
|
|
<div class="firmware-picker-control firmware-picker-select-control">
|
|
<label for="firmware-picker-mode">Connection / bridge mode</label>
|
|
<select id="firmware-picker-mode" data-field="mode" disabled>
|
|
<option value="">Loading modes...</option>
|
|
</select>
|
|
</div>
|
|
|
|
<fieldset class="firmware-picker-control firmware-picker-radio-control" data-radio-field="feature" disabled>
|
|
<legend>Feature profile</legend>
|
|
<div class="firmware-picker-radio-options" data-field="feature">
|
|
Loading profiles...
|
|
</div>
|
|
</fieldset>
|
|
|
|
<div class="firmware-picker-control firmware-picker-select-control">
|
|
<label for="firmware-picker-variant">Firmware variant</label>
|
|
<select id="firmware-picker-variant" data-field="variant" disabled>
|
|
<option value="">Loading variants...</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="firmware-picker-form-actions firmware-picker-wide">
|
|
<button type="reset" data-action="clear" disabled>Clear all choices</button>
|
|
</div>
|
|
</form>
|
|
|
|
<div class="firmware-picker-status" data-role="status" aria-live="polite">
|
|
Loading the current firmware catalog...
|
|
</div>
|
|
|
|
<section class="firmware-picker-result" data-role="result" aria-live="polite" hidden>
|
|
<p class="firmware-picker-eyebrow" data-role="result-eyebrow">Exact firmware match</p>
|
|
<h2 data-role="result-title">Recommended download</h2>
|
|
<p data-role="result-note" hidden></p>
|
|
<div data-role="result-list"></div>
|
|
</section>
|
|
|
|
<section class="firmware-picker-missing" data-role="missing" aria-live="polite" hidden>
|
|
<h2>No exact firmware matched</h2>
|
|
<p data-role="missing-text"></p>
|
|
<a href="https://github.com/mikecarper/MeshCore/releases">Browse all firmware releases</a>
|
|
</section>
|
|
|
|
<details class="firmware-asset-browser">
|
|
<summary>Advanced: search current release filenames</summary>
|
|
<p>
|
|
Use this for uncommon board suffixes or expert recovery. A filename match
|
|
is not a board-identity check.
|
|
</p>
|
|
<label>
|
|
Filename contains
|
|
<input data-field="asset-search" placeholder="Station_G2, heltec_v4, RAK_4631, ...">
|
|
</label>
|
|
<div data-role="asset-results"></div>
|
|
</details>
|
|
</div>
|
|
|
|
<h2 id="what-the-choices-mean">What the choices mean</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Choice</th>
|
|
<th>Use</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Companion</td>
|
|
<td>A phone, computer, or host application controls the radio</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Repeater</td>
|
|
<td>Standalone mesh relay</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Room Server</td>
|
|
<td>Hosts room conversations and history</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Sensor / telemetry</td>
|
|
<td>Publishes supported sensor data</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Terminal Chat</td>
|
|
<td>Standalone serial-terminal interface</td>
|
|
</tr>
|
|
<tr>
|
|
<td>USB logging / USB-connected MQTT</td>
|
|
<td>Node remains attached to a computer over a data-capable USB cable</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Wi-Fi MQTT observer</td>
|
|
<td>Firmware connects directly to MQTT over Wi-Fi; this is not USB logging</td>
|
|
</tr>
|
|
<tr>
|
|
<td>USB logging + Wi-Fi MQTT</td>
|
|
<td>Unified FULL image sends to both paths; avoid two publishers aimed at the same broker unless messages are deduplicated</td>
|
|
</tr>
|
|
<tr>
|
|
<td>No logging</td>
|
|
<td>Normal standalone operation without the dedicated logging/MQTT profile</td>
|
|
</tr>
|
|
<tr>
|
|
<td>LoRa OTA repeater</td>
|
|
<td>Repeater profile that can stage an exact matching update received over LoRa</td>
|
|
</tr>
|
|
<tr>
|
|
<td>LoRa OTA source only</td>
|
|
<td>Full Companion serving a host-supplied update to another node without self-installing it</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Connection and bridge choices depend on the selected role. Companion firmware
|
|
may offer Full, combined USB + Bluetooth, Bluetooth, USB, Wi-Fi, serial, or
|
|
Ethernet transports.
|
|
Normal repeater firmware includes runtime-controlled RS-232 support where the
|
|
board has room; use <code>set bridge.enabled on</code> after configuring <code>bridge.uart</code> and
|
|
<code>bridge.baud</code>. The Wio-E5 remains the capacity exception and offers a separate
|
|
RS-232 image. Choose Wi-Fi MQTT under <strong>Logging / MQTT</strong>; it is an output mode,
|
|
not a second connection choice. Repeaters may still offer separate ESP-NOW or
|
|
Ethernet bridge firmware because those paths use different compiled drivers.</p>
|
|
<p>An ESP-NOW bridge target keeps LoRa as its primary mesh radio. Its runtime
|
|
<code>bridge.format</code> setting chooses the peer protocol: <code>wrapped</code> (the
|
|
backward-compatible bridge-to-bridge default using <code>bridge.secret</code>) or <code>raw</code>
|
|
(direct MeshCore ESP-NOW LR frames for <code>Generic_ESPNOW</code>,
|
|
<code>SenseCapIndicator-ESPNow</code>, and other primary-ESP-NOW nodes). This is one
|
|
firmware choice, not two board images. Match <code>bridge.channel</code> to the primary
|
|
nodes' <code>espnow.channel</code> before selecting <code>set bridge.format raw</code>.
|
|
For Heltec V4 specifically, <code>companion_radio_full</code> is still a LoRa-primary
|
|
Companion; choose the existing <code>heltec_v4_repeater_bridge_espnow</code> firmware to
|
|
make that board the LoRa/ESP-NOW gateway. Use its exact merged artifact when
|
|
changing roles or partition layouts.</p>
|
|
<h2 id="full-versus-standard">FULL versus standard</h2>
|
|
<p>For a new installation, use the FULL / complete profile when it exists and the
|
|
board has enough flash. FULL profiles keep the complete supported feature set
|
|
and CLI. Standard profiles remain useful for boards without a FULL build, for
|
|
an intentionally narrower transport, or when retaining an existing compatible
|
|
partition layout.</p>
|
|
<p>Changing between standard and FULL ESP32 layouts requires the exact-board
|
|
merged image over USB. A running application cannot safely move its own active
|
|
and inactive partitions.</p>
|
|
<p>Current <code>full-usb-wifi</code> profiles use one binary for no external output, USB
|
|
packet logging/USB-connected MQTT, direct WiFi MQTT, or both. The picker shows
|
|
that same exact binary for each compatible logging choice; select the saved
|
|
runtime mode with <code>set logging.output off|usb|wifi|both</code>. A FULL logging-fallback
|
|
profile is listed only when no WiFi MQTT sibling exists; it appears for both
|
|
the no-output and USB choices because <code>set usb.logging off|on</code> is persistent.
|
|
On a fresh unified FULL install with no saved SSID, the setup AP and WiFi radio
|
|
remain available for 30 minutes per boot, then turn off automatically until the
|
|
next reboot or power cycle. An explicit administrator <code>start webconfig</code> remains
|
|
available as an override. A saved SSID switches to the normal indefinite
|
|
reconnect behavior instead.</p>
|
|
<p>Full Companion profiles use one binary for USB, BLE, ordinary Wi-Fi on ESP32,
|
|
source-only LoRa OTA, Terminal Chat, optional USB packet logging, and any
|
|
board-qualified serial or Ethernet Companion transport. Bulk builds therefore
|
|
omit separate attached-transport, Terminal Chat, and USB-logging artifacts
|
|
whenever the exact Full recipe exists. RAK4631 repeater and room-server
|
|
Ethernet images remain separate roles. Fresh installs default to logging off.
|
|
Heltec V3 and base OLED V4 Full images also contain the former direct Wi-Fi
|
|
MQTT Companion capability, configured at runtime through WebConfig, so their
|
|
separate <code>companion_radio_wifi_mqtt</code> artifacts are omitted from canonical
|
|
builds as well.</p>
|
|
<p>When Full Companion does not fit but a matching USB Companion does, that USB
|
|
artifact also supplies Terminal Chat and replaces its standalone release image.
|
|
Heltec E290 and T190 now publish one Full USB + BLE + WiFi Companion; their old
|
|
combined and single-transport names are explicit-build compatibility aliases.
|
|
SSD1306 Full Companion builds use <code>set display.rotation 90|180|270</code>; <code>0</code>
|
|
restores the board default, so a separate rotated release image is not
|
|
recommended.</p>
|
|
<p>Ordinary non-OTA roles also use one artifact for normal operation and USB
|
|
logging. Select the saved mode with <code>set usb.logging off|on</code>; no <code>-logging-</code>
|
|
artifact is emitted. KISS, BLE-only Companion, and constrained LoRa OTA
|
|
repeater images retain their protocol/partition contracts and do not inherit
|
|
plaintext USB logging.</p>
|
|
<p>nRF52 Full Companion keeps the multi-role primary interface on <code>00</code>; it starts
|
|
as an ASCII terminal and automatically hands a complete <code><</code> frame to Binary
|
|
Companion. <code>set usb.logging on reboot</code> adds its plaintext interface <code>02</code>.</p>
|
|
<p>Every ESP32 Full Companion instead exposes one USB TTY. Logging is off by
|
|
default, so the TTY serves the ASCII/Binary Companion switcher. Use
|
|
<code>set usb.logging on</code> to turn that same TTY into an input-capable plaintext
|
|
CLI/logging stream; framed Binary Companion is unavailable on USB while
|
|
logging owns it. <code>set usb.logging off</code> stops the logs and leaves the TTY in
|
|
the normal ASCII terminal, matching a fresh Full installation. Send
|
|
<code>+++MESHCORE-TERM-STOP</code>, or let a Companion app send a valid framed probe, to
|
|
switch from there to Binary Companion. BLE and Wi-Fi Companion remain usable
|
|
while the USB TTY is logging. ESP32 Full builds use the repository's
|
|
Arduino-ESP32 2.x base where the board supports it; RC32 and ESP32-C6 retain
|
|
their board-required Arduino 3.x platform but still expose only one USB TTY.
|
|
A second ESP32 CDC interface is not part of the release profile.</p>
|
|
<h2 id="installation-methods">Installation methods</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>File</th>
|
|
<th>Use</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>-merged.bin</code></td>
|
|
<td>Erase/fresh install, recovery, role migration, or partition-profile change on ESP32 over USB</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Non-merged <code>.bin</code></td>
|
|
<td>Update an existing same-board, same-role, same-partition installation</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>.zip</code></td>
|
|
<td>Native nRF52 Serial DFU update package; it is not an extra archive</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>.uf2</code></td>
|
|
<td>UF2 bootloader drag-and-drop install or update</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>.hex</code></td>
|
|
<td>Erase/recovery flash with a supported wired programmer</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Never send a merged ESP32 image through browser OTA or LoRa OTA. Back up the
|
|
node configuration and verify every filename suffix before flashing.</p>
|
|
<h2 id="lora-ota-and-otafix">LoRa OTA and OTAFIX</h2>
|
|
<p>A LoRa OTA repeater build installs repeater firmware that can receive and
|
|
stage updates. A later LoRa update still needs an exact target identity,
|
|
compatible partition signature, matching radio settings, and the correct
|
|
update package.</p>
|
|
<p>nRF52 LoRa OTA requires an OTAFIX bootloader built for the exact board. There
|
|
is no universal bootloader file. Use the
|
|
<a href="https://github.com/mikecarper/Adafruit_nRF52_Bootloader_OTAFIX/releases/latest">latest stable OTAFIX release</a>
|
|
and select the hardware-matched HEX, Serial DFU ZIP, or bootloader-update UF2.</p>
|
|
<h2 id="hardware-and-variant-names">Hardware and variant names</h2>
|
|
<p>Hardware families with multiple released targets get a second hardware-variant
|
|
menu. It separates revisions, display type, expansion kit, radio/PA layout,
|
|
pin map, and other physical differences without crowding the first menu. The
|
|
firmware-variant menu separately exposes choices that still require different
|
|
code or wiring, such as serial port or the legacy <code>no_external_sensors</code> target
|
|
suffix. The picker labels that suffix <strong>Reduced optional environmental/ranging drivers</strong>:
|
|
it does not disable generic I2C or unrelated board-integrated peripherals.
|
|
Reduced RAK3401 and RAK4631 targets retain INA219/INA226/INA260/INA3221 as
|
|
voltage/current entries in the optional sensor table. They are not the only I2C
|
|
users: the SSD1306 OLED, supported autodiscovered RTCs, and RAK12500 GPS remain
|
|
separate I2C peripherals in compatible recipes. RAK12501/L76K GPS uses Serial1
|
|
instead. The explicit RAK4631 Serial1 bridge omits the combined GPS provider
|
|
because its bridge owns the RAK12501 UART, so that legacy image does not expose
|
|
RAK12500 either. The firmware-configured INA3221 and RAK12500 addresses are both
|
|
<code>0x42</code>; to install both, keep RAK12500 at <code>0x42</code>, strap INA3221 A0 to SCL for
|
|
<code>0x43</code>, and use a build with <code>-DTELEM_INA3221_ADDRESS=0x43</code>. Companion power saving,
|
|
controllable FEM receive gain, and radio-chip receive gain are saved settings
|
|
rather than separate recommended firmware files. Do not substitute a similarly
|
|
named physical target.</p>
|
|
<p>The header-wired RAK19007 W25Q16 LoRa-OTA recipes are also exact hardware
|
|
variants. Choose the W25Q16 variant for RAK4631 or for RAK3401 + RAK13302 only
|
|
when that core/radio combination, the <code>EF4015</code> flash wiring, and its matching
|
|
OTAFIX bootloader are all present. The common base-board wiring does not make
|
|
the two firmware or bootloader identities interchangeable.</p>
|
|
<p>The picker recommends one Full Companion image instead of separate USB, BLE,
|
|
ordinary WiFi, and USB-logging images. On ESP32, logging is off by default so
|
|
the one USB TTY starts in ASCII and automatically changes to framed Companion
|
|
when a complete <code><</code> frame arrives. Enabling logging gives that TTY to the
|
|
plaintext CLI/logger and disables framed USB Companion until logging is turned
|
|
off and the normal ASCII-to-binary mode switch occurs. nRF52 Full Companion
|
|
retains its optional dedicated interface <code>02</code>.
|
|
Exact filename search still finds old aliases from earlier releases.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</article>
|
|
</div>
|
|
|
|
|
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
</div>
|
|
|
|
</main>
|
|
|
|
<footer class="md-footer">
|
|
|
|
<div class="md-footer-meta md-typeset">
|
|
<div class="md-footer-meta__inner md-grid">
|
|
<div class="md-copyright">
|
|
|
|
|
|
Made with
|
|
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
Material for MkDocs
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
</div>
|
|
<div class="md-dialog" data-md-component="dialog">
|
|
<div class="md-dialog__inner md-typeset"></div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["content.action.edit", "content.code.copy", "search.highlight", "search.suggest"], "search": "../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
|
|
|
|
|
|
<script src="../assets/javascripts/bundle.d7400e89.min.js"></script>
|
|
|
|
<script src="../_javascript/firmware_picker.js"></script>
|
|
|
|
<script src="../_javascript/telemetry_decoder.js"></script>
|
|
|
|
<script src="../_javascript/filter_tool.js"></script>
|
|
|
|
|
|
</body>
|
|
</html> |