Repository navigation
v1.1.0
What's New
OTA Firmware Updates via GitHub Releases
MiniPulse now checks for firmware updates directly from GitHub Releases over HTTPS. The captive portal shows your current version, checks for available updates, and can flash new firmware over-the-air — no USB cable needed.
Spacecraft Filtering
A curated list of 44 high-priority missions (Voyager, JWST, Perseverance, Europa Clipper, etc.) is now the default display mode. Non-priority spacecraft are still recognized but filtered out to keep the display focused on active deep space missions. This can be toggled via the useApprovedOnly config flag.
Portal Improvements
- New Spacecraft page listing all recognized craft (non-priority missions shown dimmed)
- NASA JPL logo in the portal header
- Firmware version check is now cached to prevent device crashes from repeated page loads
- Manual "Check for Updates" button for on-demand version checks
- Improved button layout and menu ordering
Bug Fixes
- 10 critical and short-term stability fixes — queue initialization order, semaphore flag assignment, pointer-to-pointer queue send, pool allocator rewrite, WiFi connection check, uninitialized variables, dangling pointers, null-termination, display timer reset, and inverted startup logic
- Binary up signal detection — simplified from unreliable rate-based heuristic to binary presence detection
- Semver parsing — handles
vprefix from GitHub tags and correctly compares pre-release vs stable versions - Null root element guard in XML parser prevents crash on malformed DSN data
- Portal input validation — hardened checkbox parsing, brightness mapping, and division-by-zero guard
Performance
- 30 FPS frame limiter with render time and heap diagnostics
- Eliminated LittleFS round-trip in data fetch pipeline — spacecraft data served from memory
- Replaced
std::mapwithstrcmpchain intermColor()for lower overhead - Reduced semaphore hold time from seconds to microseconds
- Optimized boot sequence — skip flash writes when firmware version unchanged
Security & Reliability
- All library dependency versions pinned for reproducible builds
- Serial output gated behind
showSerialconfig flag (off by default) - Added
.catch()handlers to all portal fetch calls - 43-spacecraft fallback dataset from real DSN observations replaces dummy XML
Full Changelog: v1.0.4...v1.1.0