Hi all, 

I hope a few of try out the latest version of my program that is helpful in viewing APM2 LOG files.

Remember, these are the LOG files saved by the APM2 board, and you download them using the CLI in mission planner.  These are NOT for the TLOG files.  

Here's a new  YouTube video that demonstrates the features:


Here's a link to the software.  


Installation consists of unzipping the zip file, and putting the APMLogVisualizer.exe somewhere you like.  There's no config files for it or anything, I wanted to keep it simple.

Once I hear back from a few folks that all is well, I'll be able share the project.....

Dan Gray

Here's the two help files......

Hi all, This is ""APMLogVisualizer"" by Dan Gray
THIS PROGRAM IS BY NO MEANS FINISHED, but I already find it useful.
I hope you find it useful, but use at your own risk.

For a video on the features, check this out:


This software is for LOG Files, not TLOG files. TLOG files are created in the Mission
Commander when you're connected by USB or Telemetry to the QuadCopter. There is already
a great built in viewer inside the mission planner for these files, but the only tool
for the ""LOG"" files is you can graph any particular item (or items).

But if you don't have telemetry, or if you want to log things that aren't logged in the
TLOG files, it may be possible that the information is in the LOG files, that are saved
inside the memory card on your APM2.

First, you should set up your APM2 to log the appropriate parts.
Using Mission Planner, you go to the TERMINAL button, wait until a bunch of text goes by,
and the text says ""Ready To Fly"".....
then press enter 3 times.

It should end up saying ""Arducopter V2.5.5"" or your current version.

Now type:""LOGS<E>""
You should see a line that says:

Your mileage may vary, depending on what you're logging.

APMLogVisualizer doesn't look at everything, but here's what it does ""look at""...


At this point, only the PM is not graphed or displayed.

If you don't have ATTITUDE, GPS, CMD, CURRENT, MOTORS, CTUN, and NTUN enabled, then enable
them one by one. The only thing to watch out for is to enable ""CURRENT"" you have to type
""ENABLE CUR<e>"" instead of ""ENABLE CURRENT<E>"".

Now, I'm assuming you know how to save the log files using the mission commander
""Terminal/LogDownload"". If not, go here:

Next you need to open a log file.
You can set up your ""MyComputer"" to automatically run this program by right clicking
on a log file then selecting ""Open With"", and browse to APMLogVisualizer.exe. Make
sure the checkbox that says something about ""Always open with"" is checked.

You can run APMLogVisualizer.exe directly, too, then click on ""Load APM2 Log File"" ,
browse to your file, and open it.

Once a file is open, in the large area on the left, you'll see the GPS path that the Copter
took during this log. I call this the ""Path Area"". At the bottom is an arrow with an
indicator of how many meters in Longitude the copter went. On the right of this area
is a brown bar graph of GPS altitude, and at the top right the highest altitude that
the copter went is diplayed after the text: ""Verticle Height"".

The path that the copter took is colored, Red for ""Stabilize"" mode, Magenta for ""Loiter
Mode"", and Green for ""Auto Mode"". Also, if there are any waypoints, they're displayed
in this area of the screen, as a thick black circle.

You can click anywhere on the map, and a browser will open and if you've an I-Net connection,
Maps.Google will display the aerial view of the center of motion for your copter. It will
put a mark on the map where you clicked in the Path area.

In the text box area at the top right is all the data that's displayed from the log.
This includes GPS data (including Universal and local time),
then all of the Attitidue data including heading, pitch, roll, yaw,
the motor signals, the volts and amps (You have to have a voltage and amperage sensor),
then All of the CTUN and NTUN parameters.

The current MODE that the copter is in (Stabilize, RTL, Loiter, etc),
and the latest command if in the Auto mode, along with the command parameters.

If the Text is GREEN, then you can click on it, and an Engineering Graph will appear.
You can click on up to 8 points, and they will all be displayed.
To clear the graph, click on the ""Clear Graph"" button.
To delete a point that's already on the graph, click on the Greeen text again, or
right click on the point name that you want to delete, in the engineering graph.

When a graph is up, click on the graph title at the top, for a graph help window.

In the bottom right portion of the screen is a graphic representation of a Copter, indicating
the current Roll, Pitch, and Heading of the machine.

You can grab the slider at the bottom of the screen (I call this the ""Log Pointer"" slider),
and drag it anywhere in the file. To the very right is the end of the file, the very left
is the beginning of the file. You can watch the little X work around the path as you move
this slider, also, all of the numbers change to the current value for that portion of the log.

