Repository navigation
Conversation
… the setup signpost b8 applied preset 9 (dog, then setup card) at every boot while WiFi was unconfigured, whatever launch preset the owner had chosen. The choice was saved and shown in the UI but never ran, so owners using the M-1 without WiFi could not pick what it starts with. The signpost now plays only while WiFi is unconfigured AND the launch preset is still the factory one AND the owner has not chosen one AND presets.json has preset 9. A new persisted flag (cfg def.psc) records the choice: saving Config > LED & Hardware while no WiFi is configured, or ticking "Apply at boot" on a different preset (re-saving the pre-ticked dog preset does not count). No filesystem change: b8 units get the fix by OTA, and an owner who already set a launch preset other than the factory one gets it immediately. A wiped filesystem or a WLED-MM upgrade without preset 9 now runs its own launch preset instead of a missing preset 9. The signpost is compiled in only by [env:apollo_m1] (-D FACTORY_SIGNPOST_PRESET=9 -D FACTORY_BOOT_PRESET=4); other envs of the fork boot like upstream. apollo/boot-signpost-test.js (npm test) reads the condition from wled.cpp and checks the boot cases and both triggers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
D27 records the bug, the fix and the trade-off that needs sign-off. QA gains a D27 section run on a separate unit (the b8 gate never set a launch preset without WiFi). The no-WiFi wiki draft explains how to choose what the M-1 starts with, uses the real menu name (Config > LED & Hardware) and fixes the stale "Apollo M-1-xxxxxx" hotspot name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
Saving LED & Hardware without WiFi for any reason ends the boot setup card; accepted 2026-10-25. The narrower rule was rejected because it would stop owners from choosing the Apollo dog. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the bug Justin reported: unless the M-1 is added to a WiFi network, it ignores your launch preset and shows the dog logo and connection instructions at every power-on.
Cause
b8's first-boot signpost (
wled.cpp, beginStrip) applied preset 9 (dog, then setup card) at every boot while WiFi was unconfigured, whatever launch preset the owner had set. The choice was saved (it shows in the UI) but never ran. That contradicts D20 (full control with no network); no decision or QA row covered it, which is how it passed the b8 gate.Fix
The signpost now plays only while all of these hold: no WiFi configured, launch preset still the factory one (4), the owner has not chosen one, and preset 9 exists.
"Chosen" is a new saved flag (
cfg.jsondef.psc), set by:apollo/fschange, so it works by OTA.[env:apollo_m1](-D FACTORY_SIGNPOST_PRESET=9 -D FACTORY_BOOT_PRESET=4;platformio.inichange needs maintainer OK). Other envs of the fork now boot exactly like upstream (b8 forced preset 9 in every env).Product trade-off (D27): accepted by Justin, 2026-10-25
Saving LED & Hardware without WiFi for any reason (for example the color order from #8) counts as choosing, so the setup card stops at power-on. It stays available as preset 5 "Setup". There is no UI way back to the boot signpost short of a full install; launch preset 9 is not a good substitute (it keeps showing the hotspot card after WiFi is set up), so the docs no longer suggest it.
Verified (no hardware)
apollo/boot-signpost-test.js(runs innpm test): reads the boot condition fromwled.cppand the flags from[env:apollo_m1], checks them againstapollo/fs, runs 12 boot cases, and checks both triggers. It fails on b8/main (reproduces the bug); six deliberate mutations of the fix are all caught.npm test: 20/20.apollo_m1(+112 bytes vs b8),esp32s3dev_16MB_opi_hub75,esp32dev. ESP8266 can't build on this Mac (x86-only toolchain); CI covers it.Bench (QA_CHECKLIST.md, new D27 section)
Run on a separate factory-fresh unit (it marks the launch preset as chosen, which would break D13's final provision row). Key checks: nothing saved: dog then card every boot; rename the dog preset: still dog then card; launch preset 3 via LED & Hardware: Sound Bars, no card; 4: dog only; OTA from b8 with launch preset 3: Sound Bars without re-saving.
Customer docs (for you to publish; nothing posted from here)
Suggested addition for the docs repo page
docs/products/m1/setup/use-without-wifi.md, matchingapollo/wiki-rewrites/no-wifi-mode.md:🤖 Generated with Claude Code