Skip to main content

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

Project description

pycycling

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.

Disclaimer

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)

Installation

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

python setup.py develop

Usage

Please refer to the examples folder for basic usage of the package

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/zacharyedwardbull/pycycling. 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.1.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pycycling-0.1.0-py3-none-any.whl (143.5 kB view details)

Uploaded Python 3

File details

Details for the file pycycling-0.1.0.tar.gz.

File metadata

  • Download URL: pycycling-0.1.0.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.2

File hashes

Hashes for pycycling-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d3599b917e63a80f4a1efeaec2fe5213d890bb3efdce18324c44a220c5b4aafb
MD5 cef8577a8519f71c748f1a433797a42b
BLAKE2b-256 36ecb33231e5167351bf094603b03d8970d4bdf24fea0a2d79c7f846ec162c88

See more details on using hashes here.

File details

Details for the file pycycling-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pycycling-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 143.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.2

File hashes

Hashes for pycycling-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6bf35ce553f68f876b82525ddbf4e5c89a2f588dcbdbab682c44fa68d4e27e1e
MD5 40fe845d796e4530839552121de5cdb6
BLAKE2b-256 c0a5d4039510499bec144f0da912fbb2495f6b7f912383575cb41f09326b0dff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page