I need some help on my ninja ecu

User topics relating to software that reflashes or modifes ECU code and data

Moderator: Freon

I need some help on my ninja ecu

Postby supra5677 » Sun Mar 04, 2012 5:46 pm

I have a 2002 zx12r ninja. It has a 16 bit denso ecu. It has been reflashed before. I need some of the code re written so it can be oxygen sensor ready. Can someone help me. I would of course pay for the service if someone can do it.
Here is the email of what I'm trying to do.

Regards,

Brian
California


On Sat, Feb 18, 2012 at 8:23 AM, Marlin Bially <mbially@olympus.net> wrote:
You could 'sweep' the cylinders and throttle using a saw tooth wave between 0 and 5V.

http://en.wikipedia.org/wiki/Sawtooth_wave

The idea is that the 02 changes relatively slowly over time. The saw tooth would rapidly select cylinders 1 2 3 4 1 2 3 4 12 3 4 etc. The end result is that the same 02 value will end up in all four cylinders eventually. The only issue is what frequency to set the sawtooth at. It needs to be slow enough that the ECU COV scan will hit it at least 4 times per wave but fast enough to make sure all cylinders get any 02 update in a timely fashion

I still say the most effective way to do this is to re write the software inside the ECU.

Right now there is a memory location for each cylinder at each throttle setting in which to save the trim (cov1) value. Lets call them

Hi1, Hi2, Hi3, Hi4, Med1, Med2, Med3, Med4, Lo1, Lo2, Lo3, Lo4.

There are two major functions one that sets the Trim values by reading the COV voltages and one that applies the trim to the fuel setting.

A simplified version of the software is...

To set trims:

IF (Cov3 = Hi)
{
IF (COV2 = Cyl1) THEN Hi1 = COV1
IF (COV2 = Cyl2) THEN Hi2 = COV1
IF (COV2 = Cyl3) THEN Hi3 = COV1
IF (COV2 = Cyl4) THEN Hi4 = COV1
}
IF (Cov3 = Med)
{
IF (COV2 = Cyl1) THEN Med1 = COV1
IF (COV2 = Cyl2) THEN Med2 = COV1
IF (COV2 = Cyl3) THEN Med3 = COV1
IF (COV2 = Cyl4) THEN Med4 = COV1
}
IF (Cov3 = Low)
{
IF (COV2 = Cyl1) THEN Lo1 = COV1
IF (COV2 = Cyl2) THEN Lo2 = COV1
IF (COV2 = Cyl3) THEN Lo3 = COV1
IF (COV2 = Cyl4) THEN Lo4 = COV1
}

To apply trims

IF(Throttle = Hi)
{
IF(Cylinder = 1) THEN Fuel1 = Fuel1 * Hi1
IF(Cylinder = 2) THEN Fuel2 = Fuel2 * Hi2
IF(Cylinder = 3) THEN Fuel3 = Fuel3 * Hi3
IF(Cylinder = 4) THEN Fuel4 = Fuel4 * Hi4
}
IF(Throttle = Med)
{
IF(Cylinder = 1) THEN Fuel1 = Fuel1 * Med1
IF(Cylinder = 2) THEN Fuel2 = Fuel2 * Med2
IF(Cylinder = 3) THEN Fuel3 = Fuel3 * Med3
IF(Cylinder = 4) THEN Fuel4 = Fuel4 * Med4
}
IF(Throttle = Lo)
{
IF(Cylinder = 1) THEN Fuel1 = Fuel1 * Lo1
IF(Cylinder = 2) THEN Fuel2 = Fuel2 * Lo2
IF(Cylinder = 3) THEN Fuel3 = Fuel3 * Lo3
IF(Cylinder = 4) THEN Fuel4 = Fuel4 * Lo4
}

What if we rewrote the software to use a single memory location for all settings of COV2 and 3? then their settings become irrelevant

IF (Cov3 = Hi)
{
IF (COV2 = Cyl1) THEN Hi1 = COV1
IF (COV2 = Cyl2) THEN Hi1 = COV1
IF (COV2 = Cyl3) THEN Hi1 = COV1
IF (COV2 = Cyl4) THEN Hi1 = COV1
}
IF (Cov3 = Med)
{
IF (COV2 = Cyl1) THEN Hi1 = COV1
IF (COV2 = Cyl2) THEN Hi1 = COV1
IF (COV2 = Cyl3) THEN Hi1 = COV1
IF (COV2 = Cyl4) THEN Hi1 = COV1
}
IF (Cov3 = Lo)
{
IF (COV2 = Cyl1) THEN Hi1 = COV1
IF (COV2 = Cyl2) THEN Hi1 = COV1
IF (COV2 = Cyl3) THEN Hi1 = COV1
IF (COV2 = Cyl4) THEN Hi1 = COV1
}

To apply trims

IF(Throttle = Hi)
{
IF(Cylinder = 1) THEN Fuel1 = Fuel1 * Hi1
IF(Cylinder = 2) THEN Fuel2 = Fuel2 * Hi1
IF(Cylinder = 3) THEN Fuel3 = Fuel3 * Hi1
IF(Cylinder = 4) THEN Fuel4 = Fuel4 * Hi1
}
IF(Throttle = Med)
{
IF(Cylinder = 1) THEN Fuel1 = Fuel1 * Hi1
IF(Cylinder = 2) THEN Fuel2 = Fuel2 * Hi1
IF(Cylinder = 3) THEN Fuel3 = Fuel3 * Hi1
IF(Cylinder = 4) THEN Fuel4 = Fuel4 * Hi1
}
IF(Throttle = Low)
{
IF(Cylinder = 1) THEN Fuel1 = Fuel1 * Hi1
IF(Cylinder = 2) THEN Fuel2 = Fuel2 * Hi1
IF(Cylinder = 3) THEN Fuel3 = Fuel3 * Hi1
IF(Cylinder = 4) THEN Fuel4 = Fuel4 * Hi1
}
supra5677
 
Posts: 2
Joined: Sun Mar 04, 2012 5:35 pm

Return to Reflashing Software

Who is online

Users browsing this forum: No registered users and 9 guests