Joined

·
1,270 Posts

Alrighty then let's continue. By the way I am doing this in my Rav4 which I have dubbed XV-1 which stands for Experimental Vehicle Number One. I also have a Camry dubbed XV-2. More on this one later. These are stock Toyota vehicles with stock Toyota ECU's.a list of pids on service 21 along with their scalars would be great.

Let's take a look at the Knock Feedback Value. Something initially very disheartening when going through the Canbus log file is that every single one of the Query/Response pairs for E1 (which is the presumed Knock Feedback PID) returns 0. [Correction added later: E1 is not related to knock]. For example:

02 21 E1 00 00 00 00 00

04 61 E1 00 00 00 00 00

The response is zero in this pair and it is zero in every other pair. How can this be? We know that Techstream is returning non-zero values for the Knock Feedback, so where in the heck is it getting them from. Marc you probably can guess the answer.

[Added Later: CORRECTION. It turns out that E1 has nothing to do with knock]

The answer is that the ECU packs the two knock parameters into a single response for the PID code B2. [correction was made here]. Previously, I alluded to the two "unused" parameters C and D in the standard OBD2 response,

06 61 B2 A B C D

In the previous post I've laid out how A and B are used to calculate the Knock Learn. So now I am going to demonstrate that C and D are in fact the factors for the Knock Feedback.

Again I match up the Canbus Log with the Techstream log. Looking specifically at the "MORE TIMING NEEDED EVENT," which is represented by the following time series corresponding to the jagged blue line in the previous chart under acceleration:

06 61 B2 0A 97 07 D0 00 ↔ -1.5

06 61 B2 0A 97 07 D7 00 ↔ -1.3

06 61 B2 0A 97 07 D7 00 ↔ -1.3

06 61 B2 0A 97 07 DE 00 ↔ -1.1

06 61 B2 0A 97 07 DE 00 ↔ -1.1

06 61 B2 0A 97 07 DE 00 ↔ -1.1

06 61 B2 0A 97 07 E5 00 ↔ -0.9

06 61 B2 0A 97 07 E5 00 ↔ -0.9

06 61 B2 0A 97 07 EC 00 ↔ -0.7

06 61 B2 0A A2 07 E1 00 ↔ -1

06 61 B2 0A A2 07 E1 00 ↔ -1

06 61 B2 0A A2 07 E1 00 ↔ -1

06 61 B2 0A A2 07 D0 00 ↔ -1.5

06 61 B2 0A A2 07 D0 00 ↔ -1.5

06 61 B2 0A A2 07 D0 00 ↔ -1.5

06 61 B2 0A A2 07 C8 00 ↔ -1.8

06 61 B2 0A A2 07 C1 00 ↔ -2

06 61 B2 0A A2 07 C8 00 ↔ -1.8

06 61 B2 0A A2 07 C1 00 ↔ -2

06 61 B2 0A A2 07 B2 00 ↔ -2.5

06 61 B2 0A A2 07 B9 00 ↔ -2.3

06 61 B2 0A A2 07 AA 00 ↔ -2.7

06 61 B2 0A A2 07 9B 00 ↔ -3.2

06 61 B2 0A A2 07 D0 00 ↔ -1.5

Fairly obvious, no? So to make this easier to understand, let's strip out C and D, and convert them to decimal:

(7;208) ↔ -1.5

(7;215) ↔ -1.3

(7;215) ↔ -1.3

(7;222) ↔ -1.1

(7;222) ↔ -1.1

(7;222) ↔ -1.1

(7;229) ↔ -0.9

(7;229) ↔ -0.9

(7;236) ↔ -0.7

(7;225) ↔ -1

(7;225) ↔ -1

(7;225) ↔ -1

(7;208) ↔ -1.5

(7;208) ↔ -1.5

(7;208) ↔ -1.5

(7;200) ↔ -1.8

(7;193) ↔ -2

(7;200) ↔ -1.8

(7;193) ↔ -2

(7;178) ↔ -2.5

(7;185) ↔ -2.3

(7;170) ↔ -2.7

(7;155) ↔ -3.2

(7;208) ↔ -1.5

The correlation is very clear but the one little issue we have here (that I didn't mention before) is that Techstream does not provide sufficient precision for its numbers and I had to wrestle with this a little bit for the previous PID. Or maybe it does but I don't know how to get it.

Regardless once again we posit an equation of the form

PID = x * C + y * D + z

And we have more than enough data points to solve for x, y, and z. So I'd like to see a simple way of solving this, it would help me going forward with the rest of these PID's.

And with this one solved we have the equation for PID E1 which is Knock Feedback Value. Voila.

And this is very very sneaky on the part of Toyota to pack multiple parameters into a single response. But you ain't seen nothing yet. You just wait until we get to vvti.

And by the way, I also alluded previously to the identifier 06 as opposed to 04 for the response. I believe that this identifier flags a multiple-parameter packed response.