From 48ce8c8fa2c228cb4e3d06d47bc974ec6a547abc Mon Sep 17 00:00:00 2001 From: Nigdzie <46287652+Nigdzie@users.noreply.github.com> Date: Thu, 25 Dec 2025 15:50:43 +0100 Subject: [PATCH 01/12] Update docs and workflows --- .github/workflows/esp32c5-build-master.yml | 1 + docs/flipper_fap.html | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/esp32c5-build-master.yml b/.github/workflows/esp32c5-build-master.yml index daac280..5920f60 100644 --- a/.github/workflows/esp32c5-build-master.yml +++ b/.github/workflows/esp32c5-build-master.yml @@ -115,6 +115,7 @@ jobs: cd FLIPPER/sdk [ -f flipper-z-f7-sdk-unlshd-083.zip ] || curl -L -o flipper-z-f7-sdk-unlshd-083.zip https://github.com/DarkFlippers/unleashed-firmware/releases/download/unlshd-083/flipper-z-f7-sdk-unlshd-083.zip [ -f flipper-z-f7-sdk-mntm-011.zip ] || curl -L -o flipper-z-f7-sdk-mntm-011.zip https://github.com/Next-Flip/Momentum-Firmware/releases/download/mntm-011/flipper-z-f7-sdk-mntm-011.zip + [ -f flipper-z-f7-sdk-mntm-dev-22408e4c.zip ] || curl -L -o flipper-z-f7-sdk-mntm-dev-22408e4c.zip https://up.momentum-fw.dev/builds/firmware/dev/flipper-z-f7-sdk-mntm-dev-22408e4c.zip - name: Build Flipper FAP run: | diff --git a/docs/flipper_fap.html b/docs/flipper_fap.html index 6890593..d01437b 100644 --- a/docs/flipper_fap.html +++ b/docs/flipper_fap.html @@ -182,7 +182,7 @@

Control

@@ -267,8 +267,8 @@

How to

const normalized = fapParam.trim().toLowerCase(); if(normalized === "momentum") { ui.trackSelect.value = "momentum"; - } else if(normalized === "momentumdev" || normalized === "momentum dev" || normalized === "momentum-dev") { - ui.trackSelect.value = "momentum dev"; + } else if(normalized === "momentumdev" || normalized === "momentum dev" || normalized === "momentum-dev" || normalized === "momentum_dev") { + ui.trackSelect.value = "momentum_dev"; } else if(normalized === "unleashed") { ui.trackSelect.value = "unleashed"; } @@ -466,7 +466,7 @@

How to

const trackMatchesName = (name, track) => { const lower = name.toLowerCase(); - if (track === "momentum dev") { + if (track === "momentum_dev") { return /momentum[-_ ]dev/.test(lower); } if (track === "momentum") { From 6fd8cd177b52797589777d6abbeb69bd8a98e3c1 Mon Sep 17 00:00:00 2001 From: OyczE <46287652+OyczE@users.noreply.github.com> Date: Thu, 1 Jan 2026 12:10:20 +0100 Subject: [PATCH 02/12] Update janos_flash.html --- docs/janos_flash.html | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/janos_flash.html b/docs/janos_flash.html index 3515a6e..c24f99e 100644 --- a/docs/janos_flash.html +++ b/docs/janos_flash.html @@ -323,9 +323,11 @@

Browser support

latestRelease: null, files: [], port: null, + onDisconnect: null, transport: null, esploader: null, chip: null, + connected: false, isFlashing: false, autoFlash: false, autoFlashTriggered: false, @@ -465,12 +467,24 @@

Browser support

const connect = async () => { ensureSupport(); + if (state.connected) { + await disconnect(); + return; + } ui.connectBtn.disabled = true; ui.flashBtn.disabled = true; setStatus("Requesting serial port"); log("Requesting port access"); try { state.port = await navigator.serial.requestPort({}); + state.onDisconnect = () => { + log("Device disconnected."); + disconnect().catch(() => {}); + setStatus("Device disconnected. Reconnect to flash.", "error"); + }; + try { + state.port.addEventListener("disconnect", state.onDisconnect); + } catch {} const baud = parseInt(ui.baud.value, 10); state.transport = new Transport(state.port, true); const loaderOptions = { @@ -487,8 +501,10 @@

Browser support

setStatus("Syncing with chip (hold BOOT + RESET to enter ROM)"); log("Syncing with chip"); state.chip = await state.esploader.main(); + state.connected = true; ui.chip.style.display = "inline-flex"; ui.chip.textContent = `Chip ${state.chip}`; + ui.connectBtn.textContent = "Disconnect"; setStatus(`Connected to ${state.chip}. Ready to flash.`); log(`Connected: ${state.chip}`); ui.flashBtn.disabled = false; @@ -603,6 +619,9 @@

Browser support

}; const disconnect = async () => { + if (state.port && state.onDisconnect) { + try { state.port.removeEventListener("disconnect", state.onDisconnect); } catch {} + } try { if (state.transport) { await state.transport.disconnect(); @@ -611,11 +630,14 @@

Browser support

} } catch {} state.port = null; + state.onDisconnect = null; state.transport = null; state.esploader = null; state.chip = null; + state.connected = false; ui.chip.style.display = "none"; ui.flashBtn.disabled = true; + ui.connectBtn.textContent = "Connect"; setStatus("Disconnected."); }; From 67817f4f4c8d57ff560ebe12a4ad286d2dbcd630 Mon Sep 17 00:00:00 2001 From: OyczE <46287652+OyczE@users.noreply.github.com> Date: Thu, 1 Jan 2026 12:14:34 +0100 Subject: [PATCH 03/12] Update janos_flash.html --- docs/janos_flash.html | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/janos_flash.html b/docs/janos_flash.html index c24f99e..94be2d4 100644 --- a/docs/janos_flash.html +++ b/docs/janos_flash.html @@ -299,7 +299,8 @@

Browser support