This is the source code for a ANT+ power meter using NRF5 SDK (SoftDevice 212). The board is custom-made and the schematics can be downloaded here (CC licence):
https://oshwlab.com/tim.wintz/powermeter
On top of the board, a full-bridge strain gauge is needed, as well as a battery. To program the chip, a JTAG programmer with a 1.27mm 10pin connector (for example JTAG Edu Mini) is required.
Below is a picture of the board integrated in a Super Record crank semi-axle:
It could also be used as a left-crank based power meter.
Implemented and TODO features:
- ANT+ Bike Power Profile
- Offset calibration
- Auto zero
- Battery status
- Auto sleep and wakeup using accelerometer interrupts
- Temperature compensation
- ANT Crank length setting
- OTA Scale calibration using ANT
- OTA Firmware update
- BLE Bicycle Power GATT profile (needs a different softdevice)
To build and flash the firmware, you will need
The folder is preconfigured to work with VS-Code. To flash the softdevice use:
make flash_sd
To flash the firmware:
make flash_sd DEBUG=1
You can use Jlink RTT to monitor the output (needed for scale calibration).
TODO: for now you must use the debugger to calibrate the scaling of the gage. This is a bit impractical...
TODO