NefMoto

Technical => Reverse Engineering => Topic started by: robin on September 14, 2009, 11:56:04 AM



Title: clutch switch routines
Post by: robin on September 14, 2009, 11:56:04 AM
OK, so a few of us have been messing around with a rudimentary "launch control" in the ME7 2.7T ECU.

What it will do, is hold the revs at a certain point, but to be a true "launch control", ideally it would retard timing and cut ignition at two or three points per crank revolution.

With the way ignition timing is referenced in the ECU, it would create a hole in the map at that load point(s) if you simply tried to get Motronic to request ATDC timing right there. We need another timing map to switch to while the clutch is depressed. Plenty of room for it in the ECU, it's a matter of telling it to look there.

I'd like to see this active no matter when the clutch is down, as it would help greatly to keep the turbos spooled between shifts and allow flat shifting. Unclear as to how it would affect heel-toe...

What I lack is the the ability to disassemble the routines and modify the code. What I have is an audi that I don't mind abusing.

Lets work on this.


Title: Re: clutch switch routines
Post by: Tony@NefMoto on September 14, 2009, 01:24:47 PM

I have spent most of my time disassembling the 2.7T ecu code, but not much timing playing with maps and tuning. I haven't yet modified any code in the ecu, but I do have the knowledge and ability to do so. Once the flashing and logging software I have written is more stable, I was planning on starting work on map switching and realtime map tuning. Working on supporting separate launch control maps would be a good project to do before I do full map switching support.

If you can tell me what maps you have been playing with so far for launch control, that would be a good starting point to make sure we are on the same page. On the "other" Audi forum I believe you mentioned you had tried this:

Set NMAX to your desired launch rpm
Set NMAXOG to your desired raised redline
Drop TMOTNMX to -48C
Set VNMX to your desired minimum vehicle speed for raised redline
Make sure TNMXH is set to 0

What were the problems you ran into doing it this way?

Do you just want a new ignition timing map to be referenced when the clutch is in, or would you want it to be different depending on the gear?

What about an ignition timing offset that is added/subtracted from the base ignition timing? This would be easy to do per gear for instance.

For flat shifting, would you want a map that dictates the RPM limit per gear while the clutch  is in?

So far I assume you only want to change the RPM limiter and the ignition timing depending on the current gear, and if the clutch is in.




Title: Re: clutch switch routines
Post by: tjwasiak on September 14, 2009, 06:08:57 PM
What it will do, is hold the revs at a certain point, but to be a true "launch control", ideally it would retard timing and cut ignition at two or three points per crank revolution.

With the way ignition timing is referenced in the ECU, it would create a hole in the map at that load point(s) if you simply tried to get Motronic to request ATDC timing right there. We need another timing map to switch to while the clutch is depressed. Plenty of room for it in the ECU, it's a matter of telling it to look there.

I am afraid it can not be done that easy. Remember that ME7 is really complex ECU. I am aware of the fact that even more complicated things were achieved on those ECUs, but I am afraid we will need more coders skilled in assembler to work it out.


Title: Re: clutch switch routines
Post by: robin on September 14, 2009, 09:26:25 PM

If you can tell me what maps you have been playing with so far for launch control, that would be a good starting point to make sure we are on the same page. On the "other" Audi forum I believe you mentioned you had tried this:

Yes.

Quote

What were the problems you ran into doing it this way?


Mainly the car will sit there on the limiter, at say 4000rpm, controlling the launch point. But what you don't get is any boost built because the ignition timing isn't retarded significantly and the spark being cut. A little bit of both and we'd have an antilag that would build some boost pressure so you could get out of the hole properly. I think we need to define some terms here too.

wheel speed threshold for alternate limiter = managing wheelspin and being able to get out of the hole consistently
antilag = keeping the turbine speed high by burning exhaust in the manifold rather than the cylinders

A little bit of both and you get a two-step launch control.

Quote

What about an ignition timing offset that is added/subtracted from the base ignition timing? This would be easy to do per gear for instance.

That is exactly what I think we need. It needs to happen on decreasing loads and overrun, and only when the car is being driven hard.

Check these links:

http://www.lancerregister.com/showthread.php?s=&threadid=147683&highlight=ecutek+anti+lag

http://tinywrex.x10hosting.com/online/index.php

http://www.rallycars.com/Cars/bangbang.html

The ecutek code can adjust how aggressive the antilag is. I'm assuming it does that by regulating the amount of air injested by the SAI (we don't have one, maybe retrofit something from a tiptronic car, or try and increase overlap and open the throttle slightly?), the amount of timing retard, and amount of injector on time requested. I'm assuming it writes in new maps for all three.

