Pages: 1 ... 32 33 [34] 35 36 ... 40
Author Topic: Anti-lag launch and no-lift-shift secrets inside  (Read 490358 times)
maZer.GTi
Full Member
***

Karma: +68/-6
Offline Offline

Posts: 246


« Reply #495 on: October 16, 2015, 10:46:44 AM »

Haha maybe its a good idea to sell turbo fake whistle here Cheesy
Logged
hopsis
Full Member
***

Karma: +13/-4
Offline Offline

Posts: 174


« Reply #496 on: October 16, 2015, 11:02:02 AM »

Which things do You mean nyet? I'm thinking exhaust valves and manifolds as they probably aren't designed or made as robust as FI parts. Apart from those I don't know what's different.

I had the standard limiter last winter, nothing wrong with that. I don't plan on using this for actual launching, just for showing off for friends once in a while.
Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #497 on: October 16, 2015, 11:03:56 AM »

I'm thinking exhaust valves and manifolds as they probably aren't designed or made as robust as FI parts.

Exactly this Smiley
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
vwnut8392
Sr. Member
****

Karma: +18/-7
Offline Offline

Posts: 271


« Reply #498 on: October 25, 2015, 02:21:29 PM »

really hate to be double posting but im not sure where i belong to figure this one out. been working or getting the LC/NLS to work in a 2000 beetle 1.8T. its the 512K ECU by the way too. i used the last posted version of launch.exe to patch it originally and it did patch the BIN but it did not work. i took a look at it in IDA to see what happened and it looked to me like the first block was comparing coolant temp to the second bit in the TPS constant. after that it seemed just like any other 1mb LC patch. so i deleted the line of code pertaining to that block and shifted the code up to the original start point, saved and corrected the checksum. now it looks proper in IDA but it kind of works on the car. i can hear it start cutting ignition at 4500rpm but it pushes through to the rev limiter. im not sure what needs to be done to correct this so i figured i would consult the makers. i posted in the auto patch thread about this too and hopefully if i can get it working the auto patch program can be fixed so this doesnt happen. also i checked my clutch switch in group 66 in VCDS and it is verified as working.

i attached both a stock file that was patched with launch.exe and the one i modified that semi works.
« Last Edit: October 25, 2015, 02:57:50 PM by vwnut8392 » Logged
Jim_Coupe
Hero Member
*****

Karma: +16/-12
Offline Offline

Posts: 663



« Reply #499 on: October 26, 2015, 01:48:55 AM »

Which things do You mean nyet? I'm thinking exhaust valves and manifolds as they probably aren't designed or made as robust as FI parts. Apart from those I don't know what's different.

I had the standard limiter last winter, nothing wrong with that. I don't plan on using this for actual launching, just for showing off for friends once in a while.

Sound like a great idea Smiley  And fun!  Let´s Do THis!  Is there any video on this working?
« Last Edit: October 26, 2015, 01:50:44 AM by Jim_Coupe » Logged

E85oholic
hopsis
Full Member
***

Karma: +13/-4
Offline Offline

Posts: 174


« Reply #500 on: October 26, 2015, 02:07:05 AM »

Meh, I was a bit disappointed on the outcome. Decatted downpipes but stock exhaust with stock mufflers so not much drama. I'll try to get a good launch video some day.
Logged
Tatan974
Newbie
*

Karma: +0/-1
Offline Offline

Posts: 19


« Reply #501 on: November 06, 2015, 10:43:18 AM »

This issue can be fixed with a single opcode patch in flash without even removing the ECU from the car... It will even repair the EEPROM for you by itself.
Done this plenty of times at this point.

If you are going to read the EEPROM then search this forum for "Death Code". You should find what you need to change there to fix it.

I test reading eeprom by obd but non work Sad

How to repar it by the flash ?
Logged
ported2flow
Full Member
***

Karma: +2/-0
Offline Offline

Posts: 76


