HobbyKing.com New Products Flash Sale
Reply
Thread Tools
Old Mar 06, 2011, 01:43 PM
Registered User
Joined Feb 2011
65 Posts
Mini-HowTo
RC Controlled AR.Drone w/o WiFi!

Based on the original mod that uses an special Arduino board with WiFi (called YellowJacket) to control the Parrot AR.Drone I present a mod that establishes this without WiFi! Since the YellowJacket module seems not to be available anymore, this is a great alternative that only requires an Arduino Pro Mini!

You can find any files required as well as a detailed how-to on the corresponding Google Code Project:

http://code.google.com/p/ardudrone/wiki/HowTo


I opened up this thread so the original one won't get highjacked with stuff about the Wifi-less variant (it already is a bit ).

Also I want to thank MAPGPS and Mheeli, without them, this mod would not have been possible!

Have fun and tell me what you think about the how-to! Any suggestions appreciated!
nosaari is offline Find More Posts by nosaari
Reply With Quote
Sign up now
to remove ads between posts
Old Mar 06, 2011, 03:21 PM
Tech Junkie
babblin5's Avatar
Wichita, KS
Joined Apr 2010
173 Posts
Could you add a picture showing how/where the molex connector plugs into the Parrot? that's the only part I'm confused about (so far) on you project page.

thanks!

Ross
babblin5 is offline Find More Posts by babblin5
Reply With Quote
Old Mar 07, 2011, 08:41 AM
Registered User
Joined Feb 2011
65 Posts
Well when it comes to ports there aint much choice, there is only one at the bottom of the drone protected with a rubber plug that has an USB sign on it. But I happily add a picture showing it to the guide if that helps.
nosaari is offline Find More Posts by nosaari
Reply With Quote
Old Mar 07, 2011, 11:24 AM
Tech Junkie
babblin5's Avatar
Wichita, KS
Joined Apr 2010
173 Posts
Why they didn't just put a standard USB port there is a mystery to me...lol
babblin5 is offline Find More Posts by babblin5
Reply With Quote
Old Mar 07, 2011, 01:13 PM
Registered User
Joined Mar 2011
9 Posts
Hi

First Thanks for your work, I've been carefully following the wifiless solution with excitement. So much that I just registered with these forums

I was thinking about an alternative to using the usb module, and instead make use of the standard serial port that comes pined-out in the same connector. The idea is to write a daemon listening on the (native) serial port which would act as a gateway between serial and local host connection.

The advantage would be less embedded weight on the drone, a simpler connection, less power consumption and of course one less point of failure from the USB (which is quite a complex stack for just passing a text stream).

As soon as I can setup a working toolchain to compile C code for the drone, I'll write this daemon (quite trivial).

I'll gladly share my work of course.

Kind Regards,

Benoît.
Ben0it is offline Find More Posts by Ben0it
Reply With Quote
Old Mar 07, 2011, 01:39 PM
Tech Junkie
babblin5's Avatar
Wichita, KS
Joined Apr 2010
173 Posts
Also, have you tried using the 1.51 firmware yet? I'm hoping my drone comes with the 1.3.3 installed so I don't have to mess a round with downgrading the firmware. Will this mod even work with 1.51?

Thanks for the excellent how-to! GREAT work!
babblin5 is offline Find More Posts by babblin5
Reply With Quote
Old Mar 07, 2011, 02:58 PM
Registered User
Joined Feb 2011
65 Posts
@ babblin5
ATM the mod is only tested and working on 1.3.3. Downgrading is not a problem, just copy the 1.3.3 firmware to the drone like any other upgrade and execute the following command on the drone before you restart it: (this circumvents the built in version check!)

Code:
# echo 0.0.0 > /firmware/version.txt
@ Benoît
Great to hear you joined the discussion! And hold on writing that daemon, it has already be done! The current mod also works perfectly with the built-in serial port on the drone! The provided proxy application can listen on any serial port (the default is hardcoded to /dev/ttyUSB0, the serial port created by the FTDI breakout board) by using the "-d(evice)" option:

Code:
./atcomproxy_arm -d /dev/ttyPA0
But besides the advantages you described, this has some disadvantages though:
- This serial port is shared with the system and used for system messages output and also as a serial console. To prevent the system from using it, you have to compile and flash a custom kernel. To disable the serial console, no flash required but you have to modify another system critical config file. Also by disabling the serial console you block your only alternative access to the drone besides wifi. Maybe you want to disable wifi on the drone all together to improve battery life, then you need the serial console for system access!

- If you don't want to flash a custom kernel and only disable the serial console you still get some noise on the serial port from the system. The proxy app has to filter this out to ensure a save communication to the drone, this makes it a bit more complicated and slower (not much though).
nosaari is offline Find More Posts by nosaari
Reply With Quote
Old Mar 07, 2011, 06:59 PM
Registered User
Joined Feb 2005
2,603 Posts
Great work, been keeping an eye on your progress. You must post some video of the Drone flying. Will your mod keep up to multiple fast inputs? I found with the YJ, if you really hammered it, it would sometimes not respond right away. Perhaps pushing the YJ to it limits. If you flew smooth, no probs.