Then you simply pick the proper speed limit delta to get it working right. You want it to control wheelspin, not just create tire smoke. So if the car launches and hits the limiter immediately, increase the km/hr threshold. If the car launches and blows the tires away, decrease it.

read vehicle speed
if vehicle speed > speed threshold then

    no adjustment to real RPM

else

    adjust real RPM by RPM delta

pass control to rev limiter check (fuel cut)

Effectively rev limit = rev limit - LC RPM delta, the higher the LC RPM delta value the lower the actual rev limit becomes, the lower the LC RPM delta value the higher the rev limit becomes.

If you really wanted to get crazy, how about a PID loop to control the hysteresis of wheel speed. Maybe use the known wheel speed against rpm and gear to target an optimal slip angle? Heheh now I'm just dreaming...



Title: Re: clutch switch routines
Post by: tjwasiak on September 15, 2009, 05:10:45 AM
Mainly the car will sit there on the limiter, at say 4000rpm, controlling the launch point. But what you don't get is any boost built because the ignition timing isn't retarded significantly and the spark being cut. A little bit of both and we'd have an antilag that would build some boost pressure so you could get out of the hole properly. I think we need to define some terms here too.
So you get a proper launch control system that way.

Maybe I am wrong but I have an idea how to make anti-lag system in an easy way.
Would you mind taking logs to check your load, lambda (requested and actual) and boost (also requested vs actual) when sitting at said alternative limiter? I think load values will be small enough to introduce ignition retard, "sick" lambda value (~0.50) and make it demand higher boost at that point without having bad effects while driving => I do not think you will ever get such low load situatuion while driving (even cruising), IMO it could happen only while engine braking. There comes one and only problem - your engine braking effect will be largely affected.

Quote
Quote
What about an ignition timing offset that is added/subtracted from the base ignition timing? This would be easy to do per gear for instance.

That is exactly what I think we need. It needs to happen on decreasing loads and overrun, and only when the car is being driven hard.

I am aware of the fact ME7 can estimate actual gear engaged basing on vehicle speed and RPM, but I still it could be hard to add gear dependant timing maps, which could help spool turbo sooner on lower gears while protecting from excesive wheel spin.

I just can't get any idea when should the system activate automatically. I think it is not good idea. Better adapt a kind of switch to activate this. It can be done with ME7 for sure - i.e. Volvo S60R has a kind of switchable characteristic via Advanced Button - advanced ignition and more sensitive throttle response.


Title: Re: clutch switch routines
Post by: Tony@NefMoto on September 15, 2009, 11:07:27 AM
Maybe I am wrong but I have an idea how to make anti-lag system in an easy way.
Would you mind taking logs to check your load, lambda (requested and actual) and boost (also requested vs actual) when sitting at said alternative limiter? I think load values will be small enough to introduce ignition retard, "sick" lambda value (~0.50) and make it demand higher boost at that point without having bad effects while driving => I do not think you will ever get such low load situatuion while driving (even cruising), IMO it could happen only while engine braking. There comes one and only problem - your engine braking effect will be largely affected.

The ME7 determines desired boost from desired load, so if you have low desired load you are going to have low desired boost.


Title: Re: clutch switch routines
Post by: Tony@NefMoto on September 15, 2009, 11:25:51 AM
So what I am hearing is the request for two features, launch control, and flat shifting.

Flat shifting would be a different RPM limit depending on the gear when the clutch is in.

Launch control would be a different RPM limit when the car is under a certain wheel speed and the clutch is in.

But from the sounds of it you can achieve this by tuning the existing ME7 maps, aside from requiring the clutch to be in?

In which case what you are really asking for is new support for anti-lag?


Title: Re: clutch switch routines
Post by: robin on September 15, 2009, 11:28:24 AM
Flat shifting really doesn't concern me as much as having some more decel fuel and a real hard limit between gears so the throttle isn't closing.

I want to:

a) build boost off the line (two step)

