[Solved] - Google Pixel 6a Bluetooth Issues

Hi, new to TrainerDay. I’ve been having bluetooth connectivity problems between trainer day and my gear. It may be a problem with the Pixel 6a because both Telsa and Rivian had problems with this phone too initially until they did some updates to their apps (so something unique about the 6a).

Phone: Pixel 6a
Devices: Garmin cadence sensor, Wahoo Kicker Snap Trainer, Various bluetooth HRMs (Garmin Dual, Morpheus, and Polar H10).

I have no other devices/connections. Trainer day consistently detects the bluetooth devices no problem, but I would say connects to them only 10% of the time. It usually takes me 5-10 minutes of turning bluethooth on/off airplane mode on/off, and restarting the phone and app. Usually I can get one device to connect (which of the three seems random) but then the second and third seem more and more unlikely to connect so getting all three is difficult.

I have also made sure these are not bound in bluetooth settings, I also read the forum and tried suggestions like removing them from TD and then adding one by one and letting them connect first, but nothing really works. Once connected, usually they stay connected but today during a VO2 max session I lost both the HRM permanently and it took about 5 minutes to get the Kicker Snap to connect back to TD (but hey, it at least dropped 10 seconds before 120% FTP interval :slight_smile:

I’ve also made sure there is no wifi interference, and these same devices do work both Ant and Bluetooth to my Forerunner 965 and Edge 1030P [ I have made sure both are these are off and not connecting, as well as all other apps stopped on the phone ].

I really like the Live PC view and the target HR features of the app, so would prefer using it over garmin.

I’m hoping others may have seen something similar or have suggestions I’ve not yet tried (I haven’t tried using an ANT+ USB to phone device yet, but that was my next thought).

Hi strange, can you point me to any articles talking about this? I am Apple user but I have a Pixel 6 for testing and it seems to work fine.

Did you for example try all these steps?

Here is an even more exhaustive list of steps

No I haven’t tried all of those suggestions, but I will and report back (it may be a couple weeks). Thank you.

So, it may be working, after trying everything short of full factory reset it still wasn’t working, including changing all developer Bluetooth options, disabling the “Bluetooth Legacy” system app, disabling NFC, resetting all wireless setting (Bluetooth and WiFi), clearing storage and caches, updating to Sept 1st Android release (was at August).

The behavior was still the same, and it took several Bluetooth restarts and several minutes to connect to just 2 of the 3. But it would randomly connect to one of the three first.

If I “unpaired” (minus sign) in TD, it will usually discover the device quickly but if I hit the + sign it moved to the paired state but not go to a connected state (usually).

I was reluctant to do a full factory reset, so I tried clearing storage and cache for the trainer day app.

This fixed it, I had to login again of course, but it then discovered and connected to all three devices on the first try.

I’ll run it like this for a few weeks and give an update.

1 Like

I spoke to soon. Had the same issue this morning (the devices were paired but not connecting) and I tried the clear storage/cache for TD and then all three devices were seen/detected, but only two connected after pairing. I had to turn on/off bluetooth several times and took about 5 minutes to get all three connected. (certain no other devices are connecting to them, and there are no other apps running on the phone, or other devices nearby).

I still think it could be something unique with the Pixel 6a bluetooth stack.

I hesitate to do a complete factory soon unless others with a Pixel 6a have this problem and a reset fixed it.

Let me know if there is a way I can turn on logging or provide additional debugging information.

Hi @Alex, I may have found a way you could try and reproduce reliably on your Pixel 6 when all devices are connected (without turning off/on bluetooth).

I was doing a workout today and got an incoming text, and I swapped over for about 10 seconds to read it, then back. When I came back to TD only one of the three devices (re)connected (the one device may have not had to reconnect as I just noticed that there was only 1 device connected in the status indicator.)

I would expect that maybe they would disconnect when TD is in the background, but I would have also expected them to all reconnect relatively quickly as well. The devices (and only devices connected) where a Kickr Snap Trainer, Polar H10 HRM, and a Garmin cadence sensor. Also, it appears there is no problem when there is only a single bluetooth device, it seems to get progressively worse when adding a 2nd and 3rd device.

I made sure that the TD app had unrestricted / unlimited battery and data usage (including background data), so it should not have stopped running, and also, the workout continued when I returned so the app was at least not killed/restarted.

If that doesn’t reproduce the problem on the Pixel 6 then it must be something unique to my setup or the 6a.

Thanks for taking a look.

Strange, ok, I don’t have a sim card so I can’t test checking text message :slight_smile: ut I can leave it in the background for 10 minutes and come back and see what happens. I have Garmin Cadence sensor (not used but I can test it), Kickr V5 and Polar H10 (if I can find it, using Garmin now). But anyway I can do a few test like this with Pixel 6 and see what happens. I don’t do any test like this with Pixel because really I am an iPhone user. I do realize if I did not have iPhone I would be totally happy with Android device these days. I like iOS better, probably because I am familiar with it, but really it does not matter any more.

1 Like

Hi Alex,

I enabled bluetooth hci snooping and pulled this from a time period where the problem consisted. There are other similar errors for “Unknown attributes” as well, but this one includes a database hash. I’ve found several android 13 issue trackers with similar “not able to connect to BLE” devices including whoop, polar h10, some watchs. Apparently the device manufacturers are updating firmware on their end to deal with android 13, for example here: Google Issue Tracker

If you would like me to share a full bluetooth log capture along with the mac addresses of my various devices let me know the best way to do so.

Thank you,

Frame 1502: 14 bytes on wire (112 bits), 14 bytes captured (112 bits)
Encapsulation type: Bluetooth H4 with linux header (99)
Arrival Time: Oct 5, 2023 15:49:57.274518000 CDT
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1696538997.274518000 seconds
[Time delta from previous captured frame: 0.108560000 seconds]
[Time delta from previous displayed frame: 0.108560000 seconds]
[Time since reference or first frame: 45.218360000 seconds]
Frame Number: 1502
Frame Length: 14 bytes (112 bits)
Capture Length: 14 bytes (112 bits)
[Frame is marked: False]
[Frame is ignored: False]
Point-to-Point Direction: Received (1)
[Protocols in frame: bluetooth:hci_h4:bthci_acl:btl2cap:btatt]
Bluetooth
[Source: TexasIns_03:86:4a (a0:6c:65:03:86:4a)]
[Destination: d4:3a:2c:93:3d:fa (d4:3a:2c:93:3d:fa)]
Bluetooth HCI H4
[Direction: Rcvd (0x01)]
HCI Packet Type: ACL Data (0x02)
Bluetooth HCI ACL Packet
… 0000 0100 0010 = Connection Handle: 0x042
…10 … … … = PB Flag: First Automatically Flushable Packet (2)
00… … … … = BC Flag: Point-To-Point (0)
Data Total Length: 9
Data
[Connect in frame: 1480]
[Disconnect in frame: 1869]
[Source BD_ADDR: TexasIns_03:86:4a (a0:6c:65:03:86:4a)]
[Source Device Name: Rivian Sensor 1]
[Source Role: Unknown (0)]
[Destination BD_ADDR: d4:3a:2c:93:3d:fa (d4:3a:2c:93:3d:fa)]
[Destination Device Name: Pixel 6a]
[Destination Role: Unknown (0)]
[Current Mode: Unknown (-1)]
Bluetooth L2CAP Protocol
Length: 5
CID: Attribute Protocol (0x0004)
Bluetooth Attribute Protocol
Opcode: Error Response (0x01)
0… … = Authentication Signature: False
.0… … = Command: False
…00 0001 = Method: Error Response (0x01)
Request Opcode in Error: Read By Type Request (0x08)
0… … = Authentication Signature: False
.0… … = Command: False
…00 1000 = Method: Read By Type Request (0x08)
Handle in Error: 0x0001 (Generic Access Profile)
[UUID: Generic Access Profile (0x1800)]
Error Code: Attribute Not Found (0x0a)
[UUID: Database Hash (0x2b2a)]

I also tried the following:
device_config put bluetooth INIT_gatt_robust_caching_client false

I’m not sure what it was before, but I toggled between the two and with “false” it feels like it does a lot better, in particular when toggling bluetooth off/on.

But swapping to another app (like browser) and back exhibits the same behavior (true or false), i.e. the bluetooth devices don’t want to reconnect (only one connects). But with the above set to “false” and then I can toggle bluethooth off/on it almost always reconnects to all devices (there were a few times it did not, but toggling off/on a few times is not such a big deal as doing it for 15 minutes). Setting this to “true” then even toggling bluetooth off/on is problematic (almost never connects to all three devices).

As implied in that thread (and some others) it does seem like the device makers have some level of control here on their firmwares, which is probably also why Telsa and Rivian apps started working better (i.e. it wasn’t an app issue, rather an android / client low level issue that device makers can handle better).

If you can reproduce on the Pixel 6, it may be worth creating an android bug report.

Interesting info. I will see if my developer sees anything interesting.

I have A13 and just tried putting in background for 3-5 minutes multiple times searching web doing all kind of stuff. I did not find my cadence sensor but had 4 connected devices Kickr, Cable, GarminHRM, Garmin speed sensor and could not get it to lose connection no matter what I tried on Pixel 6. So sorry but it seems to be your device or a 6a problem.

I guess A14 is out, but that is a risk it will break everything :slight_smile:

Thank you Alex, I noticed that Android 14 just dropped as well, so I updated it, there is good news/bad news. Out of the box it still has connection issues when switching between apps, but a few bluetooth toggles will get them to connect. Which device doesn’t connect seems to be random (and not a specific device, although I guess a specific device could be causing some issue affecting other devices).

I also checked the value of the “robust caching client” and found that it was “null” by default (and didn’t try changig it) after the Android 14 update. So it does appear A14 works better out of the box than A13 for me.

In short, not sure what is going on, at some point I may factory reset the phone to see if that helps but for now you can consider this closed as I am okay toggling the bluetooth on/off a few times.

I am still happy to provide logs if wanted.

Thanks again for taking a look at this and trying to reproduce it.

Thanks for the update. We don’t need the logs at this point but if you get any other ideas please let us know.

An update, I did a complete factory reset to the latest Android 14 (October 2023), without restoring any data (so completely default settings) and didn’t make any customizations or enable developer modes. I did install the Tesla and Rivian Bluetooth key apps, which are non-optional for me (but has me wondering if they are causing issues).

Unfortunately TD still fails to find all the sensors, and it’s bake to the original behavior that it is rare if they do connect.

Out of curiosity (after testing TD) I also installed another HRM ERG app, and it took failed to reliably connect to all devices, so it doesn’t appear to be a trainer day specific issue.

So, it may be specific to my phone, my apps (Rivian and Tesla), the Pixel 6a, and/or recent Android updates. (Would be nice to know if there are other Pixel 6a Android 14 users that do/don’t have this issue).

I’ll test removing the Tesla/Rivian apps at some future date and will update this thread.

Sorry to hear, one solution might be to use an Ant+ dongle. I have the Garmin one but can’t remember if it works with my Pixel6 or not.

1 Like

You probably tested but just to make sure that it wasn’t overlooked:

  • Locations service must be enabled to connect to any BLE sensor. If location service is blocked, you will not be able to connect.
  • Make absolutely sure that no other device has any form of connection to your BLE devices, because most only support 1 BLE channel, some have 2 BLE channels available.

First, thank you MedTechCD and Alex for responding during the weekend, that’s appreciated and not expected.

Second, I narrowed down the problem!!! It’s the Rivian App or Rivian/Android Phone Key.

I don’t know the difference between Tesla and Rivian, but Rivian binds to a “Rivian Phone Key” bluetooth device, I don’t know if this is the same thing as “Android Phone Key”, but during the Rivian setup phone-as-a-key it does ask to allow the Rivian App to “have access” to the “Rivian Phone Key”. Tesla is not the same as they for sure don’t use the “Android Phone Key” system nor do they bind to a bluetooth device in the system’s bluetooth list. i.e. Android’s “bluetooth” devices don’t have an entry for Tesla’s PaaK, but they do for Rivian Phone Key.

The strange thing is that even after force stopping, clearing Rivian app cache/storage, removing the PaaK in the bluetooth device list, and uninstalling Rivian app TD problem still exists … until I reboot the phone, then everything works as expected.

Installing the Rivian app and signing into your Rivian account also does not cause any problems [ so you can’t try and reproduce unless you have access to a Rivian to connect to ]. But as soon as you setup the Rivian app as a phone key, boom, problems connecting with other devices (until you uninstall Rivian app and reboot).

I’m not sure where to go from here. I could contact Rivian, but they likely would not be able to reproduce it. Also, since the problem requires a reboot after uninstalling Rivian it’s probably a bug in android’s bluetooth stack.

Would be great if there were other Rivian users that could chime in (or other car manufacturers that use an “android phone key” bluetooth connection - i.e. not Tesla).

Well glad you found the problem. Seems like a tablet or used phone might be best. Mac M series….

1 Like