parrot ar drone serial port

I have started to work on DroneProxy some time ago to work around bugs in the firmware of the drone. Basically it is a transparent proxy for the UDP AT command packets arriving on port 5556. The packets are parsed to keep track of the sequence number. If no packets are received for 1500 ms the proxy will start sending “landing” commands with increasing sequence numbers (until somebody plugs the battery…). If you wondered how the update process to version 1.3.3 would look if you attached a serial console…. During my telnet visits to the Parrot AR.Drone i wondered what all the serial ports (/dev/ttyPA0..And now I know which one is used by what and where i can find them on the board. The pinout for a USB cable can be found at the official Parrot website….here. /dev/ttyPA0 is used by the bootloader and the kernel and can be found on the “USB” port (Pin 4 is RX and Pin 6 is TX) and greets us with: This serial interface should allow us to attach a GPS module (with a TTL level serial interface) directly, without the need of a new kernel!
GPS here we come! /dev/ttyPA1 is used to interface with the motor controllers. There must be some de-multiplexer between the serial port and the 4 motor controllers. I actually managed to randomly start a motor by typing garbage into this. /dev/ttyPA2 connects to the navboard and continously spits out navdata from all sensors. After Parrot finally released the GPL sources for their kernel changes it was time to dig into the firmware some more. Last week i was taking a closer look at the closed source control binary which has the innovative name “program.elf”. It turns out that the binary dynamically links to libiw (from the wireless_tools) which is a GPL licensed library. You can easily check this yourself by telneting into the drone: Antoine Ferran (from Parrot) confirmed this fact on the next morning: The libiw is dynamically linked with the program but it is a mistake. Libiw is not needed anymore: it is a remnant of a previous test version. Any calls to libiw has been removed from the current build that will be released soon.
You can find the complete discussion here. I am pretty confident that they will not get away with that and will have to release the source code. Actually that could be a really good way for Parrot to get help from the community to fix all of the critical bugs in the current firmware (“fly-away” syndrom, random crashes, ….) and make a much better product! Now that i am done messing with the software and actually completing a few test flights, I figured it was about time to tear the drone apart. The only thing required is a tiny torx screwdriver (T6X20) which fortunately i had laying around on my desk because we use the same screws to tighten the GSM modules on to our GSM cards. Once you remove the plastic shielding you can see the mainboard stacked on top of the navboard (which carries the ultrasonic sender/receiver). The front camera is connected with a ribbon cable coming from the right. Above that camera connector is a 7 pin USB header. Undo 4 little screws and you can remove the navboard (which plugs into the backside of the mainboard with an 8 pin connector…probably serialish).
Here you see the mainboard with the camera cable removed and the battery connector ripped out of the shell (to give some space for moving the mainboard). The mainboard has 2 on-circuit wifi antennas (ANT1 and ANT2): This is the navboard with the ultrasonic sender/receiver pair. The “ugly padding” on the left is probably to shield the right one from receiving the “echo” through vibrations across the pcb (instead of receving the reflected signal through the air). parrot ar drone irelandThe 8 pin connector connects to the mainboard.parrot ar drone 2 The other side of the navboard:parrot ar drone en chile And the other side of the mainboard:parrot ar drone gadgets
The drone is really easy to take apart and also to re-assemble. It even does work again. [Max Ogden] wanted the option to add sensors to his Parrot AR Drone. This a commercially available quadcopter which runs Linux. This makes it rather easy for him to use Node.js to read the sensors from an Arduino board. The use of the Arduino is merely for easy prototyping. parrot ar drone nerfIt is only needed to bridge the drone’s serial port with a sensor’s delivery method, so just about any microcontroller could be substituted for it.parrot ar drone deler There are some hardware considerations to take into account. The manufacturer was nice enough to populate a 0.1″ pitch pin socket on the serial port (if only this kind of invitation to mess with hardware was an industry standard). But the device expects 3.3V levels so pick your hardware accordingly.
There is one commenter who tried the project for themselves and found that the drone wouldn’t boot up with the Arduino already connect — he had to boot and then complete connections. Troubles aside this makes adding your own sensor payload very simple and you don’t have to wait until landing to get at the data. Maybe we’ll have to add some shock voltage data reporting to our shockerDrone.The winning idea of the IBM drone hackathon in nvision, 2k16 First of all a huge thanks to IBM for conducting a drone hackathon by giving us a Parrot AR drone and DJI Phantom to build stuff on. As a result we developed some cool projects that will be showcased in a series of blog posts. //sai.n.reddy1), where they made a system that controlls the Parrot AR drone via gestures. The project itself consists of two parts: The Hand and the nodejs program to control the drone. This awesome hand was made by a team of 1st years as part of their course Independent Project. They originally made it to interpret hand symbols, so as to help mute people.
But it was generic enough that it could be used to detect any sign made. It was made using very economic and easily available hardware: A technical description of how it works is given below: The device makes use of flex (resistance) sensors along with accelerometer and gyro sensor to convert hand symbols into text. The flex sensor gives a resistance value according to the folding of the finger. It gives a high value for a curled finger and low value for a straight finger. The flex sensors are connected to the arduino which in turn processes the signals along with signals from accelerometer and gyro sensor to produce a output. Different inputs are mapped to various output, which can be text, speech or anything you want. Now we used this hand to map several gestures to the different controls of the drone. We hooked this hand to the computer and printed the detected command into Serial, where it was picked up by nodejs program. We then used the excellent node-ar library by @felixge to control the drone.