Skip to main content

A Python package for interacting with Bluetooth Low Energy (BLE) compatible bike trainers and power meters

Project description


A Python package for interacting with Bluetooth Low Energy (BLE) compatible bike trainers and power meters.

The package uses Bleak (Bluetooth Low Energy platform Agnostic Klient) behind the scenes to connect and communicate with bike trainers. Bleak is cross-platform with support for Windows, MacOS, and Linux. Please refer to the Bleak repository for more information about supported platforms.


I take no responsibility if the use of this package breaks your turbo trainer or stationary bike. Use at your own risk!

I have tested it with (tested protocols in brackets):

  • a Tacx NEO trainer (ANT+ FE-C over BLE, CPS, CSCS)
  • a Tacx NEO 2T trainer (ANT+ FE-C over BLE, CPS, CSCS)
  • an Elite Sterzo Smart steering plate (STERZO)
  • a pair of Garmin Vector 3 power meter pedals (CPS)

Please let me know if you have used it with another device, and I will add it to the list.

Supported protocols

Protocol name Fully supported Partially supported Not supported
Battery Service (BAS)
Cycling Speed and Cadence Service (CSCS)
Cycling Power Service (CPS)
Elite Sterzo Steering Service (STERZO)
FiTness Machine Service (FTMS)
Heart Rate Service (HRS)
Tacx Trainer Control (ANT+ FE-C over BLE)


Clone this repo and then run the following command from the root directory

python develop


Please refer to the documentation and the examples folder for basic usage of the package.


Bug reports and pull requests are welcome on GitHub at This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

In terms of contributing code, pull requests increasing the features supported in each protocol are especially welcome. If you would like to add support for another cycling related protocol, that would also be appreciated!

Useful documentation

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycycling-0.2.1.tar.gz (146.3 kB view hashes)

Uploaded source

Built Distribution

pycycling-0.2.1-py3-none-any.whl (146.4 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page