opendroneid / receiver-android

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

Pixel 4A / Motorola G7 #94

Closed WriteCodeEveryday closed 2 years ago

WriteCodeEveryday commented 2 years ago

Both the Motorola G7 and Pixel 4A are unable to pick up emitted WiFi Beacons from the DJI Air 2S.

I'm unsure if this is an issue with the drone or the phones.

I had previously added some info for Motorola G7 and here's the info for the Pixel 4A.

Screenshot (Nov 3, 2022 11_32_50 PM)

Screenshot (Nov 3, 2022 11_36_26 PM)

I do not expect anything from this issue than an update to the devices list and closing it... UNLESS you have some idea of where I did a stupid on this? I have confirmed that scan throttling is off on both devices.

WriteCodeEveryday commented 2 years ago

I have also created a content piece using this information if you'd like to see the issues live (https://www.youtube.com/watch?v=J45xw7oT71Y). This video will premiere in 6 hours from this exact message.

friissoren commented 2 years ago

Thanks for the update. That is pretty strange since Beacon should be possible to pick up on pretty much all Android devices (iOS unfortunately does not have the necessary API for this).

Just for sanity checking, have you tried also with this app? https://play.google.com/store/apps/details?id=org.opendroneid.android_osm

I didn't look through your video yet. I will do that when I find a spare moment.

PS: I expect a fair amount of DJI drones to be remoted ID compliant by now. The FAA maintains a list here: https://uasdoc.faa.gov/listDocs

WriteCodeEveryday commented 2 years ago

@friissoren okay, that's helpful, let me get this installed and let me re-test.

WriteCodeEveryday commented 2 years ago

MotorolaG7Landed MotorolaG7Takeoff

Confirmed Beacons are fine on Motorola G7 after takeoff.

Pixel4ALanded Pixel4ATakeoff

Confirmed Beacons are fine on Pixel 4A after takeoff.

@friissoren I'm closing this as no-action and sending an email to Dronetag for Drone Scanner.

WriteCodeEveryday commented 2 years ago

@friissoren okay... now I have a different issue.

Same phones, under OpenDroneID-OSM they receive one beacon and no more updates... restarting the app will allow new beacons to be picked up.

WriteCodeEveryday commented 2 years ago

Here's the video for OpenDroneID-OSM... packets are picked up right away (as little as 3m off the ground), however new beacons are not picked up during flight unless the app is restarted (https://www.youtube.com/watch?v=_ENWov1LQ8s)

friissoren commented 2 years ago

It wasn't very clear from your video how long your were flying (but I assume that it was more than a few minutes). That should have allowed more than one "ping" to be received by the phone(s) but it is known that the Wi-Fi Beacon transmission method is not as good as Bluetooth, in terms of making sure the Android receiver devices will pick up the transmissions.

I don't know how DJI eventually implemented it. According to the remote ID specifications, it is possible to either send the pings on any Wi-Fi channel of your choice (minimum of 5 pings per second) or on channel 6 (2.4 GHz) or 149 (5 GHz) (minimum one ping per second).

Sine Wi-Fi defines a lot of different channel frequencies, the receiver has to cycle through those and listen on each channel for a little while before moving to the next. Due to this cycling and the Android drivers/SW stack/HW applying various power consumption optimizations which further reduces the active listening times (and I suspect those strategies can be different from one phone model to another) the update frequency on the receivers is not particularly reliable. Disabling the Wi-Fi throttle mode in the developer settings should help on this but apparently you had already done that.

Your comment that restarting the app would allow it to receive another ping is suspicious. I wonder if a bug has been introduced at some point. I don't have a DJI drone to test with. Is this behaviour something you are seeing consistently? How long does it take after restarting the app to get the first ping? Is that delay constant or varying?

BTW: I don't know if you noticed but in the Info view, at the top, you can see the delta in seconds to when the app previously received a ping from the transmitter. I couldn't follow that in the video but maybe you could try to keep the Info view open for a while and look at that?

WriteCodeEveryday commented 2 years ago

Your comment that restarting the app would allow it to receive another ping is suspicious. I wonder if a bug has been introduced at some point. I don't have a DJI drone to test with. Is this behaviour something you are seeing consistently? How long does it take after restarting the app to get the first ping? Is that delay constant or varying?

So I'm gonna rerun the testing for you, but I saw the behaviour consistently. I was able to get pings almost instantly like as soon as I got off the ground (within 5 seconds). However I only saw one ping at the beginning, and every time I restarted the app I picked up new data. I'll get you some extra info (footage).

WriteCodeEveryday commented 2 years ago

@friissoren here's the data in video form. This time I kept the info window open and found the issue.

https://www.youtube.com/watch?v=PEaZ9eraTdw

The Motorola G7 captures beacons much more effectively. Takes about 8-18s per beacon.

The Pixel 4A took over 2 minutes to capture the first beacon, and only captured more beacons after restart. Takes between 55 and 170s per beacon.

friissoren commented 2 years ago

Thanks for testing. So at least both phones are able to pick up the signals but with varying success.

I think you got the Wi-Fi throttle setting the wrong way. It needs to be turned off (by default it is on). Google considers the throttling to be something that improves battery life (but will limit the Wi-Fi scanning frequency).

WriteCodeEveryday commented 2 years ago

I think you got the Wi-Fi throttle setting the wrong way. It needs to be turned off (by default it is on). Google considers the throttling to be something that improves battery life (but will limit the Wi-Fi scanning frequency).

Okay, maybe it is the throttling that was the issue... upon re-reading the setting, it is "on" for battery saving.

lukasbrchl commented 2 years ago

Hi, we had some issues with Drone Scanner while reading Wi-Fi Beacon messages, which is now resolved in the new 1.2.0 version. Please feel free to try it out and let us know if it works for you. Thanks, Lukas