Enginuity 0.4.0 Beta

Developer topics relating to software that provides a tuning UI to alter ECU code and data

Moderator: Freon

Postby ahains » Sat Nov 19, 2005 1:48 pm

crazymikie wrote:I'm not sure what the front O2 sensor scaling is- I can only think that it would allow you to change the AFRs that are associated with the voltages being read by the front O2 sensor. I'm not positive, though- I can try looking at it.


Now that is pretty interesting.
I bet this is how one could go about using the stock ECU to do lean burn cruise - adjust what voltage it considers to be lambda. That is sweet.
Of course the problem is that this is your new AFR target whenever in closed loop. I would most likely be looking for lean burn only in very restricted circumstances, so that would mean going with very paranoid OL/CL transition settings. Might end up with worse gas mileage overall :)
Still, a bit of code hacking and it might be feasible to reference this value off of load or something, and only apply the lean burn adjustments under light load.
Just a thought. :)

I am also wondering if there is enough flexibility in this adjustment to allow the car to utilize a wide band o2 sensor?

Good stuff :)
-Adrian
ahains
 
Posts: 83
Joined: Mon Jun 06, 2005 12:59 pm
Location: Renton, WA

Postby crazymikie » Sun Nov 20, 2005 8:19 am

My understanding of how a narrowband works is that it constantly cycles back and forth between lean and rich (since the effective range of AFRs it can read is very narrow, the cycling happens over a very small range of AFRs). When the sensor reads rich, the car knows that there is too much fuel and has to pull some, and then it reads lean, the car has to add some.

It was explained to me like this- imagine your steering wheel had a lot of play in it. The only way to keep the car going straight would be to turn it back and forth until you got feedback. If would be near impossible to get the car going straight any other way.

Not sure if the WRX works the same way, but I think this has been discussed before on nasioc. I'll have to go back and read.

As far as lean burn goes, I agree- your CL/OL settings would have to be aggressive since as soon as you got on the throttle, you'd want immediate enrichment (I run this way already ;) ) so I'm not sure how bad it would be. I'd more advocate running the car 'happily' and getting immediate power- you'll spend less time on the gas, have a car that is more fun to drive and probably get no worse gas mileage.

I have some ideas for economy maps I'd like to try when I get some time.

Too much to do :(

Mike
crazymikie
 
Posts: 105
Joined: Mon Jan 03, 2005 6:45 pm
Location: Watertown, MA

Postby qoncept » Sun Nov 20, 2005 9:05 am

crazymikie wrote:My understanding of how a narrowband works is that it constantly cycles back and forth between lean and rich (since the effective range of AFRs it can read is very narrow, the cycling happens over a very small range of AFRs). When the sensor reads rich, the car knows that there is too much fuel and has to pull some, and then it reads lean, the car has to add some.

That's the way I see it too, but the issue is that, if your target AFR is 9:1, the narrow band will always say you're too lean because it's only effective to about 11:1.

Basically, I don't understand how the fuel table can have target AFRs that are out of the range of the O2 sensor. What gives? I thought open loop fueling meant it was using a table of values that weren't targets but actual hard values of how much fuel to add.

Anyway, I've added the ability to change the axis values on tables and I'm working on a couple other little things. Should have something out today.
qoncept
 
Posts: 249
Joined: Tue Oct 04, 2005 6:43 pm
Location: Montgomery, AL

Postby crispyduck » Sun Nov 20, 2005 11:34 am

qoncept,

I've uploaded my ECU ROM for MY03 Impreza 2.0 WRX (EURO) AH750-5141.

I tried to use it against your latest enginuity v0.11a software and it reports ERROR: "Invalid ECU image file". Should your software work against this image? Perhaps I've done something wrong creating the image file?

Edit: I've also uploaded my ECUFlash log which records the ECU ROM read and compare. You guys in 'the know' might find it useful.

Thanks in advance,
-Steve.
Attachments
ECU_read_and_compare_log.txt
ECUFlash log which records the ECU ROM read and compare
(9.28 KiB) Downloaded 759 times
crispyduck
 
Posts: 186
Joined: Sun Nov 13, 2005 1:15 pm
Location: www.scoobypedia.co.uk

Postby qoncept » Sun Nov 20, 2005 12:19 pm

Steve, I've only implemented a few ECU versions. I'm kind of holding off on it until I find a better way, which will probably end up being Colby's XML definitions. Otherwise I'll have to have people wait for me every time they want one. It's no big deal, but it'd be a lot better to just make a file updateable.

I've been working for quite a while today. Once I get to a stopping point I'll go ahead and add your ECU which should only take a couple minutes and I'll upload a new revision.

Edit: Oh my. That image is only 160kb -- I'd assumed all images were 192kb. Guess I'll have to make some other changes, too. I've picked out a few of the tables but not all of them. I really need to take a break -- might not be finished until tomorrow.
qoncept
 
Posts: 249
Joined: Tue Oct 04, 2005 6:43 pm
Location: Montgomery, AL

Postby crispyduck » Sun Nov 20, 2005 12:55 pm

Wowwww, you guys are fantastic on here, what a great community. Just to get this on your to-do's list would have been great, can't believe you've looked at my image already.

Thanks for your great support.
-Steve.
crispyduck
 
Posts: 186
Joined: Sun Nov 13, 2005 1:15 pm
Location: www.scoobypedia.co.uk

Postby qoncept » Sun Nov 20, 2005 1:54 pm

It just occured to me that I'm an idiot for not asking this sooner. Any algebra majors here (or at least someone who went to high school..) ? It's been so long and my brain is so fried that I've been stuck trying to figure this out for hours.

I've got the binary data in the image converting to AFR just fine. I've been trying to turn it around and figure out what the binary data should be from the AFR. Here's what I've got:

realValue = 14.7 / (1 + binData / multiplier)

For whatever reason, I've been unable to solve for binData. I'd really appreciate the help. Also, if you could show the the whole solution it might help put my mind at ease.
qoncept
 
Posts: 249
Joined: Tue Oct 04, 2005 6:43 pm
Location: Montgomery, AL

Postby cboles » Sun Nov 20, 2005 2:52 pm

binData = multiplier ( 14.7 / realValue - 1 )
cboles
Site Admin
 
Posts: 1233
Joined: Wed Dec 29, 2004 5:45 pm
Location: Seattle, WA

Postby ahains » Sun Nov 20, 2005 3:31 pm

here's the whole solution :)

begin: realValue = 14.7 / (1 + binData / multiplier)

(1)multiply both sides by 1/14.7
realValue * 1/14.7 = (1/14.7) * (14.7 / (1+binData/multiplier))
(1b)simplify:
realValue/14.7 = 1/(1+binData/multiplier)
(2)invert both sides:
14.7/realValue = 1+(binData/multiplier)
(3)subtract 1:
14.7/realValue - 1 = binData/multiplier
(4)multiply both sides by multiplier
multiplier (14.7/realValue -1) = binData

-Adrian
ahains
 
Posts: 83
Joined: Mon Jun 06, 2005 12:59 pm
Location: Renton, WA

Postby qoncept » Sun Nov 20, 2005 5:59 pm

v0.12 Alpha is now available. Link at the top of this thread.

Colby, Adrian, thanks for the help. I was about to pull my hair out. :) I definately spent too much time on the computer today, but I got a lot of things I was really not looking forward to out of the way.
qoncept
 
