WildLog - state tracking log viewer

Last year we posted about our WildLog log viewer app. It wasn’t quite ready for prime time at that point, but we wanted to give a glimpse of what we were working on.

Through fall, we cleaned things up a bit, and while the interface may have some work to do in places (are they ever done?), it is in better shape, so today we are releasing it.

This image, for example, shows that our swerve modules were trying to find the target angle of 0 (a variable in our calculation code). The graphs show us we are moving to find it (ULRotate motor output value, and Rotation magnitude - our calculated variable value), the encoder is reading correctly (ULEncoder), and angleDistance (another variable) is moving closer to and away from the target.

Obviously, something is wrong! But at least we can see what’s happening. We now know it’s a code issue, since all our I/O is reading correctly and matching the values we calculate. We also now have a ton of real values to use in debugging our algorithm on paper.

New and useful features:

  • Log file format is now JSON
  • Unlimited channels can be added to a view
  • Views (channel configuration) can be saved and shared or reused when viewing another log file (great for debugging an issue looking at multiple files over time)

More details are given on our blog post, including a file describing the JSON format, so you could write this from any language/code. We also have an executable JAR file to download for the log viewer (code will follow), as well as a sample log file (from our swerve testing) so you can try it out.

If you are interested in using it and want help with writing the log files from your code, please let us know so we can help.

(For completeness: In the above example, it turned out to be a code issue, and also an encoder was plugged in to an incorrect analog input during a quick reassembly. We could see that when we added another encoder channel, and it was behaving as we would have expected, not the one we were actually watching.)