C# SDK for AR Drone now available

by Stephen Hobley on November 28, 2010

Post image for C# SDK for AR Drone now available

We got the OK from Parrot a couple of days ago to release the source code for the C# .Net ARDrone API .

It can be downloaded from here.

Big thanks to Thomas and Julien for all their help with this project – there’s no way I could have finished it without them.

Note : This is an unsupported proof-of-concept project – so I won’t be bug-fixing or updating it as the latest firmware comes along. It’s open source, so feel free to have at it yourself…


{ 19 comments… read them below or add one }

Brian Noel January 17, 2012 at 9:07 pm

A little over my head, but here goes. I am unable to run the executable (ARDrone.ui I think it is?). The program’s main screen opens and then fades out and a windows message box pops up and states that the program has stopped working. I then downloaded the VS 2010 Prof edition and followed the tips in the read me file. I can build the solution with ARDoneUI_WPF set as the start-up project, however, when I run the debug I get this error:
“An unhandled exception of type ‘System.InvalidOperationException’ occurred in System.Speech.dll
Additional information: Cannot find the requested data item, such as a data key or value.”
Here’s the line it points to in the InitSpeechRecognition() function:
speechRecognizer.SpeechRecognized += new “EventHandler(speechRecognizer_SpeechRecognized);”

I am using Windows 7 64bit (hope the 64bit version isn’t the problem) Thoughts?

Stephen Hobley January 17, 2012 at 9:27 pm

Just off the top of my head I would say that the 64-bit has something to do with it. The errors you describe are very “generic” – Invalid Operation, rather than “File Not Found”, or “Out of Memory”. I would try building as a 32-bit application.

Brian Noel January 18, 2012 at 11:00 am

Thank you Stephen,

I continued to have the same problem and since the problem kept pointing to the speechRecognizer I decided to plug a microphone into the computer and enable the Windows Speech Recognition system and that fixed the problem. Now I can use either the executable, or the build from the source files. Does this program use voice recognition for inputs?

Stephen Hobley January 18, 2012 at 11:23 am

Not that I’m aware of – I can’t really give you a better answer, I don’t actively work with the drone any more – not looked at the code for over a year.

Richard January 21, 2012 at 11:35 am

Hi Stephen

The code looks great; but every time I try and download the zip from GitHub and decompress it, the zip archive is invalid. I’ve tried this on a few machines now so it’s a problem with the source at GitHub and not something odd I’m doing 🙂

Any chance you could zip the code and mail it to me, or upload it somewhere else temporarily?

Many thanks,


VICTOR MELO April 3, 2012 at 7:28 am

Hi. I am not a expert in development language, so do you have a compiled version of this software for windows?

I will test it, and report!


james August 12, 2012 at 12:48 am

hey Stephen,
Nice SDK.. i have been playing with it alot lately.. i just wanted to know that does the navdata contain the tag detection data ?
I have enabled it on my ar drone but how can i receive that info ?? does this sdk support it?

Manuel Valenzuela August 31, 2012 at 11:18 pm

Hey! Your code works great with the first parrot, but now I have the second one and I really need something for .net, are you thinking on release something for this version?

I am willing to help with your testings.

Do you have a paypal account to receive donations?

Manuel V.

Stephen Hobley September 1, 2012 at 9:17 am

Thanks for the offer, but I don’t own a V2 so I can’t really do any more development.

I was hoping that the “open source” would enable others to pick up the ball and run with it…

Regius September 5, 2012 at 11:33 pm

Hello Stephen,
I am trying to control the different modes of the drone eg, left yaw, right yaw , left roll and right roll,
but i think i am missing something in my code:
public override String CreateCommand(SupportedFirmwareVersion firmwareVersion)
int KflightModeValue = GetFlightModeValue();
return String.Format(“AT*PCMD={0},{1},{2},{3},{4},{5}\r”, sequenceNumber, 1, KflightModeValue);

private int GetFlightModeValue()

int KflightModeValue = 290718208; //flying, default

switch (RollMode)
case RollModeKinect.RollLeft:
KflightModeValue = -1098907648; // flying leftwards with 1/4 of power
case RollModeKinect.RollRight:
KflightModeValue = 1098907648; //flying rightwards with 1/4 of power
KflightModeValue = 290718208;

return KflightModeValue;

please help. I am sure once i figure out what is wrong with this one then i can figure out the rest.


Stephen Hobley September 6, 2012 at 8:42 am


Sorry I can’t really help with this – I no longer have the drone and haven’t looked at the code for years.
I’ll leave it here in case someone else can help you.


Regius September 17, 2012 at 4:17 am

no worries. I Kinda fingured it out but now i just have a problem with the command not continuously being sent . i have placed it in a timer under a button click but it is still not calling the command

Paul Roy April 7, 2013 at 11:46 am

Hi, I know you no longer support this project, however a collegue and I re-wrote the code of the video retriever (both TCP acquisition and video decoding, thanks to FFMpeg C++ API and a C++ / C# wrapper) over what you did.

Therefore it becomes possible to support video with the 2.0 version of the drone.

If you are interested, please let me know, i’d be happy to integrate the changes !

Best regards

Stephen Hobley April 7, 2013 at 11:54 am

Yeah that would be great – well done getting that to work.

Even though I no longer had the time to update the project – I always encouraged anyone else to take it on.

Send me an email via the website and I’ll get you added to the repository.

Paul Roy April 8, 2013 at 5:18 am

I’ll need a few days to properly integrate the whole functionality, I’ll contact you back as soon as I feel the code to be ready.

Thank you for your work, it is really amazing !

Konstantin April 27, 2013 at 5:36 am


I’m also interested in this update of video decoding for 2.0 version. Will you commit it to your GitHub project? Thanks in advance!

Ruslan B. May 6, 2013 at 11:04 am

Hi there,

If some one interested in robust c# API for AR.Drone 2.0 feel free to use this libarary:

Nesh October 3, 2013 at 2:28 am

Hi Paul, do you mind sending me the updated version for drone 2.0 with the video working man? Would really appreciate it alot.

oabakken June 12, 2014 at 4:49 am

Hi Paul, any updates on the updated version of 2.0 for this project?

Leave a Comment

Comments links could be nofollow free.

{ 1 trackback }

Previous post:

Next post: