SmartSpin2k

Transform your spin bike into a Smart Trainer!

GPL-2.0 License

Stars
181
Committers
17

Bot releases are hidden (Show)

SmartSpin2k - 2.7.9

Published by doudar over 2 years ago

What's Changed

Full Changelog: https://github.com/doudar/SmartSpin2k/compare/2.6.26...2.7.9

SmartSpin2k - 2.6.26

Published by doudar over 2 years ago

What's Changed

Full Changelog: https://github.com/doudar/SmartSpin2k/compare/2.2.8...2.6.26

SmartSpin2k - 2.2.8

Published by doudar over 2 years ago

[2.2.8]

*Binary changed since release to update certs.h because of a new ssl certificate for github. ad-3-27-22

Added

  • Added functions to start and stop WiFi and Http server.
  • Added Additional logging to the custom characteristic.
  • Added option to enable/disable UDP logging. Default is disabled.
  • Added Wiki links to most SS2K pages. see #314
  • Added WebSockets for logging see #173
  • Reworked logging to run log-appender outside the worker task (task no longer blocked by logger traffic).
  • WebsocketsAppender can handle multiple (up to 4) clients. Status.html will reconnect if connection to websockets server is disconnected.

Changed

  • Refactored ERG.
  • Reset to Default must be confirmed see #51
  • Update Firmware: Upload dialog accepts .bin, .html and .css files. see #98
  • Removed conflicting secondary BLE indicate when a shift was preformed via the custom characteristic.
  • Default stepper power is now used on reset to defaults.
  • Refactored Main and HTTP Server.
  • Changed from hard coding to Enums in BLEServer.
  • Added simulateWatts to ERG mode internal check.
  • Increased BLE Stack(s) and reduced ERG stack.
  • Disabled shifter ISR while ERG is running.
  • Fixed possible infinite loop in ERG when stepper never reached target position due to being past min or max position.
  • When UDP logging is enabled, html will no longer request logging info.
  • Increased remote server minimum packet delay to 325ms and max to 700ms.
  • Updated Arduino_esp32 to the latest 2.0.2 version.
  • Fixed all libraries to static releases.
  • Reduced max_connect_retries from 10 to 3.
  • Increased max_scan_retries from 1 to 2.
  • Now only send notifications for subscribed characteristics.
  • Increased JSON size for userConfig (hopefully fix config saving issues).
  • Changed LOGE messages in spiffs logging to regular LOG messages so they will display via network logging.
  • Complete BLE Client connection code rebase.

Fixed

  • bluetoothscanner.html now lists fitness machine services in the PM list.
  • Fixed bug in external control.

Hardware

  • Added Ultra Short Case mod which should allow as little as ~40mm from knob center to head tube.
  • Revised shifter for easier printing. Updated printing instructions.
  • moved original shifter design into Archive directory

Direct mount Mod

  • IC4 Mod renamed to Direct Mount Mod. Several directories have changed.
  • bike mount and arm added for Echelon Connect Sport
  • Arm design revised for added stiffness
  • Case, arm and bike mount separated into individual CAD files for easier edits.
  • Arm and bike mount re-drawn in CAD. It should be much easier to create designs for new bikes now.
SmartSpin2k - 2.1.27

Published by doudar over 2 years ago

Added

  • Added functions to start and stop WiFi and Http server.
  • Added Additional logging to the custom characteristic.
  • Added option to enable/disable UDP logging. Default is disabled.
  • Added Wiki links to most SS2K pages. see #314

Changed

  • Refactored ERG.
  • Reset to Default must be confirmed see #51
  • Update Firmware: Upload dialog accepts .bin, .html and .css files. see #98
  • Removed conflicting secondary BLE indicate when a shift was preformed via the custom characteristic.
  • Default stepper power is now used on reset to defaults.
  • Refactored Main and HTTP Server.
  • Changed from hard coding to Enums in BLEServer.
  • Added simulateWatts to ERG mode internal check.
  • Increased BLE Stack(s) and reduced ERG stack.
  • Disabled shifter ISR while ERG is running.
  • Fixed possible infinite loop in ERG when stepper never reached target position due to being past min or max position.
  • When UDP logging is enabled, html will no longer request logging info.

