ARDrone Control .NET code release

We’ve just released the code for the ARDrone Control .NET library:
Code on GitHub

There is also a new binary release.

Just a few quick tips to get the app up and running:

  • This is a Visual Studio 2010 project using .NET framework 4.0
  • You need to download and install Windows SDK and a fresh copy of the DirectX SDK
  • Update: You also need a copy of the SDL library
  • You need to change the directories for Windows SDK, DirectX SDK and SDL in the file “ARDroneProperties.props” to your own directories
  • You need to disable the loader lock exception in Visual Studio (Debug -> Exceptions -> Managed Debugging assistents -> Disable the “Loader lock” checkbox)

After that and a full rebuild of the solution, everything should work fine.

If there are still some errors, you can add use the issue tracker to remind us of these bugs.


I forgot to mention the SDL library that is also needed and also necessary to build the code. Further instructions on integrating the SDL library can be found in the updated readme file on GitHub.

Have fun!

27 Responses to ARDrone Control .NET code release

  1. I’ll have a lookt at it next week.

  2. x4FF3 says:


    ive got a “little” problem with the Control Library. I try to code a program to use an xbox360controller with to sticks…(xinput), but i don’t know what values i have to deliver. i tried -1.0f t 1.0f. but the drone just starts and then nothin happens. could you help me.

    plz answer via mail (in german pls 🙂 )

  3. Maybe we haven’t integrated all the axes necessary … have a look at JoystickInput.cs. The axes that can be assigned are listed in the enum. Perhaps the z axis of the XBox controller isn’t listed there.

  4. Justin says:

    First off this project in amazing!

    I’ve been modifying the project to incorporate a gps module. Will see how that goes, need to get the linux kernel patched and stable with native USB support first.

    Anyway I tried using the UI_WPF project for a little fun last night. I got it mostly working with my xbox 360 controller over a windows dongle. I am noticing though that they z-axis of the controller isn’t recognized. Got any ideas? The dual access controls make for a real nice simulation of my old Nitro Powered Helli.


  5. Hi Bourgo,

    Have you tried to call GetDroneData() from the library?

    If you did so, you could set a breakpoint there and see if you get something back from the various calls to getTheta(), getPsi(), etc.

  6. Bourgo says:

    Yes,the firmware is latest one.

    I can get infos from SDK sample.


  7. Hi Bourgo,

    If you can use the libary for controlling the drone, there is definitely no library missing, since the parts for controlling the drone and getting info from the drone are located in the same library. Neither of our team has recognized this behaviour before.

    Have you updated your drone to the latest firmware (this should still be 1.3.3)? Maybe Parrot changed the drone state behaviour of the since the last release.

    If you are not sure, you can get the official SDK up and running. If you also get no values in the official SDK, maybe your drone doesn’t send them (or doesn’t send them in the way the SDK expects them to be sent).

  8. Bourgo says:

    Hi,finally I can fly my Ar.drone via with opencv!

    But I found could not be able to recieve data and info from drone,such as battery , alt,yaw,roll etc…

    I checked your AR Drone Control App again, and noticed the ARDRONE.UI.exe also work fine but lucking info,too.

    Do you think I still relocate some Dlls or missing some Libs?

    My pc is win7 32,and Parrot sample code Win32Client.exe returns all info.


  9. I’m glad I could help!

  10. Bourgo says:

    >The only thing to do now is to make sure that the ARDroneAPI and ARDroneDLL libraries are built before the ARDroneControl project.

    Hi Great thanks,
    I just replaced these files and now got pics from front cam in VB.net2010!

  11. This is done automatically. The ARDroneControlLibrary relies on the ARDroneDLL.dll located at “../ARDroneDLL/ARDroneDLL.dll”. This is where the ARDroneDLL project is built.

    The only thing to do now is to make sure that the ARDroneAPI and ARDroneDLL libraries are built before the ARDroneControl project.

  12. Bourgo says:

    Thanks for your quick res.

    I add references to my VB2010.exp project ;


    but could not ARDroneDLL.dll.

    How can I add this?


  13. Hi Bourgo,

    It should be quite easy, since the .NET architecture allows you to interoperate between different languages.

    I think all that needs to be done is using the ARDroneControlLibrary project as a reference in your VB.NET project … and you’re good to go. You instantiate an ARDroneControl object, and then, you can use the methods provided to retrieve information from or send information to the drone.

    I haven’t tried it yet, but this should be it.

  14. Bourgo says:


    I`d like to use them in
    Could you tell me how?

    thx for great job!

  15. Hi Thomas,

    This is REALLY not easy to do … I’m currently working on a JNI bridge, for JNI isn’t quite satisfied with .def exports. So there must be another library that uses the original library and casts the std calls to JNI exported calls.

  16. Hello diRk,

    You’re using the Visual C# version of Visual Studio, but the project also contains two C++ projects. That’s why you can’t load the projects. The ArDroneDLL.dll will be missing, then. And so, when you press the startup button and the DLL is needed for the first time, you get an error.

    My suggestion: Go to the Microsoft page and download “ALLE EXPRESSPRODUKTE ALS ISO-DATEI” – I’m not sure, but I hope that this includes C++ as well as C# wrapped in one application. If it doesn’t, let me know.

  17. diRk says:

    i need your help, i got some errors while opening the project and when I am press the startup button in debugging mode.
    I think its the same problem with the dll..

    sorry I am not a developer, just want to use this awesome app.

    here’s a screenvideo:

    thank you dirk

  18. Thomas LESTRIEZ says:

    Sorry, I am well using the word “ARDroneDLL”. I can load the following libraries:

    But I can’t load ARDroneDLL yet.

    I tried two ways: with System.load and Native.loadLibrary… the same error happens. This methods find well the file ARDroneDLL.dll but they can’t load it.

  19. You should be able to access the ARDroneDLL.dll. This is a standard C library. The functions exposed can be found in ARDroneDLL.def.

    From your post on the Parrot forum:
    The library is called ARDroneDLL.dll, not ARDroneDDL.dll

    Could that be the problem?

  20. Thomas LESTRIEZ says:


    I would like to import functions that you exported in your ARDroneDLL.dll. I nedd them for my Java program. But I can’t load your dll. Is it a special library or is it locked by any process?

    Thank you for your great work on the Drone.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: