-
Hardware
- Assemble a prototype, sensors, display, buttons
- Read from GPS, ALT/TEMP sensors
- Use E-Ink display
- Frame transfer takes 200ms, consider transferring only dirty regions
- Find out faster way for display to show now only 1fps is effective
- Try to use a display from some e-reader, or find a better supplier? Hard to give up this idea, because it feels so right!
- Use Sharp memory display
- Port the library, make SPI communication correct
- Update all GUIs
- During drawing, send only dirty regions
- Calibrate altitude
- Read about temp, seems to be off by 2*
- Add accelerometer
- Design the case
- Print the case and assemble!
-
Software on the Device
- Provide an architecture (MVP) for handling GUI
- Figure out how to create and read/write partitions
- Add health service monitoring every hour for CPU, RAM, FLASH, uptime, write data to the log.
- Gather data
- Log every hour
- Write to the file
- Create a GUI page with that data, useful when device will go off line
- Consider making paint class more cache friendly
- Figure out BLE communication
- Try to not get insane while reading esp32 BLE api
- Design and implement GATTS server for fetching activities
- Add GUI for synchronization
- Add ghost runner functionality
- Use accel. to calculate cadence, and stride
- Add travis CI
- clang-tidy?
- Add OTA support (2 partitions + factory)
- Figure out testing
- Functional tests
- Unit tests
- Add new fonts: https://kapusta.cc/2020/03/20/fontedit/
- Do refactor
-
Other Software
- Create a tool to do GUI mockups fast
- Do a client that fetches FIT file over BLE
- Create a tool to make Workout FIT or ZWO files (WASM?)
- Create charts (WASM?)
-
Activities
- Support FIT Activity files
- Support FIT Workout files
- Support FIT Course files
- Looks like workouts are written in ZWO file format https://github.com/h4l/zwift-workout-file-reference
- https://medium.com/hackernoon/cloning-zwift-on-ios-part-2-reverse-engineering-a-workout-9d4ffabc29e8