Hardware

  • Added Ultra Short Case mod which should allow as little as ~40mm from knob center to head tube.
  • Revised shifter for easier printing. Updated printing instructions.
  • moved original shifter design into Archive directory
SmartSpin2k - Auto_Max_Min + Zwift Fix

Published by doudar almost 3 years ago

What's Changed

Added

  • Added userConfig shifterDir to change direction of shifters in software to compensate for different wiring
  • Added userConfig StepperDir to change direction of stepper in software to compensate different for wiring
  • Added backend and html for shifter and stepper directions.
  • Added parameters for auto homing.

Changed

  • Fixed a couple bugs in PowerTables
  • Fixed BLE Scanner webpage not displaying devices.
  • Corrected a check in the FTMS write control point indication.

Full Changelog: https://github.com/doudar/SmartSpin2k/compare/1.12.26...1.12.30

SmartSpin2k - ERG-Respin

Published by doudar almost 3 years ago

Complete overhaul of ERG mode which now builds a Power Table on each session and uses it to lookup new ERG target requests.

Thanks to @MarkusSchneider for all his coding and data collection and to @eMadman for helping to test this release!

What's Changed

Full Changelog: https://github.com/doudar/SmartSpin2k/compare/1.12.2...1.12.26

SmartSpin2k - 1.12.2

Published by doudar almost 3 years ago

Added

  • Firmware update will now download only spiffs files if missing without updating the firmware.
  • New UDP logger by @MarkusSchneider .
  • Added custom IC4 build and mount by @eMadman .

BugFixes

  • Power Correction factor now minimum .5 maximum 2.5 and added checks to stay within limits.
  • 404 now redirects to index file handler.
  • settings_processor now checks shiftsteps field to determine if it's on the main settings page.
SmartSpin2k - 1.11.24

Published by doudar almost 3 years ago

  • Moved FTMS callback decoding outside of the callback.
  • Revamped the way notify buffer works as it was causing a memory leak.
  • Binary built with Telegram (and SSL) disabled.
  • Updated to latest Arduino Core. (Much lower memory footprint!)
  • Updated all other libraries to latest.
SmartSpin2k - 1.6.19

Published by doudar over 3 years ago

Whoa! Lots of changes here!

Added

  • Initial implementation of the custom characteristic.
  • Added additional FTMS characteristics and some refactoring of shared variables
  • Added GZipped jQuery to fix non WAN connected manual updates.
  • Pin arduino-esp32 package to version 1.0.6 to fix build issue
  • Added + - Buttons to sliders.
  • Added firmware checklist to "~/" for PR and release candidate testing.
  • Added README.md to "~/Hardware/*" that provides help for the files contained within.
  • Added BakerEchelonStrap to "~/Hardware/Mounts/".
  • Added positive retention clip to "~/Hardware/Mounts".
  • Added Logan clip to "~/Hardware/Mounts".
  • Added experimental rigid mounting strap. * Fixed width to 65mm.
  • Add images for video links in Wiki Build How To.
  • Added webhook for simulated cadence.
  • Add image for video link in Build How To
  • Added images for video links in Wiki Build How To
  • Added XL (Extra Long) Mounting strap for Echelon.
  • Added Insert Peloton 7 Flat V2 .sldpart and .stl.
  • Added initial credits file.
  • Added initial changelog.
  • Enabled cpp-lint, pio check, and clang-format to enforce coding standards and catch errors.
  • Added support for ruing pre-commit to run pre-push checks.
  • Added github workflow on pull_request to validate changelog and coding standards.
  • Add hyphens to Flywheel GATT UUIDs.
  • Filter Flywheel advertisements by name.
  • Add documentation to SensorData class.
  • Enabled native testing.
  • Added logging library which supports levels.

