ANT and BTLE Troubleshooting - GoldenCheetah/GoldenCheetah GitHub Wiki

Troubleshooting TacX Device FE-C connection

If you TacX trainer FE-C is not working as expected trying turning off bluetooth on your phone/ipad/other controller device. i.e. your phone connected to the trainer via bluetooth will stop the trainer from connecting via ANT+ to GC.

NOTE: The trainer may not appear under the list of connected Bluetooth devices on your phone or tablet, but the connection may still be interfering. To ensure there is no conflict, turn bluetooth on your device off entirely when training.

Accessing the Garmin USB2 stick & Tacx USB Ant+ Antenna (T2028) on Linux

The Garmin USB stick and the Tacx USB Ant+ Antenna (a.k.a T2028) use the same hardware (and thus have the same idVendor and idProduct), so the info below applies for both devices.

When using Garmin USB2 stick/Tacx Antenna on Linux the udev rules that control access to the USB devices tend to mount the Garmin stick/Tacx Antenna with permissions that restrict access to normal users.

To change the way permissions are granted you need to configure udev with a rules file.

On UBUNTU and other Debian based distros this is achieved by writing a rules file and placing it in /etc/udev/rules.d.

Create a file containing the text below called 52-garmin-usb.rules and copy it into /etc/udev/rules.d for the Garmin stick/Tacx Antenna to be accessable from GoldenCheetah when run as a normal (not root) user.

# Garmin ANT+ - USB1
ATTRS{idVendor}=="0fcf", ATTRS{idProduct}=="1004", MODE="0666"
# Garmin ANT+ - USB2
ATTRS{idVendor}=="0fcf", ATTRS{idProduct}=="1008", MODE="0666"
# hLine USB2 ANT2
ATTRS{idVendor}=="0fcf", ATTRS{idProduct}=="1009", MODE="0666"

For the Tacx USB Ant+ Antenna the file name and it's content can be as described above, there's no need rename Garmin into Tacx, add anything to the file, or remove the Garmin specific wording for the Tacx Antenna to work.

Train Mode FE-C speed and power spikes

When connecting your smart trainer to GC you should only connect the FE-C channel. No need to select Power and Speed as your trainer already sends this data on the FE-C channel for GoldenCheetah to read.

Data spikes and dropped connections

In more general terms, signal interference can also provoke unexpected fluctuations, drop to zero and spikes.

To avoid this an extensor cable to put the receiver close to the trainer may be necessary.

Check for the presence of nearby transmitting electronic devices which can be interference sources. Your trainer manual should have a detailed list, otherwise this one from Wahoo is generally useful: SIGNAL INTERFERENCE WITH WAHOO SMART TRAINERS

WIFI Routers can also be a source of interference for ANT+ connections, see Solving WiFi Interference for details.

BTLE tends to be a more robust protocol than ANT+ interference wise, if available it may be worth to try.

BTLE sensors not working on Linux

Some Linux distributions require the cap_net_admin capability for GoldenCheetah to be able to discover and use BTLE sensors, this error is reported on goldencheetah.log when the BTLE device is started in Train mode and can be fixed with the following command:

sudo setcap cap_net_admin+eip GoldenCheetah_v3.5_amd64_Linux.AppImage

Golden Cheetah requires BT 4.0 or up to connect to sensors. You can add a BT4/5 USB Bluetooth adapter to a PC/Laptop that has an an older BT adapter but this can lead to unreliable or intermittent connection of Golden Cheetah to the sensors. goldencheetah.log may show;

warning: Cannot find Bluez 5 adapter for device search false

The older BT adapter can be disabled leaving only the USB BT adapter for Golden Cheetah to access with a reliable connection. The following example is for openSUSE on a MacBook, copied from the procedure for Mint and Ubuntu With the USB adapter installed, at a terminal, some output omitted:

~> lsusb
...
Bus 004 Device 006: ID 05ac:8213 Apple, Inc. Bluetooth Host Controller
...
Bus 003 Device 002: ID 2357:0604 TP-Link TP-Link UB5A Adapter

Note the 2 parts of the ID for the Apple controller I want to disable. If the following file exists add a line to the file, create the file if it does not exist, use root privileges.

/etc/udev/rules.d/81-bluetooth-hci.rules

Add the rule below, substituting the 2 parts of ID derived from your machine in the ATTRS fields. Save and reboot.

SUBSYSTEM=="usb", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="8213", ATTR{authorized}="0"

With the following, check only one BT adapter is present at hci0.

~> hciconfig -a
hci0:   Type: Primary  Bus: USB
        BD Address: E8:48:B8:C8:40:00  ACL MTU: 1021:6  SCO MTU: 255:12
        UP RUNNING 
        RX bytes:2177 acl:0 sco:0 events:199 errors:0
        TX bytes:29406 acl:0 sco:0 commands:199 errors:0
        Features: 0xff 0xff 0xff 0xfe 0xdb 0xfd 0x7b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH HOLD SNIFF PARK
        Link mode: PERIPHERAL ACCEPT
        Name: 'MBP'
        Class: 0x7c010c
        Service Classes: Rendering, Capturing, Object Transfer, Audio, Telephony
        Device Class: Computer, Laptop
        HCI Version: 5.1 (0xa)  Revision: 0x9a9
        LMP Version: 5.1 (0xa)  Subversion: 0x8a6b
        Manufacturer: Realtek Semiconductor Corporation (93)

Sometimes BT sensors will fail to reconnect when starting a Train session when previously configured with Explicit Pairing in v3.7 DEV builds, possibly triggered by running an updated DEV release or OS USB subsystem (i.e. blueZ) update. After simply re-adding the device temporarily and checking it connects it should be possible to use the previously connected device again and delete the temporary device just created.

BTLE on Windows

GoldenCheetah v3.5 was built using Qt5.9 which doesn't support Bluetooth On Windows, but includes a dummy backend to allow the application to run anyway and BTLE functions are disabled.

For v3.6 we are building with Qt5.15.2, which supports BTLE on Windows 10, and including that backend in the distribution, so Windows 10 users should have the same BTLE support previously available on Linux and macOS.

V3.6-DEV Users on Windows 7 and 8 reported failures indicating that Qt5Bluetooth.dll version only works with win10, likely because it depends on features not present in these unsupported OS versions. A workaround is to copy Qt5Bluetooth.dll from version 3.5, that would allow GC to run without BTLE support.

Cycplus/Anself ANT+ Stick

According to several users reports Cycplus/Anself ANT+ Sticks don’t work with GC Train mode and confirmation from the manufacturer has been relayed to users forum, usually they are detected but no sensors are found or the trainer cannot be controlled or speed and cadence sensors drop data, even when it can work with other applications. There is no workaround for this, other than to use another ANT+ Stick (Garmin, Suunto and Elite ANT+ sticks are known to work, for example), or to switch to BTLE for supported sensors.

New in v3.6 is a contributed patch allowing control of TACX trainers using these sticks, if you are on v3.5 it may worth a try.

Intel Dual Band Wireless AC8260 (Bluetooth)

Users have reported Bluetooth connection issues using this adapter with GoldenCheetah v3.6 on Windows 10, there is not known solution for this problem, except for switching to alternative adapters.

macOS Catalina and USB issues in modern macs

There is an alternative v3.5 build intended to solve USB issues in newer macs and with macOS Catalina using libusb1.0.23 (see https://github.com/GoldenCheetah/GoldenCheetah/releases/tag/V3.5), all v3.6 builds (Dev and Snapshots) include that fix.

BTLE sensors not detected on macOS Monterrey and newer versions

This is a pending issue, fixes and ideas are welcome.