From ff404e9fd206dd24acd12cac9cb071e6f67762f3 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sat, 18 Jul 2026 06:01:22 -0500 Subject: [PATCH 1/2] feat: add FAB26 Boston event firmware edition Adds FAB26 Boston (22nd International Fab Lab Conference & Symposium, July 27-31 2026, MIT / Cambridge MA) to the event firmware manifest, inserted chronologically between Open Sauce and DEF CON. - data/eventFirmware.json: new FAB edition with the official brand theme (navy/red/gold palette sampled from fab26.fabevent.org, Montserrat fonts). firmware block left null until a build ships. Bumped generatedAt. - static/eventFirmware/fab26.png: bundled official 200x200 logo (RGBA). - src/lib/eventFirmware.ts: refresh the theme doc comment. Co-Authored-By: Claude Opus 4.8 --- data/eventFirmware.json | 34 ++++++++++++++++++++++++++++++++- src/lib/eventFirmware.ts | 3 ++- static/eventFirmware/fab26.png | Bin 0 -> 14434 bytes 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 static/eventFirmware/fab26.png diff --git a/data/eventFirmware.json b/data/eventFirmware.json index 5ac1046..c768412 100644 --- a/data/eventFirmware.json +++ b/data/eventFirmware.json @@ -1,6 +1,6 @@ { "version": 2, - "generatedAt": "2026-06-30T00:00:00Z", + "generatedAt": "2026-07-18T00:00:00Z", "source": "bundled", "editions": [ { @@ -65,6 +65,38 @@ "releaseNotes": "## Welcome to Open Sauce 2026! 🔧\n\nThis firmware has been customized for Open Sauce with factory default configurations.\n\n### ⚠️ Important: Backup Before Flashing\n\nIf your device has existing settings or encryption keys, **backup your keys / configurations** before proceeding. Flashing will reset your device to factory settings for the event.\n\n### Quick Start\n\n1. Ensure a **data-capable USB cable** is connected\n2. Select your device type\n3. Choose \"Full Erase and Install\"\n4. After flashing, download the Meshtastic app and pair via Bluetooth\n5. If you updated from a previous version or installed a UF2 on an NRF52 device, you will need to perform a factory reset on the device to activate the Open Sauce mode.\n\n**Happy meshing from San Mateo!**" } }, + { + "edition": "FAB", + "displayName": "FAB26 Boston", + "welcomeMessage": "Welcome to FAB26 Boston! 🛠️", + "tag": "FAB26", + "eventStart": "2026-07-27", + "eventEnd": "2026-07-31", + "timeZone": "America/New_York", + "location": "MIT, Cambridge, Massachusetts, USA", + "iconUrl": "https://api.meshtastic.org/resource/eventFirmware/fab26.png", + "accentColor": "#13293D", + "domain": "fab26.meshtastic.org", + "links": [ + { "label": "Event Website", "url": "https://fab26.fabevent.org" }, + { "label": "Fab Foundation", "url": "https://fabfoundation.org" } + ], + "theme": { + "name": "Reimagine the Future", + "tagline": "Celebrating 25 years of the Fab Lab Network and reimagining the next 25.", + "colors": { "primary": "#13293D", "secondary": "#BF2620", "accent": "#EAB14B" }, + "palette": ["#13293D", "#BF2620", "#F6F2E8", "#EAB14B", "#D3CABA"], + "fonts": { "heading": "Montserrat", "body": "Montserrat" } + }, + "firmware": { + "slug": "fab2026", + "version": null, + "id": null, + "title": null, + "zipUrl": null, + "releaseNotes": null + } + }, { "edition": "DEFCON", "displayName": "DEF CON 34", diff --git a/src/lib/eventFirmware.ts b/src/lib/eventFirmware.ts index 5f3b708..8b9e817 100644 --- a/src/lib/eventFirmware.ts +++ b/src/lib/eventFirmware.ts @@ -17,7 +17,8 @@ export interface EventFirmwareLink { // Brand/theme metadata for ambient event styling (web-flasher tints its whole // UI from this; Android may adopt it later). accentColor stays the single // primary swatch for clients that only want one color; theme.colors.primary -// mirrors it. All optional — only DEFCON ships a full published style guide. +// mirrors it. All optional — DEFCON and FAB26 carry the fullest themes +// (multi-color palette + fonts); others may ship only a single accent. export interface EventFirmwareTheme { name?: string | null; // theme title, e.g. "Agency" tagline?: string | null; // one-line theme statement diff --git a/static/eventFirmware/fab26.png b/static/eventFirmware/fab26.png new file mode 100644 index 0000000000000000000000000000000000000000..191b0a3b7d12edaaed2d56cdc6cb1a99fbf3247a GIT binary patch literal 14434 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

E66p|Y4Kc8K6Y!yrSqb&|~QiVI^tziK}@T8~g} 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 Date: Sat, 18 Jul 2026 06:08:39 -0500 Subject: [PATCH 2/2] fix: use fab.meshtastic.org subdomain for FAB26 Matches the event-name (no year) subdomain convention used by the other editions (hamvention/defcon/opensauce/burningman). Co-Authored-By: Claude Opus 4.8 --- data/eventFirmware.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/eventFirmware.json b/data/eventFirmware.json index c768412..c370f91 100644 --- a/data/eventFirmware.json +++ b/data/eventFirmware.json @@ -76,7 +76,7 @@ "location": "MIT, Cambridge, Massachusetts, USA", "iconUrl": "https://api.meshtastic.org/resource/eventFirmware/fab26.png", "accentColor": "#13293D", - "domain": "fab26.meshtastic.org", + "domain": "fab.meshtastic.org", "links": [ { "label": "Event Website", "url": "https://fab26.fabevent.org" }, { "label": "Fab Foundation", "url": "https://fabfoundation.org" }