[Ovmsdev] Tesla Roadster VDS Alerts

Mark Webb-Johnson mark at webb-johnson.net
Sun Mar 10 12:07:30 HKT 2013


I've got enough data on this to know what is going on now.

VDS alert messages are definitely on ID#0x100 B1=0x93.
B1 = 0x93
B2 = On, Off, Severity, etc, indication
B3,B4  = Error code
B5,B6,B7,B8 = Data

Regarding B2, I've seen:
0x01 = 00000001b = Show Alert
0x00 = 00000000b = Cancel Alert
0x05 = 00000101b = Show Alert
0x04 = 00000100b = Cancel Alert
0x15 = 00010101b = Show Message
0x14 = 00010100b = End Message

I'm assuming that the least significant bit is set when the alert is raised, and cleared when it is resolved. The rest is probably a severity level, or something like that.

Examples:

1) USB log transfer

>         20.3270 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         27.0199 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         34.0614 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         40.7682 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         47.4682 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         54.7250 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         61.4526 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         61.7035 100 93 15 19 00 00 00 00 00    ->VDS (message to VDS 93)
>         68.1515 100 93 15 19 00 01 00 00 00    ->VDS (message to VDS 93)
>         74.8449 100 93 15 19 00 03 00 00 00    ->VDS (message to VDS 93)
>         81.5926 100 93 15 19 00 05 00 00 00    ->VDS (message to VDS 93)
>         88.3173 100 93 15 19 00 06 00 00 00    ->VDS (message to VDS 93)
>         95.0345 100 93 15 19 00 08 00 00 00    ->VDS (message to VDS 93)
>        101.7832 100 93 15 19 00 0A 00 00 00    ->VDS (message to VDS 93)
>        108.5329 100 93 15 19 00 0B 00 00 00    ->VDS (message to VDS 93)
>        115.2333 100 93 15 19 00 0D 00 00 00    ->VDS (message to VDS 93)
>        121.9544 100 93 15 19 00 0E 00 00 00    ->VDS (message to VDS 93)
> 		. . . . . . . . 
>        578.7234 100 93 15 19 00 61 00 00 00    ->VDS (message to VDS 93)
>        585.4489 100 93 15 19 00 62 00 00 00    ->VDS (message to VDS 93)
>        592.1719 100 93 15 19 00 63 00 00 00    ->VDS (message to VDS 93)
>        599.1091 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        605.8596 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        612.5599 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        619.2644 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        626.0780 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        632.7609 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        636.6933 100 93 14 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        639.7882 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)


2) Charge interrupt (breaker trip)

>         93.7174 100 93 01 BA 03 00 00 20 00    ->VDS (message to VDS 93)
>         98.7568 100 93 01 BA 03 00 00 20 00    ->VDS (message to VDS 93)
>        100.7281 100 93 00 BA 03 00 00 20 00    ->VDS (message to VDS 93)


3) Drive-time alert

>         40.2862 100 93 05 78 03 00 01 00 00    ->VDS (message to VDS 93)
>         46.9766 100 93 05 78 03 00 01 00 00    ->VDS (message to VDS 93)
>         53.6772 100 93 05 78 03 00 01 00 00    ->VDS (message to VDS 93)
>         60.3577 100 93 05 78 03 00 01 00 00    ->VDS (message to VDS 93)
>         63.2089 100 93 04 78 03 00 00 00 00    ->VDS (message to VDS 93)


From the car firmware point of view, I'm going to add this as a PUSH message of type 'E' (for 'error'). Payload will be error number, vehicle type, on/off flag, followed by data (one or more, comma separated). This will be a generic facility, not Tesla Roadster specific.

I'm going to store a last-error-generated number, as a global, as well as an alert-error-number request for notification. The last-error-generated will be used to support the on/off (so =0 is no error and <>0 will be currently handling an error). I'll do this all in net.{h,c} so all the vehicle has to do is raise/clear the alert.

The server will look up the code in a lookup-table (per vehicle id), held on the server, to generate a message. It will then log these into historical data as well as raise a normal push notification alert.

I'm updating the documentation for this as well.

Regards, Mark.

On 3 Mar, 2013, at 5:01 PM, Mark Webb-Johnson <mark at webb-johnson.net> wrote:

