PJSC(Pump Jet Solenoid Controller)はArduinoを使用したバイク用燃料噴射コントローラです。このプロジェクトは、オープンソースECUプロジェクト『Speeduino』をベースにしています。
Prepare x4 VE table support.
| @@ -65,8 +65,10 @@ | ||
| 65 | 65 | |
| 66 | 66 | boostTableLabels = bits, U08, [0:1], "Duty Cycle %", "kPa" |
| 67 | 67 | |
| 68 | - fuelLoadMax = scalar, U08, "", 1, 0, 0, 511, 0 | |
| 69 | - ignLoadMax = scalar, U08, "", 1, 0, 0, 511, 0 | |
| 68 | +;[PJSC v1.10] fuelLoadMax = scalar, U08, "", 1, 0, 0, 511, 0 | |
| 69 | +;[PJSC v1.10] ignLoadMax = scalar, U08, "", 1, 0, 0, 511, 0 | |
| 70 | + fuelLoadMax = scalar, U08, "", 1, 0, 0, 255, 0 ;[PJSC v1.10] | |
| 71 | + ignLoadMax = scalar, U08, "", 1, 0, 0, 255, 0 ;[PJSC v1.10] | |
| 70 | 72 | AUXin00Alias = string, ASCII, 20 |
| 71 | 73 | AUXin01Alias = string, ASCII, 20 |
| 72 | 74 | AUXin02Alias = string, ASCII, 20 |
| @@ -321,50 +323,67 @@ | ||
| 321 | 323 | exValvePosMax = scalar, U08, 73, "ADC", 1.0, 0.0, 0.0, 255.0, 0 ; | |
| 322 | 324 | exTrigHysteresis = scalar, U08, 74, "deg", 1.0, 0.0, 0.0, 255.0, 0 ; V |
| 323 | 325 | squirtDeviceType = bits, U08, 75, [0:0], "Injector", "Solenoid valve" ;[PJSC] |
| 324 | - multiVEmapEnabled = bits, U08, 75, [1:2], "Disable", "Separate", "Switching", "Dual Fuel Load" ;[PJSC v1.10] For Dual Fuel Load | |
| 325 | - exTrigModeSelect = bits, U08, 75, [3:4], "Disable", "Spark timing capture", "MAP select switch", "INVALID" ;[PJSC] | |
| 326 | - externalTrigEdge = bits, U08, 75, [5:5], "Rising", "Falling" ; | | |
| 327 | - exValveCaptureEnabled = bits, U08, 75, [6:6], "Disable", "Exhaust Valve Position capture" ; | | |
| 328 | - dutyPulseCaptureEnabled = bits, U08, 75, [7:7], "Disable", "PWM input" ; | | |
| 329 | - dutyPulseCaptureEnabled2 = bits, U08, 76, [0:0], "Disable", "PWM input" ; | | |
| 330 | - dutyPulseOnLevel = bits, U08, 76, [1:1], "High", "Low" ; | | |
| 331 | - dutyPulseOnLevel2 = bits, U08, 76, [2:2], "High", "Low" ; V | |
| 332 | - exValveCalibrationMode = bits, U08, 76, [3:3], "Off", "On" ;[PJSC] | |
| 333 | - algorithm2 = bits, U08, 76, [4:6], $loadSourceNames ;[PJSC v1.10] For Dual Fuel Load | |
| 334 | - secondaryFuelUsage = bits, U08, 76, [7:7], "additive", "multiplicitive" ;[PJSC v1.10] For Dual Fuel Load | |
| 335 | - veMapSelection1 = bits, U08, 77, [0:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 336 | - veMapSelection2 = bits, U08, 78, [0:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 337 | - veMapSelection3 = bits, U08, 79, [0:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 338 | - veMapSelection4 = bits, U08, 80, [0:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 339 | - veMapSelection1_2 = bits, U08, 81, [0:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 340 | - veMapSelection2_2 = bits, U08, 82, [0:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 341 | - veMapSelection3_2 = bits, U08, 83, [0:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 342 | - veMapSelection4_2 = bits, U08, 84, [0:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 343 | - dutyFreqTst1 = scalar, U08, 85, "Hz", 2.0, 0.0, 10, 511, 0 ;[PJSC v1.10] | |
| 344 | - dutyFreqTst2 = scalar, U08, 86, "Hz", 2.0, 0.0, 10, 511, 0 ; | | |
| 345 | - dutyFreqTst3 = scalar, U08, 87, "Hz", 2.0, 0.0, 10, 511, 0 ; | | |
| 346 | - dutyFreqTst4 = scalar, U08, 88, "Hz", 2.0, 0.0, 10, 511, 0 ; | | |
| 347 | - dutyRatioTst1 = scalar, U08, 89, "%", 1.0, 0.0, 0.0, 100.0, 0 ; | | |
| 348 | - dutyRatioTst2 = scalar, U08, 90, "%", 1.0, 0.0, 0.0, 100.0, 0 ; | | |
| 349 | - dutyRatioTst3 = scalar, U08, 91, "%", 1.0, 0.0, 0.0, 100.0, 0 ; | | |
| 350 | - dutyRatioTst4 = scalar, U08, 92, "%", 1.0, 0.0, 0.0, 100.0, 0 ; | | |
| 351 | - testop_fp = bits, U08, 93, [0:0], "Off", "On" ; | | |
| 352 | - testop_inj = bits, U08, 93, [1:2], "Off", "One", "INVALID", "All" ; | | |
| 353 | - testop_coil = bits, U08, 93, [3:4], "Off", "One", "INVALID", "INVALID" ; | | |
| 354 | - testsel_inj = bits, U08, 93, [5:6], "Inj1", "Inj2", "Inj3", "Inj4" ; | | |
| 355 | - testsel_coil = bits, U08, 93, [7:7], "CoilA", "CoilB" ; | | |
| 356 | - testint = scalar, U16, 94, "ms", 0.01, 0.00, 0, 655.35, 1 ; V | |
| 357 | - testrpm = scalar, U16, 94, "RPM", 1.0, { 60000/testint }, 0, 60000, 0 ;[PJSC v1.10] | |
| 358 | - testpw = scalar, U16, 96, "ms", 0.01, 0.00, 0, 655.35, 1 ; * ( 1 byte) | |
| 359 | - testinjcnt = scalar, U16, 98, "", 1, 0, 0, 65535, 0, noLocalUpdate ; | |
| 360 | - muxout1selection = bits, U08, 100, [0:3], "Disable", "IDLE control", "Thermo Fan control", "Launch control", "Fuel pump control", "Boost control", "VVT control", "Tach output", "INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 361 | - muxout2selection = bits, U08, 100, [4:7], "Disable", "IDLE control", "Thermo Fan control", "Launch control", "Fuel pump control", "Boost control", "VVT control", "Tach output", "INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 362 | - baroDenBins = array, U08, 101, [9], "kPa", 1.0, 0.0, 0.0, 255.0, 0 ;[PJSC v1.10] Bins for the Barometric density correction curve | |
| 363 | - baroDenRates = array, U08, 110, [9], "%", 1.0, 0.0, 0.0, 255.0, 0 ;[PJSC v1.10] Values for the \Barometric density correction curve | |
| 364 | - table3Usage = bits, U08, 119, [0:0], "Ignition", "Fuel" ;[PJSC v1.10] | |
| 365 | - algorithm3 = bits, U08, 119, [1:3], $loadSourceNames ;[PJSC v1.10] | |
| 366 | - unused2_119 = bits, U08, 119, [4:7] ;[PJSC v1.10] | |
| 367 | - unused2_120 = array, U08, 120, [8], "%", 1.0, 0.0, 0.0, 255, 0 ;[PJSC v1.10] | |
| 326 | + multiVEmapEnabled = bits, U08, 75, [1:1], "Disable", "Enable" ;[PJSC v1.10] For Dual Fuel Load | |
| 327 | + mapSeparationEnabled = bits, U08, 75, [2:2], "Disable", "Enable" ;[PJSC v1.10] For Dual Fuel Load | |
| 328 | + mapSwitchingEnabled = bits, U08, 75, [3:3], "Disable", "Enable" ;[PJSC v1.10] For Dual Fuel Load | |
| 329 | + dualFuelEnabled = bits, U08, 75, [4:4], "Disable", "Enable" ;[PJSC v1.10] For Dual Fuel Load | |
| 330 | + secondaryFuelUsage = bits, U08, 75, [5:5], "additive", "multiplicitive" ;[PJSC v1.10] For Dual Fuel Load | |
| 331 | + unused2_75 = bits, U08, 75, [6:7] ;[PJSC v1.10] | |
| 332 | + exTrigModeSelect = bits, U08, 76, [0:1], "Disable", "Spark timing capture", "MAP select switch", "INVALID" ;[PJSC] | |
| 333 | + externalTrigEdge = bits, U08, 76, [2:2], "Rising", "Falling" ; | | |
| 334 | + exValveCaptureEnabled = bits, U08, 76, [3:3], "Disable", "Exhaust Valve Position capture" ; | | |
| 335 | + exValveCalibrationMode = bits, U08, 76, [4:4], "Off", "On" ;[PJSC] | |
| 336 | + unused2_76 = bits, U08, 76, [5:7] ;[PJSC v1.10] | |
| 337 | + dutyPulseCaptureEnabled = bits, U08, 77, [0:0], "Disable", "PWM input" ; | | |
| 338 | + dutyPulseCaptureEnabled2 = bits, U08, 77, [1:1], "Disable", "PWM input" ; | | |
| 339 | + dutyPulseOnLevel = bits, U08, 77, [2:2], "High", "Low" ; | | |
| 340 | + dutyPulseOnLevel2 = bits, U08, 77, [3:3], "High", "Low" ; V | |
| 341 | + unused2_77 = bits, U08, 77, [4:7] ;[PJSC v1.10] | |
| 342 | + veMapSelection1Pri = bits, U08, 78, [0:3], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 343 | + veMapSelection1Sec = bits, U08, 78, [4:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 344 | + veMapSelection2Pri = bits, U08, 79, [0:3], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 345 | + veMapSelection2Sec = bits, U08, 79, [4:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 346 | + veMapSelection3Pri = bits, U08, 80, [0:3], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 347 | + veMapSelection3Sec = bits, U08, 80, [4:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 348 | + veMapSelection4Pri = bits, U08, 81, [0:3], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 349 | + veMapSelection4Sec = bits, U08, 81, [4:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 350 | + veMapSelection1_2Pri = bits, U08, 82, [0:3], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 351 | + veMapSelection1_2Sec = bits, U08, 82, [4:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 352 | + veMapSelection2_2Pri = bits, U08, 83, [0:3], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 353 | + veMapSelection2_2Sec = bits, U08, 83, [4:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 354 | + veMapSelection3_2Pri = bits, U08, 84, [0:3], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 355 | + veMapSelection3_2Sec = bits, U08, 84, [4:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 356 | + veMapSelection4_2Pri = bits, U08, 85, [0:3], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 357 | + veMapSelection4_2Sec = bits, U08, 85, [4:7], "VE Table 1","VE Table 2","VE Table 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 358 | + dutyFreqTst1 = scalar, U08, 86, "Hz", 2.0, 0.0, 10, 511, 0 ;[PJSC v1.10] | |
| 359 | + dutyFreqTst2 = scalar, U08, 87, "Hz", 2.0, 0.0, 10, 511, 0 ; | | |
| 360 | + dutyFreqTst3 = scalar, U08, 88, "Hz", 2.0, 0.0, 10, 511, 0 ; | | |
| 361 | + dutyFreqTst4 = scalar, U08, 89, "Hz", 2.0, 0.0, 10, 511, 0 ; | | |
| 362 | + dutyRatioTst1 = scalar, U08, 90, "%", 1.0, 0.0, 0.0, 100.0, 0 ; | | |
| 363 | + dutyRatioTst2 = scalar, U08, 91, "%", 1.0, 0.0, 0.0, 100.0, 0 ; | | |
| 364 | + dutyRatioTst3 = scalar, U08, 92, "%", 1.0, 0.0, 0.0, 100.0, 0 ; | | |
| 365 | + dutyRatioTst4 = scalar, U08, 93, "%", 1.0, 0.0, 0.0, 100.0, 0 ; | | |
| 366 | + testop_fp = bits, U08, 94, [0:0], "Off", "On" ; | | |
| 367 | + testop_inj = bits, U08, 94, [1:2], "Off", "One", "INVALID", "All" ; | | |
| 368 | + testop_coil = bits, U08, 94, [3:4], "Off", "One", "INVALID", "INVALID" ; | | |
| 369 | + testsel_inj = bits, U08, 94, [5:6], "Inj1", "Inj2", "Inj3", "Inj4" ; | | |
| 370 | + testsel_coil = bits, U08, 94, [7:7], "CoilA", "CoilB" ; | | |
| 371 | + testint = scalar, U16, 95, "ms", 0.01, 0.00, 0, 655.35, 1 ; V | |
| 372 | + testrpm = scalar, U16, 95, "RPM", 1.0, { 60000/testint }, 0, 60000, 0 ;[PJSC v1.10] | |
| 373 | + testpw = scalar, U16, 97, "ms", 0.01, 0.00, 0, 655.35, 1 ; * ( 1 byte) | |
| 374 | + testinjcnt = scalar, U16, 99, "", 1, 0, 0, 65535, 0, noLocalUpdate ; | |
| 375 | + muxout1selection = bits, U08, 101, [0:3], "Disable", "IDLE control", "Thermo Fan control", "Launch control", "Fuel pump control", "Boost control", "VVT control", "Tach output", "INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 376 | + muxout2selection = bits, U08, 101, [4:7], "Disable", "IDLE control", "Thermo Fan control", "Launch control", "Fuel pump control", "Boost control", "VVT control", "Tach output", "INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" | |
| 377 | + baroDenBins = array, U08, 102, [9], "kPa", 1.0, 0.0, 0.0, 255.0, 0 ;[PJSC v1.10] Bins for the Barometric density correction curve | |
| 378 | + baroDenRates = array, U08, 111, [9], "%", 1.0, 0.0, 0.0, 255.0, 0 ;[PJSC v1.10] Values for the \Barometric density correction curve | |
| 379 | + table3Usage = bits, U08, 120, [0:0], "Ignition", "Fuel" ;[PJSC v1.10] | |
| 380 | + unused2_120 = bits, U08, 120, [1:7] ;[PJSC v1.10] | |
| 381 | + algorithm2 = bits, U08, 121, [0:2], $loadSourceNames ;[PJSC v1.10] For Dual Fuel Load | |
| 382 | + algorithm3 = bits, U08, 121, [3:5], $loadSourceNames ;[PJSC v1.10] | |
| 383 | + unused2_121 = bits, U08, 121, [6:7] ;[PJSC v1.10] | |
| 384 | + algorithm4 = bits, U08, 122, [0:2], $loadSourceNames ;[PJSC v1.10] | |
| 385 | + unused2_122 = bits, U08, 122, [3:7] ;[PJSC v1.10] | |
| 386 | + unused2_123 = array, U08, 123, [5], "%", 1.0, 0.0, 0.0, 255, 0 ;[PJSC v1.10] | |
| 368 | 387 | |
| 369 | 388 | |
| 370 | 389 | ;Page 2 is the fuel map and axis bins only |
| @@ -374,7 +393,8 @@ | ||
| 374 | 393 | ; name = scalar, type, offset, units, scale, translate, lo, hi, digits |
| 375 | 394 | veTable = array, U08, 0, [16x16],"%", 1.0, 0.0, 0.0, 255.0, 0 |
| 376 | 395 | rpmBins = array, U08, 256, [ 16], "RPM", 100.0, 0.0, 100.0, 25500.0, 0 |
| 377 | - fuelLoadBins = array, U08, 272, [ 16], { bitStringValue(algorithmUnits , algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 | |
| 396 | +;[PJSC v1.10] fuelLoadBins = array, U08, 272, [ 16], { bitStringValue(algorithmUnits , algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 | |
| 397 | + fuelLoadBins = array, U08, 272, [ 16], { bitStringValue(algorithmUnits , algorithm) }, 1.0, 0.0, 0.0, {fuelLoadMax}, 0 ;[PJSC v1.10] | |
| 378 | 398 | ;fuelLoadBins = array, U08, 272, [ 16], { bitStringValue(algorithmUnits , algorithm) }, 2.0, 0.0, 0.0, { arrayValue(rpmBins , algorithm) }, 0 |
| 379 | 399 | |
| 380 | 400 | ;-------------------------------------------------- |
| @@ -384,11 +404,12 @@ | ||
| 384 | 404 | #if table3_spark ;[PJSC v1.10] For switching table3 |
| 385 | 405 | advTable1 = array, U08, 0,[16x16], "deg", 1.0, -40, -40, 215.0, 0 |
| 386 | 406 | rpmBins2 = array, U08, 256,[ 16], "RPM", 100.0, 0.0, 100, 25500, 0 |
| 387 | - mapBins1= array, U08, 272, [ 16], { bitStringValue(algorithmUnits , ignAlgorithm) }, 2.0, 0.0, 0.0, {ignLoadMax}, 0 ; This name has to be used in order for the table to show up in MLVs table. I can't find the regexs that make this work :( | |
| 388 | -#else ;[PJSC v1.10] For switching table3 | |
| 407 | +;[PJSC v1.10] mapBins1= array, U08, 272, [ 16], { bitStringValue(algorithmUnits , ignAlgorithm) }, 2.0, 0.0, 0.0, {ignLoadMax}, 0 ; This name has to be used in order for the table to show up in MLVs table. I can't find the regexs that make this work :( | |
| 408 | + mapBins1= array, U08, 272, [ 16], { bitStringValue(algorithmUnits , ignAlgorithm) }, 1.0, 0.0, 0.0, {ignLoadMax}, 0 ;[PJSC v1.10] For switching table3 | |
| 409 | +#else ; | | |
| 389 | 410 | veTable3 = array, U08, 0,[16x16], "%", 1.0, 0.0, 0.0, 255.0, 0 ; | |
| 390 | 411 | rpmBinsVE3 = array, U08, 256,[ 16], "RPM", 100.0, 0.0, 100.0, 25500.0, 0 ; | |
| 391 | - fuelLoadBins3 = array, U08, 272, [ 16], { bitStringValue(algorithmUnits3 , algorithm3) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 ; V | |
| 412 | + fuelLoadBins3 = array, U08, 272, [ 16], { bitStringValue(algorithmUnits3 , algorithm3) }, 1.0, 0.0, 0.0, {fuelLoadMax}, 0 ; V | |
| 392 | 413 | #endif ;[PJSC v1.10] For switching table3 |
| 393 | 414 | |
| 394 | 415 | ;-------------------------------------------------- |
| @@ -1071,7 +1092,7 @@ | ||
| 1071 | 1092 | ; name = scalar, type, offset, units, scale, translate, lo, hi, digits |
| 1072 | 1093 | veTable2 = array, U08, 0, [16x16],"%", 1.0, 0.0, 0.0, 255.0, 0 |
| 1073 | 1094 | rpmBinsVE2 = array, U08, 256, [ 16], "RPM", 100.0, 0.0, 100.0, 25500.0, 0 |
| 1074 | - fuelLoadBins2 = array, U08, 272, [ 16], { bitStringValue(algorithmUnits2 , algorithm2) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 | |
| 1095 | + fuelLoadBins2 = array, U08, 272, [ 16], { bitStringValue(algorithmUnits2 , algorithm2) }, 1.0, 0.0, 0.0, {fuelLoadMax}, 0 | |
| 1075 | 1096 | |
| 1076 | 1097 | ;------------------------------------------------------------------------------- |
| 1077 | 1098 |
| @@ -1221,10 +1242,22 @@ | ||
| 1221 | 1242 | |
| 1222 | 1243 | defaultValue = multiVEmapEnabled, 0 ;[PJSC] |
| 1223 | 1244 | defaultValue = pjscFreq, 14 ; | |
| 1224 | - defaultValue = veMapSelection1, 0 ; | | |
| 1225 | - defaultValue = veMapSelection2, 0 ; | | |
| 1226 | - defaultValue = veMapSelection3, 0 ; | | |
| 1227 | - defaultValue = veMapSelection4, 0 ; | | |
| 1245 | + defaultValue = veMapSelection1Pri, 0 ; | | |
| 1246 | + defaultValue = veMapSelection1Sec, 0 ; | | |
| 1247 | + defaultValue = veMapSelection2Pri, 0 ; | | |
| 1248 | + defaultValue = veMapSelection2Sec, 0 ; | | |
| 1249 | + defaultValue = veMapSelection3Pri, 0 ; | | |
| 1250 | + defaultValue = veMapSelection3Sec, 0 ; | | |
| 1251 | + defaultValue = veMapSelection4Pri, 0 ; | | |
| 1252 | + defaultValue = veMapSelection4Sec, 0 ; | | |
| 1253 | + defaultValue = veMapSelection1_2Pri, 0 ; | | |
| 1254 | + defaultValue = veMapSelection1_2Sec, 0 ; | | |
| 1255 | + defaultValue = veMapSelection2_2Pri, 0 ; | | |
| 1256 | + defaultValue = veMapSelection2_2Sec, 0 ; | | |
| 1257 | + defaultValue = veMapSelection3_2Pri, 0 ; | | |
| 1258 | + defaultValue = veMapSelection3_2Sec, 0 ; | | |
| 1259 | + defaultValue = veMapSelection4_2Pri, 0 ; | | |
| 1260 | + defaultValue = veMapSelection4_2Sec, 0 ; | | |
| 1228 | 1261 | defaultValue = exTrigModeSelect, 0 ; | |
| 1229 | 1262 | defaultValue = exValveCaptureEnabled, 1 ; | |
| 1230 | 1263 | defaultValue = dutyPulseCaptureEnabled, 0 ; | |
| @@ -1290,13 +1323,18 @@ | ||
| 1290 | 1323 | |
| 1291 | 1324 | ;These are the limits for each of the load algorithms (Refer to the PC Variables section) |
| 1292 | 1325 | ;Order is: MAP TPS IMAP/EMAP ITB UNUSED UNUSED UNUSED UNUSED |
| 1293 | - defaultValue = algorithmLimits, 511 100 511 511 100 100 100 100 | |
| 1326 | +;[PJSC v1.10] defaultValue = algorithmLimits, 511 100 511 511 100 100 100 100 | |
| 1327 | + defaultValue = algorithmLimits, 255 100 255 255 100 100 100 100 | |
| 1294 | 1328 | #if SPEED_DENSITY |
| 1295 | - defaultValue = fuelLoadMax, 511 | |
| 1296 | - defaultValue = ignLoadMax, 511 | |
| 1329 | +;[PJSC v1.10] defaultValue = fuelLoadMax, 511 | |
| 1330 | +;[PJSC v1.10] defaultValue = ignLoadMax, 511 | |
| 1331 | + defaultValue = fuelLoadMax, 255 | |
| 1332 | + defaultValue = ignLoadMax, 255 | |
| 1297 | 1333 | #else |
| 1298 | - defaultValue = fuelLoadMax, 511 | |
| 1299 | - defaultValue = ignLoadMax, 511 | |
| 1334 | +;[PJSC v1.10] defaultValue = fuelLoadMax, 511 | |
| 1335 | +;[PJSC v1.10] defaultValue = ignLoadMax, 511 | |
| 1336 | + defaultValue = fuelLoadMax, 255 | |
| 1337 | + defaultValue = ignLoadMax, 255 | |
| 1300 | 1338 | #endif |
| 1301 | 1339 | |
| 1302 | 1340 | controllerPriority = bootloaderCaps |
| @@ -1368,9 +1406,9 @@ | ||
| 1368 | 1406 | ;[PJSC] subMenu = sparkTbl, "Spark Table", 2 |
| 1369 | 1407 | subMenu = veMapSelectDialog, "VE Table select" ;[PJSC] |
| 1370 | 1408 | subMenu = veTable1Dialog, "&VE Table 1", 0 ; V |
| 1371 | - subMenu = veTable2Dialog, "&VE Table 2", 0, { multiVEmapEnabled >= 1 } ;[PJSC] | |
| 1409 | + subMenu = veTable2Dialog, "&VE Table 2", 0, { multiVEmapEnabled } ;[PJSC] | |
| 1372 | 1410 | #if table3_fuel ;[PJSC v1.10] For switching table3 |
| 1373 | - subMenu = veTable3Dialog, "&VE Table 3", 0, { 3rdTableUsage == 1 } ;[PJSC v1.10] | |
| 1411 | + subMenu = veTable3Dialog, "&VE Table 3", 0, { multiVEmapEnabled } ;[PJSC v1.10] | |
| 1374 | 1412 | #endif ;[PJSC v1.10] For switching table3 |
| 1375 | 1413 | subMenu = afrTable1Tbl, "AFR Table", 5 |
| 1376 | 1414 | subMenu = std_separator |
| @@ -1910,28 +1948,63 @@ | ||
| 1910 | 1948 | panel = accelEnrichments_center, Center |
| 1911 | 1949 | panel = accelEnrichments_south, South |
| 1912 | 1950 | |
| 1913 | - dialog = veMapSelectionSet1, "VE Table selection1 - SW OFF" ;[PJSC v1.10] | |
| 1914 | - field = "Injector 1", veMapSelection1, { multiVEmapEnabled == 1 || multiVEmapEnabled == 2 } ; | | |
| 1915 | - field = "Injector 2", veMapSelection2, { multiVEmapEnabled == 1 || multiVEmapEnabled == 2 } ; | | |
| 1916 | - field = "Injector 3", veMapSelection3, { multiVEmapEnabled == 1 || multiVEmapEnabled == 2 } ; | | |
| 1917 | - field = "Injector 4", veMapSelection4, { multiVEmapEnabled == 1 || multiVEmapEnabled == 2 } ; | | |
| 1918 | - ; | | |
| 1919 | - dialog = veMapSelectionSet2, "VE Table selection2 - SW ON" ; | | |
| 1920 | - field = "Injector 1", veMapSelection1_2, { multiVEmapEnabled == 2 } ; | | |
| 1921 | - field = "Injector 2", veMapSelection2_2, { multiVEmapEnabled == 2 } ; | | |
| 1922 | - field = "Injector 3", veMapSelection3_2, { multiVEmapEnabled == 2 } ; | | |
| 1923 | - field = "Injector 4", veMapSelection4_2, { multiVEmapEnabled == 2 } ; | | |
| 1924 | - ; | | |
| 1925 | - dialog = veMapSelectionDialog, "", xAxis ; | | |
| 1926 | - panel = veMapSelectionSet1 ; | | |
| 1927 | - panel = veMapSelectionSet2 ; | | |
| 1928 | - ; | | |
| 1929 | - dialog = veMapSelectDialog, "VE Table select" ; | | |
| 1930 | - field = "Multi VE Table", multiVEmapEnabled ; | | |
| 1931 | - field = "Primary Fuel Load", algorithm ; | | |
| 1932 | - field = "Secondary Fuel Load", algorithm2, { multiVEmapEnabled >= 1 } ; | | |
| 1933 | - field = "Dual Fuel Load Algorithm", secondaryFuelUsage, { multiVEmapEnabled == 3 } ; V | |
| 1934 | - panel = veMapSelectionDialog ;[PJSC v1.10] | |
| 1951 | + dialog = veMapSelectionSet1Pri, "Primary Table" ;[PJSC v1.10] | |
| 1952 | + field = "Injector 1", veMapSelection1Pri ; | | |
| 1953 | + field = "Injector 2", veMapSelection2Pri, { multiVEmapEnabled && mapSeparationEnabled } ; | | |
| 1954 | + field = "Injector 3", veMapSelection3Pri, { multiVEmapEnabled && mapSeparationEnabled } ; | | |
| 1955 | + field = "Injector 4", veMapSelection4Pri, { multiVEmapEnabled && mapSeparationEnabled } ; | | |
| 1956 | + ; | | |
| 1957 | + dialog = veMapSelectionSet1Sec, "Secondary Table" ; | | |
| 1958 | + field = "", veMapSelection1Sec, { multiVEmapEnabled && dualFuelEnabled } ; | | |
| 1959 | + field = "", veMapSelection2Sec, { multiVEmapEnabled && mapSeparationEnabled && dualFuelEnabled } ; | | |
| 1960 | + field = "", veMapSelection3Sec, { multiVEmapEnabled && mapSeparationEnabled && dualFuelEnabled } ; | | |
| 1961 | + field = "", veMapSelection4Sec, { multiVEmapEnabled && mapSeparationEnabled && dualFuelEnabled } ; | | |
| 1962 | + ; | | |
| 1963 | + dialog = veMapSelectionSet1, "VE Table selection1 - SW OFF", xAxis ; | | |
| 1964 | + panel = veMapSelectionSet1Pri ; | | |
| 1965 | + panel = veMapSelectionSet1Sec, { multiVEmapEnabled && dualFuelEnabled } ; | | |
| 1966 | + ; | | |
| 1967 | + dialog = veMapSelectionSet2Pri, "Primary Table" ; | | |
| 1968 | + field = "Injector 1", veMapSelection1_2Pri, { multiVEmapEnabled } ; | | |
| 1969 | + field = "Injector 2", veMapSelection2_2Pri, { multiVEmapEnabled && mapSeparationEnabled } ; | | |
| 1970 | + field = "Injector 3", veMapSelection3_2Pri, { multiVEmapEnabled && mapSeparationEnabled } ; | | |
| 1971 | + field = "Injector 4", veMapSelection4_2Pri, { multiVEmapEnabled && mapSeparationEnabled } ; | | |
| 1972 | + ; | | |
| 1973 | + dialog = veMapSelectionSet2Sec, "Secondary Table" ; | | |
| 1974 | + field = "", veMapSelection1_2Sec, { multiVEmapEnabled && dualFuelEnabled } ; | | |
| 1975 | + field = "", veMapSelection2_2Sec, { multiVEmapEnabled && mapSeparationEnabled && dualFuelEnabled } ; | | |
| 1976 | + field = "", veMapSelection3_2Sec, { multiVEmapEnabled && mapSeparationEnabled && dualFuelEnabled } ; | | |
| 1977 | + field = "", veMapSelection4_2Sec, { multiVEmapEnabled && mapSeparationEnabled && dualFuelEnabled } ; | | |
| 1978 | + ; | | |
| 1979 | + dialog = veMapSelectionSet2, "VE Table selection2 - SW ON", xAxis ; | | |
| 1980 | + panel = veMapSelectionSet2Pri ; | | |
| 1981 | + panel = veMapSelectionSet2Sec, { multiVEmapEnabled && dualFuelEnabled } ; | | |
| 1982 | + ; | | |
| 1983 | + dialog = veMapSelectionDialog, "", xAxis ; | | |
| 1984 | + panel = veMapSelectionSet1 ; | | |
| 1985 | + panel = veMapSelectionSet2, { mapSwitchingEnabled } ; | | |
| 1986 | + ; | | |
| 1987 | + dialog = veMapSelectOption, "VE Table select settings" ; | | |
| 1988 | + field = "Multi VE Table", multiVEmapEnabled ; | | |
| 1989 | + field = "VE Table Separation", mapSeparationEnabled ; | | |
| 1990 | + field = "VE Table Switching", mapSwitchingEnabled ; | | |
| 1991 | + field = "Dual Fuel Load", dualFuelEnabled ; | | |
| 1992 | + field = "Dual Fuel Load Algorithm", secondaryFuelUsage, { dualFuelEnabled } ; | | |
| 1993 | + ; | | |
| 1994 | + dialog = veFuelLoadSelection, "Fuel Load Selection" ; | | |
| 1995 | + field = "VE Table 1 Fuel Load", algorithm ; | | |
| 1996 | + field = "VE Table 2 Fuel Load", algorithm2, { multiVEmapEnabled } ; | | |
| 1997 | +#if table3_fuel ; | | |
| 1998 | + field = "VE Table 3 Fuel Load", algorithm3, { multiVEmapEnabled } ; | | |
| 1999 | +#endif ; | | |
| 2000 | + ; | | |
| 2001 | + dialog = veMapSelectConfig, "", xAxis ; | | |
| 2002 | + panel = veMapSelectOption ; | | |
| 2003 | + panel = veFuelLoadSelection ; | | |
| 2004 | + ; | | |
| 2005 | + dialog = veMapSelectDialog, "VE Table select" ; | | |
| 2006 | + panel = veMapSelectConfig ; V | |
| 2007 | + panel = veMapSelectionDialog ;[PJSC v1.10] | |
| 1935 | 2008 | |
| 1936 | 2009 | ;[PJSC] dialog = veTableDialog_north, "" |
| 1937 | 2010 | ;[PJSC] panel = veTable1Tbl |
| @@ -3454,6 +3527,8 @@ | ||
| 3454 | 3527 | tachometer = rpm, "Engine Speed", "RPM", 0, 13000, 600, 1000,11000,12000, 0, 0 ;[PJSC v1.10] |
| 3455 | 3528 | veGauge = veCurr, "VE Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 |
| 3456 | 3529 | veGauge2 = veCurr2, "VE2 Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 ;[PJSC] |
| 3530 | + veGauge3 = veCurr3, "VE3 Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 ;[PJSC v1.10] | |
| 3531 | + veGauge4 = veCurr4, "VE4 Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 ;[PJSC v1.10] | |
| 3457 | 3532 | warmupEnrichGauge = warmupEnrich, "Warmup Enrichment", "%", 100, 200, 130, 140, 140, 150, 0, 0 |
| 3458 | 3533 | aseEnrichGauge = ase_enrich, "Afterstart Enrichment","%", 0, 200, 130, 140, 140, 150, 0, 0 |
| 3459 | 3534 | batCorrectGauge = batCorrection, "Voltage Correction", "%", 0, 200, 130, 140, 140, 150, 0, 0 |
| @@ -3573,7 +3648,7 @@ | ||
| 3573 | 3648 | |
| 3574 | 3649 | ochGetCommand = "r\$tsCanId\x30%2o%2c" |
| 3575 | 3650 | ;[PJSC] ochBlockSize = 90 |
| 3576 | - ochBlockSize = 108 ;[PJSC v1.10] Extend block size for Test mode | |
| 3651 | + ochBlockSize = 110 ;[PJSC v1.10] Extend block size for Test mode | |
| 3577 | 3652 | |
| 3578 | 3653 | secl = scalar, U08, 0, "sec", 1.000, 0.000 |
| 3579 | 3654 | status1 = scalar, U08, 1, "bits", 1.000, 0.000 |
| @@ -3674,16 +3749,18 @@ | ||
| 3674 | 3749 | ignLoad = scalar, S16, 87, { bitStringValue( algorithmUnits , ignAlgorithm ) }, 1.000, 0.000 |
| 3675 | 3750 | syncLossCounter = scalar, U08, 89, "", 1.000, 0.000 |
| 3676 | 3751 | veCurr2 = scalar, U08, 90, "%", 1.000, 0.000 ;[PJSC]Multi VE Map support |
| 3677 | - valvePosition = scalar, U08, 91, "%", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
| 3678 | - valvePositionADC = scalar, U08, 92, "ADC", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
| 3679 | - sparkedAngle = scalar, S16, 93, "deg", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
| 3680 | - dutyFreq = scalar, U16, 95, "Hz", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 3681 | - dutyRatio = scalar, U16, 97, "%", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 3682 | - dutyFreq2 = scalar, U16, 99, "Hz", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 3683 | - dutyRatio2 = scalar, U16, 101, "%", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 3684 | - testCnt = scalar, U16, 103, "", 1.000, 0.000 ;[PJSC v1.10]For test mode | |
| 3685 | - afr2 = scalar, U08, 105, "O2", 0.100, 0.000 ;[PJSC v1.10] | |
| 3686 | - fuelLoad2 = scalar, S16, 106, { bitStringValue( algorithmUnits2 , algorithm2 ) }, 1.000, 0.000 ;[PJSC v1.10]For dual fuel load | |
| 3752 | + veCurr3 = scalar, U08, 91, "%", 1.000, 0.000 ;[PJSC]Multi VE Map support | |
| 3753 | + veCurr4 = scalar, U08, 92, "%", 1.000, 0.000 ;[PJSC]Multi VE Map support | |
| 3754 | + valvePosition = scalar, U08, 93, "%", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
| 3755 | + valvePositionADC = scalar, U08, 94, "ADC", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
| 3756 | + sparkedAngle = scalar, S16, 95, "deg", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
| 3757 | + dutyFreq = scalar, U16, 97, "Hz", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 3758 | + dutyRatio = scalar, U16, 99, "%", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 3759 | + dutyFreq2 = scalar, U16, 101, "Hz", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 3760 | + dutyRatio2 = scalar, U16, 103, "%", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 3761 | + testCnt = scalar, U16, 105, "", 1.000, 0.000 ;[PJSC v1.10]For test mode | |
| 3762 | + afr2 = scalar, U08, 107, "O2", 0.100, 0.000 ;[PJSC v1.10] | |
| 3763 | + fuelLoad2 = scalar, S16, 108, { bitStringValue( algorithmUnits2 , algorithm2 ) }, 1.000, 0.000 ;[PJSC v1.10]For dual fuel load | |
| 3687 | 3764 | |
| 3688 | 3765 | |
| 3689 | 3766 | #if CELSIUS |
| @@ -3721,8 +3798,10 @@ | ||
| 3721 | 3798 | map_vacboost = { map < baro ? -map_inhg : map_psi } |
| 3722 | 3799 | |
| 3723 | 3800 | ;fuelLoadMax = { arrayValue(algorithmLimits , algorithm) } ;Doesn't work, no idea why. |
| 3724 | - fuelLoadMax = { (algorithm == 0 || algorithm == 2) ? 511 : 100 } | |
| 3725 | - ignLoadMax = { (ignAlgorithm == 0 || ignAlgorithm == 2) ? 511 : 100 } | |
| 3801 | +;[PJSC vv1.10] fuelLoadMax = { (algorithm == 0 || algorithm == 2) ? 511 : 100 } | |
| 3802 | +;[PJSC vv1.10] ignLoadMax = { (ignAlgorithm == 0 || ignAlgorithm == 2) ? 511 : 100 } | |
| 3803 | + fuelLoadMax = { (algorithm == 0 || algorithm == 2) ? 255 : 100 } | |
| 3804 | + ignLoadMax = { (ignAlgorithm == 0 || ignAlgorithm == 2) ? 255 : 100 } | |
| 3726 | 3805 | |
| 3727 | 3806 | boostTableLimit = { boostType == 0 ? 100 : 511 } ;The maximum value allowed in the boost table. 100 is used for duty cycle, 511 for kpa |
| 3728 | 3807 |
| @@ -3766,6 +3845,8 @@ | ||
| 3766 | 3845 | entry = accelEnrich, "Accel Enrich", int, "%d" |
| 3767 | 3846 | entry = veCurr, "VE", int, "%d" |
| 3768 | 3847 | entry = veCurr2, "VE2", int, "%d", { multiVEmapEnabled } ;[PJSC] |
| 3848 | + entry = veCurr3, "VE3", int, "%d", { multiVEmapEnabled } ;[PJSC v1.10] | |
| 3849 | + entry = veCurr4, "VE4", int, "%d", { multiVEmapEnabled } ;[PJSC v1.10] | |
| 3769 | 3850 | entry = pulseWidth, "PW", float, "%.1f" |
| 3770 | 3851 | entry = afrTarget, "AFR Target", float, "%.3f" |
| 3771 | 3852 | entry = pulseWidth, "PW2", float, "%.1f" |
| @@ -15,7 +15,7 @@ | ||
| 15 | 15 | #define ve2SetPage 12 //[PJSC] Config Page 12 |
| 16 | 16 | |
| 17 | 17 | //[PJSC]#define SERIAL_PACKET_SIZE 90 //Must match ochBlockSize in ini file |
| 18 | -#define SERIAL_PACKET_SIZE 108 //[PJSC v1.10] Extend serial packet block size for Test mode | |
| 18 | +#define SERIAL_PACKET_SIZE 110 //[PJSC v1.10] Extend serial packet block size for Test mode | |
| 19 | 19 | |
| 20 | 20 | byte currentPage = 1;//Not the same as the speeduino config page numbers |
| 21 | 21 | bool isMap = true; |
| @@ -250,6 +250,9 @@ | ||
| 250 | 250 | #define NUM_SQUIRT_DEVICE 4 //[PJSC] |
| 251 | 251 | #define SELECT_VE1 0 //[PJSC] |
| 252 | 252 | #define SELECT_VE2 1 //[PJSC] |
| 253 | +#define SELECT_VE3 2 //[PJSC v1.10] | |
| 254 | +#define SELECT_VE4 3 //[PJSC v1.10] | |
| 255 | +#define MULTI_VE_COUNT 4 //[PJSC v1.10] | |
| 253 | 256 | |
| 254 | 257 | #define EXTRIG_SPARK_DISABLE 0 //[PJSC v1.10] For MAP switching |
| 255 | 258 | #define EXTRIG_SPARK_CAPTURE 1 // V |
| @@ -337,9 +340,8 @@ | ||
| 337 | 340 | |
| 338 | 341 | volatile byte captureDutyPulseInterrupt; //[PJSC] For capture duty pulse |
| 339 | 342 | volatile byte captureDutyPulseInterrupt2; //[PJSC] For capture duty pulse |
| 340 | -volatile unsigned int tempPWvalue1; //[PJSC] Multi VE Map support | |
| 341 | -volatile unsigned int tempPWvalue2; //[PJSC] Multi VE Map support | |
| 342 | -volatile unsigned int dualFuelLoadVE; //[PJSC] Dual Fuel Load support | |
| 343 | +volatile byte tempVEvalue[4]; //[PJSC v1.10] Multi VE Map support | |
| 344 | +volatile unsigned int dualFuelLoadVE; //[PJSC v1.10] Dual Fuel Load support | |
| 343 | 345 | |
| 344 | 346 | //These need to be here as they are used in both speeduino.ino and scheduler.ino |
| 345 | 347 | bool channel1InjEnabled = true; |
| @@ -406,6 +408,8 @@ | ||
| 406 | 408 | volatile int rpmDOT; |
| 407 | 409 | byte VE; |
| 408 | 410 | byte VE2; //[PJSC] |
| 411 | + byte VE3; //[PJSC v1.10] | |
| 412 | + byte VE4; //[PJSC v1.10] | |
| 409 | 413 | byte O2; |
| 410 | 414 | byte O2_2; |
| 411 | 415 | int coolant; |
| @@ -503,7 +507,10 @@ | ||
| 503 | 507 | byte testModeActive; //[PJSC v1.10] For test mode |
| 504 | 508 | int16_t testCnt; //[PJSC v1.10] For test mode |
| 505 | 509 | boolean mapSelectSw; //[PJSC v1.10] For MAP switching |
| 506 | - byte veMapselect[4]; //[PJSC v1.10] For MAP switching | |
| 510 | + byte veMapSelectionSw1Pri[4]; //[PJSC v1.10] For x4 Fuel table support | |
| 511 | + byte veMapSelectionSw1Sec[4]; //[PJSC v1.10] | | |
| 512 | + byte veMapSelectionSw2Pri[4]; //[PJSC v1.10] V | |
| 513 | + byte veMapSelectionSw2Sec[4]; //[PJSC v1.10] For x4 Fuel table support | |
| 507 | 514 | |
| 508 | 515 | //Helpful bitwise operations: |
| 509 | 516 | //Useful reference: http://playground.arduino.cc/Code/BitMath |
| @@ -623,19 +630,37 @@ | ||
| 623 | 630 | byte exTrigHysteresis; // | |
| 624 | 631 | byte squirtDeviceType : 1; // | |
| 625 | 632 | byte multiVEmapEnabled: 1; // | |
| 633 | + byte mapSeparationEnabled: 1; // | | |
| 634 | + byte mapSwitchingEnabled: 1; // | | |
| 635 | + byte dualFuelEnabled: 1; // | | |
| 636 | + byte secondaryFuelUsage: 1; // | | |
| 637 | + byte unused2_75: 2; // | | |
| 626 | 638 | byte exTrigModeSelect : 2; // | For External Trigger |
| 627 | 639 | byte externalTrigEdge: 1; // | 0: Rising, 1: Falling |
| 628 | 640 | byte exValveCaptureEnabled: 1; // | For capturing Exhaust valve position |
| 641 | + byte exValveCalibrationMode: 1; //[PJSC] Support Exhaust Valve calibrationmode | |
| 642 | + byte unused2_76: 3; // | | |
| 629 | 643 | byte dutyPulseCaptureEnabled: 1; // | For capturing duty pulse ch1 |
| 630 | 644 | byte dutyPulseCaptureEnabled2: 1; // | For capturing duty pulse ch2 |
| 631 | 645 | byte dutyPulseOnLevel: 1; // | For capturing duty pulse ch1, 0: high, 1: low |
| 632 | - byte dutyPulseOnLevel2: 1; // V For capturing duty pulse ch2, 0: high, 1: low | |
| 633 | - byte exValveCalibrationMode: 1; //[PJSC] Support Exhaust Valve calibrationmode | |
| 634 | - byte fuelAlgorithm2: 3; //[PJSC v1.10] For Secondary Fuel Algorithm | |
| 635 | - byte secondaryFuelUsage: 1; //[PJSC v1.10] For Secondary Fuel Algorithm | |
| 636 | - byte unused1_74_7: 1; //[PJSC] Place holder | |
| 637 | - byte veMapSelection[4]; //[PJSC] | |
| 638 | - byte veMapSelection2[4]; //[PJSC v1.10] For MAP switching | |
| 646 | + byte dutyPulseOnLevel2: 1; // | For capturing duty pulse ch2, 0: high, 1: low | |
| 647 | + byte unused2_77: 4; // V | |
| 648 | + byte veMapSelectionInj1Pri: 4; //[PJSCv1.10] For x4 Fuel table support | |
| 649 | + byte veMapSelectionInj1Sec: 4; //[PJSCv1.10] | | |
| 650 | + byte veMapSelectionInj2Pri: 4; //[PJSCv1.10] | | |
| 651 | + byte veMapSelectionInj2Sec: 4; //[PJSCv1.10] | | |
| 652 | + byte veMapSelectionInj3Pri: 4; //[PJSCv1.10] | | |
| 653 | + byte veMapSelectionInj3Sec: 4; //[PJSCv1.10] | | |
| 654 | + byte veMapSelectionInj4Pri: 4; //[PJSCv1.10] | | |
| 655 | + byte veMapSelectionInj4Sec: 4; //[PJSCv1.10] | | |
| 656 | + byte veMapSelectionInj1_2Pri: 4; //[PJSCv1.10] | | |
| 657 | + byte veMapSelectionInj1_2Sec: 4; //[PJSCv1.10] | | |
| 658 | + byte veMapSelectionInj2_2Pri: 4; //[PJSCv1.10] | | |
| 659 | + byte veMapSelectionInj2_2Sec: 4; //[PJSCv1.10] | | |
| 660 | + byte veMapSelectionInj3_2Pri: 4; //[PJSCv1.10] | | |
| 661 | + byte veMapSelectionInj3_2Sec: 4; //[PJSCv1.10] | | |
| 662 | + byte veMapSelectionInj4_2Pri: 4; //[PJSCv1.10] V | |
| 663 | + byte veMapSelectionInj4_2Sec: 4; //[PJSCv1.10] For x4 Fuel table support | |
| 639 | 664 | byte dutyFreqTst[4]; //[PJSC v1.10] For test mode |
| 640 | 665 | byte dutyRatioTst[4]; // | |
| 641 | 666 | byte testop_fp: 1; // | |
| @@ -651,9 +676,11 @@ | ||
| 651 | 676 | byte baroDenBins[9]; // | For Barometric extend correnction |
| 652 | 677 | byte baroDenRates[9]; // | For Barometric extend correnction |
| 653 | 678 | byte table3Usage: 1; // | For switching usage of 3rd table Ignition/Fuel |
| 679 | + byte unused2_120: 7; // | | |
| 680 | + byte fuelAlgorithm2: 3; //[PJSC v1.10] For Secondary Fuel Algorithm | |
| 654 | 681 | byte fuelAlgorithm3: 3; // | |
| 655 | - byte unused2_119: 4; // V | |
| 656 | - byte unused2_120[8]; //[PJSC v1.10] For test mode | |
| 682 | + byte unused2_121: 2; // V | |
| 683 | + byte unused2_122[6]; //[PJSC v1.10] For test mode | |
| 657 | 684 | |
| 658 | 685 | #if defined(CORE_AVR) |
| 659 | 686 | }; |
| @@ -3,9 +3,13 @@ | ||
| 3 | 3 | |
| 4 | 4 | uint16_t PW(int REQ_FUEL, byte VE, long MAP, int corrections, int injOpen); |
| 5 | 5 | byte getVE(); |
| 6 | -static inline byte getVE2(); //[PJSC]Multi VE Map support | |
| 6 | +byte getVE2(); //[PJSC v1.10]Multi VE Map support | |
| 7 | +byte getVE3(); //[PJSC v1.10]Multi VE Map support | |
| 8 | +byte getVE4(); //[PJSC v1.10]Multi VE Map support | |
| 7 | 9 | byte getAdvance(); |
| 8 | 10 | |
| 11 | +byte selectVE(byte); //[PJSC v1.10]Multi VE Map support | |
| 12 | + | |
| 9 | 13 | uint16_t calculateInjector2StartAngle(unsigned int); |
| 10 | 14 | uint16_t calculateInjector3StartAngle(unsigned int); |
| 11 | 15 | uint16_t calculateInjector4StartAngle(unsigned int); |