This is an open source sensor for bike trainers, such as Tacx Boost, Kurt Kinetc Road, Elite Qubo Fluid etc. Purpose of this project is to be able to replace the sensor on your trainer if it stops working, or if the company shuts down the trainer app. This happened to me with Kurt Kinetec, and since they have propriarety BLE service, the sensor is useless.
This sensor uses Bluetooth LE protocol with Fitness Machine Service (FTMS), which is standard service and compatible with all trainer apps, like MyWhoosh, Zwift, TrainerRoad and others.
The uploaded firmware is for Kinetic Road Trainer T2700. FTMS provides only data for the Indoor bike -> Instantaneous power.
- From Firmware folder check if
mcuboot.hexis pristine, by checking the hash function of the file. All the info is inmcuboot.hex.infofile. - Insert nRF52840 dongle into the USB port on your PC and click reset button on the dongle to get into nRF5 bootloader (red LED should be pulsing).
- With nRF Connect for Desktop write
mcuboot.hexto the dongle. - Next, unplug the dongle, hold down white button and plug the dongle back to the USB port. Green LED should be on, showing the program is now waiting in the MCUboot. Write
bike_trainer-<commit number>.signed.binto the dongle with AuTerm. - Check if everything is working with the nRF Connect Android or iOS app.
- Before doing this, make sure you can do FOTA. Once the board is configued for battery power, you need battery power to transfer data over the USB port. Power will not come from the USB port.
- Cut SB2 and solder SB1, like it's shown in the nRF52840 dongle documentation.

- Connect 1.8–3.6 V (max50 mA) source through the VDD OUT connection point.
- Connect reed switch to the P1.10. You can also connect to any onther pin, but you have to reconfigure pins in the devicetree and recompile the project.
One you have programmed the firmware, made sure you can do FOTA, and prepared the dongle for battery power supply, it's time to connect everything and install the sensor.
- PCB is currently not available yet. Please see the picture how I connected everything on the protoboard.

- You can put everything in the box, or 3D print a box.
- When installing, make sure the magnet is not on the center of the reed switch. I recommend you put it to the one side.
- Listen to the reed switch if it's triggered or not.
- [Available in the future]: in the nRF Connect app, enable LED to see if the reed switch is triggered or not.
- Install nRF Command Line Tools (Download)
- Install Visual Studio Code (Download)
- Make sure to install SDK version 2.9.0!
- After cloning git repository, open
Firmware.code-workspacewith VS Code. - Go to nRF Connect and create build configuration. Under APPLICATIONS add build the configuration.
- Board:
nrf52840dk_nrf52840or other board. - Build directory name:
releaseordebug - Select Extra Kconfig fragmetns:
debug-overlay.conforrelease-overlay.conf
- Board:
For API and how to, check Nordic's developer website.