This file tracks planned features, improvements, and technical debt for the SpojBoard project.
[ ]- Not started[~]- In progress[x]- Completed[?]- Needs clarification/discussion
- Extend day of week to full word (no abbreviations)
- Shorten date format to numeric (e.g., "15.02" instead of "08.Jan")
- Add option to remove status bar entirely
- Enable 4th line for departures when status bar disabled
- Automatically disable weather display when status bar removed
- Add
config.showStatusBarboolean setting - Update web UI with toggle option
- Update
DisplayManagerto support 4-row departure mode
- Guided setup wizard on first boot
- Step-by-step flow: WiFi credentials -> city/API selection -> stop IDs -> display settings
- Replace raw AP mode config page for first-time users
- Detect first boot via NVS flag (no prior config saved)
- Fall back to normal AP config for subsequent reconfigurations
- Implement station ID search via API
- Search by station name (user input)
- Return matching station codes and names
- Add search UI to web interface
- Support Prague (Golemio API)
- Support Berlin (BVG API)
- MQTT: document search approach (server-side responsibility)
- Add option to show next two departure times per line (dual ETA mode)
- Condensed font for dual ETAs, adaptive destination font based on available space
- Update API parsers to collect multiple times per line
- Update
DisplayManagerrendering logic - Per-tab config save in web UI
- Custom platform override
- Configurable platform symbol per platform value or stop ID
- Add
config.platformSymbolMapstring field (format: "B=3,ID:U693Z2P=7") - 8 directional arrows (1=N, 2=NE, 3=E, 4=SE, 5=S, 6=SW, 7=W, 8=NW) via weather font glyphs
- Two-tier matching: platform value first, then stop ID (ID: prefix) fallback
- Update web UI for platform symbol configuration
- Update
DisplayManagerto use custom symbols - Added
sourceStopIdto Departure struct for stop-based matching
- Add inline station search to configuration form
- Improve color picker UI for line colors
- Add preview mode for configuration changes (before save)
- Add transition animations between updates
- Support custom fonts (user-uploadable)
- Add brightness schedule (auto-dim at night)
- mDNS support (discover as spojboard.local)
- Fallback to cached data on network loss
- Configurable WiFi reconnection strategy
- Support for different panel sizes (64x64, 128x64)
- Hardware button support for brightness/mode toggle
- Support for additional hardware variants
- Additional transit API integrations (suggest: GTFS-RT)
- Multi-city display (split screen for 2 cities)
- Traffic delay severity indicators
- Add unit tests for core modules
- CI/CD improvements (automated testing)
- Simulation mode (run without hardware)
- Refactor
ConfigWebServerHTML generation (moved tosrc/network/web/dedicated files) - Extract font rendering logic from
DisplayManager - Improve error recovery in API clients
- Add memory usage monitoring/logging
- Review and optimize JSON buffer sizes
- Update power supply requirements in README/docs
- Updated measured data: 5V, brightness 90: 0.3A avg, brightness 255: 0.65A avg / 0.7A peak, transient spikes: 1.6A
- Recommendations: 5V 2A minimum, 5V 3A recommended
- USB-C focused, future-safe approach
- Updated README.md (lines 60, 67, 74-83) and WIRING.md (lines 94-101)
- Add hardware assembly guide with photos
- Document custom font creation process
- Add troubleshooting guide
- Create video tutorial for first-time setup
- Items can be moved between priority levels as needs change
- Add implementation notes under each item as work progresses
- Link to issues/PRs when work begins:
[#123](link) - Update status as work progresses