Page 1 of 4

Timing issues

Posted: Wed Apr 16, 2014 6:43 pm
by my1path
1990 M30 ECU, N switch on, TPS closed, Idle; Nistune Consult view says 17*/ N switch off 25*
Logging reports maximum timing @55* glancing at the gauge when driving also shows numbers over 50. (maps are not set that high)

Issues,
Reported timing does not match the timing map when driving
Actual Timing is 15* (N SW on, TPS closed, Idle)
Max timing on timing map is 43 (not 55)
Making changes to timing maps does not seem to affect driving: (fuel maps auto update just fine and changes can be noticed right away)

IN SUMMARY it appears that I cannot make timing changes at all because it does not seem to be following the Timing maps...

and Knock Maps are copies of primary maps.

Re: Timing issues

Posted: Thu Apr 17, 2014 10:37 am
by Matt
Log file and tune file please and I'll rerun it here

Re: Timing issues

Posted: Fri Apr 18, 2014 6:15 pm
by my1path
Here is the Tune and log.
It just occurred to me, the items on the left are highlighted green when being accessed by the ecu right?
The Timing map is not highlighted.
green means accessed right.jpg
screen shot no green hilights
(93.78 KiB) Downloaded 5205 times

Re: Timing issues

Posted: Sat Apr 19, 2014 7:26 pm
by Matt
When TPS idle is used (idle TPS switch) then timing maps are not used (idle timing maps used instead)

Re: Timing issues

Posted: Mon Apr 21, 2014 9:09 am
by my1path
It wasn't going green at all, Idle or when cursing.

I gave the ecu a hard restart and tried again today(unplugged it overnight). The timing maps (both knock and primary) turned green and backing off the the whole map by 10* made it bog so I thought it was working like it should.
I ran the map back to stock and everything ran like normal and I THINK the displayed timing was matching the map... I'm not sure what happened next but the highlights went away and it went back to behaving the way it did in post #1

EDIT:
With the TPS closed, the Reported timing wasn't matching the IDLE/Decel map either.

Re: Timing issues

Posted: Wed Apr 23, 2014 12:23 pm
by Matt
Yeah I see it would be 50 deg BDTC when cruising but your log is showing 55 deg BDTC. There is another 5 degree factor not accounted for. However the engine has not completely warmed up yet (70 degC coolant temperature). So to repeat this when the engine is warm would be recommended

There is a "timing beta advance" table which adds between 3-7 degrees of timing which appears to be adding most likely under 80 degrees C coolant temp

Idle timing would also depend on coolant temp. Once warmed up it should follow the idle/decel timing table when it is not compensating for target RPM (normally about 800rpm when warmed up would be 12 deg BCTC according to the table)

Re: Timing issues

Posted: Wed Apr 23, 2014 1:28 pm
by my1path
12 is what I set the table for but it never goes below 17 warmed up. (180F/82C)
So Beta advance is a low temp modifier for the Idle/decel map? (43+7=50 ok makes sense)

but what about when I make dramatic timing changes and nothing happens? I got a busy week ahead of me but I'll try to find some time to roll the whole map FLAT (20* for everything) and log it going up and down when fully warmed up.

Re: Timing issues

Posted: Fri May 09, 2014 6:08 am
by my1path
Ok so it appears to be adding 5* to the filtered values. I did another log with the coolant temp over 180f like you asked and then I did one more with the whole timing map set to 20* notice the log says 25* the whole time.
I also noticed before taking this second log that it was using the knock timing map because it did not say 25* the whole time until I hit copy to knock. I'm not sure why its running knock maps, I don't hear any and the KS is quite new.

Today the both timing maps turned green every time the TPS was open so I could not re-create what I was having above. Maybe part of the problem was I connecting the USB before the ECU was on.


I was surprised, engine responded pretty well to 20* fixed timing

Re: Timing issues

Posted: Mon May 12, 2014 11:38 am
by Matt
I looked at the code again for this one and this ECU only uses one set of timing maps
BA4E : CE FC 00 " " ldx #HIGH_FIRE
BA51 : DF 74 " t" stx X0074
BA53 : CE FB 20 " " ldx #RPM_SCALE_FIRE
BA56 : DF 76 " v" stx X0076
BA58 : CE FB 10 " " ldx #TP_SCALE_FIRE
BA5B : DF 78 " x" stx X0078
What is strange is there is a map at F800 (where we are seeing the main timing map at the moment) in the M30 ROM file but it is not reference in the code! So only the FC00 (displayed as knock map in Nistune) is being used. I've updated the address file at the moment to fix this up (attached file... just download and copy into your Documents\Nistune\Address folder over the other file)

See how you go only adjusting the second map

Re: Timing issues

Posted: Mon May 12, 2014 12:27 pm
by my1path
Ok, I see right away with the new address file that it only has one map for timing thank you. Hopefully the timing reported will match the idle and timing maps too?

This car is equipped with knock sensing but I am seeing some knock retard tables under "Idle control" so it must use those instead when it senses knock.
I assume the fuel knock maps still run the way the do on other ECU's.

Thanks for your support, I'll give it a shot (hopefully soon) and get back to you once I have.


While we are on the topic of knocks I notice features like "mark knocking" on the timing and fuel maps (right click) and "knock" in the knock warning panel are greyed out. Does my ecu not support these (even though it has knock sensing) or were these not fully developed? I think they would be really nice to have! I also notice under "feedback Switch 1" that only O2 sensor has been identified (the rest are Bit 0-3 & 5-7) is one of those the knock sensor?

