Skip to content

Releases: xbach/spojboard-firmware

Release 5

09 Feb 22:27

Choose a tag to compare

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

20 Jan 13:13
3a21860

Choose a tag to compare

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

10 Jan 19:42

Choose a tag to compare

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

09 Jan 13:49

Choose a tag to compare

Fixed

  • Enable HTTP redirect following for GitHub asset downloads

Release 1

09 Jan 13:21

Choose a tag to compare

Initial public release of SpojBoard firmware.