« Reply #502 on: December 18, 2015, 05:45:37 PM »

launch.exe 8N0906018J_matrix.bin 8N0906018J_matrix.ecu a1910 17b00

try the file i attached and report is working or not.



I didn't get it working on this ecu too
I tried your version too mazer
Engine stalls and epc is on off
Would like to have it on my car
Logged
maZer.GTi
Full Member
***

Karma: +68/-6
Offline Offline

Posts: 246


« Reply #503 on: December 24, 2015, 06:17:57 PM »



I didn't get it working on this ecu too
I tried your version too mazer
Engine stalls and epc is on off
Would like to have it on my car

Upload your current file please, i will check it.
Logged
ported2flow
Full Member
***

Karma: +2/-0
Offline Offline

Posts: 76


« Reply #504 on: December 25, 2015, 09:22:32 AM »

I am currently not on my pc
But it is exactly the same file you posted
Logged
dream3R
Hero Member
*****

Karma: +18/-8
Offline Offline

Posts: 1194


« Reply #505 on: December 25, 2015, 04:54:44 PM »

This issue can be fixed with a single opcode patch in flash without even removing the ECU from the car... It will even repair the EEPROM for you by itself.
Done this plenty of times at this point.

If you are going to read the EEPROM then search this forum for "Death Code". You should find what you need to change there to fix it.

Writing a single byte to it without correct checksum should do that too.
Logged



How to work out values from an A2L Smiley

http://nefariousmotorsports.com/forum/index.php?topic=5525.msg52371#msg52371


Starting Rev's http://nefariousmotorsports.com/forum/index.php?topic=5397.msg51169#msg51169

noobs read this before asking http://nefariousmotorsports.com/forum/index.php?topic=9014.0title=


ORGORIGINAL 05 5120 creator for Volvo
ORIGINAL Datalogger (Freeware) Author
ORGINAL finder of the 'extra' torque' limits
I don't have ME7.01 A2L I just use ID
Cloudforce
Full Member
***

Karma: +5/-13
Offline Offline

Posts: 106


« Reply #506 on: December 27, 2015, 02:27:39 AM »

Did anyone took a look at whats that code change is all about in IDA? Having the possibility to take a look at a screenshot of IDA at the change would be really appreciated.
Logged
berTTos
Full Member
***

Karma: +24/-0
Offline Offline

Posts: 91


« Reply #507 on: December 30, 2015, 07:43:37 PM »

Season's Greetings fellas!

First - thanks to Setzi for the excellent cleanup and modification of the original routine.  

I'm a few years late to this party but have used some holiday downtime to do some disassembling whilst learning to code custom ME7 subroutines.
  
I believe I've found an error in the NLS Ignition-cut-duration counter of this code.  http://nefariousmotorsports.com/forum/index.php?topic=607.msg5283#msg5283

I am very new to IDApro and C167 ASM in general so I am posting this in all humility and am quite open to the idea that my analysis is incorrect.  

See line seg003:0008E870 below -

