Title: No-Lift-Shift (NLS) on MED9.1 Post by: Basano on August 06, 2014, 12:16:43 AM Hello all,
I’ve had a go at implementing No-Lift-Shift on my MED9.1 and would really appreciate your advice and comments on my approach. MED9.1 Audi S3 8P 2.0 TFSI 265bhp MY 2008 UK spec There is a lot of information about this in the ME7 NLS threads and discussions. As I understand it, in the ME7 posts NLS is achieved by cutting the ignition. Basically ignition cut-off is implemented by setting the dwell time (tsrldyn) to zero. This results in no spark and thus no combustion. Fuelling does however continue and when combustion resumes, unburnt fuel in the exhaust system is ignited – pop! ;D ME7 NLS links Anti-lag launch and no-lift-shift secrets inside (http://nefariousmotorsports.com/forum/index.php?topic=607.0) How to: Stock ECU Launch control on ME7 (http://nefariousmotorsports.com/forum/index.php?topic=151.105) Launch Control & No Lift Shift new Functions (http://nefariousmotorsports.com/forum/index.php?topic=4721.0title=) 06A906032HN, Implementation of launch-control and NLS (http://nefariousmotorsports.com/forum/index.php?topic=1363.0) 06A906032KP with NLS and antilag all needed attached (http://nefariousmotorsports.com/forum/index.php?topic=2714.msg25851#msg25851) Adding anti-lag, launch control and no-lift shift (http://www.nefariousmotorsports.com/wiki/index.php/Adding_anti-lag_launch_control_and_no-lift_shift) I was really interested in just No-Lift-Shift (rather than Anti Lag as well) and so I’ve gone with a bit of a different idea. Instead of ignition cut-off I’ve used fuel cut-off. I’m trying to avoid any explosions in the exhaust system as I live in a quiet neighbourhood lol ;) I’ve tried various things but currently the most successful approach has been to simply piggyback on Function KOEVAB. This function is used to stop injection for a number of reasons (engine stall, reverse rotation, clear flood, remote start, immobiliser etc). Any of these cause the injection pattern 255 to be used which effectively shuts off injection. Injection (and combustion) resume as soon as the cut-off condition is removed. (http://nefariousmotorsports.com/forum/index.php?action=dlattach;topic=6543.0;attach=10262;image) (http://nefariousmotorsports.com/forum/index.php?action=dlattach;topic=6543.0;attach=10260;image) Some extracts from the FR below (NB, these weren’t from the MED9.1 FR but rather an Alfa Romeo ME7.3 FR which happens to be in English. Good enough to get a general understanding) FB KOEVAB 1.20 Detailed description of function The function Co-ordination of injection valve cutoff (KOEVAB) links the individual interventions which result in a complete injection valve cutoff. The system constant value activates the respective intervention. To ensure this, the system constant values must be specified in the section PROKON. The individual interventions are linked together by a logical OR operation; this means: if one of the interventions is active (B ...), the value B koevab is set true. This causes the function AEVABZK to cutoff all injection valves commanded by the respective Motronic control device. FB AEVABZK 1.20 Detailed description of function The function transmits the injection valve cutoff pattern, evz aus, via the RAM cell evz austot to the function ACIFI on non-EGAS systems. The fuel cutoff itself is performed in function ACIFI. During ecu after-running, the cutoff pattern 255 is sent. (Subfunction S KL 15 OFF) On EGAS systems (Subfunction THROTL ACT), the injection valve cutoff pattern evz aus is usually as well sent via evz austot to the function ACIFI. However, if monitoring functions request an injection valve cutoff via the input B evabu, then evz austot = 255 is transmitted to the function ACIFI which is equal to a request for a complete injection cutoff. The subfunction KOEVAB allows to implement injection valve cutoff types specific to a project, e.g. injection valve cutoff in the event of errors by the automatic gearbox, recognized engine backward movement, engine stalling etc. To release the diagnosis "misfire detection", the bit B evasel is generated as follows: B dmdstop (locks the misfire detection via function AEVAB during torque interventions) is linked by means of an OR operation to the other types of injection valve cutoff of function AEVABZK. If B evasel = true --> misfire detection is released. I’ve put together a very simple proof of concept. If the accelerator pedal (wped_w) is pressed more than two-thirds AND the clutch pedal (B_kuppl) is pressed (since you are changing gear whilst keeping the throttle flat), cut off fuel. As soon as the clutch is released (or the accelerator pedal is less than two-thirds) then resume injection. In other words, just keep the throttle floored and change gear. When you dip the clutch to change, the engine revs won’t run away. I’m sure there are smarter implementations, but given the limits of my skill, this is just a basic proof of concept to see if it even works :) So far, so good. Pseudo code Code: function no_lift_shift() In my proof of concept code I jump from KOEVAB to a spare location where my new code checks wped_w and B_kuppl. If they don’t meet the required conditions, jump back to KOEVAB and carry on checking the other original conditions. If they are set, jump to the end of KOEVAB where cut-off conditions are activated. Original ASM code Code: ROM:004ED894 lbz r12, byte_7FED65 New ASM code Code: ROM:004ED894 b sub_47C950 #jump out of KOEVAB to a spare location Code: ROM:0047C950 lhz r12, word_7FD690 #wped_w Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: Basano on August 06, 2014, 12:20:16 AM Here’s the log file. Apologies about the screenshot format, but I’m trying to show all the variables at once. Have a look at what happens when wped_w = 100% and B_kuppl = 1. You can see the injection time (ti_l) drops to zero but the throttle plate (dkwa) is still open and the WGDC is still running. Release the clutch B_kuppl = 0 and combustion resumes. The csv is attached as well.
(http://nefariousmotorsports.com/forum/index.php?action=dlattach;topic=6543.0;attach=10264) Questions 1) Have I got the right approach with injection cut-off versus ignition cut-off? 2) Am I only cutting off fuelling and not everything else? (otherwise I might just as well take my foot off the accelerator) Anything else I could be logging to check this? 3) Any disadvantages to fuel cut-off? Perhaps EGT due to removing the cooling effects of the fuel? Lambda? 4) The cut-off lasts for as short or as long a time as the clutch is pressed (not on a timer like ME7). I can always try adding a timer if I’m going in the right direction and this is worth the effort. 5) Are there any other interventions that may come into play? Most of the knowledge base on this is ME7 but if there’s an ME7 function of concern I can always try and look for the equivalent in MED9.1 Much appreciated Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: flaattire on August 06, 2014, 01:42:58 AM Thank you for this information! One observation though, you have the wrong approach with injection cutoff. One huge advantage of flatshifting a turbo motor with ignition cut is the turbo stays mostly spooled from the fuel. Even on a small factory frame turbo the respool time (if not using NLS with ignition cut) is significant if you drag race. Also, the kick from shifting into boost feels nice ;)
Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: Basano on August 06, 2014, 02:14:24 AM Ahha – I see what you mean.
Here’s another log of a gear change (data in blue). You can see that the gear change takes about 500ms. At the start of the change boost (pvdkds_w) was about 2354mb. By the end of the gear change boost was 1552mb. For drag racing I can understand why you would prefer ignition cut-off. Perhaps I should call my version NLS-lite ;D (http://nefariousmotorsports.com/forum/index.php?action=dlattach;topic=6543.0;attach=10268;image) Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: phila_dot on August 06, 2014, 07:09:29 AM My function has a dynamic switch to use a soft (fuel cut) or hard (ignition retard) ALS/NLS.
I use a table by gear of target RPM for NLS. Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: Basano on August 06, 2014, 07:31:35 AM Hello phila_dot
I use a table by gear of target RPM for NLS. How does that work in practice? Just trying to understand what you mean. For example (and I’m making up some numbers here), let’s say you are in third @ 5000rpm and shift up into fourth gear. Are you saying that instead of your rpm just dropping away whilst the shift is underway (due to cut), your rpm would drop from 5000rpm and hold at 4000rpm instead (4000rpm being a match for fourth gear at your exit road speed from third gear? Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: phila_dot on August 06, 2014, 07:40:04 AM Exactly.
Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: Basano on August 06, 2014, 08:00:40 AM That’s pretty clever!
Thinking out loud, you could cut off fuel, then the revs would drop until they reach the target, then restart fuelling again. But then the revs would start climbing, before you’ve finished the gear-change. So you’d have to cut off fuel again… How to stop the oscillation? Hysteresis (switch on at 4000rpm, switch off 200rpm higher) Or am I over-thinking it ??? Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: Basano on August 13, 2014, 01:19:16 AM Bit of an update on this.
Right now there are only two conditions to activate injection cut-off. If the clutch is pressed AND the throttle pedal is pressed past a certain percentage. The pedal percentage has given me something to think about. Originally I had it set to 99% which I thought would be appropriate for WOT shifting, but sometimes when I flat-shifted, the revs would just run away until they hit the limiter. I was pretty puzzled until I did some logging and saw that sometimes I was inadvertently lifting off the throttle pedal just slightly when I pressed the clutch (perhaps my seat wasn’t close enough and my legs are too short). Not by much, 98% instead of 100% but that was enough to deactivate the injection cut-off which relies on both clutch being pressed AND throttle pedal pressed 99%. So throttle pedal reaching 98% didn’t meet the conditions, injection would resume and since the clutch was still pressed, the engine would race away. Not nice! So then I set the throttle pedal percentage to just 66% so even if I did lift off a tiny bit, the injection cut would still remain active. After driving around a few days, this was at the other extreme. It was triggering too early in situations when I didn’t need it – I’d just wanted to make a quick get-away at the traffic lights so I could get in front of the car on my left so I could turn left in the next hundred meters. So I pressed the throttle quite a bit, changed up from 1st to 2nd and the injection cut-off activated! Had to wave in apology to those all around me since I slowed down quite inappropriately! :-[ Finally I’ve set the throttle pedal percentage at 85% which seems like a happy compromise at the moment. Day to day driving doesn’t trigger it and it still catches any tiny lift-offs when I do want it to work. Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: Basano on August 13, 2014, 01:31:11 AM Next thing I looked at was rpm.
My original code implementing this didn’t even look at the rpm. The only conditions were the clutch being pressed and the accelerator pedal being pressed past a certain threshold. Then it cut off the fuel and the revs fell away. The revs could drop all the way to zero and the cut-off would still be active, as long as the clutch was pressed and the accelerator pedal was pressed past the threshold as well. So what I’ve done now is add revs into the mix as well. Something like this: IF (clutch = pressed) AND (acc pedal > 85%) AND (revs > 3000) THEN fuel cut-off = active What happens now is the revs drop away and bounce around 3000rpm when the injection cut-off is active. Not as clever as what phila_dot mentions earlier in the thread but an improvement on before. You press the accelerator and clutch, the revs fall, as soon as they dip below 3000rpm then injection resumes until revs are above 3000rpm, then it would cut off again since it’s above 3000rpm and the clutch and accelerator are pressed and so on. A side-effect of this update has been a rudimentary form of launch control. Whilst stationary, press the clutch and floor the accelerator pedal (past 85%). The revs increase until they hit 3000rpm at which point conditions are matched for injection cut-off. So the revs then drop until they are below 3000rpm, conditions are no longer true for injection cut-off and fuelling resumes. Repeat. Net result is that revs sit around 3000rpm (boost is about 0.25 bar at this point). 3000rpm is pretty conservative. If you let the clutch out at this point the motor just bogs down and then surges (since clutch is out and injection cut-off is deactivated). Haven't looked into ignition cut-off / retard yet. Still trying to get a feel for how this comes together and the conditions to use. Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: ddillenger on August 13, 2014, 11:12:59 AM Not that you need me to tell you, but very good work. Love what you've been doing. Keep it up :)
Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: nyet on August 13, 2014, 11:13:35 AM There are already several soft (fuel) rev limiters in ME7. Why not retask them?
Title: Re: Post by: n0ble on August 13, 2014, 08:20:31 PM If you want to stop the byproduct launch control, use speed in your conditions. Speed 5kmh>
Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: Basano on August 14, 2014, 04:22:30 AM Not that you need me to tell you, but very good work. Love what you've been doing. Keep it up :) Thank you :) There are already several soft (fuel) rev limiters in ME7. Why not retask them? As always, that’s a good idea. At one stage I had coded up something where one of the NMAX limits (can’t remember which one I picked, a limit if a certain fault occurred) was actually stored in a variable. The OEM code loads up the static value into a variable anyway, so I just overwrote that variable. Then when I wanted to limit the revs, I replaced the stock value with my own very low value. It was a bit hit-and-miss, it vaguely worked once and didn’t work other times ??? (However I think my code left something to be desired since I hadn't sat down and thought it through properly) Right now I’m trying to get a good definition for what ‘hard’ and ‘soft’ limiting actually is. I’m not sure it’s as simple as fuel or ignition exclusively. For example, you can retard the ignition versus cutting it off completely. Retard sounds ‘soft’ versus cutting it off ‘hard’? If you want to stop the byproduct launch control, use speed in your conditions. Speed 5kmh> I saw setzi62's pseudo code had speed in the mix as well. Now I see how it helps branch-off into a specific launch function. Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: ddillenger on August 14, 2014, 09:24:11 AM Soft=fuel
Hard=ignition Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: nyet on August 14, 2014, 12:48:42 PM Soft=fuel Hard=ignition Actually, the weird thing is that ME7.1 has two kinds of "soft" limits too... It might actually be fuel AND ignition etc for one of them. I'm hazy on this but i remember doing a bunch of logging with the various NMAX limiters.. and now I can't find my damn logs. Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: phila_dot on August 14, 2014, 01:05:03 PM Actually, the weird thing is that ME7.1 has two kinds of "soft" limits too... It might actually be fuel AND ignition etc for one of them. I'm hazy on this but i remember doing a bunch of logging with the various NMAX limiters.. and now I can't find my damn logs. Timing is retarded during fuel cutoff, see B_sa in ZUE (iirc) Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: ddillenger on August 14, 2014, 03:03:18 PM I was just referring to the nomenclature we use :)
Generally speaking, when we say soft we mean fuel/native to me7. Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: Basano on August 15, 2014, 01:29:10 AM Thanks,
Looking at your replies has made me think about what it is that I’m trying to ask :) I think we’re answering the ‘how’ (in Motronic, soft limit is achieved by fuel, hard limit by ignition). 1) I think I also wanted to ask ‘what’ – what is hard and soft limiting to begin with? Doing a bit of reading about this, it’s more complex than I thought. Gradual versus abrupt. 2) Just to check if we are on the same page when talking about soft limit fuel cut-off? Is that shutting down one injector at a time as the limit is approached? I think I'm shutting down all four simultaneously without any gradual approach. If the conditions match, all four are off, just like that. Hard limit? BTW, looking at my logs (http://nefariousmotorsports.com/forum/index.php?topic=6543.msg60433#msg60433) I saw that ignition gets retarded when the injection cut-off is active Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: roman_tyk on January 11, 2016, 12:47:01 PM @Basano, did you check if B_koevab is going to 1 when we release leg from accelarate pedal? when injection time is 0?
Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: cam on August 23, 2016, 06:13:06 AM Hello,
any public files? I want to try al&nls in MED9 but i cant find where begin :( Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: neuro on August 23, 2016, 07:32:57 AM i have made a software called launch9 that generate launch control on med9..
(https://scontent-iad3-1.xx.fbcdn.net/v/t1.0-9/13177424_1057390841002416_898049833830371991_n.png?oh=c05e32f9b0056ee0756d1072dd186e93&oe=5854B427) Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: gman86 on August 23, 2016, 07:54:15 AM I don't see a link to download it
Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: vwaudiguy on August 23, 2016, 09:47:49 AM Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: k0mpresd on August 23, 2016, 11:15:03 AM I don't see a link to download it maybe if you ask nicely, he'll let you steal it? Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: nyet on August 23, 2016, 11:32:22 AM Unless the price of the tool includes trouble shooting every possible MED9 file it is worth $0
Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: nyet on August 23, 2016, 11:33:05 AM maybe if you ask nicely, he'll let you steal it? It doesn't bother you he is reselling other people's efforts here, published for free, and out of good faith? Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: k0mpresd on August 23, 2016, 12:18:48 PM It doesn't bother you he is reselling other people's efforts here, published for free, and out of good faith? his code is custom. Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: vwaudiguy on August 23, 2016, 12:27:26 PM It doesn't bother you he is reselling other people's efforts here, published for free, and out of good faith? Says this on the FB LAUNCH9 1.2 : FIRST WORLD LAUNCH CONTROL MED9 for 2.0TFSI with IGNITION RETARD + IGNITION CUT. LAUNCH CONTROL 2 STEP MAINTENANT DISPONIBLE POUR TOUS LES 2TFSI 2006 à 2009 Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: gman86 on August 23, 2016, 03:48:37 PM his code is custom. So it blanks the ECU and installs a complete new OS without any Bosch, VW or ERCOS code? Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: k0mpresd on August 23, 2016, 04:00:11 PM So it blanks the ECU and installs a complete new OS without any Bosch, VW or ERCOS code? that one is a reach guy, even for you. Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: teobolo on September 24, 2016, 04:09:09 AM Hi
I m trying to add soft NLS to an Audi S3 8p -cdl engine - version 8P0907115AB but not even got near to it. Is there any chance that anyone could kindly implement that feature to my file ? Thanks in advance Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: gman86 on September 24, 2016, 05:25:33 PM that one is a reach guy, even for you. A reach? You mean, not possible or unfair? So my point stands? You can't shout plagiarism / copyright shite when the whole premise if based on Bosch/VAG IP. Design your own RTC OS and comms protocol and then you'll have the right to moan about clones, theft and copyright. Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: Rick on September 27, 2016, 01:15:03 PM Forget the legality, it's a simple ethical issue. Bosch are not loosing out when small companies spend considerable resource on developing additional features. They are not harmed in any way. The same cannot be said when the small company has their work posted across the net.
Rick Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: vwaudiguy on September 27, 2016, 01:40:26 PM Forget the legality, it's a simple ethical issue. Bosch are not loosing out when small companies spend considerable resource on developing additional features. They are not harmed in any way. The same cannot be said when the small company has their work posted across the net. Rick This is a great point imo. Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: gman86 on September 28, 2016, 02:35:34 AM Forget the legality, it's a simple ethical issue. Bosch are not loosing out when small companies spend considerable resource on developing additional features. They are not harmed in any way. The same cannot be said when the small company has their work posted across the net. Rick Ah the old "bigger companies don't care" chat. How do they not? When folk sit and pick apart their IP, it allows larger competitors easy access to snoop and copy (Siemens, Delco et al). The whole point surrounding this is being labelled a thief, when regardless of ethics or morals, the whole product is based on theft itself. If I set up a small company based on changing components of Microsoft Windows, should I have the right to get upset when folk start to rip it off? Yes, I probably would - because it affected me. Would Microsoft be pissed off? Massively. I still stand by my comment in that if clones did not exist, a huge amount of sales from legitimate tools wouldn't have happened. I know I wouldn't drop 4k on MPPS when I had no idea what I was doing. I've played with it, am comfortable with it and if I ever choose to go into business, I'll be more than happy to buy a fully legit tool. I know this as a FACT - a few tuners I know have went this route. Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: Khendal on February 10, 2017, 04:04:01 AM I'm starting studying entire thread and also the one for disassembly a MED9.1 ... how is going here for AL and NLS ? Are there update? Is there a guide to follow or some example?
Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: gt-innovation on February 10, 2017, 04:56:07 AM I'm starting studying entire thread and also the one for disassembly a MED9.1 ... how is going here for AL and NLS ? Are there update? Is there a guide to follow or some example? No there is not. You either need to make one from scratch or buy something from the market. The concept is close enough to the existing als nls but instead of using tsrldyn you will need to retard the ignition angle and disable misfire detection while your code is executing otherwise you will get a blinking (misfire detection) epc light. Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: Khendal on February 10, 2017, 02:53:28 PM No there is not. You either need to make one from scratch or buy something from the market. The concept is close enough to the existing als nls but instead of using tsrldyn you will need to retard the ignition angle and disable misfire detection while your code is executing otherwise you will get a blinking (misfire detection) epc light. Thank you gt-innovation , I have already bought one :) Now I would like to figure out how to do it, but i don't know where to start :-\ and how to start...what have i to looking for ? Any advice would be appreciate ;) Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: shchita on January 23, 2018, 04:25:14 AM I know the topic is old, but could it be refreshed?
in the end - for NLS and AL, are the info into A2L or should be write manualy as in ME7.x? Title: Re: No-Lift-Shift (NLS) on MED9.1 Post by: gt-innovation on January 23, 2018, 04:37:27 AM I know the topic is old, but could it be refreshed? in the end - for NLS and AL, are the info into A2L or should be write manualy as in ME7.x? No there is not...As said before either buy or code you our own algo.A2l/asap/damos files are definitions for the original files they do not add automatically features. |