Pages: 1 ... 9 10 [11] 12 13 ... 31
Author Topic: Opinions: using KFLBTS vs LAMFA for fuel all the time?  (Read 385525 times)
julex
Hero Member
*****

Karma: +79/-4
Offline Offline

Posts: 923


« Reply #150 on: February 08, 2012, 01:36:37 PM »

damn julex, if you are right - which from what you've written i think you are, this is a major major find bro...

Glad to help again.

With CWLAMFAW set to 0 my car started self-regulating at WOT like nobody's business. I might go a bit lower on LAMBDA (lower AFR) as this was a first whack but my afr started at 13:0 at 4.5k with light knock and rode down to 11.5 which is my target at 7.2k... at the same time the retardation was controlled. I like it. I am not afraid to run out of meth now as high knock over -8 deg with douse the engine with 10.5:1 afr with current table.
Logged
s5fourdoor
Hero Member
*****

Karma: +33/-3
Offline Offline

Posts: 617


« Reply #151 on: February 08, 2012, 01:54:07 PM »

just to verify, you are seeing it transisition off the LAMFA map and not the KFLBTS map?  what was your model EGT at the time of the "now working functionality" doing the enrichment?
Logged
nyet
Administrator
Hero Member
*****

Karma: +607/-168
Online Online

Posts: 12270


WWW
« Reply #152 on: February 08, 2012, 02:17:47 PM »

Right. In that case the diagram might be right. Assuming the retardation is considered negative, min function would return wkrma adjusted by dzwwl.

wait wait wait.

so you're saying if this is right:

0: dzwlamfaw = min (0, min (0, dzwwl) + wkrma)
1: dzwlamfaw = min (0, dzwwl + wkrma)

then if dzwwl is sufficiently positive, it will always cancel out wkrma when CWLAMFAW bit0 is 1, but it will get clamped to 0 when CWLAMFAW bit0 is 0, letting dzwlamfaw follow min(0, 0 + wkrma) rather than min(0,0)
Logged

ME7.1 tuning guide
ECUx Plot
ME7Sum checksum
Trim heatmap tool

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 ex
julex
Hero Member
*****

Karma: +79/-4
Offline Offline

Posts: 923


« Reply #153 on: February 08, 2012, 02:21:34 PM »

I shut off KFLBTS by raising its threshold model temp to 900C below which is doesn't intervene. I also adjusted the map to be more RS4 like where the richest point is significantly higher AFR (don't remember but I think I settled for 10.8 or so). RS4's values are much higher than that.

I reach 900C modeled temps if I do real long pull 5th or back to back in 4th. At this point the ATR would be about to kick in too triggered by EGT sensors so I figured a bit of pre-emptive intervention is in order.

