ArduIMU groundstation written in 'processing'

I have created a basic 'ground station' for the ArduIMU in the 'Processing' IDE

The Processing development environment is very similar to the Arduino evironmentProcessing compiles into Java, it allows you to run the same code on Windows, Mac OSX and Linux.Being a Mac user and suffering from not being able to find and run the correct version of the NI LabView runtime engine I decided to have a go at creating a ground station myself.This version ArduIMU_v004.zipwas the result of only a couple of hours of work so is a bit rough.NOTE: This is slightly updated from Original code uploaded - fixed 2 bugs.It borrows some of its design from the exiting LabView example and from Jose Julio's Python(?) exampleThe Ground Station:Logs All incoming Serial data to a text FileShows raw data in real timeDisplays key data in textDisplays Accel and Gyro data as bar graphsDisplays Roll Pitch and Yaw as rotating linesDisplays an 'aircraft' showing 3D orientationControls:Press Y to ignore YawPress L to start or stop LoggingPress Q to QuitHere it is operating (with no GPS - inside the house)I intend to keep developing the code for my own purposes.I'd be happy to hear any suggestions or requests for featuresPlease let me know what you think?-Andrew
E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Here's the vid for the Groundstation

    Here is another vid showing a raw NMEA Groundstation
  • I now have a stable copy of the Ardupilot Groundstation written in Processing. It reads in waypoints and home location from text files created using the Config Tool. It will then display a map in XY and Z in relation to waypoints with landing assist indicators, raw navigation data and the "plane" in real time. The plane graphic can easily be changed to an artificial horizon.

    There is also a similar program written to take raw GPS data and use this to assist in navigation

    Will post some vids in a bit
  • Sorry I missed your post and happy hols!

    If you use the Ardupilot Config Tool to setup your waypoints it can save a text file in a sub-folder called missions. I use this to load the waypoints into this ground station and plot them. Here is an example - you can use this file and browse to it at the start of the programconstruction 2.txt
  • maybe, i'm missing something obvious, but which config file is it asking me to load when the app launches? have you got a sample?

    from what i've seen of the code so far this looks like it's going to be a fun project, however I've got the misfortune of going away on holiday next week, so I'm not going to be able to contribute much to the effort just yet :)
  • @Jim

    Thanks for the advice. Here's the code if you would like to have a look.

    I like the idea of the ground-based FPV. This would let you superimpose some kind of HUD? I guess you would need a frame grabber to gain access to the video signal. I've also thought of sending the Camera signal as a serial data stream, perhaps use the audio channel for telemetry of raw NMEA sentences.

    Anyhoo, interested in your progress.

  • Hey guys, hi agmatthews

    Loving this project, would be really happy to help, I've been planning to write my GS in processing and would prefer to team up with others than re-invent the wheel. I'm still focused on UAV hardware and getting the thing up in the air before I really start working on the GS part. My core idea is to have the telemetry overlaid on top of live video (using the processing GStream library) from the onboard FPV cam. A kind of hi-res ground based OSD.

    @Space Nut, have you tried using array lists? they are much more useful than just arrays. If you want to release your code, I'll help you implement them.

  • Hi agmatthews,

    I like this project, so much so that I've modified it to act as a ground station for Ardupilot. It's still pretty rough but here's a screen shot

    I needed something that could assist with manual and assisted landings so I'm trying to plot XY and Z data for my plane and also provide an indicator that's similar to those used in real aircraft for ILS approaches.

    Do you have a way to keep the old readings of XY and Z while adding the new points? I am resorting to creating an array for my XYZ data (derived from Lat/Lon/Alt) and replaying the array for each draw loop. Do you have a better approach? Would appreciate any assistance.
  • Gordon,
    Dont try to run this as an applet - ie dont use the index.html
    download 'processing' from
    Run processing and open ArduIMU_v008.pde
    Then in the processing editor you will see the code where you can edit com ports etc

    I have not used the 9DOF razor board
  • Andrew,

    Thanks for sharing your code.

    1. I'm new to running processing code, I've exported the program but when I open up index.html a java prompt pops up asking if I want to disable driect draw, I select NO. Then the page loads, but shows just a white area where the applet should be. Any idea what I'm doing wrong? (Screenshot: )

    2. Also where is this console you speak of that says the com ports? I know its com4 however and set it to 4 in the code.

    3. Will this work with the new 9DOF razor board? That is what I have....

    Thanks again,
  • Andrew,

    Thank you for posting this. Really saved me a bunch of work and is much better than anything that I could have done.

This reply was deleted.