|
RomRaider
Documentation
Community
Developers
|
| Author |
Message |
|
a33b
|
Post subject: Ignition Timing - how it really works Posted: Thu Sep 06, 2018 8:51 am |
|
 |
| Experienced |
Joined: Sat Jun 24, 2017 2:23 pm Posts: 315
|
|
Alas! The answers to the age-old question can be found within! For years people have wondered what’s up with the “burn time” table? Or is it a “Time for cylinder max pressure” table? Why can’t we understand what Nissan is doing with ignition timing?! What sort of witchcraft is this?!
Well, a quick look at the A2L dispels all the myths; the “timing maps” are actually “advance trimming maps” and the conversion for them is X-64 in (hold your breath…) degrees.
I know right? Now, there’s plenty more to the timing calcs than just the trimming maps, but as far as tuning is concerned, the trimming tables have a direct correlation on the amount of advance.
So, how does it all work?
First, the ECU calculates MBT angle. I haven’t dissected this function entirely, the ECU estimates the mass of the contents in the cylinder, determines a flame speed, accounts for RPM, calculates a time and converts it to a mean best torque advance angle, vMBTCAL "MBT operation value"
The "Trimming-map compensation value", vLADVTRM has the knock flag (128) removed and is stored as vADVTRMAP, "Trimming-map reference value". wvHTARTDR "High intake air temperature retard value (after the change width limiter)" is subtracted from the reference value and the result is saved as vADVTRM "Trimming-map compensation value". This result is added to vMBTCAL.
Then a few more parameters are accounted for; vCATDAN "Catalyst heating compensation value" and vADVJAR "Jar sound compensation value" are subtracted, vVTCADV "VTC ignition timing compensation value" is added. Finally -64 is applied to result in vTADVMnm "At the time of usual, a basic ignition timing"
This isn’t the end though! More to come…
|
|
| Top |
|
 |
|
a33b
|
Post subject: Re: Ignition Timing - how it really works Posted: Thu Sep 06, 2018 8:51 am |
|
 |
| Experienced |
Joined: Sat Jun 24, 2017 2:23 pm Posts: 315
|
|
Now things start to get a bit more complicated. Most folks (myself included) aren’t going to be modifying this part of the ROM, but I was on a quest to find out how knock was compensated for in the calcs, so I carried on. I’ve skipped over details like idle, start, and how some of the functions feeding into the timing routines work, the focus here is just to gather a broad understanding.
In the above post, all that the ECU figured out was a value for best torque. Great! But what about knock compensation? Cruise conditions? Acceleration? Deceleration? It’s all in here, the "Calculation of torque correction volume at ignition timing" routine, KF7-320A.1[6].
Now the ECU checks a couple of flags to determine if the engine is operating in the knock control region. If it is, it grabs bvBETA "Knock control value" and keeps it handy. It then recalls vTQRET "The amount of retard control" which is calculated by a separate torque request routine. The ECU checks which one is greater and stores it as vADVHOS "The amount of ADV compensation".
Then it recalls vDLTADV "At the time of the acceleration, the amount of ADV phase control" and adds it to vADVHOS. It also recalls avSCKRET "The amount of re-acceleration shock retard" and compares the sum of vDLTADV and vADVHOS with avSCKRET and chooses the larger of the values. The larger of the values is added to vTADVM "A basic ignition timing" (same as vTADVMnm for our intents and purposes) and the result is stored as vADVBL "In front of the limiter, ignition timing"
As you would expect, the ECU runs some checks on these calcs and ensures that the results are within an acceptable range and aren’t changing too much too fast. This is also where vADVADJ "ADV adjustment value" which is programmable by CONSULT tool is incorporated. This is the popular “2 degree advance” mod that was done back when there were no tuning options. The advance side limiter in my ROM is 50 deg and -7 retard. Once it goes through these details the result is stored as vADV "Ignition timing".
Just about finished, the ECU then runs a few more checks and calculates the value you see with your OBD reader vFADV "A final ignition timing"! This is where the flywheel tooth position mCRSET "A Ref signal rising is located" (often 110 degrees) is taken into account.
That’s all for now. I’m inclined to investigate vDLTADV "At the time of the acceleration, the amount of ADV phase control" and vTQRET "The amount of retard control" a bit more to see how their routines work and if there are benefits to manipulating ignition timing this way.
|
|
| Top |
|
 |