I modified KFLAMKR so that it now has 0.0 row which makes it the driving force in lambda control. It has 6 ACTUAL load points (unlike LAMFA which has driver's requested load) at my disposal and allows me to set target lambda for any load, where it matters anyway.

Pretty cool stuff.

Tony was onto something pioneering use of this path.

Logged
julex
Hero Member
*****

Karma: +79/-4
Offline Offline

Posts: 923


« Reply #154 on: February 08, 2012, 02:23:33 PM »

wait wait wait.

so you're saying if this is right:

0: dzwlamfaw = min (0, min (0, dzwwl) + wkrma)
1: dzwlamfaw = min (0, dzwwl + wkrma)

then if dzwwl is sufficiently positive, it will always cancel out wkrma when CWLAMFAW bit0 is 1, but it will get clamped to 0 when CWLAMFAW bit0 is 0, letting dzwlamfaw follow min(0, 0 + wkrma) rather than min(0,0)

I wish that was the case, however the logging with CWLAMFAW = 1 showed output of dzwlamfaw  to be equal to a small fraction of wkrma, as per me log excerpts above. I can't really figure it out without somebody looking at assembly to figure out what's going on in there.
Logged
Tony@NefMoto
Administrator
Hero Member
*****

Karma: +132/-4
Offline Offline

Posts: 1389


2001.5 Audi S4 Stage 3


« Reply #155 on: February 08, 2012, 03:04:51 PM »

Pretty cool stuff.

Tony was onto something pioneering use of this path.

I just thought this was the right way to do it.  Wink Glad I didn't copy any of the tuners.

Just spend five years looking at the assembly code without the OLS files, or the ME7 FR...

Anyways, back on topic, I will try to go over the assembly code for this tonight and grab some more info for you guys.
Logged

Remember you have to log in if you want to see the file attachments!
Info or questions, please add to the wiki: http://www.nefariousmotorsports.com/wiki
Follow NefMoto developments on Twitter: http://twitter.com/nefmoto
NOTORIOUS VR
Administrator
Hero Member
*****

Karma: +58/-7
Offline Offline

Posts: 1056


« Reply #156 on: February 08, 2012, 03:50:12 PM »

wow this is crazy! nice find julex!
Logged

SCHNELL ENGINEERING BLOG ·  STANDALONE ECUS · TUNING · DYNO · WIRING · PARTS · VEMS
Google Talk: NOTORIOUS.VR
n00bs start here: http://s4wiki.com/wiki/Tuning
berTTos
Full Member
***

Karma: +24/-0
Offline Offline

Posts: 91


« Reply #157 on: February 08, 2012, 03:59:35 PM »

great discussion gentlemen!

thanks for the great analysis Julex.
Logged
Matt Danger
Full Member
***

Karma: +17/-1
Offline Offline

Posts: 116


« Reply #158 on: February 08, 2012, 04:18:51 PM »

Nice work Julex!
Logged
Tony@NefMoto
Administrator
Hero Member
*****

Karma: +132/-4
Offline Offline

Posts: 1389


2001.5 Audi S4 Stage 3


« Reply #159 on: February 09, 2012, 12:28:26 AM »

8D0907551M 002
CWLAMFAW is a byte located at 0x818ECB
DZWWL is a signed byte located at 0x380DA5 Timing Offset Degrees 0.75 (positive numbers for advance, negative for retard)
WKRMA is a unsigned byte located at 0xF9B3 Timing Retard Degrees 0.75 (postive numbers for retard)

Here is the CWLAMFAW logic with the result of the equation being timing retard used for the table lookup:
CWLAMFAW 0: (max(0, DZWWL) * -1) + WKRMA
CWLAMFAW 1: min(0, (DZWWL * -1) + WKRMA)

Code:
loc_859228:
      extp    #206h, #1
      movbz   r4, CWLAMFAW
      and     r4, #1
      jmpr    cc_Z, loc_859284
      movb    rl4, DZWWL
      cmpb    rl4, #0
      jmpr    cc_SLE, DZWWL_LessThanOrEqualToZero
      cmpb    rl4, WKRMA
      jmpr    cc_ULE, loc_859248
      movb    KFLAMKRL, ZEROS
      jmpr    cc_UC, loc_8592B8
; -----------------------------------

loc_859248:
      movb    rl4, DZWWL
      movb    rl5, WKRMA
      subb    rl5, rl4
      jmpr    cc_NC, loc_859256
      movb    rl5, #0

loc_859256:
      movb    KFLAMKRL, rl5
      jmpr    cc_UC, loc_8592B8
; -----------------------------------

DZWWL_LessThanOrEqualToZero:
      movb    rl4, DZWWL
      cplb    rl4
      addb    rl4, #1
      movb    rl5, WKRMA
      cmpb    rl4, #0
      jmpr    cc_SLT, loc_859276
      addb    rl5, rl4          
      jmpr    cc_NC, loc_85927E
      movb    rl5, #0FFh        
      jmpr    cc_UC, loc_85927E
; -----------------------------------

loc_859276:                    
      negb    rl4              
      subb    rl5, rl4          
      jmpr    cc_NC, loc_85927E
      movb    rl5, #0          

loc_85927E:
      movb    DZWLAMFAW, rl5
      jmpr    cc_UC, loc_8592B8
; -----------------------------------

loc_859284:
      movb    rl4, DZWWL
      cmpb    rl4, #0                
      jmpr    cc_SGE, loc_859296    
      movb    rl6, DZWWL
      cplb    rl6                    
      addb    rl6, #1                
      jmpr    cc_UC, loc_859298      
; -----------------------------------

loc_859296:                          
      movb    rl6, #0                

loc_859298:                          
      movb    rl4, rl6              
      movb    rl5, WKRMA ; Move Byte
      cmpb    rl4, #0                
      jmpr    cc_SLT, loc_8592AC    
      addb    rl5, rl4              
      jmpr    cc_NC, loc_8592B4      
      movb    rl5, #0FFh            
      jmpr    cc_UC, loc_8592B4      
; -----------------------------------

loc_8592AC:                          
      negb    rl4                    
      subb    rl5, rl4              
      jmpr    cc_NC, loc_8592B4      
      movb    rl5, #0                

loc_8592B4:
      movb    DZWLAMFAW, rl5

loc_8592B8:

EDIT: I added a code block of the assembly code for the CWLAMFAW logic.
« Last Edit: February 09, 2012, 08:58:24 AM by Tony@NefMoto » Logged

Remember you have to log in if you want to see the file attachments!
Info or questions, please add to the wiki: http://www.nefariousmotorsports.com/wiki
Follow NefMoto developments on Twitter: http://twitter.com/nefmoto
julex
Hero Member
*****

Karma: +79/-4
Offline Offline

Posts: 923


« Reply #160 on: February 09, 2012, 07:52:26 AM »

Thanks Tony!

Looks like formula is nothing like either the diagram or notes under it. I will do some logging with dzwwl to see how it all plays out.


Thanks!
Logged
nyet
Administrator
Hero Member
*****

Karma: +607/-168
Online Online

Posts: 12270


WWW
« Reply #161 on: February 09, 2012, 11:58:20 AM »

CWLAMFAW 0: (max(0, DZWWL) * -1) + WKRMA
CWLAMFAW 1: min(0, (DZWWL * -1) + WKRMA)

Note that this is equivalent to

CWLAMFAW 0: min(0, -DZWWL) + WKRMA
CWLAMFAW 1: min(0, -DZWWL + WKRMA)

... i.e. the diagram, sans the surrounding min() for cwlamfaw 0, which is presumably unneeded if wkrma is always > 0

Interesting Smiley
« Last Edit: March 31, 2012, 11:12:48 AM by nyet » Logged

ME7.1 tuning guide
ECUx Plot
ME7Sum checksum
Trim heatmap tool

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 ex
robin
Full Member
***

Karma: +20/-1
Offline Offline

Posts: 139


« Reply #162 on: February 09, 2012, 12:00:08 PM »

Great work guys. Looking forward to playing with this a bit later tonight.
Logged
nyet
Administrator
Hero Member
*****

Karma: +607/-168
Online Online

Posts: 12270


WWW
« Reply #163 on: February 09, 2012, 12:37:34 PM »

Basically, 0 means "only let dzwwl retard dzwlamfaw" but 1 means "let dzwwl advance or retard dzwlamfaw"

sound right?
Logged

ME7.1 tuning guide
ECUx Plot
ME7Sum checksum
Trim heatmap tool

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 ex
Tony@NefMoto
Administrator
Hero Member
*****

Karma: +132/-4
Offline Offline

Posts: 1389


2001.5 Audi S4 Stage 3


« Reply #164 on: February 09, 2012, 12:59:17 PM »

Basically, 0 means "only let dzwwl retard dzwlamfaw" but 1 means "let dzwwl advance or retard dzwlamfaw"

sound right?

That is my understanding as well.
Logged

Remember you have to log in if you want to see the file attachments!
Info or questions, please add to the wiki: http://www.nefariousmotorsports.com/wiki
Follow NefMoto developments on Twitter: http://twitter.com/nefmoto
Pages: 1 ... 9 10 [11] 12 13 ... 31
  Print  
 
Jump to:  

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