Instructions to change fuel maps on 14CUX Griffith, Chimaera

Instructions to change fuel maps on 14CUX Griffith, Chimaera

Author
Discussion

danbourassa

246 posts

137 months

Wednesday 12th March 2014
quotequote all
Colin is talking about the latest glitches I've noticed. They are in RobertsFuelTemp.png which is from a portion of his March 9 log file. These occasional upward glitches are not normal and my first reaction was to blame Colin's curve fitting technique that I mentioned earlier. Fortunately (for RG, at least) he was able to correlate it to road speed data in the file.

Looking at roadspeed_and_fueltemp.png it's hard not to notice a correlation between the two. I'm stumped on this one.

stevesprint

Original Poster:

1,114 posts

179 months

Wednesday 12th March 2014
quotequote all
danbourassa said:
Steve, yes, I agree. This looks like the same problem.
Dan, I experience the strobing issue nearly every time I run RoverGauge and it was really bugging me to the point I was considering adding the 120 ohms inline resistor to the Road Speed sensor as highlighted in http://www.actproducts.co.uk/2011/lucas-14cux-fuel... .

The daft thing is my engine runs faultlessly including my speedo and I would be none the wiser if I didn’t have RoverGauge but at least now I know it’s a 14CUX quirk. I know my road speed sensor is compatible with the 14CUX because when I had 8 teeth on my chopping wheel I use to hit the road speed limiter with TVR R2422, that includes the road speed limit code like LR 2422. Maybe the only way to reduce the strobing would be to change pulse frequency per prop revolution, but what’s the point.

I’m just very pleased you have put my mind at rest, so once again THANKS !!

stevesprint

Original Poster:

1,114 posts

179 months

Wednesday 19th March 2014
quotequote all
cmb said:
I just released RoverGauge 0.6.0, which has a couple fixes and a couple new features. Here are the main points:
  • Added display of MAF CO trim (only when open loop)
Colin and Dan thanks for the new CO Trim display in RoverGauge, I've finally tested it with my new wideband lambda sensor and the results are below.

The CO trim voltage in RoverGauge appears to be very accurate but RoverGauge only displays 0.02v to 2.5v while the AFM CO trim voltage is 0v to 3.2v.

When the ignition is turned on the CO trim defaults to the last value when the engine was turned off. As a result I didn't think the CO trim display was working until I realised the engine has to be running for it to be recalculated.

I can also confirm changing the CO trim does change the AFR and I've tested the following revisions with my 4.3 fuel tables and data.

TVR 2422 & TVR 2967
0.02v = 16 lambda
0.75v = 14
1.25v = 13.5
2.5v = 12.5

Land Rover 3383
0.02v = 14.5 lambda
0.15v = 13.5
1.6v = 13
2.5v = 12.5

I have to admit the lambda readings were not very steady so I’ve taken averages. As a result I’m starting to think a slower & steadier lambda sensor would be better with a TVR as the lambda readings with my LC-2 on my daily drive are very steady.

danbourassa

246 posts

137 months

Thursday 20th March 2014
quotequote all
stevesprint said:
The CO trim voltage in RoverGauge appears to be very accurate but RoverGauge only displays 0.02v to 2.5v while the AFM CO trim voltage is 0v to 3.2v.
Steve, I don't know why the low end stops at 0.02V but the high end stops at 2.5V by design in the software. Look at mafTrim.asm and you will notice that after a number of 16-bit left shifts, the MSB is tested. The MSB is set when the measured value passes the half way point toward 5.0V. Software then substitutes $FFFF. I don't know why this was done, or how it's even useful. I suspect that Colin rejects the $FFFF value in RG. This limit is easy to undo if you want more measurement range.

stevesprint said:
When the ignition is turned on the CO trim defaults to the last value when the engine was turned off. As a result I didn't think the CO trim display was working until I realised the engine has to be running for it to be recalculated.
I've been meaning to post about this. Mark made me aware of this a few days ago.
When power to the ECU is turned on, the correct fuel map is selected as soon as the tune resistor is measured. However, the correct ADC control list is NOT selected until the ECU gets a spark. The limp-home list (at address C082) is used until then. This is a closed loop list and does not have the channel 9 (CO trim) measurement. I think that if you just turn the ignition key to crank the engine very briefly but not enough to start the engine, you should install the correct ADC list and the voltage display should become active. Please let me know if it works as I suspect.

cmb

103 posts

175 months