Changed

  • Moved Vin to the correct side on the ESP32 connection diagram.
  • Power Correction Factor minimum value is now .5
  • Made Revmaster insert slightly smaller.
  • Fixed minor spulling errurs.
  • Reorganized hardware library into per part subfolders.
  • Updater shifter cover to version 9.
  • Fixed missing strap loops on non-pcb case.
  • Power Correction Factor slider now updates correctly.
  • Removed unused http onServer calls.
  • Repaired btsimulator.html
  • Shortened HR characteristic to 2 bytes (Polar OH1 format)
  • Increased ShiftStep UI slider range.
  • Replaced DoublePower setting with PowerCorrectionFactor setting.
  • Reverted bytes_to_u16 macro.
  • Erg mode tweak.
  • Added another test for Flywheel BLE name.
  • Updated Echelon Insert
  • Fixed many issues exposed by the addition of cpp-lint, pio check, and clang-format.
  • Fixed merge issues.
  • Fixed Echelon licenses.
  • Fix Flywheel power/cadence decoding.
  • Ignore zero heart rate reported from remote FTMS.
  • Fix Assimoa Uno stuck cadence.
  • Started extract non-arduino code into a cross-platform library.
  • Changed all logging calls to new logging library.

Removed

  • Deleted and ignored .pio folder which had been mistakenly committed.
SmartSpin2k - Flying in Echelon

Published by doudar over 3 years ago

Presenting release Flying Echelon.

A TON of work went into this release from multiple authors, so thank you to everyone but a huge, mega thanks to @kadaan for all his help in the sensor decoders. His work should make it much easier to support all different kinds of decoding schemes in the future. It may not look like much from the actual changes to the user, but this release has had 154 commits with each one taking multiple hours of work.

The other contributor that has done a lot of work is @fireyeti , by spreading the word about our project via Instructables, YouTube and Reddit. He also built his own Non-PCB SmartSpin2K in the last couple weeks. If you haven't taken the time to check out his contributions, please look at the following links and share them with your friends.

https://www.instructables.com/Spin-Bike-Controller/
https://youtu.be/-ec2tOkglAM
https://www.reddit.com/r/Zwift/comments/m1d4p8/diy_smart_trainer_for_spin_bikes/

I hear from @fireyeti that there's plenty more he has planned on this front as well as possibly gearing up to build some kits himself (I could use more help in this area as I'd like to focus my efforts in advancing the project with my limited time...even though I love to build stuff).

Also thank you to @jkbaker4 for his help getting Echelon working and @sspieser & @drz01 for their testing, & feedback as well as everyone else that has ordered the kits which helped provide the motivation to continue enhancing the project.

We've got some big features planned in the pipeline, and please, if anyone has any changes, enhancements or contributions they'd like to help out with on the project don't hesitate.

With all that, here's the changelog:

  • SS2K BLE Server now accepts more than one simultaneous connection (you can not connect SS2K to both Zwift and another app simultaneously)
  • Echelon bike is now supported
  • SmartSpin2K.local more accessible with different browsers (fixed certain MDNS dropouts)
  • Flywheel bike support built in (still untested)
  • Backend (client) completely revamped to allow more device decoders, better stability, and faster network speeds.
  • Lots of FTMS server and client polishing
  • Added testing for decoders
  • Versioning now comes from releases
  • NimBLE library included
  • Increased total max connections to 6 devices
  • Refined debugging logs
SmartSpin2k - Release only for Version Testing.

Published by doudar over 3 years ago

This is a release only to test our automatic OTA version testing and updates.

SmartSpin2k - Last release before the new non-notify debut

Published by doudar over 3 years ago

This release is a snapshot of the current master prior to merging the massive changes that have been implemented in our newest development branches.

SmartSpin2k - 1.2.6

Published by doudar over 3 years ago

*1.2.6

Added limited Telegram BLE debugging information for development. No sensitive information is sent back. I can make this telegram info available as a private group (in Telegram) if anyone is interested in seeing it. This was added because there are a couple BLE devices that don't seem to conform to the standard protocol and we need more information about them to get them to work properly.
Internal web UI links now use IP address instead of the local DNS name for compatibility with certain routers.
Added a favorite icon (favicon.ico) for browser compatibility.
Fixed an BLE bug which would occasionally cause a crash on scanning.
Changed priority of subroutines and optimized task memory footprint.
Streamlined the WiFi connect sequence.

SmartSpin2k - 0.1.1.11

Published by doudar over 3 years ago

All metrics now zero when correct BLE !connected
Added HR->PWR off/auto switch
WiFi starts up faster
BLE now connects device on save
BLE Scans are less error prone
MDNS Fix for certain android browsers

SmartSpin2k - 12.23

Published by doudar almost 4 years ago

Great first milestone to capture a release. I'm fairly confident all of the big bugs in usability have been squished and we can finally start working on making this look great!