Code:
03:0008E800 ; =============== S U B R O U T I N E =======================================
seg003:0008E800
seg003:0008E800
seg003:0008E800 sub_88E800:                             ; CODE XREF: sub_88B26E:loc_88B3A6P
seg003:0008E800
seg003:0008E800 arg_E826        =  0E82Ah
seg003:0008E800
seg003:0008E800                 jnb     word_FD56.8, loc_88E82A
seg003:0008E804                 mov     r4, 8E40h ; 8E40h
seg003:0008E808                 exts    #81h, #1 ; 'ü'  
seg003:0008E80C                 mov     r9, word_817E00
seg003:0008E810                 cmp     r4, r9          
seg003:0008E812                 jmpr    cc_NC, loc_88E82A
seg003:0008E814                 mov     r4, nmot_w      
seg003:0008E818                 exts    #81h, #1 ; 'ü'
seg003:0008E81C                 mov     r9, word_817E02
seg003:0008E820                 cmp     r4, r9        
seg003:0008E822                 jmpr    cc_ULE, loc_88E82A
seg003:0008E824                 movb    8DACh, ZEROS ; 8DACh
seg003:0008E828                 jmpr    cc_UC, loc_88E888
seg003:0008E82A ; ---------------------------------------------------------------------------
seg003:0008E82A
seg003:0008E82A loc_88E82A:                             ; CODE XREF: sub_88E800j
seg003:0008E82A                                         ; sub_88E800+12j ...
seg003:0008E82A                 jnb     word_FD56.8, loc_88E880
seg003:0008E82E                 jb      word_FD56.6, loc_88E876
seg003:0008E832                 mov     r4, nmot_w    
seg003:0008E836                 exts    #81h, #1 ; 'ü'
seg003:0008E83A                 mov     r9, word_817E06
seg003:0008E83E                 cmp     r4, r9          
seg003:0008E840                 jmpr    cc_ULE, loc_88E876
seg003:0008E842                 movbz   r4, 8B02h ; 8B02h
seg003:0008E846                 exts    #81h, #1 ; 'ü'
seg003:0008E84A                 movbz   r9, byte_817E08
seg003:0008E84E                 cmp     r4, r9        
seg003:0008E850                 jmpr    cc_ULE, loc_88E876
seg003:0008E852                 exts    #38h, #1 ; '8'
seg003:0008E856                 mov     r4, word_384FF0
seg003:0008E85A                 exts    #81h, #1 ; 'ü'
seg003:0008E85E                 mov     r9, word_817E04
seg003:0008E862                 cmp     r4, r9        
seg003:0008E864                 jmpr    cc_NC, loc_88E888
seg003:0008E866                 movb    8DACh, ZEROS
seg003:0008E86A                 add     r4, #1                
seg003:0008E86C                 exts    #38h, #1 ; '8'
seg003:0008E870                 movb    word_384FF0, rl4 ;*********************** I believe this line should be    mov   word_384FF0, r4 ***********************
seg003:0008E874                 jmpr    cc_UC, loc_88E888
seg003:0008E876 ; ---------------------------------------------------------------------------
seg003:0008E876
seg003:0008E876 loc_88E876:                             ; CODE XREF: sub_88E800+2Ej
seg003:0008E876                                         ; sub_88E800+40j ...
seg003:0008E876                 exts    #38h, #1 ; '8'
seg003:0008E87A                 mov     word_384FF0, ONES
seg003:0008E87E                 jmpr    cc_UC, loc_88E888
seg003:0008E880 ; ---------------------------------------------------------------------------
seg003:0008E880
seg003:0008E880 loc_88E880:                             ; CODE XREF: sub_88E800:loc_88E82Aj
seg003:0008E880                 exts    #38h, #1 ; '8'
seg003:0008E884                 mov     word_384FF0, ZEROS
seg003:0008E888
seg003:0008E888 loc_88E888:                             ; CODE XREF: sub_88E800+28j
seg003:0008E888                                         ; sub_88E800+64j ...
seg003:0008E888                 movb    rl4, 8AF3h
seg003:0008E88C                 rets
seg003:0008E88C ; End of function sub_88E800

As the line stands - it moves *byte* r14 value to *word* RAM variable 0x384FF0. At this point r14 = normal ignition closing time (coil dwell time) from tsrldyn as it was in ZUESZ before CALLS to this SUB.  I disassembled the earlier iteration of this function (as posted in this thread) and noted that it made use of r14 and an additional RAM location 0x384FF2 as a counter.  It seems that with the clean-up and addition of supplemental criteria to v.2 of the function, r14 somehow made its way into the v.2 code (even though its value is neither set nor referenced anywhere in this function save for the original line from ZUESZ before RETS).  

