This was posted by wk057 in a SUA thread in the Model 3 forum. I thought it had a lot of good information.
...Tesla's side for sensing this goes even further to improve safety. They have two independent systems monitoring and logging the pedal sensors, isolated from one another. They both log the read position from both sensors. If anything doesn't exactly agree, the car doesn't move, gives an error, and reduces power to the point where you can barely do 0-60 in a minute....
...Going even further, the throttle map for acceleration is super accurate. It can interpolate 2^16 throttle positions with reasonable accuracy... which is impressive, since the ADC is technically something like 10-bit, and we're working with a throw distance of maybe a couple of inches at the end of the pedal. (Edit: Correction/clarification: The crosscheck ADC is 10-bit, the primary is actually 16-bit and doubled for redundancy on each input...so the throttle position is actually read 8 times in hardware for comparison.)....
I have seen this statement by wk057 before, and have asked wk057 for a clarification of it in a personal message. But he has not responded. Therefore, I will ask again here.
If one reads wk057’s document entitled “
Tesla Model S CAN Bus Deciphering”, then one finds the following:
CAN3, ID 0x0154
Description: Rear drive unit measurement info
Value descriptions:
○ pedal_position_sensor_A = byte2 * 0.4
○ pedal_position_sensor_B = byte3 * 0.4
■ 0% to 102%
■ Max observed is 100%
■ Redundant potentiometers in pedal
CAN3, ID 0x0106
Description: Rear drive unit info
Value descriptions:
○ pedalPos = byte6 * 0.4
■ 0% to 102%
■ Max observed is 100%
Since the description of CAN3 ID 0x0154 is “rear drive measurement info”, it looks the two values of pedal_position_sensor_A and pedal_position_sensor_B are the 16-bit digitized outputs of the two pedal position sensors. And since the description of CAN3 ID 0x0106 is “rear drive unit info”, it looks like the value of pedalPos is the 16-bit input to the throttle map derived from the two pedal position sensors. All three of these parameters are 100 Hz data. If this is true, then I have the following questions:
1) why is each pedal position sensor output cross-check sampled twice to get two 10-bit cross-check values for each position sensor? After all, merely having a second sensor output to check against the primary sensor provides redundancy.
2) what are the CAN bus ID’s for the four 10-bit cross-check values of the two sensor outputs? If they are not accessible on a CAN bus, then how do we know they exist?
3) Are the 10-bit cross-check values also 100 Hz data?
4) Does a time-filtered version of pedalPos also exist? (Wk057’s statement above mentions 8 read values. This probably consists of one 16-bit value and two 10-bit cross-check values for each of the two sensors, giving 6 read values. The pedalPos value at ID 0x0106 gives a seventh read value. So an eighth read value is needed. I have seen wk057 mention elsewhere that a time-filtered version of pedalPos may also exist).
5) If a time-filtered version of pedalPos exists, what is the CAN bus ID for this parameter? If it is not accessible on the CAN bus, how do we know it exists?
6) How often do values of the time-filtered version of the pedalPos parameter appear on the CAN bus?
7) Finally, which of these 8 parameters appear in the log file stored in the SD card and read out to the Tesla mothership over the 3G cellular network? What is the data rate of each of the parameters in the log file? (i.e., 1 Hz, 10 Hz, 100 Hz, or each time they change?)