PJSC(Pump Jet Solenoid Controller)はArduinoを使用したバイク用燃料噴射コントローラです。このプロジェクトは、オープンソースECUプロジェクト『Speeduino』をベースにしています。
AFRセンサーキャリブレーションを実行すると、VEテーブルが上書きされてしまう問題の修正
| @@ -2150,13 +2150,15 @@ | ||
| 2150 | 2150 | dialog = injCloseAngles_west, "" ;[PJSC v1.01] |
| 2151 | 2151 | field = "Channel 1", inj1SquirtStartEnd, { squirtDeviceType == 0 } ; | |
| 2152 | 2152 | field = "Channel 2", inj2SquirtStartEnd, { (nCylinders > 1 || nInjectors > 1) && indInjAng && squirtDeviceType == 0 } ; | |
| 2153 | - field = "Channel 3", inj3SquirtStartEnd, { indInjAng && (nCylinders > 4 || nCylinders == 3 || nInjectors > 2 || ((nCylinders == 4) && (injLayout == 3))) && squirtDeviceType == 0 } ; V | |
| 2153 | +;[PJSC v1.02] field = "Channel 3", inj3SquirtStartEnd, { indInjAng && (nCylinders > 4 || nCylinders == 3 || nInjectors > 2 || ((nCylinders == 4) && (injLayout == 3))) && squirtDeviceType == 0 } ; V | |
| 2154 | + field = "Channel 3", inj3SquirtStartEnd, { indInjAng && (nCylinders > 2 || nInjectors > 2 && (injLayout > 0)) && squirtDeviceType == 0 } ; V [PJSC v1.02] | |
| 2154 | 2155 | field = "Channel 4", inj4SquirtStartEnd, { indInjAng && (nCylinders > 4 || ((nCylinders == 4 || nInjectors > 3) && (injLayout > 0))) && squirtDeviceType == 0 } ;[PJSC v1.01] |
| 2155 | 2156 | |
| 2156 | 2157 | dialog = injCloseAngles_east, "" ;[PJSC v1.01] |
| 2157 | 2158 | field = "", inj1Ang, { squirtDeviceType == 0 } ; | |
| 2158 | 2159 | field = "", inj2Ang, { (nCylinders > 1 || nInjectors > 1) && indInjAng && squirtDeviceType == 0 } ; | |
| 2159 | - field = "", inj3Ang, { indInjAng && (nCylinders > 4 || nCylinders == 3 || nInjectors > 2 || ((nCylinders == 4) && (injLayout == 3))) && squirtDeviceType == 0 } ; V | |
| 2160 | +;[PJSC v1.02] field = "", inj3Ang, { indInjAng && (nCylinders > 4 || nCylinders == 3 || nInjectors > 2 || ((nCylinders == 4) && (injLayout == 3))) && squirtDeviceType == 0 } ; V | |
| 2161 | + field = "", inj3Ang, { indInjAng && (nCylinders > 2 || nInjectors > 2 && (injLayout > 0)) && squirtDeviceType == 0 } ; V [PJSC v1.02] | |
| 2160 | 2162 | field = "", inj4Ang, { indInjAng && (nCylinders > 4 || ((nCylinders == 4 || nInjectors > 3) && (injLayout > 0))) && squirtDeviceType == 0 } ;[PJSC v1.01] |
| 2161 | 2163 | |
| 2162 | 2164 | dialog = injCloseAngles, "Injector squirt angle", xAxis ;[PJSC v1.01] |
| @@ -2306,9 +2308,9 @@ | ||
| 2306 | 2308 | field = "cranking before the injectors and coils are fired" |
| 2307 | 2309 | field = "Trigger edge", TrigEdge { TrigPattern != 4 } ;4G63 uses both edges |
| 2308 | 2310 | field = "Secondary trigger edge", TrigEdgeSec, { (TrigPattern == 0 && TrigSpeed == 0) || TrigPattern == 2 || TrigPattern == 9 || TrigPattern == 12 } ;Missing tooth, dual wheel and Miata 9905 |
| 2309 | - field = "Missing Tooth Secondary type" trigPatternSec, { (TrigPattern == 0&& TrigSpeed == 0) } | |
| 2311 | + field = "Missing Tooth Secondary type" trigPatternSec, { (TrigPattern == 0&& TrigSpeed == 0) } | |
| 2310 | 2312 | field = "Trigger Filter", TrigFilter, { TrigPattern != 13 } |
| 2311 | - field = "Trigger Filter during cranking", crankingFilter, { TrigPattern != 13 } ;[PJSC v1.02] | |
| 2313 | + field = "Trigger Filter during cranking", crankingFilter, { TrigPattern != 13 } ;[PJSC v1.02] | |
| 2312 | 2314 | field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 || TrigPattern == 12 || TrigPattern == 9 || TrigPattern == 13 } ;Dual wheel, 4G63, Audi 135, Nissan 360, Miata 99-05 |
| 2313 | 2315 | |
| 2314 | 2316 | #if table4_spark ;[PJSC v1.01] For switching table4 |
| @@ -277,6 +277,10 @@ | ||
| 277 | 277 | #define MUXOUT_VVT 6 //[PJSC v1.01] MUX output selection |
| 278 | 278 | #define MUXOUT_TACH 7 //[PJSC v1.01] MUX output selection |
| 279 | 279 | |
| 280 | +#define ANALOG_INPUT_OFF 0 //[PJSC v1.02] Analog input selection | |
| 281 | +#define ANALOG_EXVALVE 1 //[PJSC v1.02] Analog input selection | |
| 282 | +#define ANALOG_O2_SEC 2 //[PJSC v1.02] Analog input selection | |
| 283 | + | |
| 280 | 284 | struct table3D fuelTable; //16x16 fuel map |
| 281 | 285 | struct table3D fuelTable2; //16x16 fuel map2 [PJSC] |
| 282 | 286 | struct table3D fuelTable3; //16x16 fuel map3 [PJSC v1.01] |
| @@ -649,10 +653,12 @@ | ||
| 649 | 653 | byte fuelCorrectionEnabled: 1; // |[PJSC v1.01] |
| 650 | 654 | byte unused2_75: 1; // | |
| 651 | 655 | byte exTrigModeSelect : 2; // | For External Trigger |
| 652 | - byte externalTrigEdge: 1; // | 0: Rising, 1: Falling | |
| 653 | - byte exValveCaptureEnabled: 1; // | For capturing Exhaust valve position | |
| 654 | - byte exValveCalibrationMode: 1; //[PJSC] Support Exhaust Valve calibrationmode | |
| 655 | - byte unused2_76: 3; // | | |
| 656 | + byte externalTrigEdge: 1; // | 0: Rising, 1: Falling | |
| 657 | +//[PJSC v1.02] byte exValveCaptureEnabled: 1; // | For capturing Exhaust valve position | |
| 658 | + byte exValveCalibrationMode: 1; // | For support Exhaust Valve calibrationmode | |
| 659 | +//[PJSC v1.02] byte unused2_76: 3; // | | |
| 660 | + byte analogInputPortSelection: 2; // |[PJSC v1.02] For Analog input port selection | |
| 661 | + byte unused2_76: 2; // |[PJSC v1.02] | |
| 656 | 662 | byte dutyPulseCaptureEnabled: 1; // | For capturing duty pulse ch1 |
| 657 | 663 | byte dutyPulseCaptureEnabled2: 1; // | For capturing duty pulse ch2 |
| 658 | 664 | byte dutyPulseOnLevel: 1; // | For capturing duty pulse ch1, 0: high, 1: low |
| @@ -780,7 +786,10 @@ | ||
| 780 | 786 | //[PJSC v1.01] byte unused2_64[57]; |
| 781 | 787 | byte baroDenBins[9]; //[PJSC v1.01] For Barometric extend correnction |
| 782 | 788 | byte baroDenRates[9]; //[PJSC v1.01] For Barometric extend correnction |
| 783 | - byte unused2_82[39]; | |
| 789 | +//[PJSC v1.02] byte unused2_82[39]; | |
| 790 | + byte crankingFilter : 1; //[PJSC v1.02] | |
| 791 | + byte unused2_82 : 7; //[PJSC v1.02] | |
| 792 | + byte unused2_83[38]; //[PJSC v1.02] | |
| 784 | 793 | |
| 785 | 794 | #if defined(CORE_AVR) |
| 786 | 795 | }; |
| @@ -1116,6 +1125,7 @@ | ||
| 1116 | 1125 | byte pinMuxout2; //[PJSC v1.01] For MUX output setting |
| 1117 | 1126 | byte pinMuxout3; //[PJSC v1.01] For MUX output setting |
| 1118 | 1127 | byte pinMuxout4; //[PJSC v1.01] For MUX output setting |
| 1128 | +byte pinAnalogInput1; //[PJSC v1.02] For Analog input selection | |
| 1119 | 1129 | |
| 1120 | 1130 | // global variables // from speeduino.ino |
| 1121 | 1131 | extern struct statuses currentStatus; // from speeduino.ino |
| @@ -12,7 +12,8 @@ | ||
| 12 | 12 | //These are utility functions that prevent other files from having to use EEPROM.h directly |
| 13 | 13 | byte readLastBaro(); |
| 14 | 14 | void storeLastBaro(byte); |
| 15 | -void storeCalibrationValue(byte, byte); | |
| 15 | +//[PJSC v1.02]void storeCalibrationValue(byte, byte); | |
| 16 | +void storeCalibrationValue(uint16_t, byte); //[PJSC v1.02] | |
| 16 | 17 | byte readEEPROMVersion(); |
| 17 | 18 | void storeEEPROMVersion(byte); |
| 18 | 19 |