Releases: xbach/spojboard-firmware
Releases · xbach/spojboard-firmware
Release 5
Added
- Dual ETA display showing next departure for same line+destination
- Platform-to-arrow directional symbols (configurable per platform/stop ID)
- Multi-hardware variant support (MatrixPortal S3 + generic ESP32-S3 N8R2)
- Manual rest mode toggle via web UI
- Departures debug list in web config
- "Loading Departures..." screen on boot and rest mode exit (replaces misleading "No Departures")
- Help text for line color wildcard pattern syntax
- Rest mode period input validation (HH:MM-HH:MM format)
Changed
- Redesigned web configuration interface with tabbed layout
- Per-tab config save (only sends active tab fields)
- Full day names and numeric dates in status bar
- Display rendering moved to CPU core 1 for smoother updates
- Display state machine centralized in DisplayController
- Departure sort: secondary sort by destination (was line name)
- Cold temperature color changed from blue to cyan
Fixed
- Line color config lost on save (stale JS serialization overwrote with wrong selectors)
- Timezone parsing issues for some departures
- XSS vulnerabilities, thread safety, HTTP limits, config validation
- Rest mode display clearing via signalDisplayUpdate
- Font descender artifacts removed
Release 4
Added
- Weather display with Open-Meteo API integration (icon and temperature on status bar)
- Rest mode for scheduled display power saving with REST API control endpoint
- MQTT integration for self-hosted transit data (see
docs/MQTT.md) - Configurable destination scrolling option for long names (default: off)
- Code formatting config (clang-format and editorconfig)
Performance
- Chunked HTTP reading for Prague and Berlin APIs (reduced memory usage)
Fixed
- Line number preformatting for consistent display alignment
Release 3
Added
- Demo Mode: Standalone demo mode with customizable sample departures
- Web interface to edit sample departures (line, destination, ETA, A/C status)
- Available in both AP and STA modes
- Smart ETA Updates: 10-second ETA recalculation from cached timestamps
- Reduces API calls by 6x while keeping display fresh
- Allows longer refresh intervals (up to 300s)
- Telnet Logging: Remote debugging via telnet (port 23)
- Enable via debugMode config field in settings
- Extended Departure Buffer: Increased from 6 to 12 departures
- Provides 8-12 minute buffer during peak times
- Condensed Font Support: Automatic font switching for long destinations
- DepartureMonoCondensed5pt8b for destinations >16 chars (23 char capacity)
- API Retry Logic: Improved error handling and user feedback
- Factory Reset: Reset to defaults via settings page
- Custom Line Colors: User-configurable color mapping system
- Pattern matching with trailing asterisk (e.g., "9*=CYAN")
Changed
- API Optimization: Always fetch MAX_DEPARTURES (12) per stop for optimal caching
- Increased JSON buffer to 12KB for busy stops
- Web UI Improvements
- Display Improvements
- Logging: All Serial.println() converted to debugPrintln() for consistent logging
Fixed
- OTA Handler: Split handleUpdateUpload into separate progress/complete handlers
- Stack Overflow: Made tempDepartures static (~2KB moved off stack)
- API Query: minDepartureTime now queried in API, removed unnecessary filtering in parser
- Font Metrics: Fixed xAdvance values in DepartureMono5pt8b
Release 2
Fixed
- Enable HTTP redirect following for GitHub asset downloads
Release 1
Initial public release of SpojBoard firmware.