So -- long story short - this code does not compare an additive counter (add  r4, #1) to ConfigurableIgnitionCutDuration stored at location 0x817E04 (as I believe is the desired behavior) but, rather, compares *byte* r14 (which at this point contains whatever ignition closing time in ZUESZ happens to be) to *word* ConfigurableIgnitionCutDuration.

What does this mean in the real world --?  Effectively, I don't know that it means all that much beyond not having too much control over the duration of IgnitionCut.  In either case (counting r4++ until we reach ConfigurableIgnitionCutDuration or having an incorrect comparison with r14 serendipitously controlling when ignition is cut) we are oscillating between no ignition and normal ignition.  As soon as the comparison is satisfied we return to normal ignition for a moment only to be returned to the NLS function and if the clutch is still depressed and wped > X = ignition is cut again.  

If I am correct and there is an error in the coding of the counter - the functioning of the ignition cut during NLS is less than ideal and is bound to be more staccato than necessary, perhaps lending to the onset of knock.

In any event, there is an important realization here. Normal ignition *is* sporadically being attempted in the midst of everything.  Many of you have logged Knock Regulation during NLS and the consensus was that it was the result of false identification because how could Knock occur with no ignition.  Ignition is certainly occurring (even when this function is performing as designed) sporadically between exiting and entering NLS (otherwise the motor would stop) and it must be that actual Knock (or the approach of Knock) is being detected and that is where the excessive correction factors are coming from.

As has been said previously - the correct method of limiting engine speed during AL/NLS is with ignition retard, not oscillating between normal ignition and no ignition.  Regardless, I must say that examination (and enhancement) of this function by the community has been invaluable!  So -- many thanks to all of you crazy, brilliant guys Smiley

Please chime in anyone if you can confirm or dispute my findings.

Lastly - I do not think that it is wise to disable Knock Regulation in conjunction with an Ignition Cut model of AL/NLS and while it is acceptable to disable KR with an Ignition Retard model, I am finding that it is not necessary.

Happy New Year!!!




« Last Edit: December 30, 2015, 07:47:03 PM by berTTos » Logged
dream3R
Hero Member
*****

Karma: +18/-8
Offline Offline

Posts: 1194


« Reply #508 on: December 30, 2015, 07:56:46 PM »

You sure the register is noy moved onto the stack?   Sorry on the phone.
Logged



How to work out values from an A2L Smiley

http://nefariousmotorsports.com/forum/index.php?topic=5525.msg52371#msg52371


Starting Rev's http://nefariousmotorsports.com/forum/index.php?topic=5397.msg51169#msg51169

noobs read this before asking http://nefariousmotorsports.com/forum/index.php?topic=9014.0title=


ORGORIGINAL 05 5120 creator for Volvo
ORIGINAL Datalogger (Freeware) Author
ORGINAL finder of the 'extra' torque' limits
I don't have ME7.01 A2L I just use ID
DT
Full Member
***

Karma: +20/-1
Offline Offline

Posts: 184


« Reply #509 on: December 30, 2015, 08:39:25 PM »

Code:
seg003:0008E870                 movb    word_384FF0, rl4 ;*********************** I believe this line should be    mov   word_384FF0, r4 ***********************

As the line stands - it moves *byte* r14 value to *word* RAM variable 0x384FF0.
The infamous rl4 (rL4) vs r14 strikes again?

rl4 is lower byte of r4 which in this code works just fine since NLScounter is not expected to exceed 256.

Lastly - I do not think that it is wise to disable Knock Regulation in conjunction with an Ignition Cut model of AL/NLS and while it is acceptable to disable KR with an Ignition Retard model, I am finding that it is not necessary.
Why would you need KR during AL when there is no load?
« Last Edit: December 30, 2015, 08:42:40 PM by DT » Logged

Pages: 1 ... 32 33 [34] 35 36 ... 40
  Print  
 
Jump to:  

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Page created in 0.033 seconds with 17 queries. (Pretty URLs adds 0.001s, 0q)