b) change how it fuels on decel? could probably play with this in existing maps (haven't gotten that far yet) I know Lemmiwinks would change decel load fueling, hmm. basically a mild antilag.


Title: Re: clutch switch routines
Post by: tjwasiak on September 15, 2009, 05:22:51 PM
(...)
Flat shifting would be a different RPM limit depending on the gear when the clutch is in.
Launch control would be a different RPM limit when the car is under a certain wheel speed and the clutch is in.
I would say it could be done simpler - just make one additional clutch controlled RPM limiter which will serve for them both (just have to find a proper RPM limit for it)...

Quote
But from the sounds of it you can achieve this by tuning the existing ME7 maps, aside from requiring the clutch to be in?
Could you explain me a way to get flat shifting function using existing maps? I am still flat shifting without proper support but it makes my trannies life hard :( You should not do that shifting into 2nd gear especially having VAG 6speed gearbox in Golf based cars... Other gears are happier with that ;)

Regarding my previous suggestion about making it demand more boost - I know how desired boost is determined in ME7, but I think it could be doable by tweaking the ECU calibration maps. I know it is not a good way to tune, but for such isolated case (you only have to check the load values when hitting the lowered RPM limiter because my car will not be driveable for a quite long time :( ) it won't hurt IMO.


Title: Re: clutch switch routines
Post by: Tony@NefMoto on September 16, 2009, 12:59:38 PM
(...)
Flat shifting would be a different RPM limit depending on the gear when the clutch is in.
Launch control would be a different RPM limit when the car is under a certain wheel speed and the clutch is in.
I would say it could be done simpler - just make one additional clutch controlled RPM limiter which will serve for them both (just have to find a proper RPM limit for it)...

It wouldn't be very hard to do separate RPM limits per gear when the clutch is in.

(...)But from the sounds of it you can achieve this by tuning the existing ME7 maps, aside from requiring the clutch to be in?
Could you explain me a way to get flat shifting function using existing maps? I am still flat shifting without proper support but it makes my trannies life hard :( You should not do that shifting into 2nd gear especially having VAG 6speed gearbox in Golf based cars... Other gears are happier with that ;)

There is a map that defines gear specific RPM limits, and another map that defines gear specific load limits. There are currently no maps for load limits or RPM limits for when the clutch is in that I am aware of at the moment.

Regarding my previous suggestion about making it demand more boost - I know how desired boost is determined in ME7, but I think it could be doable by tweaking the ECU calibration maps. I know it is not a good way to tune, but for such isolated case (you only have to check the load values when hitting the lowered RPM limiter because my car will not be driveable for a quite long time :( ) it won't hurt IMO.

If you trick the ME7 into requesting more boost when the car is at a low RPM, how would you actually generate the boost?


Title: Re: clutch switch routines
Post by: Tony@NefMoto on September 16, 2009, 01:20:18 PM
Here is an interesting description of an Anti Lag System used in VEMS.
http://www.vems.hu/wiki/index.php?page=MembersPage%2FGaborRacz%2FNewAlsLaunchAndOthers

Here are the values that control how it works:

Ignition Retard:
Min throttle valve angle for ignition retard when ALS active
Max throttle valve angle for ignition retard when ALS active
Additional ignition retard relative to base ignition timing when ALS active

Spark Cut:
Min throttle valve angle for spark cut when ALS active
Max throttle valve angle for spark cut when ALS active
Max percentage of ignition events cut when ALS active

Fuel:
Fuel enrichment relative to base lambda when ALS active

ALS Control:
Min RPM for ALS to be active, below which ALS deactivates
Max time for ALS to be active, after which ALS deactivates
Max EGT for ALS to be active, above which ALS deactivates
Min throttle valve angle for ALS to be active, above which ALS activates

With this system you could have ALS activate at 85% throttle valve angle, and then use fuel enrichment, spark cut, ignition retard from say 50% to 25% throttle valve angle.

Does this make sense? Any comments?

For launch control and flat shifting you would have a per gear RPM or load limit when the clutch is depressed. The above ALS system should work during launch control, since hitting the RPM limit should cause the throttle valve to start closing. The above ALS system would not activate during flat shifting, unless the RPM or load limit when the clutch was in was low enough to cause the throttle valve to close enough to activate ALS.

It is possible that on the ME7, pedal position may work better than throttle valve angle for activating and deactivating ALS. This is because the load based system in the ME7 instead of the the pedal position controls the throttle valve angle.




Title: Re: clutch switch routines
Post by: robin on September 17, 2009, 01:16:29 PM
OK that's a great read. That's pretty much exactly how I'd like to implement it here, although based on pedal position for sure. That way it stays "driver desired" and not a function of Motronic's throttle control.

Although again, the ideal launch control would keep the throttle wide open and limit revs with spark and fuel cut... one of the problems now is since the throttle is closing to keep revs around 4000, when I launch the car it hesitates for a second as it goes from ~40-50% throttle to 100% once the feedback loop realizes it can allow it open.


Title: Re: clutch switch routines
Post by: Tony@NefMoto on September 17, 2009, 02:11:59 PM
OK that's a great read. That's pretty much exactly how I'd like to implement it here, although based on pedal position for sure. That way it stays "driver desired" and not a function of Motronic's throttle control.

Although again, the ideal launch control would keep the throttle wide open and limit revs with spark and fuel cut... one of the problems now is since the throttle is closing to keep revs around 4000, when I launch the car it hesitates for a second as it goes from ~40-50% throttle to 100% once the feedback loop realizes it can allow it open.

If you use the pedal position to control ALS, then ALS would not activate during flat shifting or launch control, since you never lift your foot. I suppose it would be possible for ALS to activate when the clutch pedal is depressed in addition to the throttle pedal position activation. i.e. if you exceed the throttle pedal position to enable ALS, and the clutch is in, then activate ALS.

Keeping the throttle body wide open and controlling engine speed via spark and fuel cut would require significant changes in the ME7 I believe. I would need to look more closely at the engine speed control code, but I am pretty sure it does it by controlling the throttle body valve angle.


Title: Re: clutch switch routines
Post by: robin on September 17, 2009, 07:52:44 PM
There are PID maps for the NMAX engine speed group that I'll get for you in the morning... I've started to play around with these, but I know it's possible to get a true hard limit in the stock routines.

I've reduced the throttle closing from 40% to 60%, but I still have to find the right map to get what I really want. IE, like my old volvo had. WOT (cause it was a cable) with the fuel simply cutting every oher rotation. bambambambambambam.

More tomorrow when I can sit in my driveway on the limiter for a half hour.


Title: Re: clutch switch routines
Post by: Jason on September 18, 2009, 02:19:26 PM
For true flat shifting I think 2 things need to be accomplished:

1) match revs based on vehicle speed and next logical gear
2) antilag to keep the turbos spooled (throttle wide open with ignition retard)
3) disable the "antilag" when the brake switch is closed to allow match-rev downshifting under braking.  (I only say this because I have observed that under heavy braking I tend to WOT blip when downshifting and could potentially see a limiter as an issue given how fast my combination revs)

