5th Gen Subaru Impreza Forum banner

[Guide] Improved Rev Hang Delete

21K views 44 replies 12 participants last post by  Octal450  
#1 · (Edited)
Applies to 2017-2023 IMPREZA (5th gen) and 2018-2023 XV/CROSSTREK (2nd gen) with FB20D engine ONLY. Only tested on MT. Mirroed at XV/Crosstrek.

While I've changed quite a few things on my personal car, I believe this is the most important.

If you want your throttle response linearized, or a more linear torque curve, even on 87 octane, contact me for a full tune.

Rev hang is obnoxious. It makes it tricky to shift smoothly without wearing clutch.


DISCLAIMER: By following this guide, you agree that I am not responsible for damage to your car, ECU bricking, house burning down, or ANYTHING ELSE. I am not a professional. Just an engineering student sharing what I've learned. Please proceed at your own risk!

THIS MAY BE ILLEGAL IN YOUR STATE/REGION. CHECK LOCAL AND FEDERAL LAWS BEFORE PROCEEDING!

I also apologize for the slightly blurry screenshots, my laptop has a high-DPI screen and subaruEdit is not high-DPI compliant.

The following tools/software are required:

  • Tactrix OpenPort 2.0 (use a legitimate to reduce risk of problems)
  • subaruEdit Personal (or Lite, but you'll need to contact me and I'll edit the ROM for you)
  • Windows laptop

Install the Tactrix drivers first. Then you will need to email epifan and follow his instructions. He will ask you to input some keys, read the ECU ID, and provide the info to him. He will then send you your editable ROM file in .hex format. Open the file in subaruEdit and we can begin.

Once you received the stock dump from epifan, we can begin modding.
1) Open up your hex in subaruEdit.
2) From the "View" menu, select "View as Tree".
Image


Rev Hang Delete:
Rev hang is when the RPM does not drop immediately after lifting off the gas, most noticeable during upshifting. The overrun air table is responsible for this, keeping the throttle plate open too far during engine decel.

I have very carefully developed an overrun table over a few months of logging and tweaking, to balance instant RPM drops with a smooth driving experience. I have kept Subaru's increase in idle overrun values during cold engine operation and eliminated the unnecessary overrun spike at 4400RPM. The result is a smooth response - without causing jerky behavior when lifting off the throttle in gear. A secondary bonus is slightly stronger engine braking on hills.

Note: When the car has been freshly started, the ECM runs without feedback for some moments and thus it may appear to hang revs slightly. This is reduced with my fix, but there may still be slight rev-hang after a fresh start. This will disappear in roughly 30 seconds or less (in most climates) and cannot be tuned out. This is not caused by the values in my new table.

1) Expand "Fueling", then "Overrun"

2) We will be modifying "Desired Overrun Mass Air Flow" tables A, B, and C. Start with A.
Image


3) Click the checkbox to open the table. The stock table will be visible. Make sure you have a backup of your original .hex file before continuing.
Image


4) Open the following Excel sheet: Subaru-FB20D-Maps.xlsx. Select the content of the table WITHOUT the axes, then in subaruEdit, select "Edit" -> "Paste from Clipboard".

Note: You can select with the axes, but you'll get a prompt when pasting. At the prompt, choose "with Axes".
Image



5) Select "Edit" -> "Map Confirm" (or press CTRL+S) to save the table. Then close the table.

6) Repeat steps 3, 4, and 5 for tables B and C. Close the tables when done.

7) Select "File" -> "Save As" and save the file in a safe place.

8) Flash the hex file to the car (below).

Flashing the ECU:
This process can be used to write your modified hex, or to write the original back to your car.

Before you begin, make sure that your laptop has sufficient battery or is plugged in to power. Ensure that A/C and lighting on your car is switched off, and that the car's battery is sufficiently charged.

1) Connect OpenPort 2.0 to your car and switch the ignition on.

2) If you have a hex open for editing, select "Tools" -> "Send to Flash Utility". Otherwise, select "Tools" -> "Flash Utility", then open your hex using the folder icon.

