Parrot SDK Sample Not Detecting Devices: Bebop 2


#1

Product: [Bebop/Bebop2]
Product version: [X.X.X]
SDK version: [3.14.0]
Use of libARController: [YES/NO] (Only for ARSDK): Believe so
SDK platform: [iOS/Android/Unix/Python…]: Android
Reproductible with the official app: [YES/NO/Not tried] NO

I’m trying to learn how to use the Parrot SDK. I’m not that familiar with Android dev. When I compile and run the apk on my phone from the SDK samples for the Bebop, it doesn’t detect the Bebop drone. The official app does though… I checked app/manifests/AndroidManifest.xml and the main activity does seem to be DeviceListActivity, so I’m not sure why it’s not detecting the drone. I have not modified the code at all, other than removing some case statements for the other types of drones in DeviceListActivity, since I removed the *Activity.java files for them.

Do I need to write my own frontend to detect the drone…?
Thanks.


#2

Are you connected to the Wifi of your drone?
Maybe kill the FreeFlight app if it is in background.
If this is still not working, could you post logs of the sample app?


#3

I killed it and restarted it. I’m connected to the wifi, and also have bluetooth on. The logs are really long (http://pasted.co/e8773a33) but they do seem to say that wifi is on… How is the SDK sample app supposed to work? Is there supposed to be a device list on the main screen with connectable devices? That would make sense, but I’m not getting that.

Actually, upon launching the app, it’s connecting me to the parrot wifi automatically. Is that basically all the SDK sample is supposed to do? So there’s no front-end or UI, and I have to write that? That’s fine, I just want to know if that’s how the SDK sample is supposed to work.


#4

The Android SDK sample does not automatically connect to the drone’s WiFi network. If that is happening, Android itself is doing it.

What it does do is leverage ARDiscovery to detect drones on the connected network and presents a list of them it finds.

You can then select a detected drone and a rudamentary flying activity is launched that has old school Android buttons imposed over a video stream (assuming the drone supports video).


#5

You don’t have to do anything except connecting your phone to the Wifi network of your drone.
Once this is done, the name of your drone should appear in the app. Then, you’ll have to click on this name, it will open a new activity that enables you to control your drone.

Could you please try with a fresh unmodified sample?
In your logs, I can see that the discovery is starting, but it is stopping a few seconds after.


#6

http://pasted.co/fdd841d0
Here are the logs for running the clean, cloned github copy of the sdk samples. Again, nothing shows up on the SDKSample screen. I also see that the discovery stops after a few seconds. Any reason it does so in this, but not in Freeflight?


#7

Does your phone screen is switching off after a while?


#8

Perhaps, but after > 30 seconds… testing with the screen set to never turn off, it still doesn’t find the drone.


#9

The discovery is stopped by the screen turning off, so this is not the problem.

You can maybe try to host a screen record of the sample on Youtube so I can understand what is happening.
Sorry, but I have no idea what is happening.


#10

No point in a video since it’s just a static screen. Here is what it looks like:


#11

Ok, from what I can see, you are not connected to the wifi of your drone. Otherwise a small ! would appear next to the wifi icon on the status bar, meaning that the current wifi has no internet connection.


#12

Funny, I was going to say the same thing.


#13

Right, the drone was at home away from me when I took that :P. Even when I am connected to the Bebop2 wifi connection, that’s the screen that shows. Freeflight will detect the drone. The issue is that the Discovery in the SDKSample doesn’t seem to be working properly.

Has anyone else tried running a fresh clone of the github samples with a Bebop 2?


#14

It’s been awhile but yes I have. I use ARDiscoveryLib in a manner very similar to what is documented in the sample with no issue.

Try this:

  1. Reboot your Android
  2. Put your Android in airplane mode
  3. Turn on wifi only on your Android
  4. Power on your drone
  5. Connect to drone’s hotspot
  6. Open SDK sample

#15

That worked, thank you! So is airplane mode the issue, even when the phone connects to the bebop’s wifi network? That’s odd, but as long as it’s working, I’m fine.


#16

It may have something to do with bridged / shared networking when both interfaces are active. Some Androids handle it differently than others.

A customer of my mine reported similarly. I’ll try to find the email thread where we identified the exact setting and follow up.

Good question though regarding why it would work with FFPro. Parrot might be doing something special with their internal cut of the SDK and/or client.


#17

Don’t think we are doing anything special. Will try to see if it is the case.