Software-in-the-loop Architecture


I'm experimenting with SITL, for the purpose of routing MAVLink and prototyping IP Telemetry. Anyhow, after reading the documentation here...:

It took me a while to figure out how everything connects. To help myself, I made an architecture diagram. I would like some feedback from anyone who knows SITL. I got it working, so I think it is correct

The original diagram is in Google Docs, feel free to edit, copy or improve

Once I confirm this is correct, I will submit it for inclusion in the wiki.


E-mail me when people leave their comments –

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

Join diydrones


  • Excellent - I was attempting to draw the same diagram by hand this weekend - this is much better.

  • 3D Robotics

    Andy, please just PM your email address (linked to a Google account) and I'll give you Wiki write access (and a Wiki Ninja badge!)

  • Developer

    thanks for the update! I've added it to the wiki page

    If you want to make other improvements to the wiki docs let me know. I'm sure Chris would give you write access.

    Cheers, Tridge

  • Developer

    Ok, updated as follows:


  • Developer

    All right Tridge, let me fix that. Thanks for the correction.

    Wanna fly the Cloud-vArduCopter? It's still running

  • Developer

    Thanks Andy, looks great!

    Only one minor correction. The 8xPWM input comes from mavproxy to the the desktop process, not from the simulator.

    We should definately put this on the wiki.

    Cheers, Tridge

  • Developer

    I got it working in the cloud (new IP Address), here:

    IP port 5760

    Try it out and let me know if it works...

  • Developer

    I think that you must have a master (Serial 1) connected before you connect on the telemetry port. On my system at least, it does occassionaly drop a connection or crash altogether. But usually, if I start the components in the right order, it works fine. 

    I think I'll have to work on the order a bit before I document it. See if I can replicate the Serial 3 drop out you mention. It might be an easy to fix bug or a matter of startup order only. 

  • Developer

    Well, I have everything *else* working here. That is, everything you have working (FlightGear) doesn't work for me, and everything else does.

    A few minutes ago I just finished a nice 30 min simulated flight, planned in mission planner and displayed simultaneously in mission planner, on a CLI MAVProxy and on Qgroundcontrol on a Mac. So, 3 GCS systems all tracking in real time, two of them in full-duplex (ie able to set missions), one in listen only (QGCS). 

    I can post a step by step. I was thinking of just throwing this up on AWS cloud, with a little web front-end and let people fly virtual Arducopters over the Internet. "Have GCS can fly" kind of idea. 

  • I have been attempting for a couple months now off and on to get this to work.  Obviously the benefits of having this online are endless...up to the point where we actually want to do it for real :D

    The biggest problem I am having is that the GCS doesn't update.  I can fly in Flight Gear or Xplane without issue, the GPS coordinates and other parameters update but the HUD on the Ground Station doesn't do anything.  I can't even get it to fly to waypoints or even switch modes.

    One question I do have about your diagram is the Serial 3 port.  Its actually Serial over IP coming out of on 5763, but whenever I try to connect or observe data using the terminal port on the Ground Station it kills Serial 1.

    Cool to see someone else is working this, and I would be great full for a step by step guide, and would be willing to work through it and even update it.  The wiki SITL setup leaves much to be desired.

This reply was deleted.