Roland@pcmtec Posted July 31, 2018 Share Posted July 31, 2018 A few people have asked about Spark so here is a brief explanation of how the ford spark is calculated. The parameter IDs are for BF. FG has more adders as well. The final commanded spark is a combination of multiple tables. This is not an exhaustive list however this is the ones you need to look at. Borderline Knock - auF16593 (this is the maximum spark before the engine will knock) MBT Spark - auF16630 (this is the maximum spark before you stop increasing torque) Coolant temp MBT adjustment - auF2433 Spark ECT Correction - auF0222 This retards timing when your coolant temp gets too hot ECT Correction Multiplier - auF0223 This is a multiplier for the above table. This table can add up to 4 degrees of spark at peak load, make sure you are aware of it. Spark IAT Correction - auF0220 This retards timing when your intake air temp gets too hot IAT Correction Multiplier - auF0221 This is a multiplier for the above table. Spark BLK table adder (lambda correction) - auF0218 - This adds or subtracts timing based on the commanded lambda. This one will catch you out, it makes quite large adjustments based on your commanded lambda, a lot of people zero out the positive numbers in this table. Steady state/cruise This is an approximation of the calculation for when driving under normal circumstances without cold start or deacceleration active. It is an esimation, at some stage we want to make a proper write up on this from exactly what is in the assembly code. This is possibly incorrect or has omissions, so please take this into account. If anyone knows more detail than this please post up any corrections. Final Spark = Math.Min(auF16593 + auF0218 + auF0223 * auF0222 + auF0220 * auF0221, auF16630-auF2433) Or Final Spark = Minimum(BLK + lambda correction + IAT Correction + ECT Correction, MBT-MBT adjustment) IDLE Now if you are at idle it uses a PID loop to control spark. Deacceleration If you are deaccelerating (eg closed throttle) it uses auF0228 (Decel Spark Angle) Cold Start If you are on cold start it uses the following: Maximum Cold Start auF0210 Maximum Cold Start Adder auF0212 Maximum Cold Start Adder #2 auF0211 Cold Start Spark = auF0210 + auF0212 + auF0211 Final Cold Start Spark Max = Math.Min(Cold Start Spark, BLK, MBT-MBT Adjustment) (eg whichever is smaller of the 3 numbers) It will then use the idle feedback algorithm to add/subtract spark to obtain a given rpm. Eg if you have a setpoint of 750rpm and your idle is 700 rpm it will add spark, if it is 800 rpm it will subtract spark. The final figure will be clipped at "Final Cold Start Spark Max" which is calculated above. There is also an "anti stall multiplier" which is added in, most of the time this does nothing unless the rpm dips very low. If you want to datalog final cold start spark max, log the following DMR spk_lold_cld Transient conditions This is when changing the rate of acceleration, eg a change in the rate of load (the derivative of load). For example accelerating slowly, then flattening the throttle. Spark Retard for Tip-In auF0233 Tip in detonation control auF1705 Final Spark Transient = Final Spark (from the above calculation) + auF0233 * auF1705 Torque Control There are various times the PCM will command torque reduction which is achieved by ignition retard and in some conditions ETC (throttle feathering/closing). This is under traction control, changing gears in an automatic etc. Spark Retard (torque ratio) auF0263 Going forward we would like to build a spark simulator. Eg you enter in RPM, Load, IAT and ECT with sliders and you can see what the final spark will likely be, for now you would need to fill out these equations in excel by hand. If you do build anything feel free to post it up, it will be very helpful for others. Why borderline and MBT? Regarding the borderline and MBT tables the reasoning is to achieve maximum timing for performance in all possible conditions. If you use an 120 octane race fuel and find the maximum torque an engine can make then log the spark, this will be your MBT (maximum brake torque) table. Then if you use 91 octane fuel (I think the US fuel is different again) and find the maximum spark the engine can take before knocking this is your borderline knock table. Then you vary the lambda and see how much extra timing the borderline table can take and this creates your lambda spark table. Now this may overlap, eg the borderline knock may be higher than maximum torque. Eg you canrun 50 degrees of timing at cruise however the vehicle will stop making more torque after about 40-45 degrees hence there is no point in running any more. The PCM takes the lowest value of these two tables for this reason. The goal of all these tables and adders is so you can run the absolute maximum timing possible at all temperatures and load. Ford have done a great job of achieving this on a stock calibration, eg the car will run on the ragged edge of knock at all times getting maximum performance and maximum fuel economy (within emissions windows) on 91 fuel. If you were to try and achieve this level of tune in the aftermarket world you would need an engine dyno cell, thousands of litres of fuel and the ability to control ECT and IAT. It would take you a long time, I've been told it takes Ford 3 calibrators 25 weeks to calibrate an engine from scratch. The issue with aftermarket tuning is you do not have the resources to hit each load cell at every single IAT and ECT combination to determine maximum torque and maximum timing. So you compromise and tune the vehicle for the worst case, this means in cold weather/transient conditions you are probably running far less timing than you actually could. Setting the upper loads of the MBT and Borderline tables to be the same figures means you are safe in that you can be guaranteed the PCM will not ever run any more timing than this. It also means at low ECT/IAT temps you will be running less timing and hence less power than is possible. 5 Quote Link to comment Share on other sites More sharing options...
apoc Posted September 21, 2018 Share Posted September 21, 2018 I'm quite impressed at the amount of spark these PCMs can pull with knock, datalogged my Patrol and it was pulling >8 degrees at WOT in some spots, with no pinging whatsoever. Have fixed it now. Noticed that the 'Auto Octane' tables pull 4 degrees when it sees -4.55* of knock consistently, would a good way to tune for this tune for ~4.5 degrees of knock retard on 91 and turn auto octane on for when you run 95/98? It's a bit crude I know. I have knock ears and it doesn't seem to be pinging at all Is there a rule of thumb for the Falcon 4L and amount of timing advance possible between 91 and 98? Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted September 22, 2018 Author Share Posted September 22, 2018 The stock calibrations knock all the time, they run permanently y on the edge of mild detonation. This is ok on stock boost levels but will grenade a motor that is making big power. The table you mention already does this on NA falcons, so they add 4 degrees of spark when it detects 95/98 octane. Turbo falcons disable this feature in most strategies. Timing depends on load so you really need to get on a dyno with knock ears to find out. Quote Link to comment Share on other sites More sharing options...
finnigan001 Posted September 23, 2018 Share Posted September 23, 2018 On 9/22/2018 at 1:59 PM, Roland@pcmtec said: The stock calibrations knock all the time, they run permanently y on the edge of mild detonation. This is ok on stock boost levels but will grenade a motor that is making big power. Just wondering what you consider big power? Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted September 24, 2018 Author Share Posted September 24, 2018 11 hours ago, finnigan001 said: Just wondering what you consider big power? I don't like gospels so more than stock boost. ? I would just get on a dyno with knock ears, anything else is guessing. 1 Quote Link to comment Share on other sites More sharing options...
finnigan001 Posted September 24, 2018 Share Posted September 24, 2018 (edited) Hahaha, fair enough. Does anyone know what the PID for the knock sensor is... having trouble logging it. using innovate ot2 + dashcommand. Also being using a elm327 bluetooth and car scanner on iphone. Edited September 24, 2018 by finnigan001 extra question Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted September 24, 2018 Author Share Posted September 24, 2018 There isn't one. You need DMR logging, we will have it soon. 2 Quote Link to comment Share on other sites More sharing options...
3bar Posted November 15, 2019 Share Posted November 15, 2019 hi, just chiming in on this to see how the "slider idea" is progressing ? Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted November 15, 2019 Author Share Posted November 15, 2019 2 hours ago, 3bar said: hi, just chiming in on this to see how the "slider idea" is progressing ? After the datalogger has gauges, histograms and map tracing we might look into something like that if we get more demand for it. Until now no one has asked. Quote Link to comment Share on other sites More sharing options...
Puffwagon Posted December 22, 2020 Share Posted December 22, 2020 In regard to spark source, how many are there? I'm seeing mine change between borderline and foreground borderline and am curious to learn why. Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted December 22, 2020 Author Share Posted December 22, 2020 Foreground borderline and borderline are basically the same thing. It just means one of the various adders is causing the spark to limit at the borderline value. For what you are doing you can assume they are the same. 1 Quote Link to comment Share on other sites More sharing options...
JMSMotorsport Posted February 1, 2021 Share Posted February 1, 2021 Knock Retard Logging - Am I right in thinking that logging SPKAD_IND_AVG is the amount of spark retard the PCM is Pulling? - So at RPM2400 - LOAD .93 SPKAD is -1.18 using Borderline Spark Table (As Seen in Screenshot) So to correct this knock event I would take 1-1.5 degrees from this part of the Borderline Spark Table? Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted February 1, 2021 Author Share Posted February 1, 2021 Yes that is the correct value. I recommend right clicking on it and setting it to high priority when the vehicle is connected as well so you are getting a high sample rate. You can also log spark retard per cylinder as well to see if it's a particular cyl. 1 Quote Link to comment Share on other sites More sharing options...
JMSMotorsport Posted February 1, 2021 Share Posted February 1, 2021 I’ve also noticed the knock events seem to move around in the rpm, so I’m starting to think it may be false knock as I can’t hear anything through my knock ears but I’m only just getting used to using them and distinguishing the knock noise from the background noise. Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted February 2, 2021 Author Share Posted February 2, 2021 Trust your knock ears as these do detect false knock. Check engine mounts and anything that could be vibrating. 1 Quote Link to comment Share on other sites More sharing options...
john.z Posted November 10, 2021 Share Posted November 10, 2021 What does auF1279 achieve? Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted November 10, 2021 Author Share Posted November 10, 2021 24 minutes ago, john.z said: What does auF1279 achieve? The 5.0 supercharged V8 uses a different knock strategy for tip in spark knock control. It's not something you should change. Quote Link to comment Share on other sites More sharing options...
Milanski Posted April 26, 2022 Share Posted April 26, 2022 trying to get borderline knock to be used at all times, however, there are instances at low load 0.2 to 0.3 where the calc is resorting to MBT tables. An example at 1240rpm, load 0.33, lamda 1.1, iat 37deg. auF16630MBT=27.5, auF16593 BLK = 24.5. This part is good. my MBT table is 3deg higher than borderline. auf2433 - Coolant temp adjustment is zeroed out. The final spark advance is 23deg. For the life of me cant see how this is possible with the above maths: Final Spark = Math.Min(auF16593 + auF0218 + auF0223 * auF0222 + auF0220 * auF0221, auF16630-auF2433). auF0218 = spark lambda = zeroed out auF0222 = ECT running at 90deg = wont be used: auF0220 = IAT running at 37deg = probably around 1 or 2 according to table, this coupled with AUF221 which is 0.1 makes IAT correct if any at all. MBT and BLK tables for reference Could this table: be used somehow in the final spark calc? 5 degree retard is almost the number, but that would be 22.5, whilst y final is 23. Something is pulling 4.5deg and i can find it. in the meantime I will zero this out, to see effect on next run. Quote Link to comment Share on other sites More sharing options...
Puffwagon Posted April 26, 2022 Share Posted April 26, 2022 Having a knock sensor unplugged will cause it to pull timing. I've seen this happen a couple of times, once was me forgetting to plug it in and the other was the rear sensor plug being snapped off. Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted April 26, 2022 Author Share Posted April 26, 2022 Definitely try zeroing the emissions table out. There could be other items we missed from the math, they should be the bulk of the calculation and what is used when at load. Idle transition, tip in, decel, knock etc will all likely be calculated differently. Quote Link to comment Share on other sites More sharing options...
Milanski Posted April 26, 2022 Share Posted April 26, 2022 update to my previous post - I have now zeroed out the emmissions table - presto the borderline knock table is in use 100% of the time. Thank you for comments Puffwagon and Roland. BTW how reliable are knock sensors for street tuning - off the dyno tuning. Every now and then a couple of my points pick up -0.3knock retard which I will fix up in the tables if they truely are "knock". Quote Link to comment Share on other sites More sharing options...
Puffwagon Posted April 26, 2022 Share Posted April 26, 2022 You can let them go to 2.0 on 98 before it's too much. 1 Quote Link to comment Share on other sites More sharing options...
dat111 Posted April 30, 2022 Share Posted April 30, 2022 On 4/26/2022 at 6:03 PM, Puffwagon said: You can let them go to 2.0 on 98 before it's too much. is that 2 degrees of knock? Quote Link to comment Share on other sites More sharing options...
Puffwagon Posted April 30, 2022 Share Posted April 30, 2022 Two degrees of knock retard shown in the log. Quote Link to comment Share on other sites More sharing options...
rfh Posted June 12, 2022 Share Posted June 12, 2022 Hey Guys Does anyone know what effect does changing "au0352 Fuel Octane -95-Default fuel octane (RON) for calibration of the spark Borderline Knock table" to 91? Does it blanket the table with less advance? Cheers Rob Quote Link to comment Share on other sites More sharing options...
rfh Posted June 13, 2022 Share Posted June 13, 2022 Sorry, BF series 3 auto wagon Strategy HACE8ED Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted June 13, 2022 Author Share Posted June 13, 2022 5 hours ago, rfh said: Hey Guys Does anyone know what effect does changing "au0352 Fuel Octane -95-Default fuel octane (RON) for calibration of the spark Borderline Knock table" to 91? Does it blanket the table with less advance? Cheers Rob There is automatic octane detection logic in the tune. When the "higher" octane is activated it adds spark across the board. This assumes the base calibration is for 91, and the alternate octane is 95 which is detected via abscence of knock. if the base octane is set to 95, then it assumes the higher octane is always active (and is zero'd). I think, I'm not 100% and haven't actually tested to verify this, but from what I can see I'm reasonably confident this is how it works. In the turbo cals I believe this is always disabled. I think its enabled in some of the non turbo cals. In a turbo cal I believe it would cause too much knock attempting to detect if the better fuel was in the tank and that is why its disabled. If you set the base fuel type to 91, and then enable all the required scalars for octane detection it will add spark as per auF0226 to your final spark. Octane adjust is enabled via auF2097 and will be detected when the window is active as per the following scalars In the FG they also have a wastegate adder for the higher octane detection. This is so that it reduces boost whilst attempting to detect the higher octane (I think) so that it doesn't ping too badly. However once again I assume Ford found this didn't work well or wasn't safe to enable as all the Turbo cals I've seen have auF2097 disabled. Personally I would set up a multi tune and simply set tune 1 as a "valet" or low boost low octane tune which you select when you know you are putting unknown or 91 octane fuel in the car. Quote Link to comment Share on other sites More sharing options...
rfh Posted June 13, 2022 Share Posted June 13, 2022 Thanks Roland, This vehicle has no mods but pings like mad @ 1800 to 2700 and ~40% tps, regardless of fuel used, 91 or 98. Logs show pretty much no knock detection as if the knock sensors have gone deaf. Have you seen this before? So it's looking like they need to be changed.. Cheers Rob Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.