...
This was their old telemetry pre-2005for 2013.
Here's the Matlab strategy model that they used, which ingests the Telemetry data.
And this is supposedly a newer version of it for Arctan (2015). To be honest, I'm not really a fan of their newer dashboard. It seems to choose looking pretty and cool over being useful, and while their old page didn't look as nice aesthetically, it provided the relevant information.
...
Okay, not really a school, but I pulled this from the Model S "Reading Battery Voltages and Temperatures via CAN on Model S" thread at Tesla Motors Club. The debug view highlights the min/max cell voltage and temperatures which could be useful at a glance.
Something like this is what I had in mind for the pack visualization.
...
Title | User Story | Importance | Notes | ||
---|---|---|---|---|---|
Shared backend with Driver Display | The backend should be reusable for Driver Display | Must Have | This is critical, as our driver display currently is proposed to be a different frontend running on the Raspberry Pi. As such, this necessitates the use of a backend language that is going to be able to run on the lower powered Pi as well as our Desktop computers. | ||
Readable Summary | The overview GUI should be legible in full screen, with all the data above the fold. | Must Have | This is critical, since all the important information should be distilled into a form where they are available at a quick glance. | ||
Data Logging | All data should be logged to a database | Must Have | This is probably going to take some careful thought into table design in order to partition the tables correctly. Most of this will be for strategy purposes during the race, which will probably operate on a week's worth of data at most (realistically probably just the previous day). I can see the data being used for ad-hoc queries after the race, in order to explore various characteristics of our design. I think this has lower priority than getting the GUI complete, as we can always log to a file and then perform ETL afterwards. | ||
Local data storage | All data should, at the very least, be stored locally | Must Have | One thing we learned from ASC 2018 was that internet connectivity is going to be spotty. Verizon had coverage, but there were times when even that was bad. We can ETL into another datastore and perform ingestion whenever we have connectivity (or need to perform analytics), but IMO that's out of scope here. | ||
Backfill dashboard data with historical data | The backend should provide historical data to backfill graphs/visualizations when appropriate | Nice to Have | Occasionally, the XBee may disconnect, and so you'll have to backfill your dashboard's data with your stored data. Or if the app is closed, then you have historical data instead of a blank state. | ||
RAW data mode | There should be a way for someone to view the raw messages if the visualization is not working (or doesn't provide that information). | Should Have | There must be a way to view the raw data (aka "Console Mode") | ||
Speedometer reading | The GUI should display the speed | Must Have | We should have the option to switch between km/h and miles/h | ||
Cruise control setting | The GUI should display the currently set cruise control target | Must Have | |||
Average speed over interval | The GUI should have the option of displaying the average speed over an interval (say 15 minutes) | Should Have | I found this extremely useful during ASC 2018, when choosing our cruising speed during the hilly parts. It's not critical for telemetry, but it is pretty important for strategy. I found that typically, we would end up averaging slower than our target speed by 10-15 kmph, due to the variation in road grades. | ||
Battery pack module stats visualization | The GUI should display the battery pack module stats (voltage, temperature) in a visualization of the pack. If there is room on the main tab to display this, that would be ideal, otherwise it can go in a separate tab. | Should Have | Personally, I would like to see something like what Kentucky or Delft has implemented. Especially with our pack layout being split into a master/slave box, I think having the telemetry GUI representation reflect that layout would be really nice. I propose that we colour code the cells (like Kentucky), and then make the individual battery modules smaller (like Delft). This physical layout visualization isn't critical for telemetry/strategy, but it helped me understand hardware faults (on the AFE) as well as which areas of the pack required additional attention. I got around this during ASC 2018 with a separate spreadsheet that I marked out the pack layout in, which I would cross-reference against my data readings. | Total Pack Voltage | It can also help visualize the temperature distribution inside the pack. |
Total Pack Voltage | The GUI should display the total pack voltage | Must Have | This allows us to spot check SOC calculations and perform power calculations | ||
Battery pack module voltage | |||||
Battery pack module temperature | |||||
Maximum module voltage | The minimum/maximum module voltages are used to determine how unmatched modules affect our capacity when charging/discharging (the minimum module affects our capacity when discharging, and the maximum module affects our capacity when charging). | ||||
Minimum module voltage | The GUI should display the minimum module voltage. | Must Have | |||
Average module voltage | During ASC 2018, I manually calculated this as the average discounting any outliers (ie. module inputs exhibiting hardware faults, unbalanced modules). | ||||
Battery pack current | Must Have | ||||
Discharge resistors enabled | At FSGP/ASC 2018, there were some concerns as to whether or not the AFE could handle enabling more than 1 bleed resistor per AFE, given we had observed that the board would heat up a significant amount. A new board revision is supposed to fix this, but we should follow up with this requirement when that is completed. This would also allow provide us with an interface to remotely enable bleed resistors. This can probably go underneath a separate tab that isn't the Main Dashboard. | ||||
Motor Controller Temperature | The GUI should display the motor controller temperature | Must Have | The | ||
Motor Controller Status Flags | The motor controller gives us the following error flags:
And the following limit flags (which determine what control loop is limiting output):
Having this would have been critical for ASC 2018, where we dealt with a lot of issues with our motor controllers. | ||||
Motor Controller Bus Measurement | The GUI should display the motor controller bus current and bus voltage. | ||||
Motor Controller Velocity Measurement | |||||
Motor Controller Phase Current Measurement | Motor phase current used for the 3 phase BLDC motors | ||||
Motor Voltage Vector Measurement | |||||
Motor Current Vector Measurement | |||||
Motor BackEMF Measurement / Prediction | |||||
15 V & 1.65 V Voltage Rail Measurement | |||||
2.5V & 1.2V Voltage Rail Measurement | |||||
Fan Speed Measurement | |||||
Sink & Motor Temperature Measurement | |||||
Air In & CPU Temperature Measurement | |||||
Air Out & Cap Temperature Measurement | |||||
Odometer & Bus AmpHours Measurement | This is really useful in order to correlate telemetry data with road data. | ||||
Solar Sense (MPPT) input | Since we didn't have solar sense working at ASC 2018, we resorted to measuring the current entering the pack from the BMS (by coasting). This would be useful because:
|
...
Essentially some sort of dashboard. I think it would make the most sense to use a similar design as Nuna, and
Overview
The
Questions
- Taiping: How useful is having telemetry in both lead or chase? During ASC 2018, we regularly radio'd the chase car from the lead car asking about the pack's status in order to help with strategy (mainly cruising speed and where to stop for the night). It would be nice if everyone in the convoy had access to this information, but it could be challenging getting a good signal between all three cars.
- Taiping: Is it possible to also support something like PCAN-Explorer where it's easier to change visualizations on the go? Use case would be during testing/debugging if there's anything we want to focus on, we can plot or display them visually in real time. This would require us having a DBC for our CAN messages.
- Taiping: What's the plan for capturing telemetry data when the pi/router are still booting up? If it's the SD card then this SD card should be placed somewhere accessible.
- Taiping: How do we handle telemetry during charging? Do we need any extra displays or anything for the charger's information? It'd be nice to have the charger's messages available for debug somewhere along with what we detect on the J1772's proximity and control pilot.