Friday 21st March 2014
quotequote all
danbourassa said:
I suspect that Colin rejects the $FFFF value in RG.
The code simply shifts the stored value right by seven positions before using the result to compute the trim voltage. The lowest seven bits are therefore don't-cares because they're shifted out. After the shift, the highest possible value is 0x1FF, which is approximately half of the maximum ADC reading of 1024 counts. The result is a maximum measurement of 2.5V.

davep

1,143 posts

284 months

Friday 21st March 2014
quotequote all
Dan, Colin would it be feasible to pull out the injector pulse duty cycle values and include them as part of the data logging stream?

danbourassa

246 posts

137 months

Friday 21st March 2014
quotequote all
davep said:
Dan, Colin would it be feasible to pull out the injector pulse duty cycle values and include them as part of the data logging stream?
Dave, I just exchanged a few emails with Colin about this.
The final fuel injector value is stored in a single 16-bit location and is applied to the engine bank that's currently being fired. For open loop, this value should be identical for both engine banks and would be a useful addition to both the display and the logging. Colin thinks he can make room at the bottom, near the logging controls.

For closed loop, the value will be different for each bank due to Lambda trim and we can't tell which bank it's for. So I think this can be a future upgrade for open loop only.

When we start modifying 14CUX code, which I hope will happen soon, one of the changes will be separate locations for the bank specific fuel values. I believe this may supply important information about the health of the engine in closed loop mode.

spitfire4v8

3,992 posts

181 months

Friday 21st March 2014
quotequote all
For closed loop cars could you display the duration only say at wideopen throttle ie outside lambda control. Though i cant see a user benefit other than seeing wgen you are approaching max injector duration if pushing the bhp to the limit of the injectors.
I do find the emerald ecu bar graph of percentage injector duration useful for just this very reason.

danbourassa

246 posts

137 months

Friday 21st March 2014
quotequote all
spitfire4v8 said:
For closed loop cars could you display the duration only say at wideopen throttle ie outside lambda control. Though i cant see a user benefit other than seeing wgen you are approaching max injector duration if pushing the bhp to the limit of the injectors.
I do find the emerald ecu bar graph of percentage injector duration useful for just this very reason.
Joolz, that's an interesting thought. Once the ECU goes open loop, there should be no difference. Maybe we should just try it out for both map types. The bar graph may jitter a bit when in closed loop but it may be acceptable.

stevesprint

Original Poster:

1,114 posts

179 months

Sunday 23rd March 2014
quotequote all
danbourassa said:
Steve, I don't know why the low end stops at 0.02V but the high end stops at 2.5V by design in the software. Look at mafTrim.asm and you will notice that after a number of 16-bit left shifts, the MSB is tested. The MSB is set when the measured value passes the half way point toward 5.0V. Software then substitutes $FFFF. I don't know why this was done, or how it's even useful. I suspect that Colin rejects the $FFFF value in RG. This limit is easy to undo if you want more measurement range.
Dan I assumed its limited to 2.5v by the ECU code and not RoverGauge, maybe to limit the max rich adjustment setting. Could the low end stop be +.02 volts as the reading in RoverGauge is consistently 0.03v higher than the voltage on the multi-meter at AFM, if not it could be the TVR wiring. Thanks for the encouragement to look at the code as I can see what you mean. It helped I had to learn about bit shifting while deciphering the data stream from my LC-2 sensor. I recon I could change the CO limit myself but the whole CO trim adjustment seems redundant now we have control of the fuel table. In fact I would be tempted to disable the co trim in the code after a successful mapping session.

danbourassa said:
I've been meaning to post about this. Mark made me aware of this a few days ago.
When power to the ECU is turned on, the correct fuel map is selected as soon as the tune resistor is measured. However, the correct ADC control list is NOT selected until the ECU gets a spark. The limp-home list (at address C082) is used until then. This is a closed loop list and does not have the channel 9 (CO trim) measurement. I think that if you just turn the ignition key to crank the engine very briefly but not enough to start the engine, you should install the correct ADC list and the voltage display should become active. Please let me know if it works as I suspect.
Dan, You are right, once the correct ADC control list is installed the voltage display stays active until you turn off the ignition off for more than 5 seconds. However the voltage display doesn’t become active after cranking a while with the coil HT lead disconnected. The engine does seem to need to fire briefly before the voltage display becomes active. What would happen if I copied MAP2’s ADC control list over the limp-home ADC control list?

