Skip to content

Add new Extended BLE Metrics and deprecate WebSocket API

Latest
Compare
Choose a tag to compare
@Abasz Abasz released this 10 Jul 12:47

Version 5.2.0

This release focuses on expanding hardware support, enhancing BLE functionality, refining rower profiles, and improving code quality. Additionally, various bug fixes and optimizations are included to enhance overall performance and stability.

Note: This release deprecates the WebSocket API as well as serving up the WebGUI locally from the MCU in favor of the extended BLE metrics API and a progressive web app. However, the option to compile with the WebSocket API will be kept until that feature is stable.

New Features

Addition of New BLE Services

Creates proper services for extended metrics as well as settings and groups the related characteristics within the appropriate service. These enhancements enable the deprecation of the WebSocket server as all data can be accessed via Bluetooth.

  • Extended BLE Metrics API: Created a custom BLE profile to expose metrics via BLE that were originally available via WebSocket.
  • BLE Handle Forces: Exposes stroke handle force data via BLE.
  • Delta Time Logging via BLE: Added functionality to allow sending delta time data via Bluetooth for logging, debugging, and row data analysis purposes.
  • Settings BLE Service: Added functionality to allow sending settings data via Bluetooth, making potential future expansion of changeable settings more flexible. This includes enabling/disabling SD Card logging, improving flexibility and ease of use.

Support for Newer ESP32 Chips

  • ESP32-S3 Support: Added support for CDC-enabled ESP32 chips such as the S3.

Updates and Improvements

  • RGB LED Configuration: Introduced a setting option for EOrder to support different types of RGB LEDs with varying color orders (e.g., GBR).
  • Refine Current Rower Profiles: Updated inertia values for Generic Air rower and KayakFirst Blue rower profiles based on testing, which showed previously set values were too low. Necessary recalibration was performed.
  • Flash Usage Reduction: Reduced flash usage by disabling unused NimBle library functions.

Bug Fixes

  • SD Card Logging Bugs: Fixed issues where SD Card logging could not be reenabled after being disabled and where logging did not switch off when other delta time logging was active.
  • Weighted Average Calculation: Corrected a bug in the weighted average calculation that incorrectly summed values.
  • Float Precision Bug: Fixed a fatal float precision issue in ISR calculations causing crashes due to the lack of FPU in ESP32 interrupts. Updated configuration variables and tests accordingly.

Code Refactoring and Maintenance

  • Const Correctness: Improved const correctness by using constant iterators where possible.
  • Clean Up Includes: Cleaned up using and include statements to streamline code.
  • OpCode Enum Variable: Renamed OpCode enum variable for clarity.
  • Peripheral Service Refactoring: Refactored the Bluetooth service class functions into separate files for better maintainability and updated service setup.
  • Refactored Configurations Class: Removed the class name from static access within the Configurations class and added more defaults (e.g., default DEFAULT_BLE_SERVICE in line with the deprecation of the WebSocket API).

Full Changelog: 5.2.0...5.2.0