openrowingmonitor
openrowingmonitor copied to clipboard
Functional improvements Application and Physics Engine, Bugfixes
New functionality:
- Added support for ANT+ rowing metrics broadcast
- Allow the user to change the GUI layout and metrics, including displaying the force curve
- Allow user to turn on or off ANT+ and BLE functionality and dynamically switch between ANT+ and BLE HR monitors from the GUI
- Added the option for more complex workouts, as a hook for the PM5 and webinterface (these are a ToDo where the PM5 workout interface is still in development)
- Added PM5 Interval-types
Added some bugfixes/robustness improvements:
- Added support for the newest version of Raspberry Pi OS (Bookworm), moved from Node.js v16 (EOL) to Node.js v20 (current) and upgraded packages where possible. Is known to work on Raspberry Pi 3 and 4.
- Improved the accuracy, responsiveness and efficiency of both the Linear and Quadratic the Theil-Sen algorithms. For larger 'flankLength' machines (12+ datapoints), this improved algorithm will also result in 50% reduction in CPU use, while increasing the responsiveness and accuracy of the forcecurve and powercurve. For smaller 'flankLength' machines it will improve less, but still improve.
- All linear calculations (stroke detection, Drag calculation, recovery slope calculation) now use the Linear Theil-Sen algorithm, making this calculation more robust against outliers and stroke detection errors
- Added a configuration sanity check which logs obvious errors and (if possible) repairs settings, after several users messed up their config and got completely stuck.
- The configuration sanity check also provides an automated upgrade path for 0.8.4 users to V1Beta, as all the newly added configuration items between these two versions are automatically detected, logged and repaired.
- Added restart limits to prevent infinite boot loops of the app crashing and rebooting when there is a config error
- Fixed the GPIO tick rollover, which led to a minor hickup in data in rows over 30 minutes
- Made Flywheel.js more robust against faulty GPIO data
- Fixed an application crash in the RowingData generation when the target directory doesn't exist yet
- Improved the structure of the peripherals to allow a more robust BLE and ANT use