Skip to content

Milestones

List view

  • ### New functionality in 0.9.5 - Added **FIT-File support**: you can now automatically generate a FIT-file after a rowing session, which allows for a more detailed reporting than the tcx-format, and is commonly accepted by most platforms (see [issue 59](https://github.com/JaapvanEkris/openrowingmonitor/issues/59)). - **Introduction of the session manager**, which provides support for intervals, splits, rest intervals and spontaneous pauses in the session and also adds these to the FIT, tcx and RowingData recordings. Please note, setting predetermined intervals and splits in a user friendly way (via PM5 emulator and webinterface) is still on [our backlog](./backlog.md#soon). - **Improvement of Magnetic rower support**: the new session manager makes sure that the session is nicely stopped, even when the flywheel has stopped quite abruptly before pause timeouts have time to kick in. This is the case on some magnetic rowers which have an extreme high drag, resulting in very short spin down times of their flywheel. ### Bugfixes and robustness improvements in 0.9.5 - **Improvement of the architecture**: we cleaned up the old architecture and moved to a more message bus structure where clients are responsible for listening to the data transmissions they are interested in. See [the architecture description](Architecture.md) for a deep-dive of the implementation. Key benefit is that this is more maintainable as it allows serving data more easily to totally different clients (webGUI, recorders and BLE/ANT+) with totally different needs, making future enhancements easier. - **Improvement of Bluetooth stability**: as a temporary fix we moved from abandonware's NoBle/BleNo Bluetooth implementation to stoprocent's implementation, as that package is better maintained and works better with newer installs of BlueZ. This should fix some issues on Raspberry Pi Bookworm. Unfortunately, none of the NoBle/BleNo descendants are immune to some specific BlueZ issues (see [known issues](#known-issues-in-095)). - **Performance improvement of the TS estimator**, further reducing CPU load, which significantly improves accuracy of the measurements and metrics as the Linux kernel has an easier job keeping the time accurate. - **Removed a lot of memory leaks**, although only being problematic in large simulations (i.e. over 3000K), we want to keep our code to behave nice - **Improved robustness of the stroke detection algorithm** ### Known issues in 0.9.5 - **Bluetooth Heartrate can't be switched dynamically**: due to some underlying OS changes, BLE heartrate monitors can't be activated through the GUI without crashing the BLE metrics broadcast (see [the description of issue 69](https://github.com/JaapvanEkris/openrowingmonitor/issues/69)). As this is an issue in the OS, **all current and previous versions of OpenRowingMonitor are also affected by this issue**. Version 0.9.5 has a workaround implemented: configuring the use of a BLE heartrate monitor in the config file should work. However, dynamic switching via the GUI will crash the BLE connections. This issue will be resolved in version 0.9.6.

    Due by February 8, 2025
    21/21 issues closed
  • ### New functionality in 0.9.6 - **Major upgrade of our PM5 interface**, bringing it much closer to the official PM5 interface specification: apps like [ErgZone](https://Erg.Zone), [EXR](https://exrgame.com) and many others now work in PM5 mode in most scenarios (there are [some known limitations](#known-issues-in-096)). This allows you to set up a workout in the session manager with ease, have force curves presented and record the data (adresses [this request](https://github.com/JaapvanEkris/openrowingmonitor/discussions/78)). - **Added [RowsAndAll.com](https://rowsandall.com) and [intervals.icu](https://intervals.icu) integration** for workout reporting (i.e. automatic uploading of a result). - **Added a MQTT peripheral**. This reports metrics live to MQTT brokers and control home automation, etc. (see [this discussion](https://github.com/laberning/openrowingmonitor/discussions/43), [this discussion](https://github.com/JaapvanEkris/openrowingmonitor/discussions/80) and [this request](https://github.com/JaapvanEkris/openrowingmonitor/discussions/98)). The MQTT listener you to push workout plans to OpenRowingMonitor from home automation systems (see [the integrations page](Integrations.md) for more information). ### Bugfixes and robustness improvements in 0.9.6 - **Simplified Strava integration**, which now is in line with the rest of the integrations (see [this discussion](https://github.com/JaapvanEkris/openrowingmonitor/discussions/64)) and greatly simplifying the backend-architecture - **Rewrite of the entire bluetooth stack**, greatly improving stability and removing limitations. This also fixes the issue that heartrate device can't be switched dynamically (adresses [the known limitation of version 0.9.5](#known-issues-in-095), reported in [this bug](https://github.com/JaapvanEkris/openrowingmonitor/issues/69), [this feature request](https://github.com/JaapvanEkris/openrowingmonitor/discussions/93) and [this bug report](https://github.com/JaapvanEkris/openrowingmonitor/issues/94). - **Fixed a bug in pause behaviour** for magnetic rowers causing them to sttop permanently (fixes [this bug](https://github.com/JaapvanEkris/openrowingmonitor/discussions/96)). - **Fixed a bug in the metrics presentation**, which caused some metrics presented/recorded to be averaged too much. - **Fixed a bug in restart behaviour** that made the recorders crash (fixes [this bug](https://github.com/JaapvanEkris/openrowingmonitor/discussions/100)). - **Upgraded ESLint and its configuration**, our code is inspected beyond the use of spaces. - **Introducing JSDoc** in our code, to make our code easier to understand ([see also](https://github.com/JaapvanEkris/openrowingmonitor/issues/90)). - **Upgrade npm packages and node.js**: we cleaned house by removing a lot of unneeded npm packages, upgraded npm packages where we could and upgraded to Node.js v22 (current) to increase support. This makes our stack current and fixes some security vulnerabilities. - We **moved from Chromium to Firefox** for the webkiosk service as it greatly reduces the CPU load, practically freeing up a complete CPU core. ### Known issues in 0.9.6 - Our PM5 interface still has some minor limitations: - ErgZone and similar apps also can set a 'Calories' based workout. This interval type is still on [our backlog](./backlog.md#soon), so it currently isn't supported yet. The PM5 interface will fail silently and will **not** send an error message on this. - ErgData will not work well with our PM5 interface: sometimes it can program OpenRowingMonitor, but you will **not** be able to save your workout, as we can't create the cryptographic hash to upload the workout results. This also causes a deadlock that hangs communication at both ends (kill the ErgData app to resolve this). As ErgData is propriatary to Concept2, we have decided to **not** put in any effort to resolve this (see [issue 117](https://github.com/JaapvanEkris/openrowingmonitor/issues/117)). - Some Garmin watches have issues with our 'Cycling Power' and 'Cycling Speed and Cadence' Bluetooth profiles as a result of a change on their side in handling unencrypted Bluetooth commmunication. This affects all current and past versions of OpenRowingMonitor, and might be caused by Garmin (see [issue 125](https://github.com/JaapvanEkris/openrowingmonitor/issues/125)).

    Due by July 6, 2025
    20/20 issues closed