If this could be accomplished the shifts would be amazingly precise and maximum torque/boost would be available when the clutch is reengaged.  

edit:  this is a cheap interim solution:
http://www.npcompleteperformance.com/wotbox


Title: Re: clutch switch routines
Post by: Tony@NefMoto on September 28, 2009, 02:05:38 PM
I think all of the things mentioned in this thread can be achieved. So far though I don't see a lot of people really dying to have this feature. If they are dying to have it they certainly aren't posting here.



Title: Re: clutch switch routines
Post by: RaraK on September 28, 2009, 04:17:39 PM
obviously 2-step would be nice, im not so concerned with flat shifting as i shift my tranny fast enough(but i drag race) it would be better for road race guys maybe?

i know a 2-step can be done, or at least a launch rpm.  they do it on 996's.  asp or someone does this, i do not know if its true 2-step.

yea, we need to find a way to add new code into the ecu and make the separate maps for no vehicle speed i guess right?


Title: Re: clutch switch routines
Post by: Tony@NefMoto on September 28, 2009, 04:22:16 PM

I am planning on implementing map relocation soon, but there are a few things I need to do first. Map relocation is 99% the same as inserting a new map for the ecu to use under certain situations.



Title: Re: clutch switch routines
Post by: mightemouce on December 10, 2009, 08:42:35 PM
a built in two step would be awesome to have


Title: Re: clutch switch routines
Post by: skinnytirez on December 14, 2009, 04:26:05 PM
I bought the "WOT box"and it works GREAT! for 2-step, and WOT shifting:

http://n2mb.com/

install was pretty easy too...not to mention customizable launch RPM, and methanol injection spray controller  ;D

I know it's not as cool as having it just built into your ECU, but it's there if you want it.



Title: Re: clutch switch routines
Post by: ktech on March 08, 2010, 07:19:27 AM
Yes 2-step for me also thanks.
Works great on the AEM ecu, and very easy to setup.


Title: Re: clutch switch routines
Post by: lulu2003 on August 08, 2010, 09:34:16 AM
great topics in here!
Any improvements since 2009?

I am also interested in (almost) flat shifting or at least reduce the shifting lag. Using WOT-Boxes seems to be the most pragmatic way but doing it 100% in ME7 would be the best way.


Title: Re: clutch switch routines
Post by: 20VT on December 22, 2010, 08:59:47 AM
Easiest way to build boost to launch a ME7 turbo car is to retard the ignition advance at the rpm you want to launch at but at low load sites by around 50 degrees ;)



Title: Re: clutch switch routines
Post by: robin on February 19, 2011, 12:28:10 AM
Easiest way to build boost to launch a ME7 turbo car is to retard the ignition advance at the rpm you want to launch at but at low load sites by around 50 degrees ;)



Can you show me a way to do this in ME7 only? Nothing I've tried has the desired result: Throttle 100% open, timing retarded, etc.