|
fenugrec
|
Post subject: Re: Ignition Timing - how it really works Posted: Thu Sep 06, 2018 8:20 pm |
|
 |
| Experienced |
 |
Joined: Wed Jan 08, 2014 11:07 pm Posts: 652
|
|
Awesome post - one of the best I've seen in a while, with the A2L release itself. When you're done with the write-up, I might steal it for the wiki (or you can add it yourself if you were so inclined).
Thanks for documenting this !
_________________ If you like nisprog + npkern, you can support me via https://liberapay.com/fenugrec/ For sending me encrypted/secure messages, use PGP key 0xBAC61AEB3A3E6531 available from pool.sks-keyservers.net
|
|
| Top |
|
 |
|
mutex
|
Post subject: Re: Ignition Timing - how it really works Posted: Sat Sep 08, 2018 2:51 am |
|
 |
| Newbie |
Joined: Wed Feb 15, 2017 5:06 am Posts: 19
|
|
This is an awesome discovery.
Things make a lot more sense. I was wondering why it never looked like a traditional rpm-load timing map. Everything is around 64 in the 350z/g35 vq35de timing maps. I note: Nissan adds a little extra "timing" when the intake cam timing is at it's most advanced.
+ Thanks.
|
|
| Top |
|
 |
|
StickyBones
|
Post subject: Re: Ignition Timing - how it really works Posted: Sun Sep 09, 2018 6:40 pm |
|
 |
| Newbie |
Joined: Fri Dec 16, 2016 6:01 pm Posts: 10
|
 Great job! Thanks!
|
|
| Top |
|
 |
|
murphys_law
|
Post subject: Re: Ignition Timing - how it really works Posted: Mon Nov 12, 2018 8:19 pm |
|
 |
| Experienced |
Joined: Tue May 24, 2016 1:45 am Posts: 216
|
|
| Top |
|
 |
|
n00bz
|
Post subject: Re: Ignition Timing - how it really works Posted: Mon Nov 19, 2018 9:23 am |
|
 |
| RomRaider Donator |
Joined: Wed Feb 08, 2017 8:10 pm Posts: 60
|
|
You have won the internet for 2018
|
|
| Top |
|
 |
|
BorceBT
|
Post subject: Re: Ignition Timing - how it really works Posted: Wed Feb 20, 2019 6:19 pm |
|
 |
| Newbie |
Joined: Thu Apr 12, 2018 3:56 pm Posts: 1
|
|
The knock flag in the timing correction map is in fact "high knock sensitivity" bit that is clearly visible in red in this 350Z CD700 file. Most common modification in the tuner scene is to defeat (subtract 128) this bit and use the map with low knock sensitivity instead.
You do not have the required permissions to view the files attached to this post.
|
|
| Top |
|
 |
|
cbayo
|
Post subject: Re: Ignition Timing - how it really works Posted: Sat May 25, 2019 9:35 am |
|
 |
| Newbie |
Joined: Sun May 19, 2019 7:33 pm Posts: 13
|
Hello everyone, I am starting to understand these types of timing maps but still have some grey areas. All my life I have been used to regular degrees of timing, so please bear with me. So far what I have is - Remove 128 from the knock flagged area on the High DET and Low DET maps and edit. When done, reinput the 128 to the Knock area. I get confused with the numbers I have on the map. Since they are not in degrees, I don't understand them. If I am reading your degrees conversion math X-64 correctly, then at idle where the map shows 40 => 40-64 = -19. Negative timing=super confused I attached a Screenshot so everyone sees what I am seeing. I have my SpecV High Compression build in the works, and need to figure ignition timing out lol. I aiming for completion for sept. Its an 02 and I don't want the Uprev upgrade to eat into the budget. Thank you
You do not have the required permissions to view the files attached to this post.
|
|
| Top |
|
 |
