Implement BLE OTA

This commit is contained in:
2026-03-19 22:11:45 +01:00
parent 87fc2a3574
commit 395fd9b839
9 changed files with 163 additions and 4 deletions
+24
View File
@@ -192,6 +192,29 @@
</button>
</div>
<div class="section-label" style="margin-top:8px">Firmware Update (OTA)</div>
<div class="card ota-card" id="otaCard">
<div class="ota-notice">
<div class="ota-notice-icon"></div>
<div>
<div class="ota-notice-title">Browser OTA not available</div>
<div class="ota-notice-body">Chrome blocks the Nordic Legacy DFU service UUID used by this bootloader. Use <strong>nRF Connect</strong> (mobile or desktop) to upload firmware instead.</div>
</div>
</div>
<ol class="ota-steps">
<li>Build firmware: <code>pio run</code> → produces <code>firmware_dfu.zip</code></li>
<li>Click <strong>Enter DFU Mode</strong> below — device reboots as <em>XIAO_DFU</em></li>
<li>Open nRF Connect → connect to <em>XIAO_DFU</em> → DFU → select <code>firmware_dfu.zip</code></li>
</ol>
<div class="ota-btn-row" style="grid-template-columns:1fr">
<button class="cmd-btn ota-trigger" id="btnOTA" onclick="sendOTATrigger()" disabled>
<span class="cmd-icon"></span><span>Enter DFU Mode</span>
<span class="cmd-desc">Reboots device into XIAO_DFU so nRF Connect can upload firmware.</span>
</button>
</div>
<div class="ota-status-row"><div class="ota-status" id="otaStatus"></div></div>
</div>
<div class="section-label" style="margin-top:8px">Event Log</div>
<div class="console" id="console"></div>
@@ -249,6 +272,7 @@
</div>
</main>
<div class="overlay" id="overlay">
<div class="modal">
<h3>⚠ Factory Reset</h3>