Because Android doesn't let you connect to an ad-hoc network, you can't use your Android device to control Parrot's AR.Drone without a little bit of work.
Essentially you have three options:
- Rooting your Android device. This way you can patch the Android system to be able to connect to the AR.Drone's regular ad-hoc network. However, this will void the warranty on your phone.
- Manually change the drone's WiFi setup via telnet to connect to an Access Point. This requires a computer in order to connect to the drone and the changes are not persistent, you will have to perform the procedure everytime you restart your drone.
- Install an on-board script which automatically connects the drone to a specified Access Point. This is the easiest solution as your drone will still be able to operate exactly as before with an ad-hoc network but will automatically connect to your phone's Access Point as soon as you turn it on. Moreover this solution is persistent, no need to perform the install procedure at each startup. However, this will void Parrot's warranty on your AR.Drone.
I don't know anything about rooting Android devices and I can't help you there but if your phone is already rooted and patched then you should have no problem at all connecting to the AR.Drone using its standard IP Address: 192.168.1.1.
If you are like me and don't want to root your phone you have two options left :
1) Manual WiFi setup
This procedure will enable you to connect your AR.Drone to any WiFi Access Point as long as the network is open. The changes are not persistent so on one hand you don't have to worry about Parrot's warranty as this procedure won't leave any trace but on the other hand you have to do it every time your restart your drone.
Here is how to connect your AR.Drone to your Android phone's Wi-Fi Access Point :
- First, if your drone is paired to your iPhone/iPad or other, you need to unpair it by pressing the unpair button underneath the AR.Drone with something like a pen.
- Connect your computer to your drone : on your computer, browse the list of available WiFi networks and click on ardrone_******.
- Linux and Mac OS X : open a terminal and type : telnet 192.168.1.1
- Windows : you are going to need a telnet client, one is shipped with Windows but it is hidden in Vista and 7. I would recommend using putty (http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe). In the field "hostname", enter 192.168.1.1, then,
for "Connection type", choose Telnet right below and click on
- At this point, you need to start the WiFi hotspot on your phone. Launch the portable Wi-Fi hotspot app and make sure the hotspot is disabled. Click the menu button and in the menu, click on Advanced. Change the local IP to 192.168.1.2 (we are going to use 192.168.1.1 for the AR.Drone). Go back to the first screen, make sure that security is set to none and choose a name for your network (mine for instance is skynet). Then click the top left check box to start the hotspot. Your phone is now waiting for a connection from your drone.
- Back on your computer type the line below to your telnet console replacing YOUR_NETWORK_NAME by the name you chose (for me it would be skynet). Do not enter return before the end of the line otherwise you will be disconnected from your drone and it won't be able to connect to your phone : you would have to restart it.
ifconfig ath0 down ; iwconfig ath0 mode managed essid YOUR_NETWORK_NAME ap any channel auto commit ; ifconfig ath0 192.168.1.1 netmask 255.255.255.0 up
- Once you have correctly recopied the line on the telnet terminal, type return. The drone will disconnect from your computer so your telnet terminal will seem to freeze. On your phone screen you should now see "1 connected user", if so the procedure succeeded.
- Now you can launch AndroFlight, click on Connect and you are good to go !
2) Automatic Connection using ARAutoConnect
Because manually changing your drone's configuration at each startup is nothing short of tedious, I wrote AR AutoConnect which is a script that can be put on the AR.Drone and that will do all the hard work for you.
HOWEVER, although I have been testing this script for a few weeks on my drone without any problems, if you decide to install it on your own drone, you understand that I offer absolutely no warranty that you won't render your drone unable to connect to a WiFi network or to operate altogether and if such things were to happen I decline all responsibility. Modifying the on-board system is not supported by Parrot and will result in voiding the warranty.
Bottom line is, if you follow the instructions to install the script on your drone, you understand that you do so at your own risks.
To see how to install AR AutoConnect on your Drone go to this page
Once you have installed the script on your drone, connecting to it becomes dead simple :
- Launch the portable Wi-Fi hotspot app.
- If your are doing this for the first time or if you have changed the settings since the last time: Click the menu button and in the menu, click on Advanced. Change the local IP to 192.168.1.2 (by default 192.168.1.1 is for the AR.Drone). Go back to the first screen, make sure that security is set to none and change the router name to the one you have specified in the AR AutoConnect installer (by default ARAutoConnect but mine for instance is skynet).
- Click the top left check box to start the hotspot. Your phone is now waiting for a connection from your drone.
- Something like 5 or 10 seconds later, you will see appear 1 connected users : this is your drone ! Ready to go !
- You can now launch AndroFlight and have fun with your drone.