Remote Control module for AR.Drone

This is the Ardrone library. It provides a class for easy interfacing to Parrot AR.Drone quad-copter via WiFi.

The version of the package that this documentation refers to can be downloaded from You can find the latest version at


You MUST alter the WiShield library header files to enable the UDP app support in Wishield that Ardrone needs. See below.

You MUST pre-configure the AR.Drone to accept WiShield or Yellowjacket connections. See below.

WiShield Library Configuration
Requires the Asynclabs WiShield library. See Install the WiShield library in the libraries directory of your arduino IDE installation, then follow the configuration steps below:

Support of RSSI (receiver signal strength indicator) requires mods to WiShield library g2100.c as per You dont have to add this but its a good feature.

Correct operation of the WiShield requires you to set the jumper on the WiShield to INT0 or DIG8 to select the arduino pin to use for WiShield interrupts, and also to make sure it agrees with the settings of USE_DIG0_INTR or USE_DIG8_INTR in spi.h in the WiShield library (which defaults to using Arduino digital pin 2, and which means setting the WiShield jumper to INT0 setting). Yes, the naming conventions are inconsistent :-(. In summary:

WiShield jumper spi.h Arduino
INT0 USE_DIG0_INTR Digital pin 2
D8 USE_DIG8_INTR Digital pin 8

For YellowJacket (which has no jumper), leave it as USE_DIG0_INTR.

In order for WiShield library to support UDP (as needed by this module), you MUST set UIP_CONF_UDP to 1 in uip-conf.h. This is an unfortunate but necessary requirement, otherwise UDP support will not be compiled into the WiShield library. Further, you must edit apps-conf.h and make sure the only APP_* defined is APP_UDPAPP. Failure to do this will cause compile errors. A modified version of the WiShield library already edited for use with Ardrone and Arduino 1.0 is available at

WiShield will work with Arduino Mega, but with difficulty. The problem is that with the Mega, the SPI pins that are required for interface with WiShield come out on different pins to the smaller form factor arduinos like Diecimila and Duemilanove. So, to make the Mega work with the WiShield, you have to reroute the SPI pin to different Arduino pins, as per

AR.Drone pre-configuration

As delivered, the AR.Drone does not support the 1Mbit/sec data rate which is the only data rate WiShield supports. Without this Ardrone module will associate correctly with the AR.Drone. Experienced Linux users can follow these steps. If you are inexperienced unsure of some steps, more detail is at: Caution: if you do not follow these steps precisely, you may make your AR.Drone uncontactable by WiFi.

Example programs

Example Arduino programs are included to show the main modes of use.

The following example programs are provided:


Install in the usual way: unzip the distribution zip file to the libraries sub-folder of your sketchbook.

Mike McCauley (

This software is Copyright (C) 2011 Mike McCauley. Use is subject to license conditions. The main licensing options available are GPL V2 or Commercial:

Open Source Licensing GPL V2
This is the appropriate option if you want to share the source code of your application with everyone you distribute it to, and you also want to give them the right to share who uses it. If you wish to use this software under Open Source Licensing, you must contribute all your source code to the open source community in accordance with the GPL Version 2 when your application is distributed. See
Commercial Licensing
This is the appropriate option if you are creating proprietary applications and you are not prepared to distribute and share the source code of your application. Contact for details.
Revision History