Announcement

Collapse
No announcement yet.

Unmodify lambda control for normal operation

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Unmodify lambda control for normal operation

    Ive been trying to figure out the lambda modification code placed by PRJ that give a 20 second delay to lambda control. the issue im having with it is that it seems to run all the time when engine comes down from idle. i get very rich readings for that rough 20 second delay than lambda control will step back in and bring AFR's back to the target AFR again. i would prefer for the ECU to not do this. i have been searching the code since it seems there is no modifcation to any constants or mapping relating to this. has anyone else noticed this when you come down from deceleration to idle and stay at idle that the engine seems to hold a static AFR like lambda control is off for too long? Even if i am wrong about this operation i want to get rid of the lambda control for for so long after coming down from deceleration, i would perfer it to come back on instantly.

    I think this the code or at least part of that is used to give this 20 second delay. The NOP code is the modifications made to remove the instant start up of the lambda sensor. if someone could confirm that im on the right track that would be great.
    19AF code_19AF: ; CODE XREF: code_2118-76Dj
    code:000019AF mov P2, #1 ; Port 2
    code:000019B2 mov R0, #0x60 ; '`' ; Move (Op1 <- Op2)
    code:000019B4 movx A, @R0 ; Move from/to external RAM
    code:000019B5 mov B, A ; B-Register
    code:000019B7 nop ; No operation
    code:000019B8 nop ; No operation
    code:000019B9 nop ; No operation

    code:000019BA mov B, #0x1E ; B-Register
    code:000019BD mov C, OVL_1.3 ; Move (Op1 <- Op2)
    code:000019BF anl C, /OVL_1.1 ; Logical AND (op1 &= op2)
    code:000019C1 anl C, OVL_1.4 ; Logical AND (op1 &= op2)
    code:000019C3 nop ; No operation
    code:000019C4 nop ; No operation

    code:000019C5 mov A, B ; B-Register
    code:000019C7 cjne A, #0x1E, code_19CC ; Compare Operands and JNE
    "The really good drivers got the bugs on the side windows." Walter Röhrl

  • #2
    I'm not sure about the prjmod since I haven't done a complete disassembly for that. But as far as I know, you're not on the right track.

    Comment


    • #3
      Do you have fuel cut during decel?
      Had similar behavior without fuel cut, o2 sensor got "fuel" and heat element caused an error - heater open was the error message at LC-1.
      Don't know if a sensor malfunction leads to an "rich" output until the sensor is heated again to send a proper signal.

      Could image this failure cause of your too rich setup up with that injectors.

      Comment


      • #4
        Originally posted by Acki View Post
        Do you have fuel cut during decel?
        Had similar behavior without fuel cut, o2 sensor got "fuel" and heat element caused an error - heater open was the error message at LC-1.
        Don't know if a sensor malfunction leads to an "rich" output until the sensor is heated again to send a proper signal.

        Could image this failure cause of your too rich setup up with that injectors.
        yes fueling shuts off during deceleration. i did have an issue with my close throttle switch not working but i corrected that as well. i actually thought the failed closed throttle switch caused the issue but it didnt. replacing the switch did fix the fueling on deceleration though, that was annoying lol.

        basically it does this, when i drive the actual AFR stays right in the 14.7 range but when i lift throttle it first goes lean on deceleration than once the idle switch is contacted and it gets close to a 1000RPM fueling comes back on and goes to anywhere between 10.0AFR and 11.0AFR where it stays for 20+ seconds than it must slowly allow lambda control to come back on and it will start to target 14.7 AFR. i have changed 3 different narrowband sensors thinking there may have been an issue with them but they all gave the same end result. i may hook up my 14point7 controller again and feed the narrowband signal from it into the ECU instead and see if makes a difference feed it a simulated signal instead of the original signal.

        Im using AEM uego wideband controller at the moment and it only has 1 narrowband output that im using for the data logging. one other thing i tried too was to use an upstream narrowband sensor from an MK4 VW with an adapter i made to plug it into the URS6. sensor seemed to react faster than the original OEM sensors but still the same end result as above. i really cant use the data/function sheets for this one as its pretty obvious that it does not operate like the standard lambda control system.

        I will post information about lambda control from the function sheets if anyone feels its necessary in helping figure this out.
        "The really good drivers got the bugs on the side windows." Walter Röhrl

        Comment


        • #5
          May you should test original setup for your signals but I would also propose to do a proper tune.
          I only see a workaround and no real solution when you touch the lambda routine with your own stuff (possible there is a bug in).

          Comment


          • #6
            Originally posted by Acki View Post
            May you should test original setup for your signals but I would also propose to do a proper tune.
            I only see a workaround and no real solution when you touch the lambda routine with your own stuff (possible there is a bug in).
            my tuning is fine. maybe you should read the wiki a little closer about the modifications PRJ made to the lambda control routine.

            Right from the wiki.
            Closed loop control

            Control principles


            Fueling is controlled in closed loop by 2 point O2 sensors. The ECU actually differentiates between 5 states:
            • Very rich
            • Rich
            • Stoich
            • Lean
            • Very lean

            Based on these states corrective action is applied.
            There are short term and long term corrections. They are visible in group 000 in VCDS. Long term trim is disabled in prjmod.
            In fast logging, the lambda intervention is visible in AFR_REQ.
            Another feature of prjmod is initial delay. If you use a simulated signal, then usually the signal is static during LSU warmup rather than mimicking a real O2 sensor. Thus the ECU algorithm instantly goes into a control mode with the trim running to 25% very quickly. To combat this, after engine startup a roughly 20 second delay has been added before the O2 correction function is allowed to run.
            There are a ton of configurable parameters, such as the PI control, all kinds of voltages, trim limits, diagnosis limits and so on, however not much of it is in the xdf because it simply works quite well "as-is".
            As you can clearly see the long term correction no longer functions and there was 20 second delay added before 02 correction. well i think this 20 second delay is in play all the time and not just at start up because there is almost exactly a 20 second delay till lambda control comes back and starts functioning again all the time. i want the 20 second delay gone and i want instant lamba correction like its supposed to work from stock.

            original setup meaning revert my car back to stock?!?!? riiiight...... that would take forever. i have no MAF wiring as it was removed when i went to VEMS, i dont even own a good MAF anymore also im not going to waste time and materials to fabricate a special intake just to put a stock MAF on an HX35. thats just pointless. its like trying to breathe through a straw.

            Since you know how to tune this system so well already acki why do you write up a more in depth document to help the rest of the community with using this instead of just telling everyone their tuning sucks and to not mess with it. im here to help people learn, not put them down when they dont understand something about this.
            Last edited by vwnut8392; 12th February 2018, 21:37.
            "The really good drivers got the bugs on the side windows." Walter Röhrl

            Comment


            • #7
              Why I know before that I regret any try to help you...

              Comment


              • #8
                I can’t tune for **** but I’d say you need to turn off lambda and tune your idle map for stoich then turn lambda back on again.

                S2 Coupe 3B Project


                Ur quattro restoration

                S2 Avant

                Boost is the new rock and roll!
                sigpic

                Comment


                • #9
                  Originally posted by newsh View Post
                  I can’t tune for **** but I’d say you need to turn off lambda and tune your idle map for stoich then turn lambda back on again.
                  when i do that the car is too lean under boost. i get 12.5-13.0 AFR under boost. aside from this problem this is the best my car has ever ran. i get mid 11 AFR's in boost, it targets 14.7 perfectly in closed loop operation when light driving. just this constant rich spike has shot my fuel economy to hell, if i can get rid of it than all will be good again. what i wonder is why my target AFR does not follow my target AFR table when in closed loop, this is something i just realized. my target AFR when light driving is like 17.0 but i still get 14.7. i dont understand why it doesnt simply follow the lambda table when in closed loop. its almost like the code modifications make it ignore the lambda table completely. im used to VEMS when it comes to lambda control because its pretty simple. set a few of the thresholds for it to turn on and off, set the target AFR table how you want it when you are in closed loop operation and than adjust the main VE table till your lambda control is within 5% of 100% in either direction in correction. the car would be off by about 2% in either direction. it just puzzles why PRJ didnt makes this simpler with all of the coding work he put into it. i always thought closed loop operations prurpose was to follow the lambda table? i wish he'd just release a disassembly already for his modifications, im so tired of trying to figure out his work. i have a life and a family that i ignore because i spend all my time trying to figure this stuff out.
                  "The really good drivers got the bugs on the side windows." Walter Röhrl

                  Comment


                  • #10
                    You have original M2.3.2 damos in your hands and you still speak about AFR table? :-D

                    Comment


                    • #11
                      That you fixed the idle switch is good. But IIRC i read in an SSP that the Motronic could use the potentiometer as replacement for the idle switch. So this should not be the problem.

                      I agree to Acki to say that even without running closed loop the car should run fine and safe to the mapped AFR. So i also don't like the idea to compensate wrong mapping with the lambda control. As you know on stock there are two map for lambda control activation. One is also there in case of continuous knocking. What does your knock control actually say?

                      And what does your engine do when running in idle? Is the narrow band lambda output jumping arround lambda 1? On a stock car you could see the that which is somehow the proof the control loop is working.
                      I have the feeling you lambda loop is not working at all somtimes f.e. stick to the steering maximum on one side.

                      and isn't it the goal of the lambda control to reach 14,7:1 in light cruise to keep emissions low and lowest fuel consumption?

                      just some points to think about. i'm also not tuning expert :-)
                      Last edited by -ice-; 13th February 2018, 22:18.

                      Comment


                      • #12
                        LOAD is not just a representation of cylinder filling, but the
                        theoretical Injector Time Open (Ti, Tee sub eye) needed to reach
                        stoich (Lambda= 1) with the current injector setup assuming that
                        the motor is "perfect".
                        Which it isn't, hence there are fueling tables which are used as
                        multiplicative corrections
                        to LOAD to reach the actual Ti.
                        Jim Conforti.
                        More I won't write when people only get blamed when they try to support.

                        Comment


                        • #13
                          Sigh...
                          1. THERE IS NO PROBLEM WITH LAMBDA CONTROL. There is a one shot 20 sec delay AFTER starting the engine, after that there are no issues.
                          2. Turn lambda control OFF tune the car to be perfect. Verify that requested AFR matches what you have in the map. If you have learned long term lambda trim in the ECU unplug the power for a moment, plug back in (incl. the emulator) and it will reset.
                          3. Requested AFR also has lambda correction in it. If it's targeting 10 AFR it means your actual AFR is like 20 without o2 correction.

                          Your problem is user error, plain and simple. You don't need to modify anything inside the ECU with prjmod besides calibration variables. I have tuned over 100 cars without any issues.
                          http://tuner.ee - http://www.facebook.com/tuner.ee

                          Comment


                          • #14
                            Originally posted by prj View Post
                            Sigh...
                            1. THERE IS NO PROBLEM WITH LAMBDA CONTROL. There is a one shot 20 sec delay AFTER starting the engine, after that there are no issues.
                            2. Turn lambda control OFF tune the car to be perfect. Verify that requested AFR matches what you have in the map. If you have learned long term lambda trim in the ECU unplug the power for a moment, plug back in (incl. the emulator) and it will reset.
                            3. Requested AFR also has lambda correction in it. If it's targeting 10 AFR it means your actual AFR is like 20 without o2 correction.

                            Your problem is user error, plain and simple. You don't need to modify anything inside the ECU with prjmod besides calibration variables. I have tuned over 100 cars without any issues.
                            i ordered the new injectors and a zeitronix ZT-3 wideband so once these get to me i will go over all of it again and see if i can correct it. im really starting to think these crappy ebay injectors are a huge part of my fueling problem.
                            "The really good drivers got the bugs on the side windows." Walter Röhrl

                            Comment


                            • #15
                              Anyway I would like to know more about the long term fuel trim.

                              As a two point Lambda probe can only measure rich or lean the ECU can easily correct the fuel to reach lambda 1 (just at the point the probe voltage is jumping)
                              But for long term trim it must be different. I think it works the way the ECU notes how long it needs to adjust fuel to reach lambda 1. With this it could know if the engine ran just a bit rich/lean or if it ran mega rich/lean.
                              Usually the adaptive values will be stored in the Xram to keep them stored until the battery voltage is disconnected. At the moment I don't know if the long term correction is just a single value which will be applied to all running conditions of the engine or if it is more advanced, somehow like a dynamic map to correct different in different running conditions.

                              who knows more?

                              Daniel

                              Comment

                              Working...
                              X