> 
> I also went looking for a way of determining when a USB log transfer had completed, in my Tesla Roadster today. This has been asked for some time ago, with a view of reminding the user to download their logs from the car before they get rotated.
> 
> Along the way, I seem to have found the VDS alert mechanism.
> 
> Apologies for the blurry-cam image, but this is what it looks like when you download log files to USB stick on the Tesla Roadster:
> 
> <PastedGraphic-2.tiff>
> 
> The interesting parts are the ID and Data fields. The ID identifies the screen type (so 25 is "Memory stick transfer in progress") and Data is id-specific. For ID 25, it is the percentage complete (so counting up from 0x00 to 0x64).
> 
> Looking at my captured logs for this, I find something sticking out:
> 
>         20.3270 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         27.0199 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         34.0614 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         40.7682 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         47.4682 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         54.7250 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         61.4526 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
>         61.7035 100 93 15 19 00 00 00 00 00    ->VDS (message to VDS 93)
>         68.1515 100 93 15 19 00 01 00 00 00    ->VDS (message to VDS 93)
>         74.8449 100 93 15 19 00 03 00 00 00    ->VDS (message to VDS 93)
>         81.5926 100 93 15 19 00 05 00 00 00    ->VDS (message to VDS 93)
>         88.3173 100 93 15 19 00 06 00 00 00    ->VDS (message to VDS 93)
>         95.0345 100 93 15 19 00 08 00 00 00    ->VDS (message to VDS 93)
>        101.7832 100 93 15 19 00 0A 00 00 00    ->VDS (message to VDS 93)
>        108.5329 100 93 15 19 00 0B 00 00 00    ->VDS (message to VDS 93)
>        115.2333 100 93 15 19 00 0D 00 00 00    ->VDS (message to VDS 93)
>        121.9544 100 93 15 19 00 0E 00 00 00    ->VDS (message to VDS 93)
>        128.6547 100 93 15 19 00 10 00 00 00    ->VDS (message to VDS 93)
>        135.3657 100 93 15 19 00 11 00 00 00    ->VDS (message to VDS 93)
>        142.0550 100 93 15 19 00 13 00 00 00    ->VDS (message to VDS 93)
>        148.7466 100 93 15 19 00 14 00 00 00    ->VDS (message to VDS 93)
>        155.4689 100 93 15 19 00 16 00 00 00    ->VDS (message to VDS 93)
>        162.1574 100 93 15 19 00 17 00 00 00    ->VDS (message to VDS 93)
>        168.8772 100 93 15 19 00 19 00 00 00    ->VDS (message to VDS 93)
>        175.5805 100 93 15 19 00 1A 00 00 00    ->VDS (message to VDS 93)
>        182.3072 100 93 15 19 00 1C 00 00 00    ->VDS (message to VDS 93)
>        189.0204 100 93 15 19 00 1D 00 00 00    ->VDS (message to VDS 93)
>        195.7380 100 93 15 19 00 1F 00 00 00    ->VDS (message to VDS 93)
>        202.4180 100 93 15 19 00 20 00 00 00    ->VDS (message to VDS 93)
>        209.1086 100 93 15 19 00 21 00 00 00    ->VDS (message to VDS 93)
>        215.8086 100 93 15 19 00 23 00 00 00    ->VDS (message to VDS 93)
>        222.5388 100 93 15 19 00 24 00 00 00    ->VDS (message to VDS 93)
>        229.2495 100 93 15 19 00 25 00 00 00    ->VDS (message to VDS 93)
>        235.9896 100 93 15 19 00 27 00 00 00    ->VDS (message to VDS 93)
>        242.7136 100 93 15 19 00 28 00 00 00    ->VDS (message to VDS 93)
>        249.4103 100 93 15 19 00 29 00 00 00    ->VDS (message to VDS 93)
>        256.1020 100 93 15 19 00 2A 00 00 00    ->VDS (message to VDS 93)
>        262.7812 100 93 15 19 00 2C 00 00 00    ->VDS (message to VDS 93)
>        269.4841 100 93 15 19 00 2D 00 00 00    ->VDS (message to VDS 93)
>        276.2004 100 93 15 19 00 2E 00 00 00    ->VDS (message to VDS 93)
>        282.9480 100 93 15 19 00 30 00 00 00    ->VDS (message to VDS 93)
>        289.7051 100 93 15 19 00 31 00 00 00    ->VDS (message to VDS 93)
>        296.3843 100 93 15 19 00 32 00 00 00    ->VDS (message to VDS 93)
>        303.1348 100 93 15 19 00 34 00 00 00    ->VDS (message to VDS 93)
>        309.8240 100 93 15 19 00 35 00 00 00    ->VDS (message to VDS 93)
>        316.5296 100 93 15 19 00 36 00 00 00    ->VDS (message to VDS 93)
>        323.2851 100 93 15 19 00 37 00 00 00    ->VDS (message to VDS 93)
>        330.0081 100 93 15 19 00 38 00 00 00    ->VDS (message to VDS 93)
>        336.7280 100 93 15 19 00 3A 00 00 00    ->VDS (message to VDS 93)
>        343.4655 100 93 15 19 00 3B 00 00 00    ->VDS (message to VDS 93)
>        350.1895 100 93 15 19 00 3C 00 00 00    ->VDS (message to VDS 93)
>        356.8991 100 93 15 19 00 3D 00 00 00    ->VDS (message to VDS 93)
>        363.6032 100 93 15 19 00 3E 00 00 00    ->VDS (message to VDS 93)
>        370.3090 100 93 15 19 00 3F 00 00 00    ->VDS (message to VDS 93)
>        377.0695 100 93 15 19 00 40 00 00 00    ->VDS (message to VDS 93)
>        383.8307 100 93 15 19 00 41 00 00 00    ->VDS (message to VDS 93)
>        390.5810 100 93 15 19 00 42 00 00 00    ->VDS (message to VDS 93)
>        397.2783 100 93 15 19 00 43 00 00 00    ->VDS (message to VDS 93)
>        404.0252 100 93 15 19 00 45 00 00 00    ->VDS (message to VDS 93)
>        410.7490 100 93 15 19 00 46 00 00 00    ->VDS (message to VDS 93)
>        417.4515 100 93 15 19 00 47 00 00 00    ->VDS (message to VDS 93)
>        424.1598 100 93 15 19 00 48 00 00 00    ->VDS (message to VDS 93)
>        430.8664 100 93 15 19 00 49 00 00 00    ->VDS (message to VDS 93)
>        437.5613 100 93 15 19 00 4A 00 00 00    ->VDS (message to VDS 93)
>        444.3118 100 93 15 19 00 4B 00 00 00    ->VDS (message to VDS 93)
>        451.0231 100 93 15 19 00 4D 00 00 00    ->VDS (message to VDS 93)
>        457.7436 100 93 15 19 00 4E 00 00 00    ->VDS (message to VDS 93)
>        464.4456 100 93 15 19 00 4F 00 00 00    ->VDS (message to VDS 93)
>        471.1450 100 93 15 19 00 50 00 00 00    ->VDS (message to VDS 93)
>        477.8440 100 93 15 19 00 51 00 00 00    ->VDS (message to VDS 93)
>        484.5432 100 93 15 19 00 52 00 00 00    ->VDS (message to VDS 93)
>        491.2797 100 93 15 19 00 53 00 00 00    ->VDS (message to VDS 93)
>        497.9838 100 93 15 19 00 54 00 00 00    ->VDS (message to VDS 93)
>        504.7310 100 93 15 19 00 55 00 00 00    ->VDS (message to VDS 93)
>        511.4651 100 93 15 19 00 57 00 00 00    ->VDS (message to VDS 93)
>        518.1755 100 93 15 19 00 58 00 00 00    ->VDS (message to VDS 93)
>        524.9232 100 93 15 19 00 58 00 00 00    ->VDS (message to VDS 93)
>        531.6609 100 93 15 19 00 59 00 00 00    ->VDS (message to VDS 93)
>        538.3964 100 93 15 19 00 5A 00 00 00    ->VDS (message to VDS 93)
>        545.1293 100 93 15 19 00 5B 00 00 00    ->VDS (message to VDS 93)
>        551.8466 100 93 15 19 00 5D 00 00 00    ->VDS (message to VDS 93)
>        558.5722 100 93 15 19 00 5E 00 00 00    ->VDS (message to VDS 93)
>        565.2908 100 93 15 19 00 5F 00 00 00    ->VDS (message to VDS 93)
>        572.0311 100 93 15 19 00 60 00 00 00    ->VDS (message to VDS 93)
>        578.7234 100 93 15 19 00 61 00 00 00    ->VDS (message to VDS 93)
>        585.4489 100 93 15 19 00 62 00 00 00    ->VDS (message to VDS 93)
>        592.1719 100 93 15 19 00 63 00 00 00    ->VDS (message to VDS 93)
>        599.1091 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        605.8596 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        612.5599 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        619.2644 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        626.0780 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        632.7609 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        636.6933 100 93 14 19 00 64 00 00 00    ->VDS (message to VDS 93)
>        639.7882 100 93 00 FF FF 00 00 00 00    ->VDS (message to VDS 93)
> 
> I found that by looking for the ID 25. Didn't find it, so tried 25 (decimal) = 0x19 (hex).
> 
> A decode of that would be:
> 
> 612.5599 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
> 
> ID: 100 B1=93 VDS alert notification
> 
> B2 is some indication of whether this is 'opening' or 'closing'
> B3(LSB),B4(MSB) is ID
> B5(LSB),B6,B7,B8(MSB) is data
> 
> So, I'm happy. I can look for "100 93 15 19 00 64 00 00 00" as an indication that someone did a log transfer and it got to 100%. Now, all I need is to work-out how long until the logs rotate?
> 
> Tom/Whoever: do you have anything good for that? I believe it is drive time based, which may be tricky?
> 
> Another, slightly concerning thing, is I don't know who transferred the logs. If it went to the service dept, they routinely pull the logs, and that would show up in the same way. Hmmm. Anyway, better than nothing.
> 
> But, what was interesting, is I then wondered where else '100 93' appears (in particular without the idle condition '100 93 00 FF FF'). Here's what I found:
> 
> $ fgrep -r '100 93' *|grep -v '93 00 FF FF'
> 20120218.charge/20120218.charge.breakerstop.txt:        73.1820 100 93 01 BA 03 00 00 20 00    ->VDS (message to VDS 93)
> 20120218.charge/20120218.charge.breakerstop.txt:        76.2779 100 93 00 BA 03 00 00 20 00    ->VDS (message to VDS 93)
> 20130303-vehiclelogtousb/vehiclelogs.txt:        61.7035 100 93 15 19 00 00 00 00 00    ->VDS (message to VDS 93)
> 20130303-vehiclelogtousb/vehiclelogs.txt:        68.1515 100 93 15 19 00 01 00 00 00    ->VDS (message to VDS 93)
> 20130303-vehiclelogtousb/vehiclelogs.txt:        74.8449 100 93 15 19 00 03 00 00 00    ->VDS (message to VDS 93)
> 20130303-vehiclelogtousb/vehiclelogs.txt:        81.5926 100 93 15 19 00 05 00 00 00    ->VDS (message to VDS 93)
> 20130303-vehiclelogtousb/vehiclelogs.txt:        88.3173 100 93 15 19 00 06 00 00 00    ->VDS (message to VDS 93)
>> 20130303-vehiclelogtousb/vehiclelogs.txt:       619.2644 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
> 20130303-vehiclelogtousb/vehiclelogs.txt:       626.0780 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
> 20130303-vehiclelogtousb/vehiclelogs.txt:       632.7609 100 93 15 19 00 64 00 00 00    ->VDS (message to VDS 93)
> 20130303-vehiclelogtousb/vehiclelogs.txt:       636.6933 100 93 14 19 00 64 00 00 00    ->VDS (message to VDS 93)
> charge.20111108.txt:         1.2849 100 93 05 8D 04 20 00 00 00    ->VDS (message to VDS 93)
> charge.20111108.txt:         8.0259 100 93 05 8D 04 20 00 00 00    ->VDS (message to VDS 93)
> charge.20111108.txt:        13.1271 100 93 04 8D 04 20 00 00 00    ->VDS (message to VDS 93)
> charge.20111108.txt:      1242.8707 100 93 05 A6 03 02 00 00 00    ->VDS (message to VDS 93)
> charge.20111108.txt:      1244.8822 100 93 04 A6 03 02 00 00 00    ->VDS (message to VDS 93)
> trip.20111108.txt:         2.9815 100 93 05 8D 04 20 00 00 00    ->VDS (message to VDS 93)
> trip.20111108.txt:         9.7319 100 93 05 8D 04 20 00 00 00    ->VDS (message to VDS 93)
> trip.20111108.txt:        10.0843 100 93 04 8D 04 20 00 00 00    ->VDS (message to VDS 93)
> 
> A few of those stand out like sore thumbs.
> 
> 20120218.charge.breakerstop.txt
> 
> Note in the log file there is:
> 71.3999 NOTE                                 A second or two before breaker stop
> 73.1820 100 93 01 BA 03 00 00 20 00    ->VDS (message to VDS 93)
> 
> Conclusion: ID 0x03BA data 0x00002000 is 'breaker tripped'. Or lost line sync, or whatever the message is (I forget).
> 
> 20130303-vehiclelogtousb/vehiclelogs.txt
> 
> This is my vehicle log dump to USB. ID 0x0019, data is percentage complete.
> 
> charge.20111108.txt
> 
> No notes on this. It appears to be a log testing various charging scenarios.
> The ID was 0x048D and data 0x00000020.
> Later on we get another ID 0x03A6 and data 0x00000002.
> 
> trip.20111108.txt
> 
> No notes. Just a drive.
> The ID was 0x048D and data 0x00000020.
> 
> My conclusion is that '100 93' is an instruction to the VDS to tell it to display an error screen to the user. The textual message is derived from the error code (probably a lookup table in the VDS). I am not sure how these messages are 'cleared'. You can tap-to-dismiss on the VDS, which removes the alert but leaves a "(!)" on the VDS to show the alert is still a problem. That "(!)" goes away when the cause of the alert goes away. Somehow this is encoded in that B2. We could reverse the textual messages from ID by spoofing the message and seeing what the VDS displays,, but that would mean sending 65,535 errors to my VDS and I'm not comfortable doing that :-)
> 
> I did find a partial listing:
> 
> http://www.teslamotorsclub.com/showwiki.php?title=Roadster
> 
> (reproduced here for historical purposes)
> 
> Roadster VDS Messages
> A list of the VDS messages which can appear and if possible, some advice to the owner who sees them. The VDS can operate in Standard or Debug mode. You enter Debug mode either by tapping the VDS six times and entering a special code, or by letting MPT get in your car.
> 
> ID	Text under normal circumstances	Debug text (not normally displayed)	Notes / Suggestions
> 25	Memory Stick transfer in progress. ...		Car is downloading logs to USB memory stick.
> 269		BSM: Negative contactor/economizer stuck low	
> 287	Power train Problem Service Required		
> 409	TPMS: Hardware Error		Tire pressure cannot be monitored reliably.
> 604		ESS: Low State of charge: power limiting in effect	You need to recharge
> 936	Charging Problem		
> 937	Charge Problem Extension Cord Detected		
> 954	Line Voltage Lost Sync	DMC FW: Line Voltage Lost Sync or UnderFrequency Fault	Bad power; try lowering the current and restarting
> 974		DMC FW: Pole Current Error Fault	
> 981		DMC FW: Bad State Transition Fault	Dog tripped over charging cable. Discuss.
> 960		DMC FW: VBrickMax versus VBattery Error fault	You don't want to know.
> 1092	Do not plug in charge cable while driving		Key left in ignition while trying to plug in?
> 1144	Powertrain Problem Service Required		Call your Tesla Shop!
> 1146		DMC Motor Fan Problem	Low fan speed. Only appears in debug mode? [1].
> 1170	Tow Mode is not available while car is on		
> ?	External Charger Problem	?	UMC's red fault light blinking. Unplugged car & UMC, then replugged and all OK.
> 428	12V Battery Service Required	?	Turned out battery fuse was missing.
> 1103	ABS & Traction Control Problems. Service Required.	?	Pulling out ignition key and waiting until car shutdown (15 minutes) cleared it. Tesla couldn't find issue.
> [1] I only ever saw this message in debug mode, and it was coming up a lot (several times per hour of driving). It completely stopped when I left debug mode. Not sure if this is coincidence.
> 
> and 954 (0x083A) and 25 (0x0019) match two of the ones in my logs.
> 
> Still some work to do (in particular to determine how the message is cleared/dismissed). But, how cool would it be to have these screens pop-up in the Apps as well? Sending them back as historical data, to record the event time, would also be helpful.
> 
> Regards, Mark.
> 
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.teslaclub.hk
> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.teslaclub.hk/pipermail/ovmsdev/attachments/20130310/4eedc598/attachment-0001.html>


More information about the OvmsDev mailing list