|
a33b
|
Post subject: Re: Ignition Timing - how it really works Posted: Sat May 25, 2019 11:43 am |
|
 |
| Experienced |
Joined: Sat Jun 24, 2017 2:23 pm Posts: 315
|
Use the most recent definitions, https://github.com/a33b/NissanDefs/tree/working and then re-read this thread. Unfortunately, we can't toggle the knock window on/off in RR so I find it easier to make adjustments in a spreadsheet where I can see everything in degrees and then add the knock window back in.
|
|
| Top |
|
 |
|
cbayo
|
Post subject: Re: Ignition Timing - how it really works Posted: Wed May 29, 2019 9:17 pm |
|
 |
| Newbie |
Joined: Sun May 19, 2019 7:33 pm Posts: 13
|
|
Hi a33b, Thanks for the response. Your defs changed all displayed data, very awesome work!
I ve been spending the last couple of days re reading the post as directed and cant put the puzzle together.
Where do you get all the other data inputs for the calculation to import to excel and perform the minus 64?
How do you export data to excel, copy and paste?
Thank you for all the help.
|
|
| Top |
|
 |
|
cbayo
|
Post subject: Re: Ignition Timing - how it really works Posted: Wed May 29, 2019 11:31 pm |
|
 |
| Newbie |
Joined: Sun May 19, 2019 7:33 pm Posts: 13
|
Hey guys, Really random but i used a hours/minutes/seconds to degrees converter and I got ~14 degrees at low end and 50 degrees,inputting the highest 200 value. Is this valid for coverting,burn time? 15 degrees at idle and,50 degrees high end,WOT Calculator below. http://www.kylesconverter.com/angle/min ... to-degrees
|
|
| Top |
|
 |
|
a33b
|
Post subject: Re: Ignition Timing - how it really works Posted: Thu May 30, 2019 2:22 pm |
|
 |
| Experienced |
Joined: Sat Jun 24, 2017 2:23 pm Posts: 315
|
There is no "burn time". That's what the first post says, and why the definitions have been updated. Look at the table and you can see that the units for the trimming table are in degrees. These are not absolute degrees, they are a delta that is applied to the MBT calculated advance. a33b wrote: the “timing maps” are actually “advance trimming maps” and the conversion for them is X-64 in (hold your breath…) degrees.
as far as tuning is concerned, the trimming tables have a direct correlation on the amount of advance.
|
|
| Top |
|
 |
|
Nissan1225
|
Post subject: Re: Ignition Timing - how it really works Posted: Tue Jun 11, 2019 5:49 pm |
|
 |
| Newbie |
Joined: Sun Jan 01, 2017 6:17 pm Posts: 22
|
|
Just to clarify, you aren't subtracting 128 for "knock sensitivity". The code preserves the most significant bit as a table blending flag (i.e. if the MSB is set, it will blend between table A and table B). This is done using a 0x7F bitmask
|
|
| Top |
|
 |
|
a33b
|
Post subject: Re: Ignition Timing - how it really works Posted: Thu Jun 13, 2019 12:23 am |
|
 |
| Experienced |
Joined: Sat Jun 24, 2017 2:23 pm Posts: 315
|
|
You're right that it does blend the tables at times. However it also uses the MSB as a flag for the knock learning region which usually coincides with the KLMRT (knock retard limiting map) at its greatest allowed retard. I posted an excerpt of annotated disassembly, note the evaluation at 0x4ced0
You do not have the required permissions to view the files attached to this post.
|
|
| Top |
|
 |
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|