Using .csv files in Plotjuggler
Essentially a primitive telemetry dashboard/clever workflow to create one
I talked with one of my friends who does telemetry stuff for work (for a drone, pretty cool)
“we use plotjuggler with csv telemetry files”
essentially: Throw csv files (spreadsheet with raw values) at graphing program (plotjuggler). program go whirr. program displays graphs/data visualizations
csv file = “comma separated values” file
How their drone telemetry works on a technical level:
Data comes in in byte arrays that a multi-process program parses and hands off to a different program.
That program converts the byte arrays of cbor format into csv or spreadsheets.
Then a third program takes all the telemetry related csv files and makes a big csv with all the data.
Then that big file is loaded in the plotting application
This may not exactly be how our telemetry works. The technical details don’t really matter though tbh
Basically raw data gets processed a few times into a massive spreadsheet (millions of cells), each cell with a single data entry
All the user can really see is the .csv file
This file is enormous, and functionally useless to the user. They can’t get any useful insights out of that
However, firmware has mentioned that they would like an option to see that raw data as a tab on the telemetry dashboard
Plot Juggler
Open-source, so we can poke around if we wanted to
You can save plot setups, so they have a setup that loads once the data itself is loaded
“we have setups for position, velocity, and accel that have targets and actual
Then ones for each of the 4 propeller block with the values for the servos and rotor rpms
then a page with PID tunings”
along with many many other plot setups
Each graph below is a “plot setup” that you can just feed data into
the data loaded in goes in that left panel and you can drag it in, make new plots on the right, and make different tabs of plots (see top for tabs)
friend seemed pretty happy with plotjuggler: didn’t have any complaints/pain points with it
does require lots of upfront configuration
Our telemetry dashboard should just be ready to go, no configuration required (verify this assumption in user interviews)
We will also require other visualizations like battery pack architecture
Features he liked
can drag to resize plots
can make timestamps line up
change colour of each line
apply filters
turn data/lines visible/invisible
automatically populates data files into the appropriate plot set ups (just keep file names the same)
otherwise, you drag and drop data into the plot setup
intuitive
dragging is bad for trackpad use – this team is in an office and have a computer mouse. Firmware will likely not have this luxury when debugging the car
dragging bad for mobility/accessibility
good to offer an alternative to drag and drop (ie right click → list of plots displayed in dropdown → select from list)
can split up an individual plot into two plots, and lay them out either horizontally or vertically
Customer/Operator Dashboard
These are some photos of the telemetry dashboard used by the customers/operators (as opposed to the development team) – this is for a totally different user and application
https://www.youtube.com/watch?v=gt8sCxkrzjg timestamps are 0:45 to 1:00 if you want to see it in action
Bottom image is the screen for the “Inspect” tab. The top image I have no idea which tab it’s on.
The lack of indication as to which tab/display mode you’re on is confusing (and bad UX)
Also note the white on yellow on the (buttons? indicators?) at the very top – contrast is too low
Good to use figma plugin contrast checkers like Stark
Yes they’re aimed at accessibility, but good contrast benefits everyone, especially if you’re a firmware member looking at the display in bright sunlight