If you have a graph open, there will be a bar, indicating where the current ""LogLines Pointer""

You can ""play"" the log file by clicking on ""PlayLogRev"" or ""PlayLogFwd"".
You'll see the numbers change, and the ""little guy"" will run around the path the copter took.

You can change the playback speed with the smaller slider on top of the Log Pointer slider.

If you want to improve this program, please ask me for the project source, as long as you're
willing to share the source and exe with the community, and I decide you're worthy, I'll let
you use it.

Dan Gray

Graphing help file:

Graph Helpful Hints:

Click and Drag to zoom into the graph. Right click on the graph to UnZoom.

If the mouse pointer is NOT in the graph data area:
The numbers at the right show the Average value for the current on screen portion of the data,

If the mouse pointer IS in the graph data area:
The numbers at the right show the current value, where the mouse pointer is.
There is a vertical bar in the graph where the mouse pointer (and the data that's displayed) is.

The scale on the left (the vertical scale) will reflect the last data line that you add.
If you want to change the vertical scale to match another data line, left click on the data line label
at the right.

To Delete a point from the graph, right click on the Point Name, on the right side of the graph.

The scale ""engineering units"" are automatic, based on the greatest and least values for that data line.
Sometimes the ""Engineering units"" are constants, for instance the motor outputs are 1000 to 2000,
however, if the data happens to go over the ""engineering units"" that are constants, the
""Engineering Units"" will be changed to the higher (or lower) value.

If you're 'Playing' or sliding the slider for a LOG file, then there is a vertical bar, where the
current play Log Line pointer is.

Views: 3782

Reply to This

Replies to This Discussion

Very cool. Nice job. 

Awesome, thanks for making the waypoints more obvious :)

The graphs are very cool.

Hey Dan,

It looks great! I really like the new features. This will be very helpful for tuning.

If you don't mind, I would love o suggest a few minor improvements to the interface.

1. When you add a value to the Graph, change the color of the text on the main window from green to something else. This way you can easily find what it already added. If they are removed from the graph, change the color back to green.

2. Add a small legend, perhaps in a button, that tells what each of the colors mean for Flight Modes and perhaps more. (like where to find the altitude bar and maximum).

Really nice! I am discovering new things in the mile long mission I ran yesterday (log attached). The only strange thing was it calling RTL mode Circle - I did not have circle mode set, was doing some rtl after loiter.

This is going to be a very handy tool!


Thanks Bob, Derek and John,

Yes, I must have circle confused with RTL.  Also, good suggestions by Derek.

I'll come up with a 1.31 with those changes/fixes in a day or two.


Hey Dan,

I just noticed that the label text on the vertical axis of the graph always shows the text of the last field added, even if that field is removed. Not a big issue by any means, but I saw it and figured if you are doing fixes anyway :)

What is the scale of the Playback Speed scroller? Perhaps showing a "2x" or "10x" type label would help get a better idea of how fast it is going.

Thanks again for a great program!

Gosh John,

What a GREAT Mission!

I'm attaching a screenshot!



Thanks! Actually, thanks to the dev team and people like you that make this wonderful software. I have run this mission and others like it over and over and am shocked at the repeatability and reliability now in 2.6.  This mission goes so far (1.7 km)  that the unit often flickers out of sight and watching it come back right on target is a thrill

Here is a shot of the same mission run twice, almost identical images of each other

Thanks again for a great tool!

There's not really any scale to the playback, the only "time" in the log file is the gps time, and the number of items between the gps fixes are variable, so it would be a bit of work to get it to play in real time, or multiple thereof.

However, I just added the local time (from the gps) to  be graph-able, now you can see the local time in the graph.

Thanks for the suggestion anyway.


Hello again Dan!

Sorry to keep finding things, but I also noticed this problem and I have tested with two different log files.

Steps to reproduce:

Open John's log (2012071721521.log),

Click Pitch to add it to the Graph,

Click Yaw to add it to the Graph,

Click Yaw to remove it from the Graph,

Click Yaw to add it to the Graph.

Expected result:

The Graph should contain Pitch and Yaw.

Actual results:

Only Yaw exists in the Graph.

To make it worse if you leave it up like this, then do the following you see another issue:

Click AbsAltitude/GPSAltitude to add it to the Graph.

Actual results:

Mouse over anywhere on the second half of the Graph, and the values will be "0".

These are kind of obscure bugs but I ran into them during normal used so thought I would help you find the logic issue.

Thanks! WIll try it out today.


Don't worry about "finding things", glad you did, hopefully today I'll be able to duplicate and fix.


Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service