ini file for initial idle control work

This commit is contained in:
Josh Stewart 2015-06-02 22:30:53 +10:00
parent f0d363407b
commit 65d23e6258
1 changed files with 63 additions and 28 deletions

View File

@ -60,15 +60,15 @@
;----------------------------------------------------------------------------
endianness = little
nPages = 3
nPages = 4
burnCommand = "B"
; pageSize = 125
pageSize = 128, 128, 128
pageSize = 128, 128, 128, 128
pageActivationDelay = 10
; pageActivate = ""
pageActivate = "P\001", "P\002", "P\003"
pageReadCommand = "V", "V", "V"
pageValueWrite = "W%o%v", "W%o%v", "W%o%v"
pageActivate = "P\001", "P\002", "P\003", "P\004"
pageReadCommand = "V", "V", "V", "V"
pageValueWrite = "W%o%v", "W%o%v", "W%o%v", "W%o%v"
; pageChunkWrite = "" ; No chunk write for standard MS
page = 1
@ -139,11 +139,7 @@ page = 1
primePulse = scalar, U08, 119, "ms", 0.1, 0.0, 0.0, 25.5, 1
unused120 = scalar, U08, 120, "RPM", 100.0, 0.0, 100, 25500, 0
#if CELSIUS
fastIdleT = scalar, U08, 121, "°C", 0.555, -72.0, -40, 102, 1
#else
fastIdleT = scalar, U08, 121, "°F", 1.0, -40.0, -40, 215, 0
#endif
unused121 = scalar, U08, 120, "RPM", 100.0, 0.0, 100, 25500, 0
egoSwitch = scalar, U08, 122, "v", 0.0196, 0.0, 0.0, 5.0, 3
taeColdM = scalar, U08, 123, "%", 1.0, 0.0, 0.0, 250.0, 0
tpsMin = scalar, U08, 124, "ADC", 1.0, 0.0, 0.0, 255.0, 0
@ -256,6 +252,34 @@ page = 3
;unused125 = scalar, U08, 125, "none", 0, 0, 0, 0, 0
;unused126 = scalar, U08, 126, "none", 0, 0, 0, 0, 0
;unused127 = scalar, U08, 127, "none", 0, 0, 0, 0, 0
;--------------------------------------------------
;Start idle control table (Table 4)
;--------------------------------------------------
page = 4
iacCLValues = array, U08, 0, [10], "RPM", 1.0, 0.0, 100.0, 255, 0
iacOLStepVal = array, U08, 10, [10], "Steps", 1.0, 0, 0, 255, 0
iacOLPWMVal = array, U08, 20, [10], "Duty %", 1.0, 0, 0, 100, 0
iacBins = array, U08, 30, [10], "C", 1.0, -40, -40, 215, 0
iacCrankSteps= array, U08, 40, [4], "Steps", 1.0, 0, 0, 255, 0
iacCrankDuty = array, U08, 44, [4], "Duty %", 1.0, 0, 0, 100, 0
iacCrankBins = array, U08, 48, [4], "C", 1.0, -40, -40, 215, 0
iacAlgorithm = bits , U08, 52, [0:2], "None", "On/Off", "PWM", "PWM Closed Loop", "Stepper", "Stepper Closed Loop"
iacStepTime = bits , U08, 52, [3:5], "1", "2", "3", "4", "5", "6"
unused38 = bits , U08, 52, [6:7], "INVALID", "INVALID", "INVALID", "INVALID"
#if CELSIUS
iacFastTemp = scalar, U08, 53, "C", 1.0, -40, -40, 215, 0
#else
iacFastTemp = scalar, U08, 53, "F", 1.0, -40, -40, 215, 0
#endif
iacStepHome = scalar, U08, 54, "Steps", 1.0, 0, 0, 255, 0
iacStepHyster= scalar, U08, 54, "C", 0.1, 0.0, 0.0, 25.5, 1
;-------------------------------------------------------------------------------
[ConstantsExtensions]
@ -310,8 +334,6 @@ page = 3
menu = "&Tuning"
subMenu = std_realtime, "&Realtime Display"
subMenu = std_warmup, "&Warmup Enrichment"
subMenu = crankPW, "Cranking Settings"
subMenu = accelEnrichments, "&Acceleration Wizard"
subMenu = egoControl, "AFR/O2", 3
subMenu = RevLimiterS, "Rev Limits", 2
@ -331,6 +353,14 @@ page = 3
;subMenu = wheelsim, "Stim for wheel"
;subMenu = oddwheel, "Oddfire Wheel settings", 7, { wheelon && oddfire }
menu = "&Starting/Idle"
subMenu = crankPW, "Cranking Settings"
subMenu = std_warmup, "&Warmup Enrichment"
subMenu = std_separator
;subMenu = idleSettings, "Idle Control"
subMenu = iacPwm_curve, "PWM Duty Cycle"
subMenu = iacPwmCrank_curve, "PWM Cranking Duty Cycle"
menuDialog = main
menu = "T&ools"
;subMenu = sensorCal, "Calibrate MAP/Baro"
@ -528,16 +558,13 @@ page = 3
; Help down here
help = helpEnrichments, "Enrichments Help"
text = "<strong>Priming Pulse</strong><br><br>"
text = "The duration in milliseconds of a priming pulse that is applied when the MS controller is powered up. If you dont want a priming pulse, set this field to zero. (Only available for version 2.0 and later of MegaSquirt controller code.)<br>"
text = "The duration in milliseconds of a priming pulse that is applied when the MS controller is powered up. If you dont want a priming pulse, set this field to zero.<br>"
text = "<br><strong>Cranking Pulsewidth</strong><br><br>"
text = "Cranking pulse width determines how long the injector will be open in milliseconds for each pulse while the engine is cranking (i.e., the RPM is below 300). The actual pulse width is determined by performing linear interpolation on the line described by the end points you enter for the "-40 degrees F" and "170 degrees F" values. For instance, if you enter 10.0 ms as the pulse width at -40 F and 2.0 ms at 170 F, the pulse width will be 6.0 ms when you start your engine at 65 F.<br>"
text = "Note: Cranking pulse occur at every ignition event, while running pulses only occur at the interval specified on the constants page; if you have a 4 cylinder engine and are taking the tachometer signal from the coil, then you will get four (4) cranking pulses per cycle and depending on settings one injection per cycle while running.<br>"
text = "The MS variables "CWU" and "CWH" hold the low temperature and high temperature pulse widths, respectively.<br>"
text = "<br><strong>Afterstart Enrichment</strong><br>"
text = "The afterstart enrichment is one that decays from its max value (specified in the "Enrichment (percent)" field) to zero in a linear fashion over a period defined in "Number of Ignition Cycles." If you specify 20% enrichment over 250 ignition cycles, then the first pulse is enriched by 20%, the 125th pulse is enriched by 10% and the 250th (and later) by zero percent (this assumes 1 event per cycle, or a 1 cylinder engine; divide by the number of ignition events per cycle to get the specific behavior for your motor).<br>"
text = "MS stores these values in the flash constants called "AWC" (Afterstart Warmup Count) and "AWEV" (Afterstart Warmup Enrichment Value).<br>"
text = "<br><strong>Exhaust Gas Oxygen Sensor Parameters</strong><br>"
text = "These parameters define the closed loop behavior of MS. You must have a narrow band O2 sensor hooked up for this mode to work in v.1.0 controller code; either a narrow band or wide band will work with v.2.0 of controller code. To disable closed loop operation altogether, set the EGO Step value to zero.<br>"
@ -551,10 +578,10 @@ help = helpEnrichments, "Enrichments Help"
text = "<br><strong>Coolant Temp Activation (°F)</strong><br>"
text = "This is the temperature below which closed loop operation is disabled. If this value is too low, then closed loop will try to lean out the warmup enrichments and you may experience rough running. Typical value is 160 F and should somewhat above the point at which warmup enrichment stops (see the Warmup Enrichment Bins settings and find the lowest on which contains 100).<br>"
text = "The MS value "EGOTEMP" stores this quantity.<br>"
text = "The value "EGOTEMP" stores this quantity.<br>"
text = "<br><strong>Ignition Events Per Step</strong><br>"
text = "This value determines the rate at which the closed loop algorithm applies correction. The default value of 32, when used on a four cylinder engine with four ignition events per cycle, tells MS to wait for 8 cycles before changing the current correction factor.<br>"
text = "This value determines the rate at which the closed loop algorithm applies correction. The default value of 32, when used on a four cylinder engine with four ignition events per cycle, wait for 8 cycles before changing the current correction factor.<br>"
text = "<br><strong>EGO Step (percent)</strong><br>"
text = "Once the closed loop algorithm has decided to change the correction factor, it adds or subtracts this percentage from the current value. This should move slowly to avoid unstable response, so make sure it is small, 1% being the default.<br>"
@ -579,12 +606,8 @@ help = helpEnrichments, "Enrichments Help"
text = "<strong>Tuning Note:</strong> While you are tuning the VE table you should set this threshold artificially high (maybe 40.0) to disable acceleration enrichment completely. After the VE table is fairly well-defined, set this back to 1.2 and begin tuning AE.<br>"
text = "MS stores this value in the "TPSTHRESH" variable.<br>"
text = "<br><strong>Accel Time (sec)</strong><br>"
text = "This value indicates how long the acceleration enrichment "squirt" will last. Typical values are around 1.0 second. MS stores this value in the variable "TPSACLK."<br>"
text = "<br><strong>Cold Accel Enrichment (ms)</strong><br>"
text = "The acceleration enrichment pulse also varies depending upon coolant temperature. The value specified here is the pulse width added to the value from the bin calculations at -40 F. The Cold Acceleration Enrichment amount is linearly interpolated from full amount at -40 F down to zero at 165 F. A typical value might be 2.0 ms.<br>"
text = "This value is stored in the "TPSACOLD" variable in MS.<br>"
text = "<br><strong>Cold Accel Multiplier (%)</strong><br>"
text = "Another means for increasing the amount of fuel delivered by the acceleration enrichment pulse is supplied by this value; it is likewise interpolated from the full specified amount at 40F down to zero at 165 F. Before the Cold Acceleration Enrichment value is added to the base acceleration enrichment pulsewidth, it is multiplied by this value.<br>"
@ -595,15 +618,12 @@ help = helpEnrichments, "Enrichments Help"
text = "3) Take the first case, but hit the accelerator faster, giving 8.0 ms base AE pulse. We now have a result of 8.0+2.0 = 10.0 ms.<br>"
text = "4) Take case 2, but with the higher base AE pulse, giving 8.0*1.4 = 11.2 ms.<br>"
text = "The bottom line is that the CAE modifier is constant and independent of the base pulse, where on the other hand, the CAM modifier has a proportional effect on the AE, bigger base pulse means bigger result.<br>"
text = "This value is stored in the 'ACMULT' variable in MS.<br>"
text = "<br><strong>Decel Fuel Amount (%)</strong><br>"
text = "When you let off the throttle rapidly (that is the closing rate exceeds TPSDOT Thresh) and the engine is turning faster than 1500 RPM, then deceleration fuel cutoff is performed by MS. Deceleration fuel amount is multiplied by the "normal" pulse width, that is, if the calculated pulse is 12.0 ms and you have 20% decel amount, then the resulting pulse width is 2.4 ms. A value of 100% causes the fuel to remain at its calculated value, and can cure bucking on deceleration in vehicles with manual transmissions; those with automatic transmissions may benefit in fuel economy by using values below 100%.<br>"
text = "The MS variable "TPSDQ" holds this value as a percentage. <br>"
text = "When you let off the throttle rapidly (that is the closing rate exceeds TPSDOT Thresh) and the engine is turning faster than 1500 RPM, then deceleration fuel cutoff is performed. Deceleration fuel amount is multiplied by the "normal" pulse width, that is, if the calculated pulse is 12.0 ms and you have 20% decel amount, then the resulting pulse width is 2.4 ms. A value of 100% causes the fuel to remain at its calculated value, and can cure bucking on deceleration in vehicles with manual transmissions; those with automatic transmissions may benefit in fuel economy by using values below 100%.<br>"
text = "<br><strong>Acceleration Enrichment Bins (ms)</strong><br>"
text = "These bins specify the actual enrichment in terms of pulse width. They are linearly interpolated to determine a value that is ultimately added to the computed pulse width.<br>"
text = "The array of values is called "TPSAQ" as stored in MS."
[CurveEditor]
@ -642,6 +662,23 @@ help = helpEnrichments, "Enrichments Help"
xBins = airDenBins, iat
yBins = airDenRates
; Curves for idle control
; Standard duty table for PWM valves
curve = iacPwm_curve, "IAC PWM Duty"
columnLabel = "Coolant Temperature", "C"
xAxis = -40, 215, 6
yAxis = 0, 100, 4
xBins = iacBins, coolant
yBins = iacOLPWMVal
; Cranking duty table for PWM valves
curve = iacPwmCrank_curve, "IAC PWM Cranking Duty"
columnLabel = "Coolant Temperature", "C"
xAxis = -40, 215, 6
yAxis = 0, 100, 4
xBins = iacCrankBins, coolant
yBins = iacCrankDuty
[TableEditor]
; table_id, map3d_id, "title", page
table = veTable1Tbl, veTable1Map, "VE Table", 1
@ -964,8 +1001,6 @@ help = helpEnrichments, "Enrichments Help"
; throttle = { table(tpsADC, "throttlefactor.inc") }
throttle = { tps }, "%"
idleDC = { (coolant < fastIdleT) * 100 }
altDiv = { alternate ? 2 : 1 }
cycleTime = { 60000.0 / rpm * (2.0-twoStroke) }
nSquirts = { nCylinders/divider }