Posts: 249
Joined: Tue Oct 04, 2005 6:43 pm
Location: Montgomery, AL

Postby crazymikie » Sun Nov 20, 2005 9:54 pm

[quote="qoncept"]
That's the way I see it too, but the issue is that, if your target AFR is 9:1, the narrow band will [i]always[/i] say you're too lean because it's only effective to about 11:1.

Basically, I don't understand how the fuel table can have target AFRs that are out of the range of the O2 sensor. What gives? I thought open loop fueling meant it was using a table of values that [i]weren't[/i] targets but actual hard values of how much fuel to add.

Anyway, I've added the ability to change the axis values on tables and I'm working on a couple other little things. Should have something out today.[/quote]

There is no closed loop operation for fueling values other than 14.7:1. When you put a target of 10:1 in the fuel table, the ECU is doing some math based on MAF voltage and ohter conditions that tells the injectors how much fuel to spray. It's not perfect- which is why it's necessary to verify these targets with a wideband when tuning. I've seen variations from car to car, so I wouldn't trust the values to be perfect.

The front O2 sensor is there strictly to maintain 14.7:1 AFRs during closed loop operation. Once you are in open loop, there is no feedback mechanism, so the fuel targets in the table are there for convenience only- they eventually get translated to some fuel injector opening time.


Mike
crazymikie
 
Posts: 105
Joined: Mon Jan 03, 2005 6:45 pm
Location: Watertown, MA

Postby qoncept » Tue Nov 22, 2005 3:07 pm

That's what I thought.. so autotuning will be useful. I'll either start on that or adding other engine parameters first after the holiday. I'll be out of town for the rest of the week so I won't be getting anything done until Monday (unless I can convince the wife to let me use her laptop..).

Steve, I've added your ECU, but it's not complete. I still haven't found the wastegate duty table or EGT limits, but I figured I'd at least give you what I've found so you can take a look at it. It just occurred to me that it's still trying to save those tables, so it will probably error out for you if you try to save, which is probably good instead of corrupting your data.

visit www.enginuity.org for the latest version.

Edit: Has anyone run Enginuity on Linux or any other OS? I don't see any reason it shouldn't run properly, but at the same time I wouldn't at all be surprised. Just curious.
qoncept
 
Posts: 249
Joined: Tue Oct 04, 2005 6:43 pm
Location: Montgomery, AL

Postby crazymikie » Tue Nov 22, 2005 9:20 pm

To autotune, you'll need an input for a wideband, but it's possible.

Quite honestly, it's probably a lot more work to implement than it's worth. From what I've seen, once you get some wideband readings, you can tell if there's an offset from the programmed values and the actual values the car is running. If you want them to match up, you can just calibration the MAF sensor appropriately too.

I have a laptop running linux. I can give this a go and let you know how it works.


Thanks!
Mike
crazymikie
 
Posts: 105
Joined: Mon Jan 03, 2005 6:45 pm
Location: Watertown, MA

Postby calvinc » Tue Nov 22, 2005 11:01 pm

what is 'multiplier'?

binData = multiplier ( 14.7 / realValue - 1 )
realValue = 14.7 / (1 + binData / multiplier)

calvin.
calvinc
 
Posts: 163
Joined: Sun Apr 24, 2005 10:18 am
Location: south africa

Postby qoncept » Wed Nov 23, 2005 4:16 am

calvinc wrote:what is 'multiplier'?

binData = multiplier ( 14.7 / realValue - 1 )
realValue = 14.7 / (1 + binData / multiplier)

Just a constant you need to multiply by (or, in the case of fuel, divide by) to find the real world value. Fuel is 128. 14.7 / (1 + (byte / 128)) = lambda. Calling it multiplier when it's a divisor is a bit counterintuitive but it made more sense than having a multiplier AND divisor variable in the superclass.
qoncept
 
Posts: 249
Joined: Tue Oct 04, 2005 6:43 pm
Location: Montgomery, AL

PreviousNext

Return to Tuning Software

Who is online

Users browsing this forum: No registered users and 1 guest