From a6725c1b69701ed5bc7b6864b62c49f8557d0f65 Mon Sep 17 00:00:00 2001 From: yaya Date: Fri, 9 Oct 2026 13:26:41 +0100 Subject: [PATCH] feat(ui): add dev model browser and soften hardware lighting --- docs/device-models.md | 4 +- neode-ui/mock-backend.js | 6 + .../assets/img/mesh-devices/ATTRIBUTION.md | 13 - .../public/assets/img/mesh-devices/diy.svg | 1 - .../heltec-mesh-node-t114-case.svg | 1 - .../mesh-devices/heltec-mesh-node-t114.svg | 1 - .../img/mesh-devices/heltec-v3-case.svg | 1 - .../assets/img/mesh-devices/heltec-v3.svg | 1 - .../assets/img/mesh-devices/heltec-wsl-v3.svg | 1 - .../assets/img/mesh-devices/heltec_v4.svg | 1 - .../assets/img/mesh-devices/nano-g2-ultra.svg | 1 - .../img/mesh-devices/rak-wismeshtap.svg | 1 - .../assets/img/mesh-devices/rak4631.svg | 3514 ----------------- .../assets/img/mesh-devices/rak4631_case.svg | 1 - .../assets/img/mesh-devices/rpipicow.svg | 1 - .../assets/img/mesh-devices/seeed-xiao-s3.svg | 1 - .../assets/img/mesh-devices/station-g2.svg | 1 - .../public/assets/img/mesh-devices/t-deck.svg | 1 - .../public/assets/img/mesh-devices/t-echo.svg | 1 - .../assets/img/mesh-devices/t-echo_plus.svg | 502 --- .../assets/img/mesh-devices/tbeam-s3-core.svg | 1 - .../public/assets/img/mesh-devices/tbeam.svg | 1 - .../assets/img/mesh-devices/thinknode_m1.svg | 109 - .../assets/img/mesh-devices/tlora-t3s3-v1.svg | 1 - .../img/mesh-devices/tlora-v2-1-1_6.svg | 1 - .../img/mesh-devices/tracker-t1000-e.svg | 1 - .../assets/img/mesh-devices/unknown-new.svg | 264 -- .../img/mesh-devices/wio-tracker-wm1110.svg | 1 - neode-ui/src/components/DeviceModel.vue | 27 +- .../components/mesh/MeshDeviceSetupModal.vue | 4 +- neode-ui/src/graphics/deviceModels.ts | 2 +- neode-ui/src/graphics/deviceScene.ts | 8 +- neode-ui/src/utils/meshDeviceImages.ts | 73 +- neode-ui/src/views/server/OpenWrtGateway.vue | 4 +- 34 files changed, 77 insertions(+), 4474 deletions(-) delete mode 100644 neode-ui/public/assets/img/mesh-devices/ATTRIBUTION.md delete mode 100644 neode-ui/public/assets/img/mesh-devices/diy.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/heltec-mesh-node-t114-case.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/heltec-mesh-node-t114.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/heltec-v3-case.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/heltec-v3.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/heltec-wsl-v3.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/heltec_v4.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/nano-g2-ultra.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/rak-wismeshtap.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/rak4631.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/rak4631_case.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/rpipicow.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/seeed-xiao-s3.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/station-g2.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/t-deck.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/t-echo.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/t-echo_plus.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/tbeam-s3-core.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/tbeam.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/thinknode_m1.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/tlora-t3s3-v1.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/tlora-v2-1-1_6.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/tracker-t1000-e.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/unknown-new.svg delete mode 100644 neode-ui/public/assets/img/mesh-devices/wio-tracker-wm1110.svg diff --git a/docs/device-models.md b/docs/device-models.md index 37497ed5..1fd47cdc 100644 --- a/docs/device-models.md +++ b/docs/device-models.md @@ -10,8 +10,7 @@ computer illustrations in `archipelago-website-deck`. `neode-ui/src/graphics/deviceModels.ts` contains 25 radio illustrations, including the generic fallback and three optional enclosure variants, plus the Beryl AX (GL-MT3000). All existing `meshDeviceImages.ts` detection results -resolve to a model by their SVG filename. The existing SVGs and attribution -remain available as static fallbacks. USB chip identification remains a +resolve to a procedural model key. USB chip identification remains a best-effort visual match; it does not select firmware or claim exact hardware. The radios include modeled rear faces, enclosure panels or populated boards, @@ -23,7 +22,6 @@ verified against a rear photograph. The Beryl AX is the example router from Reference material: -- Existing Meshtastic illustrations in `neode-ui/public/assets/img/mesh-devices/`. - Beryl AX official front/rear/side hardware drawing: https://static.gl-inet.com/docs/router/en/4/user_guide/gl-mt3000/hardware_info/mt3000_interface.jpg - Beryl AX guide: diff --git a/neode-ui/mock-backend.js b/neode-ui/mock-backend.js index 642cea6b..a7baaa57 100755 --- a/neode-ui/mock-backend.js +++ b/neode-ui/mock-backend.js @@ -4470,6 +4470,12 @@ app.post('/rpc/v1', (req, res) => { // ── OpenWRT / TollGate gateway (demo: a thoroughly-used gateway) ── case 'openwrt.get-status': { + // Keep the local preview in the unconnected state so the router model + // is immediately visible. Set MOCK_OPENWRT_CONNECTED=1 to preview the + // connected dashboard instead. + if (!process.env.MOCK_OPENWRT_CONNECTED) { + return res.json({ error: { code: -32004, message: 'No router configured' } }) + } return res.json({ result: { host: '192.168.8.1', diff --git a/neode-ui/public/assets/img/mesh-devices/ATTRIBUTION.md b/neode-ui/public/assets/img/mesh-devices/ATTRIBUTION.md deleted file mode 100644 index 456b7ffd..00000000 --- a/neode-ui/public/assets/img/mesh-devices/ATTRIBUTION.md +++ /dev/null @@ -1,13 +0,0 @@ -# Device Artwork Attribution - -The device illustrations in this directory are from the -**Meshtastic® project** — https://meshtastic.org -(https://github.com/meshtastic), © Meshtastic contributors, -licensed under GPL-3.0. - -Meshtastic® is a registered trademark of Meshtastic LLC, used here solely to -identify compatible hardware. No endorsement by the Meshtastic project is -implied. - -Any modifications to these images made for Archipelago are likewise available -under GPL-3.0 as part of this public repository. diff --git a/neode-ui/public/assets/img/mesh-devices/diy.svg b/neode-ui/public/assets/img/mesh-devices/diy.svg deleted file mode 100644 index 81d0da13..00000000 --- a/neode-ui/public/assets/img/mesh-devices/diy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/heltec-mesh-node-t114-case.svg b/neode-ui/public/assets/img/mesh-devices/heltec-mesh-node-t114-case.svg deleted file mode 100644 index dc84fd1b..00000000 --- a/neode-ui/public/assets/img/mesh-devices/heltec-mesh-node-t114-case.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/heltec-mesh-node-t114.svg b/neode-ui/public/assets/img/mesh-devices/heltec-mesh-node-t114.svg deleted file mode 100644 index fc44238c..00000000 --- a/neode-ui/public/assets/img/mesh-devices/heltec-mesh-node-t114.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/heltec-v3-case.svg b/neode-ui/public/assets/img/mesh-devices/heltec-v3-case.svg deleted file mode 100644 index 86879653..00000000 --- a/neode-ui/public/assets/img/mesh-devices/heltec-v3-case.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/heltec-v3.svg b/neode-ui/public/assets/img/mesh-devices/heltec-v3.svg deleted file mode 100644 index 759dbe90..00000000 --- a/neode-ui/public/assets/img/mesh-devices/heltec-v3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/heltec-wsl-v3.svg b/neode-ui/public/assets/img/mesh-devices/heltec-wsl-v3.svg deleted file mode 100644 index c61b676a..00000000 --- a/neode-ui/public/assets/img/mesh-devices/heltec-wsl-v3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/heltec_v4.svg b/neode-ui/public/assets/img/mesh-devices/heltec_v4.svg deleted file mode 100644 index e7cb8943..00000000 --- a/neode-ui/public/assets/img/mesh-devices/heltec_v4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/nano-g2-ultra.svg b/neode-ui/public/assets/img/mesh-devices/nano-g2-ultra.svg deleted file mode 100644 index 5ad5c5bf..00000000 --- a/neode-ui/public/assets/img/mesh-devices/nano-g2-ultra.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/rak-wismeshtap.svg b/neode-ui/public/assets/img/mesh-devices/rak-wismeshtap.svg deleted file mode 100644 index 1085736a..00000000 --- a/neode-ui/public/assets/img/mesh-devices/rak-wismeshtap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/rak4631.svg b/neode-ui/public/assets/img/mesh-devices/rak4631.svg deleted file mode 100644 index 0eaea9b6..00000000 --- a/neode-ui/public/assets/img/mesh-devices/rak4631.svg +++ /dev/null @@ -1,3514 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/neode-ui/public/assets/img/mesh-devices/rak4631_case.svg b/neode-ui/public/assets/img/mesh-devices/rak4631_case.svg deleted file mode 100644 index 4ffa23c9..00000000 --- a/neode-ui/public/assets/img/mesh-devices/rak4631_case.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/rpipicow.svg b/neode-ui/public/assets/img/mesh-devices/rpipicow.svg deleted file mode 100644 index 519648ba..00000000 --- a/neode-ui/public/assets/img/mesh-devices/rpipicow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/seeed-xiao-s3.svg b/neode-ui/public/assets/img/mesh-devices/seeed-xiao-s3.svg deleted file mode 100644 index 768093b2..00000000 --- a/neode-ui/public/assets/img/mesh-devices/seeed-xiao-s3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/station-g2.svg b/neode-ui/public/assets/img/mesh-devices/station-g2.svg deleted file mode 100644 index 158d456a..00000000 --- a/neode-ui/public/assets/img/mesh-devices/station-g2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/t-deck.svg b/neode-ui/public/assets/img/mesh-devices/t-deck.svg deleted file mode 100644 index c13a445c..00000000 --- a/neode-ui/public/assets/img/mesh-devices/t-deck.svg +++ /dev/null @@ -1 +0,0 @@ -QWERTYIUPOASDFGHKJLaltZXCVBMN \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/t-echo.svg b/neode-ui/public/assets/img/mesh-devices/t-echo.svg deleted file mode 100644 index 006f77f5..00000000 --- a/neode-ui/public/assets/img/mesh-devices/t-echo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/t-echo_plus.svg b/neode-ui/public/assets/img/mesh-devices/t-echo_plus.svg deleted file mode 100644 index ebc76c89..00000000 --- a/neode-ui/public/assets/img/mesh-devices/t-echo_plus.svg +++ /dev/null @@ -1,502 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/neode-ui/public/assets/img/mesh-devices/tbeam-s3-core.svg b/neode-ui/public/assets/img/mesh-devices/tbeam-s3-core.svg deleted file mode 100644 index ed304d99..00000000 --- a/neode-ui/public/assets/img/mesh-devices/tbeam-s3-core.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/tbeam.svg b/neode-ui/public/assets/img/mesh-devices/tbeam.svg deleted file mode 100644 index 6119e7da..00000000 --- a/neode-ui/public/assets/img/mesh-devices/tbeam.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/thinknode_m1.svg b/neode-ui/public/assets/img/mesh-devices/thinknode_m1.svg deleted file mode 100644 index d4f95045..00000000 --- a/neode-ui/public/assets/img/mesh-devices/thinknode_m1.svg +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/tlora-t3s3-v1.svg b/neode-ui/public/assets/img/mesh-devices/tlora-t3s3-v1.svg deleted file mode 100644 index fb8297d3..00000000 --- a/neode-ui/public/assets/img/mesh-devices/tlora-t3s3-v1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/tlora-v2-1-1_6.svg b/neode-ui/public/assets/img/mesh-devices/tlora-v2-1-1_6.svg deleted file mode 100644 index 53064569..00000000 --- a/neode-ui/public/assets/img/mesh-devices/tlora-v2-1-1_6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/tracker-t1000-e.svg b/neode-ui/public/assets/img/mesh-devices/tracker-t1000-e.svg deleted file mode 100644 index 1d54ac53..00000000 --- a/neode-ui/public/assets/img/mesh-devices/tracker-t1000-e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/neode-ui/public/assets/img/mesh-devices/unknown-new.svg b/neode-ui/public/assets/img/mesh-devices/unknown-new.svg deleted file mode 100644 index daece9e5..00000000 --- a/neode-ui/public/assets/img/mesh-devices/unknown-new.svg +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/neode-ui/public/assets/img/mesh-devices/wio-tracker-wm1110.svg b/neode-ui/public/assets/img/mesh-devices/wio-tracker-wm1110.svg deleted file mode 100644 index 14b8f528..00000000 --- a/neode-ui/public/assets/img/mesh-devices/wio-tracker-wm1110.svg +++ /dev/null @@ -1 +0,0 @@ -LoRaWI FILEDRESETGNSSBLE \ No newline at end of file diff --git a/neode-ui/src/components/DeviceModel.vue b/neode-ui/src/components/DeviceModel.vue index 647d40f5..c8c18da8 100644 --- a/neode-ui/src/components/DeviceModel.vue +++ b/neode-ui/src/components/DeviceModel.vue @@ -1,19 +1,25 @@