Comer352L / FreeSSM

GNU General Public License v3.0
214 stars 67 forks source link

Adjustment of AWD Torque #46

Open ajl236 opened 3 years ago

ajl236 commented 3 years ago

This is one of the settings under FreeSSM TCU settings. I didn't see something like this in the Subaru SSM-III documentation. What does it do please? Is it applicable to 4EAT & 5EAT boxes ?

Comer352L commented 3 years ago

Are you talking about adjustment value "Correction of AWD Clutch Torque" ? I'm not surprised that it is not mentioned in the SSM-III documentation, because it's one of the secret/hidden "features". ;-)

I can't give you any better explanation than the title already does. If it shows up in the transmission dialog, your TCU supports it.

ajl236 commented 3 years ago

Hi @Comer352L yes "Correction of AWD Clutch Torque" did show up on the TCU dialog. However attempting to change these (or any other ECU adjustment) values from FreeSSM is rejected with this error message. "Communication Error" "No or invalid answer from Control Unit"

I'm building the master branch of FreeSSM with Tactrix OpenPort 2.0 on 64-bit Windows 10, other FreeSSM features work well.

image

Comer352L commented 3 years ago

Thanks for your feedback.

Can you please provide the following information: 1) model, year, market, engine tc. 2) a dump file of the ECU data: With the interface connected and ignition switched on, start FreeSSM and press the keys Ctrl+Alt+Return in the main menu (not in the TCU dialog). After a few seconds, a file called dump.dat should appear in your home directory. 3) a log file of the adjustment attempt:

I'm not too optimistic, but let's see what's going on...

ajl236 commented 3 years ago

Thanks, hopefully this helps. 1) 3.0R Outback, 2008 JDM (RHD, imported 2nd hand to NZ from Japan) ,EZ30R engine, 5EAT transmission 2) Found the dump4.dat file attached (please remove .txt extension) 3) debug.log attached - I tried to make a +1Nm adjustment to "Correction of AWD Clutch Torque"

dump4.dat.txt debug.log

Comer352L commented 3 years ago

The TCU refuses to save the new value with reason code 0x22, which means "conditions not correct or request sequence error". We've already seen this behavior in issue #42.

However, there might be a workaround: Your ECU and TCU seems to support the old non-CAN protocol variant, too. Replace file src/ControlUnitDialog.cpp with the one attached (change .txt to .cpp) and recompile + retry. ECU and TCU should now connect via ISO-14230 (non-CAN) instead of ISO-15765 (CAN). Check the protocol field at the bottom of the control unit dialog for confirmation. I'm pretty sure the adjustment values should now work as expected.

ajl236 commented 3 years ago

I appreciate your suggestion which had some success, albeit with quirks although that could be something I'm doing.

  1. I recompiled with the ControlUnitDialog.cpp file provided in your message above
  2. The TCU form status bar now shows SSM2 / ISO-14230 whilst connected with Tactrix Openport 2.0
  3. Tried a few small changes to Correction of AWD Clutch Torque.
  4. It seems negative or two digit positive values are rejected by the TCU so FreeSSM shows "No or invalid answer from the control unit"
  5. It looks like there is a range TCU accepts as the values persist after restarting both FreeSSM and turning the car off and on. However FreeSSM always shows "The Control Unit didn't accept the new value !" after these changes. Also in this situation once this error pop up message is closed the TCU adjustments screen shows different current values for this value until it is closed and reopened for example 257Nm or 514Nm.

Please find debug.log here, today I left this adjustment at 2Nm so will try and get a feel for any difference in TCU operation out on the road. Also wondering about the range of adjustment values, are they provided by the TCU ? In this case the FreeSSM number selector allows a range of -40Nm to +40Nm but I could only apply a subset of that per 4. above. Thanks again.

Comer352L commented 3 years ago

Congratulations, you've stumbled over a bug. :/ "Correction of AWD Clutch Torque" is the only 16bit adjustment value and apparently hasn't been tested/used for a while. Fixed in master, please update.

Concerning the adjustment limits: Control units do not report the limits they support/accept in advance. According to my tests (with other adjustment values), limits may indeed differ between controllers (, software versions, ...). If the selected value exceeds the supported max/min value, controllers may behave differently (do not respond, reject the request or silently use the closest possible value, with or without reporting the atcually used value back). Please also note that further constraints may apply to adjustment values. ECU idle speed adjustment for example does not have any effect with some ECUs before a minimum cooling temperature has been reached.

ajl236 commented 3 years ago

I applied the change and the dialog works well. For my 5-AT (aka 5EAT) transmission the accepted range for this adjustment value is 0-5Nm with other values rejected. The AWD clutch sits forward of the centre diff and is applied to increase power to the rear when slippage or potential slip is detected. With this value set higher on the road there seems to be more of a push from the drive train whilst cruising so I can confirm that it does have an effect. Thanks FreeSSM this is fascinating.

image

ajl236 commented 3 years ago

One more question @Comer352L :) I notice there's no title text definition in the code for "Correction of AWD Clutch Torque" or other SSM2 measuring blocks & adjustments. Is the SSM2 title text wording actually defined in the Subaru TCU in this case ?