Steve curious Sprint tried the same CO adjustment test with tune resister 5 and again fired then stalled the engine. Surprisingly the long term trim changes as you turn the co trim screw. Strange but true, especially as I powered up the ECU with tune resister 5 and didn’t hot swap the resister, the results are as follows:
0.02v = -98%
1.25v = 0%
2.5v = +100%

Even more surprising is adjusting the CO trim screw while the engine is running changes the long-term trim in real time. I thought the CO screw was ignored during closed loop. Yes, I'm now narrow and wide band lambda'ed up and ready for more testing so please don't hesitate to ask.

spitfire4v8 said:
For closed loop cars could you display the duration only say at wideopen throttle ie outside lambda control. Though i cant see a user benefit other than seeing wgen you are approaching max injector duration if pushing the bhp to the limit of the injectors.
I do find the emerald ecu bar graph of percentage injector duration useful for just this very reason.
Dave and Joolz what a brilliant idea and would finally settle the injectors maxing out debate.

danbourassa said:
When we start modifying 14CUX code, which I hope will happen soon, one of the changes will be separate locations for the bank specific fuel values. I believe this may supply important information about the health of the engine in closed loop mode.

Recently a TVR friend asked “Now the ECU is cracked hasn’t the topic now been thrashed to death”. I LOL and replied “No, it’s about to get even more exciting”. My reply couldn’t have been more appropriate especially after catching up with the last 3 days posts.

davep

1,143 posts

284 months

Monday 24th March 2014
quotequote all
Steve you mention doing a tune resistor hot swap do you do this without switching ignition Off and On again? I could only get the software to detect the presence of a resistor by doing an ignition Off and On but I haven't tried a resistor value change.

I'm looking forward to doing correlations based on TPS, MAF, injector pulse width and AFR data logs (how's that coming on btw?). It'd be great if you could do a full on road test and then merge the AFR data with the RG logs into Excel. We could then get a detailed fix on what AFR values can be expected for varying input conditions and a 4.3 pre-cat open loop profile.

you said:
The CO trim voltage in RoverGauge appears to be very accurate but RoverGauge only displays 0.02v to 2.5v while the AFM CO trim voltage is 0v to 3.2v.

When the ignition is turned on the CO trim defaults to the last value when the engine was turned off. As a result I didn't think the CO trim display was working until I realised the engine has to be running for it to be recalculated.
Interesting, I did some CO trim checks recently and found the following:

With ignition Off and a DVM across Red/Black (Earth ref to/from ECU pin 25 and for Coolant/Fuel temp sensors) and Blue/Red (I/P to ECU pin 22) on the MAF connector, gave a residual voltage of 20mVdc. Remember the Main Relay is not yet energised so no supply to MAF as yet.

Ignition On, meter read 1.27Vdc, RG connected, read 1.30Vdc (the last reading prior to ignition Off).

Adjusted trim pot for increase to 1.32Vdc on meter, no change on RG.

Fired engine up, RG reads 1.32Vdc.

Made further adjustments to trim pot and RG reading increases and decreases accordingly with same values as the meter. Like you say the RG reading max'd out at 2.5 Vdc

you also said:
Even more surprising is adjusting the CO trim screw while the engine is running changes the long-term trim in real time. I thought the CO screw was ignored during closed loop.
On page 2:

Dan said:
The closed loop maps do not have this (a CO trim voltage check), although adjusting it will still have an effect, as you know. The measured value is stored in the location that is normally used for storing long term trim.
and

Blitzracing said:
This is the bit that gets me. We have a preset voltage value for the CO trim in closed loop, but Ive not managed to see any effect, certainly on the mixture or short term trim values. Are we saying this voltage will be a starting point for the long trim mid point?
I'm confused!

Edited by davep on Monday 24th March 14:01

danbourassa

246 posts

137 months

Monday 24th March 2014
quotequote all
davep said:
I'm confused!
So am I.

Do you remember the original Mario Bros. game where you could exploit a bug in the software by jumping through a brick wall and going to Minus One World? I think that Steve has done the 14CUX equivalent.

Anyone with a priori knowledge of this is certainly welcome to correct me, but I can't see how there was ever an intent to directly connect the CO trim screw to the closed loop long term trim values. I imagine the original developers simply wanted to reuse a memory location that they were sure was unused in open loop mode. But then, why did they write it twice, once to each bank location? Also, they may have wanted to preserve it in the battery-backed memory which would prevent them from just storing it in any unused location.

The fact that adjusting the CO trim can, after a short amount of time, have an indirect effect on the long term trim (through the Lambda statistics) just serves to complicate the relationship.

davep

1,143 posts