3) Ensure that the "Subaru FB16/FB20/FB25 2018+ x.xMb Impreza/Legacy/FXT/XV" template is selected. If your ECM is 1.50MB, choose 1.5Mb, if it is 3.87MB, chose 3.8Mb.

4) Click the "Write" button.

  • Follow the prompts from subaruEdit very carefully. Do not do anything else on the computer.
  • IF THE PROCESS GETS INTERRUPTED, DO NOT TURN THE KEY OFF. RESTART subaruEdit AND TRY TO WRITE AGAIN IMMEDIATELY.

Image


Hope this helps! Comments, suggestions, feedback, notice a mistake? Please post!
 
#3 ·
Thank you for the write up, I've seen the rev hang delete discussed but always wondered why the car stalled like that when you floor it instead of easing into it. Looking forward to trying this out soon.

I also have a question for throttle response that maybe you can help me with. When the car is still in it's warming up mode and idleing at ~2k the throttle is much more responsive and the engine revs up much faster in neutral, and I often find myself over shooting the RPMs by quite a bit more than I was expecting during downshifts if I drive it during that warm up stage (of course only when the car has actually already warmed up before like after restarting the engine).

Do you know if there is anyway to maintain that when warmed up, or is that just due to the extra fuel it's dumping? Downshifting if much more natural and how I've come to expect the throttle to behave when kicked in neutral, once it's warmed up I have to hold the throttle open quite a bit longer for the same RPMs. Does the CL to OL translation help any with that?
 
#4 · (Edited)
My pleasure.
always wondered why the car stalled like that when you floor it instead of easing into it.
Can you elaborate on this? I haven't noticed any stalling under flooring conditions.

When the car is still in it's warming up mode and idleing at ~2k the throttle is much more responsive
Yes, I was curious about this myself and looked into it. There seems to be a few things that I can point too as the cause.

The "smaller" impacts:
When the engine has been freshly started, it runs in open loop with a richer than usual AFR and a very retarded timing and further-increased rev hang. I don't know the reason for this, but it happens on warm restarts also. When you apply my CL-OL fixes, blipping will be improved. The increased rev hang also causes the throttle plate to stay open longer than your throttle blip, furthering the affect. Applying my overrun table will reduce this as the base overrun value is far less.

The bigger one here is the throttle acceleration schedule. At ~2K RPM, the RPM increases much quicker than from idle-1K. So the base RPM is playing a factor in how much the RPM will rise during a blip.

This I have not confirmed, but I believe the weighted curve of the throttle mapping also plays a factor here as well, as computed engine load is increased during warm up.

You can try this, when warm, bring the RPM up to 2.5K in neutral and then release throttle, as the RPM nears 2K give it a quick blip, and notice how it jumps up just like when cold.

I hope this helps explain it. I personally prefer the blipping behavior when warm, but this is with my fixes applied.
 
#5 ·
Can you elaborate on this? I haven't noticed any stalling under flooring conditions.
Stall was maybe not the right word, just that when you floor it at times the power feels very delayed how you described.

This means that when you put your foot down, the car stays in closed loop, targetting 14.7 for a bit until it finally goes to open loop.

Now this is only a factor for heavy acceleration, you actually WANT some delay for light acceleration, to avoid jerky throttle behavior.

The bigger one here is the throttle acceleration schedule. At ~2K RPM, the RPM increases much quicker than from idle-1K. So the base RPM is playing a factor in how much the RPM will rise during a blip.

This I have not confirmed, but I believe the weighted curve of the throttle mapping also plays a factor here as well, as computed engine load is increased during warm up.

You can try this, when warm, bring the RPM up to 2.5K in neutral and then release throttle, as the RPM nears 2K give it a quick blip, and notice how it jumps up just like when cold.
Interesting I'll have to give that a try. I know there would be less of delay simply from having higher rpms and more available power, but the disconnect between how quick it is at warmup and how delayed it feels after seems like more than that. Though the rev hang could also account for that, it definately still rises a good bit after letting go which is the only real part I don't like.

