Ryan Dancy; Firmware; Catherine

What is the purpose of the telemetry dash for firmware

  • Way to easily get info to figure out what’s going on inside the system

  • Sort through CAN information easier

  • The dash makes it easier to read the data, sort through the CAN messages (will be updating one particular value multiple times and while we can read the raw data, its easier to read it off a graph or table)

  • Sometimes all we need is just a signal (smth good or bad is happening) and the telemetry dash can help to make it more noticeable



Card sorting notes

  • B - boolean, S - string(enum), V - value

  • Babydriver is not being used at all

  • Solar 5 and solar 6 are the same thing

  • All of the ‘faults’ are VERY important - need to know what’s going wrong

  • State transition fault is important - transitioning between parking and driving etc.

  • Information on currents (mostly useful to hardware)

  • E-brake engaged → mech brake engaged (it’s now mechanical)

  • Ready to drive signal is similar to power-on thing

  • Major state changes (powered on, battery plugged in) are not too critical but good to know that they happened

  • Drive output from the centre console? MCI has to know states from the centre console so the message is sent from the centre console to MCI to update the MCI drive state.



Meaning of the information on the cards

  • In the driver display documentation there’s a list of faults 

  • Solar 5 and solar 6 are identical

    • 5 or 6 refers to the number of mppts

    •  measure stuff from the solar panels

  • Power select status

    • Selects between power (power on or off)

  • State transition

    • Driver, neutral, reverse, park - drive states

  • Battery fan state

    • Not bool - status codes 0-10 with each number having a specific meaning

    • 0 is success, anything else is failure



Dealing with real time data? Or historical?

  • Will probably need both of them (hardware will likely require historical graphs)

    • Eg. racing and smth weird happens but they continue driving, they will want to find the logs from that time and see what it was that happened

    • Want to be able to locate data by time to allow them to refer back to it later



Walk through a scenario where they would use telemetry

  • Someone in the chase car / backseat, constantly monitoring feed from the car on laptop, monitoring that everything that should be happening is happening, and looking for anything outstanding that may be concerning

  • Making sure that all of the state changes messages are happening when they’re supposed to (status from the motor controllers)

  • Get alerted FAST if any of the faults are happening

  • More important for debugging than alerting

  • Biggest rule for the telemetry dash → something weird happened… why?



Who will be using the dash on firmware?

  • Anyone with knowledge of the system



Will they get any prep for usage of the dash?

  • Should be intuitive enough that they can be thrown in and understand what information is

  • They will be familiar with logging to CAN but not necessarily experience in digging through logs

  • Maybe have some sort of information feature which gives some details on what each thing is (one of those information icons)



Are there any current tasks / projects in firmware that involve reading through telemetry?

  • CAN explorer project - GUI for sending messages

  • Probably don't need to decode the bootloader messages which differ - but be aware of them

  • When reading through telemetry, CANDump which displays all the data in hex for each CAN message lmao, another program which, when runs, takes over the terminal window and based on the id, updates a spot on the screen

  • Has nothing to do with priority - harder to find relevant data



What makes things easier?

  • Sort logs by message and sort logs by the time they came in 

  • Filter out value messages in sequencing things? Sort by type of CAN message? 

  • Specific data is better shown as graphs (sequencing - show trends) or values (traditional logs), so differentiate those!