Brian.
Buffythesaint is online now Find More Posts by Buffythesaint
Reply With Quote
Old Mar 07, 2011, 07:50 PM
Tech Junkie
babblin5's Avatar
Wichita, KS
Joined Apr 2010
173 Posts
I would think that the response would be faster since you're sending commands directly through the USB port as opposed to YJ translating and sending through the WIFI, where it's translated again. Just a supposition on my part.
babblin5 is offline Find More Posts by babblin5
Reply With Quote
Old Mar 08, 2011, 12:03 AM
Registered User
Joined Nov 2010
65 Posts
Quote:
Originally Posted by babblin5 View Post
Also, have you tried using the 1.51 firmware yet? I'm hoping my drone comes with the 1.3.3 installed so I don't have to mess a round with downgrading the firmware. Will this mod even work with 1.51?
The kernel comes with AR.Drone official firmware was not built with CONFIG_MODULE_FORCE_LOAD,
so it is not allowed to force load a modules with mismatched version magic.

Actually, our *.ko modules are not version sensitive, you can simply use a binary editor (like UltraEdit) to modify the version magic string in *.ko files to match the kernel in your new firmware (use "uname -r" to find out the version magic).
MAPGPS is offline Find More Posts by MAPGPS
Reply With Quote
Old Mar 08, 2011, 01:22 PM
Registered User
Joined Mar 2011
9 Posts
Quote:
Originally Posted by nosaari View Post
@ Benoît
Great to hear you joined the discussion! And hold on writing that daemon, it has already be done! The current mod also works perfectly with the built-in serial port on the drone! The provided proxy application can listen on any serial port (the default is hardcoded to /dev/ttyUSB0, the serial port created by the FTDI breakout board) by using the "-d(evice)" option:

Code:
./atcomproxy_arm -d /dev/ttyPA0
Cool info., thanks

Quote:
But besides the advantages you described, this has some disadvantages though:
- This serial port is shared with the system and used for system messages output and also as a serial console. To prevent the system from using it, you have to compile and flash a custom kernel. To disable the serial console, no flash required but you have to modify another system critical config file. Also by disabling the serial console you block your only alternative access to the drone besides wifi. Maybe you want to disable wifi on the drone all together to improve battery life, then you need the serial console for system access!

- If you don't want to flash a custom kernel and only disable the serial console you still get some noise on the serial port from the system. The proxy app has to filter this out to ensure a save communication to the drone, this makes it a bit more complicated and slower (not much though).
Then atcomproxy_arm could be modified to just exit and let the system use the serial port as the console in case no Arduino board is responding at boot, so that when the Arduino board is not plugged in, then the system console remains accessible. By the way, are the sources of atcomproxy_arm available somewhere?
Ben0it is offline Find More Posts by Ben0it
Reply With Quote
Old Mar 08, 2011, 04:29 PM
Tech Junkie
babblin5's Avatar
Wichita, KS
Joined Apr 2010
173 Posts
Quote:
Originally Posted by MAPGPS View Post
The kernel comes with AR.Drone official firmware was not built with CONFIG_MODULE_FORCE_LOAD,
so it is not allowed to force load a modules with mismatched version magic.

Actually, our *.ko modules are not version sensitive, you can simply use a binary editor (like UltraEdit) to modify the version magic string in *.ko files to match the kernel in your new firmware (use "uname -r" to find out the version magic).
So you think this would work then with the mod if I did this, or would I be the guinea pig?
babblin5 is offline Find More Posts by babblin5
Reply With Quote
Old Mar 09, 2011, 02:18 PM
Registered User
USA, CA, Fontana
Joined Mar 2005
1,107 Posts
Sketch

I was trying to look into the sketch you posted on google. I am guessing it is some sort of compiled hex code?

I am trying to do the same but with a MSP430.
Will you posting any of your source code on google? Maybe I can replicate what you have on my MSP430.

Thanks
actionplus is online now Find More Posts by actionplus
Reply With Quote
Old Mar 09, 2011, 11:28 PM
Registered User
USA, CA, Fontana
Joined Mar 2005
1,107 Posts
sketch

ok, did some reading.
My bad. Currently downloading the IDE for Mac. Good to know there is something for Mac.
My first time looking at a Arduino programming language. Almost same as PicBasic.
actionplus is online now Find More Posts by actionplus
Reply With Quote
Old Mar 10, 2011, 01:11 AM
Registered User
Joined Feb 2011
65 Posts
All sources are available on the google Code project, thats why its called google code not google binary

The Arduino programming language actually is C.
nosaari is offline Find More Posts by nosaari
Reply With Quote
Reply


Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Discussion RC Controlled AR.Drone Mheeli Multirotor Talk 593 Jul 26, 2014 05:25 PM
Sold RC AR Drone for sale mcrotor Aircraft - Electric - Helis (FS/W) 12 May 01, 2011 12:48 PM
For Sale Parrot AR Drone w/TX/RX mod *Flies Nice* Z06 Tony Aircraft - Electric - Helis (FS/W) 4 Apr 16, 2011 09:42 PM
Discussion Wifi Boosted AR.Drone Fallengod Multirotor Talk 7 Feb 12, 2011 10:52 AM
Sold Wanna make your Parrot AR. Drone TX controlled? Z06 Tony Aircraft - Electric - Helis (FS/W) 1 Feb 01, 2011 08:13 PM