284 months

Monday 24th March 2014
quotequote all
danbourassa said:
Do you remember the original Mario Bros. game where you could exploit a bug in the software by jumping through a brick wall and going to Minus One World? I think that Steve has done the 14CUX equivalent.
rofl

blitzracing

6,387 posts

220 months

Monday 24th March 2014
quotequote all
I was frustrated by this question, as Mark Adams is very specific about the required voltages for his chip or the stock maps- and they are different. I got the car warm, and then wound the CO trim with an electric screwdriver and watched the short term trim, expecting it to change, but could not see anything obvious.

Talking of Mark Adams- I notice his Tornado maps run up to 6000 rpm, whilst the TVR ones peak out at the original 5500 rpm.

danbourassa

246 posts

137 months

Monday 24th March 2014
quotequote all
stevesprint said:
What would happen if I copied MAP2’s ADC control list over the limp-home ADC control list?
Steve, that's one way to do it, or you could look in reset.asm to find this:

;----------------------------
; Init map 0 ADC table ; code branches here when fuel map is unlocked
;----------------------------
.LC92F ldx #$C082 ; default ADC control table
stx adcMuxTableStart

For map 2, just change the #$C082 to #$C473 (or preferably LC473 if your data file has this label).

stevesprint

Original Poster:

1,114 posts

179 months

Monday 24th March 2014
quotequote all
blitzracing said:
Talking of Mark Adams- I notice his Tornado maps run up to 6000 rpm, whilst the TVR ones peak out at the original 5500 rpm.
You may remember Dan has given us an extended rpm table that goes up to 6,200 that he smoothed between the rev points. I’ll help you install it one day over a beer.
Cheers
Steve

stevesprint

Original Poster:

1,114 posts

179 months

Monday 24th March 2014
quotequote all
danbourassa said:
Steve, that's one way to do it, or you could look in reset.asm to find this:

;----------------------------
; Init map 0 ADC table ; code branches here when fuel map is unlocked
;----------------------------
.LC92F ldx #$C082 ; default ADC control table
stx adcMuxTableStart

For map 2, just change the #$C082 to #$C473 (or preferably LC473 if your data file has this label).
I see I’m spoilt for choice, thanks. It's a bit late now to rush out to the garage to test it but I am tempted as I can't play tomorrow.
Cheers, Steve
P.S. If you keep teasing me with code mods like this I'll have to buy an Ostrich and Perminitely install it in my car.

stevesprint

Original Poster:

1,114 posts

179 months

Monday 24th March 2014
quotequote all
blitzracing said:
I was frustrated by this question, as Mark Adams is very specific about the required voltages for his chip or the stock maps- and they are different.
So its true the CO trim does change the lambda trim and not just for me. When I get a chance I’ll test the CO trim adjuster on a Land Rover map for the cat tune again.
blitzracing said:
I got the car warm, and then wound the CO trim with an electric screwdriver and watched the short term trim, expecting it to change, but could not see anything obvious.
It only changes the long term trim, the short term trim is unaffected.

stevesprint

Original Poster:

1,114 posts

179 months

Monday 24th March 2014
quotequote all
davep said:
Steve you mention doing a tune resistor hot swap do you do this without switching ignition Off and On again?
RoverGauge shows the map changing without turning the ignition off but the engine must not be running. I have the tune resisters on a switch so the change is instant.


davep said:
I'm looking forward to doing correlations based on TPS, MAF, injector pulse width and AFR data logs (how's that coming on btw?). It'd be great if you could do a full on road test and then merge the AFR data with the RG logs into Excel. We could then get a detailed fix on what AFR values can be expected for varying input conditions and a 4.3 pre-cat open loop profile.
Progress is slow as Dan keeps on distracting me with the code but I love it really. I have written a little program that now outputs my LC-2 readings to a file with a time stamp and successfully run it in tandem with RoverGauge. I’m now a little concerned the lambda readings are not very steady and will require averaging out and sadly I get very little 14CUX time but that won’t stop me trying.


blitzracing

6,387 posts

220 months

Tuesday 25th March 2014
quotequote all
stevesprint said:
t only changes the long term trim, the short term trim is unaffected.
Thats the issue- if you change the long term rapidly- (thats why the electric screwdriver) you would expect the short term mark / space ratio shift as the base mixture changes, and I could not see that. Having said that id guess if you run this test without the lambdas plugged in, you should see the mixture change, as the ECU cant compensate(it takes a couple of minutes to throw a fault code). It would give you a definitive answer.