Comer352L / FreeSSM

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

Question: Can FreeSSM reset EGR learned angle. #44

Open ieb opened 4 years ago

ieb commented 4 years ago

I have been using a windows version of FreeSSM (1.2.5) which works perfectly and detected a problem with an EGR valve which was replaced with a new one. However I haven't found a way to reset the learned position sensor voltage, hence after 2 test drives the car reports a P0409 diagnostic code due to the closed voltage of the position sensor not matching the stored value as this stored value was for the broken/stuck unit.

My question is can FreeSSM reset this value so that the ECU re-learns the value. The Subaru manual (http://jdmfsm.info/Auto/Japan/Subaru/Legacy_Outback/2008/Legacy%202008/index.html) has a procedure for force compulsory learning, but I have been unable to find anything other than the official tool that will do it, and that costs more than the car is worth.

Any pointers would be greatly appreciated. If it's something FreeSSM doesn't do, but could I'd be happy to try and do a PR.

ieb commented 4 years ago

I looked through the code and the documentation for SSM1/2/3 her and in Romraider and I think FreeSSM cant do this. My ECU responds with bytes that indicate only the idle speed can be adjusted. Performing compulsory learning seems to be a proprietary SSM command secret to Subaru and in the $$ SSM. I failed to find anything to say the address in the ECU where this value or flag is stored.

I took the old and new EGR apart. The internals are different. Both have a magnetic position sensor of different designs. The replacement has a HAL3725 chip on it (https://www.micronas.tdk.com/en/system/files/downloads/files/HAL371x_HAL372x_HAL%20373x_Programmable_2D_Position_Sensors_with_Arbitrary_Output_Function_1DSH_final.pdf) and a diametrically magnetised disk magnet.

The original is fully encased with circular magnets and the chip is burried.

I guess I could try and adjust the magnet position to make the new valve voltage at fully closed match the old voltage, but that looked hard. So...

The old ERG has a plastic intermediate gear wheel running on a shaft which had become slightly stiffer. After cleaning and checking it returned to zero every time I re-installed the old ERG and so far no repeating P0409 or P0403 codes (P0403 was the original fault code). The ERG with plastic intermediate gear is also a lot quieter than the replacement with a metal intermediate gear. I can barely hear it go through the shutdown cycle that checks the zero opening position when the engine is turned off.

I know FreeSSM issues is not really the right place to post this information, but it might help someone else getting a repeated P0409 after 3 engine starts. (Lots of posts on Subaru sites from frustrated DIYers replacing multiple EGRs till they strike it lucky with a match)

If FreeSSM can reset the values and complete the learning on the ERG, then please say. If there is any way to do this with any scan tool other than the $$ SSM, then I'd like to know.

Original EGR valve Original_Sensor Original_Gears

Replacement ERG Valve (not Subaru part, matching part number) Replacement_Sensor Replacement_Gears

Comer352L commented 4 years ago

Is this a Diesel engine ? If you are looking for the "EGR Valve Control" under "System Operation Check Mode", then - sorry - this has not been implemented yet. :( I'm pretty sure I have figured out the flag bit(s) that tell the SSM that this procedure is supported by the ECU. But I never came around taking a closer look at the learning procedure itself. -ENOTIME.

ieb commented 4 years ago

Yes its a Diesel engine. I measured the voltages output on the EGR Valve on the bench with it powered with 5V and found the signal voltage for the valve open and closed to be different from the original EGR Valve, hence the new valve isn't accepted by the car.

The old valve still works, but jams. I take it out, clean it, including the piston ring like seal on the valve and it works for about 200 miles before jamming again. It could be the shaft. I think I have 3 options.

  1. dismantle every 200 miles.
  2. buy replacement valves until I hit it lucky and get one with the same voltage output.
  3. find someone with a official SSM to get the ECU to relearn the valve sensor voltages.

It could be that hit it very unlucky and got the 1 in 1000 bad replacement EGR valve.

I am assuming that when replacing an EGR the ECU must learn the new voltage and there is no other way of making that happen other than to trigger it with SSM (ideally FreeSSM).

I would be happy to test for you, or try and patch the code if you have any pointers.

ieb commented 4 years ago

Last night I put the replacement EGR back in, and observed the measuring blocks for requested & target angle, %duty cycle and learning. The replacement EGR reports matches in requested & target which IIUC, only indicates that the ECU thinks its achieving the correct angle. Duty cycle was at 11% when static. I did however noticed that if the revs were changed and the EGR angle was allowed to move about, the learning blipped from completed to learning and back again when the angle dropped below 0. Which might indicate the ECU adjusts the EGR angle based of feedback from other sensors while it is running and does not require to be forced to learn. Initially the resting angle was about -5 but after 2 engine runs (not driving) it was on 0.

If this is the case, then perhaps having EGR Valve Control is a nice to have and the EGR can be checked with measuring blocks ?

The old EGR showed 100% duty cycle when reporting P0403s and P0409s when the valve got stuck. If the new EGR reports a code again I will put a scope on the 12v and 5v lines and start looking for noise, breaks etc.

Comer352L commented 4 years ago

Sorry, I neither have a Diesel at hands nor a second EGR valve for testing. Someone needs to find out how it works (e.g. by creating a USB log from the learning process with the SSM or another tester). Then it shouldn't be too difficult to add support for it to FreeSSM.

L1800Turbo commented 4 years ago

Might be able to get in touch with a diesel some time. Is it possible to relearn EGR with the SSM3? I'm not confident with the newer models.

Comer352L notifications@github.com schrieb am Mi., 25. Nov. 2020, 18:04:

Sorry, I neither have a Diesel at hands nor a second EGR valve for testing. Someone needs to find out how it works (e.g. by creating a USB log from the learning process with the SSM or another tester). Then it shouldn't be too difficult to add support for it to FreeSSM.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Comer352L/FreeSSM/issues/44#issuecomment-733833000, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQAVSZHIPABCEKKPPUXOSLSRU2KVANCNFSM4QI4Z6LA .

Comer352L commented 4 years ago

Yes it is, but the naming ("EGR Valve Control') is a bit misleading. I have never heard of anyone doing it before, but the first Diesels are getting older...

gsapic commented 2 years ago

Hi! I see that this is an old thread so I was wondering if this was solevd or not... I have a 2012 Forester 2.0D and after replacing the EGR I need to do the calibration process. The local dealer seems a bit ticked off that I didn't come to them for a replacement so I am trying to do this part myself as well.

FloFaber commented 2 years ago

Same here. I have a 2011 Impreza 2.0D and would like the ECU to relearn the EGR voltages because of code P0409 after replacing the EGR. I can delete the Error but every 2-3 start ups it comes again.

akrotor commented 2 years ago

I'm in the same boat with a 2010 Forester 2.0D

Hartvik90 commented 1 year ago

In the same boat here also, 2009 Forester Diesel. Wish list for us Subaru Diesel hobby-mechanics:

The only option for us is an expensive VXdiag adapter and pirate version of SSMIII. Or travel to the Subaru dealership with the genuine SSMIII,

Charlie999 commented 6 months ago

Hi, just replaced my EGR and wondering if there's any update on this. If not, I do have access to a diesel vehicle (but not the official SSM stuff) and would be willing to debug stuff and write code if you know the details about the process.