From ed4f75a93d0a871d99bce02cdb4d1b1bfd16aa50 Mon Sep 17 00:00:00 2001 From: Erik Brakkee Date: Tue, 26 May 2026 20:21:09 +0000 Subject: [PATCH] docs: add README with setup instructions and tested hardware Add comprehensive README.md covering project purpose, CLI usage, and troubleshooting. Document the udev rule needed to prevent usbserial from claiming the ANT+ dongle. Add Tested hardware section listing the ANT USBStick2 and update setup.md dmesg output accordingly. Note: the bridge must be run as root to access the USB dongle. --- README.md | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ setup.md | 14 ++++--- 2 files changed, 117 insertions(+), 6 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..037f447 --- /dev/null +++ b/README.md @@ -0,0 +1,109 @@ +# ANT+ to Bluetooth LE Bridge + +Bridge an ANT+ cycling power trainer over Bluetooth Low Energy, allowing modern devices that don't support ANT+ to receive power and cadence data. + +## Why this exists + +Modern training apps and devices (phone apps, many power meter displays) support Bluetooth LE but lack ANT+ radios. Previously, hardware-based Bluetooth-to-ANT+ bridge boxes were available for this purpose, but these have now been discontinued. This project provides a simple, software-based alternative using a standard USB ANT+ dongle. This bridge listens to ANT+ data from a wired trainer and re-broadcasts it as a standard Cycling Power Profile service over BLE. + +## How it works + +1. Opens a USB ANT+ dongle (vendor ID `0x0fcf`) and listens for broadcast messages from a specific trainer device number. +2. Parses power (Watts) and cadence (RPM) from the trainer's ANT+ data pages. +3. Exposes a Cycling Power Measurement BLE service via the system's Bluetooth adapter, updating values as new ANT+ messages arrive. + +## Requirements + +- Linux +- D-Bus (for BlueZ Bluetooth management) +- A Bluetooth adapter +- An ANT+ USB dongle +- An ANT+ cycling power trainer + +**Note:** This program must be run as root to access the USB dongle. + +## Tested hardware + +- USB dongle: ANT USBStick2 (Dynastream Innovations, vendor `0x0fcf`, product `0x1008`) + +## Setup + +The Linux `usbserial` driver must be prevented from claiming the ANT+ dongle. Create the following udev rule: + +```bash +sudo tee /etc/udev/rules.d/99-ant-usb.rules > /dev/null <