I personally prefer the blipping behavior when warm, but this is with my fixes applied.
It's a bit on the aggressive side but somthing I could get used to. From what you describe though I'll have to try out that tune, you may be right that it's mostly just that it's idling higher to start with + rev hang.
 
#6 ·
when you floor it at times the power feels very delayed
Yep, this should be fixed with my instructions above.

Also, if you are also not updated to XH3J2C1A ECU, have your dealer do that (complain about stuttering between 2-3K and retarded ignition timing). Otherwise, the ECU can wrongly pull timing from misinterpreting vibrations as knock, killing power.

still rises a good bit after letting go
Yes, this is fixed with my overrun table :)

It's a bit on the aggressive side but somthing I could get used to
With my changes, it will be "less" aggressive when cold, and more responsive when warm - but not like when it's cold where you feel like it shoots over your intended blip target.
 
#7 ·
Yep, this should be fixed with my instructions above.

Also, if you are also not updated to XH3J2C1A ECU, have your dealer do that (complain about stuttering between 2-3K and retarded ignition timing). Otherwise, the ECU can wrongly pull timing from misinterpreting vibrations as knock, killing power.


Yes, this is fixed with my overrun table :)


With my changes, it will be "less" aggressive when cold, and more responsive when warm - but not like when it's cold where you feel like it shoots over your intended blip target.
Yeah I'm definately still running an old ROM, I have subaruEdit Pro with all the different patched files. For sake of avoiding any potential "security" patches, I'd like to take care of my other project first, but will be updating that as well soon if all is successful. In my experience when it comes to updates, user features tend to come second to patching the user out.
 
#11 · (Edited)
Also, I'm working on updated throttle tables to make the pedal a little less "jumpy" and sensitive. Once I'm happy with the result I'll post it here.
Also, updated anti-rev-hang table to V3. Improves engine decel in very cold climates.
 
#14 ·
Hi,
I hope you will enjoy the rev hang delete very much. :D

How to check ECU ID:
Image

Image

Image


Btw, if you don't have it, and your dealer won't do it, then you maybe can get it from Epifan website (I can link you) and update it yourself. I did that on a friend's car.
 
#19 · (Edited)
Hi,
I hope you will enjoy the rev hang delete very much. :D

How to check ECU ID:
View attachment 32399
View attachment 32400
View attachment 32401

Btw, if you don't have it, and your dealer won't do it, then you maybe can get it from Epifan website (I can link you) and update it yourself. I did that on a friend's car.
Alright so I tried flashing my ECU with the updated ROM. It reset my ECU, warning lights came on, all safety functions disabled, and I got an error..

Any ideas?
 
#18 ·
So, Subaru's CL tables cause some funky transition logic. I'm working on reverse engineering it.

So far I've developed new closed loop fueling maps, preserving the cruising behavior and optimizing the behavior under load.

We'll see if it works.
 
#26 ·
#27 ·
First off I gotta say thank you @Octal450 This information is super valuable and honestly I haven't found any other info related to our cars in this amount of detail. I do have a question, I know rev hang isn't really a thing with the CVT models but have you interacted with tuning on any yourself? I'm currently in the process of tuning my car and was hoping for some feedback on things that apply to both manual and CVT models, not looking to push power but more just quality of life stuff throttle response etc.
 
#28 · (Edited)
Hi,
Thanks so much for the positive words. I have more to come!

Yes I've done some CVT work recently. I've done remaps of the throttle calibration for linearization and some improved CVT shifting behavior. (and better power on demand behavior) You should not apply the overrun (rev-hang) fix to CVT cars.
 
#30 ·
Interesting, I'm just now starting to look at the stock maps so I would definitely be interested in figuring out the throttle calibration, cvt shifts etc there's definitely alot that can be approved haha.

@krisdaniels78 build is one of my favorites especially since I'm in the same boat when it comes to learning as I go along.