Skip to content
ANT+ Bicycle Power Profile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

ANT+ Bicycle Power Profile

This is a simple implementation of an ANT+ profile for a virtual power meter. It only broadcasts instant power and cadence, with no torque or pedal measurements.


You will need libudev installed. In Debian:

$ sudo apt install libudev-dev

You'll need to have typings and tsc installed:

$ npm install -g typings
$ npm install -g typescript
$ cd ant-cycling-power
$ typings install
$ npm install

When you plug in a USB-m ANT+ stick, the default permissions are for only root to get access to it:

$ node test.js

    at Error (native)
    at (/home/pi/ant-plus/node_modules/usb/usb.js:33:7)

We can fix this by changing udev settings, for Garmin v1 and v2 sticks:

$ cat /etc/udev/rules.d/51-garmin-usb.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fcf", ATTRS{idProduct}=="1009", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fcf", ATTRS{idProduct}=="1008", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"

And reload udev rules:

$ sudo udevadm control --reload-rules


var power_meter = require('./power-meter');
var pm = new power_meter.PowerMeter();
pm.broadcast(320, 95); // 320 watts and 95 rpm
You can’t perform that action at this time.