I've been working on-and-off on a cross-platform GUI for mavproxy, which I've been calling "mavgui".    it's written in QT, and so will run natively anywhere where Qt will ( Mac, Android, Windows, etc ) ... and I've just started to add support in it for a "browser" window ( , that app would fill perfectly!   

I think I'm going to integrate these three into a GCS solution.   :-)  

My Work-in-Progress  QT based GUI is here:


The great thing about the mavgui I'm working on is that it's GUI is put together with a tool called "Qt Designer", and is 100% python, so it's trivial to change/tweak the layout for different use-cases like phone etc.    The Designer outputs XML, and the rest of the application is 100% python.     Here's a quick look at the XML loaded into the "Designer"....




It's not really "one giant GCS" in any sense of the word.. for a start it uses mavproxy and mavproxy modules for most of the underlying comms stuff, and everything else is just easy-to-read python.   :-)    maybe we should start a new thread for mavgui.  ?


There are a couple of parts to my experiment:  

(1)   completely separate the GUI from mavproxy, so if the GUI crashes, the mavproxy does not.

(2)  integrate with a standard mavproxy, with no changes required other than adding a "module".


"netconsole" - an underlying part of mavgui


Sending commands from the GUI "TO* mavproxy ( and hence your UAV) occurs over a tcp/ip connection to the MAV> console, by using a new mavproxy module called "netconsole".     As a bonus, you can now also use netcat, telnet,  or any other language to instruct MAVProxy.    :-)


want to put your UAV into AUTO mode from the command line?   try this:   echo "AUTO" | nc localhost 45678

want to communicate with a Mavproxy on another machine on the LAN?  try this:    telnet otherhostip 45678 ( and you'll see a MAV> prompt, just like it was local!


using pymavlink...... another undelying part.....

There's only so much you can do with a tool like "netconsole", as I cant ( yet ) use it to communicate information about the current state of  the UAV.... so I've additionally additionally got mavproxy sending a stream of UDP packets ( --out= ) to mavgui, and using pymavlink I am displaying the latest HUD style information in the GUI.  ( like altitude, speed, gps details, etc etc ) ... most of the work here has gone into making the underlying communications system operate well, so the mavgui GUI's not yet "perfect" by any stretch of the imagination.... but it's a start.....


Just thought you'd all like to know....... :-)




E-mail me when people leave their comments –

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

Join diydrones