PJSC(Pump Jet Solenoid Controller)はArduinoを使用したバイク用燃料噴射コントローラです。このプロジェクトは、オープンソースECUプロジェクト『Speeduino』をベースにしています。
[PJSC v1.03]クランキングエンリッチメントの上限を1275%に変更
@@ -252,7 +252,7 @@ | ||
252 | 252 | wueRates = array, U08, 4, [10], "%", 1.0, 0.0, 0.0, 255, 0 |
253 | 253 | crankingPct = scalar, U08, 14, "%", 1.0, 0.0, 0.0, 255, 0 |
254 | 254 | ;[PJSC] pinLayout = bits, U08, 15, [0:7], "Speeduino v0.1", "Speeduino v0.2", "Speeduino v0.3", "Speeduino v0.4", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NA6 MX5 PNP", "Turtana PCB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Plazomat I/O 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Daz V6 Shield 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NO2C", "UA4C", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "dvjcodec Teensy RevA", "dvjcodec Teensy RevB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" |
255 | - pinLayout = bits, U08, 15, [0:7], "Speeduino v0.1", "Speeduino v0.2", "Speeduino v0.3", "Speeduino v0.4", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NA6 MX5 PNP", "Turtana PCB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Plazomat I/O 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Daz V6 Shield 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NO2C", "UA4C", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "dvjcodec Teensy RevA", "dvjcodec Teensy RevB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PJSC v1.0", "PJSC v1.10", "INVALID", "INVALID", $invalid_x128, $invalid_x64 ;[PJSC] Boad ID: PJSC boad ver1.0/0.2/0.3 (2018/20/19) | |
255 | + pinLayout = bits, U08, 15, [0:7], "Speeduino v0.1", "Speeduino v0.2", "Speeduino v0.3", "Speeduino v0.4", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NA6 MX5 PNP", "Turtana PCB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Plazomat I/O 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Daz V6 Shield 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NO2C", "UA4C", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "dvjcodec Teensy RevA", "dvjcodec Teensy RevB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PJSC v1.0", "PJSC v1.10", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ;[PJSC] Boad ID: PJSC boad ver1.0/0.2/0.3 (2018/20/19) | |
256 | 256 | tachoPin = bits, U08, 16, [0:5], "Board Default", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" |
257 | 257 | tachoDiv = bits, U08, 16, [6:7], "Normal", "Half", "INVALID", "INVALID" |
258 | 258 | unused2-17 = scalar, U08, 17, "ms", 0.1, 0.0, 0.0, 25.5, 1 |
@@ -4119,7 +4119,7 @@ | ||
4119 | 4119 | ochGetCommand = "r\$tsCanId\x30%2o%2c" |
4120 | 4120 | ;[PJSC] ochBlockSize = 90 |
4121 | 4121 | ;[PJSC v1.03] ochBlockSize = 116 ;[PJSC v1.02] Extend block size |
4122 | - ochBlockSize = 135 ;[PJSC v1.03] Extend block size | |
4122 | + ochBlockSize = 136 ;[PJSC v1.03] Extend block size | |
4123 | 4123 | |
4124 | 4124 | secl = scalar, U08, 0, "sec", 1.000, 0.000 |
4125 | 4125 | status1 = scalar, U08, 1, "bits", 1.000, 0.000 |
@@ -4152,8 +4152,9 @@ | ||
4152 | 4152 | warmupEnrich = scalar, U08, 13, "%", 1.000, 0.000 |
4153 | 4153 | rpm = scalar, U16, 14, "rpm", 1.000, 0.000 |
4154 | 4154 | accelEnrich = scalar, U08, 16, "%", 2.000, 0.000 |
4155 | - gammaEnrich = scalar, U08, 17, "%", 1.000, 0.000 | |
4156 | - veCurr = scalar, U08, 18, "%", 1.000, 0.000 | |
4155 | +;[PJSC v1.03] gammaEnrich = scalar, U08, 17, "%", 1.000, 0.000 | |
4156 | +;[PJSC v1.03] veCurr = scalar, U08, 18, "%", 1.000, 0.000 | |
4157 | + gammaEnrich = scalar, U16, 17, "%", 1.000, 0.000 ;[PJSC v1.03] | |
4157 | 4158 | afrTarget = scalar, U08, 19, "O2", 0.100, 0.000 |
4158 | 4159 | pulseWidth = scalar, U16, 20, "ms", 0.001, 0.000 |
4159 | 4160 | ;[PJSC v1.03] TPSdot = scalar, U08, 22, "%/s", 10.00, 0.000 |
@@ -4220,36 +4221,37 @@ | ||
4220 | 4221 | fuelLoad = scalar, S16, 85, { bitStringValue( algorithmUnits , algorithm ) }, 1.000, 0.000 |
4221 | 4222 | ignLoad = scalar, S16, 87, { bitStringValue( algorithmUnits , ignAlgorithm ) }, 1.000, 0.000 |
4222 | 4223 | syncLossCounter = scalar, U08, 89, "", 1.000, 0.000 |
4223 | - veCurr2 = scalar, U08, 90, "%", 1.000, 0.000 ;[PJSC]Multi VE Map support | |
4224 | - veCurr3 = scalar, U08, 91, "%", 1.000, 0.000 ;[PJSC]Multi VE Map support | |
4225 | - veCurr4 = scalar, U08, 92, "%", 1.000, 0.000 ;[PJSC]Multi VE Map support | |
4226 | - valvePosition = scalar, U08, 93, "%", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
4227 | - valvePositionADC = scalar, U08, 94, "ADC", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
4228 | - sparkedAngle = scalar, S16, 95, "deg", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
4229 | - extTriggerRPM = scalar, U16, 97, "rpm", 1.000, 0.000 ;[PJSC v1.03]Extend output channel for External Trigger | |
4230 | - dutyFreq = scalar, U16, 99, "Hz", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
4231 | - dutyRatio = scalar, U16, 101, "%", 0.100, 0.000 ;[PJSC]For capturing duty pulse | |
4232 | - dutyFreq2 = scalar, U16, 103, "Hz", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
4233 | - dutyRatio2 = scalar, U16, 105, "%", 0.100, 0.000 ;[PJSC]For capturing duty pulse | |
4234 | - testCnt = scalar, U16, 107, "", 1.000, 0.000 ;[PJSC v1.01]For test mode | |
4235 | - afr2 = scalar, U08, 109, "O2", 0.100, 0.000 ;[PJSC v1.01] | |
4236 | - fuelLoad2 = scalar, S16, 110, { bitStringValue( algorithmUnits2 , algorithm2 ) }, 1.000, 0.000 ;[PJSC v1.01]For dual fuel load | |
4237 | - fuelLoad3 = scalar, S16, 112, { bitStringValue( algorithmUnits2 , algorithm3 ) }, 1.000, 0.000 ;[PJSC v1.01]For dual fuel load | |
4238 | - afr_analyze1 = scalar, U08, 114, "O2 for VE Table 1", 0.100, 0.000 ;[PJSC v1.02]For AFR sensor selection | |
4239 | - afr_analyze2 = scalar, U08, 115, "O2 for VE Table 2", 0.100, 0.000 ;[PJSC v1.02]For AFR sensor selection | |
4240 | - afr_analyze3 = scalar, U08, 116, "O2 for VE Table 3", 0.100, 0.000 ;[PJSC v1.02]For AFR sensor selection | |
4241 | - afr_analyze4 = scalar, U08, 117, "O2 for VE Table 4", 0.100, 0.000 ;[PJSC v1.02]For AFR sensor selection | |
4242 | - dualVE1 = scalar, U08, 118, "%", 1.000, 0.000 ;[PJSC v1.03]For Dual Fuel Load | |
4243 | - dualVE2 = scalar, U08, 119, "%", 1.000, 0.000 ;[PJSC v1.03]For Dual Fuel Load | |
4244 | - dualVE3 = scalar, U08, 120, "%", 1.000, 0.000 ;[PJSC v1.03]For Dual Fuel Load | |
4245 | - dualVE4 = scalar, U08, 121, "%", 1.000, 0.000 ;[PJSC v1.03]For Dual Fuel Load | |
4246 | - EGTADC = scalar, U16, 122, "ADC", 1.000, 0.000 ;[PJSC v1.03]For Exhaust gas temperature input | |
4247 | - ignGap = scalar, U16, 124, "ms", 0.001, 0.000 ;[PJSC v1.03]For misfire detection | |
4248 | - sparkRPM = scalar, U16, 126, "rpm", 1.000, 0.000 ;[PJSC v1.03]For misfire detection | |
4249 | - viecleSpeed = scalar, U16, 128, "km/h", 0.100, 0.000 ;[PJSC v1.03]For capturing viecle speed | |
4250 | - dutyPulseOn_T = scalar, U16, 130, "ms", 0.001, 0.000 ;[PJSC v1.03]For capturing duty pulse | |
4251 | - dutyPulseOn_T2 = scalar, U16, 132, "ms", 0.001, 0.000 ;[PJSC v1.03]For capturing duty pulse | |
4252 | - advance = scalar, S08, 134, "deg", 1.000, 0.000 ;[PJSC v1.03] | |
4224 | + veCurr = scalar, U08, 90, "%", 1.000, 0.000 ;[PJSC v1.03] | |
4225 | + veCurr2 = scalar, U08, 91, "%", 1.000, 0.000 ;[PJSC]Multi VE Map support | |
4226 | + veCurr3 = scalar, U08, 92, "%", 1.000, 0.000 ;[PJSC]Multi VE Map support | |
4227 | + veCurr4 = scalar, U08, 93, "%", 1.000, 0.000 ;[PJSC]Multi VE Map support | |
4228 | + valvePosition = scalar, U08, 94, "%", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
4229 | + valvePositionADC = scalar, U08, 95, "ADC", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
4230 | + sparkedAngle = scalar, S16, 96, "deg", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
4231 | + extTriggerRPM = scalar, U16, 98, "rpm", 1.000, 0.000 ;[PJSC v1.03]Extend output channel for External Trigger | |
4232 | + dutyFreq = scalar, U16, 100, "Hz", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
4233 | + dutyRatio = scalar, U16, 102, "%", 0.100, 0.000 ;[PJSC]For capturing duty pulse | |
4234 | + dutyFreq2 = scalar, U16, 104, "Hz", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
4235 | + dutyRatio2 = scalar, U16, 106, "%", 0.100, 0.000 ;[PJSC]For capturing duty pulse | |
4236 | + testCnt = scalar, U16, 108, "", 1.000, 0.000 ;[PJSC v1.01]For test mode | |
4237 | + afr2 = scalar, U08, 110, "O2", 0.100, 0.000 ;[PJSC v1.01] | |
4238 | + fuelLoad2 = scalar, S16, 111, { bitStringValue( algorithmUnits2 , algorithm2 ) }, 1.000, 0.000 ;[PJSC v1.01]For dual fuel load | |
4239 | + fuelLoad3 = scalar, S16, 113, { bitStringValue( algorithmUnits2 , algorithm3 ) }, 1.000, 0.000 ;[PJSC v1.01]For dual fuel load | |
4240 | + afr_analyze1 = scalar, U08, 115, "O2 for VE Table 1", 0.100, 0.000 ;[PJSC v1.02]For AFR sensor selection | |
4241 | + afr_analyze2 = scalar, U08, 116, "O2 for VE Table 2", 0.100, 0.000 ;[PJSC v1.02]For AFR sensor selection | |
4242 | + afr_analyze3 = scalar, U08, 117, "O2 for VE Table 3", 0.100, 0.000 ;[PJSC v1.02]For AFR sensor selection | |
4243 | + afr_analyze4 = scalar, U08, 118, "O2 for VE Table 4", 0.100, 0.000 ;[PJSC v1.02]For AFR sensor selection | |
4244 | + dualVE1 = scalar, U08, 119, "%", 1.000, 0.000 ;[PJSC v1.03]For Dual Fuel Load | |
4245 | + dualVE2 = scalar, U08, 120, "%", 1.000, 0.000 ;[PJSC v1.03]For Dual Fuel Load | |
4246 | + dualVE3 = scalar, U08, 121, "%", 1.000, 0.000 ;[PJSC v1.03]For Dual Fuel Load | |
4247 | + dualVE4 = scalar, U08, 122, "%", 1.000, 0.000 ;[PJSC v1.03]For Dual Fuel Load | |
4248 | + EGTADC = scalar, U16, 123, "ADC", 1.000, 0.000 ;[PJSC v1.03]For Exhaust gas temperature input | |
4249 | + ignGap = scalar, U16, 125, "ms", 0.001, 0.000 ;[PJSC v1.03]For misfire detection | |
4250 | + sparkRPM = scalar, U16, 127, "rpm", 1.000, 0.000 ;[PJSC v1.03]For misfire detection | |
4251 | + viecleSpeed = scalar, U16, 129, "km/h", 0.100, 0.000 ;[PJSC v1.03]For capturing viecle speed | |
4252 | + dutyPulseOn_T = scalar, U16, 131, "ms", 0.001, 0.000 ;[PJSC v1.03]For capturing duty pulse | |
4253 | + dutyPulseOn_T2 = scalar, U16, 133, "ms", 0.001, 0.000 ;[PJSC v1.03]For capturing duty pulse | |
4254 | + advance = scalar, S08, 135, "deg", 1.000, 0.000 ;[PJSC v1.03] | |
4253 | 4255 | |
4254 | 4256 | |
4255 | 4257 | #if CELSIUS |
@@ -2,7 +2,7 @@ | ||
2 | 2 | #define CANCOMMS_H |
3 | 3 | |
4 | 4 | //[PJSC v1.03]#define CAN_PACKET_SIZE 75 |
5 | -#define CAN_PACKET_SIZE 135 //[PJSC v1.03] | |
5 | +#define CAN_PACKET_SIZE 136 //[PJSC v1.03] | |
6 | 6 | |
7 | 7 | uint8_t currentcanCommand; |
8 | 8 | uint8_t currentCanPage = 1;//Not the same as the speeduino config page numbers |
@@ -20,7 +20,7 @@ | ||
20 | 20 | |
21 | 21 | //[PJSC]#define SERIAL_PACKET_SIZE 90 //Must match ochBlockSize in ini file |
22 | 22 | //[PJSC v1.03]#define SERIAL_PACKET_SIZE 116 //[PJSC v1.02] Extend serial packet block size |
23 | -#define SERIAL_PACKET_SIZE 135 //[PJSC v1.03] Extend serial packet block size | |
23 | +#define SERIAL_PACKET_SIZE 136 //[PJSC v1.03] Extend serial packet block size | |
24 | 24 | |
25 | 25 | byte currentPage = 1;//Not the same as the speeduino config page numbers |
26 | 26 | bool isMap = true; |
@@ -7,7 +7,8 @@ | ||
7 | 7 | |
8 | 8 | void initialiseCorrections(); |
9 | 9 | |
10 | -static inline byte correctionsFuel() __attribute__((always_inline)); | |
10 | +//[PJSC v1.03]static inline byte correctionsFuel() __attribute__((always_inline)); | |
11 | +static inline uint16_t correctionsFuel() __attribute__((always_inline)); //[PJSC v1.03] | |
11 | 12 | static inline byte correctionWUE() __attribute__((always_inline)); //Warmup enrichment |
12 | 13 | //[PJSC v1.03]static inline byte correctionCranking() __attribute__((always_inline)); //Cranking enrichment |
13 | 14 | static inline uint16_t correctionCranking() __attribute__((always_inline)); //[PJSC v1.03] |
@@ -446,7 +446,8 @@ | ||
446 | 446 | byte dwellCorrection; //The amount of correction being applied to the dwell time. |
447 | 447 | byte battery10; //The current BRV in volts (multiplied by 10. Eg 12.5V = 125) |
448 | 448 | int8_t advance; //Signed 8 bit as advance can now go negative (ATDC) |
449 | - byte corrections; | |
449 | +//[PJSC v1.03] byte corrections; | |
450 | + uint16_t corrections; //[PJSC v1.03] | |
450 | 451 | int16_t TAEamount; //The amount of accleration enrichment currently being applied |
451 | 452 | byte egoCorrection; //The amount of closed loop AFR enrichment currently being applied |
452 | 453 | byte wueCorrection; //The amount of warmup enrichment currently being applied |
@@ -1,7 +1,8 @@ | ||
1 | 1 | #ifndef SPEEDUINO_H |
2 | 2 | #define SPEEDUINO_H |
3 | 3 | |
4 | -uint16_t PW(int REQ_FUEL, byte VE, long MAP, int corrections, int injOpen); | |
4 | +//[PJSC v1.03]uint16_t PW(int REQ_FUEL, byte VE, long MAP, int corrections, int injOpen); | |
5 | +uint16_t PW(int REQ_FUEL, byte VE, long MAP, uint16_t corrections, int injOpen); //[PJSC v1.03] | |
5 | 6 | byte getVE(); |
6 | 7 | byte getVE2(); //[PJSC v1.01]Multi VE Map support |
7 | 8 | byte getVE3(); //[PJSC v1.01]Multi VE Map support |