Re: Timing issues

Posted: Tue May 13, 2014 4:30 am
by my1path
ok having one map helped. It is certainly responding to changes I make. But there are still some problems...

Idle, TPS closed, N SW on : reported timing is 5* higher than the idle timing table
Idle, TPS closed, N SW off: reported timing is always 25* (any way to adjust this?)
TPS open: Reported timing is 10* higher than filtered values on the timing map. (5* higher than Raw)

Coolan temp as I make these observations above is 183F as reported by nistune.

Re: Timing issues

Posted: Wed May 14, 2014 9:24 am
by Matt
This car is equipped with knock sensing but I am seeing some knock retard tables under "Idle control" so it must use those instead when it senses knock.
The maps are subtracted from the main timing maps during knock
While we are on the topic of knocks I notice features like "mark knocking" on the timing and fuel maps (right click) and "knock" in the knock warning panel are greyed out. Does my ecu not support these (even though it has knock sensing) or were these not fully developed?

The code requires both fuel and timing to have knock maps to use this feature. Your ECU only has a high/knock fuel map but a single timing map so it does not use that code. However if you do get locked onto knock maps it will still highlight the 'knock fuel' map in this condition
I also notice under "feedback Switch 1" that only O2 sensor has been identified (the rest are Bit 0-3 & 5-7) is one of those the knock sensor?
There still is only one flag used both the trimming code which applies to both knock sensors. It would make no sense to only have one bank enabled for trimming functions

Re: Timing issues

Posted: Fri May 30, 2014 4:40 pm
by Matt
Apologies for the delay. I've had to spend a bit of time going through the timing routines for this ECU. They differ from other models and there appear to be some abnormalities here

Attached is an updated M30 address file with some extra definitions

Idle/Decel timing tables
There are neutral/non neutral (gear)
Gear: 15-25 deg BDTC
Neutral: 20-25 deg BDTC

Warmup timing maps
Used between 37-55 degC will lock onto the warmup timing table (15-20 deg BDTC)

Main timing map
In raw view will show 20 deg BDTC (in filtered view we use an extra parameter in the address file TIMING_MAP_OFFSET=5) to subtract 5 from the raw values. If you are able to warm the vehicle > 80 degC and hold the vehicle off idle @ 800rpm and check with a timing light at the crank you can confirm if it is indeed 15 or 20 deg BDTC. Perhaps the offset is not required. Most Nissans run at 15 deg BDTC around 800rpm when warm, but not all of them

Timing beta advance
Added to main timing values based on RPM (7-3 deg extra)

Conditional timing advance
After start timing advance. Two tables 'After start timing advance' vs RPM and 'Timing advance' vs temp. Done some renaming on the table names for next version

Gets the second table and subtracts the RPM indexed advance. Think this is added to the base timing following crank for a short period of time

Ignition retard
Table doesnt appear to be used

Now from these tables there is about three timing values which are stored and then used with the dwell and ignition time calculations for timing the coil. One of the values is for idle timing, and another for main timing. They are used depending if on/off idle and there is an offset of 10 if off idle

The value from this gets copied into the consult timing register (used to display the gauge). The consult reported timing is what the ECU is passing on to us. Normally I just process it like any other consult command, but the M30 ECU is passing us something different. I had to add an additional offset to try and get it matching the maps
CONSULT_TIMING_OFFSET=35
Perhaps the offset is off (given that I have offset the timing map reducing by 5 also) but that would need to be verified with a timing light on the vehicle. You can change this by editing the address file to change the value displayed. Any updates please let me know as we dont get those vehicles here in Australia to check it properly. We have only done a handful of these cars with Nistune
Idle, TPS closed, N SW on : reported timing is 5* higher than the idle timing table
Idle, TPS closed, N SW off: reported timing is always 25* (any way to adjust this?)
TPS open: Reported timing is 10* higher than filtered values on the timing map. (5* higher than Raw)
It may be necessary to change the offsets in the address file for this ECU. We have three of them:
CONSULT_TIMING_OFFSET (gauge reported timing)
TIMING_MAP_OFFSET (filtered timing map values offset)
IDLE_TIMING_MAP_OFFSET (idle timing map values offset)

Edit the address file attached:

Changing TIMING_MAP_OFFSET=0 if main timing map filtered values appear correct against timing light
Suggest reducing CONSULT_TIMING_OFFSET=35 to 30 to correct reported timing for main map
You may need to add IDLE_TIMING_MAP_OFFSET to offset the idle tables if required

I've added the neutral off timing map also to this address file

Re: Timing issues

Posted: Fri May 30, 2014 5:10 pm
by my1path
wow, would it have been easier for me to to pick a different ECU for my fuel injection conversion? lol
Things seem to be working a lot better after I loaded your first .adr update.
I will give this new one a try when I get time. Thankyou for your support.

Re: Timing issues

Posted: Sun Jun 01, 2014 1:02 pm
by Matt
These ECUs are very similar to the Z32 VG30DETT ECU in regards to how they function and how the maps are defined

However the only extra complication is that there may be timing offsets in several of the maps for the timing which just need to be checked out and adjusted. You now have a full set of the timing maps now I've gone through that section of the code so let me know how you go with it

Timing light will be necessary to make sure the consult timing display value is correct to start with. Once that is confirmed then its just a matter of checking the maps timing values match the timing gauge