Thanks Morten Daugaard and Thomas Vrang Thyregod!
Below are the Software and Hardware versions of the AR Drone v1.0 that I used for the experiments on this site. The linux version is 2.6.26.47.
1.4.7            ?     4.58  1.11   ?       ?
1.0.4   23-07-2010?       ?     ?   ?       ?
The front camera is an OmniVision ov7725 and the datasheet is available on the web.
The bottom camera is a “cresyn qcif”, I could not find further information for this camera.
You can download a on-board c program (source+binary) to convert the drone into a giant optical mouse. Hold the drone at a fix distance above ground and the program will report the movement in the horizontal plane.
The cameras are configured via the i2c bus. The front camera is on /dev/i2c-1 address 0×21, the bottom camera is on /dev/i2c-0 address 0x5d.
After this the camara is visible on /dev/i2c-0 address 0x5d. Now send configuration via i2c. The configuration sent over the i2c bus can be extracted from a “strace” of program.elf, but I did not dig furter into this.
However: This still does not make the camera visible on the i2c bus. Running program.elf does make it visible on the bus, after which “gpio 101 -d ho 1″, “gpio 101 -d i”, ”gpio 109 -d ho 0″, or “gpio 109 -d i” will make it disappear from the i2c bus.
This blog page is dedicated to the GPIOs of the AR Drone. You can download a custom GPIO driver here.
This blog page is dedicated to the I2C components of the AR Drone. You can download a custom i2c driver for the voltage measurements of the PMAAC here.
This blog page is dedicated to the NavBoard of the AR Drone.
You can download an on-drone c program (source+compiled) to convert raw NavData into physical angle, rotation rate, height and temperature values.
The following script starts the navigation board data stream without first starting & killing program.elf. The script has been tested on an AR.Drone with firmware 1.7.4 and 1.3.3 and navboard hardware version 0xc0. I.e. the reply to command 15 is 0xc0.
The stty command sets up the serial port. The gpio command switches the /RESET pin of the navboard to high, and the echo command instructs the navboard to start the data stream.
This blog page is dedicated to the motors of the AR Drone.
You can download an on-drone c program (source+compiled) to control the motors and leds.
Whenever the motor controller detects a problem, it will stop running and toggles the IRQ pin. A rising edge to 5v on the IRQ pin sets GPIO 106 (i.e. `gpio 106 -r` returns 1). Pin 106 can be reset to 0 by toggling GPIO 107, i.e. `gpio 107 -d ho 0; gpio 107 -d ho 1`.
In other words this is a flipflop circuit, with Set=IRQ, Reset=GPIO107 and Data=GPIO106.
Configuiration sent to single motor. The motor is selected with GPIO 68 to 71.
The following script initializes the motor and starts the control loop. The control loop flashes all leds. The script has been tested as replacement for program.elf on a AR.Drone with firmware version 1.7.4 and 1.3.3, motor software version 1.20 and 1.11, motor hardware version 3.0, motor supplier 1.1 and 2.2.