opendroneid / receiver-android

Example Android receiver application for unmanned aircraft Remote ID
Apache License 2.0
186 stars 61 forks source link

Supported Smartphones: add Pixel 6 #39

Closed janusw closed 2 years ago

janusw commented 2 years ago
janusw commented 2 years ago

Thanks for merging, @friissoren.

One more thing that I should mention: There is a small chance that the lack of BT5 support is somehow related to the Android version. ODID currently only targets Android 11, but the Pixel 6 runs on Android 12, and there have been some changes to the BT permissions in API level 31 (= Android 12).

However, since at least BT4 signals are received alright, it seems unlikely that this is the problem. I also tried to modify ODID to target Android 12 / API 31 and to use the new permissions, but got the same results this way (I can share my modifications, if there is interest).

Overall, I'm surprised that a brand-new high-profile device like the Pixel 6 does not have proper and full support for BT5, but then again there is no evidence that any of the earlier Pixels had this (and in general the table shows how sparse the support for BT5 advertisements actually is).

Moreover the Pixel 6 has a completely new chipset (Tensor), and Android 12 was just released quite recently. Maybe there will be an update patch which fixes this for the Pixel 6 later?!?

friissoren commented 2 years ago

I more suspect that Google is simply using a Bluetooth SW stack implementation that doesn't listen to Coded PHY advertisements. That would be below the Android layer. Probably this is not related to Android 12, although I have not been able to test against that version yet.

The whole problem with the coded PHY and Extended Advertising support comes from the Bluetooth standardization, which defined those as optional features. This means that there are a large amount of subtle variations in how different implementations are done, on the reception side at least (swapping back and forth at various intervals between listening on either the standard/legacy advertisements or the Coded PHY advertisements).

This was the exact reason why ASTM decided to mandate transmission of both BT4 and BT5 signals. If you happen to have a phone that picks up the BT5 part, you can do that at a nice long range (~ 1km). But if you don't, at least you will be able to pick up the BT4 signals when you get close enough (a few hundred meters).

janusw commented 2 years ago

I more suspect that Google is simply using a Bluetooth SW stack implementation that doesn't listen to Coded PHY advertisements. That would be below the Android layer.

Quite probable.

Probably this is not related to Android 12, although I have not been able to test against that version yet.

I think at this point the Pixel 12 is really the only device that officially supports Android 12. On several devices it can be used through the Beta program already, and the final version will be rolled out on some models soon.

The whole problem with the coded PHY and Extended Advertising support comes from the Bluetooth standardization, which defined those as optional features.

Yeah, what a shame. Very unsatisfactory situation that even many new devices don't support this.

This was the exact reason why ASTM decided to mandate transmission of both BT4 and BT5 signals.

... and then further dispersion comes from the fact that only BT5 is mandatory in the ASD-STAN standard (BT4 is optional there).

Maybe in the end everyone can converge to use WiFi (which also has longer ranges), but that would probably require Apple to get their act together and finally support at least one of the two WiFi modes :/

Otherwise we'll just have to live with this wild mixture of transmission methods for a while ...