From c925905c95bc98f2629032d54e03ff9ed4e565e2 Mon Sep 17 00:00:00 2001 From: "Vitor Moreno B. Sales" Date: Fri, 2 Jun 2017 18:09:36 -0300 Subject: [PATCH 001/133] Initial STM32F4 series support --- speeduino/auxiliaries.ino | 71 +++-- speeduino/cancomms.h | 15 +- speeduino/cancomms.ino | 269 ++++++------------- speeduino/comms.h | 4 +- speeduino/comms.ino | 526 +++++++++++++++++++------------------- speeduino/corrections.h | 3 +- speeduino/corrections.ino | 8 +- speeduino/globals.h | 11 +- speeduino/maths.h | 4 +- speeduino/maths.ino | 30 ++- speeduino/scheduler.ino | 5 +- speeduino/sensors.ino | 28 +- speeduino/speeduino.ino | 59 ++--- speeduino/storage.h | 28 +- speeduino/storage.ino | 510 ++++++++++++++++++++++++++++++++++++ speeduino/table.ino | 42 ++- speeduino/updates.ino | 52 ++-- speeduino/utils.ino | 35 ++- 18 files changed, 1086 insertions(+), 614 deletions(-) diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 306a5663..a0e560fb 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -3,7 +3,6 @@ Speeduino - Simple engine management for the Arduino Mega 2560 platform Copyright (C) Josh Stewart A full copy of the license may be found in the projects root directory */ -//integerPID boostPID(¤tStatus.MAP, &boost_pwm_target_value, &boost_cl_target_boost, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call integerPID boostPID(&MAPx100, &boost_pwm_target_value, &boostTargetx100, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call /* @@ -11,21 +10,21 @@ Fan control */ void initialiseFan() { - if(configPage4.fanInv) { fanHIGH = LOW, fanLOW = HIGH; } - else { fanHIGH = HIGH, fanLOW = LOW; } + if( configPage4.fanInv == 1 ) { fanHIGH = LOW; fanLOW = HIGH; } + else { fanHIGH = HIGH; fanLOW = LOW; } digitalWrite(pinFan, fanLOW); //Initiallise program with the fan in the off state currentStatus.fanOn = false; } void fanControl() { - if(configPage4.fanEnable) + if( configPage4.fanEnable == 1 ) { int onTemp = (int)configPage4.fanSP - CALIBRATION_TEMPERATURE_OFFSET; int offTemp = onTemp - configPage4.fanHyster; - if (!currentStatus.fanOn && currentStatus.coolant >= onTemp) { digitalWrite(pinFan,fanHIGH); currentStatus.fanOn = true; } - if (currentStatus.fanOn && currentStatus.coolant <= offTemp) { digitalWrite(pinFan, fanLOW); currentStatus.fanOn = false; } + if ( (!currentStatus.fanOn) && (currentStatus.coolant >= onTemp) ) { digitalWrite(pinFan,fanHIGH); currentStatus.fanOn = true; } + if ( (currentStatus.fanOn) && (currentStatus.coolant <= offTemp) ) { digitalWrite(pinFan, fanLOW); currentStatus.fanOn = false; } } } @@ -45,7 +44,7 @@ void initialiseAuxPWM() boost_pwm_max_count = 1000000L / (16 * configPage3.boostFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. The x2 is there because the frequency is stored at half value (in a byte) to allow freqneucies up to 511Hz vvt_pwm_max_count = 1000000L / (16 * configPage3.vvtFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle - //TIMSK1 |= (1 << OCIE1A); //Turn on the A compare unit (ie turn on the interrupt) //Shouldn't be needed with closed loop as its turned on below + //TIMSK1 |= (1 << OCIE1A); <---- Not required as compare A is turned on when needed by boost control TIMSK1 |= (1 << OCIE1B); //Turn on the B compare unit (ie turn on the interrupt) boostPID.SetOutputLimits(percentage(configPage1.boostMinDuty, boost_pwm_max_count) , percentage(configPage1.boostMaxDuty, boost_pwm_max_count)); @@ -58,29 +57,44 @@ void initialiseAuxPWM() void boostControl() { - if(configPage3.boostEnabled) + if( configPage3.boostEnabled==1 ) { - if(currentStatus.MAP < 100) { TIMSK1 &= ~(1 << OCIE1A); digitalWrite(pinBoost, LOW); return; } //Set duty to 0 and turn off timer compare - MAPx100 = currentStatus.MAP * 100; - - boost_cl_target_boost = get3DTableValue(&boostTable, currentStatus.TPS, currentStatus.RPM) * 2; //Boost target table is in kpa and divided by 2 - //If flex fuel is enabled, there can be an adder to the boost target based on ethanol content - if(configPage1.flexEnabled) + if(currentStatus.MAP >= 100) { - int16_t boostAdder = (((int16_t)configPage1.flexBoostHigh - (int16_t)configPage1.flexBoostLow) * currentStatus.ethanolPct) / 100; - boostAdder = boostAdder + configPage1.flexBoostLow; //Required in case flexBoostLow is less than 0 - boost_cl_target_boost = boost_cl_target_boost + boostAdder; + MAPx100 = currentStatus.MAP * 100; + + boost_cl_target_boost = get3DTableValue(&boostTable, currentStatus.TPS, currentStatus.RPM) * 2; //Boost target table is in kpa and divided by 2 + //If flex fuel is enabled, there can be an adder to the boost target based on ethanol content + if( configPage1.flexEnabled == 1 ) + { + int16_t boostAdder = (((int16_t)configPage1.flexBoostHigh - (int16_t)configPage1.flexBoostLow) * currentStatus.ethanolPct) / 100; + boostAdder = boostAdder + configPage1.flexBoostLow; //Required in case flexBoostLow is less than 0 + boost_cl_target_boost = boost_cl_target_boost + boostAdder; + } + + boostTargetx100 = boost_cl_target_boost * 100; + currentStatus.boostTarget = boost_cl_target_boost >> 1; //Boost target is sent as a byte value to TS and so is divided by 2 + if(currentStatus.boostTarget > 0) + { + if( (boostCounter & 31) == 1) { boostPID.SetTunings(configPage3.boostKP, configPage3.boostKI, configPage3.boostKD); } //This only needs to be run very infrequently, once every 32 calls to boostControl(). This is approx. once per second + + boostPID.Compute(); + currentStatus.boostDuty = (unsigned long)(boost_pwm_target_value * 100UL) / boost_pwm_max_count; + TIMSK1 |= (1 << OCIE1A); //Turn on the compare unit (ie turn on the interrupt) + } + else + { + //If boost target is 0, turn everything off + TIMSK1 &= ~(1 << OCIE1A); //Turn off timer + digitalWrite(pinBoost, LOW); + } + } + else + { + //Boost control does nothing if kPa below 100 + TIMSK1 &= ~(1 << OCIE1A); //Turn off timer + digitalWrite(pinBoost, LOW); //Make sure solenoid is off (0% duty) } - - boostTargetx100 = boost_cl_target_boost * 100; - currentStatus.boostTarget = boost_cl_target_boost >> 1; //Boost target is sent as a byte value to TS and so is divided by 2 - if(currentStatus.boostTarget == 0) { TIMSK1 &= ~(1 << OCIE1A); digitalWrite(pinBoost, LOW); return; } //Set duty to 0 and turn off timer compare if the target is 0 - - if( (boostCounter & 31) == 1) { boostPID.SetTunings(configPage3.boostKP, configPage3.boostKI, configPage3.boostKD); } //This only needs to be run very infrequently, once every 32 calls to boostControl(). This is approx. once per second - - boostPID.Compute(); - currentStatus.boostDuty = (unsigned long)(boost_pwm_target_value * 100UL) / boost_pwm_max_count; - TIMSK1 |= (1 << OCIE1A); //Turn on the compare unit (ie turn on the interrupt) } else { TIMSK1 &= ~(1 << OCIE1A); } // Disable timer channel @@ -89,7 +103,7 @@ void boostControl() void vvtControl() { - if(configPage3.vvtEnabled) + if( configPage3.vvtEnabled == 1 ) { byte vvtDuty = get3DTableValue(&vvtTable, currentStatus.TPS, currentStatus.RPM); vvt_pwm_target_value = percentage(vvtDuty, vvt_pwm_max_count); @@ -142,3 +156,4 @@ void boostControl() { } void vvtControl() { } #endif + diff --git a/speeduino/cancomms.h b/speeduino/cancomms.h index d5dafcc2..eba8135b 100644 --- a/speeduino/cancomms.h +++ b/speeduino/cancomms.h @@ -6,13 +6,22 @@ uint8_t currentcanCommand; uint8_t currentCanPage = 1;//Not the same as the speeduino config page numbers uint8_t nCanretry = 0; //no of retrys -uint8_t cancmdfail = 0; //command fail yes/no -uint8_t canlisten = 0; +uint8_t cancmdfail = 0; //command fail yes/no +uint8_t canlisten = 0; uint8_t Lbuffer[8]; //8 byte buffer to store incomng can data uint8_t Gdata[9]; uint8_t Glow, Ghigh; - + +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + HardwareSerial &CANSerial = Serial3; +#elif defined(CORE_STM32) + HardwareSerial &CANSerial = Serial2; +#elif defined(CORE_TEENSY) + HardwareSerial &CANSerial = Serial2; +#endif + void canCommand();//This is the heart of the Command Line Interpeter. All that needed to be done was to make it human readable. void sendCancommand(uint8_t cmdtype , uint16_t canadddress, uint8_t candata1, uint8_t candata2, uint16_t paramgroup); #endif // CANCOMMS_H + diff --git a/speeduino/cancomms.ino b/speeduino/cancomms.ino index 18ad551a..f972b7a6 100644 --- a/speeduino/cancomms.ino +++ b/speeduino/cancomms.ino @@ -11,20 +11,9 @@ It parses the command and calls the relevant function sendcancommand is called when a comman d is to be sent via serial3 to the Can interface */ -//#include "cancomms.h" -//#include "globals.h" -//#include "storage.h" - void canCommand() { -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - currentcanCommand = Serial3.read(); -#elif defined(CORE_STM32) - currentcanCommand = Serial2.read(); -#elif defined(CORE_TEENSY) - currentcanCommand = Serial2.read(); -#else return; -#endif + currentcanCommand = CANSerial.read(); switch (currentcanCommand) { @@ -34,32 +23,15 @@ void canCommand() case 'G': // this is the reply command sent by the Can interface //uint8_t Gdata; -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - while (Serial3.available() == 0) { } - cancmdfail = Serial3.read(); -#elif defined(CORE_STM32) - while (Serial2.available() == 0) { } - cancmdfail = Serial2.read(); -#elif defined(CORE_TEENSY) - while (Serial2.available() == 0) { } - cancmdfail = Serial2.read(); -#else return; -#endif + while (CANSerial.available() == 0) { } + cancmdfail = CANSerial.read(); + if (cancmdfail != 0) { for (byte Gx = 0; Gx < 8; Gx++) //read all 8 bytes of data { -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - while (Serial3.available() == 0) { } - Gdata[Gx] = Serial3.read(); -#elif defined(CORE_STM32) - while (Serial2.available() == 0) { } - Gdata[Gx] = Serial2.read(); -#elif defined(CORE_TEENSY) - while (Serial2.available() == 0) { } - Gdata[Gx] = Serial2.read(); -#else return; -#endif + while (CANSerial.available() == 0) { } + Gdata[Gx] = CANSerial.read(); } Glow = Gdata[(configPage10.caninput_param_start_byte[currentStatus.current_caninchannel])]; @@ -72,150 +44,91 @@ void canCommand() } else { - Ghigh = 0; + Ghigh = 0; } - - currentStatus.canin[currentStatus.current_caninchannel] = word(Ghigh, Glow); + + currentStatus.canin[currentStatus.current_caninchannel] = word(Ghigh, Glow); } - - else{} //continue as command request failed and/or data/device was not available - + + else{} //continue as command request failed and/or data/device was not available + if (currentStatus.current_caninchannel <= 6) // if channel is 0-7 { currentStatus.current_caninchannel++; //inc to next channel } - else + else { currentStatus.current_caninchannel = 0; //reset to start - } - + } + break; case 'L': uint8_t Llength; -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - while (Serial3.available() == 0) { } - canlisten = Serial3.read(); -#elif defined(CORE_STM32) - while (Serial2.available() == 0) { } - canlisten = Serial2.read(); -#elif defined(CORE_TEENSY) - while (Serial2.available() == 0) { } - canlisten = Serial2.read(); -#else return; -#endif + while (CANSerial.available() == 0) { } + canlisten = CANSerial.read(); + if (canlisten == 0) { //command request failed and/or data/device was not available break; } -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - while (Serial3.available() == 0) { } - Llength= Serial3.read(); // next the number of bytes expected value -#elif defined(CORE_STM32) - while (Serial2.available() == 0) { } - Llength= Serial2.read(); // next the number of bytes expected value -#elif defined(CORE_TEENSY) - while (Serial2.available() == 0) { } - Llength= Serial2.read(); // next the number of bytes expected value -#else return; -#endif + + while (CANSerial.available() == 0) { } + Llength= CANSerial.read(); // next the number of bytes expected value + for (uint8_t Lcount = 0; Lcount = 6) { - byte tmp; -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - tmp = Serial3.read(); - offset = word(Serial3.read(), tmp); - tmp = Serial3.read(); - length = word(Serial3.read(), tmp); -#elif defined(CORE_STM32) - tmp = Serial2.read(); - offset = word(Serial2.read(), tmp); - tmp = Serial2.read(); - length = word(Serial2.read(), tmp); -#elif defined(CORE_TEENSY) - tmp = Serial2.read(); - offset = word(Serial2.read(), tmp); - tmp = Serial2.read(); - length = word(Serial2.read(), tmp); -#else return; -#endif - sendValues(offset, length, 3); - } - else - { - //No other r/ commands should be called + CANSerial.read(); //Read the $tsCanId + cmd = CANSerial.read(); + + uint16_t offset, length; + if(cmd == 0x30) //Send output channels command 0x30 is 48dec + { + byte tmp; + tmp = CANSerial.read(); + offset = word(CANSerial.read(), tmp); + tmp = CANSerial.read(); + length = word(CANSerial.read(), tmp); + sendValues(offset, length, 3); + } + else + { + //No other r/ commands should be called + } } break; - + case 'S': // send code version - for (unsigned int sig = 0; sig < sizeof(displaySignature) - 1; sig++){ -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - Serial3.write(displaySignature[sig]); -#elif defined(CORE_STM32) - Serial2.write(displaySignature[sig]); -#elif defined(CORE_TEENSY) - Serial2.write(displaySignature[sig]); -#else return; -#endif + for (unsigned int sig = 0; sig < sizeof(displaySignature) - 1; sig++) + { + CANSerial.write(displaySignature[sig]); } //Serial3.print("speeduino 201609-dev"); break; case 'Q': // send code version - for (unsigned int revn = 0; revn < sizeof( TSfirmwareVersion) - 1; revn++){ -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - Serial3.write( TSfirmwareVersion[revn]); -#elif defined(CORE_STM32) - Serial2.write( TSfirmwareVersion[revn]); -#elif defined(CORE_TEENSY) - Serial2.write( TSfirmwareVersion[revn]); -#else return; -#endif + for (unsigned int revn = 0; revn < sizeof( TSfirmwareVersion) - 1; revn++) + { + CANSerial.write( TSfirmwareVersion[revn]); } //Serial3.print("speeduino 201609-dev"); break; case 'Z': //dev use break; - + default: break; } @@ -227,65 +140,29 @@ void sendCancommand(uint8_t cmdtype, uint16_t canaddress, uint8_t candata1, uint switch (cmdtype) { case 0: -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - Serial3.print("G"); - Serial3.write(canaddress); //tscanid of speeduino device - Serial3.write(candata1); // table id - Serial3.write(candata2); //table memory offset -#elif defined(CORE_STM32) - Serial2.print("G"); - Serial2.write(canaddress); //tscanid of speeduino device - Serial2.write(candata1); // table id - Serial2.write(candata2); //table memory offset -#elif defined(CORE_TEENSY) - Serial2.print("G"); - Serial2.write(canaddress); //tscanid of speeduino device - Serial2.write(candata1); // table id - Serial2.write(candata2); //table memory offset -#else return; -#endif - break; + CANSerial.print("G"); + CANSerial.write(canaddress); //tscanid of speeduino device + CANSerial.write(candata1); // table id + CANSerial.write(candata2); //table memory offset + break; - case 1: //send request to listen for a can message -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - Serial3.print("L"); - Serial3.write(canaddress); //11 bit canaddress of device to listen for -#elif defined(CORE_STM32) - Serial2.print("L"); - Serial2.write(canaddress); //11 bit canaddress of device to listen for -#elif defined(CORE_TEENSY) - Serial2.print("L"); - Serial2.write(canaddress); //11 bit canaddress of device to listen for - -#else return; -#endif - break; + case 1: //send request to listen for a can message + CANSerial.print("L"); + CANSerial.write(canaddress); //11 bit canaddress of device to listen for + break; case 2: -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - Serial3.print("R"); //send "R" to request data from the parmagroup whos value is sent next - Serial3.write( lowByte(paramgroup) ); //send lsb first - Serial3.write( lowByte(paramgroup >> 8) ); -#elif defined(CORE_STM32) - Serial2.print("R"); //send "R" to request data from the parmagroup whos value is sent next - Serial2.write( lowByte(paramgroup) ); //send lsb first - Serial2.write( lowByte(paramgroup >> 8) ); -#elif defined(CORE_TEENSY) - Serial2.print("R"); //send "R" to request data from the parmagroup whos value is sent next - Serial2.write( lowByte(paramgroup) ); //send lsb first - Serial2.write( lowByte(paramgroup >> 8) ); -#else return; -#endif - break; + CANSerial.print("R"); //send "R" to request data from the parmagroup whos value is sent next + CANSerial.write( lowByte(paramgroup) ); //send lsb first + CANSerial.write( lowByte(paramgroup >> 8) ); + break; case 3: //send to truecan send routine -#if defined(CORE_STM32) + break; -#elif defined(CORE_TEENSY) -#else return; -#endif - break; + default: + break; } } - + diff --git a/speeduino/comms.h b/speeduino/comms.h index bd18276d..24f5100b 100644 --- a/speeduino/comms.h +++ b/speeduino/comms.h @@ -15,7 +15,7 @@ #define packetSize 57//41 byte currentPage = 1;//Not the same as the speeduino config page numbers -boolean isMap = true; +bool isMap = true; unsigned long requestCount = 0; //The number of times the A command has been issued byte currentCommand; bool cmdPending = false; @@ -49,4 +49,4 @@ void sendToothLog(bool useChar); void testComm(); void commandButtons(); -#endif // COMMS_H +#endif // COMMS_H diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 9ed67d44..7b50cd67 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -36,13 +36,15 @@ void command() case 'E': // receive command button commands cmdPending = true; - if(Serial.available() < 2) { return; } - cmdGroup = Serial.read(); - cmdValue = Serial.read(); - cmdCombined = word(cmdGroup, cmdValue); - if (currentStatus.RPM == 0) { commandButtons(); } + if(Serial.available() >= 2) + { + cmdGroup = Serial.read(); + cmdValue = Serial.read(); + cmdCombined = word(cmdGroup, cmdValue); + if (currentStatus.RPM == 0) { commandButtons(); } - cmdPending = false; + cmdPending = false; + } break; case 'L': // List the contents of current page in human readable form @@ -57,18 +59,20 @@ void command() //A 2nd byte of data is required after the 'P' specifying the new page number. cmdPending = true; - if (Serial.available() == 0) { return; } - currentPage = Serial.read(); - if (currentPage >= '0') {//This converts the ascii number char into binary - currentPage -= '0'; + if (Serial.available() > 0) + { + currentPage = Serial.read(); + if (currentPage >= '0') {//This converts the ascii number char into binary + currentPage -= '0'; + } + if ( (currentPage == veMapPage) || (currentPage == ignMapPage) || (currentPage == afrMapPage) ) { // Detecting if the current page is a table/map + isMap = true; + } + else { + isMap = false; + } + cmdPending = false; } - if (currentPage == veMapPage || currentPage == ignMapPage || currentPage == afrMapPage) { // Detecting if the current page is a table/map - isMap = true; - } - else { - isMap = false; - } - cmdPending = false; break; case 'F': // send serial protocol version @@ -90,24 +94,31 @@ void command() case 'W': // receive new VE obr constant at 'W'++ cmdPending = true; + int valueOffset; //cannot use offset as a variable name, it is a reserved word for several teensy libraries if (isMap) { - if(Serial.available()< 3) { return; } // 1 additional byte is required on the MAP pages which are larger than 255 bytes - byte offset1, offset2; - offset1 = Serial.read(); - offset2 = Serial.read(); - valueOffset = word(offset2, offset1); + if(Serial.available() >= 3) // 1 additional byte is required on the MAP pages which are larger than 255 bytes + { + byte offset1, offset2; + offset1 = Serial.read(); + offset2 = Serial.read(); + valueOffset = word(offset2, offset1); + receiveValue(valueOffset, Serial.read()); + cmdPending = false; + } } else { - if(Serial.available()< 2) { return; } - valueOffset = Serial.read(); + if(Serial.available() >= 2) + { + valueOffset = Serial.read(); + receiveValue(valueOffset, Serial.read()); + cmdPending = false; + } } - receiveValue(valueOffset, Serial.read()); - cmdPending = false; break; case 't': // receive new Calibration info. Command structure: "t", . This is an MS2/Extra command, NOT part of MS1 spec @@ -124,12 +135,6 @@ void command() break; case 'Z': //Totally non-standard testing function. Will be removed once calibration testing is completed. This function takes 1.5kb of program space! :S - digitalWrite(pinInjector1, HIGH); - digitalWrite(pinInjector2, HIGH); - delay(20); - digitalWrite(pinInjector1, LOW); - digitalWrite(pinInjector2, LOW); - return; Serial.println(F("Coolant")); for (int x = 0; x < CALIBRATION_TABLE_SIZE; x++) { @@ -172,25 +177,27 @@ void command() case 'r': //New format for the optimised OutputChannels cmdPending = true; byte cmd; - if (Serial.available() < 6) { return; } - tsCanId = Serial.read(); //Read the $tsCanId - cmd = Serial.read(); // read the command + if (Serial.available() >= 6) + { + tsCanId = Serial.read(); //Read the $tsCanId + cmd = Serial.read(); // read the command - uint16_t offset, length; - if(cmd == 0x30) //Send output channels command 0x30 is 48dec - { - byte tmp; - tmp = Serial.read(); - offset = word(Serial.read(), tmp); - tmp = Serial.read(); - length = word(Serial.read(), tmp); - sendValues(offset, length, 0); + uint16_t offset, length; + if(cmd == 0x30) //Send output channels command 0x30 is 48dec + { + byte tmp; + tmp = Serial.read(); + offset = word(Serial.read(), tmp); + tmp = Serial.read(); + length = word(Serial.read(), tmp); + sendValues(offset, length, 0); + } + else + { + //No other r/ commands should be called + } + cmdPending = false; } - else - { - //No other r/ commands should be called - } - cmdPending = false; break; @@ -240,7 +247,6 @@ This function returns the current values of a fixed group of variables void sendValues(uint16_t offset, uint16_t packetLength, byte portNum) { byte fullStatus[packetSize]; - byte response[packetLength]; if (portNum == 3) { @@ -343,20 +349,10 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte portNum) for(byte x=0; x= TOOTH_LOG_SIZE) //Sanity check. Flagging system means this should always be true { - for (int x = 0; x < TOOTH_LOG_SIZE; x++) + unsigned int tempToothHistory[TOOTH_LOG_BUFFER]; //Create a temporary array that will contain a copy of what is in the main toothHistory array + + //Copy the working history into the temporary buffer array. This is done so that, if the history loops whilst the values are being sent over serial, it doesn't affect the values + memcpy( (void*)tempToothHistory, (void*)toothHistory, sizeof(tempToothHistory) ); + toothHistoryIndex = 0; //Reset the history index + + //Loop only needs to go to half the buffer size + if (useChar) { - Serial.println(tempToothHistory[x]); + for (int x = 0; x < TOOTH_LOG_SIZE; x++) + { + Serial.println(tempToothHistory[x]); + } } - } - else - { - for (int x = 0; x < TOOTH_LOG_SIZE; x++) + else { - Serial.write(highByte(tempToothHistory[x])); - Serial.write(lowByte(tempToothHistory[x])); + for (int x = 0; x < TOOTH_LOG_SIZE; x++) + { + Serial.write(highByte(tempToothHistory[x])); + Serial.write(lowByte(tempToothHistory[x])); + } + BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_TOOTHLOG1READY); } - BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_TOOTHLOG1READY); + toothLogRead = true; } - toothLogRead = true; } void testComm() @@ -1141,10 +1137,10 @@ void commandButtons() BIT_SET(currentStatus.testOutputs, 1); break; case 513: // cmd group is for injector1 on actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinInjector1, HIGH);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ){ digitalWrite(pinInjector1, HIGH); } break; case 514: // cmd group is for injector1 off actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinInjector1, LOW);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ){digitalWrite(pinInjector1, LOW);} break; case 515: // cmd group is for injector1 50% dc actions //for (byte dcloop = 0; dcloop < 11; dcloop++) @@ -1156,67 +1152,69 @@ void commandButtons() //} break; case 516: // cmd group is for injector2 on actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinInjector2, HIGH);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1){ digitalWrite(pinInjector2, HIGH); } break; case 517: // cmd group is for injector2 off actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinInjector2, LOW);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ){ digitalWrite(pinInjector2, LOW); } break; case 518: // cmd group is for injector2 50%dc actions break; case 519: // cmd group is for injector3 on actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinInjector3, HIGH);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ) { digitalWrite(pinInjector3, HIGH); } break; case 520: // cmd group is for injector3 off actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinInjector3, LOW);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ) { digitalWrite(pinInjector3, LOW); } break; case 521: // cmd group is for injector3 50%dc actions break; case 522: // cmd group is for injector4 on actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinInjector4, HIGH);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ){ digitalWrite(pinInjector4, HIGH); } break; case 523: // cmd group is for injector4 off actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinInjector4, LOW);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ){ digitalWrite(pinInjector4, LOW); } break; case 524: // cmd group is for injector4 50% dc actions break; case 769: // cmd group is for spark1 on actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinCoil1, HIGH);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ) { digitalWrite(pinCoil1, HIGH); } break; case 770: // cmd group is for spark1 off actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinCoil1, LOW);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ) { digitalWrite(pinCoil1, LOW); } break; case 771: // cmd group is for spark1 50%dc actions break; case 772: // cmd group is for spark2 on actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinCoil2, HIGH);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ) { digitalWrite(pinCoil2, HIGH); } break; case 773: // cmd group is for spark2 off actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinCoil2, LOW);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ) { digitalWrite(pinCoil2, LOW); } break; case 774: // cmd group is for spark2 50%dc actions break; case 775: // cmd group is for spark3 on actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinCoil3, HIGH);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ) { digitalWrite(pinCoil3, HIGH); } break; case 776: // cmd group is for spark3 off actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinCoil3, LOW);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ) { digitalWrite(pinCoil3, LOW); } break; case 777: // cmd group is for spark3 50%dc actions break; case 778: // cmd group is for spark4 on actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinCoil4, HIGH);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ) { digitalWrite(pinCoil4, HIGH); } break; case 779: // cmd group is for spark4 off actions - if(BIT_CHECK(currentStatus.testOutputs, 1)){digitalWrite(pinCoil4, LOW);} + if( BIT_CHECK(currentStatus.testOutputs, 1) == 1 ) { digitalWrite(pinCoil4, LOW); } break; case 780: // cmd group is for spark4 50%dc actions + default: break; } -} +} + diff --git a/speeduino/corrections.h b/speeduino/corrections.h index 5a28e50d..7da66cf6 100644 --- a/speeduino/corrections.h +++ b/speeduino/corrections.h @@ -20,6 +20,7 @@ static inline byte correctionIATDensity(); //Inlet temp density correction static inline byte correctionLaunch(); //Launch control correction static inline bool correctionDFCO(); //Decelleration fuel cutoff +int SetIgnStartAngle(int IgnDegrees); int8_t correctionsIgn(int8_t advance); static inline int8_t correctionFixedTiming(int8_t); static inline int8_t correctionCrankingFixedTiming(int8_t); @@ -31,4 +32,4 @@ static inline int8_t correctionSoftFlatShift(int8_t); uint16_t correctionsDwell(uint16_t dwell); -#endif // CORRECTIONS_H +#endif // CORRECTIONS_H diff --git a/speeduino/corrections.ino b/speeduino/corrections.ino index 48c798be..71552e66 100644 --- a/speeduino/corrections.ino +++ b/speeduino/corrections.ino @@ -313,6 +313,12 @@ static inline byte correctionAFRClosedLoop() } //******************************** IGNITION ADVANCE CORRECTIONS ******************************** +int SetIgnStartAngle(int IgnDegrees) +{ + IgnDegrees += CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + if(IgnDegrees > CRANK_ANGLE_MAX_IGN) { return IgnDegrees - CRANK_ANGLE_MAX_IGN; } + else { return IgnDegrees; } +} int8_t correctionsIgn(int8_t advance) { @@ -419,4 +425,4 @@ uint16_t correctionsDwell(uint16_t dwell) dwell = (revolutionTime / pulsesPerRevolution) - (configPage2.sparkDur * 100); } return dwell; -} +} diff --git a/speeduino/globals.h b/speeduino/globals.h index 45bd1084..002b5443 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -11,8 +11,13 @@ #define BOARD_NR_GPIO_PINS 34 #elif defined(STM32_MCU_SERIES) || defined(_VARIANT_ARDUINO_STM32_) #define CORE_STM32 - #define LED_BUILTIN 33 - + #if defined (ARDUINO_ARCH_STM32F1) + #define LED_BUILTIN 33 + #elif defined (ARDUINO_ARCH_STM32F4) + #define LED_BUILTIN PA6 + #endif + + extern "C" char* sbrk(int incr); //Used to freeRam inline unsigned char digitalPinToInterrupt(unsigned char Interrupt_pin) { return Interrupt_pin; } //This isn't included in the stm32duino libs (yet) #define portOutputRegister(port) (volatile byte *)( &(port->regs->ODR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value #define portInputRegister(port) (volatile byte *)( &(port->regs->IDR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value @@ -109,7 +114,7 @@ const byte data_structure_version = 2; //This identifies the data structure when const byte page_size = 64; const int npage_size[11] = {0,288,64,288,64,288,64,64,160,192,128}; //const byte page10_size = 128; -const int map_page_size = 288; +#define MAP_PAGE_SIZE 288 struct table3D fuelTable; //16x16 fuel map struct table3D ignitionTable; //16x16 ignition map diff --git a/speeduino/maths.h b/speeduino/maths.h index 7daa0e7b..c3fad7bd 100644 --- a/speeduino/maths.h +++ b/speeduino/maths.h @@ -1,7 +1,7 @@ #ifndef MATH_H #define MATH_H -int fastMap1023toX(unsigned long, int); +int fastResize(unsigned int, int); unsigned long percentage(byte, unsigned long); -#endif +#endif diff --git a/speeduino/maths.ino b/speeduino/maths.ino index 4c142533..08d00954 100644 --- a/speeduino/maths.ino +++ b/speeduino/maths.ino @@ -13,9 +13,13 @@ int fastMap(unsigned long x, int in_min, int in_max, int out_min, int out_max) //This is a common case because it means converting from a standard 10-bit analog input to a byte or 10-bit analog into 0-511 (Eg the temperature readings) //int fastMap1023toX(unsigned long x, int in_min, int in_max, int out_min, int out_max) //removed ununsed variables, in_min and out_min is aways 0, in_max is aways 1023 -int fastMap1023toX(unsigned long x, int out_max) +int fastResize(unsigned int x, int out_max) { - return (x * out_max) >> 10; + #if defined(CORE_STM32) + return (x * out_max) >> 12; + #else + return (x * out_max) >> 10; + #endif } /* @@ -64,16 +68,18 @@ int divs100(long n) { // return q + (r > 99); } -//Unsigned divide by 100 unsigned long divu100(unsigned long n) { - //return (n / 100); // No difference with this on/off - unsigned long q, r; - q = (n >> 1) + (n >> 3) + (n >> 6) - (n >> 10) + - (n >> 12) + (n >> 13) - (n >> 16); - q = q + (q >> 20); - q = q >> 6; - r = n - q*100; - return q + ((r + 28) >> 7); + #if defined(CORE_STM32) + return (n / 100); // No difference with this on/off + #else + unsigned long q, r; + q = (n >> 1) + (n >> 3) + (n >> 6) - (n >> 10) + + (n >> 12) + (n >> 13) - (n >> 16); + q = q + (q >> 20); + q = q >> 6; + r = n - q*100; + return q + ((r + 28) >> 7); + #endif // return q + (r > 99); } @@ -94,4 +100,4 @@ inline long powint(int factor, unsigned int exponent) while (exponent--) product *= factor; return product; -} +} diff --git a/speeduino/scheduler.ino b/speeduino/scheduler.ino index 21ace743..878869a4 100644 --- a/speeduino/scheduler.ino +++ b/speeduino/scheduler.ino @@ -173,6 +173,7 @@ void initialiseSchedulers() Timer3.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE); Timer3.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE); Timer3.setMode(TIMER_CH4, TIMER_OUTPUT_COMPARE); + Timer1.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); Timer2.attachInterrupt(1, fuelSchedule1Interrupt); Timer2.attachInterrupt(2, fuelSchedule2Interrupt); @@ -183,9 +184,7 @@ void initialiseSchedulers() Timer3.attachInterrupt(2, ignitionSchedule2Interrupt); Timer3.attachInterrupt(3, ignitionSchedule3Interrupt); Timer3.attachInterrupt(4, ignitionSchedule4Interrupt); - - //(TIMER2->regs).gen->CCMR1 &= ~TIM_CCMR1_OC1M; //Select channel 1 output Compare and Mode - //TIM3->CR1 |= TIM_CR1_CEN + Timer1.attachInterrupt(1, ignitionSchedule5Interrupt); #endif diff --git a/speeduino/sensors.ino b/speeduino/sensors.ino index d38e614e..be5032f9 100644 --- a/speeduino/sensors.ino +++ b/speeduino/sensors.ino @@ -62,7 +62,7 @@ void instanteneousMAPReading() currentStatus.mapADC = ADC_FILTER(tempReading, ADCFILTER_MAP, currentStatus.mapADC); //Very weak filter - currentStatus.MAP = fastMap1023toX(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value + currentStatus.MAP = fastResize(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value } @@ -107,7 +107,7 @@ void readMAP() if (MAPrunningValue == 0 || MAPcount == 0) { instanteneousMAPReading(); return; } currentStatus.mapADC = ldiv(MAPrunningValue, MAPcount).quot; - currentStatus.MAP = fastMap1023toX(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value + currentStatus.MAP = fastResize(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value MAPcurRev = currentStatus.startRevolutions; //Reset the current rev count MAPrunningValue = 0; MAPcount = 0; @@ -137,7 +137,7 @@ void readMAP() { //Reaching here means that the last cylce has completed and the MAP value should be calculated currentStatus.mapADC = MAPrunningValue; - currentStatus.MAP = fastMap1023toX(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value + currentStatus.MAP = fastResize(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value MAPcurRev = currentStatus.startRevolutions; //Reset the current rev count MAPrunningValue = 1023; //Reset the latest value so the next reading will always be lower } @@ -150,10 +150,10 @@ void readTPS() currentStatus.TPSlast = currentStatus.TPS; currentStatus.TPSlast_time = currentStatus.TPS_time; #if defined(ANALOG_ISR) - byte tempTPS = fastMap1023toX(AnChannel[pinTPS-A0], 255); //Get the current raw TPS ADC value and map it into a byte + byte tempTPS = fastResize(AnChannel[pinTPS-A0], 255); //Get the current raw TPS ADC value and map it into a byte #else analogRead(pinTPS); - byte tempTPS = fastMap1023toX(analogRead(pinTPS), 255); //Get the current raw TPS ADC value and map it into a byte + byte tempTPS = fastResize(analogRead(pinTPS), 255); //Get the current raw TPS ADC value and map it into a byte #endif currentStatus.tpsADC = ADC_FILTER(tempTPS, ADCFILTER_TPS, currentStatus.tpsADC); //Check that the ADC values fall within the min and max ranges (Should always be the case, but noise can cause these to fluctuate outside the defined range). @@ -167,10 +167,10 @@ void readTPS() void readCLT() { #if defined(ANALOG_ISR) - tempReading = fastMap1023toX(AnChannel[pinCLT-A0], 511); //Get the current raw CLT value + tempReading = fastResize(AnChannel[pinCLT-A0], 511); //Get the current raw CLT value #else tempReading = analogRead(pinCLT); - tempReading = fastMap1023toX(analogRead(pinCLT), 511); //Get the current raw CLT value + tempReading = fastResize(analogRead(pinCLT), 511); //Get the current raw CLT value #endif currentStatus.cltADC = ADC_FILTER(tempReading, ADCFILTER_CLT, currentStatus.cltADC); currentStatus.coolant = cltCalibrationTable[currentStatus.cltADC] - CALIBRATION_TEMPERATURE_OFFSET; //Temperature calibration values are stored as positive bytes. We subtract 40 from them to allow for negative temperatures @@ -179,10 +179,10 @@ void readCLT() void readIAT() { #if defined(ANALOG_ISR) - tempReading = fastMap1023toX(AnChannel[pinIAT-A0], 511); //Get the current raw IAT value + tempReading = fastResize(AnChannel[pinIAT-A0], 511); //Get the current raw IAT value #else tempReading = analogRead(pinIAT); - tempReading = fastMap1023toX(analogRead(pinIAT), 511); //Get the current raw IAT value + tempReading = fastResize(analogRead(pinIAT), 511); //Get the current raw IAT value #endif currentStatus.iatADC = ADC_FILTER(tempReading, ADCFILTER_IAT, currentStatus.iatADC); currentStatus.IAT = iatCalibrationTable[currentStatus.iatADC] - CALIBRATION_TEMPERATURE_OFFSET; @@ -191,10 +191,10 @@ void readIAT() void readO2() { #if defined(ANALOG_ISR) - tempReading = fastMap1023toX(AnChannel[pinO2-A0], 511); //Get the current O2 value. + tempReading = fastResize(AnChannel[pinO2-A0], 511); //Get the current O2 value. #else tempReading = analogRead(pinO2); - tempReading = fastMap1023toX(analogRead(pinO2), 511); //Get the current O2 value. + tempReading = fastResize(analogRead(pinO2), 511); //Get the current O2 value. #endif currentStatus.O2ADC = ADC_FILTER(tempReading, ADCFILTER_O2, currentStatus.O2ADC); currentStatus.O2 = o2CalibrationTable[currentStatus.O2ADC]; @@ -209,10 +209,10 @@ void readO2() void readBat() { #if defined(ANALOG_ISR) - tempReading = fastMap1023toX(AnChannel[pinBat-A0], 245); //Get the current raw Battery value. Permissible values are from 0v to 24.5v (245) + tempReading = fastResize(AnChannel[pinBat-A0], 245); //Get the current raw Battery value. Permissible values are from 0v to 24.5v (245) #else tempReading = analogRead(pinBat); - tempReading = fastMap1023toX(analogRead(pinBat), 245); //Get the current raw Battery value. Permissible values are from 0v to 24.5v (245) + tempReading = fastResize(analogRead(pinBat), 245); //Get the current raw Battery value. Permissible values are from 0v to 24.5v (245) #endif currentStatus.battery10 = ADC_FILTER(tempReading, ADCFILTER_BAT, currentStatus.battery10); } @@ -224,4 +224,4 @@ void readBat() void flexPulse() { ++flexCounter; - } + } diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 5c457b97..69d1a5d0 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -133,6 +133,7 @@ void (*ign5StartFunction)(); void (*ign5EndFunction)(); int timePerDegree; +int dwellAngle; byte degreesPerLoop; //The number of crank degrees that pass for each mainloop of the program volatile bool fpPrimed = false; //Tracks whether or not the fuel pump priming has been completed yet @@ -152,7 +153,14 @@ void setup() table3D_setSize(&trim3Table, 6); table3D_setSize(&trim4Table, 6); - loadConfig(); + #if defined(CORE_STM32) + pinMode(CS, OUTPUT); + digitalWrite(CS, HIGH); // disable + Spi.begin(); + loadConfig_STM(); + #else + loadConfig(); + #endif doUpdates(); //Check if any data items need updating (Occurs ith firmware updates) Serial.begin(115200); @@ -1269,7 +1277,7 @@ void loop() else { currentStatus.dwell = (configPage2.dwellRun * 100); } currentStatus.dwell = correctionsDwell(currentStatus.dwell); - int dwellAngle = (div(currentStatus.dwell, timePerDegree).quot ); //Convert the dwell time to dwell angle based on the current engine speed + dwellAngle = (div(currentStatus.dwell, timePerDegree).quot ); //Convert the dwell time to dwell angle based on the current engine speed //Calculate start angle for each channel //1 cylinder (Everyone gets this) @@ -1281,61 +1289,45 @@ void loop() { //2 cylinders case 2: - ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition2StartAngle = SetIgnStartAngle(channel2IgnDegrees); break; //3 cylinders case 3: - ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition2StartAngle = SetIgnStartAngle(channel2IgnDegrees); ignition3StartAngle = channel3IgnDegrees + 360 - currentStatus.advance - dwellAngle; if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} break; //4 cylinders case 4: - ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition2StartAngle = SetIgnStartAngle(channel2IgnDegrees); if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) { - ignition3StartAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - ignition4StartAngle = channel4IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; - if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition3StartAngle = SetIgnStartAngle(channel3IgnDegrees); + ignition4StartAngle = SetIgnStartAngle(channel4IgnDegrees); } break; //5 cylinders case 5: - ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition2StartAngle = SetIgnStartAngle(channel2IgnDegrees); if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} - ignition3StartAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition4StartAngle = channel4IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; - if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition5StartAngle = channel5IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; - if(ignition5StartAngle > CRANK_ANGLE_MAX_IGN) {ignition5StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition3StartAngle = SetIgnStartAngle(channel3IgnDegrees); + ignition4StartAngle = SetIgnStartAngle(channel4IgnDegrees); + ignition5StartAngle = SetIgnStartAngle(channel5IgnDegrees); break; //6 cylinders case 6: - ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - ignition3StartAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition2StartAngle = SetIgnStartAngle(channel2IgnDegrees); + ignition3StartAngle = SetIgnStartAngle(channel3IgnDegrees); break; //8 cylinders case 8: - ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - ignition3StartAngle = channel3IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - ignition4StartAngle = channel4IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; - if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition2StartAngle = SetIgnStartAngle(channel2IgnDegrees); + ignition3StartAngle = SetIgnStartAngle(channel3IgnDegrees); + ignition4StartAngle = SetIgnStartAngle(channel4IgnDegrees); break; //Will hit the default case on 1 cylinder or >8 cylinders. Do nothing in these cases @@ -1586,4 +1578,5 @@ void loop() } } //Ignition schedules on } //Has sync and RPM -} //loop() +} //loop() + diff --git a/speeduino/storage.h b/speeduino/storage.h index b848a148..80275a81 100644 --- a/speeduino/storage.h +++ b/speeduino/storage.h @@ -1,11 +1,37 @@ #ifndef STORAGE_H #define STORAGE_H +#if defined(CORE_STM32) + #include +#endif void writeConfig(); void loadConfig(); void loadCalibration(); void writeCalibration(); +#if defined(CORE_STM32) + // Based on code by Heather Dewey-Hagborg + // http://arduino.cc/en/Tutorial/SPIEEPROM + + #define PAGE_SIZE 256 //W25Q16 + #define SPI_MODE 0 + #define CS 10 // chip select + + // EEPROM opcodes + #define WREN 6 //Write Enable + #define WRDI 4 //Write Disable + #define RDSR 5 //Read Status Register-1 + #define WRSR 1 //Write Status Register + #define READ 3 //Read Data + #define WRITE 2 //Page Program + //STM32F103 clones + #if defined (ARDUINO_ARCH_STM32F1) + SPIClass Spi(2); //STM32F103 series share SPI1 with analogic channels, use 2 instead. + #else + SPIClass Spi(1); //STM32F407 eeprom is on SPI1 port + #endif +#endif + /* Current layout of EEPROM data (Version 3) is as follows (All sizes are in bytes): |---------------------------------------------------| @@ -122,4 +148,4 @@ Current layout of EEPROM data (Version 3) is as follows (All sizes are in bytes) #define EEPROM_CALIBRATION_IAT 3071 #define EEPROM_CALIBRATION_CLT 3583 -#endif // STORAGE_H +#endif // STORAGE_H diff --git a/speeduino/storage.ino b/speeduino/storage.ino index f7fa9421..974845e5 100644 --- a/speeduino/storage.ino +++ b/speeduino/storage.ino @@ -530,3 +530,513 @@ void writeCalibration() } } + +byte EEPROM_read(int EEPROM_address) +{ + //READ EEPROM + digitalWrite(CS, LOW); // EEPROM enable + Spi.send(READ); //transmit read opcode + Spi.send((uint8)(EEPROM_address>>8)); //send MSByte address first + Spi.send((uint8)(EEPROM_address)); //send LSByte address + int data = Spi.send(0xFF); //get data byte + digitalWrite(CS, HIGH); // EEPROM disable + return data; +} + +void EEPROM_write(int EEPROM_address, byte data) +{ + //WRITE EEPROM + digitalWrite(CS, LOW); // EEPROM enable + Spi.send(WREN); // EEPROM write enable instruction + digitalWrite(CS, HIGH); // EEPROM disable + delay(2); + digitalWrite(CS, LOW); // EEPROM enable + Spi.send(WRITE); // EEPROM write instruction + Spi.send((uint8)(EEPROM_address>>8)); //send MSByte address first + Spi.send((uint8)(EEPROM_address)); //send LSByte address + Spi.send(data); + digitalWrite(CS, HIGH); // EEPROM disable +} + +void EEPROM_update(int EEPROM_address, byte data) +{ + byte result = EEPROM_read(EEPROM_address); + if(result != data) { EEPROM_write(EEPROM_address, data); } +} + +void writeConfig_STM() +{ + /* + We only ever write to the EEPROM where the new value is different from the currently stored byte + This is due to the limited write life of the EEPROM (Approximately 100,000 writes) + */ + + int offset; + //Create a pointer to the config page + byte* pnt_configPage; + + //if(EEPROM.read(0) != data_structure_version) { EEPROM.write(,data_structure_version); } //Write the data structure version + EEPROM_update(0, data_structure_version); //Write the data structure version + + /*--------------------------------------------------- + | Fuel table (See storage.h for data layout) - Page 1 + | 16x16 table itself + the 16 values along each of the axis + -----------------------------------------------------*/ + EEPROM_update(EEPROM_CONFIG1_XSIZE, fuelTable.xSize); //Write the VE Tables RPM dimension size + EEPROM_update(EEPROM_CONFIG1_YSIZE, fuelTable.ySize); //Write the VE Tables MAP/TPS dimension size + + for(int x=EEPROM_CONFIG1_MAP; xvalues[yMax][xMax]; //Check that all values aren't just the same (This regularly happens with things like the fuel trim maps) - if(A == B && A == C && A == D) { return A; } + if(A == D) { return A; } //yMin = yMax and xMin = xMax //Create some normalised position values //These are essentially percentages (between 0 and 1) of where the desired value falls between the nearest bins on each axis @@ -379,9 +379,13 @@ int get3DTableValue(struct table3D *fromTable, int Y, int X) int r = (p * q) >> 8; return ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; } + + /* Executed a benchmark on all options and this is the results - * Stadard:226224 91 |FP Math:32240 91.89 |Clean code:34056 91, Number of loops:2500 - * + * @Mega: Stadard:226224 91 |FP Math:32240 91.89 |Clean code:34056 91, Number of loops:2500 + * @STM32: Stadard:1624 91 |FP Math:85180 91.89 |Clean code:1001 91 , Number of loops:2500 + * @STM32 Stadard:13000 loops/S |Clean code:15700 loops/S @8000RPM ~20.8% faster + //This function pulls a value from a 3D table given a target for X and Y coordinates. //It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf float get3DTableValueF(struct table3D *fromTable, int Y, int X) @@ -466,47 +470,38 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) int yMaxValue, yMinValue; int xMaxValue, xMinValue; - if(fromTable->lastXMin==0) {fromTable->lastXMin=fromTable->xSize-1;} + if(fromTable->lastXMin == 0) {fromTable->lastXMin = fromTable->xSize-1;} else {xMin = fromTable->lastXMin;} - if(fromTable->lastYMin==0) {fromTable->lastYMin=fromTable->ySize-1;} + if(fromTable->lastYMin == 0) {fromTable->lastYMin = fromTable->ySize-1;} else {yMin = fromTable->lastYMin;} - if(xMin>fromTable->xSize-1) - { - fromTable->lastXMin = fromTable->xSize-1; - xMin = fromTable->xSize-1; - } - if(yMin>fromTable->ySize-1) - { - fromTable->lastYMin = fromTable->ySize-1; - yMin = fromTable->ySize-1; - } - do //RPM axis { - if(X>=fromTable->axisX[xMin]) {break;} + if(X >= fromTable->axisX[xMin]) {break;} xMin--; }while(1); - fromTable->lastXMin = xMin + 1; + do //MAP axis { - if(Y<=fromTable->axisY[yMin]) {break;} + if(Y <= fromTable->axisY[yMin]) {break;} yMin--; }while(1); - fromTable->lastYMin = yMin + 1; xMax = xMin + 1; yMax = yMin + 1; - if (xMax>fromTable->xSize-1) //Overflow protection + if (xMax > fromTable->xSize-1) //Overflow protection { xMax = fromTable->xSize-1; xMin = xMax - 1; } - if (yMax>fromTable->ySize-1) //Overflow protection + fromTable->lastXMin = xMin + 1; + + if (yMax > fromTable->ySize-1) //Overflow protection { yMax = fromTable->ySize-1; yMin = yMax - 1; } + fromTable->lastYMin = yMin + 1; yMaxValue = fromTable->axisY[yMax]; yMinValue = fromTable->axisY[yMin]; @@ -517,6 +512,7 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) int B = fromTable->values[yMin][xMax]; int C = fromTable->values[yMax][xMin]; int D = fromTable->values[yMax][xMax]; + if(A == D) { return A; } p = ((long)(X - xMinValue) << 8) / (xMaxValue - xMinValue); //(RPM - RPM[1])/(RPM[2]- RPM[1]) q = 256 - (((long)(Y - yMaxValue) << 8) / (yMinValue - yMaxValue)); //(MAP - MAP[2])/(MAP[2]- MAP[1]) @@ -527,4 +523,4 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) int r = (p * q) >> 8; return ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; } -*/ +*/ diff --git a/speeduino/updates.ino b/speeduino/updates.ino index cbcff403..ef92caeb 100644 --- a/speeduino/updates.ino +++ b/speeduino/updates.ino @@ -10,23 +10,45 @@ void doUpdates() { #define CURRENT_DATA_VERSION 3 - //May 2017 firmware introduced a -40 offset on the ignition table. Update that table to +40 - if(EEPROM.read(EEPROM_DATA_VERSION) == 2) - { - for(int x=0; x<16; x++) + #if defined(CORE_AVR) | defined(CORE_TEENSY) + //May 2017 firmware introduced a -40 offset on the ignition table. Update that table to +40 + if(EEPROM.read(EEPROM_DATA_VERSION) == 2) { - for(int y=0; y<16; y++) + for(int x=0; x<16; x++) { - ignitionTable.values[x][y] = ignitionTable.values[x][y] + 40; + for(int y=0; y<16; y++) + { + ignitionTable.values[x][y] = ignitionTable.values[x][y] + 40; + } } + writeConfig(); + EEPROM.write(EEPROM_DATA_VERSION, 3); } - writeConfig(); - EEPROM.write(EEPROM_DATA_VERSION, 3); - } - //Final check is always for 255 and 0 (Brand new arduino) - if(EEPROM.read(EEPROM_DATA_VERSION) == 0 || EEPROM.read(EEPROM_DATA_VERSION) == 255) - { - EEPROM.write(EEPROM_DATA_VERSION, CURRENT_DATA_VERSION); - } -} + //Final check is always for 255 and 0 (Brand new arduino) + if(EEPROM.read(EEPROM_DATA_VERSION) == 0 || EEPROM.read(EEPROM_DATA_VERSION) == 255) + { + EEPROM.write(EEPROM_DATA_VERSION, CURRENT_DATA_VERSION); + } + #elif defined(CORE_STM) + //May 2017 firmware introduced a -40 offset on the ignition table. Update that table to +40 + if(EEPROM_read(EEPROM_DATA_VERSION) == 2) + { + for(int x=0; x<16; x++) + { + for(int y=0; y<16; y++) + { + ignitionTable.values[x][y] = ignitionTable.values[x][y] + 40; + } + } + writeConfig_STM(); + EEPROM_write(EEPROM_DATA_VERSION, 3); + } + + //Final check is always for 255 and 0 (Brand new arduino) + if(EEPROM_read(EEPROM_DATA_VERSION) == 0 || EEPROM_read(EEPROM_DATA_VERSION) == 255) + { + EEPROM_write(EEPROM_DATA_VERSION, CURRENT_DATA_VERSION); + } + #endif +} diff --git a/speeduino/utils.ino b/speeduino/utils.ino index 2c7d8e38..e4894526 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -31,8 +31,8 @@ int freeRam () // The difference is the free, available ram. return (uint16_t)stackTop - heapTop; #elif defined(CORE_STM32) - //Figure this out some_time - return 0; + char top = 't'; + return &top - reinterpret_cast(sbrk(0)); #endif } @@ -51,13 +51,22 @@ void setPinMapping(byte boardID) #define A7 boardADCPins[7] #define A8 boardADCPins[8] #define A9 boardADCPins[9] - //STM32F1 have only 9 12bit adc - #define A10 boardADCPins[0] - #define A11 boardADCPins[1] - #define A12 boardADCPins[2] - #define A13 boardADCPins[3] - #define A14 boardADCPins[4] - #define A15 boardADCPins[5] + #if defined (ARDUINO_ARCH_STM32F4) + #define A10 boardADCPins[10] + #define A11 boardADCPins[11] + #define A12 boardADCPins[12] + #define A13 boardADCPins[13] + #define A14 boardADCPins[14] + #define A15 boardADCPins[15] + #else + //STM32F1 have only 9 12bit adc + #define A10 boardADCPins[0] + #define A11 boardADCPins[1] + #define A12 boardADCPins[2] + #define A13 boardADCPins[3] + #define A14 boardADCPins[4] + #define A15 boardADCPins[5] + #endif #endif switch (boardID) @@ -185,8 +194,8 @@ void setPinMapping(byte boardID) pinStepperStep = 13; //Step pin for DRV8825 driver pinStepperEnable = 14; //Enable pin for DRV8825 pinDisplayReset = 2; // OLED reset pin - pinFan = 1; //Pin for the fan output - pinFuelPump = 0; //Fuel pump output + pinFan = 0; //Pin for the fan output + pinFuelPump = 1; //Fuel pump output pinTachOut = 31; //Tacho output pin //external interrupt enabled pins pinFlex = 32; // Flex sensor (Must be external interrupt enabled) @@ -261,8 +270,8 @@ void setPinMapping(byte boardID) pinStepperStep = 13; //Step pin for DRV8825 driver pinStepperEnable = 14; //Enable pin for DRV8825 pinDisplayReset = 2; // OLED reset pin - pinFan = 1; //Pin for the fan output - pinFuelPump = 0; //Fuel pump output + pinFan = 0; //Pin for the fan output + pinFuelPump = 1; //Fuel pump output pinTachOut = 31; //Tacho output pin //external interrupt enabled pins pinFlex = 32; // Flex sensor (Must be external interrupt enabled) From 3d2a692d536f9bc47cddcce0bd8873b3e497f88a Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Fri, 7 Jul 2017 08:47:42 +1000 Subject: [PATCH 002/133] Change freeRam() to unsigned int --- reference/speeduino.ini | 2 +- speeduino/globals.h | 2 +- speeduino/utils.h | 4 ++-- speeduino/utils.ino | 46 ++++++++++++++++++++--------------------- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 36e71efe..3be4d311 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -2270,7 +2270,7 @@ cmdtestspk450dc = "E\x03\x0C" advance = scalar, S08, 22, "deg", 1.000, 0.000 tps = scalar, U08, 23, "%", 1.000, 0.000 loopsPerSecond = scalar, U16, 24, "loops", 1.000, 0.000 - freeRAM = scalar, S16, 26, "bytes", 1.000, 0.000 + freeRAM = scalar, U16, 26, "bytes", 1.000, 0.000 batCorrection = scalar, U08, 28, "%", 1.000, 0.000 spark = scalar, U08, 29, "bits", 1.000, 0.000 launchHard = bits, U08, 29, [0:0] diff --git a/speeduino/globals.h b/speeduino/globals.h index ec1fecad..98204c29 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -230,7 +230,7 @@ struct statuses { volatile unsigned int loopsPerSecond; boolean launchingSoft; //True when in launch control soft limit mode boolean launchingHard; //True when in launch control hard limit mode - int freeRAM; + uint16_t freeRAM; unsigned int clutchEngagedRPM; bool flatShiftingHard; volatile byte startRevolutions; //A counter for how many revolutions have been completed since sync was achieved. diff --git a/speeduino/utils.h b/speeduino/utils.h index 308a51c1..603782d5 100644 --- a/speeduino/utils.h +++ b/speeduino/utils.h @@ -1,12 +1,12 @@ /* These are some utility functions and variables used through the main code -*/ +*/ #ifndef UTILS_H #define UTILS_H #include -int freeRam (); +uint16_t freeRam (); void setPinMapping(byte boardID); unsigned int PW(); unsigned int PW_SD(); diff --git a/speeduino/utils.ino b/speeduino/utils.ino index c9bf30e5..e1b48536 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -7,15 +7,18 @@ /* Returns how much free dynamic memory exists (between heap and stack) + This function is one big MISRA violation. MISRA advisories forbid directly poking at memory addresses, however there is no other way of determining heap size on embedded systems. */ #include "utils.h" -int freeRam () +uint16_t freeRam () { #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) extern int __heap_start, *__brkval; - int v; - return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); + uint16_t v; + + return (uint16_t) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); + #elif defined(CORE_TEENSY) uint32_t stackTop; uint32_t heapTop; @@ -370,6 +373,7 @@ void setPinMapping(byte boardID) pinFan = 47; //Pin for the fan output pinFuelPump = 4; //Fuel pump output pinTachOut = 49; //Tacho output pin + break; case 30: //Pin mappings as per the dazv6 shield @@ -522,8 +526,7 @@ void setPinMapping(byte boardID) pinMode(pinTrigger2, INPUT); pinMode(pinTrigger3, INPUT); pinMode(pinFlex, INPUT_PULLUP); //Standard GM / Continental flex sensor requires pullup - // pinMode(pinLaunch, INPUT_PULLUP); //This should work for both NO and NC grounding switches - if (configPage3.lnchPullRes) { + if (configPage3.lnchPullRes == true) { pinMode(pinLaunch, INPUT_PULLUP); } else { @@ -565,30 +568,31 @@ unsigned int PW(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen) //100% float free version, does sacrifice a little bit of accuracy, but not much. iVE = ((unsigned int)VE << 7) / 100; - if ( configPage1.multiplyMAP ) { + if ( configPage1.multiplyMAP == true ) { iMAP = ((unsigned int)MAP << 7) / currentStatus.baro; //Include multiply MAP (vs baro) if enabled } - if ( configPage1.includeAFR && (configPage3.egoType == 2)) { + if ( (configPage1.includeAFR == true) && (configPage3.egoType == 2)) { iAFR = ((unsigned int)currentStatus.O2 << 7) / currentStatus.afrTarget; //Include AFR (vs target) if enabled } iCorrections = (corrections << 7) / 100; unsigned long intermediate = ((long)REQ_FUEL * (long)iVE) >> 7; //Need to use an intermediate value to avoid overflowing the long - if ( configPage1.multiplyMAP ) { - intermediate = (intermediate * iMAP) >> 7; + if ( configPage1.multiplyMAP == true ) { + intermediate = (intermediate * (unsigned long)iMAP) >> 7; } - if ( configPage1.includeAFR && (configPage3.egoType == 2)) { - intermediate = (intermediate * iAFR) >> 7; //EGO type must be set to wideband for this to be used + if ( (configPage1.includeAFR == true) && (configPage3.egoType == 2) ) { + intermediate = (intermediate * (unsigned long)iAFR) >> 7; //EGO type must be set to wideband for this to be used } - intermediate = (intermediate * iCorrections) >> 7; - if (intermediate == 0) { - return 0; //If the pulsewidth is 0, we return here before the opening time gets added - } - - intermediate += injOpen; //Add the injector opening time - if ( intermediate > 65535) { - intermediate = 65535; //Make sure this won't overflow when we convert to uInt. This means the maximum pulsewidth possible is 65.535mS + intermediate = (intermediate * (unsigned long)iCorrections) >> 7; + if (intermediate != 0) + { + //If intermeditate is not 0, we need to add the opening time (0 typically indicates that one of the full fuel cuts is active) + intermediate += injOpen; //Add the injector opening time + if ( intermediate > 65535) + { + intermediate = 65535; //Make sure this won't overflow when we convert to uInt. This means the maximum pulsewidth possible is 65.535mS + } } return (unsigned int)(intermediate); @@ -603,9 +607,5 @@ unsigned int PW_SD(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen unsigned int PW_AN(int REQ_FUEL, byte VE, byte TPS, int corrections, int injOpen) { - //Sanity check - if (TPS > 100) { - TPS = 100; - } return PW(REQ_FUEL, VE, currentStatus.MAP, corrections, injOpen); } From 5ddfde074f87989c59679ef38f3c0212beb21a02 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Fri, 7 Jul 2017 08:57:55 +1000 Subject: [PATCH 003/133] Check pin validity individually --- speeduino/utils.ino | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/speeduino/utils.ino b/speeduino/utils.ino index e1b48536..2b0fa151 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -443,18 +443,14 @@ void setPinMapping(byte boardID) break; } - //First time running? - if (configPage3.launchPin < BOARD_NR_GPIO_PINS) - { - //Setup any devices that are using selectable pins - if (configPage3.launchPin != 0) { pinLaunch = configPage3.launchPin; } - if (configPage2.ignBypassPin != 0) { pinIgnBypass = configPage2.ignBypassPin; } - if (configPage1.tachoPin != 0) { pinTachOut = configPage1.tachoPin; } - if (configPage2.fuelPumpPin != 0) { pinFuelPump = configPage2.fuelPumpPin; } - if (configPage4.fanPin != 0) { pinFan = configPage4.fanPin; } - if (configPage3.boostPin != 0) { pinBoost = configPage3.boostPin; } - if (configPage3.vvtPin != 0) { pinVVT_1 = configPage3.vvtPin; } - } + //Setup any devices that are using selectable pins + if ( (configPage3.launchPin != 0) && (configPage3.launchPin < BOARD_NR_GPIO_PINS) ) { pinLaunch = configPage3.launchPin; } + if ( (configPage2.ignBypassPin != 0) && (configPage2.ignBypassPin < BOARD_NR_GPIO_PINS) ) { pinIgnBypass = configPage2.ignBypassPin; } + if ( (configPage1.tachoPin != 0) && (configPage1.tachoPin < BOARD_NR_GPIO_PINS) ) { pinTachOut = configPage1.tachoPin; } + if ( (configPage2.fuelPumpPin != 0) && (configPage2.fuelPumpPin < BOARD_NR_GPIO_PINS) ) { pinFuelPump = configPage2.fuelPumpPin; } + if ( (configPage4.fanPin != 0) && (configPage4.fanPin < BOARD_NR_GPIO_PINS) ) { pinFan = configPage4.fanPin; } + if ( (configPage3.boostPin != 0) && (configPage3.boostPin < BOARD_NR_GPIO_PINS) ) { pinBoost = configPage3.boostPin; } + if ( (configPage3.vvtPin != 0) && (configPage3.vvtPin < BOARD_NR_GPIO_PINS) ) { pinVVT_1 = configPage3.vvtPin; } //Finally, set the relevant pin modes for outputs pinMode(pinCoil1, OUTPUT); From a09c5772ee659845f9226447d0aafd23c8e78618 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Fri, 7 Jul 2017 09:04:45 +1000 Subject: [PATCH 004/133] Add freeRam() function for stm32 --- speeduino/globals.h | 1 + speeduino/utils.ino | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/speeduino/globals.h b/speeduino/globals.h index 98204c29..b1b39687 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -13,6 +13,7 @@ #define CORE_STM32 #define LED_BUILTIN 33 + extern "C" char* sbrk(int incr); //Used to freeRam inline unsigned char digitalPinToInterrupt(unsigned char Interrupt_pin) { return Interrupt_pin; } //This isn't included in the stm32duino libs (yet) #define portOutputRegister(port) (volatile byte *)( &(port->regs->ODR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value #define portInputRegister(port) (volatile byte *)( &(port->regs->IDR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value diff --git a/speeduino/utils.ino b/speeduino/utils.ino index 2b0fa151..f1855e86 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -34,8 +34,9 @@ uint16_t freeRam () // The difference is the free, available ram. return (uint16_t)stackTop - heapTop; #elif defined(CORE_STM32) - //Figure this out some_time - return 0; + char top = 't'; + return &top - reinterpret_cast(sbrk(0)); + #endif } From 7e5fb7bb5c0d9d95588ac211706486d0fb931f94 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Fri, 7 Jul 2017 09:26:08 +1000 Subject: [PATCH 005/133] VR conditioner BOM template updates --- .../VR Conditioner/{ => BOM}/Bom-pcbng.csv | 0 .../{ => BOM}/Bom-seeedstudio.csv | 0 .../BOM/Bom-template-VR_ITEAD.xls | Bin 0 -> 30720 bytes .../VR Conditioner/{ => BOM}/VR_bom.xlsx | Bin 4 files changed, 0 insertions(+), 0 deletions(-) rename reference/hardware/VR Conditioner/{ => BOM}/Bom-pcbng.csv (100%) rename reference/hardware/VR Conditioner/{ => BOM}/Bom-seeedstudio.csv (100%) create mode 100644 reference/hardware/VR Conditioner/BOM/Bom-template-VR_ITEAD.xls rename reference/hardware/VR Conditioner/{ => BOM}/VR_bom.xlsx (100%) diff --git a/reference/hardware/VR Conditioner/Bom-pcbng.csv b/reference/hardware/VR Conditioner/BOM/Bom-pcbng.csv similarity index 100% rename from reference/hardware/VR Conditioner/Bom-pcbng.csv rename to reference/hardware/VR Conditioner/BOM/Bom-pcbng.csv diff --git a/reference/hardware/VR Conditioner/Bom-seeedstudio.csv b/reference/hardware/VR Conditioner/BOM/Bom-seeedstudio.csv similarity index 100% rename from reference/hardware/VR Conditioner/Bom-seeedstudio.csv rename to reference/hardware/VR Conditioner/BOM/Bom-seeedstudio.csv diff --git a/reference/hardware/VR Conditioner/BOM/Bom-template-VR_ITEAD.xls b/reference/hardware/VR Conditioner/BOM/Bom-template-VR_ITEAD.xls new file mode 100644 index 0000000000000000000000000000000000000000..2cc607af9f38f43b680e39eb68e8cc7196496170 GIT binary patch literal 30720 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 LV Date: Mon, 10 Jul 2017 11:56:11 +1000 Subject: [PATCH 006/133] Add updater for CAN variables in this months firmware --- speeduino/updates.ino | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/speeduino/updates.ino b/speeduino/updates.ino index b8044392..0d085f14 100644 --- a/speeduino/updates.ino +++ b/speeduino/updates.ino @@ -8,7 +8,7 @@ void doUpdates() { - #define CURRENT_DATA_VERSION 3 + #define CURRENT_DATA_VERSION 4 //May 2017 firmware introduced a -40 offset on the ignition table. Update that table to +40 if(EEPROM.read(EEPROM_DATA_VERSION) == 2) @@ -23,6 +23,16 @@ void doUpdates() writeConfig(); EEPROM.write(EEPROM_DATA_VERSION, 3); } + //June 2017 required the forced addition of some CAN values to avoid weird errors + if(EEPROM.read(EEPROM_DATA_VERSION) == 3) + { + configPage10.speeduino_tsCanId = 0; + configPage10.true_address = 256; + configPage10.realtime_base_address = 336; + + writeConfig(); + EEPROM.write(EEPROM_DATA_VERSION, 4); + } //Final check is always for 255 and 0 (Brand new arduino) if( (EEPROM.read(EEPROM_DATA_VERSION) == 0) || (EEPROM.read(EEPROM_DATA_VERSION) == 255) ) From a9891ad38c061fe9ecd2cfbe83a9f793ddc25a58 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 10 Jul 2017 11:56:28 +1000 Subject: [PATCH 007/133] Fix name of Lambda entry in the log --- reference/speeduino.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 3be4d311..092380f8 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -2394,7 +2394,7 @@ cmdtestspk450dc = "E\x03\x0C" entry = tpsADC, "tpsADC", int, "%d" entry = tps, "TPS", int, "%d" entry = afr, "O2", float, "%.3f" - entry = lambda, "%", float, "%.3f" + entry = lambda, "Lambda", float, "%.3f" entry = iat, "IAT", int, "%d" entry = coolant, "CLT", int, "%d" entry = engine, "Engine", int, "%d" From b0c6b40ff6f3723f651de562b1ae4969238ff473 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 10 Jul 2017 11:56:49 +1000 Subject: [PATCH 008/133] Error checks on the missing tooth end tooth calculation --- speeduino/decoders.ino | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 37366d8f..c0366568 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -239,8 +239,19 @@ void triggerSetEndTeeth_missingTooth() if(ignition1EndTooth > triggerActualTeeth) { ignition1EndTooth = triggerActualTeeth; } ignition2EndTooth = ( (ignition2EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition2EndTooth > configPage2.triggerTeeth) { ignition2EndTooth -= configPage2.triggerTeeth; } + if(ignition2EndTooth <= 0) { ignition2EndTooth -= configPage2.triggerTeeth; } + if(ignition2EndTooth > triggerActualTeeth) { ignition2EndTooth = triggerActualTeeth; } + ignition3EndTooth = ( (ignition3EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition3EndTooth > configPage2.triggerTeeth) { ignition3EndTooth -= configPage2.triggerTeeth; } + if(ignition3EndTooth <= 0) { ignition3EndTooth -= configPage2.triggerTeeth; } + if(ignition3EndTooth > triggerActualTeeth) { ignition3EndTooth = triggerActualTeeth; } + ignition4EndTooth = ( (ignition4EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition4EndTooth > configPage2.triggerTeeth) { ignition4EndTooth -= configPage2.triggerTeeth; } + if(ignition4EndTooth <= 0) { ignition4EndTooth -= configPage2.triggerTeeth; } + if(ignition4EndTooth > triggerActualTeeth) { ignition4EndTooth = triggerActualTeeth; } } From e5591bc7bc82fd332e305ac38abd45f5d50d8d68 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 11 Jul 2017 16:21:44 +1000 Subject: [PATCH 009/133] June signature and base tune --- reference/Speeduino base tune.msq | 190 +++++++++++++++--------------- reference/speeduino.ini | 4 +- speeduino/comms.ino | 10 +- 3 files changed, 102 insertions(+), 102 deletions(-) diff --git a/reference/Speeduino base tune.msq b/reference/Speeduino base tune.msq index cd4cb17d..c2cd123c 100644 --- a/reference/Speeduino base tune.msq +++ b/reference/Speeduino base tune.msq @@ -1,7 +1,7 @@ - - + + "CAN ID 0" @@ -124,7 +124,7 @@ "No" "No" 1.0 -85.0 +90.0 50.0 150.0 100.0 @@ -214,9 +214,9 @@ "Leading" "Board Default" "No" -25.5 +1.0 3200.0 --5.814 +-21.0 38.0 2.0 "Dwell control" @@ -247,17 +247,17 @@ 74.0 85.0 - - -40.014 - -14.814 - 17.586 - 48.186 - 78.786 - 100.386 - 120.186 - 139.986 - 156.186 - 175.986 + + -40.0 + -26.0 + -8.0 + 9.0 + 26.0 + 38.0 + 49.0 + 60.0 + 69.0 + 80.0 8.0 @@ -268,13 +268,13 @@ 91.0 85.0 - - 136.386 - 179.586 - 199.386 - 219.186 - 240.786 - 283.986 + + 58.0 + 82.0 + 93.0 + 104.0 + 116.0 + 140.0 0.0 @@ -356,7 +356,7 @@ 100.0 20.0 0.0 -157.986 +70.0 16.0 1.0 15.0 @@ -387,16 +387,16 @@ 100.0 98.0 - - -40.014 - -4.014 - 31.986 - 67.986 - 94.986 - 121.986 - 139.986 - 193.986 - 247.986 + + -40.0 + -20.0 + 0.0 + 20.0 + 35.0 + 50.0 + 60.0 + 90.0 + 120.0 126.0 @@ -474,17 +474,17 @@ 16.0 9.0 - - -36.414 - -2.214 - 33.786 - 62.586 - 93.186 - 121.986 - 145.386 - 174.186 - 208.386 - 289.386 + + -38.0 + -19.0 + 1.0 + 17.0 + 34.0 + 50.0 + 63.0 + 79.0 + 98.0 + 143.0 123.0 @@ -498,30 +498,30 @@ 44.0 60.0 - - -18.414 - 42.786 - 111.186 - 168.786 + + -28.0 + 6.0 + 44.0 + 76.0 "None" "3" "1" "Normal" -67.986 +20.0 240.0 4.0 "No" "Off" "Board Default" -166.986 -36.0 +75.0 +2.0 6.0 - - 139.986 - -4.014 - -40.014 - 316.386 + + 60.0 + -20.0 + -40.0 + 158.0 @@ -686,16 +686,16 @@ "Disable" -"Off" +"On" "Off" -"Off" -"Off" -"Off" -"Off" -"Off" -"Off" -"Off" -"Off" +"On" +"On" +"On" +"On" +"On" +"On" +"On" +"On" "Off" "Off" "Off" @@ -703,22 +703,22 @@ "Off" "Off" "Off" -"0x200" -"0x200" -"0x200" -"0x200" -"0x200" -"0x200" -"0x200" -"0x200" -"0x200" -"0x200" -"0x200" -"0x200" -"0x200" -"0x200" -"0x200" -"0x200" +"blank" +"blank" +"blank" +"blank" +"blank" +"blank" +"blank" +"blank" +"blank" +"blank" +"blank" +"blank" +"blank" +"blank" +"blank" +"blank" "7" "0" "0" @@ -728,13 +728,13 @@ "0" "0" "0" -"0" -"0" -"0" -"0" -"0" -"0" -"0" +"7" +"7" +"7" +"7" +"7" +"7" +"7" "1" "1" "1" @@ -785,9 +785,9 @@ 255.0 255.0 "CAN ID 0" -"0x100" -"0x150" -"0x7FF" +"0x101" +"0x201" +"0x2FF" 255.0 255.0 255.0 @@ -812,9 +812,9 @@ - - + + diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 092380f8..56c9a685 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -7,7 +7,7 @@ queryCommand = "Q" ;signature = 20 - signature = "speeduino 201706-dev" + signature = "speeduino 201706" versionInfo = "S" ; Put this in the title bar. ;[TunerStudio] @@ -122,7 +122,7 @@ #define PIN_OUT16inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" #define tsCanId_list = "CAN ID 0", "CAN ID 1", "CAN ID 2", "CAN ID 3", "CAN ID 4", "CAN ID 5", "CAN ID 6", "CAN ID 7", "CAN ID 8", "CAN ID 9", "CAN ID 10","CAN ID 11","CAN ID 12","CAN ID 13","CAN ID 14","INVALID" - #define CAN_ADDRESS_HEX_inv255 = $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT10inv, "INVALID", "INVALID", "INVALID", "INVALID", "blank" + #define CAN_ADDRESS_HEX_inv255 = $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT10inv, "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "blank" #define CAN_ADDRESS_HEX_00XX = "INVALID", "0x001", "0x002", "0x003", "0x004", "0x005", "0x006", "0x007", "0x008", "0x009", "0x00A", "0x00B", "0x00C", "0x00D", "0x00E", "0x00F", "0x010", "0x011", "0x012", "0x013", "0x014", "0x015", "0x016", "0x017", "0x018", "0x019", "0x01A", "0x01B", "0x01C", "0x01D", "0x01E", "0x01F", "0x020", "0x021", "0x022", "0x023", "0x024", "0x025", "0x026", "0x027", "0x028", "0x029", "0x02A", "0x02B", "0x02C", "0x02D", "0x02E", "0x02F", "0x030", "0x031", "0x032", "0x033", "0x034", "0x035", "0x036", "0x037", "0x038", "0x039", "0x03A", "0x03B", "0x03C", "0x03D", "0x03E", "0x03F", "0x040", "0x041", "0x042", "0x043", "0x044", "0x045", "0x046", "0x047", "0x048", "0x049", "0x04A", "0x04B", "0x04C", "0x04D", "0x04E", "0x04F", "0x050", "0x051", "0x052", "0x053", "0x054", "0x055", "0x056", "0x057", "0x058", "0x059", "0x05A", "0x05B", "0x05C", "0x05D", "0x05E", "0x05F" ,"0x060", "0x061", "0x062", "0x063", "0x064", "0x065", "0x066", "0x067", "0x068", "0x069", "0x06A", "0x06B", "0x06C", "0x06D", "0x06E", "0x06F", "0x070", "0x071", "0x072", "0x073", "0x074", "0x075", "0x076", "0x077", "0x078", "0x079", "0x07A", "0x07B", "0x07C", "0x07D", "0x07E", "0x07F", "0x080", "0x081", "0x082", "0x083", "0x084", "0x085", "0x086", "0x087", "0x088", "0x089", "0x08A", "0x08B", "0x08C", "0x08D", "0x08E", "0x08F" ,"0x090", "0x091", "0x092", "0x093", "0x094", "0x095", "0x096", "0x097", "0x098", "0x099", "0x09A", "0x09B", "0x09C", "0x09D", "0x09E", "0x09F", "0x0A0", "0x0A1", "0x0A2", "0x0A3", "0x0A4", "0x0A5", "0x0A6", "0x0A7", "0x0A8", "0x0A9", "0x0AA", "0x0AB", "0x0AC", "0x0AD", "0x0AE", "0x0AF", "0x0B0", "0x0B1", "0x0B2", "0x0B3", "0x0B4", "0x0B5", "0x0B6", "0x0B7", "0x0B8", "0x0B9", "0x0BA", "0x0BB", "0x0BC", "0x0BD", "0x0BE", "0x0BF" ,"0x0C0", "0x0C1", "0x0C2", "0x0C3", "0x0C4", "0x0C5", "0x0C6", "0x0C7", "0x0C8", "0x0C9", "0x0CA", "0x0CB", "0x0CC", "0x0CD", "0x0CE", "0x0CF", "0x0D0", "0x0D1", "0x0D2", "0x0D3", "0x0D4", "0x0D5", "0x0D6", "0x0D7", "0x0D8", "0x0D9", "0x0DA", "0x0DB", "0x0DC", "0x0DD", "0x0DE", "0x0DF", "0x0E0", "0x0E1", "0x0E2", "0x0E3", "0x0E4", "0x0E5", "0x0E6", "0x0E7", "0x0E8", "0x0E9", "0x0EA", "0x0EB", "0x0EC", "0x0ED", "0x0EE", "0x0EF" ,"0x0F0", "0x0F1", "0x0F2", "0x0F3", "0x0F4", "0x0F5", "0x0F6", "0x0F7", "0x0F8", "0x0F9", "0x0FA", "0x0FB", "0x0FC", "0x0FD", "0x0FE", "0x0FF" #define CAN_ADDRESS_HEX_01XX = "0x100", "0x101", "0x102", "0x103", "0x104", "0x105", "0x106", "0x107", "0x108", "0x109", "0x10A", "0x10B", "0x10C", "0x10D", "0x10E", "0x10F", "0x110", "0x111", "0x112", "0x113", "0x114", "0x115", "0x116", "0x117", "0x118", "0x119", "0x11A", "0x11B", "0x11C", "0x11D", "0x11E", "0x11F", "0x120", "0x121", "0x122", "0x123", "0x124", "0x125", "0x126", "0x127", "0x128", "0x129", "0x12A", "0x12B", "0x12C", "0x12D", "0x12E", "0x12F", "0x130", "0x131", "0x132", "0x133", "0x134", "0x135", "0x136", "0x137", "0x138", "0x139", "0x13A", "0x13B", "0x13C", "0x13D", "0x13E", "0x13F", "0x140", "0x141", "0x142", "0x143", "0x144", "0x145", "0x146", "0x147", "0x148", "0x149", "0x14A", "0x14B", "0x14C", "0x14D", "0x14E", "0x14F", "0x150", "0x151", "0x152", "0x153", "0x154", "0x155", "0x156", "0x157", "0x158", "0x159", "0x15A", "0x15B", "0x15C", "0x15D", "0x15E", "0x15F" ,"0x160", "0x161", "0x162", "0x163", "0x164", "0x165", "0x166", "0x167", "0x168", "0x169", "0x16A", "0x16B", "0x16C", "0x16D", "0x16E", "0x16F", "0x170", "0x171", "0x172", "0x173", "0x174", "0x175", "0x176", "0x177", "0x178", "0x179", "0x17A", "0x17B", "0x17C", "0x17D", "0x17E", "0x17F", "0x180", "0x181", "0x182", "0x183", "0x184", "0x185", "0x186", "0x187", "0x188", "0x189", "0x18A", "0x18B", "0x18C", "0x18D", "0x18E", "0x18F" ,"0x190", "0x191", "0x192", "0x193", "0x194", "0x195", "0x196", "0x197", "0x198", "0x199", "0x19A", "0x19B", "0x19C", "0x19D", "0x19E", "0x19F", "0x1A0", "0x1A1", "0x1A2", "0x1A3", "0x1A4", "0x1A5", "0x1A6", "0x1A7", "0x1A8", "0x1A9", "0x1AA", "0x1AB", "0x1AC", "0x1AD", "0x1AE", "0x1AF", "0x1B0", "0x1B1", "0x1B2", "0x1B3", "0x1B4", "0x1B5", "0x1B6", "0x1B7", "0x1B8", "0x1B9", "0x1BA", "0x1BB", "0x1BC", "0x1BD", "0x1BE", "0x1BF" ,"0x1C0", "0x1C1", "0x1C2", "0x1C3", "0x1C4", "0x1C5", "0x1C6", "0x1C7", "0x1C8", "0x1C9", "0x1CA", "0x1CB", "0x1CC", "0x1CD", "0x1CE", "0x1CF", "0x1D0", "0x1D1", "0x1D2", "0x1D3", "0x1D4", "0x1D5", "0x1D6", "0x1D7", "0x1D8", "0x1D9", "0x1DA", "0x1DB", "0x1DC", "0x1DD", "0x1DE", "0x1DF", "0x1E0", "0x1E1", "0x1E2", "0x1E3", "0x1E4", "0x1E5", "0x1E6", "0x1E7", "0x1E8", "0x1E9", "0x1EA", "0x1EB", "0x1EC", "0x1ED", "0x1EE", "0x1EF" ,"0x1F0", "0x1F1", "0x1F2", "0x1F3", "0x1F4", "0x1F5", "0x1F6", "0x1F7", "0x1F8", "0x1F9", "0x1FA", "0x1FB", "0x1FC", "0x1FD", "0x1FE", "0x1FF" #define CAN_ADDRESS_HEX_02XX = "0x200", "0x201", "0x202", "0x203", "0x204", "0x205", "0x206", "0x207", "0x208", "0x209", "0x20A", "0x20B", "0x20C", "0x20D", "0x20E", "0x20F", "0x210", "0x211", "0x212", "0x213", "0x214", "0x215", "0x216", "0x217", "0x218", "0x219", "0x21A", "0x21B", "0x21C", "0x21D", "0x21E", "0x21F", "0x220", "0x221", "0x222", "0x223", "0x224", "0x225", "0x226", "0x227", "0x228", "0x229", "0x22A", "0x22B", "0x22C", "0x22D", "0x22E", "0x22F", "0x230", "0x231", "0x232", "0x233", "0x234", "0x235", "0x236", "0x237", "0x238", "0x239", "0x23A", "0x23B", "0x23C", "0x23D", "0x23E", "0x23F", "0x240", "0x241", "0x242", "0x243", "0x244", "0x245", "0x246", "0x247", "0x248", "0x249", "0x24A", "0x24B", "0x24C", "0x24D", "0x24E", "0x24F", "0x250", "0x251", "0x252", "0x253", "0x254", "0x255", "0x256", "0x257", "0x258", "0x259", "0x25A", "0x25B", "0x25C", "0x25D", "0x25E", "0x25F" ,"0x260", "0x261", "0x262", "0x263", "0x264", "0x265", "0x266", "0x267", "0x268", "0x269", "0x26A", "0x26B", "0x26C", "0x26D", "0x26E", "0x26F", "0x270", "0x271", "0x272", "0x273", "0x274", "0x275", "0x276", "0x277", "0x278", "0x279", "0x27A", "0x27B", "0x27C", "0x27D", "0x27E", "0x27F", "0x280", "0x281", "0x282", "0x283", "0x284", "0x285", "0x286", "0x287", "0x288", "0x289", "0x28A", "0x28B", "0x28C", "0x28D", "0x28E", "0x28F" ,"0x290", "0x291", "0x292", "0x293", "0x294", "0x295", "0x296", "0x297", "0x298", "0x299", "0x29A", "0x29B", "0x29C", "0x29D", "0x29E", "0x29F", "0x2A0", "0x2A1", "0x2A2", "0x2A3", "0x2A4", "0x2A5", "0x2A6", "0x2A7", "0x2A8", "0x2A9", "0x2AA", "0x2AB", "0x2AC", "0x2AD", "0x2AE", "0x2AF", "0x2B0", "0x2B1", "0x2B2", "0x2B3", "0x2B4", "0x2B5", "0x2B6", "0x2B7", "0x2B8", "0x2B9", "0x2BA", "0x2BB", "0x2BC", "0x2BD", "0x2BE", "0x2BF" ,"0x2C0", "0x2C1", "0x2C2", "0x2C3", "0x2C4", "0x2C5", "0x2C6", "0x2C7", "0x2C8", "0x2C9", "0x2CA", "0x2CB", "0x2CC", "0x2CD", "0x2CE", "0x2CF", "0x2D0", "0x2D1", "0x2D2", "0x2D3", "0x2D4", "0x2D5", "0x2D6", "0x2D7", "0x2D8", "0x2D9", "0x2DA", "0x2DB", "0x2DC", "0x2DD", "0x2DE", "0x2DF", "0x2E0", "0x2E1", "0x2E2", "0x2E3", "0x2E4", "0x2E5", "0x2E6", "0x2E7", "0x2E8", "0x2E9", "0x2EA", "0x2EB", "0x2EC", "0x2ED", "0x2EE", "0x2EF" ,"0x2F0", "0x2F1", "0x2F2", "0x2F3", "0x2F4", "0x2F5", "0x2F6", "0x2F7", "0x2F8", "0x2F9", "0x2FA", "0x2FB", "0x2FC", "0x2FD", "0x2FE", "0x2FF" diff --git a/speeduino/comms.ino b/speeduino/comms.ino index d9b19685..5f7f6fdd 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -80,12 +80,12 @@ void command() break; case 'S': // send code version - Serial.print("Speeduino 2017.06-dev"); + Serial.print("Speeduino 2017.06"); currentStatus.secl = 0; //This is required in TS3 due to its stricter timings break; case 'Q': // send code version - Serial.print("speeduino 201706-dev"); + Serial.print("speeduino 201706"); break; case 'V': // send VE table and constants in binary @@ -258,8 +258,8 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte cmd, byte portNum) } else { - CANSerial.write("r"); //confirm cmd type - CANSerial.write(cmd); + CANSerial.write("r"); //confirm cmd type + CANSerial.write(cmd); } #endif } @@ -352,7 +352,7 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte cmd, byte portNum) fullStatus[70] = highByte(currentStatus.canin[14]); fullStatus[71] = lowByte(currentStatus.canin[15]); fullStatus[72] = highByte(currentStatus.canin[15]); - + for(byte x=0; x Date: Tue, 11 Jul 2017 16:27:05 +1000 Subject: [PATCH 010/133] Fix for bad base tune value --- speeduino/updates.ino | 3 +++ 1 file changed, 3 insertions(+) diff --git a/speeduino/updates.ino b/speeduino/updates.ino index 0d085f14..96ddee79 100644 --- a/speeduino/updates.ino +++ b/speeduino/updates.ino @@ -30,6 +30,9 @@ void doUpdates() configPage10.true_address = 256; configPage10.realtime_base_address = 336; + //There was a bad value in the May base tune for the spark duration setting, fix it here if it's a problem + if(configPage2.sparkDur == 255) { configPage2.sparkDur = 10; } + writeConfig(); EEPROM.write(EEPROM_DATA_VERSION, 4); } From 9c6acabb65cb1f66de57cbdf19f39e228acd08e9 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 11 Jul 2017 20:12:13 +1000 Subject: [PATCH 011/133] Add missing break into 2D table lookups --- speeduino/table.ino | 2 ++ 1 file changed, 2 insertions(+) diff --git a/speeduino/table.ino b/speeduino/table.ino index 29857dcf..0ba38659 100644 --- a/speeduino/table.ino +++ b/speeduino/table.ino @@ -103,6 +103,7 @@ int table2D_getValue(struct table2D *fromTable, int X_in) { returnValue = fromTable->values[x]; //Simply return the coresponding value valueFound = true; + break; } else { @@ -143,6 +144,7 @@ int table2D_getValue(struct table2D *fromTable, int X_in) { returnValue = fromTable->values16[x]; //Simply return the coresponding value valueFound = true; + break; } else { From 3b99e85775f4a7a06c4f89ffa093dcffbc4c2768 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sat, 15 Jul 2017 10:31:45 +1000 Subject: [PATCH 012/133] Revert one the the MISRA changes due to bug in 3D lookup --- speeduino/table.ino | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/speeduino/table.ino b/speeduino/table.ino index 0ba38659..6c9efe05 100644 --- a/speeduino/table.ino +++ b/speeduino/table.ino @@ -376,13 +376,25 @@ int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) //Initial check incase the values were hit straight on + /* long p = (long)X - xMinValue; if (xMaxValue == xMinValue) { p = (p << 8); } //This only occurs if the requested X value was equal to one of the X axis bins else { p = ( (p << 8) / (xMaxValue - xMinValue) ); } //This is the standard case + */ + long p; + if (xMaxValue == xMinValue) { p = ((long)(X - xMinValue) << 8); } //This only occurs if the requested X value was equal to one of the X axis bins + else { p = ((long)(X - xMinValue) << 8) / (xMaxValue - xMinValue); } //This is the standard case + + /* long q = (long)Y - yMinValue; if (yMaxValue == yMinValue) { q = (q << 8); } else { q = 256 - ( (q << 8) / (yMinValue - yMaxValue) ); } + */ + + long q; + if (yMaxValue == yMinValue) { q = ((long)(Y - yMinValue) << 8); } + else { q = 256 - (((long)(Y - yMaxValue) << 8) / (yMinValue - yMaxValue)); } int m = ((256-p) * (256-q)) >> 8; int n = (p * (256-q)) >> 8; From 905a8642ff98e8ff75d6dabe47369804b3649ea3 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 17 Jul 2017 16:36:44 +1000 Subject: [PATCH 013/133] July dev signature --- reference/speeduino.ini | 17 +++++++++++------ speeduino/comms.ino | 4 ++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 56c9a685..fe02bacb 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -7,7 +7,7 @@ queryCommand = "Q" ;signature = 20 - signature = "speeduino 201706" + signature = "speeduino 201707-dev" versionInfo = "S" ; Put this in the title bar. ;[TunerStudio] @@ -429,10 +429,9 @@ page = 6 lnchPullRes = bits, U08, 60, [0:1], "Float" , "Pullup", "INVALID", "INVALID" fuelTrimEnabled= bits, U08, 60, [2:2], "No", "Yes" flatSEnable = bits, U08, 60, [3:3], "No", "Yes" - unused6-60e = bits, U08, 60, [4:4], "ONE", "INVALID" - unused6-60f = bits, U08, 60, [5:5], "ONE", "INVALID" - unused6-60g = bits, U08, 60, [6:6], "ONE", "INVALID" - unused6-60h = bits, U08, 60, [7:7], "ONE", "INVALID" +; Baro Sensor + useExtBaro = bits, U08, 60, [4:4], "No", "Yes" + baroPin = bits, U08, 60, [5:7], "ONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ; Flat shift flatSSoftWin = scalar, U08, 61, "rpm", 100, 0.0, 100, 25500, 0 @@ -956,6 +955,7 @@ menuDialog = main multiplyMAP = "If enabled, the MAP reading is included directly into the pulsewidth calculation. This results in a flatter VE table that can be easier to tune in some instances. VE table must be retuned when this value is changed." includeAFR = "When enabled, the current AFR reading is incorporated directly in the pulsewidth calculation as a percentage of the current target ratio. VE table must be retuned when this value is changed. " + useExtBaro = "By Default, Speeduino will measure barometric pressure upon startup. Optionally however, a 2nd pressure sensor can be used to perform live barometric readings whilst the system is on." flexEnabled = "Turns on readings from the Flex sensor and enables the below adjustments" flexFreqLow = "The frequency of the sensor at 0% ethanol (50Hz for standard GM/Continental sensor)" @@ -1381,7 +1381,7 @@ menuDialog = main dialog = mapCal, "Calibrate MAP" field = "#MAP Sensor" - settingSelector = "Common MAP Sensors" + settingSelector = "Common Pressure Sensors" settingOption = "MPX4115", mapMin=10, mapMax=122 settingOption = "MPX4250", mapMin=10, mapMax=260 settingOption = "GM 1-BAR", mapMin=10, mapMax=105 @@ -1396,6 +1396,11 @@ menuDialog = main field = "Value At 0.0 Volts", mapMin field = "Value At 5.0 Volts", mapMax + field = "#Baro Sensor" + field = "Use external Baro sensor", useExtBaro + field = "Analog pin to use for ext. Baro sensor", baroPin + + dialog = boostSettings, "Boost Control" topicHelp = "http://speeduino.com/wiki/index.php/Boost_Control" field = "Boost Control Enabled", boostEnabled diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 5f7f6fdd..3b5d5ca7 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -80,12 +80,12 @@ void command() break; case 'S': // send code version - Serial.print("Speeduino 2017.06"); + Serial.print("Speeduino 2017.07-dev"); currentStatus.secl = 0; //This is required in TS3 due to its stricter timings break; case 'Q': // send code version - Serial.print("speeduino 201706"); + Serial.print("speeduino 201707-dev"); break; case 'V': // send VE table and constants in binary From 9d2e938a4dfbd974ecdc726674dc83107fd8132b Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 17 Jul 2017 17:06:14 +1000 Subject: [PATCH 014/133] Initial (mostly untested) live baro reading --- reference/speeduino.ini | 13 +++++++------ speeduino/globals.h | 9 ++++++--- speeduino/sensors.h | 1 + speeduino/sensors.ino | 19 +++++++++++++++++++ speeduino/speeduino.ino | 37 ++++++++++++++++++++++++++----------- speeduino/utils.ino | 3 +++ 6 files changed, 62 insertions(+), 20 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index fe02bacb..443c671e 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -370,7 +370,7 @@ page = 6 egoType = bits , U08, 0, [2:3], "Disabled", "Narrow Band", "Wide Band", "INVALID" ; egoOption boostEnabled= bits, U08, 0, [4:4], "Off", "On" vvtEnabled = bits, U08, 0, [5:5], "Off", "On" - boostCutType= bits, U08, 0, [6:7], "Off", "Spark Only", "Fuel Only","Both" + boostCutType= bits, U08, 0, [6:7], "Off", "Spark Only", "Fuel Only","Both" egoKP = scalar, U08, 1, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) egoKI = scalar, U08, 2, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) @@ -389,7 +389,7 @@ page = 6 egoRPM = scalar, U08, 11, "rpm", 100, 0.0, 100, 25500, 0 egoTPSMax = scalar, U08, 12, "%", 1, 0, 0, 120, 0 vvtPin = bits , U08, 13, [0:5], "Board Default", "INVALID", "INVALID", "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" - unused6-13e = bits, U08, 13, [6:6], "ONE", "INVALID" + useExtBaro = bits, U08, 13, [6:6], "No", "Yes" unused6-13f = bits, U08, 13, [7:7], "ONE", "INVALID" boostPin = bits, U08, 14, [0:5], "Board Default", "INVALID", "INVALID", "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" unused6-14e = bits, U08, 14, [6:6], "ONE", "INVALID" @@ -429,9 +429,8 @@ page = 6 lnchPullRes = bits, U08, 60, [0:1], "Float" , "Pullup", "INVALID", "INVALID" fuelTrimEnabled= bits, U08, 60, [2:2], "No", "Yes" flatSEnable = bits, U08, 60, [3:3], "No", "Yes" -; Baro Sensor - useExtBaro = bits, U08, 60, [4:4], "No", "Yes" - baroPin = bits, U08, 60, [5:7], "ONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +; Baro Sensor pin + baroPin = bits, U08, 60, [4:7], "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A8", "A10", "A11", "A12", "A13", "A14", "A15" ; Flat shift flatSSoftWin = scalar, U08, 61, "rpm", 100, 0.0, 100, 25500, 0 @@ -723,6 +722,8 @@ page = 10 requiresPowerCycle = iacCLmaxDuty requiresPowerCycle = boostMinDuty requiresPowerCycle = boostMaxDuty + requiresPowerCycle = useExtBaro + requiresPowerCycle = baroPin defaultValue = pinLayout, 1 defaultValue = TrigPattern, 0 @@ -1398,7 +1399,7 @@ menuDialog = main field = "#Baro Sensor" field = "Use external Baro sensor", useExtBaro - field = "Analog pin to use for ext. Baro sensor", baroPin + field = "Analog pin to use for ext. Baro sensor", baroPin, { useExtBaro } dialog = boostSettings, "Boost Control" diff --git a/speeduino/globals.h b/speeduino/globals.h index b1b39687..55a3b45f 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -181,8 +181,9 @@ struct statuses { uint16_t RPM; long longRPM; int mapADC; + int baroADC; long MAP; //Has to be a long for PID calcs (Boost control) - byte baro; //Barometric pressure is simply the inital MAP reading, taken before the engine is running + byte baro; //Barometric pressure is simply the inital MAP reading, taken before the engine is running. Alternatively, can be taken from an external sensor byte TPS; //The current TPS reading (0% - 100%) byte TPSlast; //The previous TPS reading unsigned long TPS_time; //The time the TPS sample was taken @@ -432,7 +433,8 @@ struct config3 { byte egoRPM; //RPM must be above this for closed loop to function byte egoTPSMax; //TPS must be below this for closed loop to function byte vvtPin : 6; - byte unused6_13 : 2; + byte useExtBaro : 1; + byte unused6_13f : 1; byte boostPin : 6; byte unused6_14 : 2; byte voltageCorrectionBins[6]; //X axis bins for voltage correction tables @@ -465,7 +467,7 @@ struct config3 { byte lnchPullRes : 2; byte fuelTrimEnabled : 1; byte flatSEnable : 1; - byte unused60 : 4; + byte baroPin : 4; byte flatSSoftWin; byte flatSRetard; byte flatSArm; @@ -620,6 +622,7 @@ byte pinStepperEnable; //Turning the DRV8825 driver on/off byte pinLaunch; byte pinIgnBypass; //The pin used for an ignition bypass (Optional) byte pinFlex; //Pin with the flex sensor attached +byte pinBaro; //Pin that an external barometric pressure sensor is attached to (If used) // global variables // from speeduino.ino extern struct statuses currentStatus; // from speeduino.ino diff --git a/speeduino/sensors.h b/speeduino/sensors.h index 23884e8b..a1c6ef92 100644 --- a/speeduino/sensors.h +++ b/speeduino/sensors.h @@ -12,6 +12,7 @@ #define ADCFILTER_O2 128 #define ADCFILTER_BAT 128 #define ADCFILTER_MAP 20 //This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response +#define ADCFILTER_BARO 64 #define BARO_MIN 87 #define BARO_MAX 108 diff --git a/speeduino/sensors.ino b/speeduino/sensors.ino index fc9bffec..96fcec8c 100644 --- a/speeduino/sensors.ino +++ b/speeduino/sensors.ino @@ -202,6 +202,25 @@ void readIAT() currentStatus.IAT = iatCalibrationTable[currentStatus.iatADC] - CALIBRATION_TEMPERATURE_OFFSET; } +void readBaro() +{ + if ( configPage3.useExtBaro != 0 ) + { + int tempReading; + // readings + #if defined(ANALOG_ISR_MAP) + tempReading = AnChannel[pinBaro-A0]; + #else + tempReading = analogRead(pinBaro); + tempReading = analogRead(pinBaro); + #endif + + currentStatus.baroADC = ADC_FILTER(tempReading, ADCFILTER_BARO, currentStatus.baroADC); //Very weak filter + + currentStatus.baro = fastMap1023toX(currentStatus.baroADC, configPage1.mapMax); //Get the current MAP value + } +} + void readO2() { unsigned int tempReading; diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 4667c190..bc8f61cd 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -228,22 +228,31 @@ void setup() //Lookup the current MAP reading for barometric pressure readMAP(); - /* - * The highest sea-level pressure on Earth occurs in Siberia, where the Siberian High often attains a sea-level pressure above 105 kPa; - * with record highs close to 108.5 kPa. - * The lowest measurable sea-level pressure is found at the centers of tropical cyclones and tornadoes, with a record low of 87 kPa; - */ - if ((currentStatus.MAP >= BARO_MIN) && (currentStatus.MAP <= BARO_MAX)) //Check if engine isn't running + //barometric reading can be taken from either an external sensor if enabled, or simply by using the initial MAP value + if ( configPage3.useExtBaro != 0 ) { - currentStatus.baro = currentStatus.MAP; + readBaro(); EEPROM.update(EEPROM_LAST_BARO, currentStatus.baro); } else { - //Attempt to use the last known good baro reading from EEPROM - if ((EEPROM.read(EEPROM_LAST_BARO) >= BARO_MIN) && (EEPROM.read(EEPROM_LAST_BARO) <= BARO_MAX)) //Make sure it's not invalid (Possible on first run etc) - { currentStatus.baro = EEPROM.read(EEPROM_LAST_BARO); } //last baro correction - else { currentStatus.baro = 100; } //Final fall back position. + /* + * The highest sea-level pressure on Earth occurs in Siberia, where the Siberian High often attains a sea-level pressure above 105 kPa; + * with record highs close to 108.5 kPa. + * The lowest measurable sea-level pressure is found at the centers of tropical cyclones and tornadoes, with a record low of 87 kPa; + */ + if ((currentStatus.MAP >= BARO_MIN) && (currentStatus.MAP <= BARO_MAX)) //Check if engine isn't running + { + currentStatus.baro = currentStatus.MAP; + EEPROM.update(EEPROM_LAST_BARO, currentStatus.baro); + } + else + { + //Attempt to use the last known good baro reading from EEPROM + if ((EEPROM.read(EEPROM_LAST_BARO) >= BARO_MIN) && (EEPROM.read(EEPROM_LAST_BARO) <= BARO_MAX)) //Make sure it's not invalid (Possible on first run etc) + { currentStatus.baro = EEPROM.read(EEPROM_LAST_BARO); } //last baro correction + else { currentStatus.baro = 100; } //Final fall back position. + } } //Perform all initialisations @@ -1077,6 +1086,12 @@ void loop() vvtControl(); idleControl(); //Perform any idle related actions. Even at higher frequencies, running 4x per second is sufficient. } + if ((mainLoopCount & 1023) == 1) //Every 1024 loops + { + //Approx. once per second + readBaro(); + } + if(configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL || configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL) { idleControl(); } //Run idlecontrol every loop for stepper idle. //Always check for sync diff --git a/speeduino/utils.ino b/speeduino/utils.ino index f1855e86..7fb67e55 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -452,6 +452,7 @@ void setPinMapping(byte boardID) if ( (configPage4.fanPin != 0) && (configPage4.fanPin < BOARD_NR_GPIO_PINS) ) { pinFan = configPage4.fanPin; } if ( (configPage3.boostPin != 0) && (configPage3.boostPin < BOARD_NR_GPIO_PINS) ) { pinBoost = configPage3.boostPin; } if ( (configPage3.vvtPin != 0) && (configPage3.vvtPin < BOARD_NR_GPIO_PINS) ) { pinVVT_1 = configPage3.vvtPin; } + if ( (configPage3.useExtBaro != 0) ) { pinBaro = configPage3.baroPin + A0; } //Finally, set the relevant pin modes for outputs pinMode(pinCoil1, OUTPUT); @@ -510,6 +511,7 @@ void setPinMapping(byte boardID) pinMode(pinIAT, INPUT_ANALOG); pinMode(pinCLT, INPUT_ANALOG); pinMode(pinBat, INPUT_ANALOG); + pinMode(pinBaro, INPUT_ANALOG); #else pinMode(pinMAP, INPUT); pinMode(pinO2, INPUT); @@ -518,6 +520,7 @@ void setPinMapping(byte boardID) pinMode(pinIAT, INPUT); pinMode(pinCLT, INPUT); pinMode(pinBat, INPUT); + pinMode(pinBaro, INPUT); #endif pinMode(pinTrigger, INPUT); pinMode(pinTrigger2, INPUT); From c570e6de7881f945f3822c22f9f95fa04914ca28 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 18 Jul 2017 09:55:31 +1000 Subject: [PATCH 015/133] Correct revolutionTime variable on Basic Distributor to allow dwell limiter to function --- speeduino/decoders.ino | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index c0366568..0930cd33 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -436,7 +436,10 @@ uint16_t getRPM_BasicDistributor() if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) ) { tempRPM = crankingGetRPM(triggerActualTeeth >> 1); } //crankGetRPM uses teeth per 360 degrees. As triggerActualTeeh is total teeth in 720 degrees, we divide the tooth count by 2 else - { tempRPM = stdGetRPM() << 1; } //Multiply RPM by 2 due to tracking over 720 degrees now rather than 360 + { + tempRPM = stdGetRPM() << 1; + revolutionTime = revolutionTime >> 1; //Revolution time has to be divided by 2 as otherwise it would be over 720 degrees (triggerActualTeeth = nCylinders) + } //Multiply RPM by 2 due to tracking over 720 degrees now rather than 360 return tempRPM; From 4d8ca38a056c5801cf0b7a111cdbde9a30470dbe Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 18 Jul 2017 14:05:26 +1000 Subject: [PATCH 016/133] Small improvements to the TPSdot calc --- speeduino/corrections.ino | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/speeduino/corrections.ino b/speeduino/corrections.ino index b9fd9ee9..96a0c609 100644 --- a/speeduino/corrections.ino +++ b/speeduino/corrections.ino @@ -152,12 +152,13 @@ static inline byte correctionAccel() if( BIT_CHECK(currentStatus.engine, BIT_ENGINE_ACC) ) { //If it is currently running, check whether it should still be running or whether it's reached it's end time - if( currentLoopTime >= currentStatus.TAEEndTime ) + if( micros() >= currentStatus.TAEEndTime ) { //Time to turn enrichment off BIT_CLEAR(currentStatus.engine, BIT_ENGINE_ACC); currentStatus.TAEamount = 0; accelValue = 100; + currentStatus.tpsDOT = 0; } else { @@ -173,6 +174,7 @@ static inline byte correctionAccel() if (TPS_change <= 2) { accelValue = 100; + currentStatus.tpsDOT = 0; } else { From ccb6e194b7e5bdc7cdc565509c2a27878e76a0d5 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 20 Jul 2017 16:54:50 +1000 Subject: [PATCH 017/133] Initial work creating a new memory page (pg 11) --- reference/speeduino.ini | 4 +-- speeduino/globals.h | 63 ++++++++++++++++++++++++++++++++++++++++- speeduino/speeduino.ino | 7 ++++- speeduino/storage.h | 5 +++- speeduino/storage.ino | 21 +++++++++++++- 5 files changed, 94 insertions(+), 6 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 443c671e..7b9ab2a4 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -99,7 +99,7 @@ endianness = little nPages = 10 burnCommand = "B" - pageSize = 288, 64, 288, 64, 288, 64, 64, 160, 192, 128 + pageSize = 288, 64, 288, 64, 288, 64, 64, 160, 192, 128, 192 ; pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A" pageActivationDelay = 10 pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012" @@ -1307,7 +1307,7 @@ menuDialog = main field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 } ;Dual wheel, 4G63 and Audi 135 field = "" field = "#The below option is EXPERIMENTAL! If unsure what this is, please set to No" - field = "User per tooth ignition calculation", perToothIgn, {TrigPattern == 0} ;Only works for missing tooth + field = "User per tooth ignition calculation", perToothIgn, {TrigPattern == 0 || TrigPattern == 1 } ;Only works for missing tooth dialog = sparkSettings,"Spark Settings",4 field = "Spark output mode", sparkMode diff --git a/speeduino/globals.h b/speeduino/globals.h index 55a3b45f..3e855117 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -109,7 +109,7 @@ const char TSfirmwareVersion[] = "Speeduino 2016.09"; const byte data_structure_version = 2; //This identifies the data structure when reading / writing. const byte page_size = 64; const int npage_size[11] = {0,288,64,288,64,288,64,64,160,192,128}; -//const byte page10_size = 128; +//const byte page11_size = 128; #define MAP_PAGE_SIZE 288 struct table3D fuelTable; //16x16 fuel map @@ -123,6 +123,7 @@ struct table3D trim3Table; //6x6 Fuel trim 3 map struct table3D trim4Table; //6x6 Fuel trim 4 map struct table2D taeTable; //4 bin TPS Acceleration Enrichment map (2D) struct table2D WUETable; //10 bin Warm Up Enrichment map (2D) +struct table2D crankingEnrichTable; //4 bin cranking Enrichment map (2D) struct table2D dwellVCorrectionTable; //6 bin dwell voltage correction (2D) struct table2D injectorVCorrectionTable; //6 bin injector voltage correction (2D) struct table2D IATDensityCorrectionTable; //9 bin inlet air temperature density correction (2D) @@ -564,6 +565,64 @@ struct config10 { } __attribute__((__packed__)); //The 32 bit systems require all structs to be fully packed #endif +/* +Page 11 - No specific purpose. Created initially for the cranking enrich curve +192 bytes long +See ini file for further info (Config Page 11 in the ini) +*/ +struct config11 { + byte crankingEnrichBins[4]; + byte crankingEnrichValues[4]; + byte unused11_8; + byte unused11_9; + byte unused11_10; + byte unused11_11; + byte unused11_12; + byte unused11_13; + byte unused11_14; + byte unused11_15; + byte unused11_16; + byte unused11_17; + byte unused11_18; + byte unused11_19; + byte unused11_20; + byte unused10_21; + byte unused11_22; + byte unused11_23; + byte unused11_24; + byte unused11_25; + byte unused11_26; + byte unused11_27; + byte unused11_28; + byte unused11_29; + byte unused11_107; + byte unused11_108; + byte unused11_109; + byte unused11_110; + byte unused11_111; + byte unused11_112; + byte unused11_113; + byte unused11_114; + byte unused11_115; + byte unused11_116; + byte unused11_117; + byte unused11_118; + byte unused11_119; + byte unused11_120; + byte unused11_121; + byte unused11_122; + byte unused11_123; + byte unused11_124; + byte unused11_125; + byte unused11_126; + byte unused11_127; + byte unused11_128_192[64]; +#if defined(CORE_AVR) + }; +#else + } __attribute__((__packed__)); //The 32 bit systems require all structs to be fully packed +#endif + byte pinInjector1; //Output pin injector 1 byte pinInjector2; //Output pin injector 2 @@ -631,10 +690,12 @@ extern struct table3D ignitionTable; //16x16 ignition map extern struct table3D afrTable; //16x16 afr target map extern struct table2D taeTable; //4 bin TPS Acceleration Enrichment map (2D) extern struct table2D WUETable; //10 bin Warm Up Enrichment map (2D) +extern struct table2D crankingEnrichTable; //4 bin cranking Enrichment map (2D) extern struct config1 configPage1; extern struct config2 configPage2; extern struct config3 configPage3; extern struct config10 configPage10; +extern struct config11 configPage11; extern unsigned long currentLoopTime; //The time the current loop started (uS) extern unsigned long previousLoopTime; //The time the previous loop started (uS) extern byte ignitionCount; diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index bc8f61cd..e4058ee1 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -54,6 +54,7 @@ struct config2 configPage2; struct config3 configPage3; struct config4 configPage4; struct config10 configPage10; +struct config11 configPage11; int req_fuel_uS, inj_opentime_uS; @@ -182,6 +183,10 @@ void setup() WUETable.xSize = 10; WUETable.values = configPage1.wueValues; WUETable.axisX = configPage2.wueBins; + crankingEnrichTable.valueSize = SIZE_BYTE; + crankingEnrichTable.xSize = 4; + crankingEnrichTable.values = configPage11.crankingEnrichValues; + crankingEnrichTable.axisX = configPage11.crankingEnrichBins; dwellVCorrectionTable.valueSize = SIZE_BYTE; dwellVCorrectionTable.xSize = 6; @@ -1086,7 +1091,7 @@ void loop() vvtControl(); idleControl(); //Perform any idle related actions. Even at higher frequencies, running 4x per second is sufficient. } - if ((mainLoopCount & 1023) == 1) //Every 1024 loops + if ((mainLoopCount & 1023) == 1) //Every 1024 loops (Approx. 1 per second) { //Approx. once per second readBaro(); diff --git a/speeduino/storage.h b/speeduino/storage.h index b848a148..6d176a7e 100644 --- a/speeduino/storage.h +++ b/speeduino/storage.h @@ -48,7 +48,8 @@ Current layout of EEPROM data (Version 3) is as follows (All sizes are in bytes) | 1441 |2 | X and Y size4 | | 1443 |36 | PAGE 9 MAP4 | | 1479 |6 | X and Y Bins4 | -| 1500 |128 | CANBUS config and data | +| 1500 |128 | CANBUS config and data (Table 10_) | +| 1628 |192 | Table 11 - General settings | | | | 2559 |512 | Calibration data (O2) | | 3071 |512 | Calibration data (IAT) | @@ -115,6 +116,8 @@ Current layout of EEPROM data (Version 3) is as follows (All sizes are in bytes) #define EEPROM_CONFIG9_YBINS4 1485 #define EEPROM_CONFIG10_START 1500 #define EEPROM_CONFIG10_END 1628 +#define EEPROM_CONFIG11_START 1628 +#define EEPROM_CONFIG11_END 1820 //Calibration data is stored at the end of the EEPROM (This is in case any further calibration tables are needed as they are large blocks) #define EEPROM_LAST_BARO 2558 diff --git a/speeduino/storage.ino b/speeduino/storage.ino index 425cc956..fcb1ca43 100644 --- a/speeduino/storage.ino +++ b/speeduino/storage.ino @@ -271,8 +271,19 @@ void writeConfig() { if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG10_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG10_START))); } } - //********************************************************************************************************************************************************************************* + //********************************************************************************************************************************************************************************* + + /*--------------------------------------------------- + | Config page 11 (See storage.h for data layout) + | 192 byte long config table + -----------------------------------------------------*/ + pnt_configPage = (byte *)&configPage11; //Create a pointer to Page 11 in memory + //As there are no 3d tables in this page, all 192 bytes can simply be read in + for(int x=EEPROM_CONFIG11_START; x Date: Mon, 24 Jul 2017 09:06:13 +1000 Subject: [PATCH 018/133] Add stm32 boards back into Travis testing now that PIO has updated --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7408ed85..c40a85fa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,7 +59,7 @@ script: - cd /home/travis/build - git clone --depth=20 https://github.com/noisymime/cppcheck.git noisymime/cppcheck - cd noisymime/speeduino - - platformio run -e megaatmega2560 -e teensy35 + - platformio run -e megaatmega2560 -e teensy35 -e bluepill_f103c8 -e genericSTM32F103RB - cd .. - speeduino/misra/check_misra.sh From 8ca39ce3a6ad547f143ecc96ade2329fe9f54d87 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 24 Jul 2017 09:12:51 +1000 Subject: [PATCH 019/133] Force a platformio update in Travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index c40a85fa..dd27e4c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,6 +59,7 @@ script: - cd /home/travis/build - git clone --depth=20 https://github.com/noisymime/cppcheck.git noisymime/cppcheck - cd noisymime/speeduino + - platformio update - platformio run -e megaatmega2560 -e teensy35 -e bluepill_f103c8 -e genericSTM32F103RB - cd .. - speeduino/misra/check_misra.sh From be98d2d0d31b577d993f9d184a3b8f20ecfc87fe Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 24 Jul 2017 09:50:50 +1000 Subject: [PATCH 020/133] Addition of comms for Pg 11 --- speeduino/comms.h | 1 + speeduino/comms.ino | 52 ++++++++++++++++++++++++--------------------- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/speeduino/comms.h b/speeduino/comms.h index 432e933e..8b191f42 100644 --- a/speeduino/comms.h +++ b/speeduino/comms.h @@ -11,6 +11,7 @@ #define boostvvtPage 8 #define seqFuelPage 9 #define canbusPage 10//Config Page 10 +#define warmupPage 11 //Config Page 11 #define packetSize 73 diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 3b5d5ca7..620f8a61 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -531,6 +531,15 @@ void receiveValue(int valueOffset, byte newValue) } break; + case warmupPage: //Idle Air Control settings page (Page 4) + pnt_configPage = &configPage11; + //For some reason, TunerStudio is sending offsets greater than the maximum page size. I'm not sure if it's their bug or mine, but the fix is to only update the config page if the offset is less than the maximum size + if (valueOffset < page_size) + { + *((byte *)pnt_configPage + (byte)valueOffset) = newValue; + } + break; + default: break; } @@ -544,22 +553,19 @@ useChar - If true, all values are send as chars, this is for the serial command */ void sendPage(bool useChar) { - void* pnt_configPage; - struct table3D currentTable; + void* pnt_configPage = &configPage1; //Default value is for safety only. Will be changed below if needed. + struct table3D currentTable = fuelTable; //Default value is for safety only. Will be changed below if needed. byte currentTitleIndex = 0;// This corresponds to the count up to the first char of a string in pageTitles bool sendComplete = false; //Used to track whether all send operations are complete switch (currentPage) { case veMapPage: - { currentTitleIndex = 0; currentTable = fuelTable; break; - } case veSetPage: - { // currentTitleIndex = 27; if (useChar) { @@ -591,17 +597,13 @@ void sendPage(bool useChar) } else { pnt_configPage = &configPage1; } //Create a pointer to Page 1 in memory break; - } case ignMapPage: - { currentTitleIndex = 42;// the index to the first char of the third string in pageTitles currentTable = ignitionTable; break; - } case ignSetPage: - { //currentTitleIndex = 56; if (useChar) { @@ -648,17 +650,13 @@ void sendPage(bool useChar) } else { pnt_configPage = &configPage2; } //Create a pointer to Page 2 in memory break; - } case afrMapPage: - { currentTitleIndex = 71;//Array index to next string currentTable = afrTable; break; - } case afrSetPage: - { //currentTitleIndex = 91; if (useChar) { @@ -703,10 +701,8 @@ void sendPage(bool useChar) } else { pnt_configPage = &configPage3; } //Create a pointer to Page 3 in memory break; - } case iacPage: - { //currentTitleIndex = 106; //To Display Values from Config Page 4 if (useChar) @@ -753,10 +749,8 @@ void sendPage(bool useChar) } else { pnt_configPage = &configPage4; } //Create a pointer to Page 4 in memory break; - } case boostvvtPage: - { if(useChar) { currentTable = boostTable; @@ -779,9 +773,8 @@ void sendPage(bool useChar) sendComplete = true; } break; - } + case seqFuelPage: - { if(useChar) { currentTable = trim1Table; @@ -842,10 +835,8 @@ void sendPage(bool useChar) sendComplete = true; } break; - } case canbusPage: - { //currentTitleIndex = 141; if (useChar) { @@ -859,14 +850,22 @@ void sendPage(bool useChar) } else { pnt_configPage = &configPage10; } //Create a pointer to Page 10 in memory break; - } + + case warmupPage: + if (useChar) + { + sendComplete = true; + } + else { pnt_configPage = &configPage11; } //Create a pointer to Page 4 in memory + break; default: - { Serial.println(F("\nPage has not been implemented yet. Change to another page.")); + //Just set default Values to avoid warnings + pnt_configPage = &configPage11; + currentTable = fuelTable; sendComplete = true; break; - } } if(!sendComplete) { @@ -1016,6 +1015,11 @@ void receiveCalibration(byte tableID) break; default: + OFFSET = 0; + pnt_TargetTable = (byte *)&o2CalibrationTable; + DIVISION_FACTOR = 1; + BYTES_PER_VALUE = 1; + EEPROM_START = EEPROM_CALIBRATION_O2; break; //Should never get here, but if we do, just fail back to main loop } From 11294364bc2478f4c71a645ab8ef9ca04346c780 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 24 Jul 2017 14:18:25 +1000 Subject: [PATCH 021/133] 4G63 decoder improvements (+MISRA work) --- speeduino/decoders.h | 2 ++ speeduino/decoders.ino | 78 ++++++++++++++++++++++++++++++++++-------- 2 files changed, 66 insertions(+), 14 deletions(-) diff --git a/speeduino/decoders.h b/speeduino/decoders.h index b49d34a6..8d5ac583 100644 --- a/speeduino/decoders.h +++ b/speeduino/decoders.h @@ -15,6 +15,8 @@ static inline void addToothLogEntry(unsigned long); static inline uint16_t stdGetRPM(); static inline void setFilter(unsigned long); static inline int crankingGetRPM(byte); +static inline void doPerToothTiming(uint16_t crankAngle); + void triggerSetup_missingTooth(); void triggerPri_missingTooth(); void triggerSec_missingTooth(); diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 0930cd33..68132619 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -94,11 +94,24 @@ static inline int crankingGetRPM(byte totalTeeth) revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime) * totalTeeth; interrupts(); tempRPM = (US_IN_MINUTE / revolutionTime); - if( tempRPM >= (configPage2.crankRPM * 400) ) { tempRPM = currentStatus.RPM; } //Sanity check. This can prevent spiking caused by noise on individual teeth. The new RPM should never be above 4x the cranking setting value (Remembering that this function is only called is the current RPM is less than the cranking setting) + if( tempRPM >= MAX_RPM ) { tempRPM = currentStatus.RPM; } //Sanity check. This can prevent spiking caused by noise on individual teeth. The new RPM should never be above 4x the cranking setting value (Remembering that this function is only called is the current RPM is less than the cranking setting) } return tempRPM; } +/* +On decoders that are enabled for per tooth based timing adjustments, this function performs the timer compare changes on the schedules themselves +For each ignition channel, a check is made whether we're at the relevant tooth and whether that ignition schedule is currently running +Only if both these conditions are met will the schedule be updated with the latest timing information. +*/ +static inline void doPerToothTiming(uint16_t crankAngle) +{ + if ( (toothCurrentCount == ignition1EndTooth) && (ignitionSchedule1.Status == RUNNING) ) { IGN1_COMPARE = IGN1_COUNTER + uS_TO_TIMER_COMPARE( (ignition1EndAngle - crankAngle) * timePerDegree ); } + else if ( (toothCurrentCount == ignition2EndTooth) && (ignitionSchedule2.Status == RUNNING) ) { IGN2_COMPARE = IGN2_COUNTER + uS_TO_TIMER_COMPARE( (ignition2EndAngle - crankAngle) * timePerDegree ); } + else if ( (toothCurrentCount == ignition3EndTooth) && (ignitionSchedule3.Status == RUNNING) ) { IGN3_COMPARE = IGN3_COUNTER + uS_TO_TIMER_COMPARE( (ignition3EndAngle - crankAngle) * timePerDegree ); } + else if ( (toothCurrentCount == ignition4EndTooth) && (ignitionSchedule4.Status == RUNNING) ) { IGN4_COMPARE = IGN4_COUNTER + uS_TO_TIMER_COMPARE( (ignition4EndAngle - crankAngle) * timePerDegree ); } +} + /* Name: Missing tooth wheel Desc: A multi-tooth wheel with one of more 'missing' teeth. The first tooth after the missing one is considered number 1 and isthe basis for the trigger angle @@ -165,15 +178,7 @@ void triggerPri_missingTooth() if(configPage1.perToothIgn == true) { uint16_t crankAngle = ( (toothCurrentCount-1) * triggerToothAngle ) + configPage2.triggerAngle; - if ( (toothCurrentCount == ignition1EndTooth) && (ignitionSchedule1.Status == RUNNING) ) - { - IGN1_COMPARE = IGN1_COUNTER + uS_TO_TIMER_COMPARE( (ignition1EndAngle - crankAngle) * timePerDegree ); - //IGN1_COMPARE = IGN1_COUNTER + uS_TO_TIMER_COMPARE( (ignition1EndAngle - crankAngle)*my_timePerDegree - micros_compensation ); - - } - else if ( (toothCurrentCount == ignition2EndTooth) && (ignitionSchedule2.Status == RUNNING) ) { IGN2_COMPARE = IGN2_COUNTER + uS_TO_TIMER_COMPARE( (ignition2EndAngle - crankAngle) * timePerDegree ); } - else if ( (toothCurrentCount == ignition3EndTooth) && (ignitionSchedule3.Status == RUNNING) ) { IGN3_COMPARE = IGN3_COUNTER + uS_TO_TIMER_COMPARE( (ignition3EndAngle - crankAngle) * timePerDegree ); } - else if ( (toothCurrentCount == ignition4EndTooth) && (ignitionSchedule4.Status == RUNNING) ) { IGN4_COMPARE = IGN4_COUNTER + uS_TO_TIMER_COMPARE( (ignition4EndAngle - crankAngle) * timePerDegree ); } + doPerToothTiming(crankAngle); } } } @@ -264,6 +269,7 @@ Note: There can be no missing teeth on the primary wheel void triggerSetup_DualWheel() { triggerToothAngle = 360 / configPage2.triggerTeeth; //The number of degrees that passes from tooth to tooth + if(configPage2.TrigSpeed == 1) { triggerToothAngle = 720 / configPage2.triggerTeeth; } //Account for cam speed missing tooth toothCurrentCount = 255; //Default value triggerFilterTime = (int)(1000000 / (MAX_RPM / 60 * configPage2.triggerTeeth)); //Trigger filter time is the shortest possible time (in uS) that there can be between crank teeth (ie at max RPM). Any pulses that occur faster than this time will be disgarded as noise triggerSecFilterTime = (int)(1000000 / (MAX_RPM / 60 * 2)) / 2; //Same as above, but fixed at 2 teeth on the secondary input and divided by 2 (for cam speed) @@ -298,6 +304,13 @@ void triggerPri_DualWheel() setFilter(curGap); //Recalc the new filter value } + + //EXPERIMENTAL! + if(configPage1.perToothIgn == true) + { + uint16_t crankAngle = ( (toothCurrentCount-1) * triggerToothAngle ) + configPage2.triggerAngle; + doPerToothTiming(crankAngle); + } } //TRigger filter @@ -371,7 +384,25 @@ int getCrankAngle_DualWheel(int timePerDegree) void triggerSetEndTeeth_DualWheel() { + ignition1EndTooth = ( (ignition1EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition1EndTooth > configPage2.triggerTeeth) { ignition1EndTooth -= configPage2.triggerTeeth; } + if(ignition1EndTooth <= 0) { ignition1EndTooth -= configPage2.triggerTeeth; } + if(ignition1EndTooth > triggerActualTeeth) { ignition1EndTooth = triggerActualTeeth; } + ignition2EndTooth = ( (ignition2EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition2EndTooth > configPage2.triggerTeeth) { ignition2EndTooth -= configPage2.triggerTeeth; } + if(ignition2EndTooth <= 0) { ignition2EndTooth -= configPage2.triggerTeeth; } + if(ignition2EndTooth > triggerActualTeeth) { ignition2EndTooth = triggerActualTeeth; } + + ignition3EndTooth = ( (ignition3EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition3EndTooth > configPage2.triggerTeeth) { ignition3EndTooth -= configPage2.triggerTeeth; } + if(ignition3EndTooth <= 0) { ignition3EndTooth -= configPage2.triggerTeeth; } + if(ignition3EndTooth > triggerActualTeeth) { ignition3EndTooth = triggerActualTeeth; } + + ignition4EndTooth = ( (ignition4EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition4EndTooth > configPage2.triggerTeeth) { ignition4EndTooth -= configPage2.triggerTeeth; } + if(ignition4EndTooth <= 0) { ignition4EndTooth -= configPage2.triggerTeeth; } + if(ignition4EndTooth > triggerActualTeeth) { ignition4EndTooth = triggerActualTeeth; } } @@ -387,8 +418,10 @@ void triggerSetup_BasicDistributor() triggerToothAngle = 720 / triggerActualTeeth; //The number of degrees that passes from tooth to tooth triggerFilterTime = 60000000L / MAX_RPM / configPage1.nCylinders; // Minimum time required between teeth triggerFilterTime = triggerFilterTime / 2; //Safety margin + triggerFilterTime = 0; secondDerivEnabled = false; decoderIsSequential = false; + toothCurrentCount = 0; //Default value if(configPage1.nCylinders <= 4) { MAX_STALL_TIME = (1851UL * triggerToothAngle); }//Minimum 90rpm. (1851uS is the time per degree at 90rpm). This uses 90rpm rather than 50rpm due to the potentially very high stall time on a 4 cylinder if we wait that long. else { MAX_STALL_TIME = (3200UL * triggerToothAngle); } //Minimum 50rpm. (3200uS is the time per degree at 50rpm). @@ -399,7 +432,7 @@ void triggerPri_BasicDistributor() { curTime = micros(); curGap = curTime - toothLastToothTime; - if ( curGap >= triggerFilterTime ) + if ( (curGap >= triggerFilterTime) ) { if( (toothCurrentCount == triggerActualTeeth) || (currentStatus.hasSync == false) ) //Check if we're back to the beginning of a revolution { @@ -425,6 +458,20 @@ void triggerPri_BasicDistributor() endCoil4Charge(); } + if(configPage1.perToothIgn == true) + { + uint16_t crankAngle = ( (toothCurrentCount-1) * triggerToothAngle ) + configPage2.triggerAngle; + if ( (toothCurrentCount == ignition1EndTooth) && (ignitionSchedule1.Status == RUNNING) ) + { + IGN1_COMPARE = IGN1_COUNTER + uS_TO_TIMER_COMPARE( (ignition1EndAngle - crankAngle) * timePerDegree ); + //IGN1_COMPARE = IGN1_COUNTER + uS_TO_TIMER_COMPARE( (ignition1EndAngle - crankAngle)*my_timePerDegree - micros_compensation ); + + } + else if ( (toothCurrentCount == ignition2EndTooth) && (ignitionSchedule2.Status == RUNNING) ) { IGN2_COMPARE = IGN2_COUNTER + uS_TO_TIMER_COMPARE( (ignition2EndAngle - crankAngle) * timePerDegree ); } + else if ( (toothCurrentCount == ignition3EndTooth) && (ignitionSchedule3.Status == RUNNING) ) { IGN3_COMPARE = IGN3_COUNTER + uS_TO_TIMER_COMPARE( (ignition3EndAngle - crankAngle) * timePerDegree ); } + else if ( (toothCurrentCount == ignition4EndTooth) && (ignitionSchedule4.Status == RUNNING) ) { IGN4_COMPARE = IGN4_COUNTER + uS_TO_TIMER_COMPARE( (ignition4EndAngle - crankAngle) * timePerDegree ); } + } + toothLastMinusOneToothTime = toothLastToothTime; toothLastToothTime = curTime; } //Trigger filter @@ -470,7 +517,10 @@ int getCrankAngle_BasicDistributor(int timePerDegree) void triggerSetEndTeeth_BasicDistributor() { - + ignition1EndTooth = ( (ignition1EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition1EndTooth > configPage2.triggerTeeth) { ignition1EndTooth -= configPage2.triggerTeeth; } + if(ignition1EndTooth <= 0) { ignition1EndTooth -= configPage2.triggerTeeth; } + if(ignition1EndTooth > triggerActualTeeth) { ignition1EndTooth = triggerActualTeeth; } } /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -631,7 +681,7 @@ void triggerPri_4G63() { curTime = micros(); curGap = curTime - toothLastToothTime; - if ( curGap >= triggerFilterTime ) + if ( (curGap >= triggerFilterTime) || (currentStatus.startRevolutions == 0) ) { addToothLogEntry(curGap); triggerFilterTime = curGap >> 2; //This only applies during non-sync conditions. If there is sync then triggerFilterTime gets changed again below with a better value. @@ -714,7 +764,7 @@ void triggerSec_4G63() curTime2 = micros(); curGap2 = curTime2 - toothLastSecToothTime; - if ( curGap2 >= triggerSecFilterTime ) + if ( (curGap2 >= triggerSecFilterTime) || (currentStatus.startRevolutions == 0) ) { toothLastSecToothTime = curTime2; From e16da511013185f5dce1d5564a5323fb19e77bd2 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 24 Jul 2017 14:19:07 +1000 Subject: [PATCH 022/133] Additional work for the new memory page --- reference/speeduino.ini | 31 +++++++++++++++++++++++++------ speeduino/globals.h | 2 +- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 7b9ab2a4..6052d8f2 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -97,14 +97,14 @@ ;---------------------------------------------------------------------------- endianness = little - nPages = 10 + nPages = 11 burnCommand = "B" pageSize = 288, 64, 288, 64, 288, 64, 64, 160, 192, 128, 192 ; pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A" pageActivationDelay = 10 - pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012" - pageReadCommand = "V", "V", "V", "V", "V", "V", "V", "V", "V", "V" - pageValueWrite = "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v" + pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012", "P\013" + pageReadCommand = "V", "V", "V", "V", "V", "V", "V", "V", "V", "V", "V" + pageValueWrite = "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v" ; pageChunkWrite = "" ; No chunk write for standard MS blockingFactor = 2048 @@ -692,6 +692,16 @@ page = 10 unused10_126 = scalar, U08, 126, "", 1, 0, 0, 255, 0 unused10_127 = scalar, U08, 127, "", 1, 0, 0, 255, 0 +page = 11 +#if CELSIUS + crankingEnrichBins = array, U08, 0, [4], "C", 1.0, -40, -40, 215, 0 +#else + crankingEnrichBins = array, U08, 0, [4], "F", 1.8, -22.23, -40, 215, 0 +#endif + crankingEnrichValues= array, U08, 4, [4], "%", 1.0, 0.0, 0, 255, 0 ; Values for the cranking enrichment curve + + unused11_8_192 = array, U08, 8,[184], "RPM", 100.0, 0.0, 100, 25500, 0 + ;------------------------------------------------------------------------------- [ConstantsExtensions] @@ -1276,6 +1286,7 @@ menuDialog = main field = "Priming Pulsewidth", primePulse field = "" field = "Cranking Enrichment %", crankingPct + panel = cranking_enrich_curve field = "" field = "Cranking bypass", ignBypassEnable field = "Bypass output pin", ignBypassPin { ignBypassEnable } @@ -1815,8 +1826,6 @@ cmdtestspk450dc = "E\x03\x0C" xBins = brvBins, batteryVoltage yBins = injBatRates - - ; Correction curve for Air Density vs temperature curve = airdensity_curve, "IAT density correction" columnLabel = "Air Temperature", "Fuel Amount" @@ -1889,6 +1898,16 @@ cmdtestspk450dc = "E\x03\x0C" yBins = wueRates gauge = cltGauge +; Cranking enrichment curve + curve = cranking_enrich_curve, "Cranking Enrichment Curve" + ;topicHelp = "file://$getProjectsDirPath()/docs/xxx.pdf#wue" + columnLabel = "Coolant", "Enrich %" + xAxis = -40, 150, 9 + yAxis = 0, 240, 6 + xBins = crankingEnrichBins, coolant + yBins = crankingEnrichValues + gauge = cltGauge + ; Warmup enrichment VEAL AFR adjustment curve (Not currently working) ;curve = warmup_afr_curve, "AFR Target Temperature Adustment" ; columnLabel = "Coolant Temp", "AFR Offset %" diff --git a/speeduino/globals.h b/speeduino/globals.h index 3e855117..bd7ed3dc 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -108,7 +108,7 @@ const char TSfirmwareVersion[] = "Speeduino 2016.09"; const byte data_structure_version = 2; //This identifies the data structure when reading / writing. const byte page_size = 64; -const int npage_size[11] = {0,288,64,288,64,288,64,64,160,192,128}; +const int npage_size[12] = {0,288,64,288,64,288,64,64,160,192,128,192}; //const byte page11_size = 128; #define MAP_PAGE_SIZE 288 From e878be52603188b628366ab476297c755307c0dc Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 24 Jul 2017 14:19:29 +1000 Subject: [PATCH 023/133] MISRA work in tables.ino --- speeduino/table.ino | 166 +++++++++++++++++++++++++++----------------- 1 file changed, 101 insertions(+), 65 deletions(-) diff --git a/speeduino/table.ino b/speeduino/table.ino index 6c9efe05..01c5d080 100644 --- a/speeduino/table.ino +++ b/speeduino/table.ino @@ -376,25 +376,29 @@ int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) //Initial check incase the values were hit straight on - /* + long p = (long)X - xMinValue; if (xMaxValue == xMinValue) { p = (p << 8); } //This only occurs if the requested X value was equal to one of the X axis bins else { p = ( (p << 8) / (xMaxValue - xMinValue) ); } //This is the standard case - */ - long p; - if (xMaxValue == xMinValue) { p = ((long)(X - xMinValue) << 8); } //This only occurs if the requested X value was equal to one of the X axis bins - else { p = ((long)(X - xMinValue) << 8) / (xMaxValue - xMinValue); } //This is the standard case - - /* - long q = (long)Y - yMinValue; - if (yMaxValue == yMinValue) { q = (q << 8); } - else { q = 256 - ( (q << 8) / (yMinValue - yMaxValue) ); } - */ + long q; + if (yMaxValue == yMinValue) + { + q = (long)Y - yMinValue; + q = (q << 8); + } + //Standard case + else + { + q = long(Y) - yMaxValue; + q = 256 - ( (q << 8) / (yMinValue - yMaxValue) ); + } +/* long q; if (yMaxValue == yMinValue) { q = ((long)(Y - yMinValue) << 8); } else { q = 256 - (((long)(Y - yMaxValue) << 8) / (yMinValue - yMaxValue)); } + */ int m = ((256-p) * (256-q)) >> 8; int n = (p * (256-q)) >> 8; @@ -480,76 +484,108 @@ float get3DTableValueF(struct table3D *fromTable, int Y, int X) return ( (A * m) + (B * n) + (C * o) + (D * r) ); } - -//This function pulls a value from a 3D table given a target for X and Y coordinates. -//It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf +*/ int get3DTableValueS(struct table3D *fromTable, int Y, int X) { byte xMin, xMax; byte yMin, yMax; - long p, q; - int yMaxValue, yMinValue; - int xMaxValue, xMinValue; + int tableResult = 0; - if(fromTable->lastXMin==0) {fromTable->lastXMin=fromTable->xSize-1;} - else {xMin = fromTable->lastXMin;} - if(fromTable->lastYMin==0) {fromTable->lastYMin=fromTable->ySize-1;} - else {yMin = fromTable->lastYMin;} - - if(xMin>fromTable->xSize-1) - { - fromTable->lastXMin = fromTable->xSize-1; - xMin = fromTable->xSize-1; - } - if(yMin>fromTable->ySize-1) - { - fromTable->lastYMin = fromTable->ySize-1; - yMin = fromTable->ySize-1; - } + xMin = fromTable->lastXMin; + yMin = fromTable->lastYMin; + if(xMin == 0) { xMin = fromTable->xSize-1; } + if(yMin == 0) { yMin = fromTable->ySize-1; } do //RPM axis { - if(X>=fromTable->axisX[xMin]) {break;} + if(X > fromTable->axisX[xMin]) + { + if (xMin == (fromTable->xSize-1) ) { xMax = xMin; } //Overflow protection + else { xMax = xMin + 1; } + break; + } + else if(X == fromTable->axisX[xMin]) + { + xMax = xMin; + break; + } xMin--; - }while(1); - fromTable->lastXMin = xMin + 1; + }while(TRUE); + do //MAP axis { - if(Y<=fromTable->axisY[yMin]) {break;} + if(Y < fromTable->axisY[yMin]) + { + if (yMin == (fromTable->ySize-1) ) { yMax = yMin; } //Overflow protection + else { yMax = yMin + 1; } + break; + } + else if(Y == fromTable->axisY[yMin]) + { + yMax = yMin; + break; + } yMin--; - }while(1); - fromTable->lastYMin = yMin + 1; + }while(TRUE); - xMax = xMin + 1; - yMax = yMin + 1; - if (xMax>fromTable->xSize-1) //Overflow protection - { - xMax = fromTable->xSize-1; - xMin = xMax - 1; - } - if (yMax>fromTable->ySize-1) //Overflow protection - { - yMax = fromTable->ySize-1; - yMin = yMax - 1; - } + fromTable->lastXMin = xMax; + fromTable->lastYMin = yMax; - yMaxValue = fromTable->axisY[yMax]; - yMinValue = fromTable->axisY[yMin]; - xMaxValue = fromTable->axisX[xMax]; - xMinValue = fromTable->axisX[xMin]; + //Serial.print("xMin, xMax ");Serial.print(xMin);Serial.print(",");Serial.println(xMax); + //Serial.print("yMin, yMax ");Serial.print(yMin);Serial.print(",");Serial.println(yMax); int A = fromTable->values[yMin][xMin]; - int B = fromTable->values[yMin][xMax]; - int C = fromTable->values[yMax][xMin]; - int D = fromTable->values[yMax][xMax]; + if((xMin == xMax) && (yMin == yMax)) { tableResult = A; } + else if(xMin == xMax) // Simple 2D + { + int D = fromTable->values[yMax][xMax]; + int yMaxValue = fromTable->axisY[yMax]; + int yMinValue = fromTable->axisY[yMin]; + long q = (long)Y - yMinValue; + q = ((q << 6) * (D - A)) / (yMaxValue - yMinValue); + tableResult = A + (q >> 6); + } + else if(yMin == yMax) // Simple 2D + { + int D = fromTable->values[yMax][xMax]; + int xMaxValue = fromTable->axisX[xMax]; + int xMinValue = fromTable->axisX[xMin]; + long q = (long)X - xMinValue; + q = ((q << 6) * (D - A)) / (xMaxValue - xMinValue); + tableResult = A + (q >> 6); + } + else + { + int B = fromTable->values[yMin][xMax]; + int C = fromTable->values[yMax][xMin]; + int D = fromTable->values[yMax][xMax]; - p = ((long)(X - xMinValue) << 8) / (xMaxValue - xMinValue); //(RPM - RPM[1])/(RPM[2]- RPM[1]) - q = 256 - (((long)(Y - yMaxValue) << 8) / (yMinValue - yMaxValue)); //(MAP - MAP[2])/(MAP[2]- MAP[1]) + int yMaxValue = fromTable->axisY[yMax]; + int yMinValue = fromTable->axisY[yMin]; + int xMaxValue = fromTable->axisX[xMax]; + int xMinValue = fromTable->axisX[xMin]; - int m = ((256-p) * (256-q)) >> 8; - int n = (p * (256-q)) >> 8; - int o = ((256-p) * q) >> 8; - int r = (p * q) >> 8; - return ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; + long p = (long)X - xMinValue; + if (xMaxValue == xMinValue) { p = (p << 8); } //This only occurs if the requested X value was equal to one of the X axis bins + else { p = ( (p << 8) / (xMaxValue - xMinValue) ); } //This is the standard case + + long q; + if (yMaxValue == yMinValue) + { + q = (long)Y - yMinValue; + q = (q << 8); + } + else + { + q = long(Y) - yMaxValue; + q = 256 - ( (q << 8) / (yMinValue - yMaxValue) ); + } + + int m = ((256-p) * (256-q)) >> 8; + int n = (p * (256-q)) >> 8; + int o = ((256-p) * q) >> 8; + int r = (p * q) >> 8; + tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; + } + return tableResult; } -*/ From 9a7d3b1fdfd580716a04fdcfb09acdf8f99bdc03 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 24 Jul 2017 14:19:39 +1000 Subject: [PATCH 024/133] Fix ini 3/4 pin mapping for MX5 PNP --- speeduino/utils.ino | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/speeduino/utils.ino b/speeduino/utils.ino index 7fb67e55..1cd90aa4 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -281,8 +281,8 @@ void setPinMapping(byte boardID) //Pin mappings as per the MX5 PNP shield pinInjector1 = 11; //Output pin injector 1 is on pinInjector2 = 10; //Output pin injector 2 is on - pinInjector3 = 9; //Output pin injector 3 is on - pinInjector4 = 8; //Output pin injector 4 is on + pinInjector3 = 8; //Output pin injector 3 is on + pinInjector4 = 9; //Output pin injector 4 is on pinInjector5 = 14; //Output pin injector 5 is on pinCoil1 = 39; //Pin for coil 1 pinCoil2 = 41; //Pin for coil 2 @@ -564,7 +564,9 @@ unsigned int PW(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen) //Standard float version of the calculation //return (REQ_FUEL * (float)(VE/100.0) * (float)(MAP/100.0) * (float)(TPS/100.0) * (float)(corrections/100.0) + injOpen); //Note: The MAP and TPS portions are currently disabled, we use VE and corrections only - unsigned int iVE, iMAP, iAFR, iCorrections; + uint16_t iVE, iCorrections; + uint16_t iMAP = 100; + uint16_t iAFR = 147; //100% float free version, does sacrifice a little bit of accuracy, but not much. iVE = ((unsigned int)VE << 7) / 100; From 1da217eb40c11ef7c076cbdcb126c130428f1c49 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 24 Jul 2017 14:24:41 +1000 Subject: [PATCH 025/133] Type fix --- speeduino/table.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/speeduino/table.ino b/speeduino/table.ino index 01c5d080..1e8dc663 100644 --- a/speeduino/table.ino +++ b/speeduino/table.ino @@ -510,7 +510,7 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) break; } xMin--; - }while(TRUE); + }while(true); do //MAP axis { @@ -526,7 +526,7 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) break; } yMin--; - }while(TRUE); + }while(true); fromTable->lastXMin = xMax; fromTable->lastYMin = yMax; From bfc5c7c8415de4b7e13e4b99e06721ba4a3a9cc0 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 24 Jul 2017 16:04:29 +1000 Subject: [PATCH 026/133] Cleaner transitions when using VVT for on/off control --- speeduino/auxiliaries.h | 12 ++++++++++++ speeduino/auxiliaries.ino | 22 ++++++++++++++++++---- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/speeduino/auxiliaries.h b/speeduino/auxiliaries.h index 8d535704..a2c7a6bc 100644 --- a/speeduino/auxiliaries.h +++ b/speeduino/auxiliaries.h @@ -6,6 +6,18 @@ void boostControl(); void vvtControl(); void initialiseFan(); +#if defined(CORE_AVR) + #define ENABLE_BOOST_TIMER() TIMSK1 |= (1 << OCIE1A) + #define DISABLE_BOOST_TIMER() TIMSK1 &= ~(1 << OCIE1A) + #define ENABLE_VVT_TIMER() TIMSK1 |= (1 << OCIE1B) + #define DISABLE_VVT_TIMER() TIMSK1 &= ~(1 << OCIE1B) + + #define BOOST_PIN_LOW() *boost_pin_port &= ~(boost_pin_mask) + #define BOOST_PIN_HIGH() *boost_pin_port |= (boost_pin_mask) + #define VVT_PIN_LOW() *vvt_pin_port &= ~(vvt_pin_mask) + #define VVT_PIN_HIGH() *vvt_pin_port |= (vvt_pin_mask) +#endif + volatile byte *boost_pin_port; volatile byte boost_pin_mask; volatile byte *vvt_pin_port; diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 45438685..27a32c11 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -106,11 +106,25 @@ void vvtControl() if( configPage3.vvtEnabled == 1 ) { byte vvtDuty = get3DTableValue(&vvtTable, currentStatus.TPS, currentStatus.RPM); - vvt_pwm_target_value = percentage(vvtDuty, vvt_pwm_max_count); + if(vvtDuty == 0) + { + //Make sure solenoid is off (0% duty) + VVT_PIN_LOW(); + DISABLE_VVT_TIMER(); + } + else if (vvtDuty >= 100) + { + //Make sure solenoid is on (100% duty) + VVT_PIN_HIGH(); + DISABLE_VVT_TIMER(); + } + else + { + vvt_pwm_target_value = percentage(vvtDuty, vvt_pwm_max_count); + ENABLE_VVT_TIMER(); + } } -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - else { TIMSK1 &= ~(1 << OCIE1B); } // Disable timer channel -#endif + else { DISABLE_VVT_TIMER(); } // Disable timer channel } //The interrupt to control the Boost PWM From e53f8c628dc9b92bd682323c2b1c7de12a9ccb7a Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 24 Jul 2017 16:34:13 +1000 Subject: [PATCH 027/133] Mostly complete boost/vvt control for Teensy --- speeduino/auxiliaries.h | 35 ++++++++++++++++++----- speeduino/auxiliaries.ino | 59 ++++++++++++++++++++++----------------- 2 files changed, 62 insertions(+), 32 deletions(-) diff --git a/speeduino/auxiliaries.h b/speeduino/auxiliaries.h index a2c7a6bc..5ce8d246 100644 --- a/speeduino/auxiliaries.h +++ b/speeduino/auxiliaries.h @@ -7,17 +7,38 @@ void vvtControl(); void initialiseFan(); #if defined(CORE_AVR) - #define ENABLE_BOOST_TIMER() TIMSK1 |= (1 << OCIE1A) + #define ENABLE_BOOST_TIMER() TIMSK1 |= (1 << OCIE1A) #define DISABLE_BOOST_TIMER() TIMSK1 &= ~(1 << OCIE1A) - #define ENABLE_VVT_TIMER() TIMSK1 |= (1 << OCIE1B) - #define DISABLE_VVT_TIMER() TIMSK1 &= ~(1 << OCIE1B) + #define ENABLE_VVT_TIMER() TIMSK1 |= (1 << OCIE1B) + #define DISABLE_VVT_TIMER() TIMSK1 &= ~(1 << OCIE1B) + + #define BOOST_TIMER_COMPARE OCR1A + #define BOOST_TIMER_COUNTER TCNT1 + #define VVT_TIMER_COMPARE OCR1B + #define VVT_TIMER_COUNTER TCNT1 + +#elif defined(CORE_TEENSY) + #define ENABLE_BOOST_TIMER() FTM1_C0SC |= FTM_CSC_CHIE + #define DISABLE_BOOST_TIMER() FTM1_C0SC &= ~FTM_CSC_CHIE + + #define ENABLE_VVT_TIMER() FTM1_C1SC |= FTM_CSC_CHIE + #define DISABLE_VVT_TIMER() FTM1_C1SC &= ~FTM_CSC_CHIE + + #define BOOST_TIMER_COMPARE FTM1_C0V + #define BOOST_TIMER_COUNTER FTM1_CNT + #define VVT_TIMER_COMPARE FTM1_C1V + #define VVT_TIMER_COUNTER FTM1_CNT + +#elif defined(CORE_STM32) - #define BOOST_PIN_LOW() *boost_pin_port &= ~(boost_pin_mask) - #define BOOST_PIN_HIGH() *boost_pin_port |= (boost_pin_mask) - #define VVT_PIN_LOW() *vvt_pin_port &= ~(vvt_pin_mask) - #define VVT_PIN_HIGH() *vvt_pin_port |= (vvt_pin_mask) #endif +#define BOOST_PIN_LOW() *boost_pin_port &= ~(boost_pin_mask) +#define BOOST_PIN_HIGH() *boost_pin_port |= (boost_pin_mask) +#define VVT_PIN_LOW() *vvt_pin_port &= ~(vvt_pin_mask) +#define VVT_PIN_HIGH() *vvt_pin_port |= (vvt_pin_mask) + + volatile byte *boost_pin_port; volatile byte boost_pin_mask; volatile byte *vvt_pin_port; diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 27a32c11..41c5bb52 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -28,14 +28,15 @@ void fanControl() } } -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) void initialiseAuxPWM() { - TCCR1B = 0x00; //Disbale Timer1 while we set it up - TCNT1 = 0; //Reset Timer Count - TIFR1 = 0x00; //Timer1 INT Flag Reg: Clear Timer Overflow Flag - TCCR1A = 0x00; //Timer1 Control Reg A: Wave Gen Mode normal (Simply counts up from 0 to 65535 (16-bit int) - TCCR1B = (1 << CS12); //Timer1 Control Reg B: Timer Prescaler set to 256. 1 tick = 16uS. Refer to http://www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg + #if defined(CORE_AVR) + TCCR1B = 0x00; //Disbale Timer1 while we set it up + TCNT1 = 0; //Reset Timer Count + TIFR1 = 0x00; //Timer1 INT Flag Reg: Clear Timer Overflow Flag + TCCR1A = 0x00; //Timer1 Control Reg A: Wave Gen Mode normal (Simply counts up from 0 to 65535 (16-bit int) + TCCR1B = (1 << CS12); //Timer1 Control Reg B: Timer Prescaler set to 256. 1 tick = 16uS. Refer to http://www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg + #endif boost_pin_port = portOutputRegister(digitalPinToPort(pinBoost)); boost_pin_mask = digitalPinToBitMask(pinBoost); @@ -45,7 +46,7 @@ void initialiseAuxPWM() boost_pwm_max_count = 1000000L / (16 * configPage3.boostFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. The x2 is there because the frequency is stored at half value (in a byte) to allow freqneucies up to 511Hz vvt_pwm_max_count = 1000000L / (16 * configPage3.vvtFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle //TIMSK1 |= (1 << OCIE1A); <---- Not required as compare A is turned on when needed by boost control - TIMSK1 |= (1 << OCIE1B); //Turn on the B compare unit (ie turn on the interrupt) + ENABLE_VVT_TIMER(); //Turn on the B compare unit (ie turn on the interrupt) boostPID.SetOutputLimits(percentage(configPage1.boostMinDuty, boost_pwm_max_count) , percentage(configPage1.boostMaxDuty, boost_pwm_max_count)); boostPID.SetTunings(configPage3.boostKP, configPage3.boostKI, configPage3.boostKD); @@ -80,23 +81,23 @@ void boostControl() boostPID.Compute(); currentStatus.boostDuty = (unsigned long)(boost_pwm_target_value * 100UL) / boost_pwm_max_count; - TIMSK1 |= (1 << OCIE1A); //Turn on the compare unit (ie turn on the interrupt) + ENABLE_BOOST_TIMER(); //Turn on the compare unit (ie turn on the interrupt) } else { //If boost target is 0, turn everything off - TIMSK1 &= ~(1 << OCIE1A); //Turn off timer - digitalWrite(pinBoost, LOW); + DISABLE_BOOST_TIMER(); //Turn off timer + BOOST_PIN_LOW(); } } else { //Boost control does nothing if kPa below 100 - TIMSK1 &= ~(1 << OCIE1A); //Turn off timer - digitalWrite(pinBoost, LOW); //Make sure solenoid is off (0% duty) + DISABLE_BOOST_TIMER(); //Turn off timer + BOOST_PIN_LOW(); //Make sure solenoid is off (0% duty) } } - else { TIMSK1 &= ~(1 << OCIE1A); } // Disable timer channel + else { DISABLE_BOOST_TIMER(); } // Disable timer channel boostCounter++; } @@ -128,43 +129,51 @@ void vvtControl() } //The interrupt to control the Boost PWM -ISR(TIMER1_COMPA_vect) +#if defined(CORE_AVR) + ISR(TIMER1_COMPA_vect) +#elif defined (CORE_TEENSY) + static inline void boostInterrupt() //Most ARM chips can simply call a function +#endif { if (boost_pwm_state) { - *boost_pin_port &= ~(boost_pin_mask); // Switch pin to low - OCR1A = TCNT1 + (boost_pwm_max_count - boost_pwm_cur_value); + BOOST_PIN_LOW(); // Switch pin to low + BOOST_TIMER_COMPARE = BOOST_TIMER_COUNTER + (boost_pwm_max_count - boost_pwm_cur_value); boost_pwm_state = false; } else { - *boost_pin_port |= (boost_pin_mask); // Switch pin high - OCR1A = TCNT1 + boost_pwm_target_value; + BOOST_PIN_HIGH(); // Switch pin high + BOOST_TIMER_COMPARE = BOOST_TIMER_COUNTER + boost_pwm_target_value; boost_pwm_cur_value = boost_pwm_target_value; boost_pwm_state = true; } } //The interrupt to control the VVT PWM -ISR(TIMER1_COMPB_vect) +#if defined(CORE_AVR) + ISR(TIMER1_COMPB_vect) +#elif defined (CORE_TEENSY) + static inline void vvtInterrupt() //Most ARM chips can simply call a function +#endif { if (vvt_pwm_state) { - *vvt_pin_port &= ~(vvt_pin_mask); // Switch pin to low - OCR1B = TCNT1 + (vvt_pwm_max_count - vvt_pwm_cur_value); + VVT_PIN_LOW(); // Switch pin to low + VVT_TIMER_COMPARE = VVT_TIMER_COUNTER + (vvt_pwm_max_count - vvt_pwm_cur_value); vvt_pwm_state = false; } else { - *vvt_pin_port |= (vvt_pin_mask); // Switch pin high - OCR1B = TCNT1 + vvt_pwm_target_value; + VVT_PIN_HIGH(); // Switch pin high + VVT_TIMER_COMPARE = VVT_TIMER_COUNTER + vvt_pwm_target_value; vvt_pwm_cur_value = vvt_pwm_target_value; vvt_pwm_state = true; } } -#elif defined (CORE_TEENSY) || defined(CORE_STM32) -//YET TO BE IMPLEMENTED ON TEENSY +#if defined(CORE_STM32) +//YET TO BE IMPLEMENTED ON STM32 void initialiseAuxPWM() { } void boostControl() { } void vvtControl() { } From f11cae0eb80d1361f16b224ee1ab58d9004d5ffe Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 24 Jul 2017 16:40:50 +1000 Subject: [PATCH 028/133] Guard boost/vvt control from stm32 --- speeduino/auxiliaries.ino | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 41c5bb52..66125cf3 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -28,6 +28,7 @@ void fanControl() } } +#if defined(CORE_AVR) || defined(CORE_TEENSY) void initialiseAuxPWM() { #if defined(CORE_AVR) @@ -36,6 +37,8 @@ void initialiseAuxPWM() TIFR1 = 0x00; //Timer1 INT Flag Reg: Clear Timer Overflow Flag TCCR1A = 0x00; //Timer1 Control Reg A: Wave Gen Mode normal (Simply counts up from 0 to 65535 (16-bit int) TCCR1B = (1 << CS12); //Timer1 Control Reg B: Timer Prescaler set to 256. 1 tick = 16uS. Refer to http://www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg + #elif defined(CORE_TEENSY) + //REALLY NEED TO DO THIS! #endif boost_pin_port = portOutputRegister(digitalPinToPort(pinBoost)); @@ -172,7 +175,7 @@ void vvtControl() } } -#if defined(CORE_STM32) +#elif defined(CORE_STM32) //YET TO BE IMPLEMENTED ON STM32 void initialiseAuxPWM() { } void boostControl() { } From a1838388872d981e1e950c4c9d5597ccbc41fc4c Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 24 Jul 2017 17:05:55 +1000 Subject: [PATCH 029/133] Prevent occasional pulses when boost duty = 0%. Helps prevent overboost in some conditions --- speeduino/auxiliaries.ino | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 66125cf3..4c6de520 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -84,7 +84,9 @@ void boostControl() boostPID.Compute(); currentStatus.boostDuty = (unsigned long)(boost_pwm_target_value * 100UL) / boost_pwm_max_count; - ENABLE_BOOST_TIMER(); //Turn on the compare unit (ie turn on the interrupt) + if(currentStatus.boostDuty == 0) { DISABLE_BOOST_TIMER(); BOOST_PIN_LOW(); } //If boost duty is 0, shut everything down + else { ENABLE_BOOST_TIMER(); } //Turn on the compare unit (ie turn on the interrupt) if boost duty >0 + } else { From b42d0069ab8fab5605fd1279c369bcd29d64287a Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 25 Jul 2017 20:42:06 +1000 Subject: [PATCH 030/133] Clean up cranking enrichment dialog --- reference/speeduino.ini | 50 ++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 6052d8f2..58778a7a 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -1088,6 +1088,9 @@ menuDialog = main ; dialog which will be added. ; dialogs can be nested and can be mixed with fields + dialog = wc_note + field = "Final enrichment value must be 100%. Typical maximum is 255% (cold)." + dialog = engine_constants_southwest, "Speeduino Board" field = "Stoichiometric ratio", stoich field = "Injector Layout", injLayout, { nCylinders <= 4 } @@ -1277,20 +1280,31 @@ menuDialog = main dialog = fuelpump, "Fuel pump" field = "Fuel pump pin", fuelPumpPin - dialog = crankPW, "Cranking Pulsewidths (ms)" - topicHelp = "http://speeduino.com/wiki/index.php/Cranking" + dialog = crankingEnrichDialog, "Cranking Enrichment", yAxis + panel = cranking_enrich_curve + panel = wc_note + + dialog = crankingIgnOptions, "Cranking Timing", yAxis + field = "Cranking bypass", ignBypassEnable + field = "Bypass output pin", ignBypassPin { ignBypassEnable } + field = "Fix cranking timing with trigger", ignCranklock, { TrigPattern == 1 || TrigPattern == 4 || TrigPattern == 10} + + dialog = crankingOptions, "", yAxis field = "Cranking RPM (Max)", crankRPM field = "Flood Clear level", tpsflood field = "" field = "Fuel pump prime duration", fpPrime field = "Priming Pulsewidth", primePulse - field = "" - field = "Cranking Enrichment %", crankingPct - panel = cranking_enrich_curve - field = "" - field = "Cranking bypass", ignBypassEnable - field = "Bypass output pin", ignBypassPin { ignBypassEnable } - field = "Fix cranking timing with trigger", ignCranklock, { TrigPattern == 1 || TrigPattern == 4 || TrigPattern == 10} + + dialog = crankPW, "Cranking Settings", yAxis + topicHelp = "http://speeduino.com/wiki/index.php/Cranking" + panel = crankingOptions, North + ;field = "" + ;field = "Cranking Enrichment %", crankingPct + panel = crankingEnrichDialog, Center + ;field = "" + panel = crankingIgnOptions, South + dialog = aseSettings, "Afterstart Enrichment" field = "Enrichment %", asePct @@ -1432,9 +1446,6 @@ menuDialog = main field = "VVT output pin", vvtPin, { vvtEnabled } field = "VVT solenoid freq.", vvtFreq, { vvtEnabled } - dialog = wc_note - field = "For 99% of engines, warmup must have 100% in the final row. Typical maximum is 255% (cold)." - dialog = warmup, "Warmup Enrichment (WUE) - Percent Multiplier" panel = warmup_curve panel = wc_note @@ -1443,7 +1454,7 @@ menuDialog = main ;Fuel trim composite dialog dialog = inj_trim1TblTitle, "Channel #1" - panel = fuelTrimTable1Tbl, Center, { fuelTrimEnabled } + panel = fuelTrimTable1Tbl, { fuelTrimEnabled } dialog = inj_trim2TblTitle, "Channel #2" panel = fuelTrimTable2Tbl, { fuelTrimEnabled } dialog = inj_trim3TblTitle, "Channel #3" @@ -1458,9 +1469,12 @@ menuDialog = main panel = inj_trim3TblTitle panel = inj_trim4TblTitle - dialog = inj_trimad,"Injector Cyl 1-4 Trims", yAxis + dialog = inj_trim_enable, "" field = "Individual fuel trim enabled", fuelTrimEnabled, { injLayout == 3 } - panel = inj_trimadt, North + + dialog = inj_trimad,"Injector Cyl 1-4 Trims", yAxis + panel = inj_trim_enable, North + panel = inj_trimadt, Center panel = inj_trimadb, South dialog = outputtest_warningmessage, "" @@ -1902,11 +1916,11 @@ cmdtestspk450dc = "E\x03\x0C" curve = cranking_enrich_curve, "Cranking Enrichment Curve" ;topicHelp = "file://$getProjectsDirPath()/docs/xxx.pdf#wue" columnLabel = "Coolant", "Enrich %" - xAxis = -40, 150, 9 - yAxis = 0, 240, 6 + xAxis = -40, 110, 9 + yAxis = 0, 200, 6 xBins = crankingEnrichBins, coolant yBins = crankingEnrichValues - gauge = cltGauge + ;gauge = cltGau25 ; Warmup enrichment VEAL AFR adjustment curve (Not currently working) ;curve = warmup_afr_curve, "AFR Target Temperature Adustment" From 3db9dc99fdfc2738049604ccf22c988f0fd13591 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 27 Jul 2017 12:47:59 +1000 Subject: [PATCH 031/133] New MAP calculation method (More accurate and allows negative calibration values) --- reference/speeduino.ini | 2 +- speeduino/globals.h | 7 ++++++- speeduino/maths.ino | 2 ++ speeduino/sensors.ino | 10 ++++++---- speeduino/utils.ino | 2 ++ 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 58778a7a..12b9f6f2 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -226,7 +226,7 @@ page = 2 boostMaxDuty = scalar, U08, 43, "%", 1.0, 0.0, 0.0, 100.0, 0 tpsMin = scalar, U08, 44, "ADC", 1.0, 0.0, 0.0, 255.0, 0 tpsMax = scalar, U08, 45, "ADC", 1.0, 0.0, 0.0, 255.0, 0 - mapMin = scalar, U08, 46, "kpa", 1.0, 0.0, 0.0, 255.0, 0 + mapMin = scalar, S08, 46, "kpa", 1.0, 0.0, -100, 127.0, 0 mapMax = scalar, U16, 47, "kpa", 1.0, 0.0, 0.0, 25500, 0 fpPrime = scalar, U08, 49, "s", 1.0, 0.0, 0.0, 255.0, 0 stoich = scalar, U08, 50, ":1", 0.1, 0.0, 0.0, 25.5, 1 diff --git a/speeduino/globals.h b/speeduino/globals.h index bd7ed3dc..1b9f6609 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -100,6 +100,9 @@ #define SERIAL_BUFFER_THRESHOLD 32 // When the serial buffer is filled to greater than this threshold value, the serial processing operations will be performed more urgently in order to avoid it overflowing. Serial buffer is 64 bytes long, so the threshold is set at half this as a reasonable figure +#define FUEL_PUMP_ON() *pump_pin_port |= (pump_pin_mask) +#define FUEL_PUMP_OFF() *tach_pin_port &= ~(tach_pin_mask) + const byte signature = 20; //const char signature[] = "speeduino"; @@ -154,6 +157,8 @@ volatile byte ign5_pin_mask; volatile byte *tach_pin_port; volatile byte tach_pin_mask; +volatile byte *pump_pin_port; +volatile byte pump_pin_mask; volatile byte *triggerPri_pin_port; volatile byte triggerPri_pin_mask; @@ -326,7 +331,7 @@ struct config1 { byte boostMaxDuty; byte tpsMin; byte tpsMax; - byte mapMin; + int8_t mapMin; //Must be signed uint16_t mapMax; byte fpPrime; //Time (In seconds) that the fuel pump should be primed for on power up byte stoich; diff --git a/speeduino/maths.ino b/speeduino/maths.ino index fba41c23..6a1033ec 100644 --- a/speeduino/maths.ino +++ b/speeduino/maths.ino @@ -19,6 +19,8 @@ int fastMap(unsigned long x, int in_min, int in_max, int out_min, int out_max) //int fastMap1023toX(unsigned long x, int in_min, int in_max, int out_min, int out_max) //removed ununsed variables, in_min and out_min is aways 0, in_max is aways 1023 #define fastMap1023toX(x, out_max) ( ((unsigned long)x * out_max) >> 10) +//This is a new version that allows for out_min +#define fastMap10Bit(x, out_min, out_max) ( ( ((unsigned long)x * (out_max-out_min)) >> 10 ) + out_min) /* The following are all fast versions of specific divisions diff --git a/speeduino/sensors.ino b/speeduino/sensors.ino index 96fcec8c..ce41fd0c 100644 --- a/speeduino/sensors.ino +++ b/speeduino/sensors.ino @@ -63,8 +63,8 @@ void instanteneousMAPReading() currentStatus.mapADC = ADC_FILTER(tempReading, ADCFILTER_MAP, currentStatus.mapADC); //Very weak filter - currentStatus.MAP = fastMap1023toX(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value - + currentStatus.MAP = fastMap10Bit(currentStatus.mapADC, configPage1.mapMin, configPage1.mapMax); //Get the current MAP value + if(currentStatus.MAP < 0) { currentStatus.MAP = 0; } //Sanity check } @@ -108,7 +108,8 @@ void readMAP() if( (MAPrunningValue != 0) && (MAPcount != 0) ) { currentStatus.mapADC = ldiv(MAPrunningValue, MAPcount).quot; - currentStatus.MAP = fastMap1023toX(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value + currentStatus.MAP = fastMap10Bit(currentStatus.mapADC, configPage1.mapMin, configPage1.mapMax); //Get the current MAP value + if(currentStatus.MAP < 0) { currentStatus.MAP = 0; } //Sanity check MAPcurRev = currentStatus.startRevolutions; //Reset the current rev count MAPrunningValue = 0; MAPcount = 0; @@ -142,7 +143,8 @@ void readMAP() { //Reaching here means that the last cylce has completed and the MAP value should be calculated currentStatus.mapADC = MAPrunningValue; - currentStatus.MAP = fastMap1023toX(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value + currentStatus.MAP = fastMap10Bit(currentStatus.mapADC, configPage1.mapMin, configPage1.mapMax); //Get the current MAP value + if(currentStatus.MAP < 0) { currentStatus.MAP = 0; } //Sanity check MAPcurRev = currentStatus.startRevolutions; //Reset the current rev count MAPrunningValue = 1023; //Reset the latest value so the next reading will always be lower } diff --git a/speeduino/utils.ino b/speeduino/utils.ino index 1cd90aa4..95db98b1 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -501,6 +501,8 @@ void setPinMapping(byte boardID) tach_pin_port = portOutputRegister(digitalPinToPort(pinTachOut)); tach_pin_mask = digitalPinToBitMask(pinTachOut); + pump_pin_port = portOutputRegister(digitalPinToPort(pinFuelPump)); + pump_pin_mask = digitalPinToBitMask(pinFuelPump); //And for inputs #if defined(CORE_STM32) From 9cd31f335f36196aafc094ffff287680b098081d Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 27 Jul 2017 14:04:38 +1000 Subject: [PATCH 032/133] Cleanup of comms variables --- reference/speeduino.ini | 77 ++++++++++++++++++++--------------------- speeduino/comms.ino | 43 ++++++++++++----------- 2 files changed, 61 insertions(+), 59 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 12b9f6f2..687508f0 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -2083,7 +2083,7 @@ cmdtestspk450dc = "E\x03\x0C" ; mapADCGauge = mapADC, "MAP ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 #matADCGauge = matADC, "MAT ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 #cltADCGauge = cltADC, "CLT ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 - tpsADCGauge = tpsADC, "TPS ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 + ;tpsADCGauge = tpsADC, "TPS ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 #batVoltGauge = batteryVoltage, "BAT V", "", 0, 255, -1, -1, 256, 256, 0, 0 accelEnrichGauge = accelEnrich, "Accel Enrich", "%", 50, 150, -1, -1, 999, 999, 0, 0 @@ -2288,39 +2288,37 @@ cmdtestspk450dc = "E\x03\x0C" mapaccaen = bits, U08, 2, [6:6] mapaccden = bits, U08, 2, [7:7] dwell = scalar, U08, 3, "ms", 0.100, 0.000 - map = scalar, U08, 4, "kpa", 2.000, 0.000 - iatRaw = scalar, U08, 5, "°C", 1.000, 0.000 - coolantRaw = scalar, U08, 6, "°C", 1.000, 0.000 - tpsADC = scalar, U08, 7, "ADC", 1.000, 0.000 - batteryVoltage = scalar, U08, 8, "V", 0.100, 0.000 - afr = scalar, U08, 9, "O2", 0.100, 0.000 - egoCorrection = scalar, U08, 10, "%", 1.000, 0.000 - airCorrection = scalar, U08, 11, "%", 1.000, 0.000 - warmupEnrich = scalar, U08, 12, "%", 1.000, 0.000 - rpm = scalar, U16, 13, "rpm", 1.000, 0.000 - accelEnrich = scalar, U08, 15, "%", 1.000, 0.000 - baro = scalar, U08, 16, "%", 1.000, 0.000 + map = scalar, U16, 4, "kpa", 1.000, 0.000 + iatRaw = scalar, U08, 6, "°C", 1.000, 0.000 + coolantRaw = scalar, U08, 7, "°C", 1.000, 0.000 + batCorrection = scalar, U08, 8, "%", 1.000, 0.000 + batteryVoltage = scalar, U08, 9, "V", 0.100, 0.000 + afr = scalar, U08, 10, "O2", 0.100, 0.000 + egoCorrection = scalar, U08, 11, "%", 1.000, 0.000 + airCorrection = scalar, U08, 12, "%", 1.000, 0.000 + warmupEnrich = scalar, U08, 13, "%", 1.000, 0.000 + rpm = scalar, U16, 14, "rpm", 1.000, 0.000 + accelEnrich = scalar, U08, 16, "%", 1.000, 0.000 gammaEnrich = scalar, U08, 17, "%", 1.000, 0.000 veCurr = scalar, U08, 18, "%", 1.000, 0.000 afrTarget = scalar, U08, 19, "O2", 0.100, 0.000 pulseWidth = scalar, U08, 20, "ms", 0.1, 0.000 TPSdot = scalar, U08, 21, "%/s", 10.00, 0.000 - ;advance = scalar, U08, 22, "deg", 1.000, 0.000 advance = scalar, S08, 22, "deg", 1.000, 0.000 tps = scalar, U08, 23, "%", 1.000, 0.000 loopsPerSecond = scalar, U16, 24, "loops", 1.000, 0.000 freeRAM = scalar, U16, 26, "bytes", 1.000, 0.000 - batCorrection = scalar, U08, 28, "%", 1.000, 0.000 - spark = scalar, U08, 29, "bits", 1.000, 0.000 - launchHard = bits, U08, 29, [0:0] - launchSoft = bits, U08, 29, [1:1] - hardLimitOn = bits, U08, 29, [2:2] - softlimitOn = bits, U08, 29, [3:3] - boostCutSpark = bits, U08, 29, [4:4] - error = bits, U08, 29, [5:5] - idle = bits, U08, 29, [6:6] - sync = bits, U08, 29, [7:7] - afr2 = scalar, U08, 30, "O2", 0.100, 0.000 + boostTarget = scalar, U08, 28, "kPa", 2.000, 0.000 + boostDuty = scalar, U08, 29, "%", 1.000, 0.000 + spark = scalar, U08, 30, "bits", 1.000, 0.000 + launchHard = bits, U08, 30, [0:0] + launchSoft = bits, U08, 30, [1:1] + hardLimitOn = bits, U08, 30, [2:2] + softlimitOn = bits, U08, 30, [3:3] + boostCutSpark = bits, U08, 30, [4:4] + error = bits, U08, 30, [5:5] + idle = bits, U08, 30, [6:6] + sync = bits, U08, 30, [7:7] rpmDOT = scalar, S16, 31, "rpm/s", 1.000, 0.000 flex = scalar, U08, 33, "%", 1.000, 0.000 flexFuelCor = scalar, U08, 34, "%", 1.000, 0.000 @@ -2328,12 +2326,12 @@ cmdtestspk450dc = "E\x03\x0C" errors = scalar, U08, 36, "bits", 1.000, 0.000 errorNum = bits, U08, 36, [0:1] currentError = bits, U08, 36, [2:7] - boostTarget = scalar, U08, 37, "kPa", 2.000, 0.000 - boostDuty = scalar, U08, 38, "%", 1.000, 0.000 - idleLoad = scalar, U08, 39, { bitStringValue( idleUnits , iacAlgorithm ) }, 2.000, 0.000 ; This is a combined variable covering both PWM and stepper IACs. The units used depend on which idle algorithm is chosen - testoutputs = scalar, U08, 40, "bits", 1.000, 0.000 - testenabled = bits, U08, 40, [0:0] - testactive = bits, U08, 40, [1:1] + idleLoad = scalar, U08, 37, { bitStringValue( idleUnits , iacAlgorithm ) }, 2.000, 0.000 ; This is a combined variable covering both PWM and stepper IACs. The units used depend on which idle algorithm is chosen + testoutputs = scalar, U08, 38, "bits", 1.000, 0.000 + testenabled = bits, U08, 38, [0:0] + testactive = bits, U08, 38, [1:1] + afr2 = scalar, U08, 39, "O2", 0.100, 0.000 + baro = scalar, U08, 40, "%", 1.000, 0.000 canin_gauge0 = scalar, U16, 41, "", 1.000, 0.000 canin_gauge1 = scalar, U16, 43, "", 1.000, 0.000 canin_gauge2 = scalar, U16, 45, "", 1.000, 0.000 @@ -2343,13 +2341,13 @@ cmdtestspk450dc = "E\x03\x0C" canin_gauge6 = scalar, U16, 53, "", 1.000, 0.000 canin_gauge7 = scalar, U16, 55, "", 1.000, 0.000 canin_gauge8 = scalar, U16, 57, "", 1.000, 0.000 - canin_gauge9 = scalar, U16, 59, "", 1.000, 0.000 - canin_gauge10 = scalar, U16, 61, "", 1.000, 0.000 - canin_gauge11 = scalar, U16, 63, "", 1.000, 0.000 - canin_gauge12 = scalar, U16, 65, "", 1.000, 0.000 - canin_gauge13 = scalar, U16, 67, "", 1.000, 0.000 - canin_gauge14 = scalar, U16, 69, "", 1.000, 0.000 - canin_gauge15 = scalar, U16, 71, "", 1.000, 0.000 + canin_gauge9 = scalar, U16, 59, "", 1.000, 0.000 + canin_gauge10 = scalar, U16, 61, "", 1.000, 0.000 + canin_gauge11 = scalar, U16, 63, "", 1.000, 0.000 + canin_gauge12 = scalar, U16, 65, "", 1.000, 0.000 + canin_gauge13 = scalar, U16, 67, "", 1.000, 0.000 + canin_gauge14 = scalar, U16, 69, "", 1.000, 0.000 + canin_gauge15 = scalar, U16, 71, "", 1.000, 0.000 ; Computed output channels. See "megatuneExamples.ini" for all the ; pre-defined variables, search for "???" and you'll see them. @@ -2430,7 +2428,6 @@ cmdtestspk450dc = "E\x03\x0C" entry = rpm, "RPM", int, "%d" entry = map, "MAP", int, "%d" entry = MAPxRPM, "MAPxRPM", int, "%d" - entry = tpsADC, "tpsADC", int, "%d" entry = tps, "TPS", int, "%d" entry = afr, "O2", float, "%.3f" entry = lambda, "Lambda", float, "%.3f" @@ -2466,6 +2463,7 @@ cmdtestspk450dc = "E\x03\x0C" entry = boostCutOut , "Boost cut", int, "%d" entry = idleLoad, "IAC value", int, "%d" +#if CAN_COMMANDS entry = canin_gauge0, "CanIn CH0", int, "%d" entry = canin_gauge1, "CanIn CH1", int, "%d" entry = canin_gauge2, "CanIn CH2", int, "%d" @@ -2474,6 +2472,7 @@ cmdtestspk450dc = "E\x03\x0C" entry = canin_gauge5, "CanIn CH5", int, "%d" entry = canin_gauge6, "CanIn CH6", int, "%d" entry = canin_gauge7, "CanIn CH7", int, "%d" +#endif [LoggerDefinition] diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 620f8a61..04d82ed2 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -275,19 +275,19 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte cmd, byte portNum) fullStatus[1] = currentStatus.squirt; //Squirt Bitfield fullStatus[2] = currentStatus.engine; //Engine Status Bitfield fullStatus[3] = (byte)(divu100(currentStatus.dwell)); //Dwell in ms * 10 - fullStatus[4] = (byte)(currentStatus.MAP >> 1); //map value is divided by 2 - fullStatus[5] = (byte)(currentStatus.IAT + CALIBRATION_TEMPERATURE_OFFSET); //mat - fullStatus[6] = (byte)(currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET); //Coolant ADC - fullStatus[7] = currentStatus.tpsADC; //TPS (Raw 0-255) - fullStatus[8] = currentStatus.battery10; //battery voltage - fullStatus[9] = currentStatus.O2; //O2 - fullStatus[10] = currentStatus.egoCorrection; //Exhaust gas correction (%) - fullStatus[11] = currentStatus.iatCorrection; //Air temperature Correction (%) - fullStatus[12] = currentStatus.wueCorrection; //Warmup enrichment (%) - fullStatus[13] = lowByte(currentStatus.RPM); //rpm HB - fullStatus[14] = highByte(currentStatus.RPM); //rpm LB - fullStatus[15] = currentStatus.TAEamount; //acceleration enrichment (%) - fullStatus[16] = currentStatus.baro; //Barometer value + fullStatus[4] = lowByte(currentStatus.MAP); //2 bytes for MAP + fullStatus[5] = highByte(currentStatus.MAP); + fullStatus[6] = (byte)(currentStatus.IAT + CALIBRATION_TEMPERATURE_OFFSET); //mat + fullStatus[7] = (byte)(currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET); //Coolant ADC + fullStatus[8] = currentStatus.batCorrection; //Battery voltage correction (%) + fullStatus[9] = currentStatus.battery10; //battery voltage + fullStatus[10] = currentStatus.O2; //O2 + fullStatus[11] = currentStatus.egoCorrection; //Exhaust gas correction (%) + fullStatus[12] = currentStatus.iatCorrection; //Air temperature Correction (%) + fullStatus[13] = currentStatus.wueCorrection; //Warmup enrichment (%) + fullStatus[14] = lowByte(currentStatus.RPM); //rpm HB + fullStatus[15] = highByte(currentStatus.RPM); //rpm LB + fullStatus[16] = currentStatus.TAEamount; //acceleration enrichment (%) fullStatus[17] = currentStatus.corrections; //Total GammaE (%) fullStatus[18] = currentStatus.VE; //Current VE 1 (%) fullStatus[19] = currentStatus.afrTarget; @@ -304,9 +304,9 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte cmd, byte portNum) fullStatus[26] = lowByte(currentStatus.freeRAM); //(byte)((currentStatus.loopsPerSecond >> 8) & 0xFF); fullStatus[27] = highByte(currentStatus.freeRAM); - fullStatus[28] = currentStatus.batCorrection; //Battery voltage correction (%) - fullStatus[29] = currentStatus.spark; //Spark related bitfield - fullStatus[30] = currentStatus.O2_2; //O2 + fullStatus[28] = currentStatus.boostTarget; + fullStatus[29] = currentStatus.boostDuty; + fullStatus[30] = currentStatus.spark; //Spark related bitfield //rpmDOT must be sent as a signed integer fullStatus[31] = lowByte(currentStatus.rpmDOT); @@ -316,10 +316,13 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte cmd, byte portNum) fullStatus[34] = currentStatus.flexCorrection; //Flex fuel correction (% above or below 100) fullStatus[35] = currentStatus.flexIgnCorrection; //Ignition correction (Increased degrees of advance) for flex fuel fullStatus[36] = getNextError(); - fullStatus[37] = currentStatus.boostTarget; - fullStatus[38] = currentStatus.boostDuty; - fullStatus[39] = currentStatus.idleLoad; - fullStatus[40] = currentStatus.testOutputs; + + fullStatus[37] = currentStatus.idleLoad; + fullStatus[38] = currentStatus.testOutputs; + + fullStatus[39] = currentStatus.O2_2; //O2 + fullStatus[40] = currentStatus.baro; //Barometer value + fullStatus[41] = lowByte(currentStatus.canin[0]); fullStatus[42] = highByte(currentStatus.canin[0]); fullStatus[43] = lowByte(currentStatus.canin[1]); From fde322f8f5641439da5034ecc13d5af370b4f7bb Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 27 Jul 2017 15:25:57 +1000 Subject: [PATCH 033/133] Fix for rare RPM error when cranking using missing tooth wheel --- speeduino/decoders.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 68132619..ad683954 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -192,7 +192,7 @@ void triggerSec_missingTooth() uint16_t getRPM_missingTooth() { uint16_t tempRPM = 0; - if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) ) + if( (currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100)) && (toothCurrentCount != 1) ) //Can't do per tooth RPM if we're at tooth #1 as the missing tooth messes the calculation { if(configPage2.TrigSpeed == 1) { crankingGetRPM(configPage2.triggerTeeth/2); } //Account for cam speed else { tempRPM = crankingGetRPM(configPage2.triggerTeeth); } From b9e6d8973ae22cde8b07fe72a042e2138479f6cf Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Fri, 28 Jul 2017 00:48:08 +1000 Subject: [PATCH 034/133] Enable the cranking curve lookup --- speeduino/corrections.ino | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/speeduino/corrections.ino b/speeduino/corrections.ino index 96a0c609..e9bcf88c 100644 --- a/speeduino/corrections.ino +++ b/speeduino/corrections.ino @@ -112,7 +112,11 @@ Additional fuel % to be added when the engine is cranking static inline byte correctionCranking() { byte crankingValue = 100; - if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { crankingValue = 100 + configPage1.crankingPct; } + //if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { crankingValue = 100 + configPage1.crankingPct; } + if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) + { + crankingValue = table2D_getValue(&crankingEnrichTable, currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET); + } return crankingValue; } From 8db6ef21f87396fb5c4550de3cebdc28997b2787 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sat, 29 Jul 2017 22:38:54 +1000 Subject: [PATCH 035/133] New experimental boost control PID --- speeduino/auxiliaries.ino | 6 +- speeduino/speeduino.ino | 9 +- speeduino/src/PID_v1/PID_v1.cpp | 197 +++++++++++++++++++++++++++++++- speeduino/src/PID_v1/PID_v1.h | 142 +++++++++++++++++------ 4 files changed, 314 insertions(+), 40 deletions(-) diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 4c6de520..88805e40 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -3,7 +3,8 @@ Speeduino - Simple engine management for the Arduino Mega 2560 platform Copyright (C) Josh Stewart A full copy of the license may be found in the projects root directory */ -integerPID boostPID(&MAPx100, &boost_pwm_target_value, &boostTargetx100, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call +//integerPID boostPID(&MAPx100, &boost_pwm_target_value, &boostTargetx100, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call +integerPIDnew boostPID(¤tStatus.MAP, &boost_pwm_target_value, &boost_cl_target_boost, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call /* Fan control @@ -67,7 +68,8 @@ void boostControl() { MAPx100 = currentStatus.MAP * 100; - boost_cl_target_boost = get3DTableValue(&boostTable, currentStatus.TPS, currentStatus.RPM) * 2; //Boost target table is in kpa and divided by 2 + if( (boostCounter & 3) == 1) { boost_cl_target_boost = get3DTableValue(&boostTable, currentStatus.TPS, currentStatus.RPM) * 2; } //Boost target table is in kpa and divided by 2 + //If flex fuel is enabled, there can be an adder to the boost target based on ethanol content if( configPage1.flexEnabled == 1 ) { diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index e4058ee1..6a63398c 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -944,7 +944,8 @@ void loop() if ( (timeToLastTooth < MAX_STALL_TIME) || (toothLastToothTime > currentLoopTime) ) //Check how long ago the last tooth was seen compared to now. If it was more than half a second ago then the engine is probably stopped. toothLastToothTime can be greater than currentLoopTime if a pulse occurs between getting the lastest time and doing the comparison { currentStatus.RPM = currentStatus.longRPM = getRPM(); //Long RPM is included here - if(fuelPumpOn == false) { digitalWrite(pinFuelPump, HIGH); fuelPumpOn = true; } //Check if the fuel pump is on and turn it on if it isn't. + //if(fuelPumpOn == false) { digitalWrite(pinFuelPump, HIGH); fuelPumpOn = true; } //Check if the fuel pump is on and turn it on if it isn't. + FUEL_PUMP_ON(); } else { @@ -1024,10 +1025,13 @@ void loop() //And check whether the tooth log buffer is ready if(toothHistoryIndex > TOOTH_LOG_SIZE) { BIT_SET(currentStatus.squirt, BIT_SQUIRT_TOOTHLOG1READY); } + + //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough + boostControl(); } if( (mainLoopCount & 63) == 1) //Every 64 loops { - boostControl(); //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough + //Nothing here currently } //The IAT and CLT readings can be done less frequently. This still runs about 4 times per second if ((mainLoopCount & 255) == 1) //Every 256 loops @@ -1104,6 +1108,7 @@ void loop() if (currentStatus.hasSync && (currentStatus.RPM > 0)) { if(currentStatus.startRevolutions >= configPage2.StgCycles) { ignitionOn = true; fuelOn = true;} //Enable the fuel and ignition, assuming staging revolutions are complete + else { ignitionOn = false; fuelOn = false;} //If it is, check is we're running or cranking if(currentStatus.RPM > ((unsigned int)configPage2.crankRPM * 100)) //Crank RPM stored in byte as RPM / 100 { diff --git a/speeduino/src/PID_v1/PID_v1.cpp b/speeduino/src/PID_v1/PID_v1.cpp index 2bc90449..b870eced 100755 --- a/speeduino/src/PID_v1/PID_v1.cpp +++ b/speeduino/src/PID_v1/PID_v1.cpp @@ -302,9 +302,9 @@ void integerPID::SetSampleTime(int NewSampleTime) if (NewSampleTime > 0) { unsigned long ratioX1000 = (unsigned long)(NewSampleTime * 1000) / (unsigned long)SampleTime; - ki = (ki * ratioX1000) / 1000; + ki = ((unsigned long)ki * ratioX1000) / 1000; //kd /= ratio; - kd = (kd * 1000) / ratioX1000; + kd = ((unsigned long)kd * 1000) / ratioX1000; SampleTime = (unsigned long)NewSampleTime; } } @@ -387,3 +387,196 @@ byte integerPID::GetKi(){ return dispKi;} byte integerPID::GetKd(){ return dispKd;} int integerPID::GetMode(){ return inAuto ? AUTOMATIC : MANUAL;} int integerPID::GetDirection(){ return controllerDirection;} + +//************************************************************************************************************************ +#define PID_P_FACTOR 128 +#define PID_I_FACTOR 1024 +#define PID_D_FACTOR 128 + +/*Constructor (...)********************************************************* + * The parameters specified here are those for for which we can't set up + * reliable defaults, so we need to have the user set them. + ***************************************************************************/ +integerPIDnew::integerPIDnew(long* Input, long* Output, long* Setpoint, + byte Kp, byte Ki, byte Kd, byte ControllerDirection) +{ + + myOutput = Output; + myInput = (long*)Input; + mySetpoint = Setpoint; + inAuto = false; + + integerPIDnew::SetOutputLimits(0, 255); //default output limit corresponds to + //the arduino pwm limits + + SampleTime = 50; //default Controller Sample Time is 0.05 seconds + + integerPIDnew::SetControllerDirection(ControllerDirection); + integerPIDnew::SetTunings(Kp, Ki, Kd); + + lastTime = millis()-SampleTime; +} + +/* Compute() ********************************************************************** + * This, as they say, is where the magic happens. this function should be called + * every time "void loop()" executes. the function will decide for itself whether a new + * pid Output needs to be computed. returns true when the output is computed, + * false when nothing has been done. + **********************************************************************************/ +bool integerPIDnew::Compute() +{ + if(!inAuto) return false; + unsigned long now = millis(); + //SampleTime = (now - lastTime); + unsigned long timeChange = (now - lastTime); + if(timeChange >= SampleTime) + { + /*Compute all the working error variables*/ + long input = *myInput; + long error = (*mySetpoint - input) * 100; //Error is multiplied by 100 in order to allow use of 0-100% rather than 0-1 + ITerm += (ki * error)/PID_I_FACTOR; //Note that ki is multiplied by 1024 to avoid floats. It is divided back here AFTER being multiplied by error + if(ITerm > outMax) { ITerm = outMax; } + else if(ITerm < outMin) { ITerm = outMin; } + long dInput = (input - lastInput); + + /*Compute PID Output*/ + long output = (kp * error)/100 + ITerm - (kd * dInput)/100; //100 is used to allow 0-100% rather than 0-1 + + if(output > outMax) output = outMax; + else if(output < outMin) output = outMin; + *myOutput = output; + + /*Remember some variables for next time*/ + lastInput = input; + lastTime = now; + + return true; + } + else return false; +} + + +/* SetTunings(...)************************************************************* + * This function allows the controller's dynamic performance to be adjusted. + * it's called automatically from the constructor, but tunings can also + * be adjusted on the fly during normal operation + ******************************************************************************/ +void integerPIDnew::SetTunings(byte Kp, byte Ki, byte Kd) +{ + if (Kp<0 || Ki<0 || Kd<0) return; + if ( dispKp == Kp && dispKi == Ki && dispKd == Kd ) return; //Only do anything if one of the values has changed + dispKp = Kp; dispKi = Ki; dispKd = Kd; + + /* + double SampleTimeInSec = ((double)SampleTime)/1000; + kp = Kp; + ki = Ki * SampleTimeInSec; + kd = Kd / SampleTimeInSec; + */ + long InverseSampleTimeInSec = 1000 / SampleTime; + kp = Kp; + ki = (long)((long)Ki * PID_I_FACTOR) / InverseSampleTimeInSec; + kd = (long)Kd * InverseSampleTimeInSec; + + if(controllerDirection == REVERSE) + { + kp = (0 - kp); + ki = (0 - ki); + kd = (0 - kd); + } +} + +/* SetSampleTime(...) ********************************************************* + * sets the period, in Milliseconds, at which the calculation is performed + ******************************************************************************/ +void integerPIDnew::SetSampleTime(int NewSampleTime) +{ + if (SampleTime == (unsigned long)NewSampleTime) return; //If new value = old value, no action required. + if (NewSampleTime > 0) + { + unsigned long ratioX1000 = (unsigned long)(NewSampleTime * 1000) / (unsigned long)SampleTime; + ki = ((unsigned long)ki * ratioX1000) / 1000; + //kd /= ratio; + kd = ((unsigned long)kd * 1000) / ratioX1000; + SampleTime = (unsigned long)NewSampleTime; + } +} + +/* SetOutputLimits(...)**************************************************** + * This function will be used far more often than SetInputLimits. while + * the input to the controller will generally be in the 0-1023 range (which is + * the default already,) the output will be a little different. maybe they'll + * be doing a time window and will need 0-8000 or something. or maybe they'll + * want to clamp it from 0-125. who knows. at any rate, that can all be done + * here. + **************************************************************************/ +void integerPIDnew::SetOutputLimits(long Min, long Max) +{ + if(Min >= Max) return; + outMin = Min; + outMax = Max; + + if(inAuto) + { + if(*myOutput > outMax) *myOutput = outMax; + else if(*myOutput < outMin) *myOutput = outMin; + + if(ITerm > outMax) ITerm= outMax; + else if(ITerm < outMin) ITerm= outMin; + } +} + +/* SetMode(...)**************************************************************** + * Allows the controller Mode to be set to manual (0) or Automatic (non-zero) + * when the transition from manual to auto occurs, the controller is + * automatically initialized + ******************************************************************************/ +void integerPIDnew::SetMode(int Mode) +{ + bool newAuto = (Mode == AUTOMATIC); + if(newAuto == !inAuto) + { /*we just went from manual to auto*/ + integerPIDnew::Initialize(); + } + inAuto = newAuto; +} + +/* Initialize()**************************************************************** + * does all the things that need to happen to ensure a bumpless transfer + * from manual to automatic mode. + ******************************************************************************/ +void integerPIDnew::Initialize() +{ + ITerm = *myOutput; + lastInput = *myInput; + if(ITerm > outMax) ITerm = outMax; + else if(ITerm < outMin) ITerm = outMin; +} + +/* SetControllerDirection(...)************************************************* + * The PID will either be connected to a DIRECT acting process (+Output leads + * to +Input) or a REVERSE acting process(+Output leads to -Input.) we need to + * know which one, because otherwise we may increase the output when we should + * be decreasing. This is called from the constructor. + ******************************************************************************/ +void integerPIDnew::SetControllerDirection(byte Direction) +{ + if(inAuto && Direction !=controllerDirection) + { + kp = (0 - kp); + ki = (0 - ki); + kd = (0 - kd); + } + controllerDirection = Direction; +} + +/* Status Funcions************************************************************* + * Just because you set the Kp=-1 doesn't mean it actually happened. these + * functions query the internal state of the PID. they're here for display + * purposes. this are the functions the PID Front-end uses for example + ******************************************************************************/ +byte integerPIDnew::GetKp(){ return dispKp; } +byte integerPIDnew::GetKi(){ return dispKi;} +byte integerPIDnew::GetKd(){ return dispKd;} +int integerPIDnew::GetMode(){ return inAuto ? AUTOMATIC : MANUAL;} +int integerPIDnew::GetDirection(){ return controllerDirection;} diff --git a/speeduino/src/PID_v1/PID_v1.h b/speeduino/src/PID_v1/PID_v1.h index df84fb15..d2c8330b 100755 --- a/speeduino/src/PID_v1/PID_v1.h +++ b/speeduino/src/PID_v1/PID_v1.h @@ -15,9 +15,9 @@ class PID #define REVERSE 1 //commonly used functions ************************************************************************** - PID(long*, long*, long*, // * constructor. links the PID to the Input, Output, and + PID(long*, long*, long*, // * constructor. links the PID to the Input, Output, and byte, byte, byte, byte); // Setpoint. Initial tuning parameters are also set here - + void SetMode(int Mode); // * sets PID to either Manual (0) or Auto (non-0) bool Compute(); // * performs the PID calculation. it should be @@ -28,47 +28,47 @@ class PID void SetOutputLimits(long, long); //clamps the output to a specific range. 0-255 by default, but //it's likely the user will want to change this depending on //the application - + //available but not commonly used functions ******************************************************** - void SetTunings(byte, byte, // * While most users will set the tunings once in the + void SetTunings(byte, byte, // * While most users will set the tunings once in the byte); // constructor, this function gives the user the option // of changing tunings during runtime for Adaptive control void SetControllerDirection(byte); // * Sets the Direction, or "Action" of the controller. DIRECT // means the output will increase when error is positive. REVERSE // means the opposite. it's very unlikely that this will be needed // once it is set in the constructor. - void SetSampleTime(int); // * sets the frequency, in Milliseconds, with which + void SetSampleTime(int); // * sets the frequency, in Milliseconds, with which // the PID calculation is performed. default is 100 - - - + + + //Display functions **************************************************************** byte GetKp(); // These functions query the pid for interal values. byte GetKi(); // they were created mainly for the pid front-end, - byte GetKd(); // where it's important to know what is actually + byte GetKd(); // where it's important to know what is actually int GetMode(); // inside the PID. int GetDirection(); // private: void Initialize(); - - byte dispKp; // * we'll hold on to the tuning parameters in user-entered + + byte dispKp; // * we'll hold on to the tuning parameters in user-entered byte dispKi; // format for display purposes byte dispKd; // - + byte kp; // * (P)roportional Tuning Parameter - byte ki; // * (I)ntegral Tuning Parameter - byte kd; // * (D)erivative Tuning Parameter + byte ki; // * (I)ntegral Tuning Parameter + byte kd; // * (D)erivative Tuning Parameter int controllerDirection; long *myInput; // * Pointers to the Input, Output, and Setpoint variables - long *myOutput; // This creates a hard link between the variables and the + long *myOutput; // This creates a hard link between the variables and the long *mySetpoint; // PID, freeing the user from having to constantly tell us // what these values are. with pointers we'll just know. - + unsigned long lastTime; long ITerm, lastInput; @@ -90,9 +90,9 @@ class integerPID #define REVERSE 1 //commonly used functions ************************************************************************** - integerPID(long*, long*, long*, // * constructor. links the PID to the Input, Output, and + integerPID(long*, long*, long*, // * constructor. links the PID to the Input, Output, and byte, byte, byte, byte); // Setpoint. Initial tuning parameters are also set here - + void SetMode(int Mode); // * sets PID to either Manual (0) or Auto (non-0) bool Compute(); // * performs the PID calculation. it should be @@ -103,47 +103,122 @@ class integerPID void SetOutputLimits(long, long); //clamps the output to a specific range. 0-255 by default, but //it's likely the user will want to change this depending on //the application - + //available but not commonly used functions ******************************************************** - void SetTunings(byte, byte, // * While most users will set the tunings once in the + void SetTunings(byte, byte, // * While most users will set the tunings once in the byte); // constructor, this function gives the user the option // of changing tunings during runtime for Adaptive control void SetControllerDirection(byte); // * Sets the Direction, or "Action" of the controller. DIRECT // means the output will increase when error is positive. REVERSE // means the opposite. it's very unlikely that this will be needed // once it is set in the constructor. - void SetSampleTime(int); // * sets the frequency, in Milliseconds, with which + void SetSampleTime(int); // * sets the frequency, in Milliseconds, with which // the PID calculation is performed. default is 100 - - - + + + //Display functions **************************************************************** byte GetKp(); // These functions query the pid for interal values. byte GetKi(); // they were created mainly for the pid front-end, - byte GetKd(); // where it's important to know what is actually + byte GetKd(); // where it's important to know what is actually int GetMode(); // inside the PID. int GetDirection(); // private: void Initialize(); - - byte dispKp; // * we'll hold on to the tuning parameters in user-entered + + byte dispKp; // * we'll hold on to the tuning parameters in user-entered byte dispKi; // format for display purposes byte dispKd; // - - int kp; // * (P)roportional Tuning Parameter - int ki; // * (I)ntegral Tuning Parameter - int kd; // * (D)erivative Tuning Parameter + + uint16_t kp; // * (P)roportional Tuning Parameter + uint16_t ki; // * (I)ntegral Tuning Parameter + uint16_t kd; // * (D)erivative Tuning Parameter int controllerDirection; long *myInput; // * Pointers to the Input, Output, and Setpoint variables - long *myOutput; // This creates a hard link between the variables and the + long *myOutput; // This creates a hard link between the variables and the long *mySetpoint; // PID, freeing the user from having to constantly tell us // what these values are. with pointers we'll just know. - + + unsigned long lastTime; + long ITerm, lastInput; + + unsigned long SampleTime; + long outMin, outMax; + bool inAuto; +}; + +class integerPIDnew +{ + + + public: + + //Constants used in some of the functions below + #define AUTOMATIC 1 + #define MANUAL 0 + #define DIRECT 0 + #define REVERSE 1 + + //commonly used functions ************************************************************************** + integerPIDnew(long*, long*, long*, // * constructor. links the PID to the Input, Output, and + byte, byte, byte, byte); // Setpoint. Initial tuning parameters are also set here + + void SetMode(int Mode); // * sets PID to either Manual (0) or Auto (non-0) + + bool Compute(); // * performs the PID calculation. it should be + // called every time loop() cycles. ON/OFF and + // calculation frequency can be set using SetMode + // SetSampleTime respectively + + void SetOutputLimits(long, long); //clamps the output to a specific range. 0-255 by default, but + //it's likely the user will want to change this depending on + //the application + + + + //available but not commonly used functions ******************************************************** + void SetTunings(byte, byte, // * While most users will set the tunings once in the + byte); // constructor, this function gives the user the option + // of changing tunings during runtime for Adaptive control + void SetControllerDirection(byte); // * Sets the Direction, or "Action" of the controller. DIRECT + // means the output will increase when error is positive. REVERSE + // means the opposite. it's very unlikely that this will be needed + // once it is set in the constructor. + void SetSampleTime(int); // * sets the frequency, in Milliseconds, with which + // the PID calculation is performed. default is 100 + + + + //Display functions **************************************************************** + byte GetKp(); // These functions query the pid for interal values. + byte GetKi(); // they were created mainly for the pid front-end, + byte GetKd(); // where it's important to know what is actually + int GetMode(); // inside the PID. + int GetDirection(); // + + private: + void Initialize(); + + byte dispKp; // * we'll hold on to the tuning parameters in user-entered + byte dispKi; // format for display purposes + byte dispKd; // + + uint16_t kp; // * (P)roportional Tuning Parameter + uint16_t ki; // * (I)ntegral Tuning Parameter + uint16_t kd; // * (D)erivative Tuning Parameter + + int controllerDirection; + + long *myInput; // * Pointers to the Input, Output, and Setpoint variables + long *myOutput; // This creates a hard link between the variables and the + long *mySetpoint; // PID, freeing the user from having to constantly tell us + // what these values are. with pointers we'll just know. + unsigned long lastTime; long ITerm, lastInput; @@ -152,4 +227,3 @@ class integerPID bool inAuto; }; #endif - From c69499497b3698c93153124b11d248ce98ab3405 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sun, 30 Jul 2017 14:25:07 +1000 Subject: [PATCH 036/133] Better baro reading on startup --- speeduino/sensors.ino | 6 ++++-- speeduino/speeduino.ino | 23 +++++++++++++---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/speeduino/sensors.ino b/speeduino/sensors.ino index ce41fd0c..7eee44d2 100644 --- a/speeduino/sensors.ino +++ b/speeduino/sensors.ino @@ -61,7 +61,9 @@ void instanteneousMAPReading() if( (tempReading >= VALID_MAP_MAX) || (tempReading <= VALID_MAP_MIN) ) { mapErrorCount += 1; } else { mapErrorCount = 0; } - currentStatus.mapADC = ADC_FILTER(tempReading, ADCFILTER_MAP, currentStatus.mapADC); //Very weak filter + //During startup a call is made here to get the baro reading. In this case, we can't apply the ADC filter + if(initialisationComplete == true) { currentStatus.mapADC = ADC_FILTER(tempReading, ADCFILTER_MAP, currentStatus.mapADC); } //Very weak filter + else { currentStatus.mapADC = tempReading; } //Baro reading (No filter) currentStatus.MAP = fastMap10Bit(currentStatus.mapADC, configPage1.mapMin, configPage1.mapMax); //Get the current MAP value if(currentStatus.MAP < 0) { currentStatus.MAP = 0; } //Sanity check @@ -219,7 +221,7 @@ void readBaro() currentStatus.baroADC = ADC_FILTER(tempReading, ADCFILTER_BARO, currentStatus.baroADC); //Very weak filter - currentStatus.baro = fastMap1023toX(currentStatus.baroADC, configPage1.mapMax); //Get the current MAP value + currentStatus.baro = fastMap10Bit(currentStatus.baroADC, configPage1.mapMin, configPage1.mapMax); //Get the current MAP value } } diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 6a63398c..44b440cb 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -231,8 +231,19 @@ void setup() //Set the tacho output default state digitalWrite(pinTachOut, HIGH); + //Perform all initialisations + initialiseSchedulers(); + initialiseTimers(); + //initialiseDisplay(); + initialiseIdle(); + initialiseFan(); + initialiseAuxPWM(); + initialiseCorrections(); + initialiseADC(); + //Lookup the current MAP reading for barometric pressure - readMAP(); + //readMAP(); + instanteneousMAPReading(); //barometric reading can be taken from either an external sensor if enabled, or simply by using the initial MAP value if ( configPage3.useExtBaro != 0 ) { @@ -257,18 +268,10 @@ void setup() if ((EEPROM.read(EEPROM_LAST_BARO) >= BARO_MIN) && (EEPROM.read(EEPROM_LAST_BARO) <= BARO_MAX)) //Make sure it's not invalid (Possible on first run etc) { currentStatus.baro = EEPROM.read(EEPROM_LAST_BARO); } //last baro correction else { currentStatus.baro = 100; } //Final fall back position. + } } - //Perform all initialisations - initialiseSchedulers(); - initialiseTimers(); - //initialiseDisplay(); - initialiseIdle(); - initialiseFan(); - initialiseAuxPWM(); - initialiseCorrections(); - initialiseADC(); //Check whether the flex sensor is enabled and if so, attach an interupt for it if(configPage1.flexEnabled) From 07afb535d0cf9a2eb98d07d8624b89096e8d4ade Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sun, 30 Jul 2017 23:04:37 +1000 Subject: [PATCH 037/133] Updater for July firmware --- speeduino/auxiliaries.ino | 3 ++- speeduino/speeduino.ino | 4 +--- speeduino/updates.ino | 19 ++++++++++++++++++- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 88805e40..d46311c7 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -3,7 +3,8 @@ Speeduino - Simple engine management for the Arduino Mega 2560 platform Copyright (C) Josh Stewart A full copy of the license may be found in the projects root directory */ -//integerPID boostPID(&MAPx100, &boost_pwm_target_value, &boostTargetx100, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call +//Old PID method. Retained incase the new one has issues +//integerPID boostPID(&MAPx100, &boost_pwm_target_value, &boostTargetx100, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); integerPIDnew boostPID(¤tStatus.MAP, &boost_pwm_target_value, &boost_cl_target_boost, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call /* diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 44b440cb..a706a6b8 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -242,7 +242,6 @@ void setup() initialiseADC(); //Lookup the current MAP reading for barometric pressure - //readMAP(); instanteneousMAPReading(); //barometric reading can be taken from either an external sensor if enabled, or simply by using the initial MAP value if ( configPage3.useExtBaro != 0 ) @@ -268,7 +267,6 @@ void setup() if ((EEPROM.read(EEPROM_LAST_BARO) >= BARO_MIN) && (EEPROM.read(EEPROM_LAST_BARO) <= BARO_MAX)) //Make sure it's not invalid (Possible on first run etc) { currentStatus.baro = EEPROM.read(EEPROM_LAST_BARO); } //last baro correction else { currentStatus.baro = 100; } //Final fall back position. - } } @@ -947,8 +945,8 @@ void loop() if ( (timeToLastTooth < MAX_STALL_TIME) || (toothLastToothTime > currentLoopTime) ) //Check how long ago the last tooth was seen compared to now. If it was more than half a second ago then the engine is probably stopped. toothLastToothTime can be greater than currentLoopTime if a pulse occurs between getting the lastest time and doing the comparison { currentStatus.RPM = currentStatus.longRPM = getRPM(); //Long RPM is included here - //if(fuelPumpOn == false) { digitalWrite(pinFuelPump, HIGH); fuelPumpOn = true; } //Check if the fuel pump is on and turn it on if it isn't. FUEL_PUMP_ON(); + fuelPumpOn = true; //Not sure if this is needed. } else { diff --git a/speeduino/updates.ino b/speeduino/updates.ino index 96ddee79..03c02ac4 100644 --- a/speeduino/updates.ino +++ b/speeduino/updates.ino @@ -8,7 +8,7 @@ void doUpdates() { - #define CURRENT_DATA_VERSION 4 + #define CURRENT_DATA_VERSION 5 //May 2017 firmware introduced a -40 offset on the ignition table. Update that table to +40 if(EEPROM.read(EEPROM_DATA_VERSION) == 2) @@ -36,6 +36,23 @@ void doUpdates() writeConfig(); EEPROM.write(EEPROM_DATA_VERSION, 4); } + //July 2017 adds a cranking enrichment curve in place of the single value. This converts that single value to the curve + if(EEPROM.read(EEPROM_DATA_VERSION) == 4) + { + //Some default values for the bins (Doesn't matter too much here as the values against them will all be identical) + configPage11.crankingEnrichBins[0] = 0; + configPage11.crankingEnrichBins[1] = 40; + configPage11.crankingEnrichBins[2] = 70; + configPage11.crankingEnrichBins[3] = 100; + + configPage11.crankingEnrichValues[0] = 100 + configPage1.crankingPct; + configPage11.crankingEnrichValues[1] = 100 + configPage1.crankingPct; + configPage11.crankingEnrichValues[2] = 100 + configPage1.crankingPct; + configPage11.crankingEnrichValues[3] = 100 + configPage1.crankingPct; + + writeConfig(); + EEPROM.write(EEPROM_DATA_VERSION, 5); + } //Final check is always for 255 and 0 (Brand new arduino) if( (EEPROM.read(EEPROM_DATA_VERSION) == 0) || (EEPROM.read(EEPROM_DATA_VERSION) == 255) ) From 523c05fda9d2c0abeb8dee3e425d0b9b52230338 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sun, 30 Jul 2017 23:07:48 +1000 Subject: [PATCH 038/133] July signature and base tune --- reference/Speeduino base tune.msq | 25 ++++++++++++++++++------- reference/speeduino.ini | 8 ++++---- speeduino/comms.ino | 4 ++-- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/reference/Speeduino base tune.msq b/reference/Speeduino base tune.msq index c2cd123c..92ad043c 100644 --- a/reference/Speeduino base tune.msq +++ b/reference/Speeduino base tune.msq @@ -1,7 +1,7 @@ - - + + "CAN ID 0" @@ -366,7 +366,7 @@ 1200.0 70.0 "Board Default" -"ONE" +"No" "ONE" "Board Default" "ONE" @@ -429,10 +429,7 @@ "Pullup" "No" "No" -"ONE" -"ONE" -"ONE" -"ONE" +"A0" 400.0 5.0 2000.0 @@ -810,6 +807,20 @@ 255.0 255.0 + + + -40.0 + 0.0 + 30.0 + 70.0 + + + 138.0 + 115.0 + 105.0 + 100.0 + + diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 687508f0..2d2e2f1c 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -7,7 +7,7 @@ queryCommand = "Q" ;signature = 20 - signature = "speeduino 201707-dev" + signature = "speeduino 201707" versionInfo = "S" ; Put this in the title bar. ;[TunerStudio] @@ -105,7 +105,7 @@ pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012", "P\013" pageReadCommand = "V", "V", "V", "V", "V", "V", "V", "V", "V", "V", "V" pageValueWrite = "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v" -; pageChunkWrite = "" ; No chunk write for standard MS +; pageChunkWrite = "" ; No chunk write yet blockingFactor = 2048 tableBlockingFactor = 2048 @@ -114,7 +114,7 @@ blockReadTimeout = 2000 ;tsWriteBlocks = off ;writeBlocks = off - interWriteDelay = 10 + interWriteDelay = 5 ;New for TS 3.0.08ish upwards, define lists of standard I/O options @@ -2331,7 +2331,7 @@ cmdtestspk450dc = "E\x03\x0C" testenabled = bits, U08, 38, [0:0] testactive = bits, U08, 38, [1:1] afr2 = scalar, U08, 39, "O2", 0.100, 0.000 - baro = scalar, U08, 40, "%", 1.000, 0.000 + baro = scalar, U08, 40, "kpa", 1.000, 0.000 canin_gauge0 = scalar, U16, 41, "", 1.000, 0.000 canin_gauge1 = scalar, U16, 43, "", 1.000, 0.000 canin_gauge2 = scalar, U16, 45, "", 1.000, 0.000 diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 04d82ed2..bcee111d 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -80,12 +80,12 @@ void command() break; case 'S': // send code version - Serial.print("Speeduino 2017.07-dev"); + Serial.print("Speeduino 2017.07"); currentStatus.secl = 0; //This is required in TS3 due to its stricter timings break; case 'Q': // send code version - Serial.print("speeduino 201707-dev"); + Serial.print("speeduino 201707"); break; case 'V': // send VE table and constants in binary From e9861a299fd238a3a413a922668726030acb046b Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sun, 30 Jul 2017 23:09:42 +1000 Subject: [PATCH 039/133] Additional cranking check --- speeduino/decoders.ino | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index ad683954..bd04cf12 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -88,14 +88,18 @@ It takes an argument of the full (COMPLETE) number of teeth per revolution. For static inline int crankingGetRPM(byte totalTeeth) { uint16_t tempRPM = 0; - if( (toothLastToothTime > 0) && (toothLastMinusOneToothTime > 0) ) + if( currentStatus.startRevolutions >= 2 ) { - noInterrupts(); - revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime) * totalTeeth; - interrupts(); - tempRPM = (US_IN_MINUTE / revolutionTime); - if( tempRPM >= MAX_RPM ) { tempRPM = currentStatus.RPM; } //Sanity check. This can prevent spiking caused by noise on individual teeth. The new RPM should never be above 4x the cranking setting value (Remembering that this function is only called is the current RPM is less than the cranking setting) + if( (toothLastToothTime > 0) && (toothLastMinusOneToothTime > 0) ) + { + noInterrupts(); + revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime) * totalTeeth; + interrupts(); + tempRPM = (US_IN_MINUTE / revolutionTime); + if( tempRPM >= MAX_RPM ) { tempRPM = currentStatus.RPM; } //Sanity check. This can prevent spiking caused by noise on individual teeth. The new RPM should never be above 4x the cranking setting value (Remembering that this function is only called is the current RPM is less than the cranking setting) + } } + return tempRPM; } @@ -152,6 +156,8 @@ void triggerPri_missingTooth() if ( (curGap > targetGap) || (toothCurrentCount > triggerActualTeeth) ) { if(toothCurrentCount < (triggerActualTeeth) && (currentStatus.hasSync == true) ) { currentStatus.hasSync = false; } //This occurs when we're at tooth #1, but haven't seen all the other teeth. This indicates a signal issue so we flag lost sync so this will attempt to resync on the next revolution. + //This is to handle a special case on startup where sync can be obtained and the system immediately thinks the revs have jumped: + //else if (currentStatus.hasSync == false && toothCurrentCount < checkSyncToothCount ) { triggerFilterTime = 0; } else { toothCurrentCount = 1; From 6727b0a7501be0f2238b8cd3db1200cefb413035 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 1 Aug 2017 09:39:50 +1000 Subject: [PATCH 040/133] Activate per tooth timing on dual wheel --- reference/speeduino.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 2d2e2f1c..1acfce78 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -1332,7 +1332,7 @@ menuDialog = main field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 } ;Dual wheel, 4G63 and Audi 135 field = "" field = "#The below option is EXPERIMENTAL! If unsure what this is, please set to No" - field = "User per tooth ignition calculation", perToothIgn, {TrigPattern == 0 || TrigPattern == 1 } ;Only works for missing tooth + field = "User per tooth ignition calculation", perToothIgn, {TrigPattern == 0 || TrigPattern == 1 || TrigPattern == 2 } ;Only works for missing tooth, distributor and dual wheel dialog = sparkSettings,"Spark Settings",4 field = "Spark output mode", sparkMode From 32b5c4684eaa0a79245267a3b2dcacaf2718a0bf Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 3 Aug 2017 00:35:10 +1000 Subject: [PATCH 041/133] Minor changes to multiple decoders --- speeduino/decoders.ino | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index bd04cf12..43e9b7ee 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -157,7 +157,7 @@ void triggerPri_missingTooth() { if(toothCurrentCount < (triggerActualTeeth) && (currentStatus.hasSync == true) ) { currentStatus.hasSync = false; } //This occurs when we're at tooth #1, but haven't seen all the other teeth. This indicates a signal issue so we flag lost sync so this will attempt to resync on the next revolution. //This is to handle a special case on startup where sync can be obtained and the system immediately thinks the revs have jumped: - //else if (currentStatus.hasSync == false && toothCurrentCount < checkSyncToothCount ) { triggerFilterTime = 0; } + //else if (currentStatus.hasSync == false && toothCurrentCount < checkSyncToothCount ) { triggerFilterTime = 0; } else { toothCurrentCount = 1; @@ -810,7 +810,7 @@ uint16_t getRPM_4G63() //Because these signals aren't even (Alternating 110 and 70 degrees), this needs a special function if(currentStatus.hasSync == true) { - if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) ) + if( currentStatus.RPM < ((unsigned int)configPage2.crankRPM * 100) ) { int tempToothAngle; unsigned long toothTime; @@ -823,6 +823,8 @@ uint16_t getRPM_4G63() interrupts(); toothTime = toothTime * 36; tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime; + revolutionTime = (10UL * toothTime) / tempToothAngle; + } } else { tempRPM = stdGetRPM(); } @@ -1096,7 +1098,7 @@ void triggerPri_Audi135() { curTime = micros(); curGap = curTime - toothSystemLastToothTime; - if ( curGap > triggerFilterTime ) + if ( (curGap > triggerFilterTime) || (currentStatus.startRevolutions == 0) ) { toothSystemCount++; @@ -1865,7 +1867,7 @@ void triggerPri_Subaru67() toothLastMinusOneToothTime = toothLastToothTime; toothLastToothTime = curTime; - if ( (currentStatus.hasSync == false) || configPage2.useResync) + if ( (currentStatus.hasSync == false) || configPage2.useResync || (currentStatus.startRevolutions == 0) ) { //Sync is determined by counting the number of cam teeth that have passed between the crank teeth switch(secondaryToothCount) @@ -1935,7 +1937,15 @@ void triggerSec_Subaru67() uint16_t getRPM_Subaru67() { //if(currentStatus.RPM < configPage2.crankRPM) { return crankingGetRPM(configPage2.triggerTeeth); } - return stdGetRPM(); + + uint16_t tempRPM = 0; + if(currentStatus.startRevolutions > 0) + { + //As the tooth count is over 720 degrees, we need to double the RPM value and halve the revolution time + tempRPM = stdGetRPM() << 1; + revolutionTime = revolutionTime >> 1; //Revolution time has to be divided by 2 as otherwise it would be over 720 degrees (triggerActualTeeth = nCylinders) + } + return tempRPM; } int getCrankAngle_Subaru67(int timePerDegree) @@ -2011,7 +2021,7 @@ void triggerPri_Daihatsu() curTime = micros(); curGap = curTime - toothLastToothTime; - //if ( curGap >= triggerFilterTime ) + //if ( curGap >= triggerFilterTime || (currentStatus.startRevolutions == 0 ) { toothSystemCount++; From e9db1a2f78be2770c0a26717f1753939eb54f42d Mon Sep 17 00:00:00 2001 From: "Vitor Moreno B. Sales" Date: Wed, 2 Aug 2017 22:46:48 -0300 Subject: [PATCH 042/133] New update to STM32 Using timer bits instead (mainLoopCount & 31) comparators. Few changes to support another library on STM32 --- speeduino/auxiliaries.ino | 1 - speeduino/cancomms.h | 6 +- speeduino/cancomms.ino | 2 +- speeduino/comms.h | 2 +- speeduino/comms.ino | 69 +- speeduino/corrections.h | 3 +- speeduino/corrections.ino | 309 +++++---- speeduino/decoders.h | 13 +- speeduino/decoders.ino | 1373 ++++++++++++++++++++++--------------- speeduino/errors.ino | 26 +- speeduino/globals.h | 38 +- speeduino/idle.h | 4 +- speeduino/idle.ino | 135 ++-- speeduino/maths.h | 2 +- speeduino/maths.ino | 98 +-- speeduino/scheduledIO.h | 31 +- speeduino/scheduledIO.ino | 57 +- speeduino/sensors.h | 2 +- speeduino/sensors.ino | 122 ++-- speeduino/speeduino.ino | 233 +++---- speeduino/storage.h | 26 - speeduino/storage.ino | 561 +-------------- speeduino/table.ino | 533 +++++++------- speeduino/timers.ino | 21 +- speeduino/updates.ino | 52 +- speeduino/utils.h | 4 +- speeduino/utils.ino | 122 ++-- 27 files changed, 1799 insertions(+), 2046 deletions(-) diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index a0e560fb..45438685 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -156,4 +156,3 @@ void boostControl() { } void vvtControl() { } #endif - diff --git a/speeduino/cancomms.h b/speeduino/cancomms.h index eba8135b..0d31a4b5 100644 --- a/speeduino/cancomms.h +++ b/speeduino/cancomms.h @@ -15,7 +15,8 @@ uint8_t Glow, Ghigh; #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) HardwareSerial &CANSerial = Serial3; #elif defined(CORE_STM32) - HardwareSerial &CANSerial = Serial2; + SerialUART &CANSerial = Serial2; + //HardwareSerial &CANSerial = Serial2; #elif defined(CORE_TEENSY) HardwareSerial &CANSerial = Serial2; #endif @@ -23,5 +24,4 @@ uint8_t Glow, Ghigh; void canCommand();//This is the heart of the Command Line Interpeter. All that needed to be done was to make it human readable. void sendCancommand(uint8_t cmdtype , uint16_t canadddress, uint8_t candata1, uint8_t candata2, uint16_t paramgroup); -#endif // CANCOMMS_H - +#endif // CANCOMMS_H diff --git a/speeduino/cancomms.ino b/speeduino/cancomms.ino index f972b7a6..cac44fdc 100644 --- a/speeduino/cancomms.ino +++ b/speeduino/cancomms.ino @@ -101,6 +101,7 @@ void canCommand() offset = word(CANSerial.read(), tmp); tmp = CANSerial.read(); length = word(CANSerial.read(), tmp); + sendValues(offset, length, 3); } else @@ -165,4 +166,3 @@ void sendCancommand(uint8_t cmdtype, uint16_t canaddress, uint8_t candata1, uint break; } } - diff --git a/speeduino/comms.h b/speeduino/comms.h index 24f5100b..81e1016e 100644 --- a/speeduino/comms.h +++ b/speeduino/comms.h @@ -49,4 +49,4 @@ void sendToothLog(bool useChar); void testComm(); void commandButtons(); -#endif // COMMS_H +#endif // COMMS_H diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 7b50cd67..b5b0128c 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -15,7 +15,7 @@ A detailed description of each call can be found at: http://www.msextra.com/doc/ void command() { - if (!cmdPending) { currentCommand = Serial.read(); } + if (cmdPending == 0) { currentCommand = Serial.read(); } switch (currentCommand) { @@ -23,8 +23,7 @@ void command() case 'A': // send x bytes of realtime values sendValues(0, packetSize, 0); //send values to serial0 break; - - + case 'B': // Burn current values to eeprom writeConfig(); break; @@ -80,12 +79,12 @@ void command() break; case 'S': // send code version - Serial.print("Speeduino 2017.05-dev"); + Serial.print(displaySignature);Serial.print(".");Serial.print(TSfirmwareVersion); currentStatus.secl = 0; //This is required in TS3 due to its stricter timings break; case 'Q': // send code version - Serial.print("speeduino 201705-dev"); + Serial.print(displaySignature);Serial.print(TSfirmwareVersion); break; case 'V': // send VE table and constants in binary @@ -182,15 +181,15 @@ void command() tsCanId = Serial.read(); //Read the $tsCanId cmd = Serial.read(); // read the command - uint16_t offset, length; + uint16_t valueOffset, length; if(cmd == 0x30) //Send output channels command 0x30 is 48dec { byte tmp; tmp = Serial.read(); - offset = word(Serial.read(), tmp); + valueOffset = word(Serial.read(), tmp); tmp = Serial.read(); length = word(Serial.read(), tmp); - sendValues(offset, length, 0); + sendValues(valueOffset, length, 0); } else { @@ -347,11 +346,12 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte portNum) fullStatus[55] = lowByte(currentStatus.canin[7]); fullStatus[56] = highByte(currentStatus.canin[7]); - for(byte x=0; x (WUETable.axisX[9] - CALIBRATION_TEMPERATURE_OFFSET)) { BIT_CLEAR(currentStatus.engine, BIT_ENGINE_WARMUP); return 100; } //This prevents us doing the 2D lookup if we're already up to temp - BIT_SET(currentStatus.engine, BIT_ENGINE_WARMUP); - return table2D_getValue(&WUETable, currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET); + if (currentStatus.coolant > (WUETable.axisX[9] - CALIBRATION_TEMPERATURE_OFFSET)) + { + //This prevents us doing the 2D lookup if we're already up to temp + BIT_CLEAR(currentStatus.engine, BIT_ENGINE_WARMUP); + WUEValue = 100; + } + else + { + BIT_SET(currentStatus.engine, BIT_ENGINE_WARMUP); + WUEValue = table2D_getValue(&WUETable, currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET); + } + + return WUEValue; } /* @@ -100,8 +111,9 @@ Additional fuel % to be added when the engine is cranking */ static inline byte correctionCranking() { - if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { return 100 + configPage1.crankingPct; } - else { return 100; } + byte crankingValue = 100; + if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { crankingValue = 100 + configPage1.crankingPct; } + return crankingValue; } /* @@ -111,17 +123,21 @@ where an additional amount of fuel is added (Over and above the WUE amount) */ static inline byte correctionASE() { + byte ASEValue; //Two checks are requiredL: //1) Is the negine run time less than the configured ase time //2) Make sure we're not still cranking if ( (currentStatus.runSecs < configPage1.aseCount) && !(BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) ) { BIT_SET(currentStatus.engine, BIT_ENGINE_ASE); //Mark ASE as active. - return 100 + configPage1.asePct; + ASEValue = 100 + configPage1.asePct; } - - BIT_CLEAR(currentStatus.engine, BIT_ENGINE_ASE); //Mark ASE as inactive. - return 100; + else + { + BIT_CLEAR(currentStatus.engine, BIT_ENGINE_ASE); //Mark ASE as inactive. + ASEValue = 100; + } + return ASEValue; } /* @@ -131,6 +147,7 @@ When the enrichment is turned on, it runs at that amount for a fixed period of t */ static inline byte correctionAccel() { + byte accelValue = 100; //First, check whether the accel. enrichment is already running if( BIT_CHECK(currentStatus.engine, BIT_ENGINE_ACC) ) { @@ -140,29 +157,37 @@ static inline byte correctionAccel() //Time to turn enrichment off BIT_CLEAR(currentStatus.engine, BIT_ENGINE_ACC); currentStatus.TAEamount = 0; - return 100; + accelValue = 100; + } + else + { + //Enrichment still needs to keep running. Simply return the total TAE amount + accelValue = currentStatus.TAEamount; } - //Enrichment still needs to keep running. Simply return the total TAE amount - return currentStatus.TAEamount; } - - //Check for deceleration (Deceleration adjustment not yet supported) - if (currentStatus.TPS < currentStatus.TPSlast) { return 100; } - - //If TAE isn't currently turned on, need to check whether it needs to be turned on - int rateOfChange = ldiv(1000000, (currentStatus.TPS_time - currentStatus.TPSlast_time)).quot * (currentStatus.TPS - currentStatus.TPSlast); //This is the % per second that the TPS has moved - //currentStatus.tpsDOT = divs10(rateOfChange); //The TAE bins are divided by 10 in order to allow them to be stored in a byte. - currentStatus.tpsDOT = rateOfChange / 10; - - if (rateOfChange > configPage1.tpsThresh) + else { - BIT_SET(currentStatus.engine, BIT_ENGINE_ACC); //Mark accleration enrichment as active. - currentStatus.TAEEndTime = micros() + ((unsigned long)configPage1.taeTime * 10000); //Set the time in the future where the enrichment will be turned off. taeTime is stored as mS / 10, so multiply it by 100 to get it in uS - return 100 + table2D_getValue(&taeTable, currentStatus.tpsDOT); + //Check for deceleration (Deceleration adjustment not yet supported) + if (currentStatus.TPS < currentStatus.TPSlast) + { + accelValue = 100; + } + else + { + //If TAE isn't currently turned on, need to check whether it needs to be turned on + int rateOfChange = ldiv(1000000, (currentStatus.TPS_time - currentStatus.TPSlast_time)).quot * (currentStatus.TPS - currentStatus.TPSlast); //This is the % per second that the TPS has moved + currentStatus.tpsDOT = rateOfChange / 10; //The TAE bins are divided by 10 in order to allow them to be stored in a byte. Faster as this than divu10 + + if (rateOfChange > configPage1.tpsThresh) + { + BIT_SET(currentStatus.engine, BIT_ENGINE_ACC); //Mark accleration enrichment as active. + currentStatus.TAEEndTime = micros() + ((unsigned long)configPage1.taeTime * 10000); //Set the time in the future where the enrichment will be turned off. taeTime is stored as mS / 10, so multiply it by 100 to get it in uS + accelValue = 100 + table2D_getValue(&taeTable, currentStatus.tpsDOT); + } + } } - //If we reach here then TAE is neither on, nor does it need to be turned on. - return 100; + return accelValue; } /* @@ -172,16 +197,17 @@ This function always returns either 100 or 0 static inline byte correctionFloodClear() { - if(BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) + byte floodValue = 100; + if( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { //Engine is currently cranking, check what the TPS is if(currentStatus.TPS >= configPage2.floodClear) { //Engine is cranking and TPS is above threshold. Cut all fuel - return 0; + floodValue = 0; } } - return 100; + return floodValue; } /* @@ -190,8 +216,11 @@ Uses a 2D enrichment table (WUETable) where the X axis is engine temp and the Y */ static inline byte correctionBatVoltage() { - if (currentStatus.battery10 > (injectorVCorrectionTable.axisX[5])) { return injectorVCorrectionTable.values[injectorVCorrectionTable.xSize-1]; } //This prevents us doing the 2D lookup if the voltage is above maximum - return table2D_getValue(&injectorVCorrectionTable, currentStatus.battery10); + byte batValue = 100; + if (currentStatus.battery10 > (injectorVCorrectionTable.axisX[5])) { batValue = injectorVCorrectionTable.values[injectorVCorrectionTable.xSize-1]; } //This prevents us doing the 2D lookup if the voltage is above maximum + else { batValue = table2D_getValue(&injectorVCorrectionTable, currentStatus.battery10); } + + return batValue; } /* @@ -200,8 +229,11 @@ This corrects for changes in air density from movement of the temperature */ static inline byte correctionIATDensity() { - if ( (currentStatus.IAT + CALIBRATION_TEMPERATURE_OFFSET) > (IATDensityCorrectionTable.axisX[8])) { return IATDensityCorrectionTable.values[IATDensityCorrectionTable.xSize-1]; } //This prevents us doing the 2D lookup if the intake temp is above maximum - return table2D_getValue(&IATDensityCorrectionTable, currentStatus.IAT + CALIBRATION_TEMPERATURE_OFFSET); //currentStatus.IAT is the actual temperature, values in IATDensityCorrectionTable.axisX are temp+offset + byte IATValue = 100; + if ( (currentStatus.IAT + CALIBRATION_TEMPERATURE_OFFSET) > (IATDensityCorrectionTable.axisX[8])) { IATValue = IATDensityCorrectionTable.values[IATDensityCorrectionTable.xSize-1]; } //This prevents us doing the 2D lookup if the intake temp is above maximum + else { IATValue = table2D_getValue(&IATDensityCorrectionTable, currentStatus.IAT + CALIBRATION_TEMPERATURE_OFFSET); }//currentStatus.IAT is the actual temperature, values in IATDensityCorrectionTable.axisX are temp+offset + + return IATValue; } /* @@ -210,8 +242,10 @@ This simple check applies the extra fuel if we're currently launching */ static inline byte correctionLaunch() { - if(currentStatus.launchingHard || currentStatus.launchingSoft) { return (100 + configPage3.lnchFuelAdd); } - else { return 100; } + byte launchValue = 100; + if(currentStatus.launchingHard || currentStatus.launchingSoft) { launchValue = (100 + configPage3.lnchFuelAdd); } + + return launchValue; } /* @@ -219,9 +253,13 @@ static inline byte correctionLaunch() */ static inline bool correctionDFCO() { - if ( !configPage2.dfcoEnabled ) { return false; } //If the DFCO option isn't turned on, always return false (off) - if ( bitRead(currentStatus.squirt, BIT_SQUIRT_DFCO) ) { return ( currentStatus.RPM > ( configPage2.dfcoRPM * 10) ) && ( currentStatus.TPS < configPage2.dfcoTPSThresh ); } - else { return ( currentStatus.RPM > (unsigned int)( (configPage2.dfcoRPM * 10) + configPage2.dfcoHyster) ) && ( currentStatus.TPS < configPage2.dfcoTPSThresh ); } + bool DFCOValue = false; + if ( configPage2.dfcoEnabled == 1 ) + { + if ( bitRead(currentStatus.squirt, BIT_SQUIRT_DFCO) == 1 ) { DFCOValue = ( currentStatus.RPM > ( configPage2.dfcoRPM * 10) ) && ( currentStatus.TPS < configPage2.dfcoTPSThresh ); } + else { DFCOValue = ( currentStatus.RPM > (unsigned int)( (configPage2.dfcoRPM * 10) + configPage2.dfcoHyster) ) && ( currentStatus.TPS < configPage2.dfcoTPSThresh ); } + } + return DFCOValue; } /* @@ -230,9 +268,13 @@ static inline bool correctionDFCO() */ static inline byte correctionFlex() { - if(!configPage1.flexEnabled) { return 100; } //Check for flex being enabled - byte flexRange = configPage1.flexFuelHigh - configPage1.flexFuelLow; - return percentage(currentStatus.ethanolPct, flexRange) + 100; + byte flexValue = 100; + if(configPage1.flexEnabled == 1) + { + byte flexRange = configPage1.flexFuelHigh - configPage1.flexFuelLow; + flexValue = percentage(currentStatus.ethanolPct, flexRange) + 100; + } + return flexValue; } /* @@ -251,78 +293,76 @@ PID (Best suited to wideband sensors): static inline byte correctionAFRClosedLoop() { - if( (configPage3.egoType == 0)) { return 100; } //egoType of 0 means no O2 sensor - - currentStatus.afrTarget = currentStatus.O2; //Catch all incase the below doesn't run. This prevents the Include AFR option from doing crazy things if the AFR target conditions aren't met. This value is changed again below if all conditions are met. - - //Check the ignition count to see whether the next step is required - //if( (ignitionCount & (configPage3.egoCount - 1)) == 1 ) //This is the equivalent of ( (ignitionCount % configPage3.egoCount) == 0 ) but without the expensive modulus operation. ie It results in True every ignition loops. Note that it only works for power of two vlaues for egoCount + byte AFRValue = 100; + if( configPage3.egoType > 0 ) //egoType of 0 means no O2 sensor { - //Determine whether the Y axis of the AFR target table tshould be MAP (Speed-Density) or TPS (Alpha-N) - byte yValue; - if (configPage1.algorithm == 0) { yValue = currentStatus.MAP; } - else { yValue = currentStatus.TPS; } - currentStatus.afrTarget = get3DTableValue(&afrTable, yValue, currentStatus.RPM); //Perform the target lookup + currentStatus.afrTarget = currentStatus.O2; //Catch all incase the below doesn't run. This prevents the Include AFR option from doing crazy things if the AFR target conditions aren't met. This value is changed again below if all conditions are met. - //Check all other requirements for closed loop adjustments - if( (currentStatus.coolant > (int)(configPage3.egoTemp - CALIBRATION_TEMPERATURE_OFFSET)) && (currentStatus.RPM > (unsigned int)(configPage3.egoRPM * 100)) && (currentStatus.TPS < configPage3.egoTPSMax) && (currentStatus.O2 < configPage3.ego_max) && (currentStatus.O2 > configPage3.ego_min) && (currentStatus.runSecs > configPage3.ego_sdelay) ) + //Check the ignition count to see whether the next step is required + //This if statement is the equivalent of ( (ignitionCount % configPage3.egoCount) == 0 ) but without the expensive modulus operation. ie It results in True every ignition loops. Note that it only works for power of two vlaues for egoCount + //if( (ignitionCount & (configPage3.egoCount - 1)) == 1 ) { - //Check which algorithm is used, simple or PID - if (configPage3.egoAlgorithm == 0) + //Determine whether the Y axis of the AFR target table tshould be MAP (Speed-Density) or TPS (Alpha-N) + byte yValue; + if (configPage1.algorithm == 0) { yValue = currentStatus.MAP; } + else { yValue = currentStatus.TPS; } + currentStatus.afrTarget = get3DTableValue(&afrTable, yValue, currentStatus.RPM); //Perform the target lookup + + //Check all other requirements for closed loop adjustments + if( (currentStatus.coolant > (int)(configPage3.egoTemp - CALIBRATION_TEMPERATURE_OFFSET)) && (currentStatus.RPM > (unsigned int)(configPage3.egoRPM * 100)) && (currentStatus.TPS < configPage3.egoTPSMax) && (currentStatus.O2 < configPage3.ego_max) && (currentStatus.O2 > configPage3.ego_min) && (currentStatus.runSecs > configPage3.ego_sdelay) ) { - //************************************************************************************************************************************* - //Simple algorithm - if(currentStatus.O2 > currentStatus.afrTarget) + //Check which algorithm is used, simple or PID + if (configPage3.egoAlgorithm == 0) { - //Running lean - if(currentStatus.egoCorrection < (100 + configPage3.egoLimit) ) //Fueling adjustment must be at most the egoLimit amount (up or down) + //************************************************************************************************************************************* + //Simple algorithm + if(currentStatus.O2 > currentStatus.afrTarget) { - if(currentStatus.egoCorrection >= 100) { return (currentStatus.egoCorrection + 1); } //Increase the fueling by 1% - else { return 100; } //This means that the last reading had been rich, so simply return back to no adjustment (100%) + //Running lean + if(currentStatus.egoCorrection < (100 + configPage3.egoLimit) ) //Fueling adjustment must be at most the egoLimit amount (up or down) + { + if(currentStatus.egoCorrection >= 100) { AFRValue = (currentStatus.egoCorrection + 1); } //Increase the fueling by 1% + else { AFRValue = 100; } //This means that the last reading had been rich, so simply return back to no adjustment (100%) + } + else { AFRValue = currentStatus.egoCorrection; } //Means we're at the maximum adjustment amount, so simply return then again } - else { return currentStatus.egoCorrection; } //Means we're at the maximum adjustment amount, so simply return then again + else + //Running Rich + if(currentStatus.egoCorrection > (100 - configPage3.egoLimit) ) //Fueling adjustment must be at most the egoLimit amount (up or down) + { + if(currentStatus.egoCorrection <= 100) { AFRValue = (currentStatus.egoCorrection - 1); } //Increase the fueling by 1% + else { AFRValue = 100; } //This means that the last reading had been lean, so simply return back to no adjustment (100%) + } + else { AFRValue = currentStatus.egoCorrection; } //Means we're at the maximum adjustment amount, so simply return then again } - else - //Running Rich - if(currentStatus.egoCorrection > (100 - configPage3.egoLimit) ) //Fueling adjustment must be at most the egoLimit amount (up or down) - { - if(currentStatus.egoCorrection <= 100) { return (currentStatus.egoCorrection - 1); } //Increase the fueling by 1% - else { return 100; } //This means that the last reading had been lean, so simply return back to no adjustment (100%) - } - else { return currentStatus.egoCorrection; } //Means we're at the maximum adjustment amount, so simply return then again - } - else if(configPage3.egoAlgorithm == 2) - { - //************************************************************************************************************************************* - //PID algorithm - egoPID.SetOutputLimits((long)(-configPage3.egoLimit), (long)(configPage3.egoLimit)); //Set the limits again, just incase the user has changed them since the last loop. Note that these are sent to the PID library as (Eg:) -15 and +15 - egoPID.SetTunings(configPage3.egoKP, configPage3.egoKI, configPage3.egoKD); //Set the PID values again, just incase the user has changed them since the last loop - PID_O2 = (long)(currentStatus.O2); - PID_AFRTarget = (long)(currentStatus.afrTarget); + else if(configPage3.egoAlgorithm == 2) + { + //************************************************************************************************************************************* + //PID algorithm + egoPID.SetOutputLimits((long)(-configPage3.egoLimit), (long)(configPage3.egoLimit)); //Set the limits again, just incase the user has changed them since the last loop. Note that these are sent to the PID library as (Eg:) -15 and +15 + egoPID.SetTunings(configPage3.egoKP, configPage3.egoKI, configPage3.egoKD); //Set the PID values again, just incase the user has changed them since the last loop + PID_O2 = (long)(currentStatus.O2); + PID_AFRTarget = (long)(currentStatus.afrTarget); - egoPID.Compute(); - //currentStatus.egoCorrection = 100 + PID_output; - return (100 + PID_output); - } - else { return 100; } // Occurs if the egoAlgorithm is set to 0 (No Correction) + egoPID.Compute(); + //currentStatus.egoCorrection = 100 + PID_output; + AFRValue = 100 + PID_output; + } + else { AFRValue = 100; } // Occurs if the egoAlgorithm is set to 0 (No Correction) - } - } + } //Multi variable check + } //ignitionCount + } //egoType - return 100; //Catch all (Includes when AFR target = current AFR + return AFRValue; //Catch all (Includes when AFR target = current AFR } //******************************** IGNITION ADVANCE CORRECTIONS ******************************** -int SetIgnStartAngle(int IgnDegrees) -{ - IgnDegrees += CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; - if(IgnDegrees > CRANK_ANGLE_MAX_IGN) { return IgnDegrees - CRANK_ANGLE_MAX_IGN; } - else { return IgnDegrees; } -} -int8_t correctionsIgn(int8_t advance) +int8_t correctionsIgn(int8_t base_advance) { - advance = correctionFlexTiming(advance); + int8_t advance; + advance = correctionFlexTiming(base_advance); advance = correctionIATretard(advance); advance = correctionSoftRevLimit(advance); advance = correctionSoftLaunch(advance); @@ -337,83 +377,100 @@ int8_t correctionsIgn(int8_t advance) static inline int8_t correctionFixedTiming(int8_t advance) { - if (configPage2.FixAng != 0) { return configPage2.FixAng; } //Check whether the user has set a fixed timing angle - return advance; + byte ignFixValue = advance; + if (configPage2.FixAng != 0) { ignFixValue = configPage2.FixAng; } //Check whether the user has set a fixed timing angle + return ignFixValue; } static inline int8_t correctionCrankingFixedTiming(int8_t advance) { - if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { return configPage2.CrankAng; } //Use the fixed cranking ignition angle - return advance; + byte ignCrankFixValue = advance; + if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { ignCrankFixValue = configPage2.CrankAng; } //Use the fixed cranking ignition angle + return ignCrankFixValue; } static inline int8_t correctionFlexTiming(int8_t advance) { - if(!configPage1.flexEnabled) { return advance; } //Check for flex being enabled - byte flexRange = configPage1.flexAdvHigh - configPage1.flexAdvLow; + byte ignFlexValue = advance; + if( configPage1.flexEnabled == 1 ) //Check for flex being enabled + { + byte flexRange = configPage1.flexAdvHigh - configPage1.flexAdvLow; - if (currentStatus.ethanolPct != 0) { currentStatus.flexIgnCorrection = percentage(currentStatus.ethanolPct, flexRange); } - else { currentStatus.flexIgnCorrection = 0; } + if (currentStatus.ethanolPct != 0) { currentStatus.flexIgnCorrection = percentage(currentStatus.ethanolPct, flexRange); } + else { currentStatus.flexIgnCorrection = 0; } - return advance + currentStatus.flexIgnCorrection; + ignFlexValue = advance + currentStatus.flexIgnCorrection; + } + return ignFlexValue; } static inline int8_t correctionIATretard(int8_t advance) { + byte ignIATValue = advance; //Adjust the advance based on IAT. If the adjustment amount is greater than the current advance, just set advance to 0 int8_t advanceIATadjust = table2D_getValue(&IATRetardTable, currentStatus.IAT); int tempAdvance = (advance - advanceIATadjust); - if (tempAdvance >= -OFFSET_IGNITION) { return tempAdvance; } - else { return -OFFSET_IGNITION; } + if (tempAdvance >= -OFFSET_IGNITION) { ignIATValue = tempAdvance; } + else { ignIATValue = -OFFSET_IGNITION; } + + return ignIATValue; } static inline int8_t correctionSoftRevLimit(int8_t advance) { + byte ignSoftRevValue = advance; BIT_CLEAR(currentStatus.spark, BIT_SPARK_SFTLIM); - if (currentStatus.RPM > ((unsigned int)(configPage2.SoftRevLim) * 100) ) { BIT_SET(currentStatus.spark, BIT_SPARK_SFTLIM); return configPage2.SoftLimRetard; } //Softcut RPM limit (If we're above softcut limit, delay timing by configured number of degrees) - return advance; + if (currentStatus.RPM > ((unsigned int)(configPage2.SoftRevLim) * 100) ) { BIT_SET(currentStatus.spark, BIT_SPARK_SFTLIM); ignSoftRevValue = configPage2.SoftLimRetard; } //Softcut RPM limit (If we're above softcut limit, delay timing by configured number of degrees) + + return ignSoftRevValue; } static inline int8_t correctionSoftLaunch(int8_t advance) { + byte ignSoftLaunchValue = advance; //SoftCut rev limit for 2-step launch control. if (configPage3.launchEnabled && clutchTrigger && (currentStatus.clutchEngagedRPM < ((unsigned int)(configPage3.flatSArm) * 100)) && (currentStatus.RPM > ((unsigned int)(configPage3.lnchSoftLim) * 100)) ) { currentStatus.launchingSoft = true; BIT_SET(currentStatus.spark, BIT_SPARK_SLAUNCH); - return configPage3.lnchRetard; + ignSoftLaunchValue = configPage3.lnchRetard; + } + else + { + currentStatus.launchingSoft = false; + BIT_CLEAR(currentStatus.spark, BIT_SPARK_SLAUNCH); } - currentStatus.launchingSoft = false; - BIT_CLEAR(currentStatus.spark, BIT_SPARK_SLAUNCH); - return advance; + return ignSoftLaunchValue; } static inline int8_t correctionSoftFlatShift(int8_t advance) { + byte ignSoftFlatValue = advance; + if(configPage3.flatSEnable && clutchTrigger && (currentStatus.clutchEngagedRPM > ((unsigned int)(configPage3.flatSArm) * 100)) && (currentStatus.RPM > (currentStatus.clutchEngagedRPM-configPage3.flatSSoftWin) ) ) { BIT_SET(currentStatus.spark2, BIT_SPARK2_FLATSS); - return configPage3.flatSRetard; + ignSoftFlatValue = configPage3.flatSRetard; } + else { BIT_CLEAR(currentStatus.spark2, BIT_SPARK2_FLATSS); } - BIT_CLEAR(currentStatus.spark2, BIT_SPARK2_FLATSS); - return advance; + return ignSoftFlatValue; } //******************************** DWELL CORRECTIONS ******************************** uint16_t correctionsDwell(uint16_t dwell) { - + uint16_t tempDwell = dwell; //Pull battery voltage based dwell correction and apply if needed currentStatus.dwellCorrection = table2D_getValue(&dwellVCorrectionTable, currentStatus.battery10); - if (currentStatus.dwellCorrection != 100) { dwell = divs100(dwell) * currentStatus.dwellCorrection; } + if (currentStatus.dwellCorrection != 100) { tempDwell = divs100(dwell) * currentStatus.dwellCorrection; } //Dwell limiter - uint16_t dwellPerRevolution = dwell + (uint16_t)(configPage2.sparkDur * 100); //Spark duration is in mS*10. Multiple it by 100 to get spark duration in uS + uint16_t dwellPerRevolution = tempDwell + (uint16_t)(configPage2.sparkDur * 100); //Spark duration is in mS*10. Multiple it by 100 to get spark duration in uS int8_t pulsesPerRevolution = 1; //Single channel spark mode is the only time there will be more than 1 pulse per revolution on any given output - if(configPage2.sparkMode == IGN_MODE_SINGLE && configPage1.nCylinders > 1) //No point in running this for 1 cylinder engines + if( (configPage2.sparkMode == IGN_MODE_SINGLE) && (configPage1.nCylinders > 1) ) //No point in running this for 1 cylinder engines { pulsesPerRevolution = (configPage1.nCylinders >> 1); dwellPerRevolution = dwellPerRevolution * pulsesPerRevolution; @@ -422,7 +479,7 @@ uint16_t correctionsDwell(uint16_t dwell) if(dwellPerRevolution > revolutionTime) { //Possibly need some method of reducing spark duration here as well, but this is a start - dwell = (revolutionTime / pulsesPerRevolution) - (configPage2.sparkDur * 100); + tempDwell = (revolutionTime / pulsesPerRevolution) - (configPage2.sparkDur * 100); } - return dwell; -} + return tempDwell; +} diff --git a/speeduino/decoders.h b/speeduino/decoders.h index 03096b00..91fda7e0 100644 --- a/speeduino/decoders.h +++ b/speeduino/decoders.h @@ -4,26 +4,26 @@ #include #if defined(CORE_AVR) - #define READ_PRI_TRIGGER() ((*triggerPri_pin_port & triggerPri_pin_mask) ? HIGH : LOW) - #define READ_SEC_TRIGGER() ((*triggerSec_pin_port & triggerSec_pin_mask) ? HIGH : LOW) + #define READ_PRI_TRIGGER() ((*triggerPri_pin_port & triggerPri_pin_mask) ? true : false) + #define READ_SEC_TRIGGER() ((*triggerSec_pin_port & triggerSec_pin_mask) ? true : false) #elif defined(CORE_TEENSY) || defined(CORE_STM32) #define READ_PRI_TRIGGER() digitalRead(pinTrigger) #define READ_SEC_TRIGGER() digitalRead(pinTrigger2) #endif static inline void addToothLogEntry(unsigned long); -static inline int stdGetRPM(); +static inline uint16_t stdGetRPM(); static inline void setFilter(unsigned long); static inline int crankingGetRPM(byte); void triggerSetup_missingTooth(); void triggerPri_missingTooth(); void triggerSec_missingTooth(); -int getRPM_missingTooth(); +uint16_t getRPM_missingTooth(); int getCrankAngle_missingTooth(int timePerDegree); void triggerSetup_DualWheel(); void triggerPri_DualWheel(); void triggerSec_DualWheel(); -int getRPM_DualWheel(); +uint16_t getRPM_DualWheel(); int getCrankAngle_DualWheel(int timePerDegree); unsigned long MAX_STALL_TIME = 500000UL; //The maximum time (in uS) that the system will continue to function before the engine is considered stalled/stopped. This is unique to each decoder, depending on the number of teeth etc. 500000 (half a second) is used as the default value, most decoders will be much less. @@ -54,10 +54,9 @@ volatile unsigned long secondaryLastToothTime1 = 0; //The time (micros()) that t volatile int triggerActualTeeth; volatile unsigned long triggerFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering) -unsigned int triggerSecFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering) for the secondary input +unsigned long triggerSecFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering) for the secondary input unsigned int triggerSecFilterTime_duration; // The shortest valid time (in uS) pulse DURATION volatile int triggerToothAngle; //The number of crank degrees that elapse per tooth -unsigned long revolutionTime; //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) bool secondDerivEnabled; //The use of the 2nd derivative calculation is limited to certain decoders. This is set to either true or false in each decoders setup routine bool decoderIsSequential; //Whether or not the decoder supports sequential operation byte checkSyncToothCount; //How many teeth must've been seen on this revolution before we try to confirm sync (Useful for missing tooth type decoders) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 2743726c..b48759a4 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -42,16 +42,28 @@ static inline void addToothLogEntry(unsigned long toothTime) /* As nearly all the decoders use a common method of determining RPM (The time the last full revolution took) A common function is simpler +degreesOver is the number of crank degrees between tooth #1s. Some patterns have a tooth #1 every crank rev, others are every cam rev. */ -static inline int stdGetRPM() +//static inline uint16_t stdGetRPM(uin16_t degreesOver) +static inline uint16_t stdGetRPM() { - if( !currentStatus.hasSync ) { return 0; } //Safety check - if( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) && currentStatus.startRevolutions == 0) { return 0; } //Prevents crazy RPM spike when there has been less than 1 full revolution - noInterrupts(); - revolutionTime = (toothOneTime - toothOneMinusOneTime); //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) - interrupts(); - uint16_t tempRPM = (US_IN_MINUTE / revolutionTime); //Calc RPM based on last full revolution time (Faster as /) - if(tempRPM >= MAX_RPM) { return currentStatus.RPM; } //Sanity check + uint16_t tempRPM = 0; + + if( currentStatus.hasSync == true ) + { + if( (BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) && (currentStatus.startRevolutions == 0) ) { tempRPM = 0; } //Prevents crazy RPM spike when there has been less than 1 full revolution + else + { + noInterrupts(); + revolutionTime = (toothOneTime - toothOneMinusOneTime); //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) + interrupts(); + //if(degreesOver == 720) { revolutionTime / 2; } + tempRPM = (US_IN_MINUTE / revolutionTime); //Calc RPM based on last full revolution time (Faster as /) + if(tempRPM >= MAX_RPM) { tempRPM = currentStatus.RPM; } //Sanity check + } + } + else { tempRPM = 0; } + return tempRPM; } @@ -75,12 +87,15 @@ It takes an argument of the full (COMPLETE) number of teeth per revolution. For */ static inline int crankingGetRPM(byte totalTeeth) { - if(toothLastToothTime == 0 || toothLastMinusOneToothTime == 0) { return 0; } //Startup check - noInterrupts(); - revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime) * totalTeeth; - interrupts(); - uint16_t tempRPM = (US_IN_MINUTE / revolutionTime); - if(tempRPM >= MAX_RPM) { return currentStatus.RPM; } //Sanity check + uint16_t tempRPM = 0; + if( (toothLastToothTime > 0) && (toothLastMinusOneToothTime > 0) ) + { + noInterrupts(); + revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime) * totalTeeth; + interrupts(); + tempRPM = (US_IN_MINUTE / revolutionTime); + if(tempRPM >= MAX_RPM) { tempRPM = currentStatus.RPM; } //Sanity check + } return tempRPM; } @@ -92,7 +107,7 @@ Note: This does not currently support dual wheel (ie missing tooth + single toot void triggerSetup_missingTooth() { triggerToothAngle = 360 / configPage2.triggerTeeth; //The number of degrees that passes from tooth to tooth - if(configPage2.TrigSpeed) { triggerToothAngle = 720 / configPage2.triggerTeeth; } //Account for cam speed missing tooth + if(configPage2.TrigSpeed == 1) { triggerToothAngle = 720 / configPage2.triggerTeeth; } //Account for cam speed missing tooth triggerActualTeeth = configPage2.triggerTeeth - configPage2.triggerMissingTeeth; //The number of physical teeth on the wheel. Doing this here saves us a calculation each time in the interrupt triggerFilterTime = (int)(1000000 / (MAX_RPM / 60 * configPage2.triggerTeeth)); //Trigger filter time is the shortest possible time (in uS) that there can be between crank teeth (ie at max RPM). Any pulses that occur faster than this time will be disgarded as noise secondDerivEnabled = false; @@ -108,38 +123,46 @@ void triggerPri_missingTooth() curTime = micros(); curGap = curTime - toothLastToothTime; - if ( curGap < triggerFilterTime ) { return; } //Debounce check. Pulses should never be less than triggerFilterTime, so if they are it means a false trigger. (A 36-1 wheel at 8000pm will have triggers approx. every 200uS) - toothCurrentCount++; //Increment the tooth counter - - addToothLogEntry(curGap); - - //if(toothCurrentCount > checkSyncToothCount || !currentStatus.hasSync) + if ( curGap >= triggerFilterTime ) //Pulses should never be less than triggerFilterTime, so if they are it means a false trigger. (A 36-1 wheel at 8000pm will have triggers approx. every 200uS) { - //Begin the missing tooth detection - //If the time between the current tooth and the last is greater than 1.5x the time between the last tooth and the tooth before that, we make the assertion that we must be at the first tooth after the gap - if(configPage2.triggerMissingTeeth == 1) { targetGap = (3 * (toothLastToothTime - toothLastMinusOneToothTime)) >> 1; } //Multiply by 1.5 (Checks for a gap 1.5x greater than the last one) (Uses bitshift to multiply by 3 then divide by 2. Much faster than multiplying by 1.5) - else { targetGap = ((toothLastToothTime - toothLastMinusOneToothTime)) * 2; } //Multiply by 2 (Checks for a gap 2x greater than the last one) + toothCurrentCount++; //Increment the tooth counter - if ( curGap > targetGap || toothCurrentCount > triggerActualTeeth) + addToothLogEntry(curGap); + + //if(toothCurrentCount > checkSyncToothCount || currentStatus.hasSync == false) { - if(toothCurrentCount < (triggerActualTeeth) && currentStatus.hasSync) { currentStatus.hasSync = false; return; } //This occurs when we're at tooth #1, but haven't seen all the other teeth. This indicates a signal issue so we flag lost sync so this will attempt to resync on the next revolution. - toothCurrentCount = 1; - revolutionOne = !revolutionOne; //Flip sequential revolution tracker - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - currentStatus.hasSync = true; - currentStatus.startRevolutions++; //Counter - triggerFilterTime = 0; //This is used to prevent a condition where serious intermitent signals (Eg someone furiously plugging the sensor wire in and out) can leave the filter in an unrecoverable state - } - else - { - //Filter can only be recalc'd for the regular teeth, not the missing one. - setFilter(curGap); + //Begin the missing tooth detection + //If the time between the current tooth and the last is greater than 1.5x the time between the last tooth and the tooth before that, we make the assertion that we must be at the first tooth after the gap + if(configPage2.triggerMissingTeeth == 1) { targetGap = (3 * (toothLastToothTime - toothLastMinusOneToothTime)) >> 1; } //Multiply by 1.5 (Checks for a gap 1.5x greater than the last one) (Uses bitshift to multiply by 3 then divide by 2. Much faster than multiplying by 1.5) + else { targetGap = ((toothLastToothTime - toothLastMinusOneToothTime)) * 2; } //Multiply by 2 (Checks for a gap 2x greater than the last one) + + if ( (curGap > targetGap) || (toothCurrentCount > triggerActualTeeth) ) + { + if(toothCurrentCount < (triggerActualTeeth) && (currentStatus.hasSync == true) ) { currentStatus.hasSync = false; } //This occurs when we're at tooth #1, but haven't seen all the other teeth. This indicates a signal issue so we flag lost sync so this will attempt to resync on the next revolution. + else + { + toothCurrentCount = 1; + revolutionOne = !revolutionOne; //Flip sequential revolution tracker + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.hasSync = true; + currentStatus.startRevolutions++; //Counter + triggerFilterTime = 0; //This is used to prevent a condition where serious intermitent signals (Eg someone furiously plugging the sensor wire in and out) can leave the filter in an unrecoverable state + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; + } + } + else + { + //Filter can only be recalc'd for the regular teeth, not the missing one. + setFilter(curGap); + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; + } } + + } - - toothLastMinusOneToothTime = toothLastToothTime; - toothLastToothTime = curTime; } void triggerSec_missingTooth() @@ -148,15 +171,20 @@ void triggerSec_missingTooth() revolutionOne = 1; } -int getRPM_missingTooth() +uint16_t getRPM_missingTooth() { + uint16_t tempRPM = 0; if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) ) { - if(configPage2.TrigSpeed) { crankingGetRPM(configPage2.triggerTeeth/2); } //Account for cam speed - else { return crankingGetRPM(configPage2.triggerTeeth); } + if(configPage2.TrigSpeed == 1) { crankingGetRPM(configPage2.triggerTeeth/2); } //Account for cam speed + else { tempRPM = crankingGetRPM(configPage2.triggerTeeth); } } - if(configPage2.TrigSpeed) { return (stdGetRPM() * 2); } //Account for cam speed - return stdGetRPM(); + else + { + if(configPage2.TrigSpeed == 1) { tempRPM = (stdGetRPM() * 2); } //Account for cam speed + else { tempRPM = stdGetRPM(); } + } + return tempRPM; } int getCrankAngle_missingTooth(int timePerDegree) @@ -172,7 +200,7 @@ int getCrankAngle_missingTooth(int timePerDegree) tempRevolutionOne = revolutionOne; interrupts(); - int crankAngle = (tempToothCurrentCount - 1) * triggerToothAngle + configPage2.triggerAngle; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. + int crankAngle = ((tempToothCurrentCount - 1) * triggerToothAngle) + configPage2.triggerAngle; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. //Estimate the number of degrees travelled since the last tooth} long elapsedTime = (micros() - tempToothLastToothTime); //crankAngle += DIV_ROUND_CLOSEST(elapsedTime, timePerDegree); @@ -210,25 +238,28 @@ void triggerPri_DualWheel() { curTime = micros(); curGap = curTime - toothLastToothTime; - if ( curGap < triggerFilterTime ) { return; } //Pulses should never be less than triggerFilterTime, so if they are it means a false trigger. - toothCurrentCount++; //Increment the tooth counter - addToothLogEntry(curGap); - - toothLastMinusOneToothTime = toothLastToothTime; - toothLastToothTime = curTime; - - if ( !currentStatus.hasSync ) { return; } - - if ( toothCurrentCount == 1 || toothCurrentCount > configPage2.triggerTeeth ) + if ( curGap >= triggerFilterTime ) { - toothCurrentCount = 1; - revolutionOne = !revolutionOne; //Flip sequential revolution tracker - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - currentStatus.startRevolutions++; //Counter - } + toothCurrentCount++; //Increment the tooth counter + addToothLogEntry(curGap); - setFilter(curGap); //Recalc the new filter value + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; + + if ( currentStatus.hasSync == true ) + { + if ( (toothCurrentCount == 1) || (toothCurrentCount > configPage2.triggerTeeth) ) + { + toothCurrentCount = 1; + revolutionOne = !revolutionOne; //Flip sequential revolution tracker + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.startRevolutions++; //Counter + } + + setFilter(curGap); //Recalc the new filter value + } + } //TRigger filter } @@ -237,28 +268,34 @@ void triggerSec_DualWheel() { curTime2 = micros(); curGap2 = curTime2 - toothLastSecToothTime; - if ( curGap2 < triggerSecFilterTime ) { return; } - toothLastSecToothTime = curTime2; - triggerSecFilterTime = curGap2 >> 2; //Set filter at 25% of the current speed - - if(!currentStatus.hasSync) + if ( curGap2 >= triggerSecFilterTime ) { - toothLastToothTime = micros(); - toothLastMinusOneToothTime = (toothOneTime - 6000000) / configPage2.triggerTeeth; //Fixes RPM at 10rpm until a full revolution has taken place - toothCurrentCount = configPage2.triggerTeeth; + toothLastSecToothTime = curTime2; + triggerSecFilterTime = curGap2 >> 2; //Set filter at 25% of the current speed - currentStatus.hasSync = true; - } - else if (configPage2.useResync) { toothCurrentCount = configPage2.triggerTeeth; } + if(currentStatus.hasSync == false) + { + toothLastToothTime = micros(); + toothLastMinusOneToothTime = (toothOneTime - 6000000) / configPage2.triggerTeeth; //Fixes RPM at 10rpm until a full revolution has taken place + toothCurrentCount = configPage2.triggerTeeth; - revolutionOne = 1; //Sequential revolution reset + currentStatus.hasSync = true; + } + else if (configPage2.useResync == 1) { toothCurrentCount = configPage2.triggerTeeth; } + + revolutionOne = 1; //Sequential revolution reset + } //Trigger filter } -int getRPM_DualWheel() +uint16_t getRPM_DualWheel() { - if( !currentStatus.hasSync) { return 0; } - if(currentStatus.RPM < configPage2.crankRPM) { return crankingGetRPM(configPage2.triggerTeeth); } - return stdGetRPM(); + uint16_t tempRPM = 0; + if( currentStatus.hasSync == true ) + { + if(currentStatus.RPM < configPage2.crankRPM) { tempRPM = crankingGetRPM(configPage2.triggerTeeth); } + else { tempRPM = stdGetRPM(); } + } + return tempRPM; } int getCrankAngle_DualWheel(int timePerDegree) @@ -277,7 +314,7 @@ int getCrankAngle_DualWheel(int timePerDegree) //Handle case where the secondary tooth was the last one seen if(tempToothCurrentCount == 0) { tempToothCurrentCount = configPage2.triggerTeeth; } - int crankAngle = (tempToothCurrentCount - 1) * triggerToothAngle + configPage2.triggerAngle; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. + int crankAngle = ((tempToothCurrentCount - 1) * triggerToothAngle) + configPage2.triggerAngle; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. //Estimate the number of degrees travelled since the last tooth} long elapsedTime = micros() - tempToothLastToothTime; if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime @@ -303,7 +340,6 @@ void triggerSetup_BasicDistributor() { triggerActualTeeth = configPage1.nCylinders; if(triggerActualTeeth == 0) { triggerActualTeeth = 1; } - //triggerToothAngle = 360 / triggerActualTeeth; //The number of degrees that passes from tooth to tooth triggerToothAngle = 720 / triggerActualTeeth; //The number of degrees that passes from tooth to tooth triggerFilterTime = 60000000L / MAX_RPM / configPage1.nCylinders; // Minimum time required between teeth triggerFilterTime = triggerFilterTime / 2; //Safety margin @@ -319,37 +355,38 @@ void triggerPri_BasicDistributor() { curTime = micros(); curGap = curTime - toothLastToothTime; - if ( curGap < triggerFilterTime ) { return; } //Noise rejection check. Pulses should never be less than triggerFilterTime - - if( toothCurrentCount == triggerActualTeeth || !currentStatus.hasSync ) //Check if we're back to the beginning of a revolution + if ( curGap >= triggerFilterTime ) { - toothCurrentCount = 1; //Reset the counter - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - currentStatus.hasSync = true; - currentStatus.startRevolutions++; //Counter - } - else - { - toothCurrentCount++; //Increment the tooth counter - } + if( (toothCurrentCount == triggerActualTeeth) || (currentStatus.hasSync == false) ) //Check if we're back to the beginning of a revolution + { + toothCurrentCount = 1; //Reset the counter + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.hasSync = true; + currentStatus.startRevolutions++; //Counter + } + else + { + toothCurrentCount++; //Increment the tooth counter + } - setFilter(curGap); //Recalc the new filter value - addToothLogEntry(curGap); + setFilter(curGap); //Recalc the new filter value + addToothLogEntry(curGap); - if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) - { - endCoil1Charge(); - endCoil2Charge(); - endCoil3Charge(); - endCoil4Charge(); - } + if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) + { + endCoil1Charge(); + endCoil2Charge(); + endCoil3Charge(); + endCoil4Charge(); + } - toothLastMinusOneToothTime = toothLastToothTime; - toothLastToothTime = curTime; + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; + } //Trigger filter } void triggerSec_BasicDistributor() { return; } //Not required -int getRPM_BasicDistributor() +uint16_t getRPM_BasicDistributor() { uint16_t tempRPM; if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) ) @@ -371,11 +408,7 @@ int getCrankAngle_BasicDistributor(int timePerDegree) tempToothLastToothTime = toothLastToothTime; interrupts(); - //int crankAngle = (tempToothCurrentCount - 1) * triggerToothAngle + configPage2.triggerAngle; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. - //crankAngle += ldiv( (micros() - tempToothLastToothTime), timePerDegree).quot; //Estimate the number of degrees travelled since the last tooth - - - int crankAngle = (tempToothCurrentCount - 1) * triggerToothAngle + configPage2.triggerAngle; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. + int crankAngle = ((tempToothCurrentCount - 1) * triggerToothAngle) + configPage2.triggerAngle; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. //Estimate the number of degrees travelled since the last tooth} long elapsedTime = micros() - tempToothLastToothTime; if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime @@ -416,6 +449,9 @@ void triggerPri_GM7X() toothCurrentCount = 1; toothOneMinusOneTime = toothOneTime; toothOneTime = curTime; + + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; } else { @@ -425,15 +461,16 @@ void triggerPri_GM7X() toothCurrentCount = 3; currentStatus.hasSync = true; currentStatus.startRevolutions++; //Counter - return; //We return here so that the tooth times below don't get set (The magical 3rd tooth should not be considered for any calculations that use those times) + } + else + { + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; } } - - toothLastMinusOneToothTime = toothLastToothTime; - toothLastToothTime = curTime; } void triggerSec_GM7X() { return; } //Not required -int getRPM_GM7X() +uint16_t getRPM_GM7X() { return stdGetRPM(); } @@ -452,7 +489,7 @@ int getCrankAngle_GM7X(int timePerDegree) int crankAngle; if( tempToothCurrentCount < 3 ) { - crankAngle = (tempToothCurrentCount - 1) * triggerToothAngle + 42; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. + crankAngle = ((tempToothCurrentCount - 1) * triggerToothAngle) + 42; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. } else if( tempToothCurrentCount == 3 ) { @@ -460,7 +497,7 @@ int getCrankAngle_GM7X(int timePerDegree) } else { - crankAngle = (tempToothCurrentCount - 2) * triggerToothAngle + 42; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. + crankAngle = ((tempToothCurrentCount - 2) * triggerToothAngle) + 42; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. } //Estimate the number of degrees travelled since the last tooth} @@ -496,15 +533,6 @@ void triggerSetup_4G63() if(configPage1.nCylinders == 6) { // 70 / 50 for 6 cylinder applications - /* - toothAngles[0] = 355; //Rising edge of tooth #1 - toothAngles[1] = 65; // - toothAngles[2] = 115; // - toothAngles[3] = 185; //Should be #1 - toothAngles[4] = 235; // - toothAngles[5] = 305; // - */ - toothAngles[0] = 185; // toothAngles[1] = 235; // toothAngles[2] = 305; // @@ -546,70 +574,72 @@ void triggerPri_4G63() { curTime = micros(); curGap = curTime - toothLastToothTime; - if ( curGap < triggerFilterTime ) { return; } //Filter check. Pulses should never be less than triggerFilterTime - - addToothLogEntry(curGap); - triggerFilterTime = curGap >> 2; //This only applies during non-sync conditions. If there is sync then triggerFilterTime gets changed again below with a better value. - - toothLastMinusOneToothTime = toothLastToothTime; - toothLastToothTime = curTime; - - toothCurrentCount++; - if(toothCurrentCount == 1 || toothCurrentCount > configPage1.nCylinders) //Trigger is on CHANGE, hence 4 pulses = 1 crank rev + if ( curGap >= triggerFilterTime ) { - toothCurrentCount = 1; //Reset the counter - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - currentStatus.hasSync = true; - currentStatus.startRevolutions++; //Counter - //if ((startRevolutions & 15) == 1) { currentStatus.hasSync = false; } //Every 64 revolutions, force a resync with the cam - } - else if (!currentStatus.hasSync) { return; } + addToothLogEntry(curGap); + triggerFilterTime = curGap >> 2; //This only applies during non-sync conditions. If there is sync then triggerFilterTime gets changed again below with a better value. - if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) && configPage2.ignCranklock) - { - if( toothCurrentCount == 1 ) { endCoil1Charge(); } - else if( toothCurrentCount == 3 ) { endCoil2Charge(); } - else if( toothCurrentCount == 5 ) { endCoil3Charge(); } - } + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; - //Whilst this is an uneven tooth pattern, if the specific angle between the last 2 teeth is specified, 1st deriv prediction can be used - if(configPage2.triggerFilter == 1 || currentStatus.RPM < 1400) - { - //Lite filter - if(toothCurrentCount == 1 || toothCurrentCount == 3 || toothCurrentCount == 5) + toothCurrentCount++; + if( (toothCurrentCount == 1) || (toothCurrentCount > configPage1.nCylinders) ) //Trigger is on CHANGE, hence 4 pulses = 1 crank rev { - triggerToothAngle = 70; - triggerFilterTime = curGap; //Trigger filter is set to whatever time it took to do 70 degrees (Next trigger is 110 degrees away) - if(configPage1.nCylinders == 6) - { - triggerFilterTime = (curGap >> 2); //Trigger filter is set to (70/4)=17.5=17 degrees (Next trigger is 50 degrees away). - } + toothCurrentCount = 1; //Reset the counter + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.hasSync = true; + currentStatus.startRevolutions++; //Counter } - else + + if (currentStatus.hasSync == true) { - triggerToothAngle = 110; - triggerFilterTime = (curGap * 3) >> 3; //Trigger filter is set to (110*3)/8=41.25=41 degrees (Next trigger is 70 degrees away). - if(configPage1.nCylinders == 6) + if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) && configPage2.ignCranklock) { - triggerToothAngle = 50; - triggerFilterTime = (curGap * 3) >> 2; //Trigger filter is set to (50*3)/4=37.5=37 degrees (Next trigger is 70 degrees away). + if( toothCurrentCount == 1 ) { endCoil1Charge(); } + else if( toothCurrentCount == 3 ) { endCoil2Charge(); } + else if( toothCurrentCount == 5 ) { endCoil3Charge(); } } - } - } - else if(configPage2.triggerFilter == 2) - { - //Medium filter level - if(toothCurrentCount == 1 || toothCurrentCount == 3 || toothCurrentCount == 5) { triggerToothAngle = 70; triggerFilterTime = (curGap * 5) >> 2 ; } //87.5 degrees with a target of 110 - else { triggerToothAngle = 110; triggerFilterTime = (curGap >> 1); } //55 degrees with a target of 70 - } - else if (configPage2.triggerFilter == 3) - { - //Aggressive filter level - if(toothCurrentCount == 1 || toothCurrentCount == 3 || toothCurrentCount == 5) { triggerToothAngle = 70; triggerFilterTime = (curGap * 11) >> 3 ; } //96.26 degrees with a target of 110 - else { triggerToothAngle = 110; triggerFilterTime = (curGap * 9) >> 5; } //61.87 degrees with a target of 70 - } - else { triggerFilterTime = 0; } //trigger filter is turned off. + + //Whilst this is an uneven tooth pattern, if the specific angle between the last 2 teeth is specified, 1st deriv prediction can be used + if( (configPage2.triggerFilter == 1) || (currentStatus.RPM < 1400) ) + { + //Lite filter + if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) ) + { + triggerToothAngle = 70; + triggerFilterTime = curGap; //Trigger filter is set to whatever time it took to do 70 degrees (Next trigger is 110 degrees away) + if(configPage1.nCylinders == 6) + { + triggerFilterTime = (curGap >> 2); //Trigger filter is set to (70/4)=17.5=17 degrees (Next trigger is 50 degrees away). + } + } + else + { + triggerToothAngle = 110; + triggerFilterTime = (curGap * 3) >> 3; //Trigger filter is set to (110*3)/8=41.25=41 degrees (Next trigger is 70 degrees away). + if(configPage1.nCylinders == 6) + { + triggerToothAngle = 50; + triggerFilterTime = (curGap * 3) >> 2; //Trigger filter is set to (50*3)/4=37.5=37 degrees (Next trigger is 70 degrees away). + } + } + } + else if(configPage2.triggerFilter == 2) + { + //Medium filter level + if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) ) { triggerToothAngle = 70; triggerFilterTime = (curGap * 5) >> 2 ; } //87.5 degrees with a target of 110 + else { triggerToothAngle = 110; triggerFilterTime = (curGap >> 1); } //55 degrees with a target of 70 + } + else if (configPage2.triggerFilter == 3) + { + //Aggressive filter level + if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) ) { triggerToothAngle = 70; triggerFilterTime = (curGap * 11) >> 3 ; } //96.26 degrees with a target of 110 + else { triggerToothAngle = 110; triggerFilterTime = (curGap * 9) >> 5; } //61.87 degrees with a target of 70 + } + else { triggerFilterTime = 0; } //trigger filter is turned off. + } //Has sync + } //Filter time } void triggerSec_4G63() @@ -617,102 +647,102 @@ void triggerSec_4G63() //byte crankState = READ_PRI_TRIGGER(); //First filter is a duration based one to ensure the pulse was of sufficient length (time) //if(READ_SEC_TRIGGER()) { secondaryLastToothTime1 = micros(); return; } - if(currentStatus.hasSync) + if(currentStatus.hasSync == true) { - //if ( (micros() - secondaryLastToothTime1) < triggerSecFilterTime_duration ) { return; } //1166 is the time taken to cross 70 degrees at 10k rpm + //1166 is the time taken to cross 70 degrees at 10k rpm + //if ( (micros() - secondaryLastToothTime1) < triggerSecFilterTime_duration ) { return; } //triggerSecFilterTime_duration = (micros() - secondaryLastToothTime1) >> 1; } curTime2 = micros(); curGap2 = curTime2 - toothLastSecToothTime; - if ( curGap2 < triggerSecFilterTime ) { return; } - toothLastSecToothTime = curTime2; - - triggerSecFilterTime = curGap2 >> 1; //Basic 50% filter for the secondary reading - //triggerSecFilterTime = (curGap2 * 9) >> 5; //62.5% - //triggerSecFilterTime = (curGap2 * 6) >> 3; //75% - - if(BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) || !currentStatus.hasSync) + if ( curGap2 >= triggerSecFilterTime ) { - triggerFilterTime = 1500; //If this is removed, can have trouble getting sync again after the engine is turned off (but ECU not reset). - if(READ_PRI_TRIGGER())// && (crankState == digitalRead(pinTrigger))) + toothLastSecToothTime = curTime2; + + triggerSecFilterTime = curGap2 >> 1; //Basic 50% filter for the secondary reading + //More aggressive options: + //62.5%: + //triggerSecFilterTime = (curGap2 * 9) >> 5; + //75%: + //triggerSecFilterTime = (curGap2 * 6) >> 3; + + if(BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) || (currentStatus.hasSync == false) ) { - toothCurrentCount = 4; //If the crank trigger is currently HIGH, it means we're on tooth #1 + triggerFilterTime = 1500; //If this is removed, can have trouble getting sync again after the engine is turned off (but ECU not reset). + if(READ_PRI_TRIGGER() == true)// && (crankState == digitalRead(pinTrigger))) + { + toothCurrentCount = 4; //If the crank trigger is currently HIGH, it means we're on tooth #1 + } } -} - //if ( (micros() - secondaryLastToothTime1) < triggerSecFilterTime_duration && configPage2.useResync ) - if ( configPage2.useResync ) - { - triggerSecFilterTime_duration = (micros() - secondaryLastToothTime1) >> 1; - if(READ_PRI_TRIGGER())// && (crankState == digitalRead(pinTrigger))) + //if ( (micros() - secondaryLastToothTime1) < triggerSecFilterTime_duration && configPage2.useResync ) + if ( configPage2.useResync == 1 ) { - toothCurrentCount = 4; //If the crank trigger is currently HIGH, it means we're on tooth #1 - - /* High-res mode - toothCurrentCount = 7; //If the crank trigger is currently HIGH, it means we're on the falling edge of the narrow crank tooth - toothLastMinusOneToothTime = toothLastToothTime; - toothLastToothTime = curTime; - */ - } - } - - return; + triggerSecFilterTime_duration = (micros() - secondaryLastToothTime1) >> 1; + if(READ_PRI_TRIGGER() == true)// && (crankState == digitalRead(pinTrigger))) + { + toothCurrentCount = 4; //If the crank trigger is currently HIGH, it means we're on tooth #1 + } + } // Use resync + } //Trigger filter } -int getRPM_4G63() +uint16_t getRPM_4G63() { + uint16_t tempRPM = 0; //During cranking, RPM is calculated 4 times per revolution, once for each rising/falling of the crank signal. //Because these signals aren't even (Alternating 110 and 70 degrees), this needs a special function - if(!currentStatus.hasSync) { return 0; } - if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) ) + if(currentStatus.hasSync == true) { - //if(currentStatus.startRevolutions < 2) { return 0; } //Need at least 2 full revolutions to prevent crazy initial rpm value - int tempToothAngle; - unsigned long toothTime; - if(toothLastToothTime == 0 || toothLastMinusOneToothTime == 0) { return 0; } - - noInterrupts(); - tempToothAngle = triggerToothAngle; - /* High-res mode - if(toothCurrentCount == 1) { tempToothAngle = 70; } - else { tempToothAngle = toothAngles[toothCurrentCount-1] - toothAngles[toothCurrentCount-2]; } - */ - //revolutionTime = (toothOneTime - toothOneMinusOneTime); //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) - toothTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 70 and 110 depending on the last tooth that was seen - interrupts(); - toothTime = toothTime * 36; - int tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime; - return tempRPM; + if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) ) + { + int tempToothAngle; + unsigned long toothTime; + if( (toothLastToothTime == 0) || (toothLastMinusOneToothTime == 0) ) { tempRPM = 0; } + else + { + noInterrupts(); + tempToothAngle = triggerToothAngle; + toothTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 70 and 110 depending on the last tooth that was seen + interrupts(); + toothTime = toothTime * 36; + tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime; + } + } + else { tempRPM = stdGetRPM(); } } - else { return stdGetRPM(); } + + return tempRPM; } int getCrankAngle_4G63(int timePerDegree) { - if(!currentStatus.hasSync) { return 0;} - //This is the current angle ATDC the engine is at. This is the last known position based on what tooth was last 'seen'. It is only accurate to the resolution of the trigger wheel (Eg 36-1 is 10 degrees) - unsigned long tempToothLastToothTime; - int tempToothCurrentCount; - //Grab some variables that are used in the trigger code and assign them to temp variables. - noInterrupts(); - tempToothCurrentCount = toothCurrentCount; - tempToothLastToothTime = toothLastToothTime; - interrupts(); + int crankAngle = 0; + if(currentStatus.hasSync == true) + { + //This is the current angle ATDC the engine is at. This is the last known position based on what tooth was last 'seen'. It is only accurate to the resolution of the trigger wheel (Eg 36-1 is 10 degrees) + unsigned long tempToothLastToothTime; + int tempToothCurrentCount; + //Grab some variables that are used in the trigger code and assign them to temp variables. + noInterrupts(); + tempToothCurrentCount = toothCurrentCount; + tempToothLastToothTime = toothLastToothTime; + interrupts(); - int crankAngle = toothAngles[(tempToothCurrentCount - 1)] + configPage2.triggerAngle; //Perform a lookup of the fixed toothAngles array to find what the angle of the last tooth passed was. - //Estimate the number of degrees travelled since the last tooth} + crankAngle = toothAngles[(tempToothCurrentCount - 1)] + configPage2.triggerAngle; //Perform a lookup of the fixed toothAngles array to find what the angle of the last tooth passed was. + //Estimate the number of degrees travelled since the last tooth} - unsigned long elapsedTime = micros() - tempToothLastToothTime; - if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime - else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; } - - if (crankAngle >= 720) { crankAngle -= 720; } - if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } - if (crankAngle < 0) { crankAngle += 360; } + unsigned long elapsedTime = micros() - tempToothLastToothTime; + if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime + else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; } + if (crankAngle >= 720) { crankAngle -= 720; } + if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } + if (crankAngle < 0) { crankAngle += 360; } + } return crankAngle; } @@ -759,34 +789,38 @@ void triggerSetup_24X() void triggerPri_24X() { - if(toothCurrentCount == 25) { currentStatus.hasSync = false; return; } //Indicates sync has not been achieved (Still waiting for 1 revolution of the crank to take place) - curTime = micros(); - curGap = curTime - toothLastToothTime; - - if(toothCurrentCount == 0) - { - toothCurrentCount = 1; //Reset the counter - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - currentStatus.hasSync = true; - currentStatus.startRevolutions++; //Counter - } + if(toothCurrentCount == 25) { currentStatus.hasSync = false; } //Indicates sync has not been achieved (Still waiting for 1 revolution of the crank to take place) else { - toothCurrentCount++; //Increment the tooth counter + curTime = micros(); + curGap = curTime - toothLastToothTime; + + if(toothCurrentCount == 0) + { + toothCurrentCount = 1; //Reset the counter + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.hasSync = true; + currentStatus.startRevolutions++; //Counter + } + else + { + toothCurrentCount++; //Increment the tooth counter + } + + addToothLogEntry(curGap); + + toothLastToothTime = curTime; } - - addToothLogEntry(curGap); - - toothLastToothTime = curTime; } + void triggerSec_24X() { toothCurrentCount = 0; //All we need to do is reset the tooth count back to zero, indicating that we're at the beginning of a new revolution return; } -int getRPM_24X() +uint16_t getRPM_24X() { return stdGetRPM(); } @@ -848,30 +882,34 @@ void triggerSetup_Jeep2000() void triggerPri_Jeep2000() { - if(toothCurrentCount == 13) { currentStatus.hasSync = false; return; } //Indicates sync has not been achieved (Still waiting for 1 revolution of the crank to take place) - curTime = micros(); - curGap = curTime - toothLastToothTime; - if ( curGap < triggerFilterTime ) { return; } //Noise rejection check. Pulses should never be less than triggerFilterTime - - if(toothCurrentCount == 0) - { - toothCurrentCount = 1; //Reset the counter - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - currentStatus.hasSync = true; - currentStatus.startRevolutions++; //Counter - } + if(toothCurrentCount == 13) { currentStatus.hasSync = false; } //Indicates sync has not been achieved (Still waiting for 1 revolution of the crank to take place) else { - toothCurrentCount++; //Increment the tooth counter - } + curTime = micros(); + curGap = curTime - toothLastToothTime; + if ( curGap >= triggerFilterTime ) + { + if(toothCurrentCount == 0) + { + toothCurrentCount = 1; //Reset the counter + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.hasSync = true; + currentStatus.startRevolutions++; //Counter + } + else + { + toothCurrentCount++; //Increment the tooth counter + } - setFilter(curGap); //Recalc the new filter value + setFilter(curGap); //Recalc the new filter value - addToothLogEntry(curGap); + addToothLogEntry(curGap); - toothLastMinusOneToothTime = toothLastToothTime; - toothLastToothTime = curTime; + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; + } //Trigger filter + } //Sync check } void triggerSec_Jeep2000() { @@ -879,7 +917,7 @@ void triggerSec_Jeep2000() return; } -int getRPM_Jeep2000() +uint16_t getRPM_Jeep2000() { return stdGetRPM(); } @@ -930,30 +968,38 @@ void triggerPri_Audi135() { curTime = micros(); curGap = curTime - toothSystemLastToothTime; - if ( curGap < triggerFilterTime ) { return; } - toothSystemCount++; - - if ( !currentStatus.hasSync ) { toothLastToothTime = curTime; return; } - if ( toothSystemCount < 3 ) { return; } //We only proceed for every third tooth - - addToothLogEntry(curGap); - toothSystemLastToothTime = curTime; - toothSystemCount = 0; - toothCurrentCount++; //Increment the tooth counter - - if ( toothCurrentCount == 1 || toothCurrentCount > 45 ) + if ( curGap > triggerFilterTime ) { - toothCurrentCount = 1; - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - revolutionOne = !revolutionOne; - currentStatus.startRevolutions++; //Counter - } + toothSystemCount++; - setFilter(curGap); //Recalc the new filter value + if ( currentStatus.hasSync == false ) { toothLastToothTime = curTime; } + else + { + if ( toothSystemCount >= 3 ) + { + //We only proceed for every third tooth - toothLastMinusOneToothTime = toothLastToothTime; - toothLastToothTime = curTime; + addToothLogEntry(curGap); + toothSystemLastToothTime = curTime; + toothSystemCount = 0; + toothCurrentCount++; //Increment the tooth counter + + if ( (toothCurrentCount == 1) || (toothCurrentCount > 45) ) + { + toothCurrentCount = 1; + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + revolutionOne = !revolutionOne; + currentStatus.startRevolutions++; //Counter + } + + setFilter(curGap); //Recalc the new filter value + + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; + } //3rd tooth check + } // Sync check + } // Trigger filter } void triggerSec_Audi135() @@ -965,18 +1011,18 @@ void triggerSec_Audi135() toothLastSecToothTime = curTime2; */ - if( !currentStatus.hasSync ) + if( currentStatus.hasSync == false ) { toothCurrentCount = 0; currentStatus.hasSync = true; toothSystemCount = 3; //Need to set this to 3 so that the next primary tooth is counted } - else if (configPage2.useResync) { toothCurrentCount = 0; toothSystemCount = 3; } - else if ( currentStatus.startRevolutions < 100 && toothCurrentCount != 45 ) { toothCurrentCount = 0; } + else if (configPage2.useResync == 1) { toothCurrentCount = 0; toothSystemCount = 3; } + else if ( (currentStatus.startRevolutions < 100) && (toothCurrentCount != 45) ) { toothCurrentCount = 0; } revolutionOne = 1; //Sequential revolution reset } -int getRPM_Audi135() +uint16_t getRPM_Audi135() { return stdGetRPM(); } @@ -997,7 +1043,7 @@ int getCrankAngle_Audi135(int timePerDegree) //Handle case where the secondary tooth was the last one seen if(tempToothCurrentCount == 0) { tempToothCurrentCount = 45; } - int crankAngle = (tempToothCurrentCount - 1) * triggerToothAngle + configPage2.triggerAngle; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. + int crankAngle = ((tempToothCurrentCount - 1) * triggerToothAngle) + configPage2.triggerAngle; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. //Estimate the number of degrees travelled since the last tooth} long elapsedTime = micros() - tempToothLastToothTime; if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime @@ -1036,16 +1082,18 @@ void triggerPri_HondaD17() addToothLogEntry(curGap); // - if( toothCurrentCount == 13 && currentStatus.hasSync) + if( (toothCurrentCount == 13) && (currentStatus.hasSync == true) ) { toothCurrentCount = 0; - return; } - else if( toothCurrentCount == 1 && currentStatus.hasSync) + else if( (toothCurrentCount == 1) && (currentStatus.hasSync == true) ) { toothOneMinusOneTime = toothOneTime; toothOneTime = curTime; currentStatus.startRevolutions++; //Counter + + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; } else { @@ -1055,15 +1103,18 @@ void triggerPri_HondaD17() { toothCurrentCount = 0; currentStatus.hasSync = true; - return; //We return here so that the tooth times below don't get set (The magical 13th tooth should not be considered for any calculations that use those times) + } + else + { + //The tooth times below don't get set on tooth 13(The magical 13th tooth should not be considered for any calculations that use those times) + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; } } - toothLastMinusOneToothTime = toothLastToothTime; - toothLastToothTime = curTime; } void triggerSec_HondaD17() { return; } //The 4+1 signal on the cam is yet to be supported -int getRPM_HondaD17() +uint16_t getRPM_HondaD17() { return stdGetRPM(); } @@ -1082,11 +1133,11 @@ int getCrankAngle_HondaD17(int timePerDegree) int crankAngle; if( tempToothCurrentCount == 0 ) { - crankAngle = 11 * triggerToothAngle + configPage2.triggerAngle; //if temptoothCurrentCount is 0, the last tooth seen was the 13th one. Based on this, ignore the 13th tooth and use the 12th one as the last reference. + crankAngle = (11 * triggerToothAngle) + configPage2.triggerAngle; //if temptoothCurrentCount is 0, the last tooth seen was the 13th one. Based on this, ignore the 13th tooth and use the 12th one as the last reference. } else { - crankAngle = (tempToothCurrentCount - 1) * triggerToothAngle + configPage2.triggerAngle; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. + crankAngle = ((tempToothCurrentCount - 1) * triggerToothAngle) + configPage2.triggerAngle; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. } //Estimate the number of degrees travelled since the last tooth} @@ -1131,59 +1182,63 @@ void triggerPri_Miata9905() { curTime = micros(); curGap = curTime - toothLastToothTime; - if ( curGap < triggerFilterTime ) { return; } //Debounce check. Pulses should never be less than triggerFilterTime - - toothCurrentCount++; - if(toothCurrentCount == 1 || toothCurrentCount == 5) //Trigger is on CHANGE, hence 4 pulses = 1 crank rev + if ( curGap >= triggerFilterTime ) { - toothCurrentCount = 1; //Reset the counter - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - currentStatus.hasSync = true; - currentStatus.startRevolutions++; //Counter - //if ((startRevolutions & 15) == 1) { currentStatus.hasSync = false; } //Every 64 revolutions, force a resync with the cam - } - else if (!currentStatus.hasSync) { return; } + toothCurrentCount++; + if( (toothCurrentCount == 1) || (toothCurrentCount == 5) ) //Trigger is on CHANGE, hence 4 pulses = 1 crank rev + { + toothCurrentCount = 1; //Reset the counter + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.hasSync = true; + currentStatus.startRevolutions++; //Counter + } - addToothLogEntry(curGap); + if (currentStatus.hasSync == true) + { + addToothLogEntry(curGap); - //Whilst this is an uneven tooth pattern, if the specific angle between the last 2 teeth is specified, 1st deriv prediction can be used - if(toothCurrentCount == 1 || toothCurrentCount == 3) { triggerToothAngle = 70; triggerFilterTime = curGap; } //Trigger filter is set to whatever time it took to do 70 degrees (Next trigger is 110 degrees away) - else { triggerToothAngle = 110; triggerFilterTime = (curGap * 3) >> 3; } //Trigger filter is set to (110*3)/8=41.25=41 degrees (Next trigger is 70 degrees away). + //Whilst this is an uneven tooth pattern, if the specific angle between the last 2 teeth is specified, 1st deriv prediction can be used + if( (toothCurrentCount == 1) || (toothCurrentCount == 3) ) { triggerToothAngle = 70; triggerFilterTime = curGap; } //Trigger filter is set to whatever time it took to do 70 degrees (Next trigger is 110 degrees away) + else { triggerToothAngle = 110; triggerFilterTime = (curGap * 3) >> 3; } //Trigger filter is set to (110*3)/8=41.25=41 degrees (Next trigger is 70 degrees away). - curGap = curGap >> 1; + curGap = curGap >> 1; - toothLastMinusOneToothTime = toothLastToothTime; - toothLastToothTime = curTime; + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; + } //Has sync + } //Trigger filter } + void triggerSec_Miata9905() { curTime2 = micros(); curGap2 = curTime2 - toothLastSecToothTime; - if ( curGap2 < triggerSecFilterTime ) { return; } - toothLastSecToothTime = curTime2; - lastGap = curGap2; - - if(BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) || !currentStatus.hasSync) + if ( curGap2 >= triggerSecFilterTime ) { - triggerFilterTime = 1500; - //Check the status of the crank trigger - targetGap = (lastGap) >> 1; //The target gap is set at half the last tooth gap - if ( curGap < targetGap) //If the gap between this tooth and the last one is less than half of the previous gap, then we are very likely at the extra (3rd) tooth on the cam). This tooth is located at 421 crank degrees (aka 61 degrees) and therefore the last crank tooth seen was number 1 (At 350 degrees) + toothLastSecToothTime = curTime2; + lastGap = curGap2; + + if( (BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) || (currentStatus.hasSync == false) ) { - toothCurrentCount = 1; - currentStatus.hasSync = true; + triggerFilterTime = 1500; + //Check the status of the crank trigger + targetGap = (lastGap) >> 1; //The target gap is set at half the last tooth gap + if ( curGap < targetGap) //If the gap between this tooth and the last one is less than half of the previous gap, then we are very likely at the extra (3rd) tooth on the cam). This tooth is located at 421 crank degrees (aka 61 degrees) and therefore the last crank tooth seen was number 1 (At 350 degrees) + { + toothCurrentCount = 1; + currentStatus.hasSync = true; + } } } - //else { triggerFilterTime = 1500; } //reset filter time (ugly) - return; } -int getRPM_Miata9905() +uint16_t getRPM_Miata9905() { //During cranking, RPM is calculated 4 times per revolution, once for each tooth on the crank signal. //Because these signals aren't even (Alternating 110 and 70 degrees), this needs a special function + uint16_t tempRPM = 0; if(currentStatus.RPM < configPage2.crankRPM) { int tempToothAngle; @@ -1192,33 +1247,38 @@ int getRPM_Miata9905() revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 70 and 110 depending on the last tooth that was seen interrupts(); revolutionTime = revolutionTime * 36; - return (tempToothAngle * 60000000L) / revolutionTime; + tempRPM = (tempToothAngle * 60000000L) / revolutionTime; } - else { return stdGetRPM(); } + else { tempRPM = stdGetRPM(); } + + return tempRPM; } int getCrankAngle_Miata9905(int timePerDegree) { - if(!currentStatus.hasSync) { return 0;} - //This is the current angle ATDC the engine is at. This is the last known position based on what tooth was last 'seen'. It is only accurate to the resolution of the trigger wheel (Eg 36-1 is 10 degrees) - unsigned long tempToothLastToothTime; - int tempToothCurrentCount; - //Grab some variables that are used in the trigger code and assign them to temp variables. - noInterrupts(); - tempToothCurrentCount = toothCurrentCount; - tempToothLastToothTime = toothLastToothTime; - interrupts(); + int crankAngle = 0; + if(currentStatus.hasSync == true) + { + //This is the current angle ATDC the engine is at. This is the last known position based on what tooth was last 'seen'. It is only accurate to the resolution of the trigger wheel (Eg 36-1 is 10 degrees) + unsigned long tempToothLastToothTime; + int tempToothCurrentCount; + //Grab some variables that are used in the trigger code and assign them to temp variables. + noInterrupts(); + tempToothCurrentCount = toothCurrentCount; + tempToothLastToothTime = toothLastToothTime; + interrupts(); - int crankAngle = toothAngles[(tempToothCurrentCount - 1)] + configPage2.triggerAngle; //Perform a lookup of the fixed toothAngles array to find what the angle of the last tooth passed was. - //Estimate the number of degrees travelled since the last tooth} + crankAngle = toothAngles[(tempToothCurrentCount - 1)] + configPage2.triggerAngle; //Perform a lookup of the fixed toothAngles array to find what the angle of the last tooth passed was. + //Estimate the number of degrees travelled since the last tooth} - long elapsedTime = micros() - tempToothLastToothTime; - if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime - else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; } + long elapsedTime = micros() - tempToothLastToothTime; + if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime + else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; } - if (crankAngle >= 720) { crankAngle -= 720; } - if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } - if (crankAngle < 0) { crankAngle += 360; } + if (crankAngle >= 720) { crankAngle -= 720; } + if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } + if (crankAngle < 0) { crankAngle += 360; } + } return crankAngle; } @@ -1252,36 +1312,39 @@ void triggerPri_MazdaAU() { curTime = micros(); curGap = curTime - toothLastToothTime; - if ( curGap < triggerFilterTime ) { return; } //Filter check. Pulses should never be less than triggerFilterTime - - addToothLogEntry(curGap); - - toothCurrentCount++; - if(toothCurrentCount == 1 || toothCurrentCount == 5) //Trigger is on CHANGE, hence 4 pulses = 1 crank rev + if ( curGap >= triggerFilterTime ) { - toothCurrentCount = 1; //Reset the counter - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - currentStatus.hasSync = true; - currentStatus.startRevolutions++; //Counter - //if ((startRevolutions & 15) == 1) { currentStatus.hasSync = false; } //Every 64 revolutions, force a resync with the cam. For testing only! - } - else if (!currentStatus.hasSync) { return; } + addToothLogEntry(curGap); - // Locked cranking timing is available, fixed at 12* BTDC - if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) && configPage2.ignCranklock ) - { - if( toothCurrentCount == 1 ) { endCoil1Charge(); } - else if( toothCurrentCount == 3 ) { endCoil2Charge(); } - } + toothCurrentCount++; + if( (toothCurrentCount == 1) || (toothCurrentCount == 5) ) //Trigger is on CHANGE, hence 4 pulses = 1 crank rev + { + toothCurrentCount = 1; //Reset the counter + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.hasSync = true; + currentStatus.startRevolutions++; //Counter + } - //Whilst this is an uneven tooth pattern, if the specific angle between the last 2 teeth is specified, 1st deriv prediction can be used - if(toothCurrentCount == 1 || toothCurrentCount == 3) { triggerToothAngle = 72; triggerFilterTime = curGap; } //Trigger filter is set to whatever time it took to do 72 degrees (Next trigger is 108 degrees away) - else { triggerToothAngle = 108; triggerFilterTime = (curGap * 3) >> 3; } //Trigger filter is set to (108*3)/8=40 degrees (Next trigger is 70 degrees away). + if (currentStatus.hasSync == true) + { + // Locked cranking timing is available, fixed at 12* BTDC + if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) && configPage2.ignCranklock ) + { + if( toothCurrentCount == 1 ) { endCoil1Charge(); } + else if( toothCurrentCount == 3 ) { endCoil2Charge(); } + } - toothLastMinusOneToothTime = toothLastToothTime; - toothLastToothTime = curTime; + //Whilst this is an uneven tooth pattern, if the specific angle between the last 2 teeth is specified, 1st deriv prediction can be used + if( (toothCurrentCount == 1) || (toothCurrentCount == 3) ) { triggerToothAngle = 72; triggerFilterTime = curGap; } //Trigger filter is set to whatever time it took to do 72 degrees (Next trigger is 108 degrees away) + else { triggerToothAngle = 108; triggerFilterTime = (curGap * 3) >> 3; } //Trigger filter is set to (108*3)/8=40 degrees (Next trigger is 70 degrees away). + + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; + } //Has sync + } //Filter time } + void triggerSec_MazdaAU() { curTime2 = micros(); @@ -1290,8 +1353,8 @@ void triggerSec_MazdaAU() //if ( curGap2 < triggerSecFilterTime ) { return; } toothLastSecToothTime = curTime2; - //if(BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) || !currentStatus.hasSync) //Not sure if the cranking check is needed here - if(!currentStatus.hasSync) + //if(BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) || currentStatus.hasSync == false) + if(currentStatus.hasSync == false) { //we find sync by looking for the 2 teeth that are close together. The next crank tooth after that is the one we're looking for. //For the sake of this decoder, the lone cam tooth will be designated #1 @@ -1316,47 +1379,54 @@ void triggerSec_MazdaAU() } -int getRPM_MazdaAU() +uint16_t getRPM_MazdaAU() { - if (!currentStatus.hasSync) { return 0; } + uint16_t tempRPM = 0; - //During cranking, RPM is calculated 4 times per revolution, once for each tooth on the crank signal. - //Because these signals aren't even (Alternating 108 and 72 degrees), this needs a special function - if(currentStatus.RPM < configPage2.crankRPM) + if (currentStatus.hasSync == true) { - int tempToothAngle; - noInterrupts(); - tempToothAngle = triggerToothAngle; - revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 72 and 108 depending on the last tooth that was seen - interrupts(); - revolutionTime = revolutionTime * 36; - return (tempToothAngle * 60000000L) / revolutionTime; + //During cranking, RPM is calculated 4 times per revolution, once for each tooth on the crank signal. + //Because these signals aren't even (Alternating 108 and 72 degrees), this needs a special function + if(currentStatus.RPM < configPage2.crankRPM) + { + int tempToothAngle; + noInterrupts(); + tempToothAngle = triggerToothAngle; + revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 72 and 108 depending on the last tooth that was seen + interrupts(); + revolutionTime = revolutionTime * 36; + tempRPM = (tempToothAngle * 60000000L) / revolutionTime; + } + else { tempRPM = stdGetRPM(); } } - else { return stdGetRPM(); } + return tempRPM; } int getCrankAngle_MazdaAU(int timePerDegree) { - if(!currentStatus.hasSync) { return 0;} - //This is the current angle ATDC the engine is at. This is the last known position based on what tooth was last 'seen'. It is only accurate to the resolution of the trigger wheel (Eg 36-1 is 10 degrees) - unsigned long tempToothLastToothTime; - int tempToothCurrentCount; - //Grab some variables that are used in the trigger code and assign them to temp variables. - noInterrupts(); - tempToothCurrentCount = toothCurrentCount; - tempToothLastToothTime = toothLastToothTime; - interrupts(); + int crankAngle = 0; + if(currentStatus.hasSync == true) + { + //This is the current angle ATDC the engine is at. This is the last known position based on what tooth was last 'seen'. It is only accurate to the resolution of the trigger wheel (Eg 36-1 is 10 degrees) + unsigned long tempToothLastToothTime; + int tempToothCurrentCount; + //Grab some variables that are used in the trigger code and assign them to temp variables. + noInterrupts(); + tempToothCurrentCount = toothCurrentCount; + tempToothLastToothTime = toothLastToothTime; + interrupts(); - int crankAngle = toothAngles[(tempToothCurrentCount - 1)] + configPage2.triggerAngle; //Perform a lookup of the fixed toothAngles array to find what the angle of the last tooth passed was. - //Estimate the number of degrees travelled since the last tooth} + crankAngle = toothAngles[(tempToothCurrentCount - 1)] + configPage2.triggerAngle; //Perform a lookup of the fixed toothAngles array to find what the angle of the last tooth passed was. + //Estimate the number of degrees travelled since the last tooth} - long elapsedTime = micros() - tempToothLastToothTime; - if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime - else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; } + long elapsedTime = micros() - tempToothLastToothTime; + if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime + else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; } - if (crankAngle >= 720) { crankAngle -= 720; } - if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } - if (crankAngle < 0) { crankAngle += 360; } + if (crankAngle >= 720) { crankAngle -= 720; } + if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } + if (crankAngle < 0) { crankAngle += 360; } + } return crankAngle; } @@ -1388,11 +1458,15 @@ void triggerSec_non360() //This is not used, the trigger is identical to the dual wheel one, so that is used instead. } -int getRPM_non360() +uint16_t getRPM_non360() { - if( !currentStatus.hasSync || toothCurrentCount == 0 ) { return 0; } - if(currentStatus.RPM < configPage2.crankRPM) { return crankingGetRPM(configPage2.triggerTeeth); } - return stdGetRPM(); + uint16_t tempRPM = 0; + if( (currentStatus.hasSync == true) && (toothCurrentCount != 0) ) + { + if(currentStatus.RPM < configPage2.crankRPM) { tempRPM = crankingGetRPM(configPage2.triggerTeeth); } + else { tempRPM = stdGetRPM(); } + } + return tempRPM; } int getCrankAngle_non360(int timePerDegree) @@ -1447,14 +1521,14 @@ void triggerPri_Nissan360() { curTime = micros(); //curGap = curTime - toothLastToothTime; - //if ( curGap < triggerFilterTime ) { return; } //Pulses should never be less than triggerFilterTime, so if they are it means a false trigger. + //if ( curGap < triggerFilterTime ) { return; } toothCurrentCount++; //Increment the tooth counter //addToothLogEntry(curGap); Disable tooth logging on this decoder due to overhead toothLastMinusOneToothTime = toothLastToothTime; toothLastToothTime = curTime; - //if ( !currentStatus.hasSync ) { return; } + //if ( currentStatus.hasSync == false ) { return; } if ( toothCurrentCount == 181) //1 complete crank revolution { @@ -1470,7 +1544,8 @@ void triggerPri_Nissan360() currentStatus.startRevolutions++; //Counter } - //setFilter(curGap); //Recalc the new filter value + //Recalc the new filter value + //setFilter(curGap); } void triggerSec_Nissan360() @@ -1479,113 +1554,116 @@ void triggerSec_Nissan360() curGap2 = curTime2 - toothLastSecToothTime; //if ( curGap2 < triggerSecFilterTime ) { return; } toothLastSecToothTime = curTime2; - //triggerSecFilterTime = curGap2 >> 2; //Set filter at 25% of the current speed + //OPTIONAL: Set filter at 25% of the current speed + //triggerSecFilterTime = curGap2 >> 2; //Calculate number of primary teeth that this window has been active for - if(secondaryToothCount == 0) { secondaryToothCount = toothCurrentCount; return; } //This occurs on the first rotation upon powerup - if(READ_SEC_TRIGGER() == LOW) { secondaryToothCount = toothCurrentCount; return; } //This represents the start of a secondary window - - //If we reach here, we are at the end of a secondary window - byte secondaryDuration = toothCurrentCount - secondaryToothCount; //How many primary teeth have passed during the duration of this secondary window - - if(!currentStatus.hasSync) - { - if(configPage1.nCylinders == 4) - { - if(secondaryDuration >= 15 || secondaryDuration <= 17) //Duration of window = 16 primary teeth - { - toothCurrentCount = 16; //End of first window (The longest) occurs 16 teeth after TDC - currentStatus.hasSync = true; - } - else if(secondaryDuration >= 11 || secondaryDuration <= 13) //Duration of window = 12 primary teeth - { - toothCurrentCount = 102; //End of second window is after 90+12 primary teeth - currentStatus.hasSync = true; - } - else if(secondaryDuration >= 7 || secondaryDuration <= 9) //Duration of window = 8 primary teeth - { - toothCurrentCount = 188; //End of third window is after 90+90+8 primary teeth - currentStatus.hasSync = true; - } - else if(secondaryDuration >= 3 || secondaryDuration <= 5) //Duration of window = 4 primary teeth - { - toothCurrentCount = 274; //End of fourth window is after 90+90+90+4 primary teeth - currentStatus.hasSync = true; - } - } - else if(configPage1.nCylinders == 6) - { - if(secondaryDuration >= 23 || secondaryDuration <= 25) //Duration of window = 16 primary teeth - { - toothCurrentCount = 24; //End of first window (The longest) occurs 24 teeth after TDC - currentStatus.hasSync = true; - } - else if(secondaryDuration >= 19 || secondaryDuration <= 21) //Duration of window = 12 primary teeth - { - toothCurrentCount = 84; //End of second window is after 60+20 primary teeth - currentStatus.hasSync = true; - } - else if(secondaryDuration >= 15 || secondaryDuration <= 17) //Duration of window = 16 primary teeth - { - toothCurrentCount = 136; //End of third window is after 60+60+16 primary teeth - currentStatus.hasSync = true; - } - else if(secondaryDuration >= 11 || secondaryDuration <= 13) //Duration of window = 12 primary teeth - { - toothCurrentCount = 192; //End of fourth window is after 60+60+60+12 primary teeth - currentStatus.hasSync = true; - } - else if(secondaryDuration >= 7 || secondaryDuration <= 9) //Duration of window = 8 primary teeth - { - toothCurrentCount = 248; //End of fifth window is after 60+60+60+60+8 primary teeth - currentStatus.hasSync = true; - } - else if(secondaryDuration >= 3 || secondaryDuration <= 5) //Duration of window = 4 primary teeth - { - toothCurrentCount = 304; //End of sixth window is after 60+60+60+60+60+4 primary teeth - currentStatus.hasSync = true; - } - } - else { currentStatus.hasSync = false; return ;} //This should really never happen - } + if( (secondaryToothCount == 0) || (READ_SEC_TRIGGER() == LOW) ) { secondaryToothCount = toothCurrentCount; } //This occurs on the first rotation upon powerup OR the start of a secondary window else { - //Already have sync, but do a verify every 720 degrees. - if(configPage1.nCylinders == 4) - { - if(secondaryDuration >= 15) //Duration of window = 16 primary teeth - { - toothCurrentCount = 16; //End of first window (The longest) occurs 16 teeth after TDC - } - } - else if(configPage1.nCylinders == 6) - { - if(secondaryDuration >= 23) //Duration of window = 24 primary teeth - { - toothCurrentCount = 24; //End of first window (The longest) occurs 24 teeth after TDC - } - } - } + //If we reach here, we are at the end of a secondary window + byte secondaryDuration = toothCurrentCount - secondaryToothCount; //How many primary teeth have passed during the duration of this secondary window + if(currentStatus.hasSync == false) + { + if(configPage1.nCylinders == 4) + { + if( (secondaryDuration >= 15) || (secondaryDuration <= 17) ) //Duration of window = 16 primary teeth + { + toothCurrentCount = 16; //End of first window (The longest) occurs 16 teeth after TDC + currentStatus.hasSync = true; + } + else if( (secondaryDuration >= 11) || (secondaryDuration <= 13) ) //Duration of window = 12 primary teeth + { + toothCurrentCount = 102; //End of second window is after 90+12 primary teeth + currentStatus.hasSync = true; + } + else if( (secondaryDuration >= 7) || (secondaryDuration <= 9) ) //Duration of window = 8 primary teeth + { + toothCurrentCount = 188; //End of third window is after 90+90+8 primary teeth + currentStatus.hasSync = true; + } + else if( (secondaryDuration >= 3) || (secondaryDuration <= 5) ) //Duration of window = 4 primary teeth + { + toothCurrentCount = 274; //End of fourth window is after 90+90+90+4 primary teeth + currentStatus.hasSync = true; + } + } + else if(configPage1.nCylinders == 6) + { + if( (secondaryDuration >= 23) || (secondaryDuration <= 25) ) //Duration of window = 16 primary teeth + { + toothCurrentCount = 24; //End of first window (The longest) occurs 24 teeth after TDC + currentStatus.hasSync = true; + } + else if( (secondaryDuration >= 19) || (secondaryDuration <= 21) ) //Duration of window = 12 primary teeth + { + toothCurrentCount = 84; //End of second window is after 60+20 primary teeth + currentStatus.hasSync = true; + } + else if( (secondaryDuration >= 15) || (secondaryDuration <= 17) ) //Duration of window = 16 primary teeth + { + toothCurrentCount = 136; //End of third window is after 60+60+16 primary teeth + currentStatus.hasSync = true; + } + else if( (secondaryDuration >= 11) || (secondaryDuration <= 13) ) //Duration of window = 12 primary teeth + { + toothCurrentCount = 192; //End of fourth window is after 60+60+60+12 primary teeth + currentStatus.hasSync = true; + } + else if( (secondaryDuration >= 7) || (secondaryDuration <= 9) ) //Duration of window = 8 primary teeth + { + toothCurrentCount = 248; //End of fifth window is after 60+60+60+60+8 primary teeth + currentStatus.hasSync = true; + } + else if( (secondaryDuration >= 3) || (secondaryDuration <= 5) ) //Duration of window = 4 primary teeth + { + toothCurrentCount = 304; //End of sixth window is after 60+60+60+60+60+4 primary teeth + currentStatus.hasSync = true; + } + } + else { currentStatus.hasSync = false; } //This should really never happen + } + else + { + //Already have sync, but do a verify every 720 degrees. + if(configPage1.nCylinders == 4) + { + if(secondaryDuration >= 15) //Duration of window = 16 primary teeth + { + toothCurrentCount = 16; //End of first window (The longest) occurs 16 teeth after TDC + } + } + else if(configPage1.nCylinders == 6) + { + if(secondaryDuration >= 23) //Duration of window = 24 primary teeth + { + toothCurrentCount = 24; //End of first window (The longest) occurs 24 teeth after TDC + } + } //Cylinder count + } //Has sync + } //First getting sync or not } -int getRPM_Nissan360() +uint16_t getRPM_Nissan360() { - //if(currentStatus.RPM < configPage2.crankRPM) { return crankingGetRPM(configPage2.triggerTeeth); } return stdGetRPM(); } int getCrankAngle_Nissan360(int timePerDegree) { //As each tooth represents 2 crank degrees, we only need to determine whether we're more or less than halfway between teeth to know whether to add another 1 degrees + int crankAngle = 0; unsigned long halfTooth = (toothLastToothTime - toothLastMinusOneToothTime) >> 1; if ( (micros() - toothLastToothTime) > halfTooth) { //Means we're over halfway to the next tooth, so add on 1 degree - return (toothCurrentCount * triggerToothAngle) + 1; + crankAngle = (toothCurrentCount * triggerToothAngle) + 1; } - return (toothCurrentCount * triggerToothAngle); + else { crankAngle = (toothCurrentCount * triggerToothAngle); } + + return crankAngle; } /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -1623,14 +1701,14 @@ void triggerPri_Subaru67() { curTime = micros(); //curGap = curTime - toothLastToothTime; - //if ( curGap < triggerFilterTime ) { return; } //Pulses should never be less than triggerFilterTime, so if they are it means a false trigger. + //if ( curGap < triggerFilterTime ) { return; } toothCurrentCount++; //Increment the tooth counter addToothLogEntry(curGap); toothLastMinusOneToothTime = toothLastToothTime; toothLastToothTime = curTime; - if ( !currentStatus.hasSync || configPage2.useResync) + if ( (currentStatus.hasSync == false) || configPage2.useResync) { //Sync is determined by counting the number of cam teeth that have passed between the crank teeth switch(secondaryToothCount) @@ -1662,24 +1740,28 @@ void triggerPri_Subaru67() } } - if ( !currentStatus.hasSync ) { return; } //Check again if we have sync and return if not - //Locked timing during cranking. This is fixed at 10* BTDC. - if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) && configPage2.ignCranklock) + //Check sync again + if ( currentStatus.hasSync == true ) { - if( toothCurrentCount == 1 || toothCurrentCount == 7 ) { endCoil1Charge(); endCoil3Charge(); } - else if( toothCurrentCount == 4 || toothCurrentCount == 10 ) { endCoil2Charge(); endCoil4Charge(); } + //Locked timing during cranking. This is fixed at 10* BTDC. + if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) && configPage2.ignCranklock) + { + if( (toothCurrentCount == 1) || (toothCurrentCount == 7) ) { endCoil1Charge(); endCoil3Charge(); } + else if( (toothCurrentCount == 4) || (toothCurrentCount == 10) ) { endCoil2Charge(); endCoil4Charge(); } + } + + if ( toothCurrentCount > 12 ) //2 complete crank revolutions + { + toothCurrentCount = 1; + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.startRevolutions++; //Counter + } } - if ( toothCurrentCount > 12 ) //2 complete crank revolutions - { - toothCurrentCount = 1; - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - currentStatus.startRevolutions++; //Counter - } - - //setFilter(curGap); //Recalc the new filter value + //Recalc the new filter value + //setFilter(curGap); } void triggerSec_Subaru67() @@ -1688,11 +1770,12 @@ void triggerSec_Subaru67() curGap2 = curTime2 - toothLastSecToothTime; //if ( curGap2 < triggerSecFilterTime ) { return; } toothLastSecToothTime = curTime2; - //triggerSecFilterTime = curGap2 >> 2; //Set filter at 25% of the current speed + //OPTIONAL Set filter at 25% of the current speed + //triggerSecFilterTime = curGap2 >> 2; secondaryToothCount++; } -int getRPM_Subaru67() +uint16_t getRPM_Subaru67() { //if(currentStatus.RPM < configPage2.crankRPM) { return crankingGetRPM(configPage2.triggerTeeth); } return stdGetRPM(); @@ -1700,26 +1783,186 @@ int getRPM_Subaru67() int getCrankAngle_Subaru67(int timePerDegree) { - if(!currentStatus.hasSync) { return 0; } - //This is the current angle ATDC the engine is at. This is the last known position based on what tooth was last 'seen'. It is only accurate to the resolution of the trigger wheel (Eg 36-1 is 10 degrees) - unsigned long tempToothLastToothTime; - int tempToothCurrentCount; - //Grab some variables that are used in the trigger code and assign them to temp variables. - noInterrupts(); - tempToothCurrentCount = toothCurrentCount; - tempToothLastToothTime = toothLastToothTime; - interrupts(); + int crankAngle = 0; + if( currentStatus.hasSync == true ) + { + //This is the current angle ATDC the engine is at. This is the last known position based on what tooth was last 'seen'. It is only accurate to the resolution of the trigger wheel (Eg 36-1 is 10 degrees) + unsigned long tempToothLastToothTime; + int tempToothCurrentCount; + //Grab some variables that are used in the trigger code and assign them to temp variables. + noInterrupts(); + tempToothCurrentCount = toothCurrentCount; + tempToothLastToothTime = toothLastToothTime; + interrupts(); - int crankAngle = toothAngles[(tempToothCurrentCount - 1)] + configPage2.triggerAngle; //Perform a lookup of the fixed toothAngles array to find what the angle of the last tooth passed was. - //Estimate the number of degrees travelled since the last tooth} + crankAngle = toothAngles[(tempToothCurrentCount - 1)] + configPage2.triggerAngle; //Perform a lookup of the fixed toothAngles array to find what the angle of the last tooth passed was. + //Estimate the number of degrees travelled since the last tooth} - unsigned long elapsedTime = micros() - tempToothLastToothTime; - if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime - else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; } + unsigned long elapsedTime = micros() - tempToothLastToothTime; + if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime + else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; } - if (crankAngle >= 720) { crankAngle -= 720; } - if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } - if (crankAngle < 0) { crankAngle += 360; } + if (crankAngle >= 720) { crankAngle -= 720; } + if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } + if (crankAngle < 0) { crankAngle += 360; } + } return crankAngle; } + +/* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Name: Daihatsu +1 trigger for 3 and 4 cylinder engines +Desc: Tooth equal to the number of cylinders are evenly spaced on the cam. No position sensing (Distributor is retained) so crank angle is a made up figure based purely on the first teeth to be seen +Note: This is a very simple decoder. See http://www.megamanual.com/ms2/GM_7pinHEI.htm +*/ +void triggerSetup_Daihatsu() +{ + triggerActualTeeth = configPage1.nCylinders + 1; + triggerToothAngle = 720 / triggerActualTeeth; //The number of degrees that passes from tooth to tooth + triggerFilterTime = 60000000L / MAX_RPM / configPage1.nCylinders; // Minimum time required between teeth + triggerFilterTime = triggerFilterTime / 2; //Safety margin + secondDerivEnabled = false; + decoderIsSequential = false; + + MAX_STALL_TIME = (1851UL * triggerToothAngle)*4;//Minimum 90rpm. (1851uS is the time per degree at 90rpm). This uses 90rpm rather than 50rpm due to the potentially very high stall time on a 4 cylinder if we wait that long. + + if(configPage1.nCylinders == 3) + { + toothAngles[0] = 0; //tooth #1 + toothAngles[1] = 30; //tooth #2 (Extra tooth) + toothAngles[2] = 240; //tooth #3 + toothAngles[3] = 480; //tooth #4 + } + else + { + //Should be 4 cylinders here + toothAngles[0] = 0; //tooth #1 + toothAngles[1] = 30; //tooth #2 (Extra tooth) + toothAngles[2] = 180; //tooth #3 + toothAngles[3] = 360; //tooth #4 + toothAngles[4] = 540; //tooth #5 + } +} + +void triggerPri_Daihatsu() +{ + curTime = micros(); + curGap = curTime - toothLastToothTime; + + //if ( curGap >= triggerFilterTime ) + { + toothSystemCount++; + + if (currentStatus.hasSync == true) + { + if( (toothCurrentCount == triggerActualTeeth) ) //Check if we're back to the beginning of a revolution + { + toothCurrentCount = 1; //Reset the counter + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.hasSync = true; + currentStatus.startRevolutions++; //Counter + + //Need to set a special filter time for the next tooth + triggerFilterTime = 20; //Fix this later + } + else + { + toothCurrentCount++; //Increment the tooth counter + setFilter(curGap); //Recalc the new filter value + } + + //addToothLogEntry(curGap); + + if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) + { + //This locks the cranking timing to 0 degrees BTDC (All the triggers allow for) + if(toothCurrentCount == 1) { endCoil1Charge(); } + else if(toothCurrentCount == 2) { endCoil2Charge(); } + else if(toothCurrentCount == 3) { endCoil3Charge(); } + else if(toothCurrentCount == 4) { endCoil4Charge(); } + } + } + else //NO SYNC + { + // + if(toothSystemCount >= 3) //Need to have seen at least 3 teeth to determine SYNC + { + unsigned long targetTime; + //We need to try and find the extra tooth (#2) which is located 30 degrees after tooth #1 + //Aim for tooth times less than about 60 degrees + if(configPage1.nCylinders == 3) + { + targetTime = (toothLastToothTime - toothLastMinusOneToothTime) >> 2; //Teeth are 240 degrees apart for 3 cylinder. 240/3 = 60 + } + else + { + targetTime = ((toothLastToothTime - toothLastMinusOneToothTime) * 3) >> 4; //Teeth are 180 degrees apart for 4 cylinder. (180*3)/8 = 67 + } + if(curGap < targetTime) + { + //Means we're on the extra tooth here + toothCurrentCount = 2; //Reset the counter + currentStatus.hasSync = true; + triggerFilterTime = targetTime; //Lazy, but it works + } + } + } + + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; + } //Trigger filter +} +void triggerSec_Daihatsu() { return; } //Not required (Should never be called in the first place) + +uint16_t getRPM_Daihatsu() +{ + uint16_t tempRPM = 0; + if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) && false) //Disable special cranking processing for now + { + //Cn't use standard cranking RPM functin due to extra tooth + if( currentStatus.hasSync == true ) + { + if(toothCurrentCount == 2) { tempRPM = currentStatus.RPM; } + else if (toothCurrentCount == 3) { tempRPM = currentStatus.RPM; } + else + { + noInterrupts(); + revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime) * (triggerActualTeeth-1); + interrupts(); + tempRPM = (US_IN_MINUTE / revolutionTime); + if(tempRPM >= MAX_RPM) { tempRPM = currentStatus.RPM; } //Sanity check + } //is tooth #2 + } + else { tempRPM = 0; } //No sync + } + else + { tempRPM = stdGetRPM() << 1; } //Multiply RPM by 2 due to tracking over 720 degrees now rather than 360 + + return tempRPM; + +} +int getCrankAngle_Daihatsu(int timePerDegree) +{ + //This is the current angle ATDC the engine is at. This is the last known position based on what tooth was last 'seen'. It is only accurate to the resolution of the trigger wheel (Eg 36-1 is 10 degrees) + unsigned long tempToothLastToothTime; + int tempToothCurrentCount; + int crankAngle; + //Grab some variables that are used in the trigger code and assign them to temp variables. + noInterrupts(); + tempToothCurrentCount = toothCurrentCount; + tempToothLastToothTime = toothLastToothTime; + interrupts(); + + crankAngle = toothAngles[tempToothCurrentCount-1] + configPage2.triggerAngle; //Crank angle of the last tooth seen + //Estimate the number of degrees travelled since the last tooth} + long elapsedTime = micros() - tempToothLastToothTime; + if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime + else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; } + + if (crankAngle >= 720) { crankAngle -= 720; } + if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } + if (crankAngle < 0) { crankAngle += CRANK_ANGLE_MAX; } + + return crankAngle; +} diff --git a/speeduino/errors.ino b/speeduino/errors.ino index a2bb50ca..903e1de7 100644 --- a/speeduino/errors.ino +++ b/speeduino/errors.ino @@ -17,32 +17,32 @@ byte setError(byte errorID) errorCodes[errorCount] = errorID; errorCount++; if(errorCount == 1) { BIT_SET(currentStatus.spark, BIT_SPARK_ERROR); } //Enable the error indicator - return errorCount; } - return 0; + return errorCount; } void clearError(byte errorID) { - byte clearedError; + byte clearedError = 255; if (errorID == errorCodes[0]) { clearedError = 0; } else if(errorID == errorCodes[1]) { clearedError = 1; } else if(errorID == errorCodes[2]) { clearedError = 2; } else if(errorID == errorCodes[3]) { clearedError = 3; } - else return; //Occurs when the error we're being asked to clear is not currently one of the active errors - errorCodes[clearedError] = ERR_NONE; - //Clear the required error and move any from above it 'down' in the error array - for (byte x=clearedError; x < (errorCount-1); x++) + if(clearedError < MAX_ERRORS) { - errorCodes[x] = errorCodes[x+1]; - errorCodes[x+1] = ERR_NONE; - } + errorCodes[clearedError] = ERR_NONE; + //Clear the required error and move any from above it 'down' in the error array + for (byte x=clearedError; x < (errorCount-1); x++) + { + errorCodes[x] = errorCodes[x+1]; + errorCodes[x+1] = ERR_NONE; + } - errorCount--; - if(errorCount == 0) { BIT_CLEAR(currentStatus.spark, BIT_SPARK_ERROR); } //Enable the error indicator - + errorCount--; + if(errorCount == 0) { BIT_CLEAR(currentStatus.spark, BIT_SPARK_ERROR); } //Enable the error indicator + } } byte getNextError() diff --git a/speeduino/globals.h b/speeduino/globals.h index 002b5443..257ed8d8 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -9,18 +9,20 @@ #define CORE_AVR #elif defined(CORE_TEENSY) #define BOARD_NR_GPIO_PINS 34 -#elif defined(STM32_MCU_SERIES) || defined(_VARIANT_ARDUINO_STM32_) +#elif defined(STM32_MCU_SERIES) || defined(ARDUINO_ARCH_STM32) || defined(__STM32F1__) || defined(STM32F4) || defined(STM32) #define CORE_STM32 - #if defined (ARDUINO_ARCH_STM32F1) + #if defined (STM32F1) || defined(__STM32F1__) + #define BOARD_NR_GPIO_PINS 34 #define LED_BUILTIN 33 - #elif defined (ARDUINO_ARCH_STM32F4) - #define LED_BUILTIN PA6 + #elif defined(ARDUINO_BLACK_F407VE) + #define BOARD_NR_GPIO_PINS 78 + #define LED_BUILTIN PA7 #endif extern "C" char* sbrk(int incr); //Used to freeRam inline unsigned char digitalPinToInterrupt(unsigned char Interrupt_pin) { return Interrupt_pin; } //This isn't included in the stm32duino libs (yet) - #define portOutputRegister(port) (volatile byte *)( &(port->regs->ODR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value - #define portInputRegister(port) (volatile byte *)( &(port->regs->IDR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value + #define portOutputRegister(port) (volatile byte *)( &(port->ODR) ) + #define portInputRegister(port) (volatile byte *)( &(port->IDR) ) #else #error Incorrect board selected. Please select the correct board (Usually Mega 2560) and upload again #endif @@ -28,7 +30,7 @@ //Handy bitsetting macros #define BIT_SET(a,b) ((a) |= (1<<(b))) #define BIT_CLEAR(a,b) ((a) &= ~(1<<(b))) -#define BIT_CHECK(var,pos) ((var) & (1<<(pos))) +#define BIT_CHECK(var,pos) !!((var) & (1<<(pos))) #define MS_IN_MINUTE 60000 #define US_IN_MINUTE 60000000 @@ -107,8 +109,8 @@ const byte signature = 20; //const char signature[] = "speeduino"; -const char displaySignature[] = "speeduino 201609-dev"; -const char TSfirmwareVersion[] = "Speeduino 2016.09"; +const char displaySignature[] = "Speeduino 2017"; +const char TSfirmwareVersion[] = "07-dev"; const byte data_structure_version = 2; //This identifies the data structure when reading / writing. const byte page_size = 64; @@ -163,11 +165,21 @@ volatile byte triggerPri_pin_mask; volatile byte *triggerSec_pin_port; volatile byte triggerSec_pin_mask; +//These need to be here as they are used in both speeduino.ino and scheduler.ino +bool channel1InjEnabled = true; +bool channel2InjEnabled = false; +bool channel3InjEnabled = false; +bool channel4InjEnabled = false; +bool channel5InjEnabled = false; + +//This is used across multiple files +unsigned long revolutionTime; //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) + //The status struct contains the current values for all 'live' variables //In current version this is 64 bytes struct statuses { - volatile boolean hasSync; - unsigned int RPM; + volatile bool hasSync; + uint16_t RPM; long longRPM; int mapADC; long MAP; //Has to be a long for PID calcs (Boost control) @@ -220,7 +232,7 @@ struct statuses { volatile unsigned int loopsPerSecond; boolean launchingSoft; //True when in launch control soft limit mode boolean launchingHard; //True when in launch control hard limit mode - int freeRAM; + unsigned int freeRAM; unsigned int clutchEngagedRPM; bool flatShiftingHard; volatile byte startRevolutions; //A counter for how many revolutions have been completed since sync was achieved. @@ -245,7 +257,7 @@ struct statuses currentStatus; //The global status object //This mostly covers off variables that are required for fuel struct config1 { - int8_t flexBoostLow; + int8_t flexBoostLow; //Must be signed to allow for negatives byte flexBoostHigh; byte asePct; //Afterstart enrichment (%) byte aseCount; //Afterstart enrichment cycles. This is the number of ignition cycles that the afterstart enrichment % lasts for diff --git a/speeduino/idle.h b/speeduino/idle.h index 234eea06..929a7755 100644 --- a/speeduino/idle.h +++ b/speeduino/idle.h @@ -25,7 +25,7 @@ struct StepperIdle volatile unsigned long stepStartTime; //The time the curren }; -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) +#if defined(CORE_AVR) #define IDLE_COUNTER TCNT4 #define IDLE_COMPARE OCR4C @@ -46,7 +46,7 @@ struct StepperIdle #define IDLE_COMPARE 0 #define IDLE_TIMER_ENABLE() - #define IDLE_TIMER_DISABLE() + #define IDLE_TIMER_DISABLE() #endif diff --git a/speeduino/idle.ino b/speeduino/idle.ino index 28bb9563..af41d507 100644 --- a/speeduino/idle.ino +++ b/speeduino/idle.ino @@ -19,12 +19,12 @@ void initialiseIdle() { //By default, turn off the PWM interrupt (It gets turned on below if needed) IDLE_TIMER_DISABLE(); - #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) //AVR chips use the ISR for this + #if defined(CORE_AVR) //AVR chips use the ISR for this //No timer work required for AVRs. Timer is shared with the schedules and setup in there. #elif defined (CORE_TEENSY) - if(configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_OL || configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_CL) + if( (configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_OL) || (configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_CL) ) { //FlexTimer 2 is used for idle FTM2_MODE |= FTM_MODE_WPDIS; // Write Protection Disable @@ -154,7 +154,6 @@ void initialiseIdle() iacCrankStepsTable.axisX = configPage4.iacCrankBins; iacStepTime = configPage4.iacStepTime * 1000; - //homeStepper(); //Returns the stepper to the 'home' position completedHomeSteps = 0; idleStepper.curIdleStep = 0; idleStepper.stepperStatus = SOFF; @@ -181,6 +180,10 @@ void initialiseIdle() idlePID.SetTunings(configPage3.idleKP, configPage3.idleKI, configPage3.idleKD); idlePID.SetMode(AUTOMATIC); //Turn PID on break; + + default: + //Well this just shouldn't happen + break; } idleInitComplete = configPage4.iacAlgorithm; //Sets which idle method was initialised currentStatus.idleLoad = 0; @@ -242,48 +245,53 @@ void idleControl() case IAC_ALGORITHM_STEP_OL: //Case 4 is open loop stepper control //First thing to check is whether there is currently a step going on and if so, whether it needs to be turned off - if( checkForStepping() ) { return; } //If this is true it means there's either a step taking place or - if( !isStepperHomed() ) { return; } //Check whether homing is completed yet. - - //Check for cranking pulsewidth - if( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) + if( isStepperHomed() && !checkForStepping() ) //Check that homing is complete and that there's not currently a step already taking place { - //Currently cranking. Use the cranking table - idleStepper.targetIdleStep = table2D_getValue(&iacCrankStepsTable, (currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET)) * 3; //All temps are offset by 40 degrees. Step counts are divided by 3 in TS. Multiply back out here - doStep(); - } - else if( (currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET) < iacStepTable.axisX[IDLE_TABLE_SIZE-1]) - { - //Standard running - if ((mainLoopCount & 255) == 1) + //Check for cranking pulsewidth + if( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { - //Only do a lookup of the required value around 4 times per second. Any more than this can create too much jitter and require a hyster value that is too high - idleStepper.targetIdleStep = table2D_getValue(&iacStepTable, (currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET)) * 3; //All temps are offset by 40 degrees. Step counts are divided by 3 in TS. Multiply back out here - iacStepTime = configPage4.iacStepTime * 1000; + //Currently cranking. Use the cranking table + idleStepper.targetIdleStep = table2D_getValue(&iacCrankStepsTable, (currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET)) * 3; //All temps are offset by 40 degrees. Step counts are divided by 3 in TS. Multiply back out here + doStep(); } - doStep(); + else if( (currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET) < iacStepTable.axisX[IDLE_TABLE_SIZE-1]) + { + //Standard running + if ((mainLoopCount & 255) == 1) + { + //Only do a lookup of the required value around 4 times per second. Any more than this can create too much jitter and require a hyster value that is too high + idleStepper.targetIdleStep = table2D_getValue(&iacStepTable, (currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET)) * 3; //All temps are offset by 40 degrees. Step counts are divided by 3 in TS. Multiply back out here + iacStepTime = configPage4.iacStepTime * 1000; + } + doStep(); + } + currentStatus.idleLoad = idleStepper.curIdleStep >> 1; //Current step count (Divided by 2 for byte) } - currentStatus.idleLoad = idleStepper.curIdleStep >> 1; //Current step count (Divided by 2 for byte) break; case IAC_ALGORITHM_STEP_CL://Case 5 is closed loop stepper control //First thing to check is whether there is currently a step going on and if so, whether it needs to be turned off - if( checkForStepping() ) { return; } //If this is true it means there's either a step taking place or - if( !isStepperHomed() ) { return; } //Check whether homing is completed yet. - if( (idleCounter & 31) == 1) + if( isStepperHomed() && !checkForStepping() ) //Check that homing is complete and that there's not currently a step already taking place { - //This only needs to be run very infrequently, once every 32 calls to idleControl(). This is approx. once per second - idlePID.SetTunings(configPage3.idleKP, configPage3.idleKI, configPage3.idleKD); - iacStepTime = configPage4.iacStepTime * 1000; + if( (idleCounter & 31) == 1) + { + //This only needs to be run very infrequently, once every 32 calls to idleControl(). This is approx. once per second + idlePID.SetTunings(configPage3.idleKP, configPage3.idleKI, configPage3.idleKD); + iacStepTime = configPage4.iacStepTime * 1000; + } + + idle_cl_target_rpm = table2D_getValue(&iacClosedLoopTable, currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET) * 10; //All temps are offset by 40 degrees + idlePID.Compute(); + idleStepper.targetIdleStep = idle_pid_target_value; + + doStep(); + currentStatus.idleLoad = idleStepper.curIdleStep >> 1; //Current step count (Divided by 2 for byte) + idleCounter++; } + break; - idle_cl_target_rpm = table2D_getValue(&iacClosedLoopTable, currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET) * 10; //All temps are offset by 40 degrees - idlePID.Compute(); - idleStepper.targetIdleStep = idle_pid_target_value; - - doStep(); - currentStatus.idleLoad = idleStepper.curIdleStep >> 1; //Current step count (Divided by 2 for byte) - idleCounter++; + default: + //There really should be a valid idle type break; } } @@ -296,6 +304,7 @@ False: If the motor has not yet been homed. Will also perform another homing ste */ static inline byte isStepperHomed() { + bool isHomed = true; //As it's the most common scenario, default value is true if( completedHomeSteps < (configPage4.iacStepHome * 3) ) //Home steps are divided by 3 from TS { digitalWrite(pinStepperDir, STEPPER_BACKWARD); //Sets stepper direction to backwards @@ -304,9 +313,9 @@ static inline byte isStepperHomed() idleStepper.stepperStatus = STEPPING; completedHomeSteps++; idleOn = true; - return false; + isHomed = false; } - return true; + return isHomed; } /* @@ -317,7 +326,8 @@ False: If the motor is ready for another step */ static inline byte checkForStepping() { - if(idleStepper.stepperStatus == STEPPING || idleStepper.stepperStatus == COOLING) + bool isStepping = false; + if( (idleStepper.stepperStatus == STEPPING) || (idleStepper.stepperStatus == COOLING) ) { if(micros() > (idleStepper.stepStartTime + iacStepTime) ) { @@ -327,7 +337,7 @@ static inline byte checkForStepping() digitalWrite(pinStepperStep, LOW); //Turn off the step idleStepper.stepStartTime = micros(); idleStepper.stepperStatus = COOLING; //'Cooling' is the time the stepper needs to sit in LOW state before the next step can be made - return true; + isStepping = true; } else { @@ -339,10 +349,10 @@ static inline byte checkForStepping() else { //Means we're in a step, but it doesn't need to turn off yet. No further action at this time - return true; + isStepping = true; } } - return false; + return isStepping; } /* @@ -350,36 +360,31 @@ Performs a step */ static inline void doStep() { - if ( idleStepper.targetIdleStep > (idleStepper.curIdleStep - configPage4.iacStepHyster) && idleStepper.targetIdleStep < (idleStepper.curIdleStep + configPage4.iacStepHyster) ) { return; } //Hysteris check - else if(idleStepper.targetIdleStep < idleStepper.curIdleStep) { digitalWrite(pinStepperDir, STEPPER_BACKWARD); idleStepper.curIdleStep--; }//Sets stepper direction to backwards - else if (idleStepper.targetIdleStep > idleStepper.curIdleStep) { digitalWrite(pinStepperDir, STEPPER_FORWARD); idleStepper.curIdleStep++; }//Sets stepper direction to forwards + if ( (idleStepper.targetIdleStep <= (idleStepper.curIdleStep - configPage4.iacStepHyster)) || (idleStepper.targetIdleStep >= (idleStepper.curIdleStep + configPage4.iacStepHyster)) ) //Hysteris check + { + if(idleStepper.targetIdleStep < idleStepper.curIdleStep) { digitalWrite(pinStepperDir, STEPPER_BACKWARD); idleStepper.curIdleStep--; }//Sets stepper direction to backwards + else if (idleStepper.targetIdleStep > idleStepper.curIdleStep) { digitalWrite(pinStepperDir, STEPPER_FORWARD); idleStepper.curIdleStep++; }//Sets stepper direction to forwards - digitalWrite(pinStepperEnable, LOW); //Enable the DRV8825 - digitalWrite(pinStepperStep, HIGH); - idleStepper.stepStartTime = micros(); - idleStepper.stepperStatus = STEPPING; - idleOn = true; + digitalWrite(pinStepperEnable, LOW); //Enable the DRV8825 + digitalWrite(pinStepperStep, HIGH); + idleStepper.stepStartTime = micros(); + idleStepper.stepperStatus = STEPPING; + idleOn = true; + } } //This function simply turns off the idle PWM and sets the pin low static inline void disableIdle() { - if(configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_CL || configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_OL) + if( (configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_CL) || (configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_OL) ) { IDLE_TIMER_DISABLE(); digitalWrite(pinIdle1, LOW); } - else if (configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL || configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL) + else if ( (configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL) || (configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL) ) { digitalWrite(pinStepperEnable, HIGH); //Disable the DRV8825 idleStepper.targetIdleStep = idleStepper.curIdleStep; //Don't try to move anymore - //The below appears to be causing issues, so for now this will simply halt the stepper entirely rather than taking it back to step 1 - /* - idleStepper.targetIdleStep = 1; //Home the stepper - if( checkForStepping() ) { return; } //If this is true it means there's either a step taking place or - if( !isStepperHomed() ) { return; } //Check whether homing is completed yet. - doStep(); - */ } } @@ -387,22 +392,22 @@ static inline void disableIdle() //Typically this is enabling the PWM interrupt static inline void enableIdle() { - if(configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_CL || configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_OL) + if( (configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_CL) || (configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_OL) ) { IDLE_TIMER_ENABLE(); } - else if (configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL || configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL) + else if ( (configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL) || (configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL) ) { } } -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) //AVR chips use the ISR for this +#if defined(CORE_AVR) //AVR chips use the ISR for this ISR(TIMER4_COMPC_vect) #elif defined (CORE_TEENSY) || defined (CORE_STM32) static inline void idleInterrupt() //Most ARM chips can simply call a function #endif -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) || defined (CORE_TEENSY) +#if defined(CORE_AVR) || defined (CORE_TEENSY) { if (idle_pwm_state) { @@ -410,13 +415,13 @@ static inline void idleInterrupt() //Most ARM chips can simply call a function { //Normal direction *idle_pin_port &= ~(idle_pin_mask); // Switch pin to low (1 pin mode) - if(configPage4.iacChannels) { *idle2_pin_port |= (idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 + if(configPage4.iacChannels == 1) { *idle2_pin_port |= (idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 } else { //Reversed direction *idle_pin_port |= (idle_pin_mask); // Switch pin high - if(configPage4.iacChannels) { *idle2_pin_port &= ~(idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 + if(configPage4.iacChannels == 1) { *idle2_pin_port &= ~(idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 } IDLE_COMPARE = IDLE_COUNTER + (idle_pwm_max_count - idle_pwm_cur_value); idle_pwm_state = false; @@ -427,13 +432,13 @@ static inline void idleInterrupt() //Most ARM chips can simply call a function { //Normal direction *idle_pin_port |= (idle_pin_mask); // Switch pin high - if(configPage4.iacChannels) { *idle2_pin_port &= ~(idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 + if(configPage4.iacChannels == 1) { *idle2_pin_port &= ~(idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 } else { //Reversed direction *idle_pin_port &= ~(idle_pin_mask); // Switch pin to low (1 pin mode) - if(configPage4.iacChannels) { *idle2_pin_port |= (idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 + if(configPage4.iacChannels == 1) { *idle2_pin_port |= (idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 } IDLE_COMPARE = IDLE_COUNTER + idle_pwm_target_value; idle_pwm_cur_value = idle_pwm_target_value; diff --git a/speeduino/maths.h b/speeduino/maths.h index c3fad7bd..dee4e611 100644 --- a/speeduino/maths.h +++ b/speeduino/maths.h @@ -1,7 +1,7 @@ #ifndef MATH_H #define MATH_H -int fastResize(unsigned int, int); +int fastResize(int, int); unsigned long percentage(byte, unsigned long); #endif diff --git a/speeduino/maths.ino b/speeduino/maths.ino index 08d00954..be1716b1 100644 --- a/speeduino/maths.ino +++ b/speeduino/maths.ino @@ -5,70 +5,75 @@ //Replace the standard arduino map() function to use the div function instead int fastMap(unsigned long x, int in_min, int in_max, int out_min, int out_max) { - return ldiv( ((x - in_min) * (out_max - out_min)) , (in_max - in_min) ).quot + out_min; + unsigned long a = (x - (unsigned long)in_min); + int b = (out_max - out_min); + int c = (in_max - in_min); + int d = (ldiv( (a * (long)b) , (long)c ).quot); + return d + out_min; + //return ldiv( ((x - in_min) * (out_max - out_min)) , (in_max - in_min) ).quot + out_min; //return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } -//This is a dedicated function that specifically handles the case of mapping 0-1023 values into a 0 to X range +//This is a dedicated function that specifically handles the case of mapping 0-1023 values into a 0 to X range //This is a common case because it means converting from a standard 10-bit analog input to a byte or 10-bit analog into 0-511 (Eg the temperature readings) //int fastMap1023toX(unsigned long x, int in_min, int in_max, int out_min, int out_max) //removed ununsed variables, in_min and out_min is aways 0, in_max is aways 1023 -int fastResize(unsigned int x, int out_max) -{ - #if defined(CORE_STM32) - return (x * out_max) >> 12; - #else - return (x * out_max) >> 10; - #endif -} - +#if defined(CORE_STM32) + #define fastResize(x, out_max) ( ((unsigned long)x * out_max) >> 12) +#else + #define fastResize(x, out_max) ( ((unsigned long)x * out_max) >> 10) +#endif /* The following are all fast versions of specific divisions Ref: http://www.hackersdelight.org/divcMore.pdf */ //Unsigned divide by 10 -unsigned int divu10(unsigned int n) { - unsigned long q, r; - q = (n >> 1) + (n >> 2); - q = q + (q >> 4); - q = q + (q >> 8); - q = q + (q >> 16); - q = q >> 3; - r = n - q*10; - return q + ((r + 6) >> 4); -// return q + (r > 9); +unsigned int divu10(unsigned int n) +{ + unsigned long q, r; + q = (n >> 1) + (n >> 2); + q = q + (q >> 4); + q = q + (q >> 8); + q = q + (q >> 16); + q = q >> 3; + r = n - (q * 10); + return q + ((r + 6) >> 4); } //Signed divide by 10 -int divs10(long n) { - long q, r; - n = n + (n>>31 & 9); - q = (n >> 1) + (n >> 2); - q = q + (q >> 4); - q = q + (q >> 8); - q = q + (q >> 16); - q = q >> 3; - r = n - q*10; - return q + ((r + 6) >> 4); -// return q + (r > 9); +int divs10(long n) +{ + long q, r, p; + p = n + ( (n>>31) & 9); + q = (p >> 1) + (p >> 2); + q = q + (q >> 4); + q = q + (q >> 8); + q = q + (q >> 16); + q = q >> 3; + r = p - (q * 10); + return q + ((r + 6) >> 4); } //Signed divide by 100 -int divs100(long n) { +int divs100(long n) +{ return (n / 100); // Amazingly, gcc is producing a better /divide by 100 function than this - long q, r; - n = n + (n>>31 & 99); - q = (n >> 1) + (n >> 3) + (n >> 6) - (n >> 10) + - (n >> 12) + (n >> 13) - (n >> 16); - q = q + (q >> 20); - q = q >> 6; - r = n - q*100; - return q + ((r + 28) >> 7); -// return q + (r > 99); + /* + long q, r; + n = n + (n>>31 & 99); + q = (n >> 1) + (n >> 3) + (n >> 6) - (n >> 10) + + (n >> 12) + (n >> 13) - (n >> 16); + q = q + (q >> 20); + q = q >> 6; + r = n - q*100; + return q + ((r + 28) >> 7); + */ } -unsigned long divu100(unsigned long n) { +//Unsigned divide by 100 +unsigned long divu100(unsigned long n) +{ #if defined(CORE_STM32) return (n / 100); // No difference with this on/off #else @@ -80,11 +85,10 @@ unsigned long divu100(unsigned long n) { r = n - q*100; return q + ((r + 28) >> 7); #endif -// return q + (r > 99); } //Return x percent of y -//This is a relatively fast approximation of a percentage value. +//This is a relatively fast approximation of a percentage value. unsigned long percentage(byte x, unsigned long y) { return (y * x) / 100; //For some reason this is faster @@ -97,7 +101,7 @@ unsigned long percentage(byte x, unsigned long y) inline long powint(int factor, unsigned int exponent) { long product = 1; - while (exponent--) - product *= factor; + unsigned int counter = exponent; + while ( (counter--) > 0) { product *= factor; } return product; } diff --git a/speeduino/scheduledIO.h b/speeduino/scheduledIO.h index 28c66b8e..a6ba3049 100644 --- a/speeduino/scheduledIO.h +++ b/speeduino/scheduledIO.h @@ -1,30 +1,39 @@ #ifndef SCHEDULEDIO_H #define SCHEDULEDIO_H -inline void openInjector1(); -inline void closeInjector1(); inline void beginCoil1Charge(); inline void endCoil1Charge(); -inline void openInjector2(); -inline void closeInjector2(); inline void beginCoil2Charge(); inline void endCoil2Charge(); -inline void openInjector3(); -inline void closeInjector3(); inline void beginCoil3Charge(); inline void endCoil3Charge(); -inline void openInjector4(); -inline void closeInjector4(); inline void beginCoil4Charge(); inline void endCoil4Charge(); -inline void openInjector5(); -inline void closeInjector5(); inline void beginCoil5Charge(); inline void endCoil5Charge(); -#endif +#define openInjector1() *inj1_pin_port |= (inj1_pin_mask); BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ1) +#define closeInjector1() *inj1_pin_port &= ~(inj1_pin_mask); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ1) +#define openInjector2() *inj2_pin_port |= (inj2_pin_mask); BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ2) +#define closeInjector2() *inj2_pin_port &= ~(inj2_pin_mask); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ2) +#define openInjector3() *inj3_pin_port |= (inj3_pin_mask); BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ3) +#define closeInjector3() *inj3_pin_port &= ~(inj3_pin_mask); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ3) +#define openInjector4() *inj4_pin_port |= (inj4_pin_mask); BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ4) +#define closeInjector4() *inj4_pin_port &= ~(inj4_pin_mask); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ4) +#define openInjector5() *inj5_pin_port |= (inj5_pin_mask) +#define closeInjector5() *inj5_pin_port &= ~(inj5_pin_mask) +#define openInjector1and4() openInjector1(); openInjector4() +#define closeInjector1and4() closeInjector1(); closeInjector4() +#define openInjector2and3() openInjector2(); openInjector3() +#define closeInjector2and3() closeInjector2(); closeInjector3() + +//5 cylinder support doubles up injector 3 as being closese to inj 5 (Crank angle) +#define openInjector3and5() openInjector3(); openInjector5() +#define closeInjector3and5() closeInjector3(); closeInjector5() + +#endif diff --git a/speeduino/scheduledIO.ino b/speeduino/scheduledIO.ino index 8263f2b5..4fc28559 100644 --- a/speeduino/scheduledIO.ino +++ b/speeduino/scheduledIO.ino @@ -1,79 +1,25 @@ - -//These functions simply trigger the injector/coil driver off or on. -//NOTE: squirt status is changed as per http://www.msextra.com/doc/ms1extra/COM_RS232.htm#Acmd -/* -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - //For the AVR chips, use the faster bit flipping method of switching pins - void ignitionSetter(byte *port, bool startCharge) - { - if( - } - - void openInjector1() { *inj1_pin_port |= (inj1_pin_mask); ; BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ1); } - void closeInjector1() { *inj1_pin_port &= ~(inj1_pin_mask); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ1); } - void beginCoil1Charge() { *ign1_pin_port |= (ign1_pin_mask); BIT_SET(currentStatus.spark, 0); digitalWrite(pinTachOut, LOW); } - void endCoil1Charge() { *ign1_pin_port &= ~(ign1_pin_mask); BIT_CLEAR(currentStatus.spark, 0); } - - void openInjector2() { *inj2_pin_port |= (inj2_pin_mask); ; BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ2); } - void closeInjector2() { *inj2_pin_port &= ~(inj2_pin_mask); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ2); } - void beginCoil2Charge() { *ign2_pin_port |= (ign2_pin_mask); BIT_SET(currentStatus.spark, 1); digitalWrite(pinTachOut, LOW); } - void endCoil2Charge() { *ign2_pin_port &= ~(ign2_pin_mask); BIT_CLEAR(currentStatus.spark, 1);} - - void openInjector3() { *inj3_pin_port |= (inj3_pin_mask); ; BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ3); } - void closeInjector3() { *inj3_pin_port &= ~(inj3_pin_mask); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ3); } - void beginCoil3Charge() { *ign3_pin_port |= (ign3_pin_mask); BIT_SET(currentStatus.spark, 2); digitalWrite(pinTachOut, LOW); } - void endCoil3Charge() { *ign3_pin_port &= ~(ign3_pin_mask); BIT_CLEAR(currentStatus.spark, 2);} - - void openInjector4() { *inj4_pin_port |= (inj4_pin_mask); ; BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ4); } - void closeInjector4() { *inj4_pin_port &= ~(inj4_pin_mask); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ4); } - void beginCoil4Charge() { *ign4_pin_port |= (ign4_pin_mask); BIT_SET(currentStatus.spark, 3); digitalWrite(pinTachOut, LOW); } - void endCoil4Charge() { *ign4_pin_port &= ~(ign4_pin_mask); BIT_CLEAR(currentStatus.spark, 3);} - -#else -*/ - volatile bool tachoAlt = true; #define TACH_PULSE_HIGH() *tach_pin_port |= (tach_pin_mask) -#define TACH_PULSE_LOW() if( (configPage1.tachoDiv == 0) || tachoAlt ) *tach_pin_port &= ~(tach_pin_mask); tachoAlt = !tachoAlt +#define TACH_PULSE_LOW() if( (configPage1.tachoDiv == 0) || tachoAlt ) { *tach_pin_port &= ~(tach_pin_mask); tachoAlt = !tachoAlt; } - inline void openInjector1() { digitalWrite(pinInjector1, HIGH); BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ1); } - inline void closeInjector1() { digitalWrite(pinInjector1, LOW); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ1); } inline void beginCoil1Charge() { digitalWrite(pinCoil1, coilHIGH); TACH_PULSE_LOW(); } inline void endCoil1Charge() { digitalWrite(pinCoil1, coilLOW); TACH_PULSE_HIGH(); } - inline void openInjector2() { digitalWrite(pinInjector2, HIGH); BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ2); } //Sets the relevant pin HIGH and changes the current status bit for injector 2 (2nd bit of currentStatus.squirt) - inline void closeInjector2() { digitalWrite(pinInjector2, LOW); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ2); } inline void beginCoil2Charge() { digitalWrite(pinCoil2, coilHIGH); TACH_PULSE_LOW(); } inline void endCoil2Charge() { digitalWrite(pinCoil2, coilLOW); TACH_PULSE_HIGH(); } - inline void openInjector3() { digitalWrite(pinInjector3, HIGH); BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ3); } //Sets the relevant pin HIGH and changes the current status bit for injector 3 (3rd bit of currentStatus.squirt) - inline void closeInjector3() { digitalWrite(pinInjector3, LOW); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ3); } inline void beginCoil3Charge() { digitalWrite(pinCoil3, coilHIGH); TACH_PULSE_LOW(); } inline void endCoil3Charge() { digitalWrite(pinCoil3, coilLOW); TACH_PULSE_HIGH(); } - inline void openInjector4() { digitalWrite(pinInjector4, HIGH); BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ4); } //Sets the relevant pin HIGH and changes the current status bit for injector 4 (4th bit of currentStatus.squirt) - inline void closeInjector4() { digitalWrite(pinInjector4, LOW); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ4); } inline void beginCoil4Charge() { digitalWrite(pinCoil4, coilHIGH); TACH_PULSE_LOW(); } inline void endCoil4Charge() { digitalWrite(pinCoil4, coilLOW); TACH_PULSE_HIGH(); } - inline void openInjector5() { digitalWrite(pinInjector5, HIGH); } - inline void closeInjector5() { digitalWrite(pinInjector5, LOW); } inline void beginCoil5Charge() { digitalWrite(pinCoil5, coilHIGH); TACH_PULSE_LOW(); } inline void endCoil5Charge() { digitalWrite(pinCoil5, coilLOW); TACH_PULSE_HIGH(); } -//#endif -//Combination functions for semi-sequential injection -void openInjector1and4() { digitalWrite(pinInjector1, HIGH); digitalWrite(pinInjector4, HIGH); BIT_SET(currentStatus.squirt, 0); } -void closeInjector1and4() { digitalWrite(pinInjector1, LOW); digitalWrite(pinInjector4, LOW);BIT_CLEAR(currentStatus.squirt, 0); } -void openInjector2and3() { digitalWrite(pinInjector2, HIGH); digitalWrite(pinInjector3, HIGH); BIT_SET(currentStatus.squirt, 1); } -void closeInjector2and3() { digitalWrite(pinInjector2, LOW); digitalWrite(pinInjector3, LOW); BIT_CLEAR(currentStatus.squirt, 1); } -//Below functions are used for 5 cylinder support -void openInjector3and5() { digitalWrite(pinInjector3, HIGH); digitalWrite(pinInjector5, HIGH); BIT_SET(currentStatus.squirt, 0); } -void closeInjector3and5() { digitalWrite(pinInjector3, LOW); digitalWrite(pinInjector5, LOW);BIT_CLEAR(currentStatus.squirt, 0); } - //As above but for ignition (Wasted COP mode) void beginCoil1and3Charge() { digitalWrite(pinCoil1, coilHIGH); digitalWrite(pinCoil3, coilHIGH); digitalWrite(pinTachOut, LOW); } void endCoil1and3Charge() { digitalWrite(pinCoil1, coilLOW); digitalWrite(pinCoil3, coilLOW); } @@ -81,4 +27,3 @@ void beginCoil2and4Charge() { digitalWrite(pinCoil2, coilHIGH); digitalWrite(pin void endCoil2and4Charge() { digitalWrite(pinCoil2, coilLOW); digitalWrite(pinCoil4, coilLOW); } void nullCallback() { return; } - diff --git a/speeduino/sensors.h b/speeduino/sensors.h index a7498efe..63610724 100644 --- a/speeduino/sensors.h +++ b/speeduino/sensors.h @@ -86,7 +86,7 @@ ISR(ADC_vect) #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) if (nChannel==7) { ADMUX = 0x40; } #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - if(ADCSRB & 0x08) { nChannel += 8; } //8 to 15 + if( (ADCSRB & 0x08) > 0) { nChannel += 8; } //8 to 15 if(nChannel == 15) { ADMUX = 0x40; //channel 0 diff --git a/speeduino/sensors.ino b/speeduino/sensors.ino index be5032f9..bdde8740 100644 --- a/speeduino/sensors.ino +++ b/speeduino/sensors.ino @@ -50,14 +50,14 @@ MAPcount = 0; void instanteneousMAPReading() { //Instantaneous MAP readings - #if defined(ANALOG_ISR) + #if defined(ANALOG_ISR_MAP) tempReading = AnChannel[pinMAP-A0]; #else tempReading = analogRead(pinMAP); tempReading = analogRead(pinMAP); #endif //Error checking - if(tempReading >= VALID_MAP_MAX || tempReading <= VALID_MAP_MIN) { mapErrorCount += 1; } + if( (tempReading >= VALID_MAP_MAX) || (tempReading <= VALID_MAP_MIN) ) { mapErrorCount += 1; } else { mapErrorCount = 0; } currentStatus.mapADC = ADC_FILTER(tempReading, ADCFILTER_MAP, currentStatus.mapADC); //Very weak filter @@ -80,68 +80,78 @@ void readMAP() case 1: //Average of a cycle - if (currentStatus.RPM < 1 || !currentStatus.hasSync) { instanteneousMAPReading(); return; } //If the engine isn't running, fall back to instantaneous reads - - if( (MAPcurRev == currentStatus.startRevolutions) || (MAPcurRev == currentStatus.startRevolutions+1) ) //2 revolutions are looked at for 4 stroke. 2 stroke not currently catered for. + if ( (currentStatus.RPM > 0) && (currentStatus.hasSync == true) ) //If the engine isn't running, fall back to instantaneous reads { - #if defined(ANALOG_ISR) - tempReading = AnChannel[pinMAP-A0]; - #else - tempReading = analogRead(pinMAP); - tempReading = analogRead(pinMAP); - #endif - - //Error check - if(tempReading < VALID_MAP_MAX && tempReading > VALID_MAP_MIN) + if( (MAPcurRev == currentStatus.startRevolutions) || (MAPcurRev == (currentStatus.startRevolutions+1)) ) //2 revolutions are looked at for 4 stroke. 2 stroke not currently catered for. { - MAPrunningValue = MAPrunningValue + tempReading; //Add the current reading onto the total - MAPcount++; + #if defined(ANALOG_ISR_MAP) + tempReading = AnChannel[pinMAP-A0]; + #else + tempReading = analogRead(pinMAP); + tempReading = analogRead(pinMAP); + #endif + + //Error check + if( (tempReading < VALID_MAP_MAX) && (tempReading > VALID_MAP_MIN) ) + { + MAPrunningValue = MAPrunningValue + (unsigned long)tempReading; //Add the current reading onto the total + MAPcount++; + } + else { mapErrorCount += 1; } + } + else + { + //Reaching here means that the last cylce has completed and the MAP value should be calculated + //Sanity check + if( (MAPrunningValue != 0) && (MAPcount != 0) ) + { + currentStatus.mapADC = ldiv(MAPrunningValue, MAPcount).quot; + currentStatus.MAP = fastResize(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value + MAPcurRev = currentStatus.startRevolutions; //Reset the current rev count + MAPrunningValue = 0; + MAPcount = 0; + } + else { instanteneousMAPReading(); } } - else { mapErrorCount += 1; } - } - else - { - //Reaching here means that the last cylce has completed and the MAP value should be calculated - - //Sanity check - if (MAPrunningValue == 0 || MAPcount == 0) { instanteneousMAPReading(); return; } - - currentStatus.mapADC = ldiv(MAPrunningValue, MAPcount).quot; - currentStatus.MAP = fastResize(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value - MAPcurRev = currentStatus.startRevolutions; //Reset the current rev count - MAPrunningValue = 0; - MAPcount = 0; } + else { instanteneousMAPReading(); } break; case 2: //Minimum reading in a cycle - if (currentStatus.RPM < 1) { instanteneousMAPReading(); return; } //If the engine isn't running, fall back to instantaneous reads - - if( (MAPcurRev == currentStatus.startRevolutions) || (MAPcurRev == currentStatus.startRevolutions+1) ) //2 revolutions are looked at for 4 stroke. 2 stroke not currently catered for. + if (currentStatus.RPM > 0 ) //If the engine isn't running, fall back to instantaneous reads { - #if defined(ANALOG_ISR) - tempReading = AnChannel[pinMAP-A0]; - #else - tempReading = analogRead(pinMAP); - tempReading = analogRead(pinMAP); - #endif - //Error check - if(tempReading < VALID_MAP_MAX && tempReading > VALID_MAP_MIN) + if( (MAPcurRev == currentStatus.startRevolutions) || (MAPcurRev == (currentStatus.startRevolutions+1)) ) //2 revolutions are looked at for 4 stroke. 2 stroke not currently catered for. { - if( tempReading < MAPrunningValue) { MAPrunningValue = tempReading; } //Check whether the current reading is lower than the running minimum + #if defined(ANALOG_ISR_MAP) + tempReading = AnChannel[pinMAP-A0]; + #else + tempReading = analogRead(pinMAP); + tempReading = analogRead(pinMAP); + #endif + //Error check + if( (tempReading < VALID_MAP_MAX) && (tempReading > VALID_MAP_MIN) ) + { + if( (unsigned long)tempReading < MAPrunningValue ) { MAPrunningValue = (unsigned long)tempReading; } //Check whether the current reading is lower than the running minimum + } + else { mapErrorCount += 1; } + } + else + { + //Reaching here means that the last cylce has completed and the MAP value should be calculated + currentStatus.mapADC = MAPrunningValue; + currentStatus.MAP = fastResize(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value + MAPcurRev = currentStatus.startRevolutions; //Reset the current rev count + MAPrunningValue = 1023; //Reset the latest value so the next reading will always be lower } - else { mapErrorCount += 1; } - } - else - { - //Reaching here means that the last cylce has completed and the MAP value should be calculated - currentStatus.mapADC = MAPrunningValue; - currentStatus.MAP = fastResize(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value - MAPcurRev = currentStatus.startRevolutions; //Reset the current rev count - MAPrunningValue = 1023; //Reset the latest value so the next reading will always be lower } + else { instanteneousMAPReading(); } break; + + default: + //Instantaneous MAP readings (Just in case) + instanteneousMAPReading(); + break; } } @@ -200,11 +210,11 @@ void readO2() currentStatus.O2 = o2CalibrationTable[currentStatus.O2ADC]; } -/* Second O2 currently disabled as its not being used - currentStatus.O2_2ADC = map(analogRead(pinO2_2), 0, 1023, 0, 511); //Get the current O2 value. - currentStatus.O2_2ADC = ADC_FILTER(tempReading, ADCFILTER_O2, currentStatus.O2_2ADC); - currentStatus.O2_2 = o2CalibrationTable[currentStatus.O2_2ADC]; -*/ + //Second O2 currently disabled as its not being used + //Get the current O2 value. + //currentStatus.O2_2ADC = map(analogRead(pinO2_2), 0, 1023, 0, 511); + //currentStatus.O2_2ADC = ADC_FILTER(tempReading, ADCFILTER_O2, currentStatus.O2_2ADC); + //currentStatus.O2_2 = o2CalibrationTable[currentStatus.O2_2ADC]; void readBat() { diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 69d1a5d0..6be82ea5 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -68,7 +68,7 @@ bool fuelPumpOn = false; //The current status of the fuel pump void (*trigger)(); //Pointer for the trigger function (Gets pointed to the relevant decoder) void (*triggerSecondary)(); //Pointer for the secondary trigger function (Gets pointed to the relevant decoder) -int (*getRPM)(); //Pointer to the getRPM function (Gets pointed to the relevant decoder) +uint16_t (*getRPM)(); //Pointer to the getRPM function (Gets pointed to the relevant decoder) int (*getCrankAngle)(int); //Pointer to the getCrank Angle function (Gets pointed to the relevant decoder) byte cltCalibrationTable[CALIBRATION_TABLE_SIZE]; @@ -86,8 +86,6 @@ unsigned long previousLoopTime; //The time the previous loop started (uS) int CRANK_ANGLE_MAX = 720; int CRANK_ANGLE_MAX_IGN = 360, CRANK_ANGLE_MAX_INJ = 360; // The number of crank degrees that the system track over. 360 for wasted / timed batch and 720 for sequential -//bool useSequentialFuel; // Whether sequential fueling is to be used (1 squirt per cycle) -//bool useSequentialIgnition; // Whether sequential ignition is used (1 spark per cycle) static byte coilHIGH = HIGH; static byte coilLOW = LOW; @@ -114,12 +112,6 @@ int channel3InjDegrees; //The number of crank degrees until cylinder 3 (and 5/6/ int channel4InjDegrees; //The number of crank degrees until cylinder 4 (and 5/6/7/8) is at TDC int channel5InjDegrees; //The number of crank degrees until cylinder 5 is at TDC -bool channel1InjEnabled = true; -bool channel2InjEnabled = false; -bool channel3InjEnabled = false; -bool channel4InjEnabled = false; -bool channel5InjEnabled = false; - //These are the functions the get called to begin and end the ignition coil charging. They are required for the various spark output modes void (*ign1StartFunction)(); void (*ign1EndFunction)(); @@ -133,9 +125,9 @@ void (*ign5StartFunction)(); void (*ign5EndFunction)(); int timePerDegree; -int dwellAngle; byte degreesPerLoop; //The number of crank degrees that pass for each mainloop of the program volatile bool fpPrimed = false; //Tracks whether or not the fuel pump priming has been completed yet +bool initialisationComplete = false; //Tracks whether the setup() functino has run completely void setup() { @@ -152,18 +144,15 @@ void setup() table3D_setSize(&trim2Table, 6); table3D_setSize(&trim3Table, 6); table3D_setSize(&trim4Table, 6); + Serial.begin(115200); #if defined(CORE_STM32) - pinMode(CS, OUTPUT); - digitalWrite(CS, HIGH); // disable - Spi.begin(); - loadConfig_STM(); - #else - loadConfig(); + EEPROM.init(); #endif + loadConfig(); doUpdates(); //Check if any data items need updating (Occurs ith firmware updates) - Serial.begin(115200); + //Serial.begin(115200); #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 if (configPage10.enable_canbus == 1) { Serial3.begin(115200); } #elif defined(CORE_STM32) @@ -172,14 +161,16 @@ void setup() { //enable local can interface } -#elif defined(CORE_TEESNY) +#elif defined(CORE_TEENSY) if (configPage10.enable_canbus == 1) { Serial2.begin(115200); } else if (configPage10.enable_canbus == 2) { + //Teensy onboard CAN not used currently //enable local can interface - FlexCAN CANbus0(2500000, 0); //setup can interface to 250k - static CAN_message_t txmsg,rxmsg; - CANbus0.begin(); + //setup can interface to 250k + //FlexCAN CANbus0(2500000, 0); + //static CAN_message_t txmsg,rxmsg; + //CANbus0.begin(); } #endif @@ -306,6 +297,8 @@ void setup() triggerInterrupt = 3; break; case 21: triggerInterrupt = 2; break; + default: + triggerInterrupt = 0; break; //This should NEVER happen } #else triggerInterrupt = pinTrigger; @@ -326,6 +319,8 @@ void setup() triggerInterrupt2 = 3; break; case 21: triggerInterrupt2 = 2; break; + default: + triggerInterrupt2 = 0; break; //This should NEVER happen } #else triggerInterrupt2 = pinTrigger2; @@ -512,6 +507,17 @@ void setup() attachInterrupt(triggerInterrupt2, triggerSec_Subaru67, FALLING); break; + case 14: + triggerSetup_Daihatsu(); + trigger = triggerPri_Daihatsu; + getRPM = getRPM_Daihatsu; + getCrankAngle = getCrankAngle_Daihatsu; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + //No secondary input required for this pattern + break; + default: trigger = triggerPri_missingTooth; getRPM = getRPM_missingTooth; @@ -541,6 +547,7 @@ void setup() channel1InjEnabled = true; break; + case 2: channel1IgnDegrees = 0; @@ -561,13 +568,24 @@ void setup() channel1InjEnabled = true; channel2InjEnabled = true; break; + case 3: channel1IgnDegrees = 0; if (configPage1.engineType == EVEN_FIRE ) { - channel2IgnDegrees = 120; - channel3IgnDegrees = 240; + if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) + { + channel2IgnDegrees = 240; + channel3IgnDegrees = 480; + + CRANK_ANGLE_MAX_IGN = 720; + } + else + { + channel2IgnDegrees = 120; + channel3IgnDegrees = 240; + } } else { @@ -579,8 +597,8 @@ void setup() if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) { channel1InjDegrees = 0; - channel2InjDegrees = channel2IgnDegrees; - channel3InjDegrees = channel3IgnDegrees; + channel2InjDegrees = 120; + channel3InjDegrees = 240; } else if (configPage1.injLayout == INJ_SEQUENTIAL) { @@ -688,18 +706,12 @@ void setup() break; case 6: channel1IgnDegrees = 0; + channel1InjDegrees = 0; channel2IgnDegrees = 120; + channel2InjDegrees = 120; channel3IgnDegrees = 240; + channel3InjDegrees = 240; - //For alternatiing injection, the squirt occurs at different times for each channel - /* - if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_SEQUENTIAL || configPage1.injLayout == INJ_PAIRED) //No full sequential for more than 4 cylinders - { - channel1InjDegrees = 0; - channel2InjDegrees = 120; - channel3InjDegrees = 240; - } - */ if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = 0; } //For simultaneous, all squirts happen at the same time configPage1.injLayout = 0; //This is a failsafe. We can never run semi-sequential with more than 4 cylinders @@ -709,21 +721,11 @@ void setup() channel3InjEnabled = true; break; case 8: - channel1IgnDegrees = 0; - channel2IgnDegrees = 90; - channel3IgnDegrees = 180; - channel4IgnDegrees = 270; + channel1IgnDegrees = channel1InjDegrees = 0; + channel2IgnDegrees = channel2InjDegrees = 90; + channel3IgnDegrees = channel3InjDegrees = 180; + channel4IgnDegrees = channel4InjDegrees = 270; - //For alternatiing injection, the squirt occurs at different times for each channel - /* - if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injTiming == INJ_SEQUENTIAL) //No full sequential for more than 4 cylinders - { - channel1InjDegrees = 0; - channel2InjDegrees = 90; - channel3InjDegrees = 180; - channel4InjDegrees = 270; - } - */ if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = channel4InjDegrees = 0; } //For simultaneous, all squirts happen at the same time configPage1.injLayout = 0; //This is a failsafe. We can never run semi-sequential with more than 4 cylinders @@ -832,8 +834,12 @@ void setup() digitalWrite(pinFuelPump, HIGH); fuelPumpOn = true; //Perform the priming pulses. Set these to run at an arbitrary time in the future (100us). The prime pulse value is in ms*10, so need to multiple by 100 to get to uS - setFuelSchedule1(openInjector1and4, 100, (unsigned long)(configPage1.primePulse * 100), closeInjector1and4); - setFuelSchedule2(openInjector2and3, 100, (unsigned long)(configPage1.primePulse * 100), closeInjector2and3); + setFuelSchedule1(100, (unsigned long)(configPage1.primePulse * 100)); + setFuelSchedule2(100, (unsigned long)(configPage1.primePulse * 100)); + setFuelSchedule3(100, (unsigned long)(configPage1.primePulse * 100)); + setFuelSchedule4(100, (unsigned long)(configPage1.primePulse * 100)); + + initialisationComplete = true; } void loop() @@ -901,7 +907,8 @@ void loop() } #endif - // if (configPage1.displayType && (mainLoopCount & 255) == 1) { updateDisplay();} //Displays currently disabled + //Displays currently disabled + // if (configPage1.displayType && (mainLoopCount & 255) == 1) { updateDisplay();} previousLoopTime = currentLoopTime; currentLoopTime = micros(); @@ -922,6 +929,7 @@ void loop() currentStatus.runSecs = 0; //Reset the counter for number of seconds running. secCounter = 0; //Reset our seconds counter. currentStatus.startRevolutions = 0; + toothSystemCount = 0; MAPcurRev = 0; MAPcount = 0; currentStatus.rpmDOT = 0; @@ -1103,15 +1111,6 @@ void loop() } currentStatus.advance = correctionsIgn(currentStatus.advance); - /* - //Check for fixed ignition angles - if (configPage2.FixAng != 0) { currentStatus.advance = configPage2.FixAng; } //Check whether the user has set a fixed timing angle - if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { currentStatus.advance = configPage2.CrankAng; } //Use the fixed cranking ignition angle - //Adjust the advance based on IAT. If the adjustment amount is greater than the current advance, just set advance to 0 - byte advanceIATadjust = table2D_getValue(&IATRetardTable, currentStatus.IAT); - if (advanceIATadjust <= currentStatus.advance) { currentStatus.advance -= advanceIATadjust; } - else { currentStatus.advance = 0; } - */ int injector1StartAngle = 0; int injector2StartAngle = 0; @@ -1158,7 +1157,7 @@ void loop() long toothDeltaV = (1000000L * angle2 / toothHistory[toothHistoryIndex]) - (1000000L * angle1 / toothHistory[toothHistoryIndex-1]); long toothDeltaT = toothHistory[toothHistoryIndex]; - //long timeToLastTooth = micros() - toothLastToothTime; //Cannot be unsigned + //long timeToLastTooth = micros() - toothLastToothTime; rpmDelta = (toothDeltaV << 10) / (6 * toothDeltaT); } @@ -1277,7 +1276,7 @@ void loop() else { currentStatus.dwell = (configPage2.dwellRun * 100); } currentStatus.dwell = correctionsDwell(currentStatus.dwell); - dwellAngle = (div(currentStatus.dwell, timePerDegree).quot ); //Convert the dwell time to dwell angle based on the current engine speed + int dwellAngle = (div(currentStatus.dwell, timePerDegree).quot ); //Convert the dwell time to dwell angle based on the current engine speed //Calculate start angle for each channel //1 cylinder (Everyone gets this) @@ -1289,45 +1288,61 @@ void loop() { //2 cylinders case 2: - ignition2StartAngle = SetIgnStartAngle(channel2IgnDegrees); + ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} break; //3 cylinders case 3: - ignition2StartAngle = SetIgnStartAngle(channel2IgnDegrees); + ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} ignition3StartAngle = channel3IgnDegrees + 360 - currentStatus.advance - dwellAngle; if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} break; //4 cylinders case 4: - ignition2StartAngle = SetIgnStartAngle(channel2IgnDegrees); + ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) { - ignition3StartAngle = SetIgnStartAngle(channel3IgnDegrees); - ignition4StartAngle = SetIgnStartAngle(channel4IgnDegrees); + ignition3StartAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition4StartAngle = channel4IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; + if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} } break; //5 cylinders case 5: - ignition2StartAngle = SetIgnStartAngle(channel2IgnDegrees); + ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} - ignition3StartAngle = SetIgnStartAngle(channel3IgnDegrees); - ignition4StartAngle = SetIgnStartAngle(channel4IgnDegrees); - ignition5StartAngle = SetIgnStartAngle(channel5IgnDegrees); + ignition3StartAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition4StartAngle = channel4IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; + if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition5StartAngle = channel5IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; + if(ignition5StartAngle > CRANK_ANGLE_MAX_IGN) {ignition5StartAngle -= CRANK_ANGLE_MAX_IGN;} break; //6 cylinders case 6: - ignition2StartAngle = SetIgnStartAngle(channel2IgnDegrees); - ignition3StartAngle = SetIgnStartAngle(channel3IgnDegrees); + ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition3StartAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} break; //8 cylinders case 8: - ignition2StartAngle = SetIgnStartAngle(channel2IgnDegrees); - ignition3StartAngle = SetIgnStartAngle(channel3IgnDegrees); - ignition4StartAngle = SetIgnStartAngle(channel4IgnDegrees); + ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition3StartAngle = channel3IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition4StartAngle = channel4IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; + if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} break; //Will hit the default case on 1 cylinder or >8 cylinders. Do nothing in these cases @@ -1347,25 +1362,13 @@ void loop() if (fuelOn && currentStatus.PW1 > 0 && !BIT_CHECK(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT)) { - if (injector1StartAngle <= crankAngle && fuelSchedule1.schedulesSet == 0) { injector1StartAngle += CRANK_ANGLE_MAX_INJ; } + if ( (injector1StartAngle <= crankAngle) && (fuelSchedule1.Status == RUNNING) ) { injector1StartAngle += CRANK_ANGLE_MAX_INJ; } if (injector1StartAngle > crankAngle) { - if (configPage1.injLayout == INJ_SEMISEQUENTIAL) - { - setFuelSchedule1(openInjector1and4, - ((unsigned long)(injector1StartAngle - crankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW1, - closeInjector1and4 - ); - } - else - { - setFuelSchedule1(openInjector1, - ((unsigned long)(injector1StartAngle - crankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW1, - closeInjector1 - ); - } + setFuelSchedule1( + ((unsigned long)(injector1StartAngle - crankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW1 + ); } /*----------------------------------------------------------------------------------------- @@ -1385,25 +1388,13 @@ void loop() if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } tempStartAngle = injector2StartAngle - channel2InjDegrees; if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if (tempStartAngle <= tempCrankAngle && fuelSchedule2.schedulesSet == 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule2.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } if ( tempStartAngle > tempCrankAngle ) { - if (configPage1.injLayout == 1) - { - setFuelSchedule2(openInjector2and3, - ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW2, - closeInjector2and3 - ); - } - else - { - setFuelSchedule2(openInjector2, - ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW2, - closeInjector2 - ); - } + setFuelSchedule2( + ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW2 + ); } } @@ -1413,13 +1404,12 @@ void loop() if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } tempStartAngle = injector3StartAngle - channel3InjDegrees; if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if (tempStartAngle <= tempCrankAngle && fuelSchedule3.schedulesSet == 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule3.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } if ( tempStartAngle > tempCrankAngle ) { - setFuelSchedule3(openInjector3, + setFuelSchedule3( ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW3, - closeInjector3 + (unsigned long)currentStatus.PW3 ); } } @@ -1430,13 +1420,12 @@ void loop() if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } tempStartAngle = injector4StartAngle - channel4InjDegrees; if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if (tempStartAngle <= tempCrankAngle && fuelSchedule4.schedulesSet == 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule4.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } if ( tempStartAngle > tempCrankAngle ) { - setFuelSchedule4(openInjector4, + setFuelSchedule4( ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW4, - closeInjector4 + (unsigned long)currentStatus.PW4 ); } } @@ -1451,10 +1440,15 @@ void loop() if ( tempStartAngle > tempCrankAngle ) { //Note the hacky use of fuel schedule 3 below + /* setFuelSchedule3(openInjector3and5, ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), (unsigned long)currentStatus.PW1, closeInjector3and5 + );*/ + setFuelSchedule3( + ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW1 ); } } @@ -1578,5 +1572,4 @@ void loop() } } //Ignition schedules on } //Has sync and RPM -} //loop() - +} //loop() diff --git a/speeduino/storage.h b/speeduino/storage.h index 80275a81..93df9c5b 100644 --- a/speeduino/storage.h +++ b/speeduino/storage.h @@ -1,37 +1,11 @@ #ifndef STORAGE_H #define STORAGE_H -#if defined(CORE_STM32) - #include -#endif void writeConfig(); void loadConfig(); void loadCalibration(); void writeCalibration(); -#if defined(CORE_STM32) - // Based on code by Heather Dewey-Hagborg - // http://arduino.cc/en/Tutorial/SPIEEPROM - - #define PAGE_SIZE 256 //W25Q16 - #define SPI_MODE 0 - #define CS 10 // chip select - - // EEPROM opcodes - #define WREN 6 //Write Enable - #define WRDI 4 //Write Disable - #define RDSR 5 //Read Status Register-1 - #define WRSR 1 //Write Status Register - #define READ 3 //Read Data - #define WRITE 2 //Page Program - //STM32F103 clones - #if defined (ARDUINO_ARCH_STM32F1) - SPIClass Spi(2); //STM32F103 series share SPI1 with analogic channels, use 2 instead. - #else - SPIClass Spi(1); //STM32F407 eeprom is on SPI1 port - #endif -#endif - /* Current layout of EEPROM data (Version 3) is as follows (All sizes are in bytes): |---------------------------------------------------| diff --git a/speeduino/storage.ino b/speeduino/storage.ino index 974845e5..7db0ea66 100644 --- a/speeduino/storage.ino +++ b/speeduino/storage.ino @@ -33,14 +33,14 @@ void writeConfig() for(int x=EEPROM_CONFIG1_MAP; x>8)); //send MSByte address first - Spi.send((uint8)(EEPROM_address)); //send LSByte address - int data = Spi.send(0xFF); //get data byte - digitalWrite(CS, HIGH); // EEPROM disable - return data; -} - -void EEPROM_write(int EEPROM_address, byte data) -{ - //WRITE EEPROM - digitalWrite(CS, LOW); // EEPROM enable - Spi.send(WREN); // EEPROM write enable instruction - digitalWrite(CS, HIGH); // EEPROM disable - delay(2); - digitalWrite(CS, LOW); // EEPROM enable - Spi.send(WRITE); // EEPROM write instruction - Spi.send((uint8)(EEPROM_address>>8)); //send MSByte address first - Spi.send((uint8)(EEPROM_address)); //send LSByte address - Spi.send(data); - digitalWrite(CS, HIGH); // EEPROM disable -} - -void EEPROM_update(int EEPROM_address, byte data) -{ - byte result = EEPROM_read(EEPROM_address); - if(result != data) { EEPROM_write(EEPROM_address, data); } -} - -void writeConfig_STM() -{ - /* - We only ever write to the EEPROM where the new value is different from the currently stored byte - This is due to the limited write life of the EEPROM (Approximately 100,000 writes) - */ - - int offset; - //Create a pointer to the config page - byte* pnt_configPage; - - //if(EEPROM.read(0) != data_structure_version) { EEPROM.write(,data_structure_version); } //Write the data structure version - EEPROM_update(0, data_structure_version); //Write the data structure version - - /*--------------------------------------------------- - | Fuel table (See storage.h for data layout) - Page 1 - | 16x16 table itself + the 16 values along each of the axis - -----------------------------------------------------*/ - EEPROM_update(EEPROM_CONFIG1_XSIZE, fuelTable.xSize); //Write the VE Tables RPM dimension size - EEPROM_update(EEPROM_CONFIG1_YSIZE, fuelTable.ySize); //Write the VE Tables MAP/TPS dimension size - - for(int x=EEPROM_CONFIG1_MAP; xvalueSize == SIZE_BYTE) + //Table resize is ONLY permitted during system initialisation. + //if(initialisationComplete == false) { - targetTable->values = (byte *)realloc(targetTable->values, newSize * sizeof(byte)); - targetTable->axisX = (byte *)realloc(targetTable->axisX, newSize * sizeof(byte)); - targetTable->xSize = newSize; - } - else - { - targetTable->values16 = (int *)realloc(targetTable->values16, newSize * sizeof(int)); - targetTable->axisX16 = (int *)realloc(targetTable->axisX16, newSize * sizeof(int)); - targetTable->xSize = newSize; - } + //2D tables can contain either bytes or ints, depending on the value of the valueSize field + if(targetTable->valueSize == SIZE_BYTE) + { + targetTable->values = (byte *)realloc(targetTable->values, newSize * sizeof(byte)); + targetTable->axisX = (byte *)realloc(targetTable->axisX, newSize * sizeof(byte)); + targetTable->xSize = newSize; + } + else + { + targetTable->values16 = (int *)realloc(targetTable->values16, newSize * sizeof(int)); + targetTable->axisX16 = (int *)realloc(targetTable->axisX16, newSize * sizeof(int)); + targetTable->xSize = newSize; + } //Byte or int + } //initialisationComplete } void table3D_setSize(struct table3D *targetTable, byte newSize) { + if(initialisationComplete == false) + { targetTable->values = (byte **)malloc(newSize * sizeof(byte*)); for(byte i = 0; i < newSize; i++) { targetTable->values[i] = (byte *)malloc(newSize * sizeof(byte)); } - + targetTable->axisX = (int *)malloc(newSize * sizeof(int)); targetTable->axisY = (int *)malloc(newSize * sizeof(int)); targetTable->xSize = newSize; targetTable->ySize = newSize; + } //initialisationComplete } /* This function simply pulls a 1D linear interpolated (ie averaged) value from a 2D table ie: Given a value on the X axis, it returns a Y value that coresponds to the point on the curve between the nearest two defined X values -This function must take into account whether a table contains 8-bit or 16-bit values. +This function must take into account whether a table contains 8-bit or 16-bit values. Unfortunately this means many of the lines are duplicated depending on this */ -int table2D_getValue(struct table2D *fromTable, int X) +int table2D_getValue(struct table2D *fromTable, int X_in) { + int returnValue; + bool valueFound = false; + + int X = X_in; int xMinValue, xMaxValue; if (fromTable->valueSize == SIZE_BYTE) @@ -64,7 +75,7 @@ int table2D_getValue(struct table2D *fromTable, int X) } int xMin = 0; int xMax = 0; - + //If the requested X value is greater/small than the maximum/minimum bin, reset X to be that value if(X > xMaxValue) { X = xMaxValue; } if(X < xMinValue) { X = xMinValue; } @@ -72,8 +83,8 @@ int table2D_getValue(struct table2D *fromTable, int X) if (fromTable->valueSize == SIZE_BYTE) { - //Byte version - + //**** Byte version **** + //1st check is whether we're still in the same X bin as last time if ( (X <= fromTable->axisX[fromTable->lastXMax]) && (X > fromTable->axisX[fromTable->lastXMin]) ) { @@ -84,28 +95,36 @@ int table2D_getValue(struct table2D *fromTable, int X) } else { - // + //If we're not in the same bin, loop through to find where we are for (int x = fromTable->xSize-1; x >= 0; x--) { //Checks the case where the X value is exactly what was requested if ( (X == fromTable->axisX[x]) || (x == 0) ) { - return fromTable->values[x]; //Simply return the coresponding value + returnValue = fromTable->values[x]; //Simply return the coresponding value + valueFound = true; } - //Normal case - if ( (X <= fromTable->axisX[x]) && (X > fromTable->axisX[x-1]) ) + else { - xMaxValue = fromTable->axisX[x]; - xMinValue = fromTable->axisX[x-1]; - fromTable->lastXMax = xMax = x; - fromTable->lastXMin = xMin = x-1; - break; - } + //Normal case + if ( (X <= fromTable->axisX[x]) && (X > fromTable->axisX[x-1]) ) + { + xMaxValue = fromTable->axisX[x]; + xMinValue = fromTable->axisX[x-1]; + xMax = x; + fromTable->lastXMax = xMax; + xMin = x-1; + fromTable->lastXMin = xMin; + break; + } + } } } } else { + // **** INT VERSION **** + //1st check is whether we're still in the same X bin as last time if ( (X <= fromTable->axisX16[fromTable->lastXMax]) && (X > fromTable->axisX16[fromTable->lastXMin]) ) { @@ -116,118 +135,91 @@ int table2D_getValue(struct table2D *fromTable, int X) } else { - // + //If we're not in the same bin, loop through to find where we are for (int x = fromTable->xSize-1; x >= 0; x--) { //Checks the case where the X value is exactly what was requested if ( (X == fromTable->axisX16[x]) || (x == 0) ) { - return fromTable->values16[x]; //Simply return the coresponding value + returnValue = fromTable->values16[x]; //Simply return the coresponding value + valueFound = true; } - //Normal case - if ( (X <= fromTable->axisX16[x]) && (X > fromTable->axisX16[x-1]) ) + else { - xMaxValue = fromTable->axisX16[x]; - xMinValue = fromTable->axisX16[x-1]; - fromTable->lastXMax = xMax = x; - fromTable->lastXMin = xMin = x-1; - break; - } - } + //Normal case + if ( (X <= fromTable->axisX16[x]) && (X > fromTable->axisX16[x-1]) ) + { + xMaxValue = fromTable->axisX16[x]; + xMinValue = fromTable->axisX16[x-1]; + xMax = x; + fromTable->lastXMax = xMax; + xMin = x-1; + fromTable->lastXMin = xMin; + break; + } //Found in loop + } //Exact hit + } //For loop } - + } -/* - for (int x = fromTable->xSize-1; x >= 0; x--) + if (valueFound == false) { - if (fromTable->valueSize == SIZE_BYTE) - { - //Byte version - //Checks the case where the X value is exactly what was requested - if ( (X == fromTable->axisX[x]) || (x == 0) ) - { - return fromTable->values[x]; //Simply return the coresponding value - } - //Normal case - if ( (X <= fromTable->axisX[x]) && (X > fromTable->axisX[x-1]) ) - { - xMaxValue = fromTable->axisX[x]; - xMinValue = fromTable->axisX[x-1]; - xMax = x; - xMin = x-1; - break; - } - } - else - { + unsigned int m = X - xMinValue; + unsigned int n = xMaxValue - xMinValue; + + //Float version + /* + int yVal = (m / n) * (abs(fromTable.values[xMax] - fromTable.values[xMin])); + */ + + //Non-Float version + int yVal; + if (fromTable->valueSize == SIZE_BYTE) + { + //Byte version + yVal = ((long)(m << 6) / n) * (abs(fromTable->values[xMax] - fromTable->values[xMin])); + yVal = (yVal >> 6); + + if (fromTable->values[xMax] > fromTable->values[xMin]) { yVal = fromTable->values[xMin] + yVal; } + else { yVal = fromTable->values[xMin] - yVal; } + } + else + { //int version - if ( (X == fromTable->axisX16[x]) || (x == 0) ) - { - return fromTable->values16[x]; //Simply return the coresponding value - } - //Normal case - if ( (X <= fromTable->axisX16[x]) && (X > fromTable->axisX16[x-1]) ) - { - xMaxValue = fromTable->axisX16[x]; - xMinValue = fromTable->axisX16[x-1]; - xMax = x; - xMin = x-1; - break; - } - } + yVal = ((long)(m << 6) / n) * (abs(fromTable->values16[xMax] - fromTable->values16[xMin])); + yVal = (yVal >> 6); + + if (fromTable->values[xMax] > fromTable->values16[xMin]) { yVal = fromTable->values16[xMin] + yVal; } + else { yVal = fromTable->values16[xMin] - yVal; } + } + returnValue = yVal; } - */ - - unsigned int m = X - xMinValue; - unsigned int n = xMaxValue - xMinValue; - - //Float version - /* - int yVal = (m / n) * (abs(fromTable.values[xMax] - fromTable.values[xMin])); - */ - - //Non-Float version - int yVal; - if (fromTable->valueSize == SIZE_BYTE) - { - //Byte version - yVal = ((long)(m << 6) / n) * (abs(fromTable->values[xMax] - fromTable->values[xMin])); - yVal = (yVal >> 6); - - if (fromTable->values[xMax] > fromTable->values[xMin]) { yVal = fromTable->values[xMin] + yVal; } - else { yVal = fromTable->values[xMin] - yVal; } - } - else - { - //int version - yVal = ((long)(m << 6) / n) * (abs(fromTable->values16[xMax] - fromTable->values16[xMin])); - yVal = (yVal >> 6); - - if (fromTable->values[xMax] > fromTable->values16[xMin]) { yVal = fromTable->values16[xMin] + yVal; } - else { yVal = fromTable->values16[xMin] - yVal; } - } - - return yVal; + + return returnValue; } //This function pulls a value from a 3D table given a target for X and Y coordinates. //It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf -int get3DTableValue(struct table3D *fromTable, int Y, int X) +int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) { + int X = X_in; + int Y = Y_in; + + int tableResult = 0; //Loop through the X axis bins for the min/max pair - //Note: For the X axis specifically, rather than looping from tableAxisX[0] up to tableAxisX[max], we start at tableAxisX[Max] and go down. + //Note: For the X axis specifically, rather than looping from tableAxisX[0] up to tableAxisX[max], we start at tableAxisX[Max] and go down. // This is because the important tables (fuel and injection) will have the highest RPM at the top of the X axis, so starting there will mean the best case occurs when the RPM is highest (And hence the CPU is needed most) int xMinValue = fromTable->axisX[0]; int xMaxValue = fromTable->axisX[fromTable->xSize-1]; byte xMin = 0; byte xMax = 0; - + //If the requested X value is greater/small than the maximum/minimum bin, reset X to be that value if(X > xMaxValue) { X = xMaxValue; } if(X < xMinValue) { X = xMinValue; } - + //1st check is whether we're still in the same X bin as last time if ( (X <= fromTable->axisX[fromTable->lastXMax]) && (X > fromTable->axisX[fromTable->lastXMin]) ) { @@ -239,18 +231,22 @@ int get3DTableValue(struct table3D *fromTable, int Y, int X) //2nd check is whether we're in the next RPM bin (To the right) else if ( ((fromTable->lastXMax + 1) < fromTable->xSize ) && (X <= fromTable->axisX[fromTable->lastXMax +1 ]) && (X > fromTable->axisX[fromTable->lastXMin + 1]) ) //First make sure we're not already at the last X bin { - fromTable->lastXMax = xMax = fromTable->lastXMax + 1; - fromTable->lastXMin = xMin = fromTable->lastXMin + 1; + xMax = fromTable->lastXMax + 1; + fromTable->lastXMax = xMax; + xMin = fromTable->lastXMin + 1; + fromTable->lastXMin = xMin; xMaxValue = fromTable->axisX[fromTable->lastXMax]; xMinValue = fromTable->axisX[fromTable->lastXMin]; } //3rd check is to look at the previous bin (to the left) else if ( (fromTable->lastXMin > 0 ) && (X <= fromTable->axisX[fromTable->lastXMax - 1]) && (X > fromTable->axisX[fromTable->lastXMin - 1]) ) //First make sure we're not already at the first X bin { - fromTable->lastXMax = xMax = fromTable->lastXMax - 1; - fromTable->lastXMin = xMin = fromTable->lastXMin - 1; + xMax = fromTable->lastXMax - 1; + fromTable->lastXMax = xMax; + xMin = fromTable->lastXMin - 1; + fromTable->lastXMin = xMin; xMaxValue = fromTable->axisX[fromTable->lastXMax]; - xMinValue = fromTable->axisX[fromTable->lastXMin]; + xMinValue = fromTable->axisX[fromTable->lastXMin]; } else //If it's not caught by one of the above scenarios, give up and just run the loop @@ -262,8 +258,10 @@ int get3DTableValue(struct table3D *fromTable, int Y, int X) { xMaxValue = fromTable->axisX[x]; xMinValue = fromTable->axisX[x]; - fromTable->lastXMax = xMax = x; - fromTable->lastXMin = xMin = x; + xMax = x; + fromTable->lastXMax = xMax; + xMin = x; + fromTable->lastXMin = xMin; break; } //Normal case @@ -271,23 +269,25 @@ int get3DTableValue(struct table3D *fromTable, int Y, int X) { xMaxValue = fromTable->axisX[x]; xMinValue = fromTable->axisX[x-1]; - fromTable->lastXMax = xMax = x; - fromTable->lastXMin = xMin = x-1; + xMax = x; + fromTable->lastXMax = xMax; + xMin = x-1; + fromTable->lastXMin = xMin; break; - } + } } } - + //Loop through the Y axis bins for the min/max pair int yMaxValue = fromTable->axisY[0]; int yMinValue = fromTable->axisY[fromTable->ySize-1]; byte yMin = 0; byte yMax = 0; - + //If the requested Y value is greater/small than the maximum/minimum bin, reset Y to be that value if(Y > yMaxValue) { Y = yMaxValue; } if(Y < yMinValue) { Y = yMinValue; } - + //1st check is whether we're still in the same Y bin as last time if ( (Y >= fromTable->axisY[fromTable->lastYMax]) && (Y < fromTable->axisY[fromTable->lastYMin]) ) { @@ -299,23 +299,27 @@ int get3DTableValue(struct table3D *fromTable, int Y, int X) //2nd check is whether we're in the next MAP/TPS bin (Next one up) else if ( (fromTable->lastYMin > 0 ) && (Y <= fromTable->axisY[fromTable->lastYMin - 1 ]) && (Y > fromTable->axisY[fromTable->lastYMax - 1]) ) //First make sure we're not already at the top Y bin { - fromTable->lastYMax = yMax = fromTable->lastYMax - 1; - fromTable->lastYMin = yMin = fromTable->lastYMin - 1; + yMax = fromTable->lastYMax - 1; + fromTable->lastYMax = yMax; + yMin = fromTable->lastYMin - 1; + fromTable->lastYMin = yMin; yMaxValue = fromTable->axisY[fromTable->lastYMax]; yMinValue = fromTable->axisY[fromTable->lastYMin]; } //3rd check is to look at the previous bin (Next one down) else if ( ((fromTable->lastYMax + 1) < fromTable->ySize) && (Y <= fromTable->axisY[fromTable->lastYMin + 1]) && (Y > fromTable->axisY[fromTable->lastYMax + 1]) ) //First make sure we're not already at the bottom Y bin { - fromTable->lastYMax = yMax = fromTable->lastYMax + 1; - fromTable->lastYMin = yMin = fromTable->lastYMin + 1; + yMax = fromTable->lastYMax + 1; + fromTable->lastYMax = yMax; + yMin = fromTable->lastYMin + 1; + fromTable->lastYMin = yMin; yMaxValue = fromTable->axisY[fromTable->lastYMax]; - yMinValue = fromTable->axisY[fromTable->lastYMin]; + yMinValue = fromTable->axisY[fromTable->lastYMin]; } else //If it's not caught by one of the above scenarios, give up and just run the loop { - + for (byte y = fromTable->ySize-1; y >= 0; y--) { //Checks the case where the Y value is exactly what was requested @@ -323,8 +327,10 @@ int get3DTableValue(struct table3D *fromTable, int Y, int X) { yMaxValue = fromTable->axisY[y]; yMinValue = fromTable->axisY[y]; - fromTable->lastYMax = yMax = y; - fromTable->lastYMin = yMin = y; + yMax = y; + fromTable->lastYMax = yMax; + yMin = y; + fromTable->lastYMin = yMin; break; } //Normal case @@ -332,25 +338,27 @@ int get3DTableValue(struct table3D *fromTable, int Y, int X) { yMaxValue = fromTable->axisY[y]; yMinValue = fromTable->axisY[y-1]; - fromTable->lastYMax = yMax = y; - fromTable->lastYMin = yMin = y-1; + yMax = y; + fromTable->lastYMax = yMax; + yMin = y-1; + fromTable->lastYMin = yMin; break; - } + } } } - - - /* + + + /* At this point we have the 4 corners of the map where the interpolated value will fall in Eg: (yMin,xMin) (yMin,xMax) - + (yMax,xMin) (yMax,xMax) - + In the following calculation the table values are referred to by the following variables: A B - + C D - + */ int A = fromTable->values[yMin][xMin]; int B = fromTable->values[yMin][xMax]; @@ -358,122 +366,51 @@ int get3DTableValue(struct table3D *fromTable, int Y, int X) int D = fromTable->values[yMax][xMax]; //Check that all values aren't just the same (This regularly happens with things like the fuel trim maps) - if(A == D) { return A; } //yMin = yMax and xMin = xMax - - //Create some normalised position values - //These are essentially percentages (between 0 and 1) of where the desired value falls between the nearest bins on each axis - - - //Initial check incase the values were hit straight on - long p; - if (xMaxValue == xMinValue) { p = ((long)(X - xMinValue) << 8); } //This only occurs if the requested X value was equal to one of the X axis bins - else { p = ((long)(X - xMinValue) << 8) / (xMaxValue - xMinValue); } //This is the standard case - - long q; - if (yMaxValue == yMinValue) { q = ((long)(Y - yMinValue) << 8); } - else { q = 256 - (((long)(Y - yMaxValue) << 8) / (yMinValue - yMaxValue)); } + if( (A == D) ) { tableResult = A; } + else + { + //Create some normalised position values + //These are essentially percentages (between 0 and 1) of where the desired value falls between the nearest bins on each axis - int m = ((256-p) * (256-q)) >> 8; - int n = (p * (256-q)) >> 8; - int o = ((256-p) * q) >> 8; - int r = (p * q) >> 8; - return ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; + + //Initial check incase the values were hit straight on + long p = (long)X - xMinValue; + if (xMaxValue == xMinValue) { p = (p << 8); } //This only occurs if the requested X value was equal to one of the X axis bins + else { p = ( (p << 8) / (xMaxValue - xMinValue) ); } //This is the standard case + + long q = (long)Y - yMinValue; + if (yMaxValue == yMinValue) { q = (q << 8); } + else { q = 256 - ( (q << 8) / (yMinValue - yMaxValue) ); } + + int m = ((256-p) * (256-q)) >> 8; + int n = (p * (256-q)) >> 8; + int o = ((256-p) * q) >> 8; + int r = (p * q) >> 8; + tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; + } + return tableResult; } - /* Executed a benchmark on all options and this is the results - * @Mega: Stadard:226224 91 |FP Math:32240 91.89 |Clean code:34056 91, Number of loops:2500 - * @STM32: Stadard:1624 91 |FP Math:85180 91.89 |Clean code:1001 91 , Number of loops:2500 - * @STM32 Stadard:13000 loops/S |Clean code:15700 loops/S @8000RPM ~20.8% faster + * @Mega: Stadard:463028 92 |FP Math:850392 92.57 |Clean code:618308 92 , Number of loops:5000 + * @STM32F1: Stadard:21449 92 |FP Math:125707 92.57 |Clean code:11634 92 , Number of loops:5000 + * @STM32F4: Stadard:7123 92 |FP Math:16503 92.57 |Clean code:4618 92 , Number of loops:5000 + * @STM32F1: Stadard:13000 loops/S |Clean code:15700 loops/S @8000RPM ~20.8% faster //This function pulls a value from a 3D table given a target for X and Y coordinates. //It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf float get3DTableValueF(struct table3D *fromTable, int Y, int X) { - float m, n, o ,p, q, r; byte xMin, xMax; byte yMin, yMax; int yMaxValue, yMinValue; int xMaxValue, xMinValue; + float tableResult = 0; - if(fromTable->lastXMin==0) {fromTable->lastXMin = fromTable->xSize-1;} - else {xMin = fromTable->lastXMin;} - if(fromTable->lastYMin==0) {fromTable->lastYMin = fromTable->ySize-1;} - else {yMin = fromTable->lastYMin;} - //yMin = fromTable->lastYMin; - - if(xMin>fromTable->xSize-1) - { - fromTable->lastXMin = fromTable->xSize-1; - xMin = fromTable->xSize-1; - } - if(yMin>fromTable->ySize-1) - { - fromTable->lastYMin = fromTable->ySize-1; - yMin = fromTable->ySize-1; - } - - do //RPM axis - { - if(X>=fromTable->axisX[xMin]) {break;} - xMin--; - }while(1); - fromTable->lastXMin = xMin + 1; - do //MAP axis - { - if(Y<=fromTable->axisY[yMin]) {break;} - yMin--; - }while(1); - fromTable->lastYMin = yMin + 1; - - xMax = xMin + 1; - yMax = yMin + 1; - if (xMax>fromTable->xSize-1) //Overflow protection - { - xMax = fromTable->xSize-1; - xMin = xMax - 1; - } - if (yMax>fromTable->ySize-1) //Overflow protection - { - yMax = fromTable->ySize-1; - yMin = yMax - 1; - } - - yMaxValue = fromTable->axisY[yMax]; - yMinValue = fromTable->axisY[yMin]; - xMaxValue = fromTable->axisX[xMax]; - xMinValue = fromTable->axisX[xMin]; - - int A = fromTable->values[yMin][xMin]; - int B = fromTable->values[yMin][xMax]; - int C = fromTable->values[yMax][xMin]; - int D = fromTable->values[yMax][xMax]; - - p = float(X - xMinValue) / (xMaxValue - xMinValue); //(RPM - RPM[1])/(RPM[2]- RPM[1]) - q = float(Y - yMinValue) / (yMaxValue - yMinValue); //(MAP - MAP[1])/(MAP[2]- MAP[1]) - - m = (1.0-p) * (1.0-q); - n = p * (1-q); - o = (1-p) * q; - r = p * q; - - return ( (A * m) + (B * n) + (C * o) + (D * r) ); -} - -//This function pulls a value from a 3D table given a target for X and Y coordinates. -//It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf -int get3DTableValueS(struct table3D *fromTable, int Y, int X) -{ - byte xMin, xMax; - byte yMin, yMax; - long p, q; - int yMaxValue, yMinValue; - int xMaxValue, xMinValue; - - if(fromTable->lastXMin == 0) {fromTable->lastXMin = fromTable->xSize-1;} - else {xMin = fromTable->lastXMin;} - if(fromTable->lastYMin == 0) {fromTable->lastYMin = fromTable->ySize-1;} - else {yMin = fromTable->lastYMin;} + xMin = fromTable->lastXMin; + yMin = fromTable->lastYMin; + if(xMin == 0) { xMin = fromTable->xSize-1; } + if(yMin == 0) { yMin = fromTable->ySize-1; } do //RPM axis { @@ -503,24 +440,98 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) } fromTable->lastYMin = yMin + 1; - yMaxValue = fromTable->axisY[yMax]; - yMinValue = fromTable->axisY[yMin]; - xMaxValue = fromTable->axisX[xMax]; - xMinValue = fromTable->axisX[xMin]; - int A = fromTable->values[yMin][xMin]; - int B = fromTable->values[yMin][xMax]; - int C = fromTable->values[yMax][xMin]; int D = fromTable->values[yMax][xMax]; - if(A == D) { return A; } + if(A == D) { tableResult = A; } + else + { + int B = fromTable->values[yMin][xMax]; + int C = fromTable->values[yMax][xMin]; - p = ((long)(X - xMinValue) << 8) / (xMaxValue - xMinValue); //(RPM - RPM[1])/(RPM[2]- RPM[1]) - q = 256 - (((long)(Y - yMaxValue) << 8) / (yMinValue - yMaxValue)); //(MAP - MAP[2])/(MAP[2]- MAP[1]) + yMaxValue = fromTable->axisY[yMax]; + yMinValue = fromTable->axisY[yMin]; + xMaxValue = fromTable->axisX[xMax]; + xMinValue = fromTable->axisX[xMin]; + + float m, n, o ,p, q, r; + p = float(X - xMinValue) / (xMaxValue - xMinValue); //(RPM - RPM[1])/(RPM[2]- RPM[1]) + q = float(Y - yMinValue) / (yMaxValue - yMinValue); //(MAP - MAP[1])/(MAP[2]- MAP[1]) - int m = ((256-p) * (256-q)) >> 8; - int n = (p * (256-q)) >> 8; - int o = ((256-p) * q) >> 8; - int r = (p * q) >> 8; - return ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; + m = (1.0-p) * (1.0-q); + n = p * (1-q); + o = (1-p) * q; + r = p * q; + tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ); + } + return tableResult; } -*/ + +//This function pulls a value from a 3D table given a target for X and Y coordinates. +//It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf +int get3DTableValueS(struct table3D *fromTable, int Y, int X) +{ + byte xMin, xMax; + byte yMin, yMax; + long p, q; + int yMaxValue, yMinValue; + int xMaxValue, xMinValue; + int tableResult = 0; + + xMin = fromTable->lastXMin; + yMin = fromTable->lastYMin; + if(xMin == 0) { xMin = fromTable->xSize-1; } + if(yMin == 0) { yMin = fromTable->ySize-1; } + + do //RPM axis + { + if(X >= fromTable->axisX[xMin]) {break;} + xMin--; + }while(1); + + do //MAP axis + { + if(Y <= fromTable->axisY[yMin]) {break;} + yMin--; + }while(1); + + xMax = xMin + 1; + yMax = yMin + 1; + if (xMax > fromTable->xSize-1) //Overflow protection + { + xMax = fromTable->xSize-1; + xMin = xMax - 1; + } + fromTable->lastXMin = xMin + 1; + + if (yMax > fromTable->ySize-1) //Overflow protection + { + yMax = fromTable->ySize-1; + yMin = yMax - 1; + } + fromTable->lastYMin = yMin + 1; + + int A = fromTable->values[yMin][xMin]; + int D = fromTable->values[yMax][xMax]; + if(A == D) { tableResult = A; } + else + { + int B = fromTable->values[yMin][xMax]; + int C = fromTable->values[yMax][xMin]; + + yMaxValue = fromTable->axisY[yMax]; + yMinValue = fromTable->axisY[yMin]; + xMaxValue = fromTable->axisX[xMax]; + xMinValue = fromTable->axisX[xMin]; + + p = ((long)(X - xMinValue) << 8) / (xMaxValue - xMinValue); //(RPM - RPM[1])/(RPM[2]- RPM[1]) + q = 256 - (((long)(Y - yMaxValue) << 8) / (yMinValue - yMaxValue)); //(MAP - MAP[2])/(MAP[2]- MAP[1]) + + int m = ((256-p) * (256-q)) >> 8; + int n = (p * (256-q)) >> 8; + int o = ((256-p) * q) >> 8; + int r = (p * q) >> 8; + tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; + } + return tableResult; +} +*/ diff --git a/speeduino/timers.ino b/speeduino/timers.ino index 198cad59..35455d1c 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -32,7 +32,8 @@ void initialiseTimers() TCCR2B &= ~(1< -int freeRam (); +unsigned int freeRam (); void setPinMapping(byte boardID); unsigned int PW(); unsigned int PW_SD(); unsigned int PW_AN(); -#endif // UTILS_H +#endif // UTILS_H diff --git a/speeduino/utils.ino b/speeduino/utils.ino index e4894526..5ffb43d8 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -10,7 +10,7 @@ */ #include "utils.h" -int freeRam () +unsigned int freeRam () { #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) extern int __heap_start, *__brkval; @@ -41,31 +41,41 @@ void setPinMapping(byte boardID) //This is dumb, but it'll do for now to get things compiling #if defined(CORE_STM32) //STM32F1/variants/.../board.cpp - #define A0 boardADCPins[0] - #define A1 boardADCPins[1] - #define A2 boardADCPins[2] - #define A3 boardADCPins[3] - #define A4 boardADCPins[4] - #define A5 boardADCPins[5] - #define A6 boardADCPins[6] - #define A7 boardADCPins[7] - #define A8 boardADCPins[8] - #define A9 boardADCPins[9] - #if defined (ARDUINO_ARCH_STM32F4) - #define A10 boardADCPins[10] - #define A11 boardADCPins[11] - #define A12 boardADCPins[12] - #define A13 boardADCPins[13] - #define A14 boardADCPins[14] - #define A15 boardADCPins[15] + #if defined (STM32F4) + #define A0 PA0 + #define A1 PA1 + #define A2 PA2 + #define A3 PA3 + #define A4 PA4 + #define A5 PA5 + #define A6 PA6 + #define A7 PA7 + #define A8 PB0 + #define A9 PB1 + #define A10 PC0 + #define A11 PC1 + #define A12 PC2 + #define A13 PC3 + #define A14 PC4 + #define A15 PC5 #else + #define A0 PB0 + #define A1 PA7 + #define A2 PA6 + #define A3 PA5 + #define A4 PA4 + #define A5 PA3 + #define A6 PA2 + #define A7 PA1 + #define A8 PA0 //STM32F1 have only 9 12bit adc - #define A10 boardADCPins[0] - #define A11 boardADCPins[1] - #define A12 boardADCPins[2] - #define A13 boardADCPins[3] - #define A14 boardADCPins[4] - #define A15 boardADCPins[5] + #define A9 PB0 + #define A10 PA7 + #define A11 PA6 + #define A12 PA5 + #define A13 PA4 + #define A14 PA3 + #define A15 PA2 #endif #endif @@ -166,6 +176,7 @@ void setPinMapping(byte boardID) #if defined(CORE_TEENSY) pinTrigger = 23; pinStepperDir = 33; + pinStepperStep = 34; pinCoil1 = 31; pinTachOut = 28; pinFan = 27; @@ -194,8 +205,8 @@ void setPinMapping(byte boardID) pinStepperStep = 13; //Step pin for DRV8825 driver pinStepperEnable = 14; //Enable pin for DRV8825 pinDisplayReset = 2; // OLED reset pin - pinFan = 0; //Pin for the fan output - pinFuelPump = 1; //Fuel pump output + pinFan = 1; //Pin for the fan output + pinFuelPump = 0; //Fuel pump output pinTachOut = 31; //Tacho output pin //external interrupt enabled pins pinFlex = 32; // Flex sensor (Must be external interrupt enabled) @@ -242,12 +253,41 @@ void setPinMapping(byte boardID) pinTrigger = 23; pinTrigger2 = 35; pinStepperDir = 33; + pinStepperStep = 34; pinCoil1 = 31; pinTachOut = 28; pinFan = 27; pinCoil4 = 29; pinCoil3 = 30; pinO2 = A22; + #elif defined(STM32F4) + pinInjector1 = PE11; //Output pin injector 1 is on + pinInjector2 = PE12; //Output pin injector 2 is on + pinInjector3 = PE13; //Output pin injector 3 is on + pinInjector4 = PE14; //Output pin injector 4 is on + pinInjector5 = PE15; //Output pin injector 4 is on + pinCoil1 = PB10; //Pin for coil 1 + pinCoil2 = PB11; //Pin for coil 2 + pinCoil3 = PB12; //Pin for coil 3 + pinCoil4 = PB13; //Pin for coil 4 + pinCoil5 = PB14; //Pin for coil 5 + pinTPS = PA0; //TPS input pin + pinMAP = PA1; //MAP sensor pin + pinIAT = PA2; //IAT sensor pin + pinCLT = PA3; //CLS sensor pin + pinO2 = PA4; //O2 Sensor pin + pinBat = PA5; //Battery reference voltage pin + pinStepperDir = PD8; //Direction pin for DRV8825 driver + pinStepperStep = PB15; //Step pin for DRV8825 driver + pinStepperEnable = PD9; //Enable pin for DRV8825 + pinDisplayReset = PE1; // OLED reset pin + pinFan = PE2; //Pin for the fan output + pinFuelPump = PA6; //Fuel pump output + pinTachOut = PA7; //Tacho output pin + //external interrupt enabled pins + pinFlex = PC4; // Flex sensor (Must be external interrupt enabled) + pinTrigger = PC5; //The CAS pin + pinTrigger2 = PC6; //The Cam Sensor pin #elif defined(CORE_STM32) //http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/0.0.12/hardware/maple-mini.html#master-pin-map //pins 23, 24 and 33 couldn't be used @@ -270,8 +310,8 @@ void setPinMapping(byte boardID) pinStepperStep = 13; //Step pin for DRV8825 driver pinStepperEnable = 14; //Enable pin for DRV8825 pinDisplayReset = 2; // OLED reset pin - pinFan = 0; //Pin for the fan output - pinFuelPump = 1; //Fuel pump output + pinFan = 1; //Pin for the fan output + pinFuelPump = 0; //Fuel pump output pinTachOut = 31; //Tacho output pin //external interrupt enabled pins pinFlex = 32; // Flex sensor (Must be external interrupt enabled) @@ -286,7 +326,7 @@ void setPinMapping(byte boardID) pinInjector2 = 10; //Output pin injector 2 is on pinInjector3 = 9; //Output pin injector 3 is on pinInjector4 = 8; //Output pin injector 4 is on - pinInjector5 = 12; //Output pin injector 5 is on + pinInjector5 = 14; //Output pin injector 5 is on pinCoil1 = 39; //Pin for coil 1 pinCoil2 = 41; //Pin for coil 2 pinCoil3 = 35; //Pin for coil 3 @@ -508,23 +548,13 @@ void setPinMapping(byte boardID) tach_pin_mask = digitalPinToBitMask(pinTachOut); //And for inputs - #if defined(CORE_STM32) - pinMode(pinMAP, INPUT_ANALOG); - pinMode(pinO2, INPUT_ANALOG); - pinMode(pinO2_2, INPUT_ANALOG); - pinMode(pinTPS, INPUT_ANALOG); - pinMode(pinIAT, INPUT_ANALOG); - pinMode(pinCLT, INPUT_ANALOG); - pinMode(pinBat, INPUT_ANALOG); - #else - pinMode(pinMAP, INPUT); - pinMode(pinO2, INPUT); - pinMode(pinO2_2, INPUT); - pinMode(pinTPS, INPUT); - pinMode(pinIAT, INPUT); - pinMode(pinCLT, INPUT); - pinMode(pinBat, INPUT); - #endif + pinMode(pinMAP, INPUT); + pinMode(pinO2, INPUT); + pinMode(pinO2_2, INPUT); + pinMode(pinTPS, INPUT); + pinMode(pinIAT, INPUT); + pinMode(pinCLT, INPUT); + pinMode(pinBat, INPUT); pinMode(pinTrigger, INPUT); pinMode(pinTrigger2, INPUT); pinMode(pinTrigger3, INPUT); From d9f38f82de23086ee19fe9b89f9a612ff755f972 Mon Sep 17 00:00:00 2001 From: "Vitor Moreno B. Sales" Date: Wed, 2 Aug 2017 22:51:07 -0300 Subject: [PATCH 043/133] Fixing last comit --- speeduino/auxiliaries.h | 33 +++ speeduino/auxiliaries.ino | 92 ++++++--- speeduino/cancomms.h | 2 +- speeduino/cancomms.ino | 71 +++---- speeduino/comms.h | 5 +- speeduino/comms.ino | 167 ++++++++------- speeduino/corrections.ino | 16 +- speeduino/decoders.h | 7 + speeduino/decoders.ino | 181 +++++++++++++++- speeduino/globals.h | 157 +++++++++----- speeduino/maths.h | 4 +- speeduino/maths.ino | 30 ++- speeduino/scheduler.h | 96 +++++---- speeduino/scheduler.ino | 420 ++++++++++++++++++++++++-------------- speeduino/sensors.h | 6 +- speeduino/sensors.ino | 57 ++++-- speeduino/speeduino.ino | 230 ++++++++++++--------- speeduino/storage.h | 7 +- speeduino/storage.ino | 23 ++- speeduino/table.h | 3 +- speeduino/table.ino | 216 ++++++++++++-------- speeduino/timers.h | 6 +- speeduino/timers.ino | 24 ++- speeduino/updates.ino | 15 +- speeduino/utils.h | 44 +++- speeduino/utils.ino | 162 +++++---------- 26 files changed, 1333 insertions(+), 741 deletions(-) diff --git a/speeduino/auxiliaries.h b/speeduino/auxiliaries.h index 8d535704..5ce8d246 100644 --- a/speeduino/auxiliaries.h +++ b/speeduino/auxiliaries.h @@ -6,6 +6,39 @@ void boostControl(); void vvtControl(); void initialiseFan(); +#if defined(CORE_AVR) + #define ENABLE_BOOST_TIMER() TIMSK1 |= (1 << OCIE1A) + #define DISABLE_BOOST_TIMER() TIMSK1 &= ~(1 << OCIE1A) + #define ENABLE_VVT_TIMER() TIMSK1 |= (1 << OCIE1B) + #define DISABLE_VVT_TIMER() TIMSK1 &= ~(1 << OCIE1B) + + #define BOOST_TIMER_COMPARE OCR1A + #define BOOST_TIMER_COUNTER TCNT1 + #define VVT_TIMER_COMPARE OCR1B + #define VVT_TIMER_COUNTER TCNT1 + +#elif defined(CORE_TEENSY) + #define ENABLE_BOOST_TIMER() FTM1_C0SC |= FTM_CSC_CHIE + #define DISABLE_BOOST_TIMER() FTM1_C0SC &= ~FTM_CSC_CHIE + + #define ENABLE_VVT_TIMER() FTM1_C1SC |= FTM_CSC_CHIE + #define DISABLE_VVT_TIMER() FTM1_C1SC &= ~FTM_CSC_CHIE + + #define BOOST_TIMER_COMPARE FTM1_C0V + #define BOOST_TIMER_COUNTER FTM1_CNT + #define VVT_TIMER_COMPARE FTM1_C1V + #define VVT_TIMER_COUNTER FTM1_CNT + +#elif defined(CORE_STM32) + +#endif + +#define BOOST_PIN_LOW() *boost_pin_port &= ~(boost_pin_mask) +#define BOOST_PIN_HIGH() *boost_pin_port |= (boost_pin_mask) +#define VVT_PIN_LOW() *vvt_pin_port &= ~(vvt_pin_mask) +#define VVT_PIN_HIGH() *vvt_pin_port |= (vvt_pin_mask) + + volatile byte *boost_pin_port; volatile byte boost_pin_mask; volatile byte *vvt_pin_port; diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 45438685..88805e40 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -3,7 +3,8 @@ Speeduino - Simple engine management for the Arduino Mega 2560 platform Copyright (C) Josh Stewart A full copy of the license may be found in the projects root directory */ -integerPID boostPID(&MAPx100, &boost_pwm_target_value, &boostTargetx100, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call +//integerPID boostPID(&MAPx100, &boost_pwm_target_value, &boostTargetx100, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call +integerPIDnew boostPID(¤tStatus.MAP, &boost_pwm_target_value, &boost_cl_target_boost, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call /* Fan control @@ -28,14 +29,18 @@ void fanControl() } } -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) +#if defined(CORE_AVR) || defined(CORE_TEENSY) void initialiseAuxPWM() { - TCCR1B = 0x00; //Disbale Timer1 while we set it up - TCNT1 = 0; //Reset Timer Count - TIFR1 = 0x00; //Timer1 INT Flag Reg: Clear Timer Overflow Flag - TCCR1A = 0x00; //Timer1 Control Reg A: Wave Gen Mode normal (Simply counts up from 0 to 65535 (16-bit int) - TCCR1B = (1 << CS12); //Timer1 Control Reg B: Timer Prescaler set to 256. 1 tick = 16uS. Refer to http://www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg + #if defined(CORE_AVR) + TCCR1B = 0x00; //Disbale Timer1 while we set it up + TCNT1 = 0; //Reset Timer Count + TIFR1 = 0x00; //Timer1 INT Flag Reg: Clear Timer Overflow Flag + TCCR1A = 0x00; //Timer1 Control Reg A: Wave Gen Mode normal (Simply counts up from 0 to 65535 (16-bit int) + TCCR1B = (1 << CS12); //Timer1 Control Reg B: Timer Prescaler set to 256. 1 tick = 16uS. Refer to http://www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg + #elif defined(CORE_TEENSY) + //REALLY NEED TO DO THIS! + #endif boost_pin_port = portOutputRegister(digitalPinToPort(pinBoost)); boost_pin_mask = digitalPinToBitMask(pinBoost); @@ -45,7 +50,7 @@ void initialiseAuxPWM() boost_pwm_max_count = 1000000L / (16 * configPage3.boostFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. The x2 is there because the frequency is stored at half value (in a byte) to allow freqneucies up to 511Hz vvt_pwm_max_count = 1000000L / (16 * configPage3.vvtFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle //TIMSK1 |= (1 << OCIE1A); <---- Not required as compare A is turned on when needed by boost control - TIMSK1 |= (1 << OCIE1B); //Turn on the B compare unit (ie turn on the interrupt) + ENABLE_VVT_TIMER(); //Turn on the B compare unit (ie turn on the interrupt) boostPID.SetOutputLimits(percentage(configPage1.boostMinDuty, boost_pwm_max_count) , percentage(configPage1.boostMaxDuty, boost_pwm_max_count)); boostPID.SetTunings(configPage3.boostKP, configPage3.boostKI, configPage3.boostKD); @@ -63,7 +68,8 @@ void boostControl() { MAPx100 = currentStatus.MAP * 100; - boost_cl_target_boost = get3DTableValue(&boostTable, currentStatus.TPS, currentStatus.RPM) * 2; //Boost target table is in kpa and divided by 2 + if( (boostCounter & 3) == 1) { boost_cl_target_boost = get3DTableValue(&boostTable, currentStatus.TPS, currentStatus.RPM) * 2; } //Boost target table is in kpa and divided by 2 + //If flex fuel is enabled, there can be an adder to the boost target based on ethanol content if( configPage1.flexEnabled == 1 ) { @@ -80,23 +86,25 @@ void boostControl() boostPID.Compute(); currentStatus.boostDuty = (unsigned long)(boost_pwm_target_value * 100UL) / boost_pwm_max_count; - TIMSK1 |= (1 << OCIE1A); //Turn on the compare unit (ie turn on the interrupt) + if(currentStatus.boostDuty == 0) { DISABLE_BOOST_TIMER(); BOOST_PIN_LOW(); } //If boost duty is 0, shut everything down + else { ENABLE_BOOST_TIMER(); } //Turn on the compare unit (ie turn on the interrupt) if boost duty >0 + } else { //If boost target is 0, turn everything off - TIMSK1 &= ~(1 << OCIE1A); //Turn off timer - digitalWrite(pinBoost, LOW); + DISABLE_BOOST_TIMER(); //Turn off timer + BOOST_PIN_LOW(); } } else { //Boost control does nothing if kPa below 100 - TIMSK1 &= ~(1 << OCIE1A); //Turn off timer - digitalWrite(pinBoost, LOW); //Make sure solenoid is off (0% duty) + DISABLE_BOOST_TIMER(); //Turn off timer + BOOST_PIN_LOW(); //Make sure solenoid is off (0% duty) } } - else { TIMSK1 &= ~(1 << OCIE1A); } // Disable timer channel + else { DISABLE_BOOST_TIMER(); } // Disable timer channel boostCounter++; } @@ -106,51 +114,73 @@ void vvtControl() if( configPage3.vvtEnabled == 1 ) { byte vvtDuty = get3DTableValue(&vvtTable, currentStatus.TPS, currentStatus.RPM); - vvt_pwm_target_value = percentage(vvtDuty, vvt_pwm_max_count); + if(vvtDuty == 0) + { + //Make sure solenoid is off (0% duty) + VVT_PIN_LOW(); + DISABLE_VVT_TIMER(); + } + else if (vvtDuty >= 100) + { + //Make sure solenoid is on (100% duty) + VVT_PIN_HIGH(); + DISABLE_VVT_TIMER(); + } + else + { + vvt_pwm_target_value = percentage(vvtDuty, vvt_pwm_max_count); + ENABLE_VVT_TIMER(); + } } -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - else { TIMSK1 &= ~(1 << OCIE1B); } // Disable timer channel -#endif + else { DISABLE_VVT_TIMER(); } // Disable timer channel } //The interrupt to control the Boost PWM -ISR(TIMER1_COMPA_vect) +#if defined(CORE_AVR) + ISR(TIMER1_COMPA_vect) +#elif defined (CORE_TEENSY) + static inline void boostInterrupt() //Most ARM chips can simply call a function +#endif { if (boost_pwm_state) { - *boost_pin_port &= ~(boost_pin_mask); // Switch pin to low - OCR1A = TCNT1 + (boost_pwm_max_count - boost_pwm_cur_value); + BOOST_PIN_LOW(); // Switch pin to low + BOOST_TIMER_COMPARE = BOOST_TIMER_COUNTER + (boost_pwm_max_count - boost_pwm_cur_value); boost_pwm_state = false; } else { - *boost_pin_port |= (boost_pin_mask); // Switch pin high - OCR1A = TCNT1 + boost_pwm_target_value; + BOOST_PIN_HIGH(); // Switch pin high + BOOST_TIMER_COMPARE = BOOST_TIMER_COUNTER + boost_pwm_target_value; boost_pwm_cur_value = boost_pwm_target_value; boost_pwm_state = true; } } //The interrupt to control the VVT PWM -ISR(TIMER1_COMPB_vect) +#if defined(CORE_AVR) + ISR(TIMER1_COMPB_vect) +#elif defined (CORE_TEENSY) + static inline void vvtInterrupt() //Most ARM chips can simply call a function +#endif { if (vvt_pwm_state) { - *vvt_pin_port &= ~(vvt_pin_mask); // Switch pin to low - OCR1B = TCNT1 + (vvt_pwm_max_count - vvt_pwm_cur_value); + VVT_PIN_LOW(); // Switch pin to low + VVT_TIMER_COMPARE = VVT_TIMER_COUNTER + (vvt_pwm_max_count - vvt_pwm_cur_value); vvt_pwm_state = false; } else { - *vvt_pin_port |= (vvt_pin_mask); // Switch pin high - OCR1B = TCNT1 + vvt_pwm_target_value; + VVT_PIN_HIGH(); // Switch pin high + VVT_TIMER_COMPARE = VVT_TIMER_COUNTER + vvt_pwm_target_value; vvt_pwm_cur_value = vvt_pwm_target_value; vvt_pwm_state = true; } } -#elif defined (CORE_TEENSY) || defined(CORE_STM32) -//YET TO BE IMPLEMENTED ON TEENSY +#elif defined(CORE_STM32) +//YET TO BE IMPLEMENTED ON STM32 void initialiseAuxPWM() { } void boostControl() { } void vvtControl() { } diff --git a/speeduino/cancomms.h b/speeduino/cancomms.h index 0d31a4b5..38104469 100644 --- a/speeduino/cancomms.h +++ b/speeduino/cancomms.h @@ -15,8 +15,8 @@ uint8_t Glow, Ghigh; #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) HardwareSerial &CANSerial = Serial3; #elif defined(CORE_STM32) - SerialUART &CANSerial = Serial2; //HardwareSerial &CANSerial = Serial2; + SerialUART &CANSerial = Serial2; #elif defined(CORE_TEENSY) HardwareSerial &CANSerial = Serial2; #endif diff --git a/speeduino/cancomms.ino b/speeduino/cancomms.ino index cac44fdc..f686c1ec 100644 --- a/speeduino/cancomms.ino +++ b/speeduino/cancomms.ino @@ -18,41 +18,41 @@ void canCommand() switch (currentcanCommand) { case 'A': // sends the bytes of realtime values - sendValues(0, packetSize,3); //send values to serial3 + sendValues(0, packetSize,0x30,3); //send values to serial3 break; case 'G': // this is the reply command sent by the Can interface - //uint8_t Gdata; - while (CANSerial.available() == 0) { } + byte destcaninchannel; + if (CANSerial.available() >= 10) + { cancmdfail = CANSerial.read(); - + destcaninchannel = CANSerial.read(); if (cancmdfail != 0) - { - for (byte Gx = 0; Gx < 8; Gx++) //read all 8 bytes of data - { - while (CANSerial.available() == 0) { } - Gdata[Gx] = CANSerial.read(); - } - - Glow = Gdata[(configPage10.caninput_param_start_byte[currentStatus.current_caninchannel])]; - if (configPage10.caninput_param_num_bytes[currentStatus.current_caninchannel] == 2) - { - if ((configPage10.caninput_param_start_byte[currentStatus.current_caninchannel]) != 7) //you cant have a 2 byte value starting at byte 7(8 on the list) - { - Ghigh = Gdata[((configPage10.caninput_param_start_byte[currentStatus.current_caninchannel])+1)]; - } - } + { // read all 8 bytes of data. + for (byte Gx = 0; Gx < 8; Gx++) // first two are the can address the data is from. next two are the can address the data is for.then next 1 or two bytes of data + { + Gdata[Gx] = CANSerial.read(); + } + Glow = Gdata[(configPage10.caninput_param_start_byte[destcaninchannel]&7)]; + if ((BIT_CHECK(configPage10.caninput_param_num_bytes,destcaninchannel))) //if true then num bytes is 2 + { + if ((configPage10.caninput_param_start_byte[destcaninchannel]&7) < 8) //you cant have a 2 byte value starting at byte 7(8 on the list) + { + Ghigh = Gdata[((configPage10.caninput_param_start_byte[destcaninchannel]&7)+1)]; + } + else{Ghigh = 0;} + } else - { - Ghigh = 0; - } + { + Ghigh = 0; + } - currentStatus.canin[currentStatus.current_caninchannel] = word(Ghigh, Glow); + currentStatus.canin[destcaninchannel] = (Ghigh<<8) | Glow; } else{} //continue as command request failed and/or data/device was not available - if (currentStatus.current_caninchannel <= 6) // if channel is 0-7 + if (currentStatus.current_caninchannel < 15) // if channel is < 15 then we can do another one { currentStatus.current_caninchannel++; //inc to next channel } @@ -60,7 +60,7 @@ void canCommand() { currentStatus.current_caninchannel = 0; //reset to start } - + } break; case 'L': @@ -86,23 +86,22 @@ void canCommand() break; case 'r': //New format for the optimised OutputChannels - byte cmd; - + byte Cmd; if (CANSerial.available() >= 6) { CANSerial.read(); //Read the $tsCanId - cmd = CANSerial.read(); + Cmd = CANSerial.read(); uint16_t offset, length; - if(cmd == 0x30) //Send output channels command 0x30 is 48dec + if( (Cmd == 0x30) || ( (Cmd >= 0x40) && (Cmd <0x50) ) ) //Send output channels command 0x30 is 48dec, 0x40(64dec)-0x4F(79dec) are external can request { byte tmp; tmp = CANSerial.read(); offset = word(CANSerial.read(), tmp); tmp = CANSerial.read(); length = word(CANSerial.read(), tmp); - - sendValues(offset, length, 3); + sendValues(offset, length,Cmd, 3); +//Serial.print(Cmd); } else { @@ -152,14 +151,16 @@ void sendCancommand(uint8_t cmdtype, uint16_t canaddress, uint8_t candata1, uint CANSerial.write(canaddress); //11 bit canaddress of device to listen for break; - case 2: - CANSerial.print("R"); //send "R" to request data from the parmagroup whos value is sent next - CANSerial.write( lowByte(paramgroup) ); //send lsb first - CANSerial.write( lowByte(paramgroup >> 8) ); + case 2: // requests via serial3 + CANSerial.print("R"); //send "R" to request data from the parmagroup can address whos value is sent next + CANSerial.write(candata1); //the currentStatus.current_caninchannel + CANSerial.write(lowByte(paramgroup) ); //send lsb first + CANSerial.write(highByte(paramgroup) ); break; case 3: //send to truecan send routine + //canaddress == speeduino canid, candata1 == canin channel dest, paramgroup == can address to request from break; default: diff --git a/speeduino/comms.h b/speeduino/comms.h index 81e1016e..8b191f42 100644 --- a/speeduino/comms.h +++ b/speeduino/comms.h @@ -11,8 +11,9 @@ #define boostvvtPage 8 #define seqFuelPage 9 #define canbusPage 10//Config Page 10 +#define warmupPage 11 //Config Page 11 -#define packetSize 57//41 +#define packetSize 73 byte currentPage = 1;//Not the same as the speeduino config page numbers bool isMap = true; @@ -40,7 +41,7 @@ const char pageTitles[] PROGMEM //This is being stored in the avr flash instead }; void command();//This is the heart of the Command Line Interpeter. All that needed to be done was to make it human readable. -void sendValues(uint16_t offset, uint16_t packetlength, byte portnum); +void sendValues(uint16_t offset, uint16_t packetlength,byte cmd, byte portnum); void receiveValue(int offset, byte newValue); void saveConfig(); void sendPage(bool useChar); diff --git a/speeduino/comms.ino b/speeduino/comms.ino index b5b0128c..04d82ed2 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -15,15 +15,16 @@ A detailed description of each call can be found at: http://www.msextra.com/doc/ void command() { - if (cmdPending == 0) { currentCommand = Serial.read(); } + if (!cmdPending) { currentCommand = Serial.read(); } switch (currentCommand) { case 'A': // send x bytes of realtime values - sendValues(0, packetSize, 0); //send values to serial0 + sendValues(0, packetSize,0x30, 0); //send values to serial0 break; - + + case 'B': // Burn current values to eeprom writeConfig(); break; @@ -79,12 +80,12 @@ void command() break; case 'S': // send code version - Serial.print(displaySignature);Serial.print(".");Serial.print(TSfirmwareVersion); + Serial.print("Speeduino 2017.07-dev"); currentStatus.secl = 0; //This is required in TS3 due to its stricter timings break; case 'Q': // send code version - Serial.print(displaySignature);Serial.print(TSfirmwareVersion); + Serial.print("speeduino 201707-dev"); break; case 'V': // send VE table and constants in binary @@ -181,15 +182,15 @@ void command() tsCanId = Serial.read(); //Read the $tsCanId cmd = Serial.read(); // read the command - uint16_t valueOffset, length; + uint16_t offset, length; if(cmd == 0x30) //Send output channels command 0x30 is 48dec { byte tmp; tmp = Serial.read(); - valueOffset = word(Serial.read(), tmp); + offset = word(Serial.read(), tmp); tmp = Serial.read(); length = word(Serial.read(), tmp); - sendValues(valueOffset, length, 0); + sendValues(offset, length,cmd, 0); } else { @@ -243,33 +244,23 @@ void command() This function returns the current values of a fixed group of variables */ //void sendValues(int packetlength, byte portNum) -void sendValues(uint16_t offset, uint16_t packetLength, byte portNum) +void sendValues(uint16_t offset, uint16_t packetLength, byte cmd, byte portNum) { byte fullStatus[packetSize]; if (portNum == 3) { //CAN serial - #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 + #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)|| defined(CORE_STM32) || defined (CORE_TEENSY) //ATmega2561 does not have Serial3 if (offset == 0) { - Serial3.write("A"); //confirm cmd type + CANSerial.write("A"); //confirm cmd type } else { - Serial3.write("r"); //confirm cmd type + CANSerial.write("r"); //confirm cmd type + CANSerial.write(cmd); } - Serial3.write(packetLength); //confirm no of byte to be sent - #elif defined(CORE_STM32) || defined (CORE_TEENSY) - if (offset == 0) - { - Serial2.write("A"); //confirm cmd type - } - else - { - Serial2.write("r"); //confirm cmd type - } - Serial2.write(packetLength); //confirm no of byte to be sent #endif } else @@ -284,19 +275,19 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte portNum) fullStatus[1] = currentStatus.squirt; //Squirt Bitfield fullStatus[2] = currentStatus.engine; //Engine Status Bitfield fullStatus[3] = (byte)(divu100(currentStatus.dwell)); //Dwell in ms * 10 - fullStatus[4] = (byte)(currentStatus.MAP >> 1); //map value is divided by 2 - fullStatus[5] = (byte)(currentStatus.IAT + CALIBRATION_TEMPERATURE_OFFSET); //mat - fullStatus[6] = (byte)(currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET); //Coolant ADC - fullStatus[7] = currentStatus.tpsADC; //TPS (Raw 0-255) - fullStatus[8] = currentStatus.battery10; //battery voltage - fullStatus[9] = currentStatus.O2; //O2 - fullStatus[10] = currentStatus.egoCorrection; //Exhaust gas correction (%) - fullStatus[11] = currentStatus.iatCorrection; //Air temperature Correction (%) - fullStatus[12] = currentStatus.wueCorrection; //Warmup enrichment (%) - fullStatus[13] = lowByte(currentStatus.RPM); //rpm HB - fullStatus[14] = highByte(currentStatus.RPM); //rpm LB - fullStatus[15] = currentStatus.TAEamount; //acceleration enrichment (%) - fullStatus[16] = currentStatus.baro; //Barometer value + fullStatus[4] = lowByte(currentStatus.MAP); //2 bytes for MAP + fullStatus[5] = highByte(currentStatus.MAP); + fullStatus[6] = (byte)(currentStatus.IAT + CALIBRATION_TEMPERATURE_OFFSET); //mat + fullStatus[7] = (byte)(currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET); //Coolant ADC + fullStatus[8] = currentStatus.batCorrection; //Battery voltage correction (%) + fullStatus[9] = currentStatus.battery10; //battery voltage + fullStatus[10] = currentStatus.O2; //O2 + fullStatus[11] = currentStatus.egoCorrection; //Exhaust gas correction (%) + fullStatus[12] = currentStatus.iatCorrection; //Air temperature Correction (%) + fullStatus[13] = currentStatus.wueCorrection; //Warmup enrichment (%) + fullStatus[14] = lowByte(currentStatus.RPM); //rpm HB + fullStatus[15] = highByte(currentStatus.RPM); //rpm LB + fullStatus[16] = currentStatus.TAEamount; //acceleration enrichment (%) fullStatus[17] = currentStatus.corrections; //Total GammaE (%) fullStatus[18] = currentStatus.VE; //Current VE 1 (%) fullStatus[19] = currentStatus.afrTarget; @@ -313,9 +304,9 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte portNum) fullStatus[26] = lowByte(currentStatus.freeRAM); //(byte)((currentStatus.loopsPerSecond >> 8) & 0xFF); fullStatus[27] = highByte(currentStatus.freeRAM); - fullStatus[28] = currentStatus.batCorrection; //Battery voltage correction (%) - fullStatus[29] = currentStatus.spark; //Spark related bitfield - fullStatus[30] = currentStatus.O2_2; //O2 + fullStatus[28] = currentStatus.boostTarget; + fullStatus[29] = currentStatus.boostDuty; + fullStatus[30] = currentStatus.spark; //Spark related bitfield //rpmDOT must be sent as a signed integer fullStatus[31] = lowByte(currentStatus.rpmDOT); @@ -325,10 +316,13 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte portNum) fullStatus[34] = currentStatus.flexCorrection; //Flex fuel correction (% above or below 100) fullStatus[35] = currentStatus.flexIgnCorrection; //Ignition correction (Increased degrees of advance) for flex fuel fullStatus[36] = getNextError(); - fullStatus[37] = currentStatus.boostTarget; - fullStatus[38] = currentStatus.boostDuty; - fullStatus[39] = currentStatus.idleLoad; - fullStatus[40] = currentStatus.testOutputs; + + fullStatus[37] = currentStatus.idleLoad; + fullStatus[38] = currentStatus.testOutputs; + + fullStatus[39] = currentStatus.O2_2; //O2 + fullStatus[40] = currentStatus.baro; //Barometer value + fullStatus[41] = lowByte(currentStatus.canin[0]); fullStatus[42] = highByte(currentStatus.canin[0]); fullStatus[43] = lowByte(currentStatus.canin[1]); @@ -345,13 +339,28 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte portNum) fullStatus[54] = highByte(currentStatus.canin[6]); fullStatus[55] = lowByte(currentStatus.canin[7]); fullStatus[56] = highByte(currentStatus.canin[7]); + fullStatus[57] = lowByte(currentStatus.canin[8]); + fullStatus[58] = highByte(currentStatus.canin[8]); + fullStatus[59] = lowByte(currentStatus.canin[9]); + fullStatus[60] = highByte(currentStatus.canin[9]); + fullStatus[61] = lowByte(currentStatus.canin[10]); + fullStatus[62] = highByte(currentStatus.canin[10]); + fullStatus[63] = lowByte(currentStatus.canin[11]); + fullStatus[64] = highByte(currentStatus.canin[11]); + fullStatus[65] = lowByte(currentStatus.canin[12]); + fullStatus[66] = highByte(currentStatus.canin[12]); + fullStatus[67] = lowByte(currentStatus.canin[13]); + fullStatus[68] = highByte(currentStatus.canin[13]); + fullStatus[69] = lowByte(currentStatus.canin[14]); + fullStatus[70] = highByte(currentStatus.canin[14]); + fullStatus[71] = lowByte(currentStatus.canin[15]); + fullStatus[72] = highByte(currentStatus.canin[15]); - Serial.write((byte *)&fullStatus+offset, packetLength); - //for(byte x=0; x= currentStatus.TAEEndTime ) + if( micros() >= currentStatus.TAEEndTime ) { //Time to turn enrichment off BIT_CLEAR(currentStatus.engine, BIT_ENGINE_ACC); currentStatus.TAEamount = 0; accelValue = 100; + currentStatus.tpsDOT = 0; } else { @@ -167,15 +172,18 @@ static inline byte correctionAccel() } else { + int8_t TPS_change = (currentStatus.TPS - currentStatus.TPSlast); //Check for deceleration (Deceleration adjustment not yet supported) - if (currentStatus.TPS < currentStatus.TPSlast) + //Also check for only very small movement (Movement less than or equal to 2% is ignored). This not only means we can skip the lookup, but helps reduce false triggering around 0-2% throttle openings + if (TPS_change <= 2) { accelValue = 100; + currentStatus.tpsDOT = 0; } else { //If TAE isn't currently turned on, need to check whether it needs to be turned on - int rateOfChange = ldiv(1000000, (currentStatus.TPS_time - currentStatus.TPSlast_time)).quot * (currentStatus.TPS - currentStatus.TPSlast); //This is the % per second that the TPS has moved + int rateOfChange = ldiv(1000000, (currentStatus.TPS_time - currentStatus.TPSlast_time)).quot * TPS_change; //This is the % per second that the TPS has moved currentStatus.tpsDOT = rateOfChange / 10; //The TAE bins are divided by 10 in order to allow them to be stored in a byte. Faster as this than divu10 if (rateOfChange > configPage1.tpsThresh) diff --git a/speeduino/decoders.h b/speeduino/decoders.h index 91fda7e0..8d5ac583 100644 --- a/speeduino/decoders.h +++ b/speeduino/decoders.h @@ -15,6 +15,8 @@ static inline void addToothLogEntry(unsigned long); static inline uint16_t stdGetRPM(); static inline void setFilter(unsigned long); static inline int crankingGetRPM(byte); +static inline void doPerToothTiming(uint16_t crankAngle); + void triggerSetup_missingTooth(); void triggerPri_missingTooth(); void triggerSec_missingTooth(); @@ -61,6 +63,11 @@ bool secondDerivEnabled; //The use of the 2nd derivative calculation is limited bool decoderIsSequential; //Whether or not the decoder supports sequential operation byte checkSyncToothCount; //How many teeth must've been seen on this revolution before we try to confirm sync (Useful for missing tooth type decoders) +int16_t ignition1EndTooth = 0; +int16_t ignition2EndTooth = 0; +int16_t ignition3EndTooth = 0; +int16_t ignition4EndTooth = 0; + int toothAngles[24]; //An array for storing fixed tooth angles. Currently sized at 24 for the GM 24X decoder, but may grow later if there are other decoders that use this style //Used for identifying long and short pulses on the 4G63 (And possibly other) trigger patterns diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index b48759a4..ad683954 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -94,11 +94,24 @@ static inline int crankingGetRPM(byte totalTeeth) revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime) * totalTeeth; interrupts(); tempRPM = (US_IN_MINUTE / revolutionTime); - if(tempRPM >= MAX_RPM) { tempRPM = currentStatus.RPM; } //Sanity check + if( tempRPM >= MAX_RPM ) { tempRPM = currentStatus.RPM; } //Sanity check. This can prevent spiking caused by noise on individual teeth. The new RPM should never be above 4x the cranking setting value (Remembering that this function is only called is the current RPM is less than the cranking setting) } return tempRPM; } +/* +On decoders that are enabled for per tooth based timing adjustments, this function performs the timer compare changes on the schedules themselves +For each ignition channel, a check is made whether we're at the relevant tooth and whether that ignition schedule is currently running +Only if both these conditions are met will the schedule be updated with the latest timing information. +*/ +static inline void doPerToothTiming(uint16_t crankAngle) +{ + if ( (toothCurrentCount == ignition1EndTooth) && (ignitionSchedule1.Status == RUNNING) ) { IGN1_COMPARE = IGN1_COUNTER + uS_TO_TIMER_COMPARE( (ignition1EndAngle - crankAngle) * timePerDegree ); } + else if ( (toothCurrentCount == ignition2EndTooth) && (ignitionSchedule2.Status == RUNNING) ) { IGN2_COMPARE = IGN2_COUNTER + uS_TO_TIMER_COMPARE( (ignition2EndAngle - crankAngle) * timePerDegree ); } + else if ( (toothCurrentCount == ignition3EndTooth) && (ignitionSchedule3.Status == RUNNING) ) { IGN3_COMPARE = IGN3_COUNTER + uS_TO_TIMER_COMPARE( (ignition3EndAngle - crankAngle) * timePerDegree ); } + else if ( (toothCurrentCount == ignition4EndTooth) && (ignitionSchedule4.Status == RUNNING) ) { IGN4_COMPARE = IGN4_COUNTER + uS_TO_TIMER_COMPARE( (ignition4EndAngle - crankAngle) * timePerDegree ); } +} + /* Name: Missing tooth wheel Desc: A multi-tooth wheel with one of more 'missing' teeth. The first tooth after the missing one is considered number 1 and isthe basis for the trigger angle @@ -161,7 +174,12 @@ void triggerPri_missingTooth() } } - + //EXPERIMENTAL! + if(configPage1.perToothIgn == true) + { + uint16_t crankAngle = ( (toothCurrentCount-1) * triggerToothAngle ) + configPage2.triggerAngle; + doPerToothTiming(crankAngle); + } } } @@ -174,7 +192,7 @@ void triggerSec_missingTooth() uint16_t getRPM_missingTooth() { uint16_t tempRPM = 0; - if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) ) + if( (currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100)) && (toothCurrentCount != 1) ) //Can't do per tooth RPM if we're at tooth #1 as the missing tooth messes the calculation { if(configPage2.TrigSpeed == 1) { crankingGetRPM(configPage2.triggerTeeth/2); } //Account for cam speed else { tempRPM = crankingGetRPM(configPage2.triggerTeeth); } @@ -217,6 +235,32 @@ int getCrankAngle_missingTooth(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_missingTooth() +{ + + ignition1EndTooth = ( (ignition1EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition1EndTooth > configPage2.triggerTeeth) { ignition1EndTooth -= configPage2.triggerTeeth; } + if(ignition1EndTooth <= 0) { ignition1EndTooth -= configPage2.triggerTeeth; } + if(ignition1EndTooth > triggerActualTeeth) { ignition1EndTooth = triggerActualTeeth; } + + ignition2EndTooth = ( (ignition2EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition2EndTooth > configPage2.triggerTeeth) { ignition2EndTooth -= configPage2.triggerTeeth; } + if(ignition2EndTooth <= 0) { ignition2EndTooth -= configPage2.triggerTeeth; } + if(ignition2EndTooth > triggerActualTeeth) { ignition2EndTooth = triggerActualTeeth; } + + ignition3EndTooth = ( (ignition3EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition3EndTooth > configPage2.triggerTeeth) { ignition3EndTooth -= configPage2.triggerTeeth; } + if(ignition3EndTooth <= 0) { ignition3EndTooth -= configPage2.triggerTeeth; } + if(ignition3EndTooth > triggerActualTeeth) { ignition3EndTooth = triggerActualTeeth; } + + ignition4EndTooth = ( (ignition4EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition4EndTooth > configPage2.triggerTeeth) { ignition4EndTooth -= configPage2.triggerTeeth; } + if(ignition4EndTooth <= 0) { ignition4EndTooth -= configPage2.triggerTeeth; } + if(ignition4EndTooth > triggerActualTeeth) { ignition4EndTooth = triggerActualTeeth; } + + +} + /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Dual wheel Desc: 2 wheels located either both on the crank or with the primary on the crank and the secondary on the cam. @@ -225,6 +269,7 @@ Note: There can be no missing teeth on the primary wheel void triggerSetup_DualWheel() { triggerToothAngle = 360 / configPage2.triggerTeeth; //The number of degrees that passes from tooth to tooth + if(configPage2.TrigSpeed == 1) { triggerToothAngle = 720 / configPage2.triggerTeeth; } //Account for cam speed missing tooth toothCurrentCount = 255; //Default value triggerFilterTime = (int)(1000000 / (MAX_RPM / 60 * configPage2.triggerTeeth)); //Trigger filter time is the shortest possible time (in uS) that there can be between crank teeth (ie at max RPM). Any pulses that occur faster than this time will be disgarded as noise triggerSecFilterTime = (int)(1000000 / (MAX_RPM / 60 * 2)) / 2; //Same as above, but fixed at 2 teeth on the secondary input and divided by 2 (for cam speed) @@ -259,6 +304,13 @@ void triggerPri_DualWheel() setFilter(curGap); //Recalc the new filter value } + + //EXPERIMENTAL! + if(configPage1.perToothIgn == true) + { + uint16_t crankAngle = ( (toothCurrentCount-1) * triggerToothAngle ) + configPage2.triggerAngle; + doPerToothTiming(crankAngle); + } } //TRigger filter @@ -330,6 +382,29 @@ int getCrankAngle_DualWheel(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_DualWheel() +{ + ignition1EndTooth = ( (ignition1EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition1EndTooth > configPage2.triggerTeeth) { ignition1EndTooth -= configPage2.triggerTeeth; } + if(ignition1EndTooth <= 0) { ignition1EndTooth -= configPage2.triggerTeeth; } + if(ignition1EndTooth > triggerActualTeeth) { ignition1EndTooth = triggerActualTeeth; } + + ignition2EndTooth = ( (ignition2EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition2EndTooth > configPage2.triggerTeeth) { ignition2EndTooth -= configPage2.triggerTeeth; } + if(ignition2EndTooth <= 0) { ignition2EndTooth -= configPage2.triggerTeeth; } + if(ignition2EndTooth > triggerActualTeeth) { ignition2EndTooth = triggerActualTeeth; } + + ignition3EndTooth = ( (ignition3EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition3EndTooth > configPage2.triggerTeeth) { ignition3EndTooth -= configPage2.triggerTeeth; } + if(ignition3EndTooth <= 0) { ignition3EndTooth -= configPage2.triggerTeeth; } + if(ignition3EndTooth > triggerActualTeeth) { ignition3EndTooth = triggerActualTeeth; } + + ignition4EndTooth = ( (ignition4EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition4EndTooth > configPage2.triggerTeeth) { ignition4EndTooth -= configPage2.triggerTeeth; } + if(ignition4EndTooth <= 0) { ignition4EndTooth -= configPage2.triggerTeeth; } + if(ignition4EndTooth > triggerActualTeeth) { ignition4EndTooth = triggerActualTeeth; } +} + /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Basic Distributor @@ -343,8 +418,10 @@ void triggerSetup_BasicDistributor() triggerToothAngle = 720 / triggerActualTeeth; //The number of degrees that passes from tooth to tooth triggerFilterTime = 60000000L / MAX_RPM / configPage1.nCylinders; // Minimum time required between teeth triggerFilterTime = triggerFilterTime / 2; //Safety margin + triggerFilterTime = 0; secondDerivEnabled = false; decoderIsSequential = false; + toothCurrentCount = 0; //Default value if(configPage1.nCylinders <= 4) { MAX_STALL_TIME = (1851UL * triggerToothAngle); }//Minimum 90rpm. (1851uS is the time per degree at 90rpm). This uses 90rpm rather than 50rpm due to the potentially very high stall time on a 4 cylinder if we wait that long. else { MAX_STALL_TIME = (3200UL * triggerToothAngle); } //Minimum 50rpm. (3200uS is the time per degree at 50rpm). @@ -355,7 +432,7 @@ void triggerPri_BasicDistributor() { curTime = micros(); curGap = curTime - toothLastToothTime; - if ( curGap >= triggerFilterTime ) + if ( (curGap >= triggerFilterTime) ) { if( (toothCurrentCount == triggerActualTeeth) || (currentStatus.hasSync == false) ) //Check if we're back to the beginning of a revolution { @@ -381,6 +458,20 @@ void triggerPri_BasicDistributor() endCoil4Charge(); } + if(configPage1.perToothIgn == true) + { + uint16_t crankAngle = ( (toothCurrentCount-1) * triggerToothAngle ) + configPage2.triggerAngle; + if ( (toothCurrentCount == ignition1EndTooth) && (ignitionSchedule1.Status == RUNNING) ) + { + IGN1_COMPARE = IGN1_COUNTER + uS_TO_TIMER_COMPARE( (ignition1EndAngle - crankAngle) * timePerDegree ); + //IGN1_COMPARE = IGN1_COUNTER + uS_TO_TIMER_COMPARE( (ignition1EndAngle - crankAngle)*my_timePerDegree - micros_compensation ); + + } + else if ( (toothCurrentCount == ignition2EndTooth) && (ignitionSchedule2.Status == RUNNING) ) { IGN2_COMPARE = IGN2_COUNTER + uS_TO_TIMER_COMPARE( (ignition2EndAngle - crankAngle) * timePerDegree ); } + else if ( (toothCurrentCount == ignition3EndTooth) && (ignitionSchedule3.Status == RUNNING) ) { IGN3_COMPARE = IGN3_COUNTER + uS_TO_TIMER_COMPARE( (ignition3EndAngle - crankAngle) * timePerDegree ); } + else if ( (toothCurrentCount == ignition4EndTooth) && (ignitionSchedule4.Status == RUNNING) ) { IGN4_COMPARE = IGN4_COUNTER + uS_TO_TIMER_COMPARE( (ignition4EndAngle - crankAngle) * timePerDegree ); } + } + toothLastMinusOneToothTime = toothLastToothTime; toothLastToothTime = curTime; } //Trigger filter @@ -392,7 +483,10 @@ uint16_t getRPM_BasicDistributor() if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) ) { tempRPM = crankingGetRPM(triggerActualTeeth >> 1); } //crankGetRPM uses teeth per 360 degrees. As triggerActualTeeh is total teeth in 720 degrees, we divide the tooth count by 2 else - { tempRPM = stdGetRPM() << 1; } //Multiply RPM by 2 due to tracking over 720 degrees now rather than 360 + { + tempRPM = stdGetRPM() << 1; + revolutionTime = revolutionTime >> 1; //Revolution time has to be divided by 2 as otherwise it would be over 720 degrees (triggerActualTeeth = nCylinders) + } //Multiply RPM by 2 due to tracking over 720 degrees now rather than 360 return tempRPM; @@ -421,6 +515,14 @@ int getCrankAngle_BasicDistributor(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_BasicDistributor() +{ + ignition1EndTooth = ( (ignition1EndAngle - configPage2.triggerAngle) / triggerToothAngle ) - 1; + if(ignition1EndTooth > configPage2.triggerTeeth) { ignition1EndTooth -= configPage2.triggerTeeth; } + if(ignition1EndTooth <= 0) { ignition1EndTooth -= configPage2.triggerTeeth; } + if(ignition1EndTooth > triggerActualTeeth) { ignition1EndTooth = triggerActualTeeth; } +} + /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: GM7X Desc: GM 7X trigger wheel. It has six equally spaced teeth and a seventh tooth for cylinder identification. @@ -512,6 +614,11 @@ int getCrankAngle_GM7X(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_GM7X() +{ + +} + /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Mitsubishi 4G63 / NA/NB Miata + MX-5 / 4/2 @@ -574,7 +681,7 @@ void triggerPri_4G63() { curTime = micros(); curGap = curTime - toothLastToothTime; - if ( curGap >= triggerFilterTime ) + if ( (curGap >= triggerFilterTime) || (currentStatus.startRevolutions == 0) ) { addToothLogEntry(curGap); triggerFilterTime = curGap >> 2; //This only applies during non-sync conditions. If there is sync then triggerFilterTime gets changed again below with a better value. @@ -657,7 +764,7 @@ void triggerSec_4G63() curTime2 = micros(); curGap2 = curTime2 - toothLastSecToothTime; - if ( curGap2 >= triggerSecFilterTime ) + if ( (curGap2 >= triggerSecFilterTime) || (currentStatus.startRevolutions == 0) ) { toothLastSecToothTime = curTime2; @@ -746,6 +853,11 @@ int getCrankAngle_4G63(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_4G63() +{ + +} + /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: GM Desc: TBA @@ -851,6 +963,11 @@ int getCrankAngle_24X(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_24X() +{ + +} + /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Jeep 2000 Desc: For '91 to 2000 6 cylinder Jeep engines @@ -947,7 +1064,12 @@ int getCrankAngle_Jeep2000(int timePerDegree) return crankAngle; } -/* +void triggerSetEndTeeth_Jeep2000() +{ + +} + +/* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Audi 135 Desc: 135 teeth on the crank and 1 tooth on the cam. Note: This is very similar to the dual wheel decoder, however due to the 135 teeth not dividing evenly into 360, only every 3rd crank tooth is used in calculating the crank angle. This effectively makes it a 45 tooth dual wheel setup @@ -1059,6 +1181,11 @@ int getCrankAngle_Audi135(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_Audi135() +{ + +} + /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Honda D17 Desc: @@ -1152,6 +1279,11 @@ int getCrankAngle_HondaD17(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_HondaD17() +{ + +} + /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Miata '99 to '05 Desc: TBA (See: http://forum.diyefi.org/viewtopic.php?f=56&t=1077) @@ -1233,7 +1365,6 @@ void triggerSec_Miata9905() } } - uint16_t getRPM_Miata9905() { //During cranking, RPM is calculated 4 times per revolution, once for each tooth on the crank signal. @@ -1283,6 +1414,11 @@ int getCrankAngle_Miata9905(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_Miata9905() +{ + +} + /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Mazda AU version Desc: @@ -1431,6 +1567,11 @@ int getCrankAngle_MazdaAU(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_MazdaAU() +{ + +} + /* Name: Non-360 Dual wheel Desc: 2 wheels located either both on the crank or with the primary on the crank and the secondary on the cam. @@ -1499,6 +1640,11 @@ int getCrankAngle_non360(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_Non360() +{ + +} + /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Nissan 360 tooth with cam Desc: @@ -1666,8 +1812,13 @@ int getCrankAngle_Nissan360(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_Nissan360() +{ + +} + /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -Name: Nissan 360 tooth with cam +Name: Subary 6/7 Desc: Note: */ @@ -1810,6 +1961,11 @@ int getCrankAngle_Subaru67(int timePerDegree) return crankAngle; } +void triggerSetEndTeeth_Subaru67() +{ + +} + /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Daihatsu +1 trigger for 3 and 4 cylinder engines Desc: Tooth equal to the number of cylinders are evenly spaced on the cam. No position sensing (Distributor is retained) so crank angle is a made up figure based purely on the first teeth to be seen @@ -1966,3 +2122,8 @@ int getCrankAngle_Daihatsu(int timePerDegree) return crankAngle; } + +void triggerSetEndTeeth_Daihatsu() +{ + +} diff --git a/speeduino/globals.h b/speeduino/globals.h index 257ed8d8..98a400ec 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -18,11 +18,16 @@ #define BOARD_NR_GPIO_PINS 78 #define LED_BUILTIN PA7 #endif - + extern "C" char* sbrk(int incr); //Used to freeRam inline unsigned char digitalPinToInterrupt(unsigned char Interrupt_pin) { return Interrupt_pin; } //This isn't included in the stm32duino libs (yet) - #define portOutputRegister(port) (volatile byte *)( &(port->ODR) ) - #define portInputRegister(port) (volatile byte *)( &(port->IDR) ) + #if defined(ARDUINO_ARCH_STM32) + #define portOutputRegister(port) (volatile byte *)( &(port->ODR) ) + #define portInputRegister(port) (volatile byte *)( &(port->IDR) ) + #else + #define portOutputRegister(port) (volatile byte *)( &(port->regs->ODR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value + #define portInputRegister(port) (volatile byte *)( &(port->regs->IDR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value + #endif #else #error Incorrect board selected. Please select the correct board (Usually Mega 2560) and upload again #endif @@ -74,6 +79,12 @@ #define BIT_SPARK2_UNUSED7 6 #define BIT_SPARK2_UNUSED8 7 +#define BIT_TIMER_1HZ 0 +#define BIT_TIMER_4HZ 1 +#define BIT_TIMER_10HZ 2 +#define BIT_TIMER_15HZ 3 +#define BIT_TIMER_30HZ 4 + #define VALID_MAP_MAX 1022 //The largest ADC value that is valid for the MAP sensor #define VALID_MAP_MIN 2 //The smallest ADC value that is valid for the MAP sensor @@ -106,16 +117,19 @@ #define SERIAL_BUFFER_THRESHOLD 32 // When the serial buffer is filled to greater than this threshold value, the serial processing operations will be performed more urgently in order to avoid it overflowing. Serial buffer is 64 bytes long, so the threshold is set at half this as a reasonable figure +#define FUEL_PUMP_ON() *pump_pin_port |= (pump_pin_mask) +#define FUEL_PUMP_OFF() *tach_pin_port &= ~(tach_pin_mask) + const byte signature = 20; //const char signature[] = "speeduino"; -const char displaySignature[] = "Speeduino 2017"; -const char TSfirmwareVersion[] = "07-dev"; +const char displaySignature[] = "speeduino 201609-dev"; +const char TSfirmwareVersion[] = "Speeduino 2016.09"; const byte data_structure_version = 2; //This identifies the data structure when reading / writing. const byte page_size = 64; -const int npage_size[11] = {0,288,64,288,64,288,64,64,160,192,128}; -//const byte page10_size = 128; +const int npage_size[12] = {0,288,64,288,64,288,64,64,160,192,128,192}; +//const byte page11_size = 128; #define MAP_PAGE_SIZE 288 struct table3D fuelTable; //16x16 fuel map @@ -129,6 +143,7 @@ struct table3D trim3Table; //6x6 Fuel trim 3 map struct table3D trim4Table; //6x6 Fuel trim 4 map struct table2D taeTable; //4 bin TPS Acceleration Enrichment map (2D) struct table2D WUETable; //10 bin Warm Up Enrichment map (2D) +struct table2D crankingEnrichTable; //4 bin cranking Enrichment map (2D) struct table2D dwellVCorrectionTable; //6 bin dwell voltage correction (2D) struct table2D injectorVCorrectionTable; //6 bin injector voltage correction (2D) struct table2D IATDensityCorrectionTable; //9 bin inlet air temperature density correction (2D) @@ -159,6 +174,8 @@ volatile byte ign5_pin_mask; volatile byte *tach_pin_port; volatile byte tach_pin_mask; +volatile byte *pump_pin_port; +volatile byte pump_pin_mask; volatile byte *triggerPri_pin_port; volatile byte triggerPri_pin_mask; @@ -172,9 +189,17 @@ bool channel3InjEnabled = false; bool channel4InjEnabled = false; bool channel5InjEnabled = false; +int ignition1EndAngle = 0; +int ignition2EndAngle = 0; +int ignition3EndAngle = 0; +int ignition4EndAngle = 0; + //This is used across multiple files unsigned long revolutionTime; //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) +volatile byte TIMER_mask; +volatile byte LOOP_TIMER; + //The status struct contains the current values for all 'live' variables //In current version this is 64 bytes struct statuses { @@ -182,8 +207,9 @@ struct statuses { uint16_t RPM; long longRPM; int mapADC; + int baroADC; long MAP; //Has to be a long for PID calcs (Boost control) - byte baro; //Barometric pressure is simply the inital MAP reading, taken before the engine is running + byte baro; //Barometric pressure is simply the inital MAP reading, taken before the engine is running. Alternatively, can be taken from an external sensor byte TPS; //The current TPS reading (0% - 100%) byte TPSlast; //The previous TPS reading unsigned long TPS_time; //The time the TPS sample was taken @@ -232,7 +258,7 @@ struct statuses { volatile unsigned int loopsPerSecond; boolean launchingSoft; //True when in launch control soft limit mode boolean launchingHard; //True when in launch control hard limit mode - unsigned int freeRAM; + uint16_t freeRAM; unsigned int clutchEngagedRPM; bool flatShiftingHard; volatile byte startRevolutions; //A counter for how many revolutions have been completed since sync was achieved. @@ -241,7 +267,7 @@ struct statuses { bool testActive; byte boostDuty; byte idleLoad; //Either the current steps or current duty cycle for the idle control. - int canin[9]; //16bit raw value of selected canin data for channel 1-8 + uint16_t canin[16]; //16bit raw value of selected canin data for channel 0-15 uint8_t current_caninchannel = 0; //start off at channel 0 //Helpful bitwise operations: @@ -314,7 +340,7 @@ struct config1 { byte algorithm : 1; //"Speed Density", "Alpha-N" byte baroCorr : 1; byte injLayout : 2; - byte unused2_38g : 1; + byte perToothIgn : 1; byte unused2_38h : 1; byte primePulse; @@ -325,7 +351,7 @@ struct config1 { byte boostMaxDuty; byte tpsMin; byte tpsMax; - byte mapMin; + int8_t mapMin; //Must be signed uint16_t mapMax; byte fpPrime; //Time (In seconds) that the fuel pump should be primed for on power up byte stoich; @@ -433,7 +459,8 @@ struct config3 { byte egoRPM; //RPM must be above this for closed loop to function byte egoTPSMax; //TPS must be below this for closed loop to function byte vvtPin : 6; - byte unused6_13 : 2; + byte useExtBaro : 1; + byte unused6_13f : 1; byte boostPin : 6; byte unused6_14 : 2; byte voltageCorrectionBins[6]; //X axis bins for voltage correction tables @@ -466,7 +493,7 @@ struct config3 { byte lnchPullRes : 2; byte fuelTrimEnabled : 1; byte flatSEnable : 1; - byte unused60 : 4; + byte baroPin : 4; byte flatSSoftWin; byte flatSRetard; byte flatSArm; @@ -517,45 +544,18 @@ struct config4 { struct config10 { byte enable_canbus:2; byte enable_candata_in:1; - byte caninput_sel[8]; - uint16_t caninput_param_group[8]; - uint8_t caninput_param_start_byte[8]; - byte caninput_param_num_bytes[8]; - byte unused10_41; - byte unused10_42; - byte unused10_43; - byte unused10_44; - byte unused10_45; - byte unused10_46; - byte unused10_47; - byte unused10_48; - byte unused10_49; + uint16_t caninput_sel; //bit status on/off if input is enabled + uint16_t caninput_param_group[16]; //u16 [15] array holding can address of input + uint8_t caninput_param_start_byte[16]; //u08 [15] array holds the start byte number(value of 0-7) + uint16_t caninput_param_num_bytes; //u16 bit status of the number of bytes length 1 or 2 + byte unused10_53; + byte unused10_54; byte enable_candata_out : 1; byte canoutput_sel[8]; uint16_t canoutput_param_group[8]; uint8_t canoutput_param_start_byte[8]; byte canoutput_param_num_bytes[8]; - byte unused10_76; - byte unused10_77; - byte unused10_78; - byte unused10_79; - byte unused10_80; - byte unused10_81; - byte unused10_82; - byte unused10_83; - byte unused10_84; - byte unused10_85; - byte unused10_86; - byte unused10_87; - byte unused10_88; - byte unused10_89; - byte unused10_90; - byte unused10_91; - byte unused10_92; - byte unused10_93; - byte unused10_94; - byte unused10_95; - byte unused10_96; + byte unused10_97; byte unused10_98; byte unused10_99; @@ -590,6 +590,64 @@ struct config10 { } __attribute__((__packed__)); //The 32 bit systems require all structs to be fully packed #endif +/* +Page 11 - No specific purpose. Created initially for the cranking enrich curve +192 bytes long +See ini file for further info (Config Page 11 in the ini) +*/ +struct config11 { + byte crankingEnrichBins[4]; + byte crankingEnrichValues[4]; + byte unused11_8; + byte unused11_9; + byte unused11_10; + byte unused11_11; + byte unused11_12; + byte unused11_13; + byte unused11_14; + byte unused11_15; + byte unused11_16; + byte unused11_17; + byte unused11_18; + byte unused11_19; + byte unused11_20; + byte unused10_21; + byte unused11_22; + byte unused11_23; + byte unused11_24; + byte unused11_25; + byte unused11_26; + byte unused11_27; + byte unused11_28; + byte unused11_29; + byte unused11_107; + byte unused11_108; + byte unused11_109; + byte unused11_110; + byte unused11_111; + byte unused11_112; + byte unused11_113; + byte unused11_114; + byte unused11_115; + byte unused11_116; + byte unused11_117; + byte unused11_118; + byte unused11_119; + byte unused11_120; + byte unused11_121; + byte unused11_122; + byte unused11_123; + byte unused11_124; + byte unused11_125; + byte unused11_126; + byte unused11_127; + byte unused11_128_192[64]; +#if defined(CORE_AVR) + }; +#else + } __attribute__((__packed__)); //The 32 bit systems require all structs to be fully packed +#endif + byte pinInjector1; //Output pin injector 1 byte pinInjector2; //Output pin injector 2 @@ -648,6 +706,7 @@ byte pinStepperEnable; //Turning the DRV8825 driver on/off byte pinLaunch; byte pinIgnBypass; //The pin used for an ignition bypass (Optional) byte pinFlex; //Pin with the flex sensor attached +byte pinBaro; //Pin that an external barometric pressure sensor is attached to (If used) // global variables // from speeduino.ino extern struct statuses currentStatus; // from speeduino.ino @@ -656,10 +715,12 @@ extern struct table3D ignitionTable; //16x16 ignition map extern struct table3D afrTable; //16x16 afr target map extern struct table2D taeTable; //4 bin TPS Acceleration Enrichment map (2D) extern struct table2D WUETable; //10 bin Warm Up Enrichment map (2D) +extern struct table2D crankingEnrichTable; //4 bin cranking Enrichment map (2D) extern struct config1 configPage1; extern struct config2 configPage2; extern struct config3 configPage3; extern struct config10 configPage10; +extern struct config11 configPage11; extern unsigned long currentLoopTime; //The time the current loop started (uS) extern unsigned long previousLoopTime; //The time the previous loop started (uS) extern byte ignitionCount; diff --git a/speeduino/maths.h b/speeduino/maths.h index dee4e611..55e154b9 100644 --- a/speeduino/maths.h +++ b/speeduino/maths.h @@ -1,7 +1,7 @@ #ifndef MATH_H #define MATH_H -int fastResize(int, int); +int fastMap1023toX(int, int); unsigned long percentage(byte, unsigned long); -#endif +#endif diff --git a/speeduino/maths.ino b/speeduino/maths.ino index be1716b1..6a1033ec 100644 --- a/speeduino/maths.ino +++ b/speeduino/maths.ino @@ -18,11 +18,10 @@ int fastMap(unsigned long x, int in_min, int in_max, int out_min, int out_max) //This is a common case because it means converting from a standard 10-bit analog input to a byte or 10-bit analog into 0-511 (Eg the temperature readings) //int fastMap1023toX(unsigned long x, int in_min, int in_max, int out_min, int out_max) //removed ununsed variables, in_min and out_min is aways 0, in_max is aways 1023 -#if defined(CORE_STM32) - #define fastResize(x, out_max) ( ((unsigned long)x * out_max) >> 12) -#else - #define fastResize(x, out_max) ( ((unsigned long)x * out_max) >> 10) -#endif +#define fastMap1023toX(x, out_max) ( ((unsigned long)x * out_max) >> 10) +//This is a new version that allows for out_min +#define fastMap10Bit(x, out_min, out_max) ( ( ((unsigned long)x * (out_max-out_min)) >> 10 ) + out_min) + /* The following are all fast versions of specific divisions Ref: http://www.hackersdelight.org/divcMore.pdf @@ -74,17 +73,14 @@ int divs100(long n) //Unsigned divide by 100 unsigned long divu100(unsigned long n) { - #if defined(CORE_STM32) - return (n / 100); // No difference with this on/off - #else - unsigned long q, r; - q = (n >> 1) + (n >> 3) + (n >> 6) - (n >> 10) + - (n >> 12) + (n >> 13) - (n >> 16); - q = q + (q >> 20); - q = q >> 6; - r = n - q*100; - return q + ((r + 28) >> 7); - #endif + //return (n / 100); + unsigned long q, r; + q = (n >> 1) + (n >> 3) + (n >> 6) - (n >> 10) + + (n >> 12) + (n >> 13) - (n >> 16); + q = q + (q >> 20); + q = q >> 6; + r = n - (q * 100); + return q + ((r + 28) >> 7); } //Return x percent of y @@ -104,4 +100,4 @@ inline long powint(int factor, unsigned int exponent) unsigned int counter = exponent; while ( (counter--) > 0) { product *= factor; } return product; -} +} diff --git a/speeduino/scheduler.h b/speeduino/scheduler.h index b8a67720..41f7d563 100644 --- a/speeduino/scheduler.h +++ b/speeduino/scheduler.h @@ -26,7 +26,7 @@ See page 136 of the processors datasheet: http://www.atmel.com/Images/doc2549.pd #define SCHEDULER_H -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) +#if defined(CORE_AVR) #include #include @@ -35,6 +35,7 @@ See page 136 of the processors datasheet: http://www.atmel.com/Images/doc2549.pd #define FUEL2_COUNTER TCNT3 #define FUEL3_COUNTER TCNT3 #define FUEL4_COUNTER TCNT4 + #define FUEL5_COUNTER TCNT3 #define IGN1_COUNTER TCNT5 #define IGN2_COUNTER TCNT5 @@ -46,6 +47,7 @@ See page 136 of the processors datasheet: http://www.atmel.com/Images/doc2549.pd #define FUEL2_COMPARE OCR3B #define FUEL3_COMPARE OCR3C #define FUEL4_COMPARE OCR4B + #define FUEL5_COMPARE OCR3A //Shared with FUEL1 #define IGN1_COMPARE OCR5A #define IGN2_COMPARE OCR5B @@ -160,58 +162,59 @@ See page 136 of the processors datasheet: http://www.atmel.com/Images/doc2549.pd #define uS_TO_TIMER_COMPARE_SLOW(uS) ((uS * 15) >> 5) #elif defined(CORE_STM32) + #include "HardwareTimer.h" //Placeholders ONLY! - + //https://visualgdb.com/tutorials/arm/stm32/timers/hal/ //https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/master/STM32F4/cores/maple/libmaple/timer.h#L51 #define MAX_TIMER_PERIOD 131070 //The longest period of time (in uS) that the timer can permit (IN this case it is 65535 * 2, as each timer tick is 2uS) #define uS_TO_TIMER_COMPARE(uS) (uS >> 1) //Converts a given number of uS into the required number of timer ticks until that time has passed. #define uS_TO_TIMER_COMPARE_SLOW(uS) (uS >> 1) //Converts a given number of uS into the required number of timer ticks until that time has passed. - #define FUEL1_COUNTER (TIMER2->regs).gen->CNT - #define FUEL2_COUNTER (TIMER2->regs).gen->CNT - #define FUEL3_COUNTER (TIMER2->regs).gen->CNT - #define FUEL4_COUNTER (TIMER2->regs).gen->CNT + #define FUEL1_COUNTER (TIM2)->CNT + #define FUEL2_COUNTER (TIM2)->CNT + #define FUEL3_COUNTER (TIM2)->CNT + #define FUEL4_COUNTER (TIM2)->CNT + #define FUEL5_COUNTER (TIM2)->CNT - #define IGN1_COUNTER (TIMER3->regs).gen->CNT - #define IGN2_COUNTER (TIMER3->regs).gen->CNT - #define IGN3_COUNTER (TIMER3->regs).gen->CNT - #define IGN4_COUNTER (TIMER3->regs).gen->CNT - #define IGN5_COUNTER (TIMER1->regs).gen->CNT + #define IGN1_COUNTER (TIM3)->CNT + #define IGN2_COUNTER (TIM3)->CNT + #define IGN3_COUNTER (TIM3)->CNT + #define IGN4_COUNTER (TIM3)->CNT + #define IGN5_COUNTER (TIM3)->CNT - #define FUEL1_COMPARE (TIMER2->regs).gen->CCR1 - #define FUEL2_COMPARE (TIMER2->regs).gen->CCR2 - #define FUEL3_COMPARE (TIMER2->regs).gen->CCR3 - #define FUEL4_COMPARE (TIMER2->regs).gen->CCR4 + #define FUEL1_COMPARE (TIM2)->CCR1 + #define FUEL2_COMPARE (TIM2)->CCR2 + #define FUEL3_COMPARE (TIM2)->CCR3 + #define FUEL4_COMPARE (TIM2)->CCR4 - #define IGN1_COMPARE (TIMER3->regs).gen->CCR1 - #define IGN2_COMPARE (TIMER3->regs).gen->CCR2 - #define IGN3_COMPARE (TIMER3->regs).gen->CCR3 - #define IGN4_COMPARE (TIMER3->regs).gen->CCR4 - #define IGN5_COMPARE (TIMER1->regs).gen->CCR1 + #define IGN1_COMPARE (TIM3)->CCR1 + #define IGN2_COMPARE (TIM3)->CCR2 + #define IGN3_COMPARE (TIM3)->CCR3 + #define IGN4_COMPARE (TIM3)->CCR4 + #define IGN5_COMPARE (TIM3)->CCR1 //https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 - #define FUEL1_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC1E - #define FUEL2_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC2E - #define FUEL3_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC3E - #define FUEL4_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC4E + #define FUEL1_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC1E + #define FUEL2_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC2E + #define FUEL3_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC3E + #define FUEL4_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC4E - #define IGN1_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC1E - #define IGN2_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC2E - #define IGN3_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC3E - #define IGN4_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC4E - #define IGN5_TIMER_ENABLE() (TIMER1->regs).gen->CCER |= TIMER_CCER_CC1E + #define IGN1_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC1E + #define IGN2_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC2E + #define IGN3_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC3E + #define IGN4_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC4E + #define IGN5_TIMER_ENABLE() (TIM1)->CCER |= TIM_CCER_CC1E - #define FUEL1_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC1E - #define FUEL2_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC2E - #define FUEL3_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC3E - #define FUEL4_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC4E - - #define IGN1_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC1E - #define IGN2_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC2E - #define IGN3_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC3E - #define IGN4_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC4E - #define IGN5_TIMER_DISABLE() (TIMER1->regs).gen->CCER &= ~TIMER_CCER_CC1E + #define FUEL1_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC1E + #define FUEL2_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC2E + #define FUEL3_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC3E + #define FUEL4_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC4E + #define IGN1_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC1E + #define IGN2_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC2E + #define IGN3_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC3E + #define IGN4_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC4E + #define IGN5_TIMER_DISABLE() (TIM1)->CCER &= ~TIM_CCER_CC1E #endif void initialiseSchedulers(); @@ -255,8 +258,12 @@ struct Schedule { void (*StartCallback)(); //Start Callback function for schedule void (*EndCallback)(); //Start Callback function for schedule volatile unsigned long startTime; //The system time (in uS) that the schedule started - unsigned int startCompare; //The counter value of the timer when this will start - unsigned int endCompare; + volatile unsigned int startCompare; //The counter value of the timer when this will start + volatile unsigned int endCompare; + + unsigned int nextStartCompare; + unsigned int nextEndCompare; + volatile bool hasNextSchedule = false; }; volatile Schedule *timer3Aqueue[4]; @@ -345,8 +352,11 @@ static inline unsigned int popQueue(volatile Schedule *queue[]) queue[2] = queue[3]; queue[3] = &nullSchedule; - if( queue[0]->Status == PENDING ) { return queue[0]->startCompare; } - else { return queue[0]->endCompare; } + unsigned int returnCompare; + if( queue[0]->Status == PENDING ) { returnCompare = queue[0]->startCompare; } + else { returnCompare = queue[0]->endCompare; } + + return returnCompare; } diff --git a/speeduino/scheduler.ino b/speeduino/scheduler.ino index 878869a4..5919e2de 100644 --- a/speeduino/scheduler.ino +++ b/speeduino/scheduler.ino @@ -87,9 +87,10 @@ void initialiseSchedulers() FTM1_SC |= FTM_SC_PS(0b111); //Setup the channels (See Pg 1014 of K64 DS). - //FTM0_C0SC &= ~FTM_CSC_ELSB; //Probably not needed as power on state should be 0 - //FTM0_C0SC &= ~FTM_CSC_ELSA; //Probably not needed as power on state should be 0 - //FTM0_C0SC &= ~FTM_CSC_DMA; //Probably not needed as power on state should be 0 + //The are probably not needed as power on state should be 0 + //FTM0_C0SC &= ~FTM_CSC_ELSB; + //FTM0_C0SC &= ~FTM_CSC_ELSA; + //FTM0_C0SC &= ~FTM_CSC_DMA; FTM0_C0SC &= ~FTM_CSC_MSB; //According to Pg 965 of the K64 datasheet, this should not be needed as MSB is reset to 0 upon reset, but the channel interrupt fails to fire without it FTM0_C0SC |= FTM_CSC_MSA; //Enable Compare mode FTM0_C0SC |= FTM_CSC_CHIE; //Enable channel compare interrupt @@ -161,19 +162,20 @@ void initialiseSchedulers() #elif defined(CORE_STM32) //see https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 - (TIMER1->regs).bas->PSC = (TIMER2->regs).bas->PSC = (TIMER3->regs).bas->PSC = (CYCLES_PER_MICROSECOND << 1) - 1; //2us resolution - //TimerX.setPrescaleFactor(CYCLES_PER_MICROSECOND * 2U); //2us resolution + Timer1.setPrescaleFactor(((Timer1.getBaseFrequency() / 1000000) << 1) -1); //2us resolution + Timer2.setPrescaleFactor(((Timer2.getBaseFrequency() / 1000000) << 1) -1); //2us resolution + Timer3.setPrescaleFactor(((Timer3.getBaseFrequency() / 1000000) << 1) -1); //2us resolution - Timer2.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); - Timer2.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE); - Timer2.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE); - Timer2.setMode(TIMER_CH4, TIMER_OUTPUT_COMPARE); + Timer2.setMode(1, TIMER_OUTPUT_COMPARE); + Timer2.setMode(2, TIMER_OUTPUT_COMPARE); + Timer2.setMode(3, TIMER_OUTPUT_COMPARE); + Timer2.setMode(4, TIMER_OUTPUT_COMPARE); - Timer3.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); - Timer3.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE); - Timer3.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE); - Timer3.setMode(TIMER_CH4, TIMER_OUTPUT_COMPARE); - Timer1.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); + Timer3.setMode(1, TIMER_OUTPUT_COMPARE); + Timer3.setMode(2, TIMER_OUTPUT_COMPARE); + Timer3.setMode(3, TIMER_OUTPUT_COMPARE); + Timer3.setMode(4, TIMER_OUTPUT_COMPARE); + Timer1.setMode(1, TIMER_OUTPUT_COMPARE); Timer2.attachInterrupt(1, fuelSchedule1Interrupt); Timer2.attachInterrupt(2, fuelSchedule2Interrupt); @@ -186,6 +188,9 @@ void initialiseSchedulers() Timer3.attachInterrupt(4, ignitionSchedule4Interrupt); Timer1.attachInterrupt(1, ignitionSchedule5Interrupt); + Timer1.resume(); + Timer2.resume(); + Timer3.resume(); #endif fuelSchedule1.Status = OFF; @@ -223,68 +228,78 @@ timeout: The number of uS in the future that the startCallback should be trigger duration: The number of uS after startCallback is called before endCallback is called endCallback: This function is called once the duration time has been reached */ -void setFuelSchedule1(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) +//void setFuelSchedule1(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) +void setFuelSchedule1(unsigned long timeout, unsigned long duration) +{ + if(fuelSchedule1.Status != RUNNING) //Check that we're not already part way through a schedule { - if(fuelSchedule1.Status == RUNNING) { return; } //Check that we're not already part way through a schedule - - fuelSchedule1.StartCallback = startCallback; //Name the start callback function - fuelSchedule1.EndCallback = endCallback; //Name the end callback function + //Callbacks no longer used, but retained for now: + //fuelSchedule1.StartCallback = startCallback; + //fuelSchedule1.EndCallback = endCallback; fuelSchedule1.duration = duration; - /* - * The following must be enclosed in the noInterupts block to avoid contention caused if the relevant interrupts fires before the state is fully set - * We need to calculate the value to reset the timer to (preload) in order to achieve the desired overflow time - * As the timer is ticking every 16uS (Time per Tick = (Prescale)*(1/Frequency)) - * unsigned int absoluteTimeout = TCNT3 + (timeout / 16); //Each tick occurs every 16uS with the 256 prescaler, so divide the timeout by 16 to get ther required number of ticks. Add this to the current tick count to get the target time. This will automatically overflow as required - */ - noInterrupts(); - fuelSchedule1.startCompare = FUEL1_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); - fuelSchedule1.endCompare = fuelSchedule1.startCompare + uS_TO_TIMER_COMPARE_SLOW(duration); - fuelSchedule1.Status = PENDING; //Turn this schedule on - fuelSchedule1.schedulesSet++; //Increment the number of times this schedule has been set - /*if(channel5InjEnabled) { FUEL1_COMPARE = setQueue(timer3Aqueue, &fuelSchedule1, &fuelSchedule5, FUEL1_COUNTER); } //Schedule 1 shares a timer with schedule 5 - else { timer3Aqueue[0] = &fuelSchedule1; timer3Aqueue[1] = &fuelSchedule1; timer3Aqueue[2] = &fuelSchedule1; timer3Aqueue[3] = &fuelSchedule1; FUEL1_COMPARE = fuelSchedule1.startCompare; }*/ - timer3Aqueue[0] = &fuelSchedule1; timer3Aqueue[1] = &fuelSchedule1; timer3Aqueue[2] = &fuelSchedule1; timer3Aqueue[3] = &fuelSchedule1; FUEL1_COMPARE = fuelSchedule1.startCompare; - interrupts(); - FUEL1_TIMER_ENABLE(); + //The following must be enclosed in the noInterupts block to avoid contention caused if the relevant interrupt fires before the state is fully set + noInterrupts(); + fuelSchedule1.startCompare = FUEL1_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); + fuelSchedule1.endCompare = fuelSchedule1.startCompare + uS_TO_TIMER_COMPARE_SLOW(duration); + fuelSchedule1.Status = PENDING; //Turn this schedule on + fuelSchedule1.schedulesSet++; //Increment the number of times this schedule has been set + //Schedule 1 shares a timer with schedule 5 + //if(channel5InjEnabled) { FUEL1_COMPARE = setQueue(timer3Aqueue, &fuelSchedule1, &fuelSchedule5, FUEL1_COUNTER); } + //else { timer3Aqueue[0] = &fuelSchedule1; timer3Aqueue[1] = &fuelSchedule1; timer3Aqueue[2] = &fuelSchedule1; timer3Aqueue[3] = &fuelSchedule1; FUEL1_COMPARE = fuelSchedule1.startCompare; } + //timer3Aqueue[0] = &fuelSchedule1; timer3Aqueue[1] = &fuelSchedule1; timer3Aqueue[2] = &fuelSchedule1; timer3Aqueue[3] = &fuelSchedule1; + FUEL1_COMPARE = fuelSchedule1.startCompare; + interrupts(); + FUEL1_TIMER_ENABLE(); } -void setFuelSchedule2(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) + else { - if(fuelSchedule2.Status == RUNNING) { return; } //Check that we're not already part way through a schedule - - fuelSchedule2.StartCallback = startCallback; //Name the start callback function - fuelSchedule2.EndCallback = endCallback; //Name the end callback function + //If the schedule is already running, we can set the next schedule so it is ready to go + //This is required in cases of high rpm and high DC where there otherwise would not be enough time to set the schedule + fuelSchedule1.nextStartCompare = FUEL1_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); + fuelSchedule1.nextEndCompare = fuelSchedule1.nextStartCompare + uS_TO_TIMER_COMPARE_SLOW(duration); + fuelSchedule1.hasNextSchedule = true; + } +} +void setFuelSchedule2(unsigned long timeout, unsigned long duration) +{ + if(fuelSchedule2.Status != RUNNING) //Check that we're not already part way through a schedule + { + //Callbacks no longer used, but retained for now: + //fuelSchedule2.StartCallback = startCallback; + //fuelSchedule2.EndCallback = endCallback; fuelSchedule2.duration = duration; - /* - * The following must be enclosed in the noIntterupts block to avoid contention caused if the relevant interrupts fires before the state is fully set - * We need to calculate the value to reset the timer to (preload) in order to achieve the desired overflow time - * As the timer is ticking every 16uS (Time per Tick = (Prescale)*(1/Frequency)) - * unsigned int absoluteTimeout = TCNT3 + (timeout / 16); //Each tick occurs every 16uS with the 256 prescaler, so divide the timeout by 16 to get ther required number of ticks. Add this to the current tick count to get the target time. This will automatically overflow as required - */ - noInterrupts(); - fuelSchedule2.startCompare = FUEL2_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); - fuelSchedule2.endCompare = fuelSchedule2.startCompare + uS_TO_TIMER_COMPARE_SLOW(duration); - FUEL2_COMPARE = fuelSchedule2.startCompare; //Use the B copmare unit of timer 3 - fuelSchedule2.Status = PENDING; //Turn this schedule on - fuelSchedule2.schedulesSet++; //Increment the number of times this schedule has been set - interrupts(); - FUEL2_TIMER_ENABLE(); + //The following must be enclosed in the noInterupts block to avoid contention caused if the relevant interrupt fires before the state is fully set + noInterrupts(); + fuelSchedule2.startCompare = FUEL2_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); + fuelSchedule2.endCompare = fuelSchedule2.startCompare + uS_TO_TIMER_COMPARE_SLOW(duration); + FUEL2_COMPARE = fuelSchedule2.startCompare; //Use the B compare unit of timer 3 + fuelSchedule2.Status = PENDING; //Turn this schedule on + fuelSchedule2.schedulesSet++; //Increment the number of times this schedule has been set + interrupts(); + FUEL2_TIMER_ENABLE(); } -void setFuelSchedule3(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) + else { - if(fuelSchedule3.Status == RUNNING) { return; } //Check that we're not already part way through a schedule - - fuelSchedule3.StartCallback = startCallback; //Name the start callback function - fuelSchedule3.EndCallback = endCallback; //Name the end callback function + //If the schedule is already running, we can set the next schedule so it is ready to go + //This is required in cases of high rpm and high DC where there otherwise would not be enough time to set the schedule + fuelSchedule2.nextStartCompare = FUEL2_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); + fuelSchedule2.nextEndCompare = fuelSchedule2.nextStartCompare + uS_TO_TIMER_COMPARE_SLOW(duration); + fuelSchedule2.hasNextSchedule = true; + } +} +//void setFuelSchedule3(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) +void setFuelSchedule3(unsigned long timeout, unsigned long duration) +{ + if(fuelSchedule3.Status != RUNNING)//Check that we're not already part way through a schedule + { + //Callbacks no longer used, but retained for now: + //fuelSchedule3.StartCallback = startCallback; + //fuelSchedule3.EndCallback = endCallback; fuelSchedule3.duration = duration; - /* - * The following must be enclosed in the noIntterupts block to avoid contention caused if the relevant interrupts fires before the state is fully set - * We need to calculate the value to reset the timer to (preload) in order to achieve the desired overflow time - * As the timer is ticking every 16uS (Time per Tick = (Prescale)*(1/Frequency)) - * unsigned int absoluteTimeout = TCNT3 + (timeout / 16); //Each tick occurs every 16uS with the 256 prescaler, so divide the timeout by 16 to get ther required number of ticks. Add this to the current tick count to get the target time. This will automatically overflow as required - */ + //The following must be enclosed in the noInterupts block to avoid contention caused if the relevant interrupt fires before the state is fully set noInterrupts(); fuelSchedule3.startCompare = FUEL3_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); fuelSchedule3.endCompare = fuelSchedule3.startCompare + uS_TO_TIMER_COMPARE_SLOW(duration); @@ -294,20 +309,26 @@ void setFuelSchedule3(void (*startCallback)(), unsigned long timeout, unsigned l interrupts(); FUEL3_TIMER_ENABLE(); } -void setFuelSchedule4(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) //Uses timer 4 compare B + else { - if(fuelSchedule4.Status == RUNNING) { return; } //Check that we're not already part way through a schedule - - fuelSchedule4.StartCallback = startCallback; //Name the start callback function - fuelSchedule4.EndCallback = endCallback; //Name the end callback function + //If the schedule is already running, we can set the next schedule so it is ready to go + //This is required in cases of high rpm and high DC where there otherwise would not be enough time to set the schedule + fuelSchedule3.nextStartCompare = FUEL3_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); + fuelSchedule3.nextEndCompare = fuelSchedule3.nextStartCompare + uS_TO_TIMER_COMPARE_SLOW(duration); + fuelSchedule3.hasNextSchedule = true; + } +} +//void setFuelSchedule4(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) +void setFuelSchedule4(unsigned long timeout, unsigned long duration) //Uses timer 4 compare B +{ + if(fuelSchedule4.Status != RUNNING) //Check that we're not already part way through a schedule + { + //Callbacks no longer used, but retained for now: + //fuelSchedule4.StartCallback = startCallback; + //fuelSchedule4.EndCallback = endCallback; fuelSchedule4.duration = duration; - /* - * The following must be enclosed in the noIntterupts block to avoid contention caused if the relevant interrupts fires before the state is fully set - * We need to calculate the value to reset the timer to (preload) in order to achieve the desired overflow time - * As the timer is ticking every 16uS (Time per Tick = (Prescale)*(1/Frequency)) - * unsigned int absoluteTimeout = TCNT3 + (timeout / 16); //Each tick occurs every 16uS with the 256 prescaler, so divide the timeout by 16 to get ther required number of ticks. Add this to the current tick count to get the target time. This will automatically overflow as required - */ + //The following must be enclosed in the noInterupts block to avoid contention caused if the relevant interrupt fires before the state is fully set noInterrupts(); fuelSchedule4.startCompare = FUEL4_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); fuelSchedule4.endCompare = fuelSchedule4.startCompare + uS_TO_TIMER_COMPARE_SLOW(duration); @@ -317,45 +338,62 @@ void setFuelSchedule4(void (*startCallback)(), unsigned long timeout, unsigned l interrupts(); FUEL4_TIMER_ENABLE(); } + else + { + //If the schedule is already running, we can set the next schedule so it is ready to go + //This is required in cases of high rpm and high DC where there otherwise would not be enough time to set the schedule + fuelSchedule4.nextStartCompare = FUEL4_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); + fuelSchedule4.nextEndCompare = fuelSchedule4.nextStartCompare + uS_TO_TIMER_COMPARE_SLOW(duration); + fuelSchedule4.hasNextSchedule = true; + } +} void setFuelSchedule5(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) { - if(fuelSchedule5.Status == RUNNING) { return; } //Check that we're not already part way through a schedule + if(fuelSchedule5.Status != RUNNING) //Check that we're not already part way through a schedule + { + fuelSchedule5.StartCallback = startCallback; //Name the start callback function + fuelSchedule5.EndCallback = endCallback; //Name the end callback function + fuelSchedule5.duration = duration; - //We need to calculate the value to reset the timer to (preload) in order to achieve the desired overflow time - //As the timer is ticking every 16uS (Time per Tick = (Prescale)*(1/Frequency)) - //unsigned int absoluteTimeout = TCNT3 + (timeout / 16); //Each tick occurs every 16uS with the 256 prescaler, so divide the timeout by 16 to get ther required number of ticks. Add this to the current tick count to get the target time. This will automatically overflow as required - fuelSchedule5.StartCallback = startCallback; //Name the start callback function - fuelSchedule5.EndCallback = endCallback; //Name the end callback function - fuelSchedule5.duration = duration; - - /* - * The following must be enclosed in the noIntterupts block to avoid contention caused if the relevant interrupts fires before the state is fully set - */ -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) - noInterrupts(); - fuelSchedule5.startCompare = TCNT3 + (timeout >> 4); //As above, but with bit shift instead of / 16 - fuelSchedule5.endCompare = fuelSchedule5.startCompare + (duration >> 4); - fuelSchedule5.Status = PENDING; //Turn this schedule on - fuelSchedule5.schedulesSet++; //Increment the number of times this schedule has been set - OCR3A = setQueue(timer3Aqueue, &fuelSchedule1, &fuelSchedule5, TCNT3); //Schedule 1 shares a timer with schedule 5 - interrupts(); - TIMSK3 |= (1 << OCIE3A); //Turn on the A compare unit (ie turn on the interrupt) -#endif + /* + * The following must be enclosed in the noIntterupts block to avoid contention caused if the relevant interrupts fires before the state is fully set + */ + #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) + noInterrupts(); + fuelSchedule5.startCompare = TCNT3 + (timeout >> 4); //As above, but with bit shift instead of / 16 + fuelSchedule5.endCompare = fuelSchedule5.startCompare + (duration >> 4); + fuelSchedule5.Status = PENDING; //Turn this schedule on + fuelSchedule5.schedulesSet++; //Increment the number of times this schedule has been set + OCR3A = setQueue(timer3Aqueue, &fuelSchedule1, &fuelSchedule5, TCNT3); //Schedule 1 shares a timer with schedule 5 + interrupts(); + TIMSK3 |= (1 << OCIE3A); //Turn on the A compare unit (ie turn on the interrupt) + #endif + } + else + { + //If the schedule is already running, we can set the next schedule so it is ready to go + //This is required in cases of high rpm and high DC where there otherwise would not be enough time to set the schedule + fuelSchedule5.nextStartCompare = FUEL5_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); + fuelSchedule5.nextEndCompare = fuelSchedule5.nextStartCompare + uS_TO_TIMER_COMPARE_SLOW(duration); + fuelSchedule5.hasNextSchedule = true; + } } //Ignition schedulers use Timer 5 void setIgnitionSchedule1(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) +{ + if(ignitionSchedule1.Status != RUNNING) //Check that we're not already part way through a schedule { - if(ignitionSchedule1.Status == RUNNING) { return; } //Check that we're not already part way through a schedule - ignitionSchedule1.StartCallback = startCallback; //Name the start callback function ignitionSchedule1.EndCallback = endCallback; //Name the start callback function ignitionSchedule1.duration = duration; - //As the timer is ticking every 4uS (Time per Tick = (Prescale)*(1/Frequency)) - if (timeout > MAX_TIMER_PERIOD) { timeout = MAX_TIMER_PERIOD - 1; } // If the timeout is >4x (Each tick represents 4uS) the maximum allowed value of unsigned int (65535), the timer compare value will overflow when appliedcausing erratic behaviour such as erroneous sparking. + //Need to check that the timeout doesn't exceed the overflow + uint16_t timeout_timer_compare; + if (timeout > MAX_TIMER_PERIOD) { timeout_timer_compare = uS_TO_TIMER_COMPARE( (MAX_TIMER_PERIOD - 1) ); } // If the timeout is >4x (Each tick represents 4uS) the maximum allowed value of unsigned int (65535), the timer compare value will overflow when appliedcausing erratic behaviour such as erroneous sparking. + else { timeout_timer_compare = uS_TO_TIMER_COMPARE(timeout); } //Normal case noInterrupts(); - ignitionSchedule1.startCompare = IGN1_COUNTER + uS_TO_TIMER_COMPARE(timeout); //As there is a tick every 4uS, there are timeout/4 ticks until the interrupt should be triggered ( >>2 divides by 4) + ignitionSchedule1.startCompare = IGN1_COUNTER + timeout_timer_compare; //As there is a tick every 4uS, there are timeout/4 ticks until the interrupt should be triggered ( >>2 divides by 4) ignitionSchedule1.endCompare = ignitionSchedule1.startCompare + uS_TO_TIMER_COMPARE(duration); IGN1_COMPARE = ignitionSchedule1.startCompare; ignitionSchedule1.Status = PENDING; //Turn this schedule on @@ -363,19 +401,22 @@ void setIgnitionSchedule1(void (*startCallback)(), unsigned long timeout, unsign interrupts(); IGN1_TIMER_ENABLE(); } +} void setIgnitionSchedule2(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) +{ + if(ignitionSchedule2.Status != RUNNING) //Check that we're not already part way through a schedule { - if(ignitionSchedule2.Status == RUNNING) { return; } //Check that we're not already part way through a schedule - ignitionSchedule2.StartCallback = startCallback; //Name the start callback function ignitionSchedule2.EndCallback = endCallback; //Name the start callback function ignitionSchedule2.duration = duration; - //As the timer is ticking every 4uS (Time per Tick = (Prescale)*(1/Frequency)) - if (timeout > MAX_TIMER_PERIOD) { timeout = MAX_TIMER_PERIOD - 1; } // If the timeout is >4x (Each tick represents 4uS) the maximum allowed value of unsigned int (65535), the timer compare value will overflow when appliedcausing erratic behaviour such as erroneous sparking. + //Need to check that the timeout doesn't exceed the overflow + uint16_t timeout_timer_compare; + if (timeout > MAX_TIMER_PERIOD) { timeout_timer_compare = uS_TO_TIMER_COMPARE( (MAX_TIMER_PERIOD - 1) ); } // If the timeout is >4x (Each tick represents 4uS) the maximum allowed value of unsigned int (65535), the timer compare value will overflow when appliedcausing erratic behaviour such as erroneous sparking. + else { timeout_timer_compare = uS_TO_TIMER_COMPARE(timeout); } //Normal case noInterrupts(); - ignitionSchedule2.startCompare = IGN2_COUNTER + uS_TO_TIMER_COMPARE(timeout); //As there is a tick every 4uS, there are timeout/4 ticks until the interrupt should be triggered ( >>2 divides by 4) + ignitionSchedule2.startCompare = IGN2_COUNTER + timeout_timer_compare; //As there is a tick every 4uS, there are timeout/4 ticks until the interrupt should be triggered ( >>2 divides by 4) ignitionSchedule2.endCompare = ignitionSchedule2.startCompare + uS_TO_TIMER_COMPARE(duration); IGN2_COMPARE = ignitionSchedule2.startCompare; ignitionSchedule2.Status = PENDING; //Turn this schedule on @@ -383,19 +424,23 @@ void setIgnitionSchedule2(void (*startCallback)(), unsigned long timeout, unsign interrupts(); IGN2_TIMER_ENABLE(); } +} void setIgnitionSchedule3(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) +{ + if(ignitionSchedule3.Status != RUNNING) //Check that we're not already part way through a schedule { - if(ignitionSchedule3.Status == RUNNING) { return; } //Check that we're not already part way through a schedule ignitionSchedule3.StartCallback = startCallback; //Name the start callback function ignitionSchedule3.EndCallback = endCallback; //Name the start callback function ignitionSchedule3.duration = duration; - //The timer is ticking every 4uS (Time per Tick = (Prescale)*(1/Frequency)) - if (timeout > MAX_TIMER_PERIOD) { timeout = MAX_TIMER_PERIOD - 1; } // If the timeout is >4x (Each tick represents 4uS) the maximum allowed value of unsigned int (65535), the timer compare value will overflow when appliedcausing erratic behaviour such as erroneous sparking. + //Need to check that the timeout doesn't exceed the overflow + uint16_t timeout_timer_compare; + if (timeout > MAX_TIMER_PERIOD) { timeout_timer_compare = uS_TO_TIMER_COMPARE( (MAX_TIMER_PERIOD - 1) ); } // If the timeout is >4x (Each tick represents 4uS) the maximum allowed value of unsigned int (65535), the timer compare value will overflow when appliedcausing erratic behaviour such as erroneous sparking. + else { timeout_timer_compare = uS_TO_TIMER_COMPARE(timeout); } //Normal case noInterrupts(); - ignitionSchedule3.startCompare = IGN3_COUNTER + uS_TO_TIMER_COMPARE(timeout); //As there is a tick every 4uS, there are timeout/4 ticks until the interrupt should be triggered ( >>2 divides by 4) + ignitionSchedule3.startCompare = IGN3_COUNTER + timeout_timer_compare; //As there is a tick every 4uS, there are timeout/4 ticks until the interrupt should be triggered ( >>2 divides by 4) ignitionSchedule3.endCompare = ignitionSchedule3.startCompare + uS_TO_TIMER_COMPARE(duration); IGN3_COMPARE = ignitionSchedule3.startCompare; ignitionSchedule3.Status = PENDING; //Turn this schedule on @@ -403,21 +448,23 @@ void setIgnitionSchedule3(void (*startCallback)(), unsigned long timeout, unsign interrupts(); IGN3_TIMER_ENABLE(); } +} void setIgnitionSchedule4(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) +{ + if(ignitionSchedule4.Status != RUNNING) //Check that we're not already part way through a schedule { - if(ignitionSchedule4.Status == RUNNING) { return; } //Check that we're not already part way through a schedule ignitionSchedule4.StartCallback = startCallback; //Name the start callback function ignitionSchedule4.EndCallback = endCallback; //Name the start callback function ignitionSchedule4.duration = duration; - //We need to calculate the value to reset the timer to (preload) in order to achieve the desired overflow time - //The timer is ticking every 16uS (Time per Tick = (Prescale)*(1/Frequency)) - //Note this is different to the other ignition timers - if (timeout > MAX_TIMER_PERIOD) { timeout = MAX_TIMER_PERIOD - 1; } // If the timeout is >4x (Each tick represents 4uS) the maximum allowed value of unsigned int (65535), the timer compare value will overflow when appliedcausing erratic behaviour such as erroneous sparking. + //Need to check that the timeout doesn't exceed the overflow + uint16_t timeout_timer_compare; + if (timeout > MAX_TIMER_PERIOD) { timeout_timer_compare = uS_TO_TIMER_COMPARE_SLOW( (MAX_TIMER_PERIOD - 1) ); } // If the timeout is >4x (Each tick represents 4uS) the maximum allowed value of unsigned int (65535), the timer compare value will overflow when appliedcausing erratic behaviour such as erroneous sparking. + else { timeout_timer_compare = uS_TO_TIMER_COMPARE_SLOW(timeout); } //Normal case noInterrupts(); - ignitionSchedule4.startCompare = IGN4_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); + ignitionSchedule4.startCompare = IGN4_COUNTER + timeout_timer_compare; ignitionSchedule4.endCompare = ignitionSchedule4.startCompare + uS_TO_TIMER_COMPARE_SLOW(duration); IGN4_COMPARE = ignitionSchedule4.startCompare; ignitionSchedule4.Status = PENDING; //Turn this schedule on @@ -425,21 +472,23 @@ void setIgnitionSchedule4(void (*startCallback)(), unsigned long timeout, unsign interrupts(); IGN4_TIMER_ENABLE(); } +} void setIgnitionSchedule5(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) +{ + if(ignitionSchedule5.Status != RUNNING)//Check that we're not already part way through a schedule { - if(ignitionSchedule5.Status == RUNNING) { return; } //Check that we're not already part way through a schedule ignitionSchedule5.StartCallback = startCallback; //Name the start callback function ignitionSchedule5.EndCallback = endCallback; //Name the start callback function ignitionSchedule5.duration = duration; - //We need to calculate the value to reset the timer to (preload) in order to achieve the desired overflow time - //The timer is ticking every 16uS (Time per Tick = (Prescale)*(1/Frequency)) - //Note this is different to the other ignition timers - if (timeout > MAX_TIMER_PERIOD) { timeout = MAX_TIMER_PERIOD - 1; } // If the timeout is >4x (Each tick represents 4uS) the maximum allowed value of unsigned int (65535), the timer compare value will overflow when appliedcausing erratic behaviour such as erroneous sparking. + //Need to check that the timeout doesn't exceed the overflow + uint16_t timeout_timer_compare; + if (timeout > MAX_TIMER_PERIOD) { timeout_timer_compare = uS_TO_TIMER_COMPARE_SLOW( (MAX_TIMER_PERIOD - 1) ); } // If the timeout is >4x (Each tick represents 4uS) the maximum allowed value of unsigned int (65535), the timer compare value will overflow when appliedcausing erratic behaviour such as erroneous sparking. + else { timeout_timer_compare = uS_TO_TIMER_COMPARE_SLOW(timeout); } //Normal case noInterrupts(); - ignitionSchedule5.startCompare = IGN5_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); + ignitionSchedule5.startCompare = IGN5_COUNTER + timeout_timer_compare; ignitionSchedule5.endCompare = ignitionSchedule5.startCompare + uS_TO_TIMER_COMPARE_SLOW(duration); IGN5_COMPARE = ignitionSchedule5.startCompare; ignitionSchedule5.Status = PENDING; //Turn this schedule on @@ -447,6 +496,7 @@ void setIgnitionSchedule5(void (*startCallback)(), unsigned long timeout, unsign interrupts(); IGN5_TIMER_ENABLE(); } +} /*******************************************************************************************************************************************************************************************************/ //This function (All 8 ISR functions that are below) gets called when either the start time or the duration time are reached @@ -459,20 +509,35 @@ ISR(TIMER3_COMPA_vect, ISR_NOBLOCK) //fuelSchedules 1 and 5 static inline void fuelSchedule1Interrupt() //Most ARM chips can simply call a function #endif { - if (timer3Aqueue[0]->Status == OFF) { FUEL1_TIMER_DISABLE(); return; } //Safety check. Turn off this output compare unit and return without performing any action - if (timer3Aqueue[0]->Status == PENDING) //Check to see if this schedule is turn on + if (fuelSchedule1.Status == PENDING) //Check to see if this schedule is turn on { - timer3Aqueue[0]->StartCallback(); - timer3Aqueue[0]->Status = RUNNING; //Set the status to be in progress (ie The start callback has been called, but not the end callback) - FUEL1_COMPARE = popQueue(timer3Aqueue); + //To use timer queue, change fuelShedule1 to timer3Aqueue[0]; + if (configPage1.injLayout == INJ_SEMISEQUENTIAL) { openInjector1and4(); } + else { openInjector1(); } + fuelSchedule1.Status = RUNNING; //Set the status to be in progress (ie The start callback has been called, but not the end callback) + FUEL1_COMPARE = fuelSchedule1.endCompare; } - else if (timer3Aqueue[0]->Status == RUNNING) + else if (fuelSchedule1.Status == RUNNING) { - timer3Aqueue[0]->EndCallback(); - timer3Aqueue[0]->Status = OFF; //Turn off the schedule - timer3Aqueue[0]->schedulesSet = 0; - FUEL1_COMPARE = popQueue(timer3Aqueue); + //timer3Aqueue[0]->EndCallback(); + if (configPage1.injLayout == INJ_SEMISEQUENTIAL) { closeInjector1and4(); } + else { closeInjector1(); } + fuelSchedule1.Status = OFF; //Turn off the schedule + fuelSchedule1.schedulesSet = 0; + //FUEL1_COMPARE = fuelSchedule1.endCompare; + + //If there is a next schedule queued up, activate it + if(fuelSchedule1.hasNextSchedule == true) + { + FUEL1_COMPARE = fuelSchedule1.nextStartCompare; + fuelSchedule1.endCompare = fuelSchedule1.nextEndCompare; + fuelSchedule1.Status = PENDING; + fuelSchedule1.schedulesSet = 1; + fuelSchedule1.hasNextSchedule = false; + } + else { FUEL1_TIMER_DISABLE(); } } + else if (fuelSchedule1.Status == OFF) { FUEL1_TIMER_DISABLE(); } //Safety check. Turn off this output compare unit and return without performing any action } #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) //AVR chips use the ISR for this @@ -483,16 +548,30 @@ static inline void fuelSchedule2Interrupt() //Most ARM chips can simply call a f { if (fuelSchedule2.Status == PENDING) //Check to see if this schedule is turn on { - fuelSchedule2.StartCallback(); + //fuelSchedule2.StartCallback(); + if (configPage1.injLayout == INJ_SEMISEQUENTIAL) { openInjector2and3(); } + else { openInjector2(); } fuelSchedule2.Status = RUNNING; //Set the status to be in progress (ie The start callback has been called, but not the end callback) FUEL2_COMPARE = fuelSchedule2.endCompare; } else if (fuelSchedule2.Status == RUNNING) { - fuelSchedule2.EndCallback(); + //fuelSchedule2.EndCallback(); + if (configPage1.injLayout == INJ_SEMISEQUENTIAL) { closeInjector2and3(); } + else { closeInjector2(); } fuelSchedule2.Status = OFF; //Turn off the schedule fuelSchedule2.schedulesSet = 0; - FUEL2_TIMER_DISABLE(); + + //If there is a next schedule queued up, activate it + if(fuelSchedule2.hasNextSchedule == true) + { + FUEL2_COMPARE = fuelSchedule2.nextStartCompare; + fuelSchedule2.endCompare = fuelSchedule2.nextEndCompare; + fuelSchedule2.Status = PENDING; + fuelSchedule2.schedulesSet = 1; + fuelSchedule2.hasNextSchedule = false; + } + else { FUEL2_TIMER_DISABLE(); } } } @@ -504,16 +583,32 @@ static inline void fuelSchedule3Interrupt() //Most ARM chips can simply call a f { if (fuelSchedule3.Status == PENDING) //Check to see if this schedule is turn on { - fuelSchedule3.StartCallback(); + //fuelSchedule3.StartCallback(); + //Hack for 5 cylinder + if(channel5InjEnabled) { openInjector3and5(); } + else { openInjector3(); } fuelSchedule3.Status = RUNNING; //Set the status to be in progress (ie The start callback has been called, but not the end callback) FUEL3_COMPARE = fuelSchedule3.endCompare; } else if (fuelSchedule3.Status == RUNNING) { - fuelSchedule3.EndCallback(); + //fuelSchedule3.EndCallback(); + //Hack for 5 cylinder + if(channel5InjEnabled) { closeInjector3and5(); } + else { closeInjector3and5(); } fuelSchedule3.Status = OFF; //Turn off the schedule fuelSchedule3.schedulesSet = 0; - FUEL3_TIMER_DISABLE(); + + //If there is a next schedule queued up, activate it + if(fuelSchedule3.hasNextSchedule == true) + { + FUEL3_COMPARE = fuelSchedule3.nextStartCompare; + fuelSchedule3.endCompare = fuelSchedule3.nextEndCompare; + fuelSchedule3.Status = PENDING; + fuelSchedule3.schedulesSet = 1; + fuelSchedule3.hasNextSchedule = false; + } + else { FUEL3_TIMER_DISABLE(); } } } @@ -525,16 +620,28 @@ static inline void fuelSchedule4Interrupt() //Most ARM chips can simply call a f { if (fuelSchedule4.Status == PENDING) //Check to see if this schedule is turn on { - fuelSchedule4.StartCallback(); + //fuelSchedule4.StartCallback(); + openInjector4(); fuelSchedule4.Status = RUNNING; //Set the status to be in progress (ie The start callback has been called, but not the end callback) FUEL4_COMPARE = fuelSchedule4.endCompare; } else if (fuelSchedule4.Status == RUNNING) { - fuelSchedule4.EndCallback(); + //fuelSchedule4.EndCallback(); + closeInjector4(); fuelSchedule4.Status = OFF; //Turn off the schedule fuelSchedule4.schedulesSet = 0; - FUEL4_TIMER_DISABLE(); + + //If there is a next schedule queued up, activate it + if(fuelSchedule4.hasNextSchedule == true) + { + FUEL4_COMPARE = fuelSchedule4.nextStartCompare; + fuelSchedule4.endCompare = fuelSchedule4.nextEndCompare; + fuelSchedule4.Status = PENDING; + fuelSchedule4.schedulesSet = 1; + fuelSchedule4.hasNextSchedule = false; + } + else { FUEL4_TIMER_DISABLE(); } } } @@ -550,7 +657,7 @@ static inline void ignitionSchedule1Interrupt() //Most ARM chips can simply call ignitionSchedule1.Status = RUNNING; //Set the status to be in progress (ie The start callback has been called, but not the end callback) ignitionSchedule1.startTime = micros(); ign1LastRev = currentStatus.startRevolutions; - IGN1_COMPARE = ignitionSchedule1.endCompare; //OCR5A = TCNT5 + (ignitionSchedule1.duration >> 2); //Divide by 4 + IGN1_COMPARE = ignitionSchedule1.endCompare; } else if (ignitionSchedule1.Status == RUNNING) { @@ -622,7 +729,7 @@ static inline void ignitionSchedule4Interrupt() //Most ARM chips can simply call ignitionSchedule4.Status = RUNNING; //Set the status to be in progress (ie The start callback has been called, but not the end callback) ignitionSchedule4.startTime = micros(); ign4LastRev = currentStatus.startRevolutions; - IGN4_COMPARE = ignitionSchedule4.endCompare; //OCR4A = TCNT4 + (ignitionSchedule4.duration >> 4); //Divide by 16 + IGN4_COMPARE = ignitionSchedule4.endCompare; } else if (ignitionSchedule4.Status == RUNNING) { @@ -663,15 +770,24 @@ static inline void ignitionSchedule5Interrupt() //Most ARM chips can simply call #if defined(CORE_TEENSY) void ftm0_isr(void) { + //Use separate variables for each test to ensure conversion to bool + bool interrupt1 = (FTM0_C0SC & FTM_CSC_CHF); + bool interrupt2 = (FTM0_C1SC & FTM_CSC_CHF); + bool interrupt3 = (FTM0_C2SC & FTM_CSC_CHF); + bool interrupt4 = (FTM0_C3SC & FTM_CSC_CHF); + bool interrupt5 = (FTM0_C4SC & FTM_CSC_CHF); + bool interrupt6 = (FTM0_C5SC & FTM_CSC_CHF); + bool interrupt7 = (FTM0_C6SC & FTM_CSC_CHF); + bool interrupt8 = (FTM0_C7SC & FTM_CSC_CHF); - if(FTM0_C0SC & FTM_CSC_CHF) { FTM0_C0SC &= ~FTM_CSC_CHF; fuelSchedule1Interrupt(); } - else if(FTM0_C1SC & FTM_CSC_CHF) { FTM0_C1SC &= ~FTM_CSC_CHF; fuelSchedule2Interrupt(); } - else if(FTM0_C2SC & FTM_CSC_CHF) { FTM0_C2SC &= ~FTM_CSC_CHF; fuelSchedule3Interrupt(); } - else if(FTM0_C3SC & FTM_CSC_CHF) { FTM0_C3SC &= ~FTM_CSC_CHF; fuelSchedule4Interrupt(); } - else if(FTM0_C4SC & FTM_CSC_CHF) { FTM0_C4SC &= ~FTM_CSC_CHF; ignitionSchedule1Interrupt(); } - else if(FTM0_C5SC & FTM_CSC_CHF) { FTM0_C5SC &= ~FTM_CSC_CHF; ignitionSchedule2Interrupt(); } - else if(FTM0_C6SC & FTM_CSC_CHF) { FTM0_C6SC &= ~FTM_CSC_CHF; ignitionSchedule3Interrupt(); } - else if(FTM0_C7SC & FTM_CSC_CHF) { FTM0_C7SC &= ~FTM_CSC_CHF; ignitionSchedule4Interrupt(); } + if(interrupt1) { FTM0_C0SC &= ~FTM_CSC_CHF; fuelSchedule1Interrupt(); } + else if(interrupt2) { FTM0_C1SC &= ~FTM_CSC_CHF; fuelSchedule2Interrupt(); } + else if(interrupt3) { FTM0_C2SC &= ~FTM_CSC_CHF; fuelSchedule3Interrupt(); } + else if(interrupt4) { FTM0_C3SC &= ~FTM_CSC_CHF; fuelSchedule4Interrupt(); } + else if(interrupt5) { FTM0_C4SC &= ~FTM_CSC_CHF; ignitionSchedule1Interrupt(); } + else if(interrupt6) { FTM0_C5SC &= ~FTM_CSC_CHF; ignitionSchedule2Interrupt(); } + else if(interrupt7) { FTM0_C6SC &= ~FTM_CSC_CHF; ignitionSchedule3Interrupt(); } + else if(interrupt8) { FTM0_C7SC &= ~FTM_CSC_CHF; ignitionSchedule4Interrupt(); } } #endif diff --git a/speeduino/sensors.h b/speeduino/sensors.h index 63610724..c8294a2f 100644 --- a/speeduino/sensors.h +++ b/speeduino/sensors.h @@ -12,6 +12,7 @@ #define ADCFILTER_O2 128 #define ADCFILTER_BAT 128 #define ADCFILTER_MAP 20 //This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response +#define ADCFILTER_BARO 64 #define BARO_MIN 87 #define BARO_MAX 108 @@ -38,10 +39,9 @@ byte MAPcurRev; //Tracks which revolution we're sampling on void instanteneousMAPReading(); void readMAP(); +void readBaro(); void flexPulse(); -unsigned int tempReading; - #if defined(ANALOG_ISR) //Analog ISR interrupt routine /* @@ -105,4 +105,4 @@ ISR(ADC_vect) } #endif -#endif // SENSORS_H +#endif // SENSORS_H diff --git a/speeduino/sensors.ino b/speeduino/sensors.ino index bdde8740..ce41fd0c 100644 --- a/speeduino/sensors.ino +++ b/speeduino/sensors.ino @@ -49,6 +49,7 @@ MAPcount = 0; void instanteneousMAPReading() { + unsigned int tempReading; //Instantaneous MAP readings #if defined(ANALOG_ISR_MAP) tempReading = AnChannel[pinMAP-A0]; @@ -62,13 +63,14 @@ void instanteneousMAPReading() currentStatus.mapADC = ADC_FILTER(tempReading, ADCFILTER_MAP, currentStatus.mapADC); //Very weak filter - currentStatus.MAP = fastResize(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value - + currentStatus.MAP = fastMap10Bit(currentStatus.mapADC, configPage1.mapMin, configPage1.mapMax); //Get the current MAP value + if(currentStatus.MAP < 0) { currentStatus.MAP = 0; } //Sanity check } void readMAP() { + unsigned int tempReading; //MAP Sampling system switch(configPage1.mapSample) { @@ -106,7 +108,8 @@ void readMAP() if( (MAPrunningValue != 0) && (MAPcount != 0) ) { currentStatus.mapADC = ldiv(MAPrunningValue, MAPcount).quot; - currentStatus.MAP = fastResize(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value + currentStatus.MAP = fastMap10Bit(currentStatus.mapADC, configPage1.mapMin, configPage1.mapMax); //Get the current MAP value + if(currentStatus.MAP < 0) { currentStatus.MAP = 0; } //Sanity check MAPcurRev = currentStatus.startRevolutions; //Reset the current rev count MAPrunningValue = 0; MAPcount = 0; @@ -140,7 +143,8 @@ void readMAP() { //Reaching here means that the last cylce has completed and the MAP value should be calculated currentStatus.mapADC = MAPrunningValue; - currentStatus.MAP = fastResize(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value + currentStatus.MAP = fastMap10Bit(currentStatus.mapADC, configPage1.mapMin, configPage1.mapMax); //Get the current MAP value + if(currentStatus.MAP < 0) { currentStatus.MAP = 0; } //Sanity check MAPcurRev = currentStatus.startRevolutions; //Reset the current rev count MAPrunningValue = 1023; //Reset the latest value so the next reading will always be lower } @@ -160,10 +164,10 @@ void readTPS() currentStatus.TPSlast = currentStatus.TPS; currentStatus.TPSlast_time = currentStatus.TPS_time; #if defined(ANALOG_ISR) - byte tempTPS = fastResize(AnChannel[pinTPS-A0], 255); //Get the current raw TPS ADC value and map it into a byte + byte tempTPS = fastMap1023toX(AnChannel[pinTPS-A0], 255); //Get the current raw TPS ADC value and map it into a byte #else analogRead(pinTPS); - byte tempTPS = fastResize(analogRead(pinTPS), 255); //Get the current raw TPS ADC value and map it into a byte + byte tempTPS = fastMap1023toX(analogRead(pinTPS), 255); //Get the current raw TPS ADC value and map it into a byte #endif currentStatus.tpsADC = ADC_FILTER(tempTPS, ADCFILTER_TPS, currentStatus.tpsADC); //Check that the ADC values fall within the min and max ranges (Should always be the case, but noise can cause these to fluctuate outside the defined range). @@ -176,11 +180,12 @@ void readTPS() void readCLT() { + unsigned int tempReading; #if defined(ANALOG_ISR) - tempReading = fastResize(AnChannel[pinCLT-A0], 511); //Get the current raw CLT value + tempReading = fastMap1023toX(AnChannel[pinCLT-A0], 511); //Get the current raw CLT value #else tempReading = analogRead(pinCLT); - tempReading = fastResize(analogRead(pinCLT), 511); //Get the current raw CLT value + tempReading = fastMap1023toX(analogRead(pinCLT), 511); //Get the current raw CLT value #endif currentStatus.cltADC = ADC_FILTER(tempReading, ADCFILTER_CLT, currentStatus.cltADC); currentStatus.coolant = cltCalibrationTable[currentStatus.cltADC] - CALIBRATION_TEMPERATURE_OFFSET; //Temperature calibration values are stored as positive bytes. We subtract 40 from them to allow for negative temperatures @@ -188,23 +193,44 @@ void readCLT() void readIAT() { + unsigned int tempReading; #if defined(ANALOG_ISR) - tempReading = fastResize(AnChannel[pinIAT-A0], 511); //Get the current raw IAT value + tempReading = fastMap1023toX(AnChannel[pinIAT-A0], 511); //Get the current raw IAT value #else tempReading = analogRead(pinIAT); - tempReading = fastResize(analogRead(pinIAT), 511); //Get the current raw IAT value + tempReading = fastMap1023toX(analogRead(pinIAT), 511); //Get the current raw IAT value #endif currentStatus.iatADC = ADC_FILTER(tempReading, ADCFILTER_IAT, currentStatus.iatADC); currentStatus.IAT = iatCalibrationTable[currentStatus.iatADC] - CALIBRATION_TEMPERATURE_OFFSET; } +void readBaro() +{ + if ( configPage3.useExtBaro != 0 ) + { + int tempReading; + // readings + #if defined(ANALOG_ISR_MAP) + tempReading = AnChannel[pinBaro-A0]; + #else + tempReading = analogRead(pinBaro); + tempReading = analogRead(pinBaro); + #endif + + currentStatus.baroADC = ADC_FILTER(tempReading, ADCFILTER_BARO, currentStatus.baroADC); //Very weak filter + + currentStatus.baro = fastMap1023toX(currentStatus.baroADC, configPage1.mapMax); //Get the current MAP value + } +} + void readO2() { + unsigned int tempReading; #if defined(ANALOG_ISR) - tempReading = fastResize(AnChannel[pinO2-A0], 511); //Get the current O2 value. + tempReading = fastMap1023toX(AnChannel[pinO2-A0], 511); //Get the current O2 value. #else tempReading = analogRead(pinO2); - tempReading = fastResize(analogRead(pinO2), 511); //Get the current O2 value. + tempReading = fastMap1023toX(analogRead(pinO2), 511); //Get the current O2 value. #endif currentStatus.O2ADC = ADC_FILTER(tempReading, ADCFILTER_O2, currentStatus.O2ADC); currentStatus.O2 = o2CalibrationTable[currentStatus.O2ADC]; @@ -218,11 +244,12 @@ void readO2() void readBat() { + unsigned int tempReading; #if defined(ANALOG_ISR) - tempReading = fastResize(AnChannel[pinBat-A0], 245); //Get the current raw Battery value. Permissible values are from 0v to 24.5v (245) + tempReading = fastMap1023toX(AnChannel[pinBat-A0], 245); //Get the current raw Battery value. Permissible values are from 0v to 24.5v (245) #else tempReading = analogRead(pinBat); - tempReading = fastResize(analogRead(pinBat), 245); //Get the current raw Battery value. Permissible values are from 0v to 24.5v (245) + tempReading = fastMap1023toX(analogRead(pinBat), 245); //Get the current raw Battery value. Permissible values are from 0v to 24.5v (245) #endif currentStatus.battery10 = ADC_FILTER(tempReading, ADCFILTER_BAT, currentStatus.battery10); } @@ -234,4 +261,4 @@ void readBat() void flexPulse() { ++flexCounter; - } + } diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 6be82ea5..c07d9039 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -54,6 +54,7 @@ struct config2 configPage2; struct config3 configPage3; struct config4 configPage4; struct config10 configPage10; +struct config11 configPage11; int req_fuel_uS, inj_opentime_uS; @@ -70,6 +71,7 @@ void (*trigger)(); //Pointer for the trigger function (Gets pointed to the relev void (*triggerSecondary)(); //Pointer for the secondary trigger function (Gets pointed to the relevant decoder) uint16_t (*getRPM)(); //Pointer to the getRPM function (Gets pointed to the relevant decoder) int (*getCrankAngle)(int); //Pointer to the getCrank Angle function (Gets pointed to the relevant decoder) +void (*triggerSetEndTeeth)(); //Pointer to the triggerSetEndTeeth function of each decoder byte cltCalibrationTable[CALIBRATION_TABLE_SIZE]; byte iatCalibrationTable[CALIBRATION_TABLE_SIZE]; @@ -85,7 +87,8 @@ unsigned long currentLoopTime; //The time the current loop started (uS) unsigned long previousLoopTime; //The time the previous loop started (uS) int CRANK_ANGLE_MAX = 720; -int CRANK_ANGLE_MAX_IGN = 360, CRANK_ANGLE_MAX_INJ = 360; // The number of crank degrees that the system track over. 360 for wasted / timed batch and 720 for sequential +int CRANK_ANGLE_MAX_IGN = 360; +int CRANK_ANGLE_MAX_INJ = 360; // The number of crank degrees that the system track over. 360 for wasted / timed batch and 720 for sequential static byte coilHIGH = HIGH; static byte coilLOW = LOW; @@ -97,6 +100,7 @@ byte deltaToothCount = 0; //The last tooth that was used with the deltaV calc int rpmDelta; byte ignitionCount; uint16_t fixedCrankingOverride = 0; +int16_t lastAdvance; //Stores the previous advance figure to track changes. bool clutchTrigger; bool previousClutchTrigger; @@ -152,7 +156,6 @@ void setup() loadConfig(); doUpdates(); //Check if any data items need updating (Occurs ith firmware updates) - //Serial.begin(115200); #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 if (configPage10.enable_canbus == 1) { Serial3.begin(115200); } #elif defined(CORE_STM32) @@ -183,6 +186,10 @@ void setup() WUETable.xSize = 10; WUETable.values = configPage1.wueValues; WUETable.axisX = configPage2.wueBins; + crankingEnrichTable.valueSize = SIZE_BYTE; + crankingEnrichTable.xSize = 4; + crankingEnrichTable.values = configPage11.crankingEnrichValues; + crankingEnrichTable.axisX = configPage11.crankingEnrichBins; dwellVCorrectionTable.valueSize = SIZE_BYTE; dwellVCorrectionTable.xSize = 6; @@ -229,22 +236,31 @@ void setup() //Lookup the current MAP reading for barometric pressure readMAP(); - /* - * The highest sea-level pressure on Earth occurs in Siberia, where the Siberian High often attains a sea-level pressure above 105 kPa; - * with record highs close to 108.5 kPa. - * The lowest measurable sea-level pressure is found at the centers of tropical cyclones and tornadoes, with a record low of 87 kPa; - */ - if ((currentStatus.MAP >= BARO_MIN) && (currentStatus.MAP <= BARO_MAX)) //Check if engine isn't running + //barometric reading can be taken from either an external sensor if enabled, or simply by using the initial MAP value + if ( configPage3.useExtBaro != 0 ) { - currentStatus.baro = currentStatus.MAP; + readBaro(); EEPROM.update(EEPROM_LAST_BARO, currentStatus.baro); } else { - //Attempt to use the last known good baro reading from EEPROM - if ((EEPROM.read(EEPROM_LAST_BARO) >= BARO_MIN) && (EEPROM.read(EEPROM_LAST_BARO) <= BARO_MAX)) //Make sure it's not invalid (Possible on first run etc) - { currentStatus.baro = EEPROM.read(EEPROM_LAST_BARO); } //last baro correction - else { currentStatus.baro = 100; } //Final fall back position. + /* + * The highest sea-level pressure on Earth occurs in Siberia, where the Siberian High often attains a sea-level pressure above 105 kPa; + * with record highs close to 108.5 kPa. + * The lowest measurable sea-level pressure is found at the centers of tropical cyclones and tornadoes, with a record low of 87 kPa; + */ + if ((currentStatus.MAP >= BARO_MIN) && (currentStatus.MAP <= BARO_MAX)) //Check if engine isn't running + { + currentStatus.baro = currentStatus.MAP; + EEPROM.update(EEPROM_LAST_BARO, currentStatus.baro); + } + else + { + //Attempt to use the last known good baro reading from EEPROM + if ((EEPROM.read(EEPROM_LAST_BARO) >= BARO_MIN) && (EEPROM.read(EEPROM_LAST_BARO) <= BARO_MAX)) //Make sure it's not invalid (Possible on first run etc) + { currentStatus.baro = EEPROM.read(EEPROM_LAST_BARO); } //last baro correction + else { currentStatus.baro = 100; } //Final fall back position. + } } //Perform all initialisations @@ -341,6 +357,7 @@ void setup() triggerSecondary = triggerSec_missingTooth; getRPM = getRPM_missingTooth; getCrankAngle = getCrankAngle_missingTooth; + triggerSetEndTeeth = triggerSetEndTeeth_missingTooth; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } @@ -354,6 +371,7 @@ void setup() trigger = triggerPri_BasicDistributor; getRPM = getRPM_BasicDistributor; getCrankAngle = getCrankAngle_BasicDistributor; + triggerSetEndTeeth = triggerSetEndTeeth_BasicDistributor; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } @@ -364,6 +382,7 @@ void setup() trigger = triggerPri_DualWheel; getRPM = getRPM_DualWheel; getCrankAngle = getCrankAngle_DualWheel; + triggerSetEndTeeth = triggerSetEndTeeth_DualWheel; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } @@ -376,6 +395,7 @@ void setup() trigger = triggerPri_GM7X; getRPM = getRPM_GM7X; getCrankAngle = getCrankAngle_GM7X; + triggerSetEndTeeth = triggerSetEndTeeth_GM7X; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } @@ -386,6 +406,7 @@ void setup() trigger = triggerPri_4G63; getRPM = getRPM_4G63; getCrankAngle = getCrankAngle_4G63; + triggerSetEndTeeth = triggerSetEndTeeth_4G63; //These may both need to change, not sure if(configPage2.TrigEdge == 0) @@ -405,6 +426,7 @@ void setup() trigger = triggerPri_24X; getRPM = getRPM_24X; getCrankAngle = getCrankAngle_24X; + triggerSetEndTeeth = triggerSetEndTeeth_24X; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to @@ -416,6 +438,7 @@ void setup() trigger = triggerPri_Jeep2000; getRPM = getRPM_Jeep2000; getCrankAngle = getCrankAngle_Jeep2000; + triggerSetEndTeeth = triggerSetEndTeeth_Jeep2000; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to @@ -427,6 +450,7 @@ void setup() trigger = triggerPri_Audi135; getRPM = getRPM_Audi135; getCrankAngle = getCrankAngle_Audi135; + triggerSetEndTeeth = triggerSetEndTeeth_Audi135; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } @@ -438,6 +462,7 @@ void setup() trigger = triggerPri_HondaD17; getRPM = getRPM_HondaD17; getCrankAngle = getCrankAngle_HondaD17; + triggerSetEndTeeth = triggerSetEndTeeth_HondaD17; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to @@ -449,6 +474,7 @@ void setup() trigger = triggerPri_Miata9905; getRPM = getRPM_Miata9905; getCrankAngle = getCrankAngle_Miata9905; + triggerSetEndTeeth = triggerSetEndTeeth_Miata9905; //These may both need to change, not sure if(configPage2.TrigEdge == 0) @@ -468,6 +494,7 @@ void setup() trigger = triggerPri_MazdaAU; getRPM = getRPM_MazdaAU; getCrankAngle = getCrankAngle_MazdaAU; + triggerSetEndTeeth = triggerSetEndTeeth_MazdaAU; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to @@ -479,6 +506,7 @@ void setup() trigger = triggerPri_DualWheel; //Is identical to the dual wheel decoder, so that is used. Same goes for the secondary below getRPM = getRPM_non360; getCrankAngle = getCrankAngle_non360; + triggerSetEndTeeth = triggerSetEndTeeth_Non360; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } @@ -490,6 +518,7 @@ void setup() trigger = triggerPri_Nissan360; getRPM = getRPM_Nissan360; getCrankAngle = getCrankAngle_Nissan360; + triggerSetEndTeeth = triggerSetEndTeeth_Nissan360; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } @@ -501,6 +530,7 @@ void setup() trigger = triggerPri_Subaru67; getRPM = getRPM_Subaru67; getCrankAngle = getCrankAngle_Subaru67; + triggerSetEndTeeth = triggerSetEndTeeth_Subaru67; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } @@ -512,6 +542,7 @@ void setup() trigger = triggerPri_Daihatsu; getRPM = getRPM_Daihatsu; getCrankAngle = getCrankAngle_Daihatsu; + triggerSetEndTeeth = triggerSetEndTeeth_Daihatsu; if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) else { attachInterrupt(triggerInterrupt, trigger, FALLING); } @@ -845,10 +876,12 @@ void setup() void loop() { mainLoopCount++; + LOOP_TIMER = TIMER_mask; //Check for any requets from serial. Serial operations are checked under 2 scenarios: // 1) Every 64 loops (64 Is more than fast enough for TunerStudio). This function is equivalent to ((loopCount % 64) == 1) but is considerably faster due to not using the mod or division operations // 2) If the amount of data in the serial buffer is greater than a set threhold (See globals.h). This is to avoid serial buffer overflow when large amounts of data is being sent - if ( ((mainLoopCount & 31) == 1) or (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) + //if ( ((mainLoopCount & 31) == 1) or (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) + if( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ) or (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) { if (Serial.available() > 0) { @@ -856,56 +889,28 @@ void loop() } } -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - //if serial3 interface is enabled then check for serial3 requests. - if (configPage10.enable_canbus == 1) - { - if ( ((mainLoopCount & 31) == 1) or (Serial3.available() > SERIAL_BUFFER_THRESHOLD) ) - { - if (Serial3.available() > 0) - { - canCommand(); - } - } - } - -#elif defined(CORE_STM32) - //if can or secondary serial interface is enabled then check for requests. - if (configPage10.enable_canbus == 1) //secondary serial interface enabled - { - if ( ((mainLoopCount & 31) == 1) or (Serial2.available() > SERIAL_BUFFER_THRESHOLD) ) - { - if (Serial2.available() > 0) - { - canCommand(); - } - } - } - else if (configPage10.enable_canbus == 2) // can module enabled - { - //check local can module - } -#elif defined(CORE_TEENSY) - //if can or secondary serial interface is enabled then check for requests. - if (configPage10.enable_canbus == 1) //secondary serial interface enabled - { - if ( ((mainLoopCount & 31) == 1) or (Serial2.available() > SERIAL_BUFFER_THRESHOLD) ) - { - if (Serial2.available() > 0) - { - canCommand(); - } - } - } - else if (configPage10.enable_canbus == 2) // can module enabled - { - //check local can module - // if ( ((mainLoopCount & 31) == 1) or (CANbus0.available()) - // { - // CANbus0.read(rx_msg); - // } - } -#endif + //if serial3 interface is enabled then check for serial3 requests. + if (configPage10.enable_canbus == 1) + { + //if ( ((mainLoopCount & 31) == 1) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) + if( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) + { + if (CANSerial.available() > 0) + { + canCommand(); + } + } + } + #if defined(CORE_TEENSY) || defined(CORE_STM32) + else if (configPage10.enable_canbus == 2) // can module enabled + { + //check local can module + // if ( ((mainLoopCount & 31) == 1) or (CANbus0.available()) + // { + // CANbus0.read(rx_msg); + // } + } + #endif //Displays currently disabled // if (configPage1.displayType && (mainLoopCount & 255) == 1) { updateDisplay();} @@ -916,7 +921,8 @@ void loop() if ( (timeToLastTooth < MAX_STALL_TIME) || (toothLastToothTime > currentLoopTime) ) //Check how long ago the last tooth was seen compared to now. If it was more than half a second ago then the engine is probably stopped. toothLastToothTime can be greater than currentLoopTime if a pulse occurs between getting the lastest time and doing the comparison { currentStatus.RPM = currentStatus.longRPM = getRPM(); //Long RPM is included here - if(fuelPumpOn == false) { digitalWrite(pinFuelPump, HIGH); fuelPumpOn = true; } //Check if the fuel pump is on and turn it on if it isn't. + //if(fuelPumpOn == false) { digitalWrite(pinFuelPump, HIGH); fuelPumpOn = true; } //Check if the fuel pump is on and turn it on if it isn't. + FUEL_PUMP_ON(); } else { @@ -952,8 +958,9 @@ void loop() //----------------------------------------------------------------------------------------------------- readMAP(); - if ((mainLoopCount & 31) == 1) //Every 32 loops + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) //Every 32 loops { + BIT_CLEAR(TIMER_mask, BIT_TIMER_15HZ); readTPS(); //TPS reading to be performed every 32 loops (any faster and it can upset the TPSdot sampling time) //Check for launching/flat shift (clutch) can be done around here too @@ -996,14 +1003,19 @@ void loop() //And check whether the tooth log buffer is ready if(toothHistoryIndex > TOOTH_LOG_SIZE) { BIT_SET(currentStatus.squirt, BIT_SQUIRT_TOOTHLOG1READY); } + + //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough + boostControl(); } - if( (mainLoopCount & 63) == 1) //Every 64 loops + if( BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) //Every 64 loops { - boostControl(); //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough + //Nothing here currently + BIT_CLEAR(TIMER_mask, BIT_TIMER_30HZ); } //The IAT and CLT readings can be done less frequently. This still runs about 4 times per second - if ((mainLoopCount & 255) == 1) //Every 256 loops + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_4HZ)) //Every 256 loops { + BIT_CLEAR(TIMER_mask, BIT_TIMER_4HZ); readCLT(); readIAT(); readO2(); @@ -1014,15 +1026,15 @@ void loop() { if (configPage10.enable_candata_in) { - if (configPage10.caninput_sel[currentStatus.current_caninchannel]) //if current input channel is enabled + if (BIT_CHECK(configPage10.caninput_sel,currentStatus.current_caninchannel)) //if current input channel bit is enabled { - sendCancommand(2,0,0,0,configPage10.caninput_param_group[currentStatus.current_caninchannel]); //send an R command for data from paramgroup[currentStatus.current_caninchannel] + sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage10.caninput_param_group[currentStatus.current_caninchannel]&2047)+256)); //send an R command for data from paramgroup[currentStatus.current_caninchannel] } else { - if (currentStatus.current_caninchannel <= 6) + if (currentStatus.current_caninchannel < 15) { - currentStatus.current_caninchannel++; //step to next input channel if under 9 + currentStatus.current_caninchannel++; //step to next input channel if under 15 } else { @@ -1035,26 +1047,26 @@ void loop() //if serial3io is enabled then check for serial3 requests. if (configPage10.enable_candata_in) { - if (configPage10.caninput_sel[currentStatus.current_caninchannel]) //if current input channel is enabled + if (BIT_CHECK(configPage10.caninput_sel,currentStatus.current_caninchannel)) //if current input channel is enabled { if (configPage10.enable_canbus == 1) //can via secondary serial { - sendCancommand(2,0,0,0,configPage10.caninput_param_group[currentStatus.current_caninchannel]); //send an R command for data from paramgroup[currentStatus.current_caninchannel] + sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage10.caninput_param_group[currentStatus.current_caninchannel]&2047)+256)); //send an R command for data from paramgroup[currentStatus.current_caninchannel] } else if (configPage10.enable_canbus == 2) // can via internal can module { - sendCancommand(3,configPage10.speeduino_tsCanId,0,0,configPage10.caninput_param_group[currentStatus.current_caninchannel]); //send via localcanbus the command for data from paramgroup[currentStatus.current_caninchannel] + sendCancommand(3,configPage10.speeduino_tsCanId,currentStatus.current_caninchannel,0,configPage10.caninput_param_group[currentStatus.current_caninchannel]); //send via localcanbus the command for data from paramgroup[currentStatus.current_caninchannel] } } else { - if (currentStatus.current_caninchannel <= 6) + if (currentStatus.current_caninchannel < 15) { - currentStatus.current_caninchannel++; //step to next input channel if under 9 + currentStatus.current_caninchannel++; //step to next input channel if under 15 } else { - currentStatus.current_caninchannel = 0; //reset input channel back to 1 + currentStatus.current_caninchannel = 0; //reset input channel back to 0 } } } @@ -1063,6 +1075,13 @@ void loop() vvtControl(); idleControl(); //Perform any idle related actions. Even at higher frequencies, running 4x per second is sufficient. } + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_1HZ)) //Every 1024 loops (Approx. 1 per second) + { + //Approx. once per second + readBaro(); + BIT_CLEAR(TIMER_mask, BIT_TIMER_1HZ); + } + if(configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL || configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL) { idleControl(); } //Run idlecontrol every loop for stepper idle. //Always check for sync @@ -1070,6 +1089,7 @@ void loop() if (currentStatus.hasSync && (currentStatus.RPM > 0)) { if(currentStatus.startRevolutions >= configPage2.StgCycles) { ignitionOn = true; fuelOn = true;} //Enable the fuel and ignition, assuming staging revolutions are complete + else { ignitionOn = false; fuelOn = false;} //If it is, check is we're running or cranking if(currentStatus.RPM > ((unsigned int)configPage2.crankRPM * 100)) //Crank RPM stored in byte as RPM / 100 { @@ -1094,7 +1114,7 @@ void loop() //Begin the fuel calculation //Calculate an injector pulsewidth from the VE currentStatus.corrections = correctionsFuel(); - //currentStatus.corrections = 100; + lastAdvance = currentStatus.advance; //Store the previous advance value if (configPage1.algorithm == 0) //Check which fuelling algorithm is being used { //Speed Density @@ -1280,7 +1300,8 @@ void loop() //Calculate start angle for each channel //1 cylinder (Everyone gets this) - ignition1StartAngle = CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; // 360 - desired advance angle - number of degrees the dwell will take + ignition1EndAngle = CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition1StartAngle = ignition1EndAngle - dwellAngle; // 360 - desired advance angle - number of degrees the dwell will take if(ignition1StartAngle < 0) {ignition1StartAngle += CRANK_ANGLE_MAX_IGN;} //This test for more cylinders and do the same thing @@ -1288,40 +1309,50 @@ void loop() { //2 cylinders case 2: - ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} break; //3 cylinders case 3: - ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; ignition3StartAngle = channel3IgnDegrees + 360 - currentStatus.advance - dwellAngle; if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} break; //4 cylinders case 4: - ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) { - ignition3StartAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = ignition3EndAngle - dwellAngle; if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - ignition4StartAngle = channel4IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; + + ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition4StartAngle = ignition4EndAngle - dwellAngle; if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} } break; //5 cylinders case 5: - ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} - ignition3StartAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = ignition3EndAngle - dwellAngle; if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - ignition4StartAngle = channel4IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; + ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition4StartAngle = ignition4EndAngle - dwellAngle; if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} ignition5StartAngle = channel5IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; @@ -1330,18 +1361,26 @@ void loop() break; //6 cylinders case 6: - ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - ignition3StartAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = ignition3EndAngle - dwellAngle; if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} break; //8 cylinders case 8: - ignition2StartAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance - dwellAngle; + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - ignition3StartAngle = channel3IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; + + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = ignition3EndAngle - dwellAngle; if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - ignition4StartAngle = channel4IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; + + ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition4StartAngle = ignition4EndAngle - dwellAngle; if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} break; @@ -1349,6 +1388,9 @@ void loop() default: break; } + //If ignition timing is being tracked per tooth, perform the calcs to get the end teeth + //This only needs to be run if the advance figure has changed, otherwise the end teeth will still be the same + if( (configPage1.perToothIgn == true) && (lastAdvance != currentStatus.advance) ) { triggerSetEndTeeth(); } //*********************************************************************************************** //| BEGIN FUEL SCHEDULES diff --git a/speeduino/storage.h b/speeduino/storage.h index 93df9c5b..6d176a7e 100644 --- a/speeduino/storage.h +++ b/speeduino/storage.h @@ -48,7 +48,8 @@ Current layout of EEPROM data (Version 3) is as follows (All sizes are in bytes) | 1441 |2 | X and Y size4 | | 1443 |36 | PAGE 9 MAP4 | | 1479 |6 | X and Y Bins4 | -| 1500 |128 | CANBUS config and data | +| 1500 |128 | CANBUS config and data (Table 10_) | +| 1628 |192 | Table 11 - General settings | | | | 2559 |512 | Calibration data (O2) | | 3071 |512 | Calibration data (IAT) | @@ -115,6 +116,8 @@ Current layout of EEPROM data (Version 3) is as follows (All sizes are in bytes) #define EEPROM_CONFIG9_YBINS4 1485 #define EEPROM_CONFIG10_START 1500 #define EEPROM_CONFIG10_END 1628 +#define EEPROM_CONFIG11_START 1628 +#define EEPROM_CONFIG11_END 1820 //Calibration data is stored at the end of the EEPROM (This is in case any further calibration tables are needed as they are large blocks) #define EEPROM_LAST_BARO 2558 @@ -122,4 +125,4 @@ Current layout of EEPROM data (Version 3) is as follows (All sizes are in bytes) #define EEPROM_CALIBRATION_IAT 3071 #define EEPROM_CALIBRATION_CLT 3583 -#endif // STORAGE_H +#endif // STORAGE_H diff --git a/speeduino/storage.ino b/speeduino/storage.ino index 7db0ea66..fcb1ca43 100644 --- a/speeduino/storage.ino +++ b/speeduino/storage.ino @@ -271,8 +271,19 @@ void writeConfig() { if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG10_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG10_START))); } } - //********************************************************************************************************************************************************************************* + //********************************************************************************************************************************************************************************* + + /*--------------------------------------------------- + | Config page 11 (See storage.h for data layout) + | 192 byte long config table + -----------------------------------------------------*/ + pnt_configPage = (byte *)&configPage11; //Create a pointer to Page 11 in memory + //As there are no 3d tables in this page, all 192 bytes can simply be read in + for(int x=EEPROM_CONFIG11_START; xvalues[x]; //Simply return the coresponding value valueFound = true; + break; } else { @@ -143,6 +144,7 @@ int table2D_getValue(struct table2D *fromTable, int X_in) { returnValue = fromTable->values16[x]; //Simply return the coresponding value valueFound = true; + break; } else { @@ -366,7 +368,7 @@ int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) int D = fromTable->values[yMax][xMax]; //Check that all values aren't just the same (This regularly happens with things like the fuel trim maps) - if( (A == D) ) { tableResult = A; } + if( (A == B) && (A == C) && (A == D) ) { tableResult = A; } else { //Create some normalised position values @@ -374,13 +376,29 @@ int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) //Initial check incase the values were hit straight on + long p = (long)X - xMinValue; if (xMaxValue == xMinValue) { p = (p << 8); } //This only occurs if the requested X value was equal to one of the X axis bins else { p = ( (p << 8) / (xMaxValue - xMinValue) ); } //This is the standard case - long q = (long)Y - yMinValue; - if (yMaxValue == yMinValue) { q = (q << 8); } - else { q = 256 - ( (q << 8) / (yMinValue - yMaxValue) ); } + long q; + if (yMaxValue == yMinValue) + { + q = (long)Y - yMinValue; + q = (q << 8); + } + //Standard case + else + { + q = long(Y) - yMaxValue; + q = 256 - ( (q << 8) / (yMinValue - yMaxValue) ); + } + +/* + long q; + if (yMaxValue == yMinValue) { q = ((long)(Y - yMinValue) << 8); } + else { q = 256 - (((long)(Y - yMaxValue) << 8) / (yMinValue - yMaxValue)); } + */ int m = ((256-p) * (256-q)) >> 8; int n = (p * (256-q)) >> 8; @@ -390,91 +408,87 @@ int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) } return tableResult; } - /* Executed a benchmark on all options and this is the results - * @Mega: Stadard:463028 92 |FP Math:850392 92.57 |Clean code:618308 92 , Number of loops:5000 - * @STM32F1: Stadard:21449 92 |FP Math:125707 92.57 |Clean code:11634 92 , Number of loops:5000 - * @STM32F4: Stadard:7123 92 |FP Math:16503 92.57 |Clean code:4618 92 , Number of loops:5000 - * @STM32F1: Stadard:13000 loops/S |Clean code:15700 loops/S @8000RPM ~20.8% faster - + * Stadard:226224 91 |FP Math:32240 91.89 |Clean code:34056 91, Number of loops:2500 + * //This function pulls a value from a 3D table given a target for X and Y coordinates. //It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf float get3DTableValueF(struct table3D *fromTable, int Y, int X) { + float m, n, o ,p, q, r; byte xMin, xMax; byte yMin, yMax; int yMaxValue, yMinValue; int xMaxValue, xMinValue; - float tableResult = 0; - xMin = fromTable->lastXMin; - yMin = fromTable->lastYMin; - if(xMin == 0) { xMin = fromTable->xSize-1; } - if(yMin == 0) { yMin = fromTable->ySize-1; } + if(fromTable->lastXMin==0) {fromTable->lastXMin = fromTable->xSize-1;} + else {xMin = fromTable->lastXMin;} + if(fromTable->lastYMin==0) {fromTable->lastYMin = fromTable->ySize-1;} + else {yMin = fromTable->lastYMin;} + //yMin = fromTable->lastYMin; + + if(xMin>fromTable->xSize-1) + { + fromTable->lastXMin = fromTable->xSize-1; + xMin = fromTable->xSize-1; + } + if(yMin>fromTable->ySize-1) + { + fromTable->lastYMin = fromTable->ySize-1; + yMin = fromTable->ySize-1; + } do //RPM axis { - if(X >= fromTable->axisX[xMin]) {break;} + if(X>=fromTable->axisX[xMin]) {break;} xMin--; }while(1); - + fromTable->lastXMin = xMin + 1; do //MAP axis { - if(Y <= fromTable->axisY[yMin]) {break;} + if(Y<=fromTable->axisY[yMin]) {break;} yMin--; }while(1); - + fromTable->lastYMin = yMin + 1; + xMax = xMin + 1; yMax = yMin + 1; - if (xMax > fromTable->xSize-1) //Overflow protection + if (xMax>fromTable->xSize-1) //Overflow protection { xMax = fromTable->xSize-1; xMin = xMax - 1; } - fromTable->lastXMin = xMin + 1; - - if (yMax > fromTable->ySize-1) //Overflow protection + if (yMax>fromTable->ySize-1) //Overflow protection { yMax = fromTable->ySize-1; yMin = yMax - 1; } - fromTable->lastYMin = yMin + 1; + + yMaxValue = fromTable->axisY[yMax]; + yMinValue = fromTable->axisY[yMin]; + xMaxValue = fromTable->axisX[xMax]; + xMinValue = fromTable->axisX[xMin]; int A = fromTable->values[yMin][xMin]; + int B = fromTable->values[yMin][xMax]; + int C = fromTable->values[yMax][xMin]; int D = fromTable->values[yMax][xMax]; - if(A == D) { tableResult = A; } - else - { - int B = fromTable->values[yMin][xMax]; - int C = fromTable->values[yMax][xMin]; - yMaxValue = fromTable->axisY[yMax]; - yMinValue = fromTable->axisY[yMin]; - xMaxValue = fromTable->axisX[xMax]; - xMinValue = fromTable->axisX[xMin]; - - float m, n, o ,p, q, r; - p = float(X - xMinValue) / (xMaxValue - xMinValue); //(RPM - RPM[1])/(RPM[2]- RPM[1]) - q = float(Y - yMinValue) / (yMaxValue - yMinValue); //(MAP - MAP[1])/(MAP[2]- MAP[1]) + p = float(X - xMinValue) / (xMaxValue - xMinValue); //(RPM - RPM[1])/(RPM[2]- RPM[1]) + q = float(Y - yMinValue) / (yMaxValue - yMinValue); //(MAP - MAP[1])/(MAP[2]- MAP[1]) - m = (1.0-p) * (1.0-q); - n = p * (1-q); - o = (1-p) * q; - r = p * q; - tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ); - } - return tableResult; + m = (1.0-p) * (1.0-q); + n = p * (1-q); + o = (1-p) * q; + r = p * q; + + return ( (A * m) + (B * n) + (C * o) + (D * r) ); } - -//This function pulls a value from a 3D table given a target for X and Y coordinates. -//It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf +*/ int get3DTableValueS(struct table3D *fromTable, int Y, int X) { byte xMin, xMax; byte yMin, yMax; - long p, q; - int yMaxValue, yMinValue; - int xMaxValue, xMinValue; int tableResult = 0; xMin = fromTable->lastXMin; @@ -484,54 +498,94 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) do //RPM axis { - if(X >= fromTable->axisX[xMin]) {break;} + if(X > fromTable->axisX[xMin]) + { + if (xMin == (fromTable->xSize-1) ) { xMax = xMin; } //Overflow protection + else { xMax = xMin + 1; } + break; + } + else if(X == fromTable->axisX[xMin]) + { + xMax = xMin; + break; + } xMin--; - }while(1); - + }while(true); + do //MAP axis { - if(Y <= fromTable->axisY[yMin]) {break;} + if(Y < fromTable->axisY[yMin]) + { + if (yMin == (fromTable->ySize-1) ) { yMax = yMin; } //Overflow protection + else { yMax = yMin + 1; } + break; + } + else if(Y == fromTable->axisY[yMin]) + { + yMax = yMin; + break; + } yMin--; - }while(1); - - xMax = xMin + 1; - yMax = yMin + 1; - if (xMax > fromTable->xSize-1) //Overflow protection - { - xMax = fromTable->xSize-1; - xMin = xMax - 1; - } - fromTable->lastXMin = xMin + 1; + }while(true); - if (yMax > fromTable->ySize-1) //Overflow protection - { - yMax = fromTable->ySize-1; - yMin = yMax - 1; - } - fromTable->lastYMin = yMin + 1; + fromTable->lastXMin = xMax; + fromTable->lastYMin = yMax; + + //Serial.print("xMin, xMax ");Serial.print(xMin);Serial.print(",");Serial.println(xMax); + //Serial.print("yMin, yMax ");Serial.print(yMin);Serial.print(",");Serial.println(yMax); int A = fromTable->values[yMin][xMin]; - int D = fromTable->values[yMax][xMax]; - if(A == D) { tableResult = A; } + if((xMin == xMax) && (yMin == yMax)) { tableResult = A; } + else if(xMin == xMax) // Simple 2D + { + int D = fromTable->values[yMax][xMax]; + int yMaxValue = fromTable->axisY[yMax]; + int yMinValue = fromTable->axisY[yMin]; + long q = (long)Y - yMinValue; + q = ((q << 6) * (D - A)) / (yMaxValue - yMinValue); + tableResult = A + (q >> 6); + } + else if(yMin == yMax) // Simple 2D + { + int D = fromTable->values[yMax][xMax]; + int xMaxValue = fromTable->axisX[xMax]; + int xMinValue = fromTable->axisX[xMin]; + long q = (long)X - xMinValue; + q = ((q << 6) * (D - A)) / (xMaxValue - xMinValue); + tableResult = A + (q >> 6); + } else { int B = fromTable->values[yMin][xMax]; int C = fromTable->values[yMax][xMin]; + int D = fromTable->values[yMax][xMax]; - yMaxValue = fromTable->axisY[yMax]; - yMinValue = fromTable->axisY[yMin]; - xMaxValue = fromTable->axisX[xMax]; - xMinValue = fromTable->axisX[xMin]; + int yMaxValue = fromTable->axisY[yMax]; + int yMinValue = fromTable->axisY[yMin]; + int xMaxValue = fromTable->axisX[xMax]; + int xMinValue = fromTable->axisX[xMin]; - p = ((long)(X - xMinValue) << 8) / (xMaxValue - xMinValue); //(RPM - RPM[1])/(RPM[2]- RPM[1]) - q = 256 - (((long)(Y - yMaxValue) << 8) / (yMinValue - yMaxValue)); //(MAP - MAP[2])/(MAP[2]- MAP[1]) + long p = (long)X - xMinValue; + if (xMaxValue == xMinValue) { p = (p << 8); } //This only occurs if the requested X value was equal to one of the X axis bins + else { p = ( (p << 8) / (xMaxValue - xMinValue) ); } //This is the standard case + + long q; + if (yMaxValue == yMinValue) + { + q = (long)Y - yMinValue; + q = (q << 8); + } + else + { + q = long(Y) - yMaxValue; + q = 256 - ( (q << 8) / (yMinValue - yMaxValue) ); + } int m = ((256-p) * (256-q)) >> 8; int n = (p * (256-q)) >> 8; int o = ((256-p) * q) >> 8; int r = (p * q) >> 8; - tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; + tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; } - return tableResult; + return tableResult; } -*/ diff --git a/speeduino/timers.h b/speeduino/timers.h index c0981750..a6bb325a 100644 --- a/speeduino/timers.h +++ b/speeduino/timers.h @@ -19,8 +19,10 @@ Hence we will preload the timer with 131 cycles to leave 125 until overflow (1ms #ifndef TIMERS_H #define TIMERS_H -volatile int loop100ms; -volatile int loop250ms; +volatile byte loop33ms; +volatile byte loop66ms; +volatile byte loop100ms; +volatile byte loop250ms; volatile int loopSec; volatile unsigned int dwellLimit_uS; diff --git a/speeduino/timers.ino b/speeduino/timers.ino index 35455d1c..fd3f8225 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -44,9 +44,10 @@ void initialiseTimers() // Set up an interrupt Timer4.setMode(1, TIMER_OUTPUT_COMPARE); Timer4.attachInterrupt(1, oneMSInterval); - Timer4.resume(); + Timer4.resume(); //Start Timer #endif + pinMode(LED_BUILTIN, OUTPUT); //pinMode(13, OUTPUT); dwellLimit_uS = (1000 * configPage2.dwellLimit); lastRPM_100ms = 0; } @@ -62,6 +63,8 @@ void oneMSInterval() //Most ARM chips can simply call a function { //Increment Loop Counters + loop33ms++; + loop66ms++; loop100ms++; loop250ms++; loopSec++; @@ -78,11 +81,27 @@ void oneMSInterval() //Most ARM chips can simply call a function if(ignitionSchedule4.Status == RUNNING) { if( (ignitionSchedule4.startTime < targetOverdwellTime) && (configPage2.useDwellLim) ) { endCoil4Charge(); } } if(ignitionSchedule5.Status == RUNNING) { if( (ignitionSchedule5.startTime < targetOverdwellTime) && (configPage2.useDwellLim) ) { endCoil5Charge(); } } + //15Hz loop + if (loop66ms == 66) + { + loop66ms = 0; + BIT_SET(TIMER_mask, BIT_TIMER_15HZ); + } + + //30Hz loop + if (loop33ms == 33) + { + loop33ms = 0; + BIT_SET(TIMER_mask, BIT_TIMER_30HZ); + } + //Loop executed every 100ms loop //Anything inside this if statement will run every 100ms. if (loop100ms == 100) { loop100ms = 0; //Reset counter + BIT_SET(TIMER_mask, BIT_TIMER_10HZ); + digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); currentStatus.rpmDOT = (currentStatus.RPM - lastRPM_100ms) * 10; //This is the RPM per second that the engine has accelerated/decelleratedin the last loop lastRPM_100ms = currentStatus.RPM; //Record the current RPM for next calc @@ -93,6 +112,7 @@ void oneMSInterval() //Most ARM chips can simply call a function if (loop250ms == 250) { loop250ms = 0; //Reset Counter. + BIT_SET(TIMER_mask, BIT_TIMER_4HZ); #if defined(CORE_AVR) //Reset watchdog timer (Not active currently) //wdt_reset(); @@ -103,7 +123,7 @@ void oneMSInterval() //Most ARM chips can simply call a function if (loopSec == 1000) { loopSec = 0; //Reset counter. - + BIT_SET(TIMER_mask, BIT_TIMER_1HZ); dwellLimit_uS = (1000 * configPage2.dwellLimit); //Update uS value incase setting has changed if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) { dwellLimit_uS = dwellLimit_uS * 3; } //Make sure the overdwell doesn't clobber the fixed ignition cranking if enabled. diff --git a/speeduino/updates.ino b/speeduino/updates.ino index b8044392..96ddee79 100644 --- a/speeduino/updates.ino +++ b/speeduino/updates.ino @@ -8,7 +8,7 @@ void doUpdates() { - #define CURRENT_DATA_VERSION 3 + #define CURRENT_DATA_VERSION 4 //May 2017 firmware introduced a -40 offset on the ignition table. Update that table to +40 if(EEPROM.read(EEPROM_DATA_VERSION) == 2) @@ -23,6 +23,19 @@ void doUpdates() writeConfig(); EEPROM.write(EEPROM_DATA_VERSION, 3); } + //June 2017 required the forced addition of some CAN values to avoid weird errors + if(EEPROM.read(EEPROM_DATA_VERSION) == 3) + { + configPage10.speeduino_tsCanId = 0; + configPage10.true_address = 256; + configPage10.realtime_base_address = 336; + + //There was a bad value in the May base tune for the spark duration setting, fix it here if it's a problem + if(configPage2.sparkDur == 255) { configPage2.sparkDur = 10; } + + writeConfig(); + EEPROM.write(EEPROM_DATA_VERSION, 4); + } //Final check is always for 255 and 0 (Brand new arduino) if( (EEPROM.read(EEPROM_DATA_VERSION) == 0) || (EEPROM.read(EEPROM_DATA_VERSION) == 255) ) diff --git a/speeduino/utils.h b/speeduino/utils.h index b258be60..d99afc9c 100644 --- a/speeduino/utils.h +++ b/speeduino/utils.h @@ -1,15 +1,55 @@ /* These are some utility functions and variables used through the main code -*/ +*/ #ifndef UTILS_H #define UTILS_H #include -unsigned int freeRam (); +uint16_t freeRam (); void setPinMapping(byte boardID); unsigned int PW(); unsigned int PW_SD(); unsigned int PW_AN(); +#if defined(CORE_STM32) + //STM32F1/variants/.../board.cpp + #if defined (STM32F4) + #define A0 PA0 + #define A1 PA1 + #define A2 PA2 + #define A3 PA3 + #define A4 PA4 + #define A5 PA5 + #define A6 PA6 + #define A7 PA7 + #define A8 PB0 + #define A9 PB1 + #define A10 PC0 + #define A11 PC1 + #define A12 PC2 + #define A13 PC3 + #define A14 PC4 + #define A15 PC5 + #else + #define A0 PB0 + #define A1 PA7 + #define A2 PA6 + #define A3 PA5 + #define A4 PA4 + #define A5 PA3 + #define A6 PA2 + #define A7 PA1 + #define A8 PA0 + //STM32F1 have only 9 12bit adc + #define A9 PB0 + #define A10 PA7 + #define A11 PA6 + #define A12 PA5 + #define A13 PA4 + #define A14 PA3 + #define A15 PA2 + #endif +#endif + #endif // UTILS_H diff --git a/speeduino/utils.ino b/speeduino/utils.ino index 5ffb43d8..a982f8f3 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -7,15 +7,18 @@ /* Returns how much free dynamic memory exists (between heap and stack) + This function is one big MISRA violation. MISRA advisories forbid directly poking at memory addresses, however there is no other way of determining heap size on embedded systems. */ #include "utils.h" -unsigned int freeRam () +uint16_t freeRam () { #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) extern int __heap_start, *__brkval; - int v; - return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); + uint16_t v; + + return (uint16_t) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); + #elif defined(CORE_TEENSY) uint32_t stackTop; uint32_t heapTop; @@ -33,52 +36,13 @@ unsigned int freeRam () #elif defined(CORE_STM32) char top = 't'; return &top - reinterpret_cast(sbrk(0)); + #endif } void setPinMapping(byte boardID) { //This is dumb, but it'll do for now to get things compiling - #if defined(CORE_STM32) - //STM32F1/variants/.../board.cpp - #if defined (STM32F4) - #define A0 PA0 - #define A1 PA1 - #define A2 PA2 - #define A3 PA3 - #define A4 PA4 - #define A5 PA5 - #define A6 PA6 - #define A7 PA7 - #define A8 PB0 - #define A9 PB1 - #define A10 PC0 - #define A11 PC1 - #define A12 PC2 - #define A13 PC3 - #define A14 PC4 - #define A15 PC5 - #else - #define A0 PB0 - #define A1 PA7 - #define A2 PA6 - #define A3 PA5 - #define A4 PA4 - #define A5 PA3 - #define A6 PA2 - #define A7 PA1 - #define A8 PA0 - //STM32F1 have only 9 12bit adc - #define A9 PB0 - #define A10 PA7 - #define A11 PA6 - #define A12 PA5 - #define A13 PA4 - #define A14 PA3 - #define A15 PA2 - #endif - #endif - switch (boardID) { case 0: @@ -183,35 +147,6 @@ void setPinMapping(byte boardID) pinCoil4 = 21; pinCoil3 = 30; pinO2 = A22; - #elif defined(CORE_STM32) - //http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/0.0.12/hardware/maple-mini.html#master-pin-map - //pins 23, 24 and 33 couldn't be used - pinInjector1 = 15; //Output pin injector 1 is on - pinInjector2 = 16; //Output pin injector 2 is on - pinInjector3 = 17; //Output pin injector 3 is on - pinInjector4 = 18; //Output pin injector 4 is on - pinCoil1 = 19; //Pin for coil 1 - pinCoil2 = 20; //Pin for coil 2 - pinCoil3 = 21; //Pin for coil 3 - pinCoil4 = 26; //Pin for coil 4 - pinCoil5 = 27; //Pin for coil 5 - pinTPS = A0; //TPS input pin - pinMAP = A1; //MAP sensor pin - pinIAT = A2; //IAT sensor pin - pinCLT = A3; //CLS sensor pin - pinO2 = A4; //O2 Sensor pin - pinBat = A5; //Battery reference voltage pin - pinStepperDir = 12; //Direction pin for DRV8825 driver - pinStepperStep = 13; //Step pin for DRV8825 driver - pinStepperEnable = 14; //Enable pin for DRV8825 - pinDisplayReset = 2; // OLED reset pin - pinFan = 1; //Pin for the fan output - pinFuelPump = 0; //Fuel pump output - pinTachOut = 31; //Tacho output pin - //external interrupt enabled pins - pinFlex = 32; // Flex sensor (Must be external interrupt enabled) - pinTrigger = 25; //The CAS pin - pinTrigger2 = 22; //The Cam Sensor pin #endif break; @@ -271,12 +206,13 @@ void setPinMapping(byte boardID) pinCoil3 = PB12; //Pin for coil 3 pinCoil4 = PB13; //Pin for coil 4 pinCoil5 = PB14; //Pin for coil 5 - pinTPS = PA0; //TPS input pin - pinMAP = PA1; //MAP sensor pin - pinIAT = PA2; //IAT sensor pin - pinCLT = PA3; //CLS sensor pin - pinO2 = PA4; //O2 Sensor pin - pinBat = PA5; //Battery reference voltage pin + pinTPS = A0; //TPS input pin + pinMAP = A1; //MAP sensor pin + pinIAT = A2; //IAT sensor pin + pinCLT = A3; //CLS sensor pin + pinO2 = A4; //O2 Sensor pin + pinBat = A5; //Battery reference voltage pin + pinBaro = A6; pinStepperDir = PD8; //Direction pin for DRV8825 driver pinStepperStep = PB15; //Step pin for DRV8825 driver pinStepperEnable = PD9; //Enable pin for DRV8825 @@ -317,6 +253,7 @@ void setPinMapping(byte boardID) pinFlex = 32; // Flex sensor (Must be external interrupt enabled) pinTrigger = 25; //The CAS pin pinTrigger2 = 22; //The Cam Sensor pin + pinBaro = pinMAP; #endif break; @@ -324,8 +261,8 @@ void setPinMapping(byte boardID) //Pin mappings as per the MX5 PNP shield pinInjector1 = 11; //Output pin injector 1 is on pinInjector2 = 10; //Output pin injector 2 is on - pinInjector3 = 9; //Output pin injector 3 is on - pinInjector4 = 8; //Output pin injector 4 is on + pinInjector3 = 8; //Output pin injector 3 is on + pinInjector4 = 9; //Output pin injector 4 is on pinInjector5 = 14; //Output pin injector 5 is on pinCoil1 = 39; //Pin for coil 1 pinCoil2 = 41; //Pin for coil 2 @@ -417,6 +354,7 @@ void setPinMapping(byte boardID) pinFan = 47; //Pin for the fan output pinFuelPump = 4; //Fuel pump output pinTachOut = 49; //Tacho output pin + break; case 30: //Pin mappings as per the dazv6 shield @@ -486,18 +424,15 @@ void setPinMapping(byte boardID) break; } - //First time running? - if (configPage3.launchPin < BOARD_NR_GPIO_PINS) - { - //Setup any devices that are using selectable pins - if (configPage3.launchPin != 0) { pinLaunch = configPage3.launchPin; } - if (configPage2.ignBypassPin != 0) { pinIgnBypass = configPage2.ignBypassPin; } - if (configPage1.tachoPin != 0) { pinTachOut = configPage1.tachoPin; } - if (configPage2.fuelPumpPin != 0) { pinFuelPump = configPage2.fuelPumpPin; } - if (configPage4.fanPin != 0) { pinFan = configPage4.fanPin; } - if (configPage3.boostPin != 0) { pinBoost = configPage3.boostPin; } - if (configPage3.vvtPin != 0) { pinVVT_1 = configPage3.vvtPin; } - } + //Setup any devices that are using selectable pins + if ( (configPage3.launchPin != 0) && (configPage3.launchPin < BOARD_NR_GPIO_PINS) ) { pinLaunch = configPage3.launchPin; } + if ( (configPage2.ignBypassPin != 0) && (configPage2.ignBypassPin < BOARD_NR_GPIO_PINS) ) { pinIgnBypass = configPage2.ignBypassPin; } + if ( (configPage1.tachoPin != 0) && (configPage1.tachoPin < BOARD_NR_GPIO_PINS) ) { pinTachOut = configPage1.tachoPin; } + if ( (configPage2.fuelPumpPin != 0) && (configPage2.fuelPumpPin < BOARD_NR_GPIO_PINS) ) { pinFuelPump = configPage2.fuelPumpPin; } + if ( (configPage4.fanPin != 0) && (configPage4.fanPin < BOARD_NR_GPIO_PINS) ) { pinFan = configPage4.fanPin; } + if ( (configPage3.boostPin != 0) && (configPage3.boostPin < BOARD_NR_GPIO_PINS) ) { pinBoost = configPage3.boostPin; } + if ( (configPage3.vvtPin != 0) && (configPage3.vvtPin < BOARD_NR_GPIO_PINS) ) { pinVVT_1 = configPage3.vvtPin; } + if ( (configPage3.useExtBaro != 0) && (configPage3.baroPin < BOARD_NR_GPIO_PINS) ) { pinBaro = configPage3.baroPin + A0; } //Finally, set the relevant pin modes for outputs pinMode(pinCoil1, OUTPUT); @@ -546,6 +481,8 @@ void setPinMapping(byte boardID) tach_pin_port = portOutputRegister(digitalPinToPort(pinTachOut)); tach_pin_mask = digitalPinToBitMask(pinTachOut); + pump_pin_port = portOutputRegister(digitalPinToPort(pinFuelPump)); + pump_pin_mask = digitalPinToBitMask(pinFuelPump); //And for inputs pinMode(pinMAP, INPUT); @@ -555,12 +492,12 @@ void setPinMapping(byte boardID) pinMode(pinIAT, INPUT); pinMode(pinCLT, INPUT); pinMode(pinBat, INPUT); + pinMode(pinBaro, INPUT); pinMode(pinTrigger, INPUT); pinMode(pinTrigger2, INPUT); pinMode(pinTrigger3, INPUT); pinMode(pinFlex, INPUT_PULLUP); //Standard GM / Continental flex sensor requires pullup - // pinMode(pinLaunch, INPUT_PULLUP); //This should work for both NO and NC grounding switches - if (configPage3.lnchPullRes) { + if (configPage3.lnchPullRes == true) { pinMode(pinLaunch, INPUT_PULLUP); } else { @@ -598,34 +535,37 @@ unsigned int PW(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen) //Standard float version of the calculation //return (REQ_FUEL * (float)(VE/100.0) * (float)(MAP/100.0) * (float)(TPS/100.0) * (float)(corrections/100.0) + injOpen); //Note: The MAP and TPS portions are currently disabled, we use VE and corrections only - unsigned int iVE, iMAP, iAFR, iCorrections; + uint16_t iVE, iCorrections; + uint16_t iMAP = 100; + uint16_t iAFR = 147; //100% float free version, does sacrifice a little bit of accuracy, but not much. iVE = ((unsigned int)VE << 7) / 100; - if ( configPage1.multiplyMAP ) { + if ( configPage1.multiplyMAP == true ) { iMAP = ((unsigned int)MAP << 7) / currentStatus.baro; //Include multiply MAP (vs baro) if enabled } - if ( configPage1.includeAFR && (configPage3.egoType == 2)) { + if ( (configPage1.includeAFR == true) && (configPage3.egoType == 2)) { iAFR = ((unsigned int)currentStatus.O2 << 7) / currentStatus.afrTarget; //Include AFR (vs target) if enabled } iCorrections = (corrections << 7) / 100; unsigned long intermediate = ((long)REQ_FUEL * (long)iVE) >> 7; //Need to use an intermediate value to avoid overflowing the long - if ( configPage1.multiplyMAP ) { - intermediate = (intermediate * iMAP) >> 7; + if ( configPage1.multiplyMAP == true ) { + intermediate = (intermediate * (unsigned long)iMAP) >> 7; } - if ( configPage1.includeAFR && (configPage3.egoType == 2)) { - intermediate = (intermediate * iAFR) >> 7; //EGO type must be set to wideband for this to be used + if ( (configPage1.includeAFR == true) && (configPage3.egoType == 2) ) { + intermediate = (intermediate * (unsigned long)iAFR) >> 7; //EGO type must be set to wideband for this to be used } - intermediate = (intermediate * iCorrections) >> 7; - if (intermediate == 0) { - return 0; //If the pulsewidth is 0, we return here before the opening time gets added - } - - intermediate += injOpen; //Add the injector opening time - if ( intermediate > 65535) { - intermediate = 65535; //Make sure this won't overflow when we convert to uInt. This means the maximum pulsewidth possible is 65.535mS + intermediate = (intermediate * (unsigned long)iCorrections) >> 7; + if (intermediate != 0) + { + //If intermeditate is not 0, we need to add the opening time (0 typically indicates that one of the full fuel cuts is active) + intermediate += injOpen; //Add the injector opening time + if ( intermediate > 65535) + { + intermediate = 65535; //Make sure this won't overflow when we convert to uInt. This means the maximum pulsewidth possible is 65.535mS + } } return (unsigned int)(intermediate); @@ -640,9 +580,5 @@ unsigned int PW_SD(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen unsigned int PW_AN(int REQ_FUEL, byte VE, byte TPS, int corrections, int injOpen) { - //Sanity check - if (TPS > 100) { - TPS = 100; - } return PW(REQ_FUEL, VE, currentStatus.MAP, corrections, injOpen); } From 6d3439060d3f498b9bae1065230312e33cbcaa49 Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Wed, 2 Aug 2017 23:29:05 -0300 Subject: [PATCH 044/133] Added possibility to use another library for STM32 --- speeduino/scheduler.h | 130 +++++++++++++++++-------- speeduino/scheduler.ino | 48 ++++++--- speeduino/src/FastCRC/FastCRC_tables.h | 2 +- 3 files changed, 122 insertions(+), 58 deletions(-) diff --git a/speeduino/scheduler.h b/speeduino/scheduler.h index 41f7d563..397f28f8 100644 --- a/speeduino/scheduler.h +++ b/speeduino/scheduler.h @@ -162,59 +162,103 @@ See page 136 of the processors datasheet: http://www.atmel.com/Images/doc2549.pd #define uS_TO_TIMER_COMPARE_SLOW(uS) ((uS * 15) >> 5) #elif defined(CORE_STM32) - #include "HardwareTimer.h" - //Placeholders ONLY! - //https://visualgdb.com/tutorials/arm/stm32/timers/hal/ - //https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/master/STM32F4/cores/maple/libmaple/timer.h#L51 #define MAX_TIMER_PERIOD 131070 //The longest period of time (in uS) that the timer can permit (IN this case it is 65535 * 2, as each timer tick is 2uS) #define uS_TO_TIMER_COMPARE(uS) (uS >> 1) //Converts a given number of uS into the required number of timer ticks until that time has passed. #define uS_TO_TIMER_COMPARE_SLOW(uS) (uS >> 1) //Converts a given number of uS into the required number of timer ticks until that time has passed. + #if defined(ARDUINO_ARCH_STM32) + #include "HardwareTimer.h" + #define FUEL1_COUNTER (TIM2)->CNT + #define FUEL2_COUNTER (TIM2)->CNT + #define FUEL3_COUNTER (TIM2)->CNT + #define FUEL4_COUNTER (TIM2)->CNT + #define FUEL5_COUNTER (TIM2)->CNT - #define FUEL1_COUNTER (TIM2)->CNT - #define FUEL2_COUNTER (TIM2)->CNT - #define FUEL3_COUNTER (TIM2)->CNT - #define FUEL4_COUNTER (TIM2)->CNT - #define FUEL5_COUNTER (TIM2)->CNT + #define IGN1_COUNTER (TIM3)->CNT + #define IGN2_COUNTER (TIM3)->CNT + #define IGN3_COUNTER (TIM3)->CNT + #define IGN4_COUNTER (TIM3)->CNT + #define IGN5_COUNTER (TIM3)->CNT - #define IGN1_COUNTER (TIM3)->CNT - #define IGN2_COUNTER (TIM3)->CNT - #define IGN3_COUNTER (TIM3)->CNT - #define IGN4_COUNTER (TIM3)->CNT - #define IGN5_COUNTER (TIM3)->CNT + #define FUEL1_COMPARE (TIM2)->CCR1 + #define FUEL2_COMPARE (TIM2)->CCR2 + #define FUEL3_COMPARE (TIM2)->CCR3 + #define FUEL4_COMPARE (TIM2)->CCR4 - #define FUEL1_COMPARE (TIM2)->CCR1 - #define FUEL2_COMPARE (TIM2)->CCR2 - #define FUEL3_COMPARE (TIM2)->CCR3 - #define FUEL4_COMPARE (TIM2)->CCR4 + #define IGN1_COMPARE (TIM3)->CCR1 + #define IGN2_COMPARE (TIM3)->CCR2 + #define IGN3_COMPARE (TIM3)->CCR3 + #define IGN4_COMPARE (TIM3)->CCR4 + #define IGN5_COMPARE (TIM3)->CCR1 - #define IGN1_COMPARE (TIM3)->CCR1 - #define IGN2_COMPARE (TIM3)->CCR2 - #define IGN3_COMPARE (TIM3)->CCR3 - #define IGN4_COMPARE (TIM3)->CCR4 - #define IGN5_COMPARE (TIM3)->CCR1 + //https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 + #define FUEL1_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC1E + #define FUEL2_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC2E + #define FUEL3_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC3E + #define FUEL4_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC4E - //https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 - #define FUEL1_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC1E - #define FUEL2_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC2E - #define FUEL3_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC3E - #define FUEL4_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC4E + #define IGN1_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC1E + #define IGN2_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC2E + #define IGN3_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC3E + #define IGN4_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC4E + #define IGN5_TIMER_ENABLE() (TIM1)->CCER |= TIM_CCER_CC1E - #define IGN1_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC1E - #define IGN2_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC2E - #define IGN3_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC3E - #define IGN4_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC4E - #define IGN5_TIMER_ENABLE() (TIM1)->CCER |= TIM_CCER_CC1E + #define FUEL1_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC1E + #define FUEL2_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC2E + #define FUEL3_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC3E + #define FUEL4_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC4E - #define FUEL1_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC1E - #define FUEL2_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC2E - #define FUEL3_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC3E - #define FUEL4_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC4E + #define IGN1_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC1E + #define IGN2_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC2E + #define IGN3_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC3E + #define IGN4_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC4E + #define IGN5_TIMER_DISABLE() (TIM1)->CCER &= ~TIM_CCER_CC1E + #else + #define FUEL1_COUNTER (TIMER2->regs).gen->CNT + #define FUEL2_COUNTER (TIMER2->regs).gen->CNT + #define FUEL3_COUNTER (TIMER2->regs).gen->CNT + #define FUEL4_COUNTER (TIMER2->regs).gen->CNT + #define FUEL5_COUNTER (TIMER1->regs).gen->CNT - #define IGN1_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC1E - #define IGN2_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC2E - #define IGN3_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC3E - #define IGN4_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC4E - #define IGN5_TIMER_DISABLE() (TIM1)->CCER &= ~TIM_CCER_CC1E + #define IGN1_COUNTER (TIMER3->regs).gen->CNT + #define IGN2_COUNTER (TIMER3->regs).gen->CNT + #define IGN3_COUNTER (TIMER3->regs).gen->CNT + #define IGN4_COUNTER (TIMER3->regs).gen->CNT + #define IGN5_COUNTER (TIMER1->regs).gen->CNT + + #define FUEL1_COMPARE (TIMER2->regs).gen->CCR1 + #define FUEL2_COMPARE (TIMER2->regs).gen->CCR2 + #define FUEL3_COMPARE (TIMER2->regs).gen->CCR3 + #define FUEL4_COMPARE (TIMER2->regs).gen->CCR4 + + #define IGN1_COMPARE (TIMER3->regs).gen->CCR1 + #define IGN2_COMPARE (TIMER3->regs).gen->CCR2 + #define IGN3_COMPARE (TIMER3->regs).gen->CCR3 + #define IGN4_COMPARE (TIMER3->regs).gen->CCR4 + #define IGN5_COMPARE (TIMER1->regs).gen->CCR1 + + //https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 + #define FUEL1_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC1E + #define FUEL2_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC2E + #define FUEL3_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC3E + #define FUEL4_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC4E + + #define IGN1_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC1E + #define IGN2_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC2E + #define IGN3_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC3E + #define IGN4_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC4E + #define IGN5_TIMER_ENABLE() (TIMER1->regs).gen->CCER |= TIMER_CCER_CC1E + + #define FUEL1_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC1E + #define FUEL2_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC2E + #define FUEL3_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC3E + #define FUEL4_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC4E + + #define IGN1_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC1E + #define IGN2_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC2E + #define IGN3_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC3E + #define IGN4_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC4E + #define IGN5_TIMER_DISABLE() (TIMER1->regs).gen->CCER &= ~TIMER_CCER_CC1E + #endif #endif void initialiseSchedulers(); @@ -360,4 +404,4 @@ static inline unsigned int popQueue(volatile Schedule *queue[]) } -#endif // SCHEDULER_H +#endif // SCHEDULER_H diff --git a/speeduino/scheduler.ino b/speeduino/scheduler.ino index 5919e2de..26b0b22b 100644 --- a/speeduino/scheduler.ino +++ b/speeduino/scheduler.ino @@ -161,22 +161,42 @@ void initialiseSchedulers() NVIC_ENABLE_IRQ(IRQ_FTM1); #elif defined(CORE_STM32) - //see https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 - Timer1.setPrescaleFactor(((Timer1.getBaseFrequency() / 1000000) << 1) -1); //2us resolution - Timer2.setPrescaleFactor(((Timer2.getBaseFrequency() / 1000000) << 1) -1); //2us resolution - Timer3.setPrescaleFactor(((Timer3.getBaseFrequency() / 1000000) << 1) -1); //2us resolution + #if defined(ARDUINO_ARCH_STM32) + //see https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 + Timer1.setPrescaleFactor(((Timer1.getBaseFrequency() / 1000000) << 1) -1); //2us resolution + Timer2.setPrescaleFactor(((Timer2.getBaseFrequency() / 1000000) << 1) -1); //2us resolution + Timer3.setPrescaleFactor(((Timer3.getBaseFrequency() / 1000000) << 1) -1); //2us resolution - Timer2.setMode(1, TIMER_OUTPUT_COMPARE); - Timer2.setMode(2, TIMER_OUTPUT_COMPARE); - Timer2.setMode(3, TIMER_OUTPUT_COMPARE); - Timer2.setMode(4, TIMER_OUTPUT_COMPARE); + Timer2.setMode(1, TIMER_OUTPUT_COMPARE); + Timer2.setMode(2, TIMER_OUTPUT_COMPARE); + Timer2.setMode(3, TIMER_OUTPUT_COMPARE); + Timer2.setMode(4, TIMER_OUTPUT_COMPARE); - Timer3.setMode(1, TIMER_OUTPUT_COMPARE); - Timer3.setMode(2, TIMER_OUTPUT_COMPARE); - Timer3.setMode(3, TIMER_OUTPUT_COMPARE); - Timer3.setMode(4, TIMER_OUTPUT_COMPARE); - Timer1.setMode(1, TIMER_OUTPUT_COMPARE); + Timer3.setMode(1, TIMER_OUTPUT_COMPARE); + Timer3.setMode(2, TIMER_OUTPUT_COMPARE); + Timer3.setMode(3, TIMER_OUTPUT_COMPARE); + Timer3.setMode(4, TIMER_OUTPUT_COMPARE); + Timer1.setMode(1, TIMER_OUTPUT_COMPARE); + #else + //see https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 + (TIMER1->regs).bas->PSC = (CYCLES_PER_MICROSECOND << 1) - 1; //2us resolution + (TIMER2->regs).bas->PSC = (CYCLES_PER_MICROSECOND << 1) - 1; //2us resolution + (TIMER3->regs).bas->PSC = (CYCLES_PER_MICROSECOND << 1) - 1; //2us resolution + // Alternative 2us resolution: + //TimerX.setPrescaleFactor(CYCLES_PER_MICROSECOND * 2U); + + Timer2.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); + Timer2.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE); + Timer2.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE); + Timer2.setMode(TIMER_CH4, TIMER_OUTPUT_COMPARE); + + Timer3.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); + Timer3.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE); + Timer3.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE); + Timer3.setMode(TIMER_CH4, TIMER_OUTPUT_COMPARE); + + #endif Timer2.attachInterrupt(1, fuelSchedule1Interrupt); Timer2.attachInterrupt(2, fuelSchedule2Interrupt); Timer2.attachInterrupt(3, fuelSchedule3Interrupt); @@ -790,4 +810,4 @@ void ftm0_isr(void) else if(interrupt8) { FTM0_C7SC &= ~FTM_CSC_CHF; ignitionSchedule4Interrupt(); } } -#endif +#endif diff --git a/speeduino/src/FastCRC/FastCRC_tables.h b/speeduino/src/FastCRC/FastCRC_tables.h index 47f376dd..033a137c 100755 --- a/speeduino/src/FastCRC/FastCRC_tables.h +++ b/speeduino/src/FastCRC/FastCRC_tables.h @@ -31,7 +31,7 @@ #define FastCRC_tables #include "inttypes.h" -#if defined(__AVR__) || defined(STM32_MCU_SERIES) || defined(_VARIANT_ARDUINO_STM32_) +#if defined(__AVR__) || defined(STM32_MCU_SERIES) || defined(ARDUINO_ARCH_STM32) #include #else #include From e4207d9ee352727636b09c26e68431734d408500 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 3 Aug 2017 23:45:51 +1000 Subject: [PATCH 045/133] Add check to prevent system hanging on startup with fresh board if invalid flex pin is attempted --- speeduino/speeduino.ino | 10 +++++++--- speeduino/utils.ino | 8 ++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index a706a6b8..359febb0 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -209,7 +209,12 @@ void setup() loadCalibration(); //Set the pin mappings - if(configPage1.pinMapping > BOARD_NR_GPIO_PINS) { setPinMapping(3); } //First time running? set to v0.4 + if(configPage1.pinMapping > BOARD_NR_GPIO_PINS) + { + //First time running on this board + setPinMapping(3); //Force board to v0.4 + configPage1.flexEnabled = false; //Have to disable flex. If this isn't done and the wrong flex pin is interrupt attached below, system can hang. + } else { setPinMapping(configPage1.pinMapping); } //Need to check early on whether the coil charging is inverted. If this is not set straight away it can cause an unwanted spark at bootup @@ -270,7 +275,6 @@ void setup() } } - //Check whether the flex sensor is enabled and if so, attach an interupt for it if(configPage1.flexEnabled) { @@ -344,7 +348,6 @@ void setup() pinMode(pinTrigger3, INPUT); //digitalWrite(pinTrigger, HIGH); - //Set the trigger function based on the decoder in the config switch (configPage2.TrigPattern) { @@ -955,6 +958,7 @@ void loop() currentStatus.PW1 = 0; currentStatus.VE = 0; toothLastToothTime = 0; + //toothLastMinusOneToothTime = 0; currentStatus.hasSync = false; currentStatus.runSecs = 0; //Reset the counter for number of seconds running. secCounter = 0; //Reset our seconds counter. diff --git a/speeduino/utils.ino b/speeduino/utils.ino index 95db98b1..d7279b91 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -300,13 +300,14 @@ void setPinMapping(byte boardID) pinDisplayReset = 48; // OLED reset pin pinTachOut = 49; //Tacho output pin (Goes to ULN2803) pinIdle1 = 2; //Single wire idle control - pinIdle2 = 3; //2 wire idle control (Note this is shared with boost!!!) + pinBoost = 4; + pinIdle2 = 4; //2 wire idle control (Note this is shared with boost!!!) pinFuelPump = 37; //Fuel pump output (Goes to ULN2803) pinStepperDir = 16; //Direction pin for DRV8825 driver pinStepperStep = 17; //Step pin for DRV8825 driver pinFan = 47; //Pin for the fan output (Goes to ULN2803) pinLaunch = 12; //Can be overwritten below - pinFlex = 2; // Flex sensor (Must be external interrupt enabled) + pinFlex = 3; // Flex sensor (Must be external interrupt enabled) break; case 10: @@ -441,6 +442,9 @@ void setPinMapping(byte boardID) pinFan = 47; //Pin for the fan output pinFuelPump = 4; //Fuel pump output pinTachOut = 49; //Tacho output pin + pinFlex = 3; // Flex sensor (Must be external interrupt enabled) + pinBoost = 5; + pinIdle1 = 6; break; } From 9f64ba2b6cf5d237971872d303d17d28e13726b2 Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Fri, 4 Aug 2017 00:13:32 -0300 Subject: [PATCH 046/133] idle, boost and vvt PWM added --- speeduino/auxiliaries.h | 22 +++ speeduino/auxiliaries.ino | 27 ++-- speeduino/cancomms.h | 7 +- speeduino/globals.h | 12 +- speeduino/idle.h | 17 ++- speeduino/idle.ino | 23 +-- speeduino/scheduler.h | 4 +- speeduino/scheduler.ino | 17 +-- speeduino/speeduino.ino | 2 +- speeduino/src/FastCRC/FastCRC_tables.h | 2 +- speeduino/table.ino | 185 ++++++++++++++----------- speeduino/utils.ino | 27 ++-- 12 files changed, 202 insertions(+), 143 deletions(-) diff --git a/speeduino/auxiliaries.h b/speeduino/auxiliaries.h index 5ce8d246..48ef84cb 100644 --- a/speeduino/auxiliaries.h +++ b/speeduino/auxiliaries.h @@ -30,7 +30,29 @@ void initialiseFan(); #define VVT_TIMER_COUNTER FTM1_CNT #elif defined(CORE_STM32) + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core + #define ENABLE_BOOST_TIMER() (TIM1)->CCER |= TIM_CCER_CC2E + #define DISABLE_BOOST_TIMER() (TIM1)->CCER &= ~TIM_CCER_CC2E + #define ENABLE_VVT_TIMER() (TIM1)->CCER |= TIM_CCER_CC3E + #define DISABLE_VVT_TIMER() (TIM1)->CCER &= ~TIM_CCER_CC3E + + #define BOOST_TIMER_COMPARE (TIM1)->CCR2 + #define BOOST_TIMER_COUNTER (TIM1)->CNT + #define VVT_TIMER_COMPARE (TIM1)->CCR3 + #define VVT_TIMER_COUNTER (TIM1)->CNT + #else //libmaple core aka STM32DUINO + #define ENABLE_BOOST_TIMER() (TIMER1->regs).gen->CCER |= TIMER_CCER_CC2E + #define DISABLE_BOOST_TIMER() (TIMER1->regs).gen->CCER &= ~TIMER_CCER_CC2E + + #define ENABLE_VVT_TIMER() (TIMER1->regs).gen->CCER |= TIMER_CCER_CC3E + #define DISABLE_VVT_TIMER() (TIMER1->regs).gen->CCER &= ~TIMER_CCER_CC3E + + #define BOOST_TIMER_COMPARE (TIMER1->regs).gen->CCR2 + #define BOOST_TIMER_COUNTER (TIMER1->regs).gen->CNT + #define VVT_TIMER_COMPARE (TIMER1->regs).gen->CCR3 + #define VVT_TIMER_COUNTER (TIMER1->regs).gen->CNT + #endif #endif #define BOOST_PIN_LOW() *boost_pin_port &= ~(boost_pin_mask) diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 88805e40..69deffde 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -29,7 +29,6 @@ void fanControl() } } -#if defined(CORE_AVR) || defined(CORE_TEENSY) void initialiseAuxPWM() { #if defined(CORE_AVR) @@ -40,15 +39,24 @@ void initialiseAuxPWM() TCCR1B = (1 << CS12); //Timer1 Control Reg B: Timer Prescaler set to 256. 1 tick = 16uS. Refer to http://www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg #elif defined(CORE_TEENSY) //REALLY NEED TO DO THIS! + #elif defined(CORE_STM32) + Timer1.attachInterrupt(2, boostControl); + Timer1.attachInterrupt(3, vvtControl); + Timer1.resume(); #endif boost_pin_port = portOutputRegister(digitalPinToPort(pinBoost)); boost_pin_mask = digitalPinToBitMask(pinBoost); vvt_pin_port = portOutputRegister(digitalPinToPort(pinVVT_1)); vvt_pin_mask = digitalPinToBitMask(pinVVT_1); - - boost_pwm_max_count = 1000000L / (16 * configPage3.boostFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. The x2 is there because the frequency is stored at half value (in a byte) to allow freqneucies up to 511Hz - vvt_pwm_max_count = 1000000L / (16 * configPage3.vvtFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle + + #if defined(CORE_STM32) //2uS resolution Min 8Hz, Max 5KHz + boost_pwm_max_count = 1000000L / (configPage3.boostFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. The x2 is there because the frequency is stored at half value (in a byte) to allow freqneucies up to 511Hz + vvt_pwm_max_count = 1000000L / (configPage3.vvtFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle + #else + boost_pwm_max_count = 1000000L / (16 * configPage3.boostFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. The x2 is there because the frequency is stored at half value (in a byte) to allow freqneucies up to 511Hz + vvt_pwm_max_count = 1000000L / (16 * configPage3.vvtFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle + #endif //TIMSK1 |= (1 << OCIE1A); <---- Not required as compare A is turned on when needed by boost control ENABLE_VVT_TIMER(); //Turn on the B compare unit (ie turn on the interrupt) @@ -138,7 +146,7 @@ void vvtControl() //The interrupt to control the Boost PWM #if defined(CORE_AVR) ISR(TIMER1_COMPA_vect) -#elif defined (CORE_TEENSY) +#elif defined (CORE_TEENSY) || defined(CORE_STM32) static inline void boostInterrupt() //Most ARM chips can simply call a function #endif { @@ -160,7 +168,7 @@ void vvtControl() //The interrupt to control the VVT PWM #if defined(CORE_AVR) ISR(TIMER1_COMPB_vect) -#elif defined (CORE_TEENSY) +#elif defined (CORE_TEENSY) || defined(CORE_STM32) static inline void vvtInterrupt() //Most ARM chips can simply call a function #endif { @@ -179,10 +187,3 @@ void vvtControl() } } -#elif defined(CORE_STM32) -//YET TO BE IMPLEMENTED ON STM32 -void initialiseAuxPWM() { } -void boostControl() { } -void vvtControl() { } - -#endif diff --git a/speeduino/cancomms.h b/speeduino/cancomms.h index 38104469..d6f98d73 100644 --- a/speeduino/cancomms.h +++ b/speeduino/cancomms.h @@ -15,8 +15,11 @@ uint8_t Glow, Ghigh; #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) HardwareSerial &CANSerial = Serial3; #elif defined(CORE_STM32) - //HardwareSerial &CANSerial = Serial2; - SerialUART &CANSerial = Serial2; + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core + SerialUART &CANSerial = Serial2; + #else //libmaple core aka STM32DUINO + HardwareSerial &CANSerial = Serial2; + #endif #elif defined(CORE_TEENSY) HardwareSerial &CANSerial = Serial2; #endif diff --git a/speeduino/globals.h b/speeduino/globals.h index 98a400ec..bedf7169 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -14,17 +14,17 @@ #if defined (STM32F1) || defined(__STM32F1__) #define BOARD_NR_GPIO_PINS 34 #define LED_BUILTIN 33 - #elif defined(ARDUINO_BLACK_F407VE) - #define BOARD_NR_GPIO_PINS 78 + #elif defined(ARDUINO_BLACK_F407VE) || defined(STM32F4) + #define BOARD_NR_GPIO_PINS 80 #define LED_BUILTIN PA7 #endif extern "C" char* sbrk(int incr); //Used to freeRam inline unsigned char digitalPinToInterrupt(unsigned char Interrupt_pin) { return Interrupt_pin; } //This isn't included in the stm32duino libs (yet) - #if defined(ARDUINO_ARCH_STM32) + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core #define portOutputRegister(port) (volatile byte *)( &(port->ODR) ) #define portInputRegister(port) (volatile byte *)( &(port->IDR) ) - #else + #else //libmaple core aka STM32DUINO #define portOutputRegister(port) (volatile byte *)( &(port->regs->ODR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value #define portInputRegister(port) (volatile byte *)( &(port->regs->IDR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value #endif @@ -36,6 +36,10 @@ #define BIT_SET(a,b) ((a) |= (1<<(b))) #define BIT_CLEAR(a,b) ((a) &= ~(1<<(b))) #define BIT_CHECK(var,pos) !!((var) & (1<<(pos))) +#define Lo(param) ((char *)¶m)[0] +#define Hi(param) ((char *)¶m)[1] +#define Higher(param) ((char *)¶m)[2] +#define Highest(param) ((char *)¶m)[3] #define MS_IN_MINUTE 60000 #define US_IN_MINUTE 60000000 diff --git a/speeduino/idle.h b/speeduino/idle.h index 929a7755..d701c3d3 100644 --- a/speeduino/idle.h +++ b/speeduino/idle.h @@ -40,14 +40,19 @@ struct StepperIdle #define IDLE_TIMER_DISABLE() FTM2_C0SC &= ~FTM_CSC_CHIE #elif defined(CORE_STM32) + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core + #define IDLE_COUNTER (TIM1)->CNT + #define IDLE_COMPARE (TIM1)->CCR4 - //Placeholders only - #define IDLE_COUNTER 0 - #define IDLE_COMPARE 0 - - #define IDLE_TIMER_ENABLE() - #define IDLE_TIMER_DISABLE() + #define IDLE_TIMER_ENABLE() (TIM1)->CCER |= TIM_CCER_CC4E + #define IDLE_TIMER_DISABLE() (TIM1)->CCER &= ~TIM_CCER_CC4E + #else //libmaple core aka STM32DUINO + #define IDLE_COUNTER (TIMER1->regs).gen->CNT + #define IDLE_COMPARE (TIMER1->regs).gen->CCR4 + #define IDLE_TIMER_ENABLE() (TIMER1->regs).gen->CCER |= TIMER_CCER_CC4E + #define IDLE_TIMER_DISABLE() (TIMER1->regs).gen->CCER &= ~TIMER_CCER_CC4E + #endif #endif struct table2D iacClosedLoopTable; diff --git a/speeduino/idle.ino b/speeduino/idle.ino index af41d507..03d6d460 100644 --- a/speeduino/idle.ino +++ b/speeduino/idle.ino @@ -78,8 +78,9 @@ void initialiseIdle() NVIC_ENABLE_IRQ(IRQ_FTM2); } - #elif defined(MCU_STM32F103RB) - + #elif defined(CORE_STM32) + Timer1.attachInterrupt(4, idleInterrupt); + Timer1.resume(); #endif //Initialising comprises of setting the 2D tables with the relevant values from the config pages @@ -114,7 +115,11 @@ void initialiseIdle() idle_pin_mask = digitalPinToBitMask(pinIdle1); idle2_pin_port = portOutputRegister(digitalPinToPort(pinIdle2)); idle2_pin_mask = digitalPinToBitMask(pinIdle2); - idle_pwm_max_count = 1000000L / (16 * configPage3.idleFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. Note that the frequency is divided by 2 coming from TS to allow for up to 512hz + #if defined(CORE_STM32) + idle_pwm_max_count = 1000000L / (configPage3.idleFreq * 2); //Converts the frequency in Hz to the number of ticks (at 2uS) it takes to complete 1 cycle. Note that the frequency is divided by 2 coming from TS to allow for up to 5KHz + #else + idle_pwm_max_count = 1000000L / (16 * configPage3.idleFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. Note that the frequency is divided by 2 coming from TS to allow for up to 512hz + #endif enableIdle(); break; @@ -134,7 +139,11 @@ void initialiseIdle() idle_pin_mask = digitalPinToBitMask(pinIdle1); idle2_pin_port = portOutputRegister(digitalPinToPort(pinIdle2)); idle2_pin_mask = digitalPinToBitMask(pinIdle2); - idle_pwm_max_count = 1000000L / (16 * configPage3.idleFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. Note that the frequency is divided by 2 coming from TS to allow for up to 512hz + #if defined(CORE_STM32) + idle_pwm_max_count = 1000000L / (configPage3.idleFreq * 2); //Converts the frequency in Hz to the number of ticks (at 2uS) it takes to complete 1 cycle. Note that the frequency is divided by 2 coming from TS to allow for up to 5KHz + #else + idle_pwm_max_count = 1000000L / (16 * configPage3.idleFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. Note that the frequency is divided by 2 coming from TS to allow for up to 512hz + #endif idlePID.SetOutputLimits(percentage(configPage1.iacCLminDuty, idle_pwm_max_count), percentage(configPage1.iacCLmaxDuty, idle_pwm_max_count)); idlePID.SetTunings(configPage3.idleKP, configPage3.idleKI, configPage3.idleKD); idlePID.SetMode(AUTOMATIC); //Turn PID on @@ -407,7 +416,6 @@ ISR(TIMER4_COMPC_vect) #elif defined (CORE_TEENSY) || defined (CORE_STM32) static inline void idleInterrupt() //Most ARM chips can simply call a function #endif -#if defined(CORE_AVR) || defined (CORE_TEENSY) { if (idle_pwm_state) { @@ -446,8 +454,3 @@ static inline void idleInterrupt() //Most ARM chips can simply call a function } } -#elif defined (CORE_STM32) -{ - //No PWM idle for STM32 yet -} -#endif diff --git a/speeduino/scheduler.h b/speeduino/scheduler.h index 397f28f8..62d80c91 100644 --- a/speeduino/scheduler.h +++ b/speeduino/scheduler.h @@ -165,7 +165,7 @@ See page 136 of the processors datasheet: http://www.atmel.com/Images/doc2549.pd #define MAX_TIMER_PERIOD 131070 //The longest period of time (in uS) that the timer can permit (IN this case it is 65535 * 2, as each timer tick is 2uS) #define uS_TO_TIMER_COMPARE(uS) (uS >> 1) //Converts a given number of uS into the required number of timer ticks until that time has passed. #define uS_TO_TIMER_COMPARE_SLOW(uS) (uS >> 1) //Converts a given number of uS into the required number of timer ticks until that time has passed. - #if defined(ARDUINO_ARCH_STM32) + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core #include "HardwareTimer.h" #define FUEL1_COUNTER (TIM2)->CNT #define FUEL2_COUNTER (TIM2)->CNT @@ -212,7 +212,7 @@ See page 136 of the processors datasheet: http://www.atmel.com/Images/doc2549.pd #define IGN3_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC3E #define IGN4_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC4E #define IGN5_TIMER_DISABLE() (TIM1)->CCER &= ~TIM_CCER_CC1E - #else + #else //libmaple core aka STM32DUINO #define FUEL1_COUNTER (TIMER2->regs).gen->CNT #define FUEL2_COUNTER (TIMER2->regs).gen->CNT #define FUEL3_COUNTER (TIMER2->regs).gen->CNT diff --git a/speeduino/scheduler.ino b/speeduino/scheduler.ino index 26b0b22b..e24a3e92 100644 --- a/speeduino/scheduler.ino +++ b/speeduino/scheduler.ino @@ -161,12 +161,11 @@ void initialiseSchedulers() NVIC_ENABLE_IRQ(IRQ_FTM1); #elif defined(CORE_STM32) - #if defined(ARDUINO_ARCH_STM32) + Timer1.setPeriod(2); //2us resolution + Timer2.setPeriod(2); //2us resolution + Timer3.setPeriod(2); //2us resolution + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core //see https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 - Timer1.setPrescaleFactor(((Timer1.getBaseFrequency() / 1000000) << 1) -1); //2us resolution - Timer2.setPrescaleFactor(((Timer2.getBaseFrequency() / 1000000) << 1) -1); //2us resolution - Timer3.setPrescaleFactor(((Timer3.getBaseFrequency() / 1000000) << 1) -1); //2us resolution - Timer2.setMode(1, TIMER_OUTPUT_COMPARE); Timer2.setMode(2, TIMER_OUTPUT_COMPARE); Timer2.setMode(3, TIMER_OUTPUT_COMPARE); @@ -178,14 +177,8 @@ void initialiseSchedulers() Timer3.setMode(4, TIMER_OUTPUT_COMPARE); Timer1.setMode(1, TIMER_OUTPUT_COMPARE); - #else + #else //libmaple core aka STM32DUINO //see https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 - (TIMER1->regs).bas->PSC = (CYCLES_PER_MICROSECOND << 1) - 1; //2us resolution - (TIMER2->regs).bas->PSC = (CYCLES_PER_MICROSECOND << 1) - 1; //2us resolution - (TIMER3->regs).bas->PSC = (CYCLES_PER_MICROSECOND << 1) - 1; //2us resolution - // Alternative 2us resolution: - //TimerX.setPrescaleFactor(CYCLES_PER_MICROSECOND * 2U); - Timer2.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); Timer2.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE); Timer2.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE); diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 30ffd065..1254cb40 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -152,7 +152,7 @@ void setup() #if defined(CORE_STM32) EEPROM.init(); - #endif + #endif loadConfig(); doUpdates(); //Check if any data items need updating (Occurs ith firmware updates) diff --git a/speeduino/src/FastCRC/FastCRC_tables.h b/speeduino/src/FastCRC/FastCRC_tables.h index 033a137c..1d5142f5 100755 --- a/speeduino/src/FastCRC/FastCRC_tables.h +++ b/speeduino/src/FastCRC/FastCRC_tables.h @@ -31,7 +31,7 @@ #define FastCRC_tables #include "inttypes.h" -#if defined(__AVR__) || defined(STM32_MCU_SERIES) || defined(ARDUINO_ARCH_STM32) +#if defined(__AVR__) || defined(STM32_MCU_SERIES) || defined(ARDUINO_ARCH_STM32) || defined(_VARIANT_ARDUINO_STM32_) #include #else #include diff --git a/speeduino/table.ino b/speeduino/table.ino index 1e8dc663..87d5e0c9 100644 --- a/speeduino/table.ino +++ b/speeduino/table.ino @@ -409,82 +409,103 @@ int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) return tableResult; } /* Executed a benchmark on all options and this is the results - * Stadard:226224 91 |FP Math:32240 91.89 |Clean code:34056 91, Number of loops:2500 - * + * @Mega: Stadard:464276 92 |FP Math:893104 92.57 |Clean code:641280 92 , Number of loops:5000 + * @STM32F1: Stadard:21449 92 |FP Math:125707 92.57 |Clean code:11634 92 , Number of loops:5000 + * @STM32F4: Stadard:7275 92 |FP Math:5724 92.57 |Clean code:4742 92 , Number of loops:5000 + //This function pulls a value from a 3D table given a target for X and Y coordinates. //It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf float get3DTableValueF(struct table3D *fromTable, int Y, int X) { - float m, n, o ,p, q, r; byte xMin, xMax; byte yMin, yMax; - int yMaxValue, yMinValue; - int xMaxValue, xMinValue; + float tableResult = 0; - if(fromTable->lastXMin==0) {fromTable->lastXMin = fromTable->xSize-1;} - else {xMin = fromTable->lastXMin;} - if(fromTable->lastYMin==0) {fromTable->lastYMin = fromTable->ySize-1;} - else {yMin = fromTable->lastYMin;} - //yMin = fromTable->lastYMin; - - if(xMin>fromTable->xSize-1) - { - fromTable->lastXMin = fromTable->xSize-1; - xMin = fromTable->xSize-1; - } - if(yMin>fromTable->ySize-1) - { - fromTable->lastYMin = fromTable->ySize-1; - yMin = fromTable->ySize-1; - } + xMin = fromTable->lastXMin; + yMin = fromTable->lastYMin; + if(xMin == 0) { xMin = fromTable->xSize-1; } + if(yMin == 0) { yMin = fromTable->ySize-1; } do //RPM axis { - if(X>=fromTable->axisX[xMin]) {break;} + if(X == fromTable->axisX[xMin]) + { + xMax = xMin; + break; + } + else if(X > fromTable->axisX[xMin]) + { + if (xMin == fromTable->xSize-1) { xMax = xMin; } //Overflow protection + else { xMax = xMin + 1; } + break; + } xMin--; - }while(1); - fromTable->lastXMin = xMin + 1; + }while(true); + do //MAP axis { - if(Y<=fromTable->axisY[yMin]) {break;} + if(Y == fromTable->axisY[yMin]) + { + yMax = yMin; + break; + } + else if(Y < fromTable->axisY[yMin]) + { + if (yMin == fromTable->ySize-1) { yMax = yMin; } //Overflow protection + else { yMax = yMin + 1; } + break; + } yMin--; - }while(1); - fromTable->lastYMin = yMin + 1; + }while(true); - xMax = xMin + 1; - yMax = yMin + 1; - if (xMax>fromTable->xSize-1) //Overflow protection - { - xMax = fromTable->xSize-1; - xMin = xMax - 1; - } - if (yMax>fromTable->ySize-1) //Overflow protection - { - yMax = fromTable->ySize-1; - yMin = yMax - 1; - } - - yMaxValue = fromTable->axisY[yMax]; - yMinValue = fromTable->axisY[yMin]; - xMaxValue = fromTable->axisX[xMax]; - xMinValue = fromTable->axisX[xMin]; + fromTable->lastXMin = xMax; + fromTable->lastYMin = yMax; int A = fromTable->values[yMin][xMin]; int B = fromTable->values[yMin][xMax]; int C = fromTable->values[yMax][xMin]; int D = fromTable->values[yMax][xMax]; + if( (A == B) && (A == C) && (A == D) ) { tableResult = A; } + else if(xMin == xMax) // Same RPM axys do a simple 2D (27% faster on Mega on worst case, up to 500%) + { + int yMaxValue = fromTable->axisY[yMax]; + int yMinValue = fromTable->axisY[yMin]; + float q; + q = ((float)(Y - yMinValue) * (C - A)) / (yMaxValue - yMinValue); + tableResult = A + q; + } + else if(yMin == yMax) // Same MAP axys do a simple 2D (27% faster on Mega on worst case, up to 500%) + { + int xMaxValue = fromTable->axisX[xMax]; + int xMinValue = fromTable->axisX[xMin]; + float q; + q = ((float)(X - xMinValue) * (B - A)) / (xMaxValue - xMinValue); + tableResult = A + q; + } + else + { + int yMaxValue = fromTable->axisY[yMax]; + int yMinValue = fromTable->axisY[yMin]; + int xMaxValue = fromTable->axisX[xMax]; + int xMinValue = fromTable->axisX[xMin]; + + float m, n, o , p, q, r; + if (xMaxValue == xMinValue) { p = (float)X - xMinValue; } + else { p = ((float)X - xMinValue) / (xMaxValue - xMinValue); } + if (yMaxValue == yMinValue) { q = (float)Y - yMinValue; } + else { q = ((float)Y - yMinValue) / (yMaxValue - yMinValue); } - p = float(X - xMinValue) / (xMaxValue - xMinValue); //(RPM - RPM[1])/(RPM[2]- RPM[1]) - q = float(Y - yMinValue) / (yMaxValue - yMinValue); //(MAP - MAP[1])/(MAP[2]- MAP[1]) - - m = (1.0-p) * (1.0-q); - n = p * (1-q); - o = (1-p) * q; - r = p * q; - - return ( (A * m) + (B * n) + (C * o) + (D * r) ); + m = (1.0-p) * (1.0-q); + n = p * (1-q); + o = (1-p) * q; + r = p * q; + tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ); + } + return tableResult; } */ +//This function pulls a value from a 3D table given a target for X and Y coordinates. +//It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf int get3DTableValueS(struct table3D *fromTable, int Y, int X) { byte xMin, xMax; @@ -498,68 +519,62 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) do //RPM axis { - if(X > fromTable->axisX[xMin]) - { - if (xMin == (fromTable->xSize-1) ) { xMax = xMin; } //Overflow protection - else { xMax = xMin + 1; } - break; - } - else if(X == fromTable->axisX[xMin]) + if(X == fromTable->axisX[xMin]) { xMax = xMin; break; } + else if(X > fromTable->axisX[xMin]) + { + if (xMin == fromTable->xSize-1) { xMax = xMin; } //Overflow protection + else { xMax = xMin + 1; } + break; + } xMin--; }while(true); do //MAP axis { - if(Y < fromTable->axisY[yMin]) - { - if (yMin == (fromTable->ySize-1) ) { yMax = yMin; } //Overflow protection - else { yMax = yMin + 1; } - break; - } - else if(Y == fromTable->axisY[yMin]) + if(Y == fromTable->axisY[yMin]) { yMax = yMin; break; } + else if(Y < fromTable->axisY[yMin]) + { + if (yMin == fromTable->ySize-1) { yMax = yMin; } //Overflow protection + else { yMax = yMin + 1; } + break; + } yMin--; }while(true); fromTable->lastXMin = xMax; fromTable->lastYMin = yMax; - //Serial.print("xMin, xMax ");Serial.print(xMin);Serial.print(",");Serial.println(xMax); - //Serial.print("yMin, yMax ");Serial.print(yMin);Serial.print(",");Serial.println(yMax); - int A = fromTable->values[yMin][xMin]; - if((xMin == xMax) && (yMin == yMax)) { tableResult = A; } - else if(xMin == xMax) // Simple 2D + int B = fromTable->values[yMin][xMax]; + int C = fromTable->values[yMax][xMin]; + int D = fromTable->values[yMax][xMax]; + if( (A == B) && (A == C) && (A == D) ) { tableResult = A; } + else if(xMin == xMax) // Same RPM axys do a simple 2D (27% faster on Mega on worst case, up to 500%) { - int D = fromTable->values[yMax][xMax]; int yMaxValue = fromTable->axisY[yMax]; int yMinValue = fromTable->axisY[yMin]; - long q = (long)Y - yMinValue; - q = ((q << 6) * (D - A)) / (yMaxValue - yMinValue); + long q; + q = (((long)(Y - yMinValue) << 6) * (C - A)) / (yMaxValue - yMinValue); tableResult = A + (q >> 6); } - else if(yMin == yMax) // Simple 2D + else if(yMin == yMax) // Same MAP axys do a simple 2D (27% faster on Mega on worst case, up to 500%) { - int D = fromTable->values[yMax][xMax]; int xMaxValue = fromTable->axisX[xMax]; int xMinValue = fromTable->axisX[xMin]; - long q = (long)X - xMinValue; - q = ((q << 6) * (D - A)) / (xMaxValue - xMinValue); + long q; + q = (((long)(X - xMinValue) << 6) * (B - A)) / (xMaxValue - xMinValue); tableResult = A + (q >> 6); } else { - int B = fromTable->values[yMin][xMax]; - int C = fromTable->values[yMax][xMin]; - int D = fromTable->values[yMax][xMax]; - int yMaxValue = fromTable->axisY[yMax]; int yMinValue = fromTable->axisY[yMin]; int xMaxValue = fromTable->axisX[xMax]; @@ -575,6 +590,7 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) q = (long)Y - yMinValue; q = (q << 8); } + //Standard case else { q = long(Y) - yMaxValue; @@ -586,6 +602,7 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) int o = ((256-p) * q) >> 8; int r = (p * q) >> 8; tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; - } + } return tableResult; } + diff --git a/speeduino/utils.ino b/speeduino/utils.ino index 2223e16b..7b3b21f8 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -489,14 +489,25 @@ void setPinMapping(byte boardID) pump_pin_mask = digitalPinToBitMask(pinFuelPump); //And for inputs - pinMode(pinMAP, INPUT); - pinMode(pinO2, INPUT); - pinMode(pinO2_2, INPUT); - pinMode(pinTPS, INPUT); - pinMode(pinIAT, INPUT); - pinMode(pinCLT, INPUT); - pinMode(pinBat, INPUT); - pinMode(pinBaro, INPUT); + #ifndef ARDUINO_ARCH_STM32 //libmaple core aka STM32DUINO + pinMode(pinMAP, INPUT_ANALOG); + pinMode(pinO2, INPUT_ANALOG); + pinMode(pinO2_2, INPUT_ANALOG); + pinMode(pinTPS, INPUT_ANALOG); + pinMode(pinIAT, INPUT_ANALOG); + pinMode(pinCLT, INPUT_ANALOG); + pinMode(pinBat, INPUT_ANALOG); + pinMode(pinBaro, INPUT_ANALOG); + #else + pinMode(pinMAP, INPUT); + pinMode(pinO2, INPUT); + pinMode(pinO2_2, INPUT); + pinMode(pinTPS, INPUT); + pinMode(pinIAT, INPUT); + pinMode(pinCLT, INPUT); + pinMode(pinBat, INPUT); + pinMode(pinBaro, INPUT); + #endif pinMode(pinTrigger, INPUT); pinMode(pinTrigger2, INPUT); pinMode(pinTrigger3, INPUT); From 7c15b2657c6c6bf1cf151aedb4ecb6680f72f13a Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Fri, 4 Aug 2017 16:12:16 -0300 Subject: [PATCH 047/133] Fix last merge --- speeduino/comms.ino | 4 ++-- speeduino/decoders.ino | 39 ++++++++++++++++++++++++++++----------- speeduino/sensors.h | 4 ++-- speeduino/sensors.ino | 7 +++++-- speeduino/timers.ino | 2 -- speeduino/updates.ino | 20 +++++++++++++++++++- 6 files changed, 56 insertions(+), 20 deletions(-) diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 04d82ed2..bcee111d 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -80,12 +80,12 @@ void command() break; case 'S': // send code version - Serial.print("Speeduino 2017.07-dev"); + Serial.print("Speeduino 2017.07"); currentStatus.secl = 0; //This is required in TS3 due to its stricter timings break; case 'Q': // send code version - Serial.print("speeduino 201707-dev"); + Serial.print("speeduino 201707"); break; case 'V': // send VE table and constants in binary diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index ad683954..07713590 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -88,14 +88,18 @@ It takes an argument of the full (COMPLETE) number of teeth per revolution. For static inline int crankingGetRPM(byte totalTeeth) { uint16_t tempRPM = 0; - if( (toothLastToothTime > 0) && (toothLastMinusOneToothTime > 0) ) + if( currentStatus.startRevolutions >= 2 ) { - noInterrupts(); - revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime) * totalTeeth; - interrupts(); - tempRPM = (US_IN_MINUTE / revolutionTime); - if( tempRPM >= MAX_RPM ) { tempRPM = currentStatus.RPM; } //Sanity check. This can prevent spiking caused by noise on individual teeth. The new RPM should never be above 4x the cranking setting value (Remembering that this function is only called is the current RPM is less than the cranking setting) + if( (toothLastToothTime > 0) && (toothLastMinusOneToothTime > 0) ) + { + noInterrupts(); + revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime) * totalTeeth; + interrupts(); + tempRPM = (US_IN_MINUTE / revolutionTime); + if( tempRPM >= MAX_RPM ) { tempRPM = currentStatus.RPM; } //Sanity check. This can prevent spiking caused by noise on individual teeth. The new RPM should never be above 4x the cranking setting value (Remembering that this function is only called is the current RPM is less than the cranking setting) + } } + return tempRPM; } @@ -152,6 +156,8 @@ void triggerPri_missingTooth() if ( (curGap > targetGap) || (toothCurrentCount > triggerActualTeeth) ) { if(toothCurrentCount < (triggerActualTeeth) && (currentStatus.hasSync == true) ) { currentStatus.hasSync = false; } //This occurs when we're at tooth #1, but haven't seen all the other teeth. This indicates a signal issue so we flag lost sync so this will attempt to resync on the next revolution. + //This is to handle a special case on startup where sync can be obtained and the system immediately thinks the revs have jumped: + //else if (currentStatus.hasSync == false && toothCurrentCount < checkSyncToothCount ) { triggerFilterTime = 0; } else { toothCurrentCount = 1; @@ -804,7 +810,7 @@ uint16_t getRPM_4G63() //Because these signals aren't even (Alternating 110 and 70 degrees), this needs a special function if(currentStatus.hasSync == true) { - if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) ) + if( currentStatus.RPM < ((unsigned int)configPage2.crankRPM * 100) ) { int tempToothAngle; unsigned long toothTime; @@ -817,6 +823,8 @@ uint16_t getRPM_4G63() interrupts(); toothTime = toothTime * 36; tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime; + revolutionTime = (10UL * toothTime) / tempToothAngle; + } } else { tempRPM = stdGetRPM(); } @@ -1090,7 +1098,7 @@ void triggerPri_Audi135() { curTime = micros(); curGap = curTime - toothSystemLastToothTime; - if ( curGap > triggerFilterTime ) + if ( (curGap > triggerFilterTime) || (currentStatus.startRevolutions == 0) ) { toothSystemCount++; @@ -1859,7 +1867,7 @@ void triggerPri_Subaru67() toothLastMinusOneToothTime = toothLastToothTime; toothLastToothTime = curTime; - if ( (currentStatus.hasSync == false) || configPage2.useResync) + if ( (currentStatus.hasSync == false) || configPage2.useResync || (currentStatus.startRevolutions == 0) ) { //Sync is determined by counting the number of cam teeth that have passed between the crank teeth switch(secondaryToothCount) @@ -1929,7 +1937,15 @@ void triggerSec_Subaru67() uint16_t getRPM_Subaru67() { //if(currentStatus.RPM < configPage2.crankRPM) { return crankingGetRPM(configPage2.triggerTeeth); } - return stdGetRPM(); + + uint16_t tempRPM = 0; + if(currentStatus.startRevolutions > 0) + { + //As the tooth count is over 720 degrees, we need to double the RPM value and halve the revolution time + tempRPM = stdGetRPM() << 1; + revolutionTime = revolutionTime >> 1; //Revolution time has to be divided by 2 as otherwise it would be over 720 degrees (triggerActualTeeth = nCylinders) + } + return tempRPM; } int getCrankAngle_Subaru67(int timePerDegree) @@ -2005,7 +2021,7 @@ void triggerPri_Daihatsu() curTime = micros(); curGap = curTime - toothLastToothTime; - //if ( curGap >= triggerFilterTime ) + //if ( curGap >= triggerFilterTime || (currentStatus.startRevolutions == 0 ) { toothSystemCount++; @@ -2127,3 +2143,4 @@ void triggerSetEndTeeth_Daihatsu() { } + diff --git a/speeduino/sensors.h b/speeduino/sensors.h index c8294a2f..24245d04 100644 --- a/speeduino/sensors.h +++ b/speeduino/sensors.h @@ -39,7 +39,6 @@ byte MAPcurRev; //Tracks which revolution we're sampling on void instanteneousMAPReading(); void readMAP(); -void readBaro(); void flexPulse(); #if defined(ANALOG_ISR) @@ -105,4 +104,5 @@ ISR(ADC_vect) } #endif -#endif // SENSORS_H +#endif // SENSORS_H + diff --git a/speeduino/sensors.ino b/speeduino/sensors.ino index ce41fd0c..7aedbb08 100644 --- a/speeduino/sensors.ino +++ b/speeduino/sensors.ino @@ -61,7 +61,9 @@ void instanteneousMAPReading() if( (tempReading >= VALID_MAP_MAX) || (tempReading <= VALID_MAP_MIN) ) { mapErrorCount += 1; } else { mapErrorCount = 0; } - currentStatus.mapADC = ADC_FILTER(tempReading, ADCFILTER_MAP, currentStatus.mapADC); //Very weak filter + //During startup a call is made here to get the baro reading. In this case, we can't apply the ADC filter + if(initialisationComplete == true) { currentStatus.mapADC = ADC_FILTER(tempReading, ADCFILTER_MAP, currentStatus.mapADC); } //Very weak filter + else { currentStatus.mapADC = tempReading; } //Baro reading (No filter) currentStatus.MAP = fastMap10Bit(currentStatus.mapADC, configPage1.mapMin, configPage1.mapMax); //Get the current MAP value if(currentStatus.MAP < 0) { currentStatus.MAP = 0; } //Sanity check @@ -219,7 +221,7 @@ void readBaro() currentStatus.baroADC = ADC_FILTER(tempReading, ADCFILTER_BARO, currentStatus.baroADC); //Very weak filter - currentStatus.baro = fastMap1023toX(currentStatus.baroADC, configPage1.mapMax); //Get the current MAP value + currentStatus.baro = fastMap10Bit(currentStatus.baroADC, configPage1.mapMin, configPage1.mapMax); //Get the current MAP value } } @@ -262,3 +264,4 @@ void flexPulse() { ++flexCounter; } + diff --git a/speeduino/timers.ino b/speeduino/timers.ino index fd3f8225..76095a7e 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -47,7 +47,6 @@ void initialiseTimers() Timer4.resume(); //Start Timer #endif - pinMode(LED_BUILTIN, OUTPUT); //pinMode(13, OUTPUT); dwellLimit_uS = (1000 * configPage2.dwellLimit); lastRPM_100ms = 0; } @@ -101,7 +100,6 @@ void oneMSInterval() //Most ARM chips can simply call a function { loop100ms = 0; //Reset counter BIT_SET(TIMER_mask, BIT_TIMER_10HZ); - digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); currentStatus.rpmDOT = (currentStatus.RPM - lastRPM_100ms) * 10; //This is the RPM per second that the engine has accelerated/decelleratedin the last loop lastRPM_100ms = currentStatus.RPM; //Record the current RPM for next calc diff --git a/speeduino/updates.ino b/speeduino/updates.ino index 96ddee79..a184b99e 100644 --- a/speeduino/updates.ino +++ b/speeduino/updates.ino @@ -8,7 +8,7 @@ void doUpdates() { - #define CURRENT_DATA_VERSION 4 + #define CURRENT_DATA_VERSION 5 //May 2017 firmware introduced a -40 offset on the ignition table. Update that table to +40 if(EEPROM.read(EEPROM_DATA_VERSION) == 2) @@ -36,6 +36,23 @@ void doUpdates() writeConfig(); EEPROM.write(EEPROM_DATA_VERSION, 4); } + //July 2017 adds a cranking enrichment curve in place of the single value. This converts that single value to the curve + if(EEPROM.read(EEPROM_DATA_VERSION) == 4) + { + //Some default values for the bins (Doesn't matter too much here as the values against them will all be identical) + configPage11.crankingEnrichBins[0] = 0; + configPage11.crankingEnrichBins[1] = 40; + configPage11.crankingEnrichBins[2] = 70; + configPage11.crankingEnrichBins[3] = 100; + + configPage11.crankingEnrichValues[0] = 100 + configPage1.crankingPct; + configPage11.crankingEnrichValues[1] = 100 + configPage1.crankingPct; + configPage11.crankingEnrichValues[2] = 100 + configPage1.crankingPct; + configPage11.crankingEnrichValues[3] = 100 + configPage1.crankingPct; + + writeConfig(); + EEPROM.write(EEPROM_DATA_VERSION, 5); + } //Final check is always for 255 and 0 (Brand new arduino) if( (EEPROM.read(EEPROM_DATA_VERSION) == 0) || (EEPROM.read(EEPROM_DATA_VERSION) == 255) ) @@ -45,3 +62,4 @@ void doUpdates() } } + From 94e0c6c19c4833b7b511f9ac0c33353c8225f8ea Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Fri, 4 Aug 2017 17:05:16 -0300 Subject: [PATCH 048/133] Fix error on no STM32 boards --- speeduino/idle.h | 1 + speeduino/utils.ino | 2 ++ 2 files changed, 3 insertions(+) diff --git a/speeduino/idle.h b/speeduino/idle.h index d701c3d3..e21919bc 100644 --- a/speeduino/idle.h +++ b/speeduino/idle.h @@ -86,5 +86,6 @@ static inline void enableIdle(); static inline byte isStepperHomed(); static inline byte checkForStepping(); static inline void doStep(); +static inline void idleInterrupt(); #endif diff --git a/speeduino/utils.ino b/speeduino/utils.ino index 7b3b21f8..90543e8f 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -489,6 +489,7 @@ void setPinMapping(byte boardID) pump_pin_mask = digitalPinToBitMask(pinFuelPump); //And for inputs + #if defined(CORE_STM32) #ifndef ARDUINO_ARCH_STM32 //libmaple core aka STM32DUINO pinMode(pinMAP, INPUT_ANALOG); pinMode(pinO2, INPUT_ANALOG); @@ -508,6 +509,7 @@ void setPinMapping(byte boardID) pinMode(pinBat, INPUT); pinMode(pinBaro, INPUT); #endif + #endif pinMode(pinTrigger, INPUT); pinMode(pinTrigger2, INPUT); pinMode(pinTrigger3, INPUT); From dcefa15ad5c0e2979cbab82de2c61246527b0c32 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sat, 5 Aug 2017 10:08:33 +1000 Subject: [PATCH 049/133] Force x permission on misra script --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index dd27e4c2..e818dfea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -62,6 +62,7 @@ script: - platformio update - platformio run -e megaatmega2560 -e teensy35 -e bluepill_f103c8 -e genericSTM32F103RB - cd .. + - chmod +x speeduino/misra/check_misra.sh - speeduino/misra/check_misra.sh notifications: From a60e9397e67da26af4067c2f4290c8574ef0d168 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sat, 5 Aug 2017 11:11:53 +1000 Subject: [PATCH 050/133] MX5 PNP sensor calibration image --- reference/wiki/MX5/sensor_calibrations.PNG | Bin 0 -> 103190 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 reference/wiki/MX5/sensor_calibrations.PNG diff --git a/reference/wiki/MX5/sensor_calibrations.PNG b/reference/wiki/MX5/sensor_calibrations.PNG new file mode 100644 index 0000000000000000000000000000000000000000..2c26b81a64597796264bad557f6ee7a6e6dd5ada GIT binary patch literal 103190 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�u0CWH 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 mMSA?_$^YMf=$l Date: Sun, 6 Aug 2017 16:28:40 +1000 Subject: [PATCH 051/133] Fix typo on fuel pump macro (Wasn't used anyway) --- speeduino/globals.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/speeduino/globals.h b/speeduino/globals.h index 1b9f6609..3c6c4cbc 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -101,7 +101,7 @@ #define SERIAL_BUFFER_THRESHOLD 32 // When the serial buffer is filled to greater than this threshold value, the serial processing operations will be performed more urgently in order to avoid it overflowing. Serial buffer is 64 bytes long, so the threshold is set at half this as a reasonable figure #define FUEL_PUMP_ON() *pump_pin_port |= (pump_pin_mask) -#define FUEL_PUMP_OFF() *tach_pin_port &= ~(tach_pin_mask) +#define FUEL_PUMP_OFF() *pump_pin_port &= ~(pump_pin_mask) const byte signature = 20; From 037c84039f248df4b3ef29953ae7a2ebab4455f2 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sun, 6 Aug 2017 16:29:00 +1000 Subject: [PATCH 052/133] Added wiki image for updating page --- reference/wiki/TS_9.png | Bin 0 -> 245347 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 reference/wiki/TS_9.png diff --git a/reference/wiki/TS_9.png b/reference/wiki/TS_9.png new file mode 100644 index 0000000000000000000000000000000000000000..cc31612e6bf903a0828a7612418fe9236e327997 GIT binary patch literal 245347 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∾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%0DTh z#kv97pT6yXZ5c>aZ}`{|&Yi)`Q>fUH=0$YMFJoA;Y|Wn@%4!`8A3jmF&OOL+Jmtzi z8d#Ln^|(z#)5||FmNlxy+3~o|#@t-DU@|CZ-K%3*IQvs(f4@U9`FAc&PCB*KX=Cqr za`G}SHPM)oj+yHPp?6}$$Jbgm&ar%R3E?c z{u9_>7$#9nch#p8YKKAlw+UXxUGy(D+lU1Ji))DF0f1?tuwvo9%KpZ8!<2P%W=_bekYP2MwTe<(L6bV&m6BGo zL5ZIJg>lbdSZj4q%|TNLGV)2GT7Fo4pY77r@Wz_RNM}7wyt_x?d?vTA{yb&?t8pP(P-QuJ^ul2YHQ+kNmiT89sAS+PV*AdT#-0x9}wo<$- z;9aRI6+FUavrr6!_s4TmWljdXj>?3o!`7Y%i|D5NeY{ql@uIVm0?1cxM#KX>AEH|G zKAK{npA}SKVCwP8`V%K7rv{9$6UTNN|2uS!6SVB4a}VG z)5tt`+aiIUsIXId2F8rC&<_kpxN^t}+Y=~#M*o((M}Y21VVCgY|zadLSq` z%j1^2w$46?>&@nBG272Q>x3R{DjWFjvSUQ>4BYd;e}S!QM$)ZQOMzVCpC-h=Dn!A+ zA;3Za@UnIMV`CgAxOq+?HU99r0Ik&2VsjJIuYlxEI3Sf&ILMw|^?M{G#-)8qp-B}w z$``{;rHiYO-tD92UFbpBS|B(f|3Vke=3G<5N2C2Bb(T4Na=EiG!&2C7Cruq%&Rm{q zb9Fu1ik?#crJkn9$F(xHPZc(6o!Z*WQJy{xIdR>!gF{1Qi?2Jp-n~PH&;?1Fj|A&x z3cl2RAz1i)JTE)$K(4xcWYmR!?DhrpTaS|jqxcYcqyf`uOC;>1d)I8>;vvbfRhiBu1wEUEBCHtBk+W z-Q1e0*073=kBbXE{q`;E#gmra-nXX)(w(UTJ5|tQx%>JFhosL@CW6NC6>mCO1DThA zrS>9Xv4Ry>Rk8Gi4v>;AXd=X%e+E6|iE=sf?DIDy*d@q@#^_@Q+%P1GQ@~aTw9gN< z=BdqE>`%4_|M^d;(BI^Q-9__*Qf8$-dhq9z$q(bN!l(^Dw{FH2ZYDEGl-x zj$Irgq*UQzh>^(1U!(M3zxV7ny7Z`gtB;Z%x%?0x14QbXfR4Bw==H)iTZER=LK8lLC^C%|c z(0X9;-j9IWZ)`h-WHF<-2$X##g)k*jxEd3G*?GXy?vTlO!#N}-XT3Kkw=MOr{75hU z=y3x71SZbD^N0KjdVHh)>0|<}zf_8i#+H_QT=pgDO^S~fz5zELYeGjHE_!3Y-Bs7x zestAwdYal84lnNsmLq@K>Pgt$-Q6w+8hcx=(C6DI`pA1kW-w7x*k6rwJ$&|J=4;p2 z-VvRy`>+E$)cU|-=J>d_1~Vv62&BGwliZqkm7&y_M44XI9QJJ19wdG>jP4o7XUFBC z8~`gq1r_~q{Tcul!344|GJ zZC$yST*MsOx?K@YWTio!w+P$;trZRj58IJ6!|T83&d-W&PSnPVs1KrR=UMrjhoQ6W z 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 R@!yNUARXX@0^AG&{RcoKrGo$f literal 226868 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 diff --git a/reference/hardware/v0.4/schematic v0.4.3_schem.png b/reference/hardware/v0.4/schematic v0.4.3_schem.png index f779ca7a53d568d33d000ee364add2d61cea3968..676340c27bc1502e20fbf7312b57c2037957435a 100644 GIT binary patch literal 1656158 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 z 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 z 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%0AVD!g-9)6q5PU{8;5Q!VdI>;9y7 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 kp<^UzwV={rQhxqrC|ax&-k3it!?_i@ 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

tYweSLCIcNJn(=1p3q5Vq?1lr|)f@gO$M&ex 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

0J1%@Gp+9Xr-KJB+ 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

Bq;r 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¬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 z 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

$Z$|tZNbd$^#%ZCa0avx#1Uv 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 z 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

%d62&3ACwBe3R=JOgKT>f7Ow9$H~F=G4Ro4sJM z-|M)tBmV7j@2k-Y5)PMi^niLx$(^4wQ|t~WM7*%1O9J}j?w|%d*-5dNDFrn=Fx%9d zXO|(jJ0uVcRbD99LyhshH3v@k3uq)Hw}6CKO5{oi_2 zFG7vX6VugqDU8fJUE&I7WA7mQKtc29Auh~^=OT*DGiRk&RYOG}$HUfU0!Y^VbNf6! zA+|MTY=}`mcBn(Qu@7eV$yu8a;r#NPdi-BnWfgwej$;Ja)fusH(fL)Oc^CCH6fSRW zq*bF;Q5O}p-JAbd~>~chi~Y#Fa1SD-jY%SV<89qJWX5G)m7 zF~4wuJv>G!z_AjB5QvSSFfTQ}SIrQjTypKZo6xj9gBLRTKJT_0@#u zCN^7?H#5Zsmg35;!;slAZZj)nVgw0Tl73zh)wSrz+vj~t6G^@U_&F3>uf>&+rG&

^f0!pc>3wBOr+6KjJmKlMIiVY$R^7I>zHJYO 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%0AyJUe(~Eef5^=VM7$2pskhVX)O+z+O0lb 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 literal 1654918 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 z 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

!__EM7jtQs> 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ɬ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 z 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�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

  • Fvo>0Tl7HW~VwpaD=J5Ugk(5-mJeb7Brj0cfjp%hkSx`lFuE&-)IMMhA(f6KF zVlk)Qhdn96ZB*}u_z2p4#M)1Ol*xqtUW9S3>!QWh+V=Julzt|3D4+MY-cSAyKFW+6)5{43FC`+WM-$4xz zp+U*Cc~XVs{T(*lgx!0OzXHVbfL@cAe^*uI(*v%j9cMqH*6fyqV%vJO++RZN-`njo z3MEtZB})~r9mCJYo9@tMMYX8LPwj%RK&8)FLyDy0=K?^6gsrmS%6*zyVQDJyiiH!x|m!GIj*(!CfAI8Iwsu-8#? z_`trDSUr08KFktMpD!Dk{8Up@BknZSXEj?3GP$zoD1(rmgS(x5m?5BQ&N;*A@%NK? zvqY~pw0QowxPC4vVjF|l-YD=>b)!U@sKwa(YlQo@oJWm^ru{v>B|L=J6rC*9D|F)P zOWwnaG}$I8P+aPgUSpP@0z(IRd`@vE*gu+Sk<2AEp!);xW(VN_Y4o@&W(Yc+Q}hQ5VYpQ* zyby>sD#c>tvde%;0BIY$OG_W42|oQn2qzktNW`RY)6o`u!uFVe!B$&atANLvg7YE( z9uxP`j(JAF;!jYS&9y0xn1`=J|0Dj<7cXACVQv~(>O$VrgO)yQmh}@LvO;=#PV6_T zY(3Rxp)bB=a2AlW0w4-rOXPMgt}KhAoEXIe2AqHZvZzb_r>K3ZC$EqD{?U20U^>B< zlz73t|MDIGg%WA_;VYC9JAQqVf|#KhPkLu`H)~ z4jh!+Dx9-o22(0p45TUfd$fWx)^6G)N2d6OLB>#E+dX!6q0}WPG)uoI$jNn-Ku(4o z+5Y!WE+$p&XW-}^O)@lGmX&HIHa$~@qUuyO>O8n<*AouB_00kyIgWcH% z-Vl4q#>S-~c()*g9A$KFwpK7ZWkn=l93ZZZ^tXeeUsSB+QK4;?Ogg zhzZVFi@`urA|S_0`^?o$KC~J;V+Xs?#LjXO=~I|=$_Y-xQ+T3f#%H#^g5(4VzxKDk zaslqM;dY*M{X!TwF*on*=kw(u>{7=BKCV3S*$IPln9mSuRr%nS;48r$eTo=;p3a@eXm%1`RK1Uz9T)>5n(*y8?I{;F0&b>{7VnJn6uz%< zGIzsD7BJ2!lauh=Bnt=n~YfG*NXL!R#vGy{epOor6Hv}T#*(+moW$Yk6;QKFKQWNtJkJ=+c`Du^hVRcgUeQBzsn z6kpk2GpX3)IvfWNTJwto(t;k`;&bQvf-DAILpR?b7q zzs18@b%kbChczq!2XIGRlT7h1^GJMDp6q;}0GU8#eo5!5DdXVW9b@jJosBgX!U+SGhp#77%9!ZIe!~60i?hyy-HGim)8c8w2 zpk!>dM`k+qGw0*-45m8X-X1PKSNy@y#sByi@e$a3>&;2(qhP2Fah7y&t^@*jINH+B zn#G%^G&hzya=Mhl9Q&`4b7=K5pvgYIr2B@^-sTRo&mEssz4J}gkddPUFV(Kq?)(l_ zf6$4cxJBOg-9ZVF%>7k9il3AO|wWQnIRV*rv=d|EIK0fkB)R|mRj-+n1(w7Q?N;u znA0vUVv{CKNY2lnCm4^n^?}Af$@h&c3|QIv{Fkqfw$F_1mC%Z#nV{q(2fK-r3e@rD zZj&Rv0Mv*$LZdD3*YbP@owJ&wHpg{_>D!(+|}aEb%+-l4(`Hwp!h;>*iHT+HIx! zILz)oedo=r&`VeL?>F%~@^O^g`P)usYUInhcQ_ua|9m_2ktxufsZS{wK53akYR@<0 z4E}=EpdRx#oxhvLeG)r0+ZPxvI|Wd8?|=rMvU;Jw|+7 zm`i?C)*G|(?hs0AF(E-2Il!*|&lvFKm&^vu+&*ODkOGvdLwW0PR8!UrfOla0jNmoi zQEw@(Q@~CMWWQ3|ETIcaE{X}gBdVfay=G}?X&rfxq!QFzJV4TFY(akXcG=7}Ehw5^ z;wOy=-5tU0jIKNQq!e$rO|KadnPdG*D?}x>>4UWFyOHkuwJqSsQNjKVU9ly_)E50uI@Wh(h zy2X6JliN!PPP&jy@cM=6NJ&EoQ9?>uu`+_!BG7%JI`U2Tb&i{_JlyRPg0tvn)-T5X znUa-5L@BGTRy7+=edU6-o*Nzy=_Rw(uu0LpTB+K3N?hLM`jD31*mALU$r8-9{$a~F z6EV*~1w=}Wz1&mD_kC1fxDhaBE!t6G`d1M9%65%f_AK?;+Y72YgxBWHUb_Ei>I$P> zX7Se-K0B%56=$(AacW>(Wu~LA*4jBIG{$vlKl4c6EgMIvsJJ2hbEc^93Sf-5AJli_}`B^op3*Af|}ZSc*{4Kc2v~9|L|r8?&Nrb=+j#IXy$R zhZs&;(?0$~al5;WnWKIgT{&a)$wEpqkw7U#a*B&D1&d}G;DFrlQsXv3l5XO=&(Ltn zBY~;W*{sy9E-PC{-V<_J&Xd_E;ciG>qN0aH;0e72=kKIzhSjrqtdIqn3$IhndF}B0 zmGR-gyT_L-4-d2aaiL|9%eH?;u$Y%qmP7HV&vcNdrl5e{fXGe7dyo*sLvcSv2z?VW4t)Se%`)! zr?fJbam?GDlrs6~&hQ>b_7+r~i0PweqHhvxdFOt}B}5}WckEW_R##QMOi#b?9PI$i+|*o-Lp?YfXVk_YGd6Q2f%b$n$V72x+E!$fX;h> zv<`;%Z15fMA}gkUsB6taL<59_w5z$JV#!xkFqxI-EY}3L&y$}vSDc1&`NO%IhpC{+ ztRrbd=*UPz<4@LZUKb`Z*cv^AX?&tMJ|3!M%?}f&+En=}&H-Vuo~YFR!j{DUv;Z}) z71vSXSG`Ybn%=&q+I!S6+tQVNr4q~mOeuLM1IW_by)-d`TZB;8kd^fH)4#1Fz2wwZ z$@GOe51mK!y@;TU5$OPbhG5m`(a^mWX%6FSFA;q@&k!HTCV_#44_#2 zDI}SF^}95GL%gqLt)LpE_UH@k4t>TnNqi7&JS$wN=!&on0!LYcK8#ZCEgH_#m%@q=AuW zA9WtbMx>sv^R|k}Z>x3X)5XE(`ffFJt#d9Cv$$1bKOIDug*sVaDP%ryVrxI&)e|kU z-#1r9wadmAVLnH67MzM7U-k z>kVZz69jymOoYj{Z3}>QArdVi$uuZO9&YL@E#1*o!3yodQK{i`NHp#WBUG6Kfvo& zBc&p(vrz{nN1qr2%}PVtg;`(vtsVK*By)3)hD3n*!tn90Ll5kY`ne7<|D@gIrHsqQ zPY-b04+x#{p5NaF4mkJa)2BB(jF(6}oMU--lT3QmD`&gygA=M+TRHWaxr$kF3#k$& zMiw&>`5Jiyz`2g9g=Cj5FFtQc3uz>P2@ahkyOHdK5+PsojRE?7@S|o+s`}N+~gYMIKJe8<)(iX^mmT9 zmEW($obfzTU!+)ZV#cR|cBwV{!4v9(3kdm~F$$OC4<1x5S+m6S#M=hMr zJ?pfDud`SOPa^kfpWC|7;y{wPu}~aS&Wc~8t>BO*P)Zv5WAL^ijzk4{>u#*ETp6*M zXaQR{3Ow_So12NU;)oGQ0}kz27xr6EqJ+{VHMw(_E`BuQpfrgldm$Vk={13X3tyUX zC}q{vYkeHNbVo6RIPUsdR_zX0)^fXj_AXx@s5}>37{qpXTwERy+%hVPu8Jn7Y~wb!?ORT=li^5NIj8^b-ilw7}V zYcpT@d6(H;6UI%K+W%?YK1VCBG50#geyiG7_3dp^?Y`D5ZSSQNSA3kFI&x&GYARU;Xl`5@c-o- z3cA0s4>I(>$*MqU*Z z@+tf(knaBP-%W&XqCyVfXRqG9$=Xk$AzuPM$v-aCnWaz)@Io@(kK-TKQuFy)z&mK6 z+Kk-qL_Xd8`QAw6Vaf$q_5`q*T`R$UF!dNC2b;c@K#ddB4)3%e@BjI;gI>iJjWrNv zRB-zHtgM(-PY;MloZJ4)qVgC`(|TcGxk^#G ziseqeafs(HMY(@AWpH;og<*(R_I`<82=Z(M0Tv5Y`#a-_zM{rXA2bYE|4=$zbmHEr z;OP*BYxf{z8Pl~vsHY+NXEJ(_R0!TGEGAg)ZEf4Wi?kD^5dT#MkV5{S_qPKL+5Jlc zvGP~Y_wT09(_i&hv{V!p0oGfc^6dq99$%SaFVmQ{-FA^y_rqxn8=I zye%yAr7!~M)-Bkhx(WeA1!6`q-O8aDGiY_whmgM1MmYX{|Mg2(qLpWn;*uVP1*r+i zDG&BIdX!gI#=d8==_&Q>o;bJs-jAB#%;%=s$pW~}n1F%MPP+mJ+VUVfn zmiNaPP3}~LsUsGI$_Q1yT#QDBhPT|9TZsT(Xf@Cx>aJSVA1#9f0shFN!`pQ)s)f8W zfAhd$>!ZlSwBIh+ zT6poK!wmaTR1~lmWu%z6x5D>(i^eeLZn(;Vg=kFVSc7ALSo z63;SqTWIYNF|qT0NnpdH^0^V+ew^?&%j>zPqAD+B-Iw-0_P^&n4C(45p`+mXVS|(5 z|9fedy6~pKjTsfiHSLAKEO({i;I)#tzf_uLf2wbDCSOk_4>wt zOWpFS?c;>_c>F_rsCw{zOF{WSe1E%tr2b44e*8sOx)n|e4=aOZoq3vi{;Ch5UOry@ z$hoM4Fk(G<0-et^>M>(45RczfAg4=A(WKVUkv`Y}_JX{mQj_E!S2|BqvHBen}Z-dUwbH z?IBl^Y7)OUZg3iL$4@24dVXbE-phR0-fKvG1v1Slhx2y|Jx_;#Q5qFW*W;*WiZCVv zL9GOwRRyX;s3-SMce;jcdV7FElhkj?UJ={%b}|9_*e;dD#o%)9#<@!@y~|* zuU-x8Yo@g6K>d62{<7I|M@F{ET|Qx93+5MYB&S`{^(Qb$HUsbtMQfW)(5sDI6VZ!_ z@ro+4K>54*ie=14iwS?$44HoQ^z}`FnVP?FVK=mWFWB7C70LI`s}cJVp$4y@GauKY zb9Zc>Vw0Z~Xr09p4JC)V9iEPNFS@T?a=!eRyH0f@^Z$%2{ZsmS-?_Fuem^fg(e6K0 z-QT7>@D(J9Vx$XSi#gh5B|Y)m?3O-ynB!OUT?&ydfQ&PbEFI(yc$JqQItiVie-Hf*X(e8`zT+ae=0Cbd*m7B50<4>ooEx#N~uLd4JSs!saT zd>Y?o9J$sox2*1Tn$UbuM`_@W);1AyUS(L8+Qg^U-q$BhOxu|{ST!(a>KmLwwOZ#m9R=35(Z-Z)Bk@e0V-njq@@uJbE`1~E?oXE1#D@PjZcr4nK) z_TRq7`p=KW!n1&yXUuKD5x+^xSl=~fH6fbT>og=N+=A_&w{z8TjPNQ3qktIl_6kZEYqm@ajS64 z8K$9;Ve-`a!&=Y5=ce&f`8B-PB>H#;xrR=j9Pv&=*l0;BIYF3W0DBlDYtA((sxhdV zWgFIDrub~rgm=t$p#gsl)^xL>D?_Uu==eeyvZT>bW42DrBNGBt*E_a!Foq{@y>FZL zP;})8vjxeG1#}npwjttGF~@#Ggt=STEmm zj}`qs?G>8K&0k9ycUWdd!*VHn!jRzBxhLYCjZt8bQ?Q)xmi}25gHFmYSV1g*aW*59}EzkiK)zC2;21qcY;D0WI6o(vqDhNe&`FR)Xe z_;J}NdHGHfM9PHq;xPco!11iwECb_^*_xY`k5Bw<(1(UYXupKK>HPRZb)co&;&hb*v(AXgh$-$UrJkDz?mGB)j0aocKZPXLx<19iV2*FcC_;?4PT8#BU|r@C$D27r(_q0>muv z_xB`X{p!4S=e;c=0u9rT)z5vS;y3c}?M{i?n1eUtr9CcxHD=3>zft@D{nzlJ9_1l9l1~tah({iAnJ%6qaONUp>#Ke zc6LtAl5F3|NINeFbn^to(YuvDAcnmdXRJh(wOM+s-9XXIP8_+p+K}lj#6;4KkK91z<2Sw}f-7zrXS3qW)udbI@-=>=MITpFfxf%jStpsRC{Kjga8h{-!xZfMY@hj9Tic@eLIh z-~`di3OO5fxv&_+H+D-}B_$5NJxgzIwG89zILm<(JN<7KLpIGpbgG+|}Qw5Br2c8O8XblQ9u;`j-cUoY}~j3()k(8Q20Ee=6r#h4olH?N^) zM0b1w!wrjw!t06on?K&_N8DHsMlL}gwE7Znkc#GLjW-zxk4 z-tYKc$MHPxd+cYc`~Ls0Yprvg>s;r0v-0X{&V%;zmZ=PF(9Sf2D)L#q-r>PZ8HEK( zh@u)FuY~N}C;m!!1h||D6PIT!WA-Lgv9V$O>mTT4*G4Xzc-Yybc>{KiR$@|}SUPyH zo_7cOpXIsN#chcwte{_t&S(o*&eO~5SM>F^6{c*%yQpU%ukVcU|9yyhFJw#|w2Wb7 zB3g#jjxTUE&Y8INBkekq7`yNYFnH#N4|gaIFd?`zuix}ubJ2fOjdIC$fe~i*n#^~FDEV8m<&SWBO%~b2EhwspD(kH^PqVcew`#-EU&pcD#>jncta2zdq7uUaV z{=8VySILn6{5evZV+Y$-gSZ~LHiE4YbNCT-d4iDj;bk*(gZZW(#duus$9xEfBS004 zNOxafi@-PK<>g84l@s@;!M};fy>jEob7z_M9O=^_AILsn#1#agIr29RF4Gz<1ax=* zzthq`GR1fBU<-jfKv$kfJx+-p8z7ptXi@t%tazwz_`ueadG+uTXJ)oX(MeCS-fa$H zsD-SZtMR?C@NWFXs|8gcCH4OAl~BSg=aGWp^r*1r^}RL}^;8}z!jEO{8yIl1Y46@x zZP3}*4n<#HHFrhiFnz-h`V}Lwhpd4--ekw$`>gItepI9=~41Y%+Q< z6*8;IR}r@c!2%Bbaj&^{SSac#?fPe)(h*z#^V6s`YcAW)>{qYL>G#zQ zi>xz&dE4Y$+6_DA_qlB~!wEz6Cz}J^eDcs3FyL)ER6fiEvM?AWspVdihf?@ap)Wf~ z9FIVgr24{vIbJ*d^SryvZ1at0jIV|Wsi%k-q8t+Osh`Vn6fg6&d=RIeRz2N_kJMDf zw6H`Q3EtV&f=pPKG$+$pY@qe3^yFEp(|e7wGc=u{YnK%}w`b1uyCx)je7AP0=Ire} zNk>JFuh4Er>BSncWS0%Yb$`~|6kJ|0 ztsEKD(C@cvL1={z;EHGMV$MFariOXfN!mlvs%pEGzR9TgS#mD>LiJbS*0h@#UgP!4 zm#NDl5B-zy-&9m(hjpgMvja1}C+(so9nBgNTJgeTUla) z5-hrH7oB~Bn;Fdexa-iDx!0p-kMdu({^FO*Ur0nEQ-dameC}QW0 znT~vnX*Ei&8DEEj@w3rDFQ%;lNif+@JQkaJgu2#zTm8#oF9+$3x-a{KZdLx+0DCjG zUyO@WnHozE+$i2XdOb={KVF)DqcK`$?FTJqUavcUai-C5zY3?zIm_P~*uVOpFWQo% zxBzmnRd_Ioier3IzpDCg+O(u^hYlS8KudnCCrCfPZ(B7Upsv1P)=bmP-Kv9}TZA?`}tJ{CqTo9F5*4t^`4d1j3F6N+hQDs$xr6h@@jUe@Hv0N?sB}?C?ZJ&=gvBGwf%^FvL4tkTb_XMarRR}%w8K!LSzLbYMowi=VVjgjNblM9T@?5K`J6Ql)rsBs ze!EJl3}>lN>qdX(Hhi4ZpWNVQRsTr-X)k2KR-4iYgW7*TvOznRXLJJUDsa|=(m1Ox z@0>r8yIz_n_04Bf>3d3}MN}NzfnP^f%%k)aa|)`HifOvy2t$ygum=4m7`dHJf(0IiQ7|1f&`1HQAMP(pr3VXBr6ETBJXIcP3FK|!-^G0YER(H_jDP*wcp z8`0pRT-m~G3g`FSS_@=k3)sZw%oroq5&<*c6v(Lh)2Ge(G#l;4Y5Jc&y^|$&e0bU# z+QCZ}FNW&0+LZs{!!+y1))?y1Fd<2G=I;D8w?+n#db>KNRh^yS79FeNPS_>FMXl~r z@*QF^Y}E1@*iAoRAFM9o(m5a3(wacBs#=vP!h(vJ5%y$^{puo-8c4$HqANF;X^q~rkwZK)x9F;LsxaB;Id?g1ZBO%5{pvV%uUYSAU5b%}yX!9f zd|xh9JIAybO1=`*{Nlq5PuBP9-1(b2*$yjgWxVx>)`yCw*(3j}kAY=?a%cRh%11z4jAOVPR-0`4wT8S8;?)dg zRGbm!M`gpr(gVlQJuJrn_R|KV*m%ff?HxkrS^cURi|Xs9cTy3_iLmpR=}+p@9-eCv z8m)e6tmET%6zxNyUu6VFuky7udmNB5#J#Elj5Hh z^W0K667^O3O*S-?eS!!iJg8b<{Jtrp0ss~17%CVOGU8$i#Rn*5I2P?lVkw(Mn>A^2 zo5=*Me0mh>341A11HjURXEKi@qSlIUl@;!wAJdW}$Q)y#ixZR4V=PUN(k11{+JcY2 zbny3y_@OjN^Nm4#T#FUQR(KEIq~1aEPej_S9??M&6*r5(v(VrnLXA222O2 z(jxD~)XtfKkH7L;F-5R~240jRzAO9|!Z}V&TZjR<4~BcF{$XyKE=nz?A%YT@6nsd2 zikwE5Neaj~*c_XiMKcSXwOt`X!Bd8WMJFdGnLDFHuu-GBHtK{bUCOq@Z~J!acp_~R z7E>~7S4~O$>+T-DYV%&m_H2Ay{>F0i2C^^JtM@FK!6W2329^%{^>QIM=iHr@obg4l zDT<*bS)SOMh1@BpQ4)!#rA!t2l(bfm1#`|_O+Qm`IXf%s({6^3}e*PvK78uf#nyKhD0gO82WoBii7P zgN)T+L*o(?v$)(E5Lxv3qEeix8x|tt&i>ViAz5HYi&m``EHrVts>UEUg%X&uE^E}< zlRV}0AIcU}E*kP#q$M#@6z-VWQ1q~KdyTN80zne1&xwt=di6!{%z#!h6$}=cW@5r7 zkv4z^k>@kRr2u14c8e>o<68$&FM#yv)+FH6&-Z@Ek-|~qbf;Q+7&;S@p%n*;^$!m*+~#98K7Sch*VP{#9HIcB;+9 zK3g>KvaP|I(FUD5by{X6an3_+B(#eh5X=ndLDX_)-BZ`-r+;r%T?Gf!A8F^J6m*aY zU$5frCX?MXfl)N6qg)qCNDw6<2zGGF;`Z^lc<}WWMcVQ9h2(}+XcPQ5s{~w`HS5%4 z_HRW+MM(loD3je_3JAoTZou2saS<^~xLk%8U+W{7uaQCe$yVJfnzItbQ;!-|?p3@vvb6N-7W4x%7vx z&i}s%cBW-^a$H;tH41FY8PV-#ooUvh#XTm#CCH%nkt>mXJDe3a;zJ2sY}T%wB=+Ap zPKa2Z7}Sl9%ft2?&YJtsS`{NEVO*ZASH|hGKk^VPYHG}#o1q%LgQ(FT4@QCuOIkh> zg#?mh>nibU7X7L$j;=Ibus~e~l`v`&D0L(M`ffB|chy%yuq9Q4)-Jtz?dELC_&|H- z@1yKp=PS_n>J@#ymlmFVVd!ezi-!{zuP$4lSNzo|rFeqTQN5(7Z^7ZtyL>&{8UE_~ zWR$rQ(p70eNem+eGS2SHi2$!yERF`x3TKR*!!m3SI-{zgu@92XVOV zO}X;-!x4&gmF30HI##_gb#)bMT!NTu>{BTHH@i}HY7#<5b9h90N!cSqi)kE~FKLla zqh8vDh)dGrF^vzEGV0PE7DC+Qp!TYNoI||&C_7wZ3`xLe(qt}7x+=(WwQ_?NH0NZ@ zcC^_$*L7~BbKqt>mA;k@N2a(`8g|?~_(Sj4W~&dEnaUgh1F5Ok9*LI`Sc>neIB5Q* z!=M$dd3l}T%Ql~sW5O)W_Ik77_c?<%yAIAX#1*a5J6<`MZ%xl|rF z@gT6IuZsCqjg<&Ly7M<f zxcF2phv?9~Ufn5&QofzvRr8ogU{bSR_8QRrY1xw8LZ_-HyE}PY-e<=}O?#BSGVB=R z{I;=XhmI;82WU5U{q*7#&YrhQz9DF-eS*gzJ69N=pJrxe#`s8v^B9^dG~j1+sVNY#RjD;$LLE3ro`Ya*T9hZfZ3-ZP?Kbio0=6t-of+pquBNqnE_ z3NHJp%8gw|78RBf$``weBUfL&ex1TS>RHH=I?wU#owmUTvbAa6k3pBwV)N>y3?VKT zxVw~XeHs^>^yZuQdZmryi?l~vy>dRtak_2&2K95FL@G@lR@6c`;;SJG%z&uhw#k41dcM9GG!$D+Ek}! z^+ky5kHDg>?zA7y@s}u%fPp_uvn8yIy*p z@$|kgz)&RV59N zdp#x*Ugoy@z3ZDx*>Rn@>n_Ge`79aG->l8GVSm=@&2bD{D5jh&QNL>1n10JDWfIzY1;1L<+*0f1daGVPtbbf8T(;zi(+XFohI91Xl}}fgUkNo|JVhhm#ZW(LA*LWg zOG@ZbEoH%r&f7K35j!o)i|w6zcel!|tCug|XPPX^cx;6#MvSNl%`|VKNWfp?2@O?* zU8akVQllfQhprqzKq+i%R&^L72MGXA`!miO&Jbu9 zd$;Psh6RxYdU$${0l14t5Y=J!Msae-@q}e2Cn6%6s2x3U_(HeEjTPk&e}-S!_sG#f zMj+2-L>~u4D(oM>etj$E-3PVI0Ryx|5!QQ&wfST3r^kYvHrel9^9V#CPC_&{7NtLx zqr7SrE&?-KcX0$wL2VtZCmIynB}qr_Q!-~T0GVO~E0FHm<(qMhL3X0NR+9;mb`TMaqwa=BOJllR-c)>FXBn`K^mpuXA8FvG-a zj+gG&Ye}nz{y6J-ebdE?y-h~9=x4O7H(C1Z+1^5VlEp+xkUX@oA(FcAHI>YOh{_P- zkne2i>kOx4aIV*|9E-cE_OsVsT=9I0-SDa>zaY;3$?kArpgpsWS*3?%%pKQzNTY#$ zo7Md?Jo0Gfj(r0hQc{`6GfKLb^g_AU^3aLJZ2;$3hT<_9Wwbx-&YjUL0GvST)V%RK zSR(qfJ62jE*A&(H;+U_WW8>o9hXf!0fVe7?+m+4jz-J^ZrQEPqRz(|Fi<%wT_dEHp zY{@!dbw2<48h~1@?+M4}p82xF_OOd#;h?0DjDX=eM~^SrpV_gM?c6l!>!v4(EAaC1f_q=PR<#F_AgDKg?q4k<;^kW^R0x-WW@7&dOkSy}h z#g(N}<1dDpc2sj;=&HbnAE{9n`@9exD(jWZ{k7n3g#|*<7Bl)?2k_w zHYh7A*PJss@8mh%E8kk*==QbF#4X)w5LDkE`80d^w{8QvUo?892-;w1(|uLks+jVq z8~4`-KfKp|o153osdrF7Lj_;hRK6aSs<0dv-&PZ+#7&={RZ7J3=KIs=KZ|i(A(I1M zv+h4cF~beJh++nzYJzd=oqPA*rxFBBdxb6s@jw~a?>Bd)liuo!<-8|b|7^+m$G+pN zyU`7^7j_<`dnIewtWPiN8f)fuJN&O^s|~gjy1ai8+c?x^&a5cS$Xgc9nIoBIsU!wp zgWKkfG z*&Wp@J=+|#u82CcuhxKvi|ii84moqUa)pLX(c9SMgdFqdx>Q8*<~cQ&rd<=v&d09u za*GJ%1RU`4dcY2?)TaC z7!Gj~y@mN6FPu1rC}Wndu{Wb`uJ;0uaoOiB);IEf+gt77rhQ(%4`)97GUTPb z$&RB-4?L@V;Edllx|G>!EktxpS^t}|Liu3r=sud7*>naMK;vAy?)B4<-IltOZEQ4g z2a?2c1Q5oQO;R$9H98JPS(~+QZ)wx8G1D{bu~NgCK_tg$Gv-$Ani8f<^wEYAJO@VgLK&!9bGx2d_5-kW|{AX9;Oq}0`V)q0@&ep)vF{pZs4L}D$*0G#KkGG)N~`A*zAAi*MPq;$$XKO zm)GE6;?vUxNc!k~3C%Wk{P;W>=;x0|uRBx#;*G48Jo)%g@l1F691<-4nbP{7(#(Jb zs&Qh;<>K_hoN0H?bsCyX-kb)$VN_COu2bET>F5o1C zswHv6q=TPdp6@I}1aRuGj9#x=si`g3yn5<71@&F{z&693ujvjOF~W~T{getzE3`um z{2C8olp&pqv^DnN?7WIGiz2j|7)9KV|Mohd*ZF%D#fq3y4sk^ZO9y`V_N}TT{{8#u z?{2kRWmgWDZehRHFCp|n3!bWz85@viC&usMzrhjcRqi-CK=WYwyQ-GqG?feX7oOEs zH#J*5wJ5xNQNZF=A99+naqK=TEs2}Yk7G5}iY;3!9m}m~mGT7npzW`($*nmOfhP~) z`mC7*g0LP8A@Dq=G0C7&&chVjegzr#9YI*rz$OGu41yyknnBkv(_(*BsY!Ss+znF{ zSBz#eb_**aV}?9A)k9*SR=AL2@i?@HUE$GXAK;+c>e}5aOQV@bVP`&Q?xsz{;U`}X zd1-oWmd8t zs7-V?l??{m)p>^}1$%R*LcMFBj-9)P!9<+5WUxwiB{+rN0$V3lKI-^0FJ!Q3@Y%jc;X4e3}2Q8(zB8qg% ztiQ2n(8CpVP9%KNeAZKE_@MSXMk>vAd8|63tZv8KZTk&8_;~h)^40e|M%J9r1@Yx5 zZd6=pylw5hC!8$pcVG6EKFEl+nA9|s=}`TJKD&QYy=H=STGqM2>NJsJg3)2-jo^$D z-yq_|GAE7Q*&hp(0k||E8FWji9aql3g%i=}?GEInrfu59iBBYhScy8#BtBU96p+CT?a~FBN72bQCpO4QcPzZ=3enPB&&9}<@m%#z&KURk!298~C_&e) zcRKQPS)sY5ysoTiHEOTgW#XORr{2*1gO~PeH*82Vqlic2#`O;Psb`q$aLweHOf;V@ z$x($viAl)z`~IhPqm{$P?pWMz>5+_sgg1n}-(<{}p`N78=R{nA*n)aOSYL*O_=Byc z3SoOnRij<|F4jY=aAD9nA)qlU(g1&jk;#ZqdiJ?HuitlqC42quAdkaJuy4fqkdhV` z_%TepOwm|LmfzEUm@3XEc<9EF6`;w&XFBmB)ahyPQyEFZU)mz_h4LY#2EC2@zO}`M zUKp_KuXMY3-pvnhY)4-WoH8|fLP^Jv@h-#TGw*ijcFD2(({!Jii{JEB+BE-dPTs1* z)eBPwct$v0xcbRFFvb285OLb000tq(jtO`B{h~Npb6*j2m3GWBV7fEadQ~Q6sdP`t z6mTmnDM>;3UO4pf=TDGxFfI>ROi1%j40S=-@I=p5_8BPq4&SH><4IMm%YrI! z4l2S6^U0H`O7uv{GgAr*3!PYPsbHx=!J^{6<;Gvut2M698#~Rm(8`7zRKRkbPy0n* z66RhPnQJ@?i~Z|VJ3M&wdJq)W^ZL3|dH11!??MbF6ANEmU(l=1^((i7eUcX?ys3y= zYhKIT`o;Bj!Gr&q=b?x^>~%QHYa81gbq8Bp`+BX--B7?)B_>Fjy=6;H*t*RJ=3NyT zbW5-1)D-Y}hA_fHmnay6kbWZn=*FF+mW-}U2F1)mpvS?^-gw63h1@8L1KFy1a$A92 zS_0G2j~TZIq4Z9f*=Omfn)L<-^`FqChFMmSXG+0`oeS%ZG3Xfc;o*F1i``~cPp*#z z!0`;;al7ek8HzT|Cc>o_-GZcK_=`||4?UChk2d^R(B!!8@!4&wtb#sgnGf7tyR4ur z(RyzKwWC-6-MQ%D=9t5ZG`%BMER7)7!x7e}G1XBGjdy zP>;pFs)y&pbi(u|1Zdk@UUs&$LaS zaalf}q6mSlcJwKjm^0Jj5nO}eBf|}c+ch{oQSbiNS{(vrg)WZzQxy90b$NKyv75SQ zEv|Z%4J)~H{Eg~{ZW{_OD;p+t=;=G)pq1xXGyi^tzpfuiSZq!A$|^4 z{>=5pWi1fhCUGDzzGNwCnnkS+?Kq&jmxdwX{wNnp#tWzieva$>-zbvz2v2&bYk1-NctU0(nP18w9D@?$+|rjQ_Vz2fqc!G1?=9e7vN0*Dr)mXpUBEkG{XIK|Y;F z<|F6}%$W6p;73;eX1F%@z^lD_} zVO6~~HO-GG{ig-!&d?}w#={dj3|QQdvYP1EOigV!5;l=44pom+(A$aU%d&pPrBRY@2}v>N0C%O ztsinqqPT^2Q^hm{JYIt?#QeP~wJXqSbJiOnci!gSSSL8xcf!JW*B;k4+$enX+HsX# zc}A&-888x9^5^T*HaDDmw^teZ*{c1VT=T#@hs`Trj5XbfDEMf+Ew3hgwGToQrdAId z+9FvGwEsFbV11p2*UFryKrdnLHtpkZy3MDce3nhA0@0z5=`r+>KI7}lCs&2k$#P9 zD~Y{;vN1q5EKQg^x!aH-N3l{7fT3sYcl}HF^{@o(Cq-w5YJB|capXw-DesepJ@fGP zt}6@UU&7->ex*TdvR@pM&wJ0?^24B5h_bm$=KiB0xynN?(=X4x)X7mXyVa%XTX&{< z>hH>mDlg222PwcXa_T;0mpm#c>XZF(|1LM&4BReQoV88$EB9uY`-Ds+xzsj z#VOauW$KOC@tC8@=d2tuYEA>#oF9W%oWI5A!$XnY&kB$ ztL5BKytRi)7rIX$Wj5+DfplN0Rg|l#Q>(+Io$(Mh(lSr=F@-9eol!a?+}U=BRPN)i z) z6Y+lo|0i`vGRJzT1a+So78hbBmlf;5s_D%%3|YW9-TF9cXX*7nS!#vsh2hGXH^T5g zkfj}k^>5v*^t)NQFZsux%E1-!`+RoRZF+B_!M*y+z8zBSb9us4|G>a2^`E_-xKg`x z#=u>>d`~QU+V{+Y<`bKpziQ^;o6%uYWORP|s0A&4Z2ILf-XcfuMdYK6VR^Sa?dRq= zPui<`eVux^0RkZs9j8s{c9-8p9Crf)1L%(TAs^YK)0eHG!&bW>9Z7wuo@+)YguAFc z0Yk|F9N+;HCCD%!qv14uPwSH%|N5?DJu&)ttL{4eJ9&72YP~}1RqH^u)9#06!i06f zK?G-``OC7@gZr?EBe_hxBb^q0rE-9GYsPjIL_W-qzK8NWg*l!=Z1wRY7p@RPni>(H znA&P_zC#?(Jd$O-VuQ`$nfqtCs4ug#vr$xdaI@NcwRdpX7}haTunbaYY4*`jQ%zx0 zmHeB;(TNVTV2bp2*E;IsBSy;)_O&wv^4HU7?Rrt^Q9<#^@ePz+rY5hM|NX$B4i?QD z7&ds&yWL&anYETqyH>B%^H<(~vM7(M$G30)Cz`r?K;cK8=8O`Q3DXYs?Mk3t#3Q0; zXLNC)cW~9b1dr$nQDDxlTq;)FcpgTSL-7WAe`C}zEB;VI#9MSR{^fj?gY2A!HTe;v z)FHs^0fa>j+|Ru<1$^))YHie8y!(!CDbv|lOKh*-a?i};PUdLnVm-Sx zF1GmA+<46{rxqP`7D0#1XC6jYAHaHe>eyP|-S)m)2p$@!kfg0dPqAt9=7ov#uEyo4 zvRg>rlT4CfFNcTkh$3&C7CKO@%Fr_FXcV%mL-SZ{uLZWYld%BC3^IVPEuyleE(N9E zXHBcWR8#$%__&XW`18W?S806!;XOj3P+QsFc{}HTusLaF%N-BTG6Nz4f0>+Qn z6XaNtesG!Dt_xk`FWgAm=1tMwWOD=UhlFMWG_ zy!WrlIab%EADU(~c-ZC*Z}M|B{tKf{%r7qqJqm;s zby6T}GU0MaZKXaru+9UF7SqZMV#cYycejH2)Z{xcXu?Tz@D z?0DQK8NQ5=K2%#?E8nB6uw@w+Y50)2)2k zX)%2^|K;#i?-aomgYSRodeJ1&*7wPgp30%0{^#lc_eq1RouR(^lu!wJohg7n_Pe1O zGHgfnos5l+DKHK{Q8R0}g={lK$^rzv?LYELhyY;DtQaq&xa&*>mOPa7qD9{Xx#X^a zezIW>uJZ^WYqW}SR!b^q6Le>>(R5ziK(I(C_XST1`=8@5wX)&C<@2pa6?!CD55J(> ze%%x|t>oT!u_?pz?M#1BsbxjB9lXkwsHep{(*D2v^ZC@Vz2;SDm`pHIM~Zgb1>&qaWOJUSs{(q9(4}m@gHD6Qco84oyn9T>ATU(Q%|4VEurneBw3e6 zG%jSmKo%nXCn(<;H4UVO5APn>q0?1@`K-BtRXS2R&IOt{EQte%{s`L6xw0 z@#40$D2*S|oO1{M`2=KKci0W-BEHK2R`GG@(Ic+QT<9tA*+RBKk}7tRqXNAfcSPfc z7$@`Fw`Ah6q#MwO?LF;Ms#;ca2H5;>1v&X=`OWjA>{@ozA<%^?xmKHdhv;cg0E4J% zeV6$B$DCyZHBR7YPPZWFvo}S&Crx(O=}JFDbMK*(!F5!wte^+;Kbo0>_^wLv<-pEr zwS7VO6xZrK8~jSsuB;d!{Q7r*kU4hj*l*mkXwq!#{Fx7EB~DwErOMV!j>=9lew$=F z`NzDG9#c*zP?rzT+eEe70ylBS6yCF1iPEvh+*?CguB5J|m6GL5mJH&`iO`9%h34WY z(nSfW-LJJ-afZ00@UITG%i3vE?cm(Bza7?3qU5K*J|2`wG^Wv-I3!~e4r?EHvDZDS z;>OsDe{8Mxr)e*L-hHHvD(&qZ_#VBZR~wXxWCp3f?30>Y)SpWzzK!Itz+7{Tu}{#} zhU(4TBF%`Mv4(};-;dGWBL9C`9={8Z?WtpSMrm+XoEec%Jfdq@J=7JRN=?$TT7b?6 zNOuB6f@OtRXJQC{t_6ex+k1DsgwX=G$~JDwlh!G?q0jeDhP~58+vW8AT@54z!RQY3 z7q#d<#TBf@VgSJs*ESSuB2H~1`XIKo_1BfHomHy*4#TtHjkoRCfr(%e+$00bcbBhp z=VwTZA1@A)-m$;O$wTKQTq|;l-S1`mm)Qs}Y?q@B6#C-afPO!?hk?z41?n8pkDwc^ z33E{$l7zc)%+S9-p=$yJSw8Inw41y}04~vC3Tu{RG@I>6Mg?wE(kQ=RoXBCP@HLZE zh$%tTuRI4ax}SM2o+s~6SUs8(wZN-y=m|QdQaY*h%rxI;Z=Sr#7t!FmSqYv^Mz7gE zP1K=M_?KLRJHf^zd|Q4x9>2= zO>5c6rcEc9@@QY7@0Ugk{wB)m1qTAN+sv=?tzl}SnI|KZ(}p;%tca?}Y2aJP1H?;u zZk2)|e1+kQ+j-W0SO|odfZ1(UYqkZ}>)R)eSr=6^&AQUUVp;#Ai zKvdX4ah%Y_1!iW?734soyb*~T%jSeWUU%-ra!PzzVg$$jgN4Dlbv7kfe+iP)YVhYW zKINNOOIMJS?2a;pvB8fV6ZY(S8u;Fzxi8K0>w;$rX7|D7g0F|lBk;kxr2JRuncNnmQs*P8|1EyZ>L6Pec+!yB zo%{EHVzv4eUlcd?SO8gf?9MSDM_W!?)D^;VWOw!Su-W0HLUZ`Z?`qg;OdDK!Sr2}MlP7aX ziHV8n*EZlj)zrnMQsub&k#vhk8{631+n?DuTX{g?C5!QU-&RcwIcT*-o*FD9)07*AI#8sb^{)cpo-br^p1 zTTzU!6aXHSePo}z z^-WG9qVM$BZ_4Ria(o|UzDjJaqH;J#&+_j9%UM`*q5iTbr|ui}7$3SsE(zCUBEpY2 zzY)=@qo*x`>!%JfA)0Z9=6SrW$z|tpRf)~eXB13A&wp~os|!8yH#kQe-x=ktbxd& zm55KX$i65fgIb?0_9NuTqUKhuTA?{F_9-Fi5M}BRt9i$-mu7HkWFsp+xw^7t4pbtU z209~x%|AFC#z4AQ#a2Q|TtJ(FCHf?Wf5bYUKumK|no)R;8v{i8>*#djTnS+y4R}Za z|3dQoAwr?Ze!#*d58jS}-iD%|klEBPM*YS=IJo@Ge|ofsXK;Y-lxqKxD2v3TBy2kB zb#VSp?Noy{ZkPKVBdOEyg{cj}LdU1#UIB+p<|t-euJjx)KspiQ7(2@$ZgA~h7OO%>hTjzDGoTx>dO**+xT`T8MC$}prviN+Ig@v2(i2n|?6EdnQVN`VWvYows;HZ(+>0?^K@4J&c zmSD7TiY4#RgZg`aH0z?Y^_pMK@WMaI3mLiy(bL@4MEf`eb&=GDYt~F3v$L$h&tp^M zC;Ti9sXog)V~_S>)DjF->pP@zYp{?*FQ8Z^a6t-c1)$W(EmZo<9?Qxt79gGktCpcMVLet) z)?8L%tZ?)!b&zxwm?ZVau=AL&FRtYC$nG>ckFcv&AxnT|=mod|>+kvgH;-2lfyP`% z%RtlB*S8%lh=0?kPxctP_UW^Shbojy3BpU8dF$OT4tZcxg*&32(Kk`-`QsFqE9-mc zKDoV%5Z(dssZsufdIXuV>6m%5ka?11yguuhM{n|FQcRwk|Hx|s;&3-%5!v%DzgNz- z%%J$_G5vHCr-Ce}#TC(&6-Sv#{*afq{6aV}iw?OR{ebW;3xH9S+L@!WKYQZ)pJUOLI{1A%8F(G?J=%S#q!@Cj<gZ10c=HT(Rc{X9l%x^IwhmXmxNB7=1c$0q4Me_M83G= zpwH&8eGIYR%@U_O)CrRy6cne;&Z`p>-CS=~4&(<6FUe}&yH6iN`g@FdYRwbAlvW9n zNqkp~p{EqrSf>62g5=k2{~x~(441iJ2rf@=@6!*e1VR%YqC}C2B^n&T9AN!Yj>-e# z3ZrRy@YVC^O_G+MptJLL7E}+Sz|lkY$H=uHOkglF{!HF^pcKuI?kF!OlqD0OWdcODsPR~2Co|xV`fIaXIKUvRfg64`9O4^KelV3Hgx{wd zjV4sexFxVrmh)7Do~*eiIx=XP+@pG23q13PyiI9Y@S3(A>vS!s0(d~nuRB@5(R~EI zPHy|Vo2@$ov0Q7B;Ub`2)}*P&)nn|usrlC%;BPdm`ae;fNexgm4-gB&&@$FzNPpC* z04Uawi3+wWHeeo5c?5lM=-oT}ztLA#;8!-n(U(;)kuH_P!8C(jEtx;R#z=-_Ke7D? zC`BnF^U-Yokj07U>j&utLDK!r5_)4 zC9Rifi5YMvj92Y_ok}90+1{eC^!M-9E8o0+JzTrokKDh}4_0Z@4-9Vy z;lX2;I++v#y&IE}k#RbC0~4eS1SYeKPM=bi#W3#}U=QT-fU)e$|2VvRa!N}+2?>;a zcGLXzmFbW^L|pir2A_$Aj1wsKcbnYa|7X^AYmVL+NF4S?ib*(63y<`>ObJfwot%`U zjBJXx`~WeinAB068TJ3hEfUfZEecQKJ?ml^qaf25^{Us z)VS*MxnNfhgRq^k_7@@|POx7^f9rJ19q7fqG%Y4l{UGhyp}8k^$mw-IK4AB{nZGAH zxNR&=+0Jr$*2N&rReJp#^UYaA_XtkKhjCX`HVn3#a^gQO<9~;&t(b>Ow-YdW5N9WW zT@XS3L*X&ZZ>&{@IJQZd`SDrN-^OzZf=p zCmfPmAoa>-zB%pP1S-knW>>)U{CHWrN|szj0`8Wrt)nA0;}in&uYp@Kb}nCASy8TH zv(RZkk7^iX@aHM?C!e6W1&AWxZm?$ek_vvii%QOg{Jv6 zsn6gz2Ie*g#tnGpphsg$LCDh2jf+`FAz}y(B@SI=IN{Tw@%pop`0j_n?rPN|QNc7i zS&Fio9NLfQ&?4C)V%{hUya)8tzZVq=uZ}ND)3$AoEvNu!3nKJCaVIWZJJO}>8WgJ+ zfv?S#1}(ZP#DRw$MOP;L8KLreg3V!)OJJx|`2jrwT_(x$?*%B>HS3IIBfpzB%bT07 z-1O}4YI=5C4&##D_HTI=i`l*wtvwu5Ig{Pl4S3yY7|sV-RHWA{Carj7Ll#%CM7^C>@ov%wVVtSwuzukU;RpB7-tU~=|=tw~6io;Qj8WW2xZHF!Q$ zO{d*#OuS|MykEa2R9DqhWb7Pim=MAWDW65^L|ro(rhab$MX{Bsc{_)^ z|L~z;w8Q#o4fkffy9lq(-%=|oD*c%&2FWim5ofzhKfN%f_1s(<(_P|SJ;6kSwUUpR z=vi`5)>Ogxs$F5Q)R5XqA6g!2uM1CmVD8-^&{KiK&V^eoUw$;`=fN(AE3Yru8=Lox zWjPv?j@6yl!faL*g0*ZfEfS{$N)TDw(4R&2toK-E0QSD~;)SVlmx6ulAL^%ItIgDf zyq%%A`)nn`ky-0dhn_f^WUVUwPjF@xF#ER&R=paFzs>GHbZ6$77*dn zZf;OvbeW{Gl+l#=kISD5qLoX9#SE1a=<7WyEN+?-xj}*{J%e=bj*;KLjEsy4-8w7E zxqoMsy{So5zW@E{dmmDlv2>;OdkS2KG|T0{{cv-5heoQ%+u3Dn(-kgolj&w zg;_~sa(L0L>H_+%tU928k>z)Scz7GiE~Tbt&5)@#k)c{nil3Rj-3dR==Tr0wWBw4} zbXkRXCT|+cj5)lw|Ki|IH=*FsEcjt9Gll=jvx4@=-U$&WU4**k<&6AXGs*JC+P(C- zAY#&Y=B+_osvwnpe~@7!l{v>--&$6(NX}gGko`93lrhUoq+LZ*vm;ekD%%2i9v-j; z3I^kSs57Z6VJdu%kjIKRNXeNL6QIgGP;H3{R{n5ekrkG0Wh9w9?PGD6M!2 zvqHV`Q+Tx6b*C!-2}0tboR)zu{6L~ z8TO8`8|l#KJ9*}K%>-Z*T#g)cuu5*arB$8xZ(baxD18#Pe#mp9xeI@`pOAmJ*5G%y z!$*{zX{=j?+jCAVQXe-qy%`&hVv>{Hf#;C(OX}`F+QUTS&#$kBbS$8&rj7YGYU?D{ zm2rGYN^S!Cvf5xJp2($)Ao$cb;Ac7YD~^5M{8bPqsqx3HYvh| z_2IhLkePW|1Bn~l@!7$jJ}q7U>&pZlxr`C&*rs=3D-rlepaV=r#-~9Whfc}Q46}%O zkhahM)%S!tZ`b{Ic_~m*I9W=(ddQNA^wDEk=0_2_gbIl_bR=uUy6+uvpvZ>r)6b=< zK`=0t1jnsRjZja{r3Hy$0&e*xY?U)+)$U;aeVMXHvgPJX5%7UtNsiz!8U(TunE7+> zgN~)YR&vVqu@BmnTv!zYvx?Mct-}4tB@#)Q+fM{W`?)53xj3e|=cg)7Zf~meE-#Oj zkIFKOOsoYZ%a&^n)&s8GG>gV~XM@uj^a-E3p63q;oQHcUnfvknTUeorYftp1@(89( z13J(I#-dL33S+V|;V^z*+mq8nra{NIJ`_#bxVxZ}0yXgoAe#bAT=SC6|tc z7`A2QSqL3a`!I|*k03+!uLAP9TY(lQ^W(>HwEx9gfS=G2_hTuD=_POm7sPI$`6fCw zP|T}{m^EKMfDb{Tb*Oj@X1wL&kZPxZw<0?ZVkE?J9w;Cf^F;auf)33*f zKFR3^w&q)2UlZ5;CXY)2=8w@X{{>@EDfl#^AJU-jo!- zaqd5rN9X)WzVCcs+_7ErJ{~({9=)b~YDM1pw&_mZ#tAy-b>|I8SloMIX3E~S_4TYi z9hDKaow0>eQHXiym{VSoO}e>Ml!-BgWK~!AtpNZ-YQu-XPUD#>%{&~(AUoz5bmsjN z-Yx>mb+Q|5l0M=S*@H%3j~>~)7h&B-Se5SP9w7I5i#if9l1> z#vnb}i7HMa9DueXHXUQZE|H)hRc|AucNvalaw<60Qe$DaB|t%@-l#%too`eOm?Eyk z{@3@ZyZDq{7x$~bf3gA-y!&^C#6~f^1CuhCmjrOLkw!lYXd9Z%B&4pMTGA4Lnw@Y$ zt?7gtK(*HCo&coVNXO+676)Kx0zsgF4OM_2q{}dU60TD`1AmayvguWkQ^%W^!IQS|3ZQC{+T7NAj#j{}(LSSefX z{J59-HZ6^ERa`M}Bvnm8JX6iC{Gc@J%R0pjvm^bglgpTPHPV;PR zDiUvv;#k2uD_BER;NvjC(yI9h^c&&jszQlDRXqXyuUVbUG;jYEFZ;39cmk2oyWjkp z2%X)QKf}fXTAoqicBC)byq$#*=gc=%RgEVy8pS7)wBgsSz_7^{;k*t;N$*iCVm;di zmJgC>H9?g@&$7f!!uir?XAZp|vYlKLf$KZb`aZmzxYKbZ^c!>woN@bK#oDyjqsl9a ztY2U4p(qdfxv=0>oZGF)KOd`7WAejk#vRqa9odjy+_18dhV&^;76?OhY0J+9J7x;u zu^s|NmR;&;N^H($H5e~h11kUe3H4lqelgY+dl&@JI;-cG`1-Zp+e;IuF0GNv9(n!U z&+?~zg>j@#N@iZOrX^R~>Dp~$IrqgCue3zw1aU;HaLHaxsSK6v#zv;8^izNo324WZ zOUvnn8yL)knqcMat4}Z4=r{E87urM@Xq3}0hyyR}sq=Ks?Aaf_el1VU^P%9II3S z5T94+Q>`5W&u>92hiFY(` zA0MYlbsD!Xd!DgX5*{3dNZP8zcz)Zr-*5iVbrbGkMCWb9$M-qK&YKr7c#;4A8G3!DX;a$0Aq*-ReV`(zxK0aBCEOCOZy)9@P zAyqgpQ}9=9j44s$_IIj9qF+BSI&|3#{#g>Sc@`Tb2zMIvu4WXiLS4oM#x=_eT~X^I zMPv z#oDhi92D~fI{@xYTeW(?8;WF+BS1vk>DF&O_(4M6Bx2#y^73nR;zak$j39kHtyf4o zVp_Q8@wEtf;;D?tATP4jj}QR$fV?(*e6i7XTayJpuh*aQ?!Jr5uo&ae zqut$3?hG)6B4-@cgK3`#`SMa#2t?p&JcP)AGEVRP+?6>N*CRNBMeI-<%q`NCH#uHiP zxys%?6Bs(P*1u&51PQMXUEV+z;_f9IAopw;OaabuaSIO*XY7|hS<3S{Cyf93U8|fB zGZ;_XZh-RPyb8TNFNL8}xndXQ{jr+Rv=#v)`gE3>uSuGGHo#NcuHgZN!Z3E&&i2}OrdH2H= zhNWe?o6^xc3d<{d?ya}3eNd-9#COry!4@1zeS&}zfs}Uu`oeZ}$FWRR76sCsXV0E> zaiNS7ud+XrYIG!)Y2?!0mcPkFbnEQ&z$I~;SK}dZJbNKi&y(o}O83gwUxF0-{HL_{?*vfE-#7(W~%c;M1Sa95Li~=A#bNPu4$t?dR*ih$DCNmaJV< zbH+FB=x{UTqD!6Ff9eiZHQ1-5`!d1OJpXz?NEEGH0^vAw^RxkluV26Zke~nP+u~@G zcQb2vmJ{MA3(^5}=fYHa1}mdK}nyZpqCjOH%z_RNU+O{GYtmd8TV8 zVOGTW{g{ZN&<3+rjQa7>q1+yQS7gq(HqUar%E>$S?M5)2R*;>v znH&8dn1&~?{X+m!t5#k?7%6>-rEpTPswRuiBAXV-;KGqJ zolT)pMk&M0Skq;ADonbtgjPQp2D_RG(RPUb^~V4KEZGaW{?lym3KnV3&czjJ2` zw~%$KN%S^BPX?x6bJ#loHM*vA6_^URLllfVraOSsD^i$mYvxEL2wXyq6?wJd@-c*D zxXDrhd1seQM}J}DtJf0f1iko>n07q0k-L(~#NDFu-M{~P>WN{1CxvxIqc5}88|RLD zQ?W8`<*)8$CUrZld-o$He)7tW?e~7HMqF3KbPF!NMR5^nj~n3~fb02jpf5iO`?W4W z%>lUssH8;C!LVpDFi3>(S-N0~GkIV+UHPZb(Gyp#ikKSll4@=hz==LE@cdy?QlI;` z=Dv%mBBMkJo?K0dQ{l{jLix8M)G z$ksYG$EMDvI;Q6xG9jJh74T9MG%;vGabY2u&0~W4FN6!+Q z#fmRBZ*E>F%y_fb-EfYk$NPK!eQoDHs2$J2Qk(g0!>5w{$F%L>)hpvI@A|HAuX!Uq zd3}eAeig+&Z9b~rKeAI>VO3K4_2{Q{$>qo2I}F`q+r?qx`bEY1Mr#_n^Q?t&JhU-vJ3VoHkJE&_z^`n*xE+vV#CPpsLYIXT{4Vh^0yP z)^=q|zQa2nF7^NSn%7LPHRV@&L0?^Xe^_}<+tjA6EiamWFFqOF=BCxa`CjwOw7>L? zx9WZOKz~ECJI%E8t;$R{b<697JSwUo*?B{YZKLyMR@Wl2YRlkND6MRei~YU_2Eye+xRU=e35)h8cY)lI#x=qgsP`kk>gofa!Y zGJA0~65ylS+>z-McJj7oVcXI6fRg{r#+0Ake24r5HHC7Z=-UEUc2# z1lR+=nUQ<^`0%>J8v#SP*_YV~RI6V*zep-r|BePirQ&kmKORk~E1od)1Q#N=qmjEE zSwZD;hY^fQ-ZoJgfecC=Ds$V8=wtO(Iu>MXUig@P)AO}+mK(S@YuV{t$W^y@r;^M3~{!_^8rzdiNP0k(f@w-*~#;i${<4(c+Any0SfR znNk#ybS-k``fm9+>W95Y+tor*0zlD-@uf!H^SVo?PBlotvNV9gSz5L}fVd;cmG5F| z`ETFPbl+_jOft5z{LG*15I#^vAwWO()sgrx_PjZ;Y{Y)nC6m zc1Up2yFq75RwSv-O@=AAM}Ee`W?#x!OI?Jkce~s^{KIDGk&%!XEF( zKqfPmH7Qpve-!K0M{S{Wb8szKc1&~`v6k+H)Wt1IuhLry zqN+?hqP-ggFpV7J`OTIRbkV@W=ULVc&DU_twM~To?etG* z(XE(nNmPhKBPt(wMs(YCxf=@^Z#)~3qI9~7zGyIIf0`pE_x}%DX9AY<+O_=>G7sBK zDuv91Bua+Ju*no6iZV+SDvh-5GDVrG%=3^rX*5=pOk0!&jfhf7n!n$Q{l3rhecyc? zJ&$du`@a6ywXU_!^IYdj7QMuT!(k!SPT^f`^uMY5uNmQA+(m|vzx}!>%jIAzkFe6> zGa+FFyP5SK0AOj7Co9}ZSwBfT0k@WKh?8OS735kG{GPP^8`AR^Br)~=YBk~Plc|4O zZdUwh`9}HuUDxfW9vbhdDtefG+;Y{u*&9}qv$0;+@>fmn@I-;ehC`o6%{RGD?%SxH zTkE0y4_ZPWh(*ld?%HR{2E7}$qw%bEmaQ#+ESu_2`(o2&mX0>IC&%{D@Lz*aZtKPt zi^nH)-gBh#McKXV?7;pIM`>rPuIQc#+hFmg!jDz~JMDzAn^o%;R-8&}*rZ8ULZbl8 zoT2G7@-U8X@(-k| zRp-t&4elJ7%T^G8ixM(DJ9`VzF;XLGWw%od`6MQ8_gB$(B(I#g-j1?~ox$tC@t8#;8jURvQtvkyt)UTzd@pF&* ze@D75SZ`sLW+MQ;-P*OsopBpT(JOr*6O%SD@Fri~f|J@#f_ehZwC*!!H;o$YeR_jC^BrBT*ym$w z0c<4cAkp$=%3oOk7N^U~j?0!jWe8U`sP5w`V5*;J)|yx)8odk!F;qO0IS5c9!R3~5Wa93=G!DkCxuk4=x-76Cn)#Mm-Oh4;ewfN8jV^?Qnv>ifYV{Rwk=%s ziQ^UM_=UqNkGfvtYTJnMML*-U;zQ}l*_hGZB=p9v@<(W=PG$S=&&qjGYF)2~2L+?e zmoqs-swEuov%0wJLuzv81A6_kx(6S(Xm-xF zcJh>8eK44Do9x;cjZ5rpFsa$-cOLaGEj3`9?zQj3#JTBRE(56V%^9YT{GmC}Q8vi+ z4mHC-R!my&!KXixu>udCMk6F;Deoz7^R`oCnl2mZ?bKk&J2hABxgK>Cvb1UL~=xAfu^G;|? z@0!r~A1`wMCPOypU6S>~BU!xd2%$3OR+{J#$P)22spp;Zx9%xgEyL(w+^iu*ySGYK z#)m-Cw+ppeace+j>WO+tb`?Njc0ki~8nVigY+!k__g_AJiY3t~!%%J+|M;*E{Z2#h z6SV|*R1fP@I)poVK4B%oqw5s>` zD`CCChH!RV$br*$`MDdMM1Qs(McY~Q{*X&Mc*mW-K0Tt_pZj$1#7R#b#z?~k75}&@ zGX;243^3k722-W?{9(&1*+m~;b)OVyzZPhub%Mj!3>~}dNg*{y!gjyO>aW%6UQM0G zkze$bckN1anKhy|n0-&DE-?9WcKay@Zn{il%T~WEzP^P#VaBN?*`#E+QfDJZ@H=>L z+1nb%AAX~M@4*I|PXg!6g2Xs)da^l|%%58J);?Xfs(0CZaM6Y1UH;ZsqPJvQ$D|dvCMy4P)6^>O{0Y+;Uh^&& z-VP7`eDDvW_?zd>FBv;pWAx@0zA@_p4PS?7j9S*@ML}|2*x?&L7C3(mf0KH4X+U_Q z?fk_s7hK?v^tM`6e`Nz{%Q?wM)&2olh9&#A{XjGf?^DgvT`!M_C0mGO%%|0Kf zH5%PBew5wVMqSpAD@cpqWM@0Y*&no5*c0i%L$oL6Nu-bxpm8bOL$gA0(#oJhzNUpa zuGP5^)9Odr%(5W&U3p7ir|Cs_nR-RFGWF8^QS-*@mFnxYkCr}sFlGLpqMxp-(JBu@ zmIPQIhrFHiw;!lzCbKpc(M-Uu^5r&6TOVr6G!0>2P)q41m^*0+f)2tU{wsPfDMRz~ zLf>La@eFwPLVdRw(dd9Lb->T@%7!#r3c!H-0ger79v44}$)GfnaE*#Ri;SNcp<6-O z&!aL6bJV6#k2ve9j_g*(Z@$#Wx?;?xxc4W>XiY*Qi#f zM%oxEM6_{TyKb#@R^+%pXy2d~{zyz&y6tF}UfSDkSzK{F5s^roH_UVH(e@ke!{R_J zaT$d)*NDBev58|p!W=8PZQE;S_$2S#w(SJfJ9%9pDE=UPW6TE~OIrnkNYPIVM7g=r zX|cBF*318Nhe<_u)_wBpIOi866WD-*6Pc?IQW~qO7>@oTg4Hj1&@v5oc5J5DC`^W zNcsghk_W7uHf|h7TK*W!u$_g=3xC!2?HkZ|QWx^#sjpV~n!(!ckDo7}de%G}(sn1L z`Tg@Xr}v%oFDuyW=2pCVlbz0wX}@r!SiwO>_`y{#%{s^*N^b?gOcs?STHwYrj`(Z8 z!xy#NO9Puc{2l2_re|gwq>fERiMYRT@O}?Pf34D>^l#BZf#M9bdb~rWstnXs%uX=! zfw9Y3%!Hq&lXTOwJ{wI)^9y-04|@`Y^_@T0N#7Y9Vq1N+;uq0rQfHFsChy8uuS2ra zGB1Esi_n6PTf`D%=H%3m0#fXtyIO^nmLSEST$naC@Ogq(J-->9KfiAg`xP;t5D}x^)Di;m^M91;0(m68CaaH7UI|rvkk_dhKd@<;{bLnaaf${)L@Uoa(6X_{&~Hx_anWhls^36^Rl|NX`*HJYa$9F* z=P;%43D>7&B%e-OG~6^SycA(Ubnv{4emu zvtQ${Fhe1`hjDgfwZXY-%E68Qy7+I;zlo2m^=~gndW{n(5JatSJ#cMxr4tq9fuOH& zRRD5LkQqzU_58#Hj3!Aja$t+pH8qv)j7YVo7!;?P?|F&M8#mrQeDz5**kUKd$Rq~A zalfKU-old>byO+_!2BeWU8)9lS)GtHp;(g+5RRsA;QnXttd<_Cy1%Mf{?M3XFFdc_ ze4;mHJ=dOo$?F+8rPC=W$)AMtQG3Me)0)OcT&WO`%t*!%TLM!~1AHo=Dq8EsZNm5AqrU)Xbm-0pQSSL(+ct3PMMbqh}y+!{q|$m7Dtd zcgv@0ow<2*^o-y$e>wjBEjQJ$gN}3S)sIr%;y5QMB1=3Bu~F7m-$RFDVg4L5cj}^X zI|&&=rtvo^*aFuQQx2U>WU?8u)cN>QIhof_*sXQf6*$H2A+=U*I12 z#h!`0)w$%KI;o_29oUj^xNfpwMWsDQGflJ0SNb|T+`Jd!Aj zsF2)65Mp4itc(79>da4{%AWf?EPAD^rK}@cZHl$+IYF;KnGjXIP zY%kA!mz)9x-f>!$Won_mY! z|8-YwiR1d^nK$D}`C})5W{S*h;ervcAv|B9@6b-jM0r&AqCp1>qJ{TCQd0SqY>~nd z@N!ljCFmd#I!#;P5HxN@ouN z;q$sANgGcKHMLy_4jj-k=+8W}RkIsRE*emL ziTj}0dK?l#_0h^Bl5;VsXwM)a7$PX~@Ut#}K3TLtFQ#i&j5`64rh+F0I^}c#jW3Sl zJU(G>i`Bzp!yR3=e2vu*d`E^mjwJ(3uzGcw=a*3dY4gw3_9HyuCPeAItyrX{AU zkY!!6v$G!|z_dS=((zjfQ&=$ozRIVjj@lAyeS-3rWoI88)Eu8Lku%fIRtGB&bj12$HL2SG=WL^boy?q}XDQjDCc7I*|?`a-BOi5j!oH7R1_uK^WpX2zk zWWhTCdzMlG@3?!&;6t%DT3J{Y1gwgHayekkLGg7A_pc((>7!KYu=agu;45nFmjFVqimuzH@If zbR_4Xbr*(xU;`*^*=g(NacGZ$wa77pnZYr3?S|^K^phl~xgGwh4Nboah+hf$w8jk@ zsH>}|U&$-0sK7_aJ$gNT9r-_-EOUE$cOREyYHDifdKUx+vZXB&ZlqqKF1vYdUDcds zYa2MPX0lUM&;>O&)2el&e{)L)A@eNC303XrRd!4)S*<&yC9%mM%}N(~SCW2EjI!kD zkDoqG0M;nzX>x7RBf;dx&TE_9!pp92WJ~qZ$8)9!XRLm`a$57+9EA7U$OCbJcWa)0 zt-668?r&7)_}6zBVCm6|`Eshmb(M8)-MVGE#oKJ|+{0zgapYP^hgH^8DZWNhO`=4c ze)RI?^{6LMM%_eR11a}`&7noYD90K-QZbp=K+;5%i?o(^LAG2|5m|GRNAB?63nj4( zt)=~L5`j<*!l~7uCuOJ$3r(Y>Qjc%xD>Qb!OsSpKtN%>;(m;dpN+iql-M4QG4I=W~ zEC&F8DEt7_J89oshIEB_M z3_xYpn@d$mB3?t+$mQ{kF(Q8dJ5~JGg{q;k%NOof9JK=}ZzsF-(kR!DocnEjIP`&Pu*4hRwWArAs^I_$~HQX!zqJg%1N6YM8B+(#(V&fs+3R9Rv-4aDLu5pJ1zqC!& zR{+wNp5vnTv(V8B93VYJY`ZY#Zb*j2UY5pPvRZ1_DC>cWQxQZCudmmt=byDBdm9~L zvQ#y00rr;f0gx3KA2|^yR4z`4T96U1yB1vZ*3_&Z*_H#^+w}q4SCtZWP#U}|LK;KD zN+);<2F>zgHVz;YM7eQal=?vPVD$=gpIB(|S^wh|W3>o{8>*Z?Jc#I55k{MC^M1eY z*Q{pm);qp`Uq_84V@bF>IE0xWJ{;fH(l>PauSekPHAdndudGcMNPEyGb{RgLp07@( zF@|r6M@W>LDzNEAYDO1qE$@K*+Ut6A{0^r3 ziFA%Rhn9XTER4Msz(<~bYlSI^xb$Vx(Lm;>ByGJUlmat@zeHOPq*F7F>ym|jzEyn- zvdiWH7N2(<*wyZkb+3`|$*q&zVs}Q}0YG2Oqh5!Y6k0%kZ|!6&ItZQWf4Dq9bO=28 zLI4KIGpXWVofzAAMEOTeaBBO@k(h*R{Qhy&+_@bAvHQ%q8dVuk0=3J3Y~lkm_SOqJ zS;9JfX>TUroAMv8qJwW~1S>1xLth+ily&9z#O71!qA%sHRglY^8(%ol{1u=rjds^| zO&9I%!G4yP{u&mPvg^D?^#`&(N#l`-bk)+50g&Pl!h8^7F1p;T4s|abL#rcUA$3Ct zDGt4p8J&aW4B`R_;Juh|kMuQXPCh1V7#kfMcR*`2->|^7OjW_K^UtlWy?^wqU9@4~ z_vy&*DTD1k+^@%xGlnGL0AkP(NW!iEyofBzWZk;&HV0;3n7NgPA8m_d3gC7fI&=`D zu(0B1!}ZGN?%%&(ic)IE-QcYR&)3o@@gFazxPyP5(XVOSGIr9qjpL3t-+kop;fW|p zULTZIEP7k=^dH@JzLh^^uvqEt{Qp^=%9Ea1`PR9v*%!xj4$%9x;-xXKUhUzi`t95I z2-=>}EEp002Bm1LZA}u#h%;2Wn=fDfnwfkEeH&z{%%@oKHhLzr--Q_K(q+`XX$p(< z7tyh>)c*UD1syB?@EUq*BJ|Q|j4F2!o#E`}U|&a|lr|Bz$1gskW$o2B756jMJS#B^ zqt+Gs^Wgc>FJJy4{BT(1$&>=ukgUz5 zt1e@zQ2=4!@H3{le#A`ucl)j{e|J6GH9Il=*UU5D3iLW-X{ly2OT-3KIii&F3}zN0 zjb_`?#4SdA(6QK&bUylXd$Q5i>ZRJcZk3KwqP=|ia%P8m>iitI>oXC9P4{&n>zRv2 zQH(c1CDgeZSR||3w6_E9J6RaDNc*qnJ&${q$H+vPrl>zFT1KksoQj$MzQJy1!{%L7 z%gb6=Xt_;}z2kQwrp|7j=kS6s+SvE>`qz9)qL7i1M_#MC?v(o^5JvmfD&vBE>g?GY zi;A|5zLf^1)UA8>?#729QVAuG6BFAJsdRpwsu;~5yb*3>o$8`~q(zUN15!_-_PtPR z`QhvJ@p%2%6egDPlmIdceAVuZ(Nc3Ut$zJ{RYmGrF$@y%IeM9)97ftF z9#Ie-#qb?vsw&n4Xx*kDu7Tw`WgT15eCBtGB_7Inm<<6B#|(c);O%D-vE$@PP3aka zU|1JO5ZrZin`s`a>vjxPJG^Qw2KtRA`e3dzm?kk6D_$4z&d~~v%O(D3)&C{yZeHsXL z#JnRsXXeU7{EycX&dr6tTzc$CSY3|$71xaUCn~P*u7=LP9fs>&1mo%GUglAe({V;m z`KNX@s^y(elYPCQojLl1lAZS$qrZ%=uKduCqT4l5pA$9c%~`DQ_B~wS!g(T3O?h=JjV%P=`k44a{XD}{lD8N`iS^V=3n8A(xz)j!e%&B3aWznZ ztMT5`r+E>j>mlEm_P!P^oW64Fl+OriMHx$f&A6t0YsT+8?;lhmrG0^e^Q#jx8@tx@ z9ZB|tuyabA|9%Q~YK=0(R~j2fJ8!)5dqT01t9@-02|1K)7+xporj2K;^&-N;uuiI0 zU@bCW10cR4^)W#}=meTDBhR`}B1(gSG&_|&v&V*!W~%$}6>cVrC*#wMHWn%9i8_}f z!Fg!Um6Q-#>t#dJk<4+EmIQvLU}$aRIZuz`QB6eXDWn0-vDPRG^=m4NMd3)KtW&4+ zgtsyOY60rV(r`&WrV?0rgazX+61iJ&t?7Xb78b*Q@{WtO{`G+^er57|xIM1Y;7Nfe zeV;fKa0z>WN6vuX5sx8&VzrImqCq#N0X*v~WzmG;C!F&5i+Cs_mf7ysscnc%!TClD zujm3z|I2u_vM-kwy{+doew}I~RbK+eg+G4(S0n97rix^`#+&Tate7~guCMQp$o$Xl zuUu`H(wm`Res|qgsG;26yI6m)V?x?hgmNwiZlT#$5T7kD@IyiR5Fe<1TX;Y^v|ZM@ zyOvg~)~!XLfXuXPUP+IdJ$v^GqskxW083HUo}W&tr6#SoPSt&j)CC@*A&t)Jv=;5! zMbpS8Qvzs1P3P#GBJPwWJ>$TO_a-=v`%2MD!9R9^T@qkOJXqLiE-qmmC-Kp;8qT=A zs@7PP8cjy7;>k?Y>Q&yek(yBf`v0$vGrG!={IF9uH7X&&RM=XG>uwP7$;c)2ljaBe+^+X3iO>zNy=B(po;67$Jgo0w8K+b!ih0`&>F=>E-;TQ(M+@$>g z4^UP?r`U>6lRw6!sA1uNK5_ybuhMT%`Lq;b7KQmBkPOb$>t%A1OuV^5`F&5WMdGG3 zQji~lfj(r~$w9O#^MiqarF#;0?~c&fJm1x&!?QTsiguIV=cK1AjHHz8I3ue+q=(&y zFZJv_-h*c4hCRDtF0QP6V&XJo#*BARl310ivrA+U({+B- zZ$zT_ZQ@$Ec=0hOKe^lgSM!j(Sq+Vv_DojOf$1OI_;@tl}P1v1c+9VXwG<-L1 zTl32U&d8`5*NpJ3b+ShU5|pZEd6;{U6wBDjK=*1VeSQ6+&Rt6%Z=}Y_q!xz9`EbQa zl4HtDu>hr33=O(2XNg3oQCL5Uo{7jAuikup+G00ph}^uS^UZI)XERA0r$O-(BUC8{ zWyS@bOD&z2fqzM_7Zc?#G;y*_b0G4K=Ddoh9{G;AVUhd~;mKM$FO?%g|KDG3D zw_}YjPYPc0ZIY)wXpCccRUVA>5exQ$kkjPz-+Ws2T8)s9{`%>-vIw(+nJ_&vCm~cE z0=%{R_T34L7r@h;LC*%|=kVkVbC&U%aws^%z%i|aOf_%X>eI9nl&8w0_gWk~{D zfhKnMWV>}RB-!NUr40P|$Z`O{vj5T!Vnu>q z>ltzaal&a6F(5@6a**1&vt7)q^weq>KIf)94LsPAHIHdjh3n7YHDf=oU+?c z{r&Y~*(tuUL);BYPLjWI+;5@^7b`WGcOG5ptv>Yr$RsUj=pFoZwnx2Lwas`m!l0P` z{8x{W$mZd`i{l0*F!!-|>XR_!Wq{e%jE{hdJp2kZs+!rFpt(~@_gG~yYiJ~u=M158i z5KM3oLkGz;C9!0T4g0A*V|~P}lE|0ARWAZgQf+D4z@3IXYU-Hn3iC8?+m+p4%<=Y4 z?L7IP&!)xZ2@LpV?Ld>pV!a@0bkF7^(y6+*L{-$(j;iD(FwBy!GceP8;K2AP4MEer zm=po{Sf|_7`ALj7JtrSI+hcO5!bN+=xZ%aWT6WSzXd!m`j-d zdl(FUB)_c9U3$p&tCztXG0j1PS}9NmfLr5qm%~6`M6A6M^x?hKfhJK(9tPY>eoT5n ztgL+=aB#HVa+jLMYLtq8DyQN6)#iH;4#D9VMwfg?c56>J42mxyDTIuGKG5#Z^Xx)g zi@pu_D!r5Z^Z(DQrp2zT<@rQ>?Uir(ppGtT;@1fSY@}!6VX8m@wupGZrfA5!rrt-p zhGZf@G77RlN77$c9~e$ zp$ln`n>#1rG+|1RHSQAB*iOlET%fG*=P?0ghmLOsT9dh@-GVzdfne$4XCjapAy)eJ zse|Dra(b&LrZ9poP$+7YnN2f#j3hb`3IM-sPz;nsJ;ezmTgE4&jM3=U?U8@}moIVf zlup2cYERs}WA-FqD#s{zo!J|aH`<-vhvpz*{rvg!O?@@|Y-L!p+4Z`NzCsuk`|R0c zB<>{biw3kOb5Vl$tvCIReS(1(hQUr6Z9VqxZB570yKrY+ApmimR1;0(V%oo%U|Q*O zZ^vpB^`ltdWhr-cPhr@4!&_PlF+FEq@>B zK7***S7*g*NfScy*T0{_rSua*$t=XK8&JaFvj;HAkjeI}bP-`<06lW)8!i2SW$Hj3 z=-h4a?ZrH`53^I6moCb`bTD}HhJ;&B?G2QbmGMwHq-n$23tq+PkRe3&8S?urfDQv3VH01czn+O21<9Si?k_?LT44lqIai7fhbSLGf3U#}QL@9dL3 zUO#=hoq#SmD^rB*`&v-t5Fsh#yBXhwnIKpT(8g`%NBzrxArr|FMsYH+_q^GS?%aJ2 zDF^m$@9AG&JoCzT8rCca9%3}mhgPn2WHtf-Maqw=J(k$(NS0q+RiX5pdDlcw&?Sd> zWw6<}8UsvvnPL%U69_veHj|iI_n3B~E(->kuTg6HhV$_j^~I*wBtvyUDK5>qwwc(A zME;^lWF2YOMb!8d(HR{B{jdJG`wuLvC_k79n~52Zj&cmvIO#Rj1vQfANR$VW?KuDg z5E6aO#EaxAA#a*CXb@wc0yuY0V{F!KiT`xK!{v*k6YF0HwkdYYf~>ohf6^kBh~W*_ zhRY_>iJ{0bu8c?^L_WoLPPiFeE~iQC!%2c|4Iv3}Q^ z!8(H%M<;dm->G+`pmP4*b;pr%aFl5SwwzLf$qEz3mV#}RR?c(9TbuycjXn9KrMhk; zUNgc^z=}S`-h{Oq0Am0Yvuc4B{V?wC?%;^gBzikh?2=~*{Q(!VlPB<;B8V*y(te!E z%irM0jRj)Y;a**=CMgCWJgv$y3IOR_?i`wl7Ud{}=#pRNWeKX}TW9vE@hzdR1em0x zmEmLJNGMCsj|}}PXAvgNd7a%aC^zgUU#_6h5LnadO_c^{YFT8 zBHnRse-Or$AvJ74IXrS9ah>9E*KSYjL$dS^j0IvTPLUfsr0lXWTx}J5u-hdci-478 zKmv0pl=w)eP?Hfk0WOcc+a7_#!X(QzrEJ*g3xBp-#>2Jx9=Z=1A6rI zv810;!-ub_TKENZoKO@3jBVdODX@$fRYH{2Rf;5%EvSu6d z($hzhq43Glp(CK0Qf^-&+2t0r?za+@iA_PmP!gOMPLiRwc|vZmYRwd9gJ+FC-w_lK zmLjfzKA1-93~5lj2UZlvzqY@56k~a;ABR8(pX5N78y?~(wC+ek8f`gX4Qv%=d5S&e z-yKZtdyo8zzQ#H=Q`X-g9Kc?PqodDv*}9xSVDW;3ucQ#6I6)UAlY1DCRT!w$Mo~Nv zS!#C2Jy98|c+^_KG*6XmhI~N$hLBf0c=^%~jS>_gxE%F)zV8>L6YaQgvS1|^ViO_e z3+^=)X$}E(pR=o(e72ph-U-?4NC2w^P5al(@fup!G9q~Pp(i3+t-HUWwQ)|fxj&X| z4fixS8d2D@Wn;~cYHtkFlHKw{a%IRJ`Pty*FY9^`)25Q3V*TKnP=TPN83im>hUu;) z!*{6}PN4%GBt)z~iMd7ZmL8>M6_!v@CK3Z3h!Bh-d>~e-4kZDumI^ddEHmyl*gcBf=*I?6L$biyO6%rK|qomfB!%#qx(| z>)vdr?lUyK+%oC@d%Zg|Jl-Ek>=`pMWca(-F3k=pcRg@Y#cQb1;$FG7N~Nl52Pjpp zl~=CVxFLV*#fum932DUr`ETUud+Oa!eTpd54=y*OF`>V|>1c9@qqCgh*YU)_0R>i*kXBF4Db zr)+8E=AQc@{!7iq6wlCqjsnI&DT=8#yKYGIbuuGhyK(H(_*{uN;}?pR5|@4x4;;jZ z{HNV(s_97@5?xxN{OIxH`bbsK-S}%7aLt?z+(;^poFJ2A-#pCG7c?u?;hjy=&Eo>P z$oj$z}xzTY- z;85Ls69ez99lPYZdh|Hqt?6U8*DC$grZC+v2Ho{_H+du}?k()EG&11K`UXeUrbIfF zXAd7~gZfi(C=Q|DA{A~T0lX8W9!w>sbd02@bbXwRX(5v2l(LIO-VUslGgntr(-Tzt zkY^Jio6)1c!dji2qpA5($F(dBA0q3?QKordZV*=`wyI$29YpU;u2S?q^7ZSPR3Q5^ z-D>lm7|#qUFuqHC0snS8te&_bf)6^xh2oY&CPEH=x7YMj3PG`*B4bmM4Cj-6O3nqM zmGd2hYbw5KG`+^-`X~*4$QFO^>?404SFsyv)Yh!tf`>b`jYj&cwMg9FzcSN%wQ9nT zt~++sdQG-mOQon9&fvIP;pn412LI)u8QU*;fFORCm!Hw zd+Rq;HQPIu=5?$DsGDWhLQeWI1RsN79vnJX1|aVRNR<0FAtAxvO>^YxQ5RmFZPxNb z%S)A3-M9#I)Y><4KK9-#<=U`^T~7Qtt?T?hHToLtbj;|vZ^5=1{wK`mhA2;$bG4Rf zJ0G6^t@kqd)=Dqt%#J&$ouD29E6Fg?PM~O0Zos`WPMrO*7EP+T=f26^TT!b-MMbIP zT2o+>aG+ev>Cn{y2uE1Rr-y&}m=CbE)f!Hw2>I!E_;7htQtv0#<<0**Yh$96{yAgf zoiRUK6{^R?8yRyFkseuiag4-#PvU;lr!wSpPC;v51=Et~3 z9Qm`mKqz9%f_1!opOuJ9s5l_}KS$JmOQ*y8#^kyX;BhtXy%&Vt={2^|pU8}VQe1A` zv4b~y9mh54T}JpwqTU2@g#24fqoRIvLHdUxY!F%a!~^}Bj-*b*nUS9U zZR+NqwY^=Ql7d|&kCPg_~O{E zp<#Ig_T^>S4m7}VB;9?FBbfIdBCY1Rgm4)Zt3c6Ky07LwccE+bxh%nqmnDfo0!msr05~NjSPC=R8hBd2O2}^S1Uo<@XXhi z%=Y2KhtKg@;jUh{Xlv`;M>t=AMSp_^akBK>dMkYU{(Z3Fa223bq5@ zZ=>V4wDReh{E#gI)1~=7r~GFRxrMl1D#u?uTwg1wCV*BoGIX`^ktzd9Ij}*Y=E&FwA5JMfGY&ZVwpG>}uiXW+ z?H*;Rtgmm`aaod;=Rgk#=uhcH>JvBW2_@4U9GF0q&(J>usz6GILsh-G)!<{}p;VUP zb4G{|q*RJ~(&iWErfCA!HIO!sGMSnI6UliPWb&mJS=zFPI~K{7e0up8z@qkng#=L!{c=Oo03(zu0{618IPmgrjT`BZM3D>afdy8&IT7}@iC(cQF} zQ%jGn-k<2|F)MT4w8tl#Y>zOn8+BVJ`DgJiL&ZCGpUT5`w<(^LHGF)2?4Cq5Bg}l1 z@Q-Q(m?1qy78T}XjSBp74Cz9FUJV<(4A){#YC5nV#%6~~^JWFt&j>Fpv(M`~LHFg2 z>(}j0<+eF^mZk`?iUYp@n>v(v;|rUX+tffNN;Bf_<7k;p;iSMGeMr_Ecqg+Lqo+j9 zNQnVCkvlw%gV+;zS3yQ9BUO;pSb<6MesJibS{=M>ciEu_BpBiY1B8P{=aff^%j7zO z{{XyjUyUQ87932Z0HZ~sMd!}0$?745NOVpuJP>N>uPs?h$1ei-vlDJgl9F{dGNNtJ zb_=hSEAIK+yPM_K(4%+1*>P6h>E%N;y!JHvbMcDfD#m-wwe_OczHd=(+QVb>7Vp-( zJGFA`7HAUYmKJvEvwRz)K$YRPb^rc((ZcQZ=N^wWAJ^%hyP?qF*qZ2@vBe>&=P!Hr z`eW?kUU_v}l^r=z-N?^Avm9I}XLoj&`4+Mvij1zh?A=0-a|h5osmv9~>F$B@eWI)l z%wu$GuFRO}IpfT3Kfn8c8|azh4Gzr1z_9XS*^Ik$m%k57xqAKf{m8?SW!dRpb}x;< zi8nxd3yKWWz)gFb)>o3@;*hMy<>(EiIR~J2=&)fqbJ_wtax}F&+SjaEuNiMSAj?d| zawtIJeBJPV6qcVNA|P)R%#|fa-+tfv{z`_Y)(j`v0ty;z*hgKXW);`8j8cQ=n8Ex9 z@H|Z0>J!UhMf}7xDiO2j0iB1f6RR>|Jun;;vAf;gKSJ!frB9Df)m>fPgAiaJ6%g5*U-CP4C7(@& z8(_j|14aQ+A_|88_3KW^6b@!C2*oK9LIgEtJ0<8A)x`o>9X|sEk=MY@5Lyb6C|I|Q znj?u7GcgqA!h#^GfA+d@j zg4xyE7ccJ13KY^C6P$uzLD=Jm^z6G+KTlI6LKb z|HiFjsxqSwoj!d!@SU7`ZpG+8hUk<9dw@m>FelBHP-nfE!NkjM+Iv;s&Dn|336;T% zUP*o$v*%&?w6^)kd7KjVIhgZ+6yr7ZlIK#&-=g^==nU}5+Ev9rg$ShY+dfDN$VvnN>syB7M_^ZkcN$NRx@ZQ7)&P{=NSij9Cks9|db`w>_POZybRMWEI_8)P2h_x<~K{ioNlNh0v~ zVZ=B488UmVLDj*gk*=kkY{N_1l3}^1uix z&{FZ(-mc&D%;`*qtpU%UFzQ1vg+>G3g2K!{pM|DK!vqnujDASc z5Al&TOUxCvX4IDw4wR0b&LD#)-c z7#F#zU>)hvh=q}QO3sFi4PKzx>hDUg`RggSNQ?ZC9b6FtNEcVA zx&7QE3&Mpp9jS%RX8l6q?t#42nWIuX@4mZSs+i$zRTY`ICx8Ex(dKmuOk9pm>A!(a zo+3lvu;k47Zu3ieKT2*Fnfc?@t5+QuUxHXxFaPWNgO)O@^aRy@>CFVxB9EDB!R@Y% zot1MVyC0~_B+C~$FmF5l6PZc#Q=P3AEwVcupzrjDg+-dmC}+XI@w~_F^cZR%(Hs3v zn}PM(Ne75Ut0DT&CxR3kJz7Y#NfN5#oupa@|T5Nw1 zBBPt0UI$2UVW_yc?e%S)F2c_2LmeUA90-6AgP6<=DF6BMqthsf0cA(WB-XsTVA8wz z?cU9;7psl+pRckbqB`}sx6xPF|m?4pg<@P=Cc7R{4!`k(&Id#H^p{habU zdB5D}GL45(2`_g&nc44kp+U2?-hIyoUp3eesu!-3z0PiHYY#Art*f(Q--*!| zUwe1%HgLyZ>C^Jv2Sk(W_?8%>Nm5;IZ zt7<;Aa{P4qfKY=V9abnDc$#7=Rk2^X6=6bT=mqK4L5Cx8edpz@KJIuq!*O3}hDJNZ zz)uPxHGf5xzB*KAX`Jpn_kyQd|G1qIgK{Pzv)vFh3{s95*l{OQ$C%M|HuTNn0qy4y zhEWnNg#8zH`fc2ap4{#4OEz5w?SNlXCqRNy9W3VD@#JV`&ooGG)Ue?~-Wx@Lf??&s zJMJ3PaVJ5nLxw0Ob+QH9S=2hSiNoVOGbF`M`7Mo}Z)$eQs`HgC^Uu$}^TTSs7Zk12 zmzCNx=nv%4<{)en*)no_sT)a=I_NtNCUGBtTiW%hHaUzb0X>lmDI9e1U!d1Ck)?zt67~ za_Qm3GLA6`9}|PrIP9xZ!#Z%6%$akrtip=YIbP8|@AdiO@!K86{(PQo`00YcqW4c| zZ~W$-py*PlW0>Z6F>&6G&w7oL$K1Z@qP@~GpnJgK-3i^)K3Hsd6*;5E`ArqF5wTQQ zOOFQwkteYW;-mS6%)kMUYl39s4Cm$Dh^18eVirpqMEemgLn*-5?r(Y}znivp%cu<7 zSTHDN1sr`;C(WPYD00n@FJ|^@3ScmApfE$7w&)pBVc~-%+>v3U^c&eOOb$@L>%qa1 zd4H!S+?8oi&{NK;K?tF6exOdbw6)zu{|~V}q`>udXlSU@tA~F|d#I-7gA6C<4MU!` zZ8=GDIUSvUG6vD@ZnZt(6hI2PQst{Zx$VfC7+!p|x6R@!#ZO$GXRAF>)O6i8qmmW3*P-e3Mtf`PK>1gn=@M) zuL&u(C7Sj!eNyI}J#l76597W$kxNn!80Hlk_}H}$YTe&{?$(=s;5-?xPD^^z zG1{fH+2COeCj*L_>^06|^NNih7Q3~t?vvJ928y5oG#p?uCCzfv;sGz+?>1LbQj(!M zn6sT_)gg%m=MwbL%PV^RQ8fc3-5WgbG&0Bi1_OdB&K*JrX_W@U^S@d+28Gvn#^vid+}huX62}Hk-@b z3=cT~*oAc5iLMm09$NkvOWOc#B@zXJ^Iku6^UamfW8xYHpJi4jt2zKVdRba&(nyq! zyQF&T(7`ED#sivY@&Gw%tD0%FWh@S152Ou1m;>8L=s3z#DpAK%L%?qPZthguiDsQ@ zffeBvvf$mwq3EKfXcs9I1(`NniHeGfV{U*$gGP-up1VtaxVl**4Gq2C_V+Dvio;&- zow@pQ`?Ql_|%c2Yd&F`u3!E5Z>*S+gj4l zP7ISlMf?P_*VAq;nF#ytEXJAo=k6%zeqq6bOK&d zXmNTjic%cX7MopFb{JCBd+IR-7F2vE3G;*42||oYkPNd8uN4cW-%4EY0QCkUS(*&) z6MGf$?mW)r4{6DdjHLpLAqEr7KG6OyUd4&^ddZg7%NSLhn%{lU)abNZtKLly=;^0~ zWw7eOvr~_cX0Mb-I58cuu*CGLbYi#k?Ni-W?fUfT-B$P&cgnH8axr#gp7+3`o$K7` zdM7Z)hJ4?PjGxxus6;jbNmqYGh@4167rJPHB|-f zx0clUQRi>8U2w_tntABixQm4by{2s)E z9J?-ZWQbm8b=_C5-q?cm@Vrh$bLFS2Vc^ zn>?N|tqs%B^FUBw({$f8*$%&V@LHLLD<_9uA*$Q>drtQA76g1Ryc8BBoI3JBNWB;o zSqIS)AxXw6UL3DTLgUc_Jz)d%oPYObwQ;LhPjm~Yk37(P>u+#9bWd~A-X6!FweelL zA7wNlhb-M{<;qC}LC{{{os0HT=ygq`Ts;`+b@xtXTHO;o3fFdRoElZR+NFK13NE~y z^)#=>DF9GRbSk}O-)^$E)6W&^xjsiTvjX@0yj6U1UG~ej-ICYB4=X5Z+iRvbYI7kP3Rxkj?P1fWPw!!VX8=lA z)DJ2CLEw9>d#%&*3!>)Z_;$zgnC&h4bwMH!N5x`f6jze`?%g!*@jj7_m%PEXe$@7L zbfu$bW1Ri1u^WM9#m$Lf&0VmeKn2MfH7OpnjgMnm`f{JQh6C9h+oE%rYpxFuH zmql`RErx#EU6GNIW9Nd92_ej$LFM>2{L;Z)CHX1CCk@BJhVS%y?&e@`Ij$!vic~W8 zd>M1^qC?Jw{geA%+|)L9)L7d#+3YrjnK9>%HLE?Q`VW3AAG(#OcLS~v$Mxlf$3D3s zBm4=YEtFMFd19nkw9*Nuw_!?6Cw1MRCzmbnBy1DNhwf==U=poC${J0YGzqiS^Sl?u z_ZP!cIWFXd5YV|1!w=GA-HHX>G47<^oYfnW=iXS-lsk2>VT)!B8a%fM%Js&lRqz0= zwLWuidV@?+X=IP2-DBuOysk)?63NS(MSt$g3mBKZT&O1A=OL#hGpeLB70 zjV~!Ljd!$Pn^@1CYk3I?ed+tS7q4Con&ip=AyJqUM?Nj8HK&#bU;B!EAmcAtJAn`3 zbGr5IEAv{xeKsM5M_bdn|ANYENsuk5dAIPuP-v;%IrA29*@Ih6e@%o_&c+wSAYTRp zH9beT{Pz`On03B^Uot9TE}*}HgG=Y{DrIB_&Jxyo`8X<&x`a3tcjqDmvYe|@!{D5_ z=GRmo7yqF?JHPI{A?=&Uk%u!N{ScueNp6H~2&@}(#64du>q>;=88)du=62Fy;u=;8 zlz&9Wug(h?$?A~51M3N{esnoj3`;~zH`p0Yp!L6e=>ukCQ7{2XVkM!}ST4PWPlIn^w)iCLFy&V|C@>(An9ZR4mbcd7OA=g;9q4(J14_x_09S5@6(t6 zkJ(c?vu-w<)_?v)RQcb3BT8t`7 z29G0oVF-F>Vj=6b=kjg1><3(7cR2G@jBb`4Xz65C9%6}%AKx)zeA3qMdP{lK^c2X| zPuvu_vnBbv0vF^onx~6)$EDvSt$CO9pi@PlR_o}&n$Bu!2`rRM zOW{@=%oaIbe~gjceC|B<)<6?KediyS%G}n_)*w<;-PM(EH-%!dvbu01B@dc?UwzSPqHXl0Gm~~{sOjdWBk)up)kPg7!wMKJWPbZe z2!sKbZ6+o?BFy4$QR_J}$UDYUrt|!g3-jQClvF*qg`~$v&dka;aknBzfqz($3X(y} z#*vQs#47>yrJXNJZ_Ve|J&P9w5cjcE16~pefmI`6{3|rn+2@u6L@W_}8)b){4O^Wd z1oj+muD~Tzf}mjdp~n&8T>=LNk6IaJWVh+R2aJ!OQsLaOI5- zN>lHwStuwtk&KY@E~&}aX-unZ!Kf~dRlJRmBnT?DD=@Wv@-gx`Mh}hm)biWjx`%EB zGPFs!4ZUtzyLi9^opq4pql(uSCUy=FmQ^QW{zzkF7{_rCY!GC3m!gXeOD}c50KDjXOQoVL%4= z`wet{tp7=;UBBN*LXUc}V-@Y{AsM*O^&@j*Z>z=a?`7Hutbx4f6S)2Dfx56|&34BAIzL zPe2@{Py$BpIGE4ptA7GEP1*w$WLhUqD#Gds_HfxI->{e1zW^^uV+1?@&@0LJ+^U9Q z`gAkqD151iOAz=BcGL*zGiYi)9!t&I{G(Pn{e)4&^_%7P`TdGfdVO*BE=>OZ?7k;Q zeH)LA+KU9W8GV^C8^qwGknYlN@a={(=kXk}$O4|PHr3EbI7HyTj+Roc zeSSE}OUT&g^UwiP3d%Q-&IH9dch~i#XgEm@g4K-g{{2g)oxOFdL`iFYKUNVpwU^R* zq@pso1&5Da=!viv1*bp-gsv_4y+cQCSQ*P^)da5yZ$cD$6zWG?SqTuEQ?M2JfIBU<+Fzdqo8p;2AC_L9jXW1JPoD z7j$5@gfxoPpdcGWvW)CloQ!oGHB3e>IrjdI=G+;vXZ?o#??uP2R1cwBR`MJ; z@fn&TF^P9D$ibQpN5)|jvRV>7gaidEpwYh(%~&76`@{omK>NVAXI|IjaZPsxx)Osw zZX)Sd-=2xyLln79Iu7nJPtk7Bz=1M#k-7({W{y&Si8EeYetV?f=n9hUZYj7V%S;AO zqrgATpFdBmLNfDD2RWxjtKKIYeyUG{)dRTH>Ox(&;~(o~=x2ykV8l)ry(iP=H%-tc z+d>pj_&giHr{wu!!I|lOQoD=bHgoV)9{h3eH!&isqoni>j*cCFf`}_tl>o8$4Bsar zjuql^lpUp3<0x8kU=*KDUrOI2kc4*R2)D|iqMQb4BAXLRRXQkX5GVrz)@h*OXSJ<$ zPf;Jl(s4`b1awD1Cu4evIpXHdZOsoCUqOI9J-24$1{v80ES3O5o2ljyv5OJg2*YOZ zQBs9iD*+;`n~V%qW77VETwSQ3YZtCL=oRvQ0o?+!{r{7Ui!^8ufA_k*paOncbn5QyhWLIBfQnwM*R5b5rfWPJF zrD6KlP`&`m&w#v<1dxD^;Wh}2amr>QB)=~slw`&ve8Q6IFBa7OG>K1R*e8%mz-7y9 zsAsW>q=#?9s9V1rL0(W`z@?rBIR4zk_v{=#S0u7u#1m7ON~DSz^kM6Wugsz7MxzzU zMNOvdd+UMIx}2=@wd1WhQXXMlgrM`Gp6 zs3H|`p4T2*_0LS4x$#_OW8?mEehC=%2)ox?Haj={bR*1trx~-HSy!b|WcTjfDxns> zm!3KMpDlZyv#T;}=Kp5Qc1I}?xxO+e2Du_kI&1hn0QJCX^8t`D(M=q+#FwgR(`;a} zMYu>)sJ=Wixsxn4*WQB%nzIwmLw!@Xc#uvFB7c+IOaaak=howdb7^WedlF8ZG|M>| zG%vWB2Z`*8tG~9yG-^_ucF%HsGkX2v7^A>C=;|P>w4NHcaq&_X9OLwV?kdO1>9av$ z-)RKTs@Gv<4K!5G`?uAWZPTje<&u>vn`IQMqab%YcNd6vPUwcq!_17TwMDATeIlkW zSp+|kbihm@HKlNWNUtBcMJrCCrDeLS(k8?4h^^6ip5k|)h%Ev<;j38=GAbz?t|i^PeS1lI)Fx>(06U=T&wUNFEwrI%juCKi4=i6} zq`F7VZC9m=2m&{@mF`fJaNtmKy3SlhXP?D%gD4cwOX2rPqNaPv36YonX*x#`&*Vm4l(Qmct zXs&Khy(_IJmJ%9o5*2L)r_(2R?kPl_{EbA8C^#omn|E3Mej zmokxF6j}7aP=_^Y+vn%oG*<%ygMZ32LW~j=*?C?2+fy%-5~H7+8sIxg!#gVUvaXnA zuZq6*F3F{!hw(pae|;SOx5&H)niC8xddU|kfF)@oKkm(y`A?;aB(sIa(^Zb6b>YpJ z__F#98aEbEz1fgk8`iJS7H49B8n&?*60A#gtN7~t#+15adm?}(=e-VyJHmtBdxy=VFWy9LOu%+9% zBVdb8qst7d`jL#qFgCWRj>Tq?zCr06<-#9_W>);uAh2dc*HTE{S)*`K%ZWT$EyJ5` zwCVA$e`43+)e%1)CMC`7%xymS7rHWz`I%xOMd0MZ5v7}aLFd5pZ-z@NB(Ji*xS)Uk zAZHn)fLBI*Wl~B?X9tH;ukzuS((lLu-R&QlxKj26ud=0Lz!#%AapJ@iq+1B~L}$km zjYM4kPwje!M5U$%k}bZxZ8Hyh+)3mI;)lUM7POV{WjJ&9dn6x&=tLyL5R+{BALTYC zTC5=yj^J{YO~(B<=f;wqs_SGvfPS>V=XA=oAF`^wSOn1Mf>>oQC@dx{OUNgmP#5LT ziw3Nz2*oR?&s=1<@VrZXGG4zaIX8-17+_w`?WWG zNEe=qJ6!cotB9IvXW_zt5yd1&I_BsFkwAJwzCo5+CUbI-1d@cFrbU>HY3%yT2 z?;D9|L^@sCE(gkL-Ov1I;HYaPt`r&N^LIHpIRR)!^!Wr@Bmy}yi&jiO6FI=t;rpJv zI*x27$36GyfdaMUa6(A3GUp<9qN{Kl8ZwtH`p_7vMR zd_TLg%G}8cLP~R4lip3fohKG>81v-{?nMeotgwz1M-4<dYKTZRBOrph(3=VWlK@dOzs11@sFF+rk@S5rh7X*+Fm!(U9+T@AGS5BPp zMKLksNp+B(A|hzRO~;?>G(g|)UK0QyFoVhvQoPD2Ibv;QecAg&hk?plL+KF1Ff?lv zbA<%rW$WTJ>;yO=4#8!(-=jI1eLGJEmhxv^Q7fTI9*7g=l4t(05~?|4H?oc*1{Zq< z-V0>_#Pz)DIA;hyl0emV;NLg+L(l6)L z%hvX%vsE^U_ywfuKD~XL)(Qcqw1IM29@gIJ87@!n!{)HR4HQUcU;Vm?Ns%7@^N&t) zNm+S$5!dgWQ}KZYolHy;lv7vYfxcp-JbRvgokn|)FkqlNL%p|pdXCxev{1vZ7#w=S z#EJLcy(^12@-pr2`o_-A6``vgYq?*)*?AZj3y&#_@We15OoX1 z9<&IxXG&?X#~1M_c~jsh5&^CN5<hn{6y#hz$=4;oE^jUm+*wmgp%R%^Kr#crHC@}4MW8y$?O0(|PH3gdw!l{Wx z1xVeBW(w^)beQnVcRh!vg1?ZN(zhleVWx^&M0Lpm`lDgb+IWQ37C1@1%)>YSeyqjE z6t0~`LB^0GqIod7w1?aF80BkOVS2h?v*b!>oA#*Ed!kmRh2Kki;iD_-v(X=kt_^Kf z-jAwI%pNr5P!DwCkiIkBIMU_M5$a34SfV9U z1vFA7gThhI5G(9i2uy3_;PLK+syg!E6BRTdb>j-(E+gx2@b+#1m zrsT1WBX7A85oAC@P3nbZH!BOwmev09&QuqK4jROE{X95Ob|3(f&I>eX@+)0a(}??Z z-&vQsA@c9ebrIt>G!nSic;FmI0Zc+V9%ggwMfJ^WvOupaYprlqd zCOw_|<5bDoG&1LDbc?8#dQTone`!ONMAXnu?wzSDMr>)r4Qp4iq}SxYlhj`*sjD{D z99iCLW0BdJT#MV@2pI&LD~~I} zNuFATLxLb=3k3&Vv4ramO}1%dIei3_5|=1GI2qm~Hs0qWSessrNJn-?3(OAjg=qgA z3M@JL>l+)Ro1oi&i;-OYqm(a#-BPW@WO^d;0z*#V)Ck$8APpBVkF$Vq`E%Z{O)I~y zSx@ix=X?_9f!Aj+s8wD}z50-@@+LKqNByKO1iw06ZN-|BxQrTmWcj9J2rk(qGn!Ti zgRFM**L~Sq|4m2X+CT;jxS(P6lZ?D-4Kd}(V~nm4c(>py6{@62IJi+TYeTzfxu+nA z!9%iZ2g5a&+!vm~^_cHej}o3ybBBHtN;ok@bUVH$25faV(CwDfR+Qgvtn-<^MhpXd zbg5A4mQ2Y@+TAT0!eelQhOPVxU-C3kZY2USVr70C8us7LmG+o9c7qHs$}5_`dlgiC z=L)lOiia~n)3xfmbJWt;JAb8DIv6##cHtaL&W9-vIMQj)_u<%G@mdFo{SBav<@rB% zH)`Em*78zSoxi86%3);>frrEmPIyyFD5T)PIKoyr9cDZ^6qXUD6#(P>YR|=kU|^XpdUz1#1V)r%a3o$yeH@Ot{BoG zazf15fb-j~a9z#MRq{jmjUeC^Wo5co%Bq3n6gZ3Qp%a#ZK=1}-c(-{I|0+(7;EUpQ z1k|zJ$0rxK4>n6Q8}ze%EzdqQO7Y(DiESl|H!oCLxt}J(3-E^QBbuBH zLRmoNp(@q-m$d*$9}E8pysb+WMwfi=onBD%7fYh|`xjUGkw(N91@!1$e!gAylu8tP zB7{N6U;(htW9qN(CqO#C{Jb)0`{?8m&|LPcS}la@)vIR!N`>QrD?W3^VNX;RZK2Gz z<7_sZIT&g69I{EM583$wP$^D4d__J#NBkN99vs|tVBzj?xG*60XE?|B$D2B`Tbnxj z@`XnjE_IX!0|Z^PUQ~b542%1RpddU389)Q8dAL<|X#V|I*};Ea%EeoIKRUb#lP!Lrc#{C5kgs4Pqj&g1g8WjTc zIIQUmUULo^f%(G9rs+pb)tYkLufQfLeBOLg)cdW?QKBf4Mpqygf_~|obe@0G0iCYs zo-R#T#vI-1)vIM4k=3R=`)9-^aZq5sXCV-Iy9A-503%0Fn6Tab5q09fU|Re&4s!i? zyfVNSfsMrLhuS~+OVk}IA5y>gHuKJ!r+8KWSV1?;+QFys(of~7afbPnHUA}6CQMM2 zRF7i~uFMkfW0Nx7?s;R9lR^b44q=qP_Yt*7sr@yjK_TV?Tk#Ewplv70R$)Z2Og(<>} z<`iDSb65nKvgbqiPdcC_#;b{_{W~{j`C@UwhHIz=^04Kz<-=h+ZTI9?hmQD1`we~7 z=*LI~ez{LF_RsaWSzPlb^XZ(dSQowZYU_JiPp$jrUl)lVBdS_?8XsELY@OM-i%sTj zH{Xjrtvn|9U~m_)(Ud(o1hw&4il$V`R1;@{#f~jWKvT2I*-+rGU+GyfR0!1Mq%%@#X5I{J8fdyn|HmCfr) z>={lKOzxs0c6}4C_9ks@-~sEkjR=o&=2p#nNw7RS{g^s(1_-~Rn}s7Vaudd=-m#ibh%REn{aN-)n zBXP}HO=^D59IFU8FxHx$pz37{@d5AInQN#ZP~SHyXDYoxCPT`u>5D+2WQiXQ*TJqA zCJo%J-LhSH&1a93YpGQ3pamQhG-ZhMi#Cpq#TrKG)a+Z~#_-Iw_p=V0Yani20HHq2 zO4YaQ>5Cz5Lj`46vdaZf27#ogf3k;7Sc;1bvv()SOe#f8GNl>AKGnEx@JhxX+Qsm8 z8c~Dboa`dAc~T`%6D=Mzb_*3aRJF)FQyZ6fu3Ps5MaFKJ94>sp*vja9ks}GmN*faU zEptvqs;B@YW6*E> zzl+n-(wpN$$t=7^!TZo}Uq)lw^dR4iLMISy+Mp#FJxQkzxaOPU;!K!FK?1&?TQ;k@ zT`5c(luy@~RLJeY{6#A9yRiNJH~FepG__U$_S}QV6!%FiFcYtIi}or+tt!L0FpUCN zalI)iA8VQ0IB7l3K6pP_xjv{|JMHl1yxYO1(ewUVb?d>4o&S7TawPZ2*sSrvzW!a5 zBP)7ced*Coux5hj3TPbHy{}LRwbs;}M%@jM6z7mdamCTZ4*JB{7UnJ8S8|8M;gOGp zZ(Tc&yb0CA9aMKKm~V~8gv52CCM!1adc5=O+00;-BMR8rmR{N_J0+Q>p@C7O8emGO zJD(o1*^uY2{_-vo`9ht8&+B@h3gb^C@Pf8vl6VBXBV`OYGMt}jS`a; z@MW_0fs8b}Zer?_I4`e%C!&OD#614tSj?Q{m-~HsRg7LN1HW?CWC2qreW%5KwUqvm z_+A0@$YOaS2Ks?bGR5SQm)QRs<>P0cZP( z7?np~zs@T*qbg?X>)kxJLFX*biGE!sjA$4SK88pW=PU(ym&el0c{Gk1;?r6%sm5!5 zw}1AmQv7(AJY&xvJ0|)5x#XC4a_!N26J;S^XMMp8;l~zQWv2U5Wj(~ogP;2KZ5#J# zp5)2Y_GToj%6Y?%wU=vxq?yAzkQd zW^9%ns%5*X5F{Ij&IS%j+GF4o1Qio0!%BV{4bhJC386xPA&@Gnwkk(ypQUjecdUJV zW^5weF1e(NUp>c@r4(+Pwx}0)gwkMAAYam0whXn37;7u53r!Hb+s`bBd;rX?{bHsJ z5+d&sU1YmaF4$^J-Zt>qUXSke%{!(%4_g$uuZ!l8BS$-qs=oGN{O>m{{d``z>(ALS zX-o^hej6S2O6U2y>_g|=etvoJ_z-2;zKQ)q8$Q##c?58q==0CDfyw*&no$C!#5JxC zryF06ZQQR}+b7$eY8epSM;D|XQx4=N0}xrTFRVPL_Tub*7l_Pyu$<*9_>kVKf(+XCJgr%#==P|h+tpiV|iHJ2-mdNb_SWW*1%n9 zJS_1u136>FP<(@5T`du7KY(>QlsUf;5s?(28kktOetnrCkUwDkJi??S!&hvg@idWc}k@bf1GXRbRPq%dX#W6lKm0x%3@ zBb;^ghbL*XtjZ`CgXz~u5_g!05U@znl-xp6RAk~vR1GxOou%Fbn@b|1Q?v`P%v65; z4M0JL2RuVMb{kfn6WzAYFxQPO;_0q;Z1;^fdKB#Jbf^4Kq1n^@gng6-)WGfwtYIFg zaC{%Vm~igeA69$tHGwHhr>vPgdi17y5z>t>yj>R+?~eWZ_ZuHYIlwKTzD^xET{*Ad zc4mW5+q;nF{ghsIwR?Y@+?*GN86Ho0*2x-TLc5K5V|y->9mvS>WORzND?bkp-CHl*KoF5zT|j=F`lJGKw~+ zelv};V-Lu2aF6E`Gr;YZ%E5-5f>++1*n`+_n?gFkK>sLC~Y+fxdc2l-T!ovF|~*~W7Vc8gq?o0}W3=o3zN>JRBt#)pab zdwg)tm(Y{EncPpGQps8UGb+NKC)Yl$vbyZh==+}UCr_QW>-(~7YoKM0RdBxJ0SkkR zx@iN`)~x!X+u%ZKk!iFDpuesDedKYsy$c`2>tzMxoy;>_QFEOkc_KBc!fWq5dcDjC z{Y^=~$Ham;=4cbZPz31{h;hJx-Jn!609VRu+>vu5aefOPf-U9|Y8aENosanB{XtY4%_ucGW8 z7GH4Apb%lmo3wGWMTSg_rxDuF3Q;z4a3aq!}|OJ-#|EN5jOIepsB~W!#L{E*#9g6@&vpp^-EVU97rP;`0SL zbpp~*Hl{M2K)GdGt9hNSH)`%nEN0rT_bi$6qT|!0ZD=PF{l0I#vo`a;T7cyJ{SuhF z(mbeh=7sQKkie?;U6@8LII*cY)tVhhM1kpMg-8OJBccSAmdJYDm$Bf6W2kJq#?-(D zs2N%=e?;_=C58|yS!_~4R&tcHLxeW|Qd^D#Fo6McfrZSJtXpX~*?YjLQ3gL_t>?0LDKWCS!wZ)v5 z%EKdyz(w)w8V*_oTO%P~qg9tK&Mo8nk>o`BM8*-@W}jGULG+JSDf7hAgw7RK^3^Ki z9gJpFDx*PU3!-ZyuUzTXr_cMa&W_SlB$l7RuSn(>C@{(iv5q~qj+c~bv&cqm!eny` z@9nl0)WIUiWB-eG-@d|%ispj(2v{dQQ9E)A3N}QOfo?8qk@YIDW6!GuRRm7Dl+6U3 zAE?rhEy$Ac6Wq>tWxeFKTvO*FIQy)C|O%Sbk_it|6GTnRd%+psZX9ai?TXNia_Wqeh@UD#?J3(%@R=STQWXf{jXzGEtjOGnfeh)!g zszRU`z?QHKwM&c66v`p6Fo*NOuvP~{Ez}F99@ne$!ziWnrwE~$V^h%cBUWw>9x-6k z0b`+Y0Iux)GGQ{D>b2+lz!_^YE6r3`X>+?cs2OxOAIkfrXgekR<{ zK6lC@y{w)t4ydMcm$Y%P(ULBU=uq;OJwz|m1MWTc{;>7Z|w;9?;E5meO_WYae zOBR}jQ2pt#s82jGDbF$(X_wZes$64BlsaVO{Mga9pF83mId;jiMpbiMG!t3 zIv8IA^9rMPCu9dbamUKIIq(dC)SR2i)pTh6cN`BrNeRm5+7w2NdQi9Nw7&**&~0j| zP_~bM^VUNtb9fEEd$7$&+ju_DjE~Wq;YlXt5Q;>4)GXb0q3i9}#ct7Qs}!wTx0*O@ zQo+xA#m^lgv^~N;ZmDQoSaLCD__GzKN9X+ZJnQA#o&7Y|Oh1%idAh7|aG|&3{AtTK zxgP03AuRJ`)AVu=I{Xod*Y7_02zM9xxAdKK#~!uIJ*nXD|m z%Qom~8`Ya=T-f>%5@$>EZB3AG; zGNsxL`Jh4BD8qZ?CdYVp12q@5-z|d7G>&&n-QI1JhJow!!46{;lPrEl|AfJOr#Ju3 z38^d4O$u>LMJ06F;OsuSB|dkeVF0?hj;j}~XgMxUxC>5D=I z&DR-^6$kzOM{}kq-U2^nDqu~IfkX&nOQkcp5}`i|{u6NgUO#7}0NR!16y-Epc8*aQ zKJ2+O(PSqsJoVoWeT%0G%_il3Z{Ra_JG6nS5E^J;9eYNpxXPlPqUg&7wd8)X??Tpg zkQi(`9h9v+dG3Uj9gMlcRLPEa*@40id3l1IRAFvp)&yLuU#O)s;k`|t=^MBK(5V{o zc-dAnZPu*kJ$wZzL=Jr2kMD^n{uV!#;34GbL*zI-)$+tB+N{&yPQdHsTrU~Q(f%Gs zXUQ4pAKEo+{+cx(VTjRtdHn6T%GK55<2N-lWUg>EQ;Km#s9QZ>x0tN40=>aXX9%2% zyTw$JZvgcJ6)}jsNlK@GOiTL5GxB!o;vcKcdWRiJyt%vTsM@aLp?iwIKZ{P;?C6=j zs*icu@=wWkYSXQPPmH_SDe&j8HM#q*`If$lzC&xFw%nl5{}}9Jnb4k8VB9{D4p1L; zW4y}uqn>$)VMq0W=x^z>#Kn2}>eU5Y|EO2yT4i71634r^T+VlZ$2=~(L0p@&le))WjoopbojU*-C(6}|^~mX-Qv zo`xnRAo%MP?gm^~JRPL}nucrMPTW1l+5rhOf=_;gxUf*>^*~P*kTeE~EqXNm=0=>q z8>51v^K>uEbMO1CZ2A1uJ2m~4p1WmxIcR*~W$%eOn!Rf(mqD2*kfA+yS%>08*fr4? zFwvg+waYzN@1zi;k?0(s?N;sQ3g1uB3sE3-0QkvmCw-AO5%R|KD*94_T`zPoI_wiW zeE+$W?svLRwmGYFeci_B$RP9}Ezoc;iqr#3xPPDx{>WiKpbx(7Uc&t^(tjgkG{Q=<#~=f}c+>CmzwA{i>*UwEWtmJQ zUi{z>gzJ{lgG+z}og%lXFwbBn?#v8y7_ztp0=`3*elzE?xm1>sFzqZJoJcs>Y;O+c zGx%^S+oOietKw@1vs_%3)F58%pU<{}g-9w`Xygk{{*FcJs0KQq&Eas!R943{S^7<} zJ)p4{upg=hLj`d)t;OOp-k|8y0MgINm$f`VQp`auHU%)r+xkP0MA%_zDal1AR~CI86+pHV z<%~E^$h+o8Bvi}x8+rD$4WUm3BbVB`%Un`QVMUZENUgb`;?VL<2r+w_4>U-zggw%CtMduDEH+jHsCrARPR|H#DeTy~FOQiIZ|WA>T!;E@Le zQv)1{Eo&4ZDA<_VISd-hcZNT*O+B<9KnIh8gWVTi4oMzs9iptM)a}s3GTd4aWj%Oe z9w;pMTN-jZcv7UTtcKJAS*=PbEc^2182zT;3Zf&0#cPuEm!?WpwylYp=Et|+_zT1b z(Fpp-sy0^Ut++6xu9mqyvwH*$YLj&+%Bn#miZtI5J7v03gwGtzya)SzfP`%moz`;t zMcT$B`9vr;NmFcxKE}zAp+~gP+}E#rl{v~9i?*bvbmOXBtjz=MUKSn7{Z1fVW3hG= zjUo|t@gHNYSMX}@B_uQ;*Ye~N_xEcL^1FyuLquKYekL9o+E4I*^1Dc_*y9Jjj6Ah7 z6T~S)K2PBm$qGY0xcJTSB|K4CnFydXC0%dDyD=EU9mGNtHIU_Wyy+?v*zej(Ax-!{ z>t!h1xU2EH4k)lu#h<-JBk9-Pp3)!Hu4IfR6e5=$($mmdJ)loYMA?;vbkR{yp9V-= z`oO7H5KEeTV=7UI3;HXer(RD{ojzYbZF5bTe4;*=7oiZG40=Jh2Vidylq9+fX(q60 zO1gAE--><%n-9N^yR5f-odh|6uDZPr$tdx~S@N=SUdGAm`%C`g_ z3A3Oyfwb8U4cC?pmmxj`JiU=(iVp$7-GyNWw2^;Je8*BwqeH8l#(mmz<=pEC{nQcq zC#(|e^9Jrc{BdB`lFW#X`#=2WIDo~IitzNXOY=TvU20Ha>GtZ6SAC`y9k{8PpL6-U z>hN-Y^XzmFrv{p8ARHE%EA+F`{)PZR~a;w znaI9{j{JRWo2RhmluFy`0n8P{SEu>1KwXR_sn+h(XCU0TypKs@S#|X=#%&qg#ejUi z8KPRqJWk(RTIs;+2I-sASz2219%J4EQ?_iWN%fBl^wUCrkr2m9lTD?TuI%0=0o zQFZR;KV8WkDfZRS)=oEaP8hIC?6Q|3f7dYOwUcPa>_>iW?cQ*4C-S7 z!cU0rJOZ4#VHi7KM1L$Rt;8ZEK(&R}{N6aTZe?CH60<1B7=3#%y|Ab#2|DH)V{l&8 zU%XGnQf3Mx3ZPI%m-rBW@)0ZFZ(t^Wn=w-@G89U_cqdH&32|3flMvWMOc#f$`JbZ+ zm*u?V=(_}GaqL2CFIXXwS(M0xf_rp>XXjdV4jp4X7B*6B6v@P*u|Sx^h{(SFR=Q>{ zxs>o8Qz-y-pX|rQS0I0CR965=65u!n*NCp;PZu_A+SD`8NAx0gea>S>LM;RHmBHW% zmZqcV3!^D0fu2ws^`XKMXNHPhs@i`{7+o!UL7B*o5^k~IWm zZ7>yVFM<61+KVm^&OZZ9zewxve(&n}Rb>YT&j6%We5Jz)j*9T~e4=A14RxQG2aniK zFMSCl9G8Jr7OLqB!%>vt;%Za#mM)K^Qf41QGGsHDN(EvBpN+uQGGqg;& zoHWw`JrXm<6rNtEjqwQ*#~SVd(Mfxr7iE$yg+cn09M%>Gg!uxv>oOQ2&DxY2pua#q zc>hBOA2e9zWx98Mi_ECZ1>0(ps#evJSy=fMYfH1tqjo`sM;vFiTC{0ExWFG~{QO@- zJMdf8XVMExOU-cr%6CNp$lmia^mbUbX0)pNRYJHp8X;HdZ-?BJal=+L%=W|^dZv{+=v6elJY!YmiS69m>A5rc#gcn;7i zTVOqwoSp|eDo!{8`H%yoS*C}5giFQRukZcBayXB8msrC*2`p1lnxoC|0R%0{)ON`; z)CbU@O-<=~2t*61z+`Bf*O$RMBWif|z{+@r+8Y@Sr?kA@U6Ntm{;M29Q6d3EA)i5e zriWHYl%XVVq)G93T}9eYojmAu;ZSBj@da8~>11cO6`qPcb5^vN;O^(9 zAG;k|>n{6L0nC`T32j0?~!Z~z?>>J9nyiZIE9Vt=wAZW{qa zBs2itYn@`qsYd!goTwvEFFi?QY7(s-g!{-yNF=7ar=q5D{Nu`6S$z zkm-_fylMI{BYXT5Zy*^h>NI3=JW$Lm#!BUx^E2V^M%R&9KAkbVM!ZfQTU_PW85nii zk+)Ymgd&)vitj3Q!Inm?b)7Ut+0>Eu|1ZVCv9lPqUq0DHWg%Nv_>0uklV>h#o@{Bkub0|#;)cwI zLU$>SG71!AU4DYux4nQ|E^O4Jejdwv?#rGCJw7Lx5#7A?fwU|G?}MR>o_qXN8k#*umHOph>Afi+MLEEWb}h{|lGzBB^MEsoU;!3# z`nf-PO^$yxEN5MLv}*6S{8(Xs8A3u(%ITLC>+FU1U)UV#zAagi%KP!kbzZNUniAka-U|RVL8iAWUf!khBHiB@IUW=8A9uAQlhFz*G6Med^Cw zg|ZTlG^*&>YU;@0!%tReuz?9SU50UGeu`R35;G}v_Rlqah!7I4n7fH!%MCxbh<=pE zbPu6mMi`H@$Ul9k^NW380&2~_KNPM0ouM(;uDvgiAr8N1+o)OitE|+Lv2B^!WN*U=x2hIrIsj4}~0|)M55}n>r z^vS~+Y9}Sh2M%+PfnU$cn$Y1Z)S`cbxRgX>$L%oZq#Gb0n%# zdUT3+ifhQc8CRFiW9$N11I1+Q=W@haAz*^Un~k*X(r7qUkq#7iEl-?!=zlJL%gU=Y z@1i0&ht1gP6@meoYHYdWb>nyf+7MH(6LjdJ{rKJT?B0bNA4@+>V@dJI(-ew~Dh)r~ z{)kR(5Un6?zuT(kFnCH>7@1AwNQ%Fi2;IPXvD0WKf(Nm8Nn8Xlwh1DL1%{Iey1epr zc(xX`3p80-TkTGtDx^3p3iX#5yHXbG_CG2OVCDH&ab8Nl!*8tHveoG=WfK08jo^@( zX$k2bold|jqJNfpl*!fWgC$Onsr5#ADn;u*X{o6L=5>1kK=TL)^UQ~5+1a&zHO4#s zmvRoubV%~g52{M@@6}kE35d(|Ra0rtnJcJ07csEb{)^PvXn1=WP4@o~^mk`=tgC+I zEz4saDXorbu`~D_iR`YeF2k4iiI-xa0%6;Ob(NeOj<#OU6`ua|>hC^&Y$A>cOCBCo z3tj)SFS9}B&z^~_yvs~h7RdY|saw|7ioWZ~)A0GBlnD02XJYa}cM0zn%xhe-DZguX zs9p*{t4-FyMjq|f?A5sVYmFhjSjF5?;ks-NdE@Yx@|xRYWj}=70QprB&R8ML)8@K{O?@dmK|5noX(ID1Eq&;!)A7QMp%m+?q}d>mH@XQM|h0 zaR337*aGpSM!}Hw|HSg^(2{EuW;RS!P@AD-O=;27jc5z+ECbJzZ|9RkTv+2x3>p$$ z=Ies{MzU)qECYc>7N>FrTeoPj0jCds{Q7gxSmvC9jh5Jl0?$%cZs8xrXCkrKuO|i6 zzwlozz~py9Qmg@&@QNqVrs;iMMG&I*x@T88?iFd*zyD~wbb4WBX7y=7@NcBO78hY$CBL+gOon@IfAJrms z9bd7VgPmH=G*V{xeC2}%XQb&npo1e9heE0o{2EZnu5qfOTWi_6b@_w1(tb#m$SR@_ zARc^X%FM3AVNhCGehxT%DJm*6^_RHP>u`#C-hb=8M3Vq?ZA6RX6ibw80YbcN^2T0k zKgZOc=8)p@Z94j(?;@UemH2S+G493?n3_AwHZuX8By*oHIBQby9&&=HEJ?8=@Q zwSQ7_IpD%i4@6u{fHqMG?T!hN6iIX&+F{-t8i~A8U~G3R(baP&ohx4<6Kx@_OZ3$rX{ASlXN-b(j11?nz5K^>p>c6nj0QNnmIw zXkfh!C=4DkD3Kg9VEp)mxUbha=VM5^GEGg@z6hj3p|WP`GU7>D*Z}r;ViP8D5EZ!p zu~6CrLRzQfLMoW)ly?fzWKgPJI4qNic|%Vw8$Y&o3xg>UnA)Rs3*Qx6cJ*(IGtG!V zk4&rUaPmK68C2&p%%el6ZtdgIi{W0B@crAMvxhfrOf=a|wBprvYRFj`FD63#xOapQ zh+|-Cr{eZI|Tl`dv}av5zYk%_|m>Jr%tIg zSAV~!quw?G%?!5Ay;f;;lO#0hgod-wrzxt(4TNAN+O2yBma-PhJt#z++avld~!hJtxU>pou5yzklS zxl2J^Nl(OK3JH5+y_n21mETlV*lsu6uU_xBhd^3fQM8{LoGgwWA!a-N5QIgsPXg5@ zsL1G`#WxRXVg>r`uXknJwp3{}^G#M!R0^ppn?$izq{jtN=_*rf9PLA|vtk~N?O6V{-V^3*eCQz?uDR6yK3hM5H`dpDo5>%U zv7ekq<_v$+cgpl{G7|=;Go?7>YuZ%FEY|awA1!N$0B;e{IQE_ayfzG6VwyO!vwRdK z7^CaY_39-VAw|S{ScB;UUSj~hDHOS;)a{`idRmOBorm8h@~D~OF-mEZ{@ORo$sT7I zG!&xlZF)f-o&}(|2G?={o)n^q2ZcU$9(Re6TrKnVhO8vmOus3bS!D5lt2EVRw*}3? zDo++MVCg13TUJ&_S)fhxp2FY*C23=d9rG)LOaAj2k3u#)-iO}W#>bCnNj;u($WW>6 zVlRe^WCIJJ=UMzR2@4si;*Ca0zWaXzRqSl^EDwNh#Eu7SYyp8%o{~sund?)?coGG0 z*DP<|A4s+2C5l?+`a+M18;{62QF(}$8HEEa6h)=)4dckHDL`yVu&7Af9&JgQU&5UW z++fL{iZ+H6jfJh!Qtjj~FiBIJ;!OHzY9)V05g-YK$D-U5P@NzF_+I*%s?9hmR3;A5 z@|NW#nL*#^Jz)U66fi=DKG+wukun>-VUTg@ReY-WAjBk=z+ui=5|1@uFpw2IJDD_} z`b8LLMe}Ss0-rw}*bF2;P3qs7U#oW*ns-Vu(g(e|=hA>B`SjL)7(V4ibJYhJBvL2k z3KG@7X4(VnD42ClmU4;kV^5>FlU2l&!&s$>kuhfaxB1PWk!}OY2^nLy$7;#WB?T>3 zd5X?qalQj?kVDB^f@+K89>6~x-`JKIo*{d|X>$RW11}RqVBp5cw4`a-1kQmNlXKw7 z>auBYz$(BV;EtF6r^=3b&wo+WSfASpQ{%v~qn<`u=h)YT@ld*-HMaW2DWZy$>_-Tv z+}Hy24XZ|IS%G;pnpFitGV!DfPwg<$z`!bdH~XuCcmiN85m&B=@~`6y>Kz%tW+V=p zAY-a(JX}jhdRL#qfq(v*@0VmWbISi!$3g!nWZamEx1;o~L7JSt;nMVCb;7oWTWIc~ z(QIEtk$$;_O*Y7|C_?v@jtjcpqZDK@uh1+QA=oC(4-=A)buP>i$yPW{r~z-1z)yxF zvxY8hnwo5*e^??8xji4$?Aoru^Q@ zRs44kYH{KpEY0zWsxiXK&LZXz2!}B!f(3K~HvmxbJ#JU06J&UfCok$IAgDf+;GE{+ zBS$(ct|C{p*3f7o{!>(+1sAVoKlo?GcR;x0_+{Bi#Duq>$jK0Z4fUJaq|tPRUEgY zcB4hnWS**-rs0q0PIt7*N>>!7bx{zKLo1&Xvc;!XCRTq{0E_qn=38tQo$$Inc1+$k zSHioDEfZ;>GwQ}8uBIV+^Y-nR0}dwpyqW_xVGLr*L6_|u#3U_xJcU#`(Bk_jf5hpH zTtl}y<=`MS1^Vu$M~Rk>1F7No>Ef^g`#>A2){QEh(}v0Omnk(^7)XOIqEZ-D6t!2M zxZ@N^MGEBm<3)|ekonhZ%DH%yd_3uU~6h;NxzceDXw_m3Ev0fqK|BpB->0p zt%;bv)$6?|dITv${J39Kj{pahcmgqMMr(^p1ikbhBzdHe7bXV8ZKW>x#nie&r4cuI z} zB*EZujp4SfTg86kL*~U~l3T{N8*oJunjpJ|zE!?9B@~)s3&6Me!NiLU!ZO(Lj$AwC*=pj9#1!)H zVD2;e{zTrmWJyX5*36nyb(|x;$%vP*AP}YkhGxeG@qsh)d6sE>az0o$H)+TMd8K6! zW^6I?Qwnq@XI}xaR(tzrQ(WeBc%+8wJs}2^*M7!8v=^~ zsV&TU_>Xj3N)D{BOrVb6&BrOe5N~dczR5(=V5mO%WXMfIh=II%UJNi{e_ap{M(SKK zn4pPYS+2smZEfJe2@ikP`O>PUQGS}bk4P0B}pCB{7miDZXBf~{@@1_Ee2 zF0qshUN6v8i%)C)hgw`3hLP&TRh!c!hhL^`Ug%Spp-BjkNl895^z9EoS7ad$??2_M zEUO?(Y!x=S@;pOq;;=;O?TFlmA=z#!?ZaJw!bZ$lqYDRX0WxH6C)&5LNG?l#_{RKI8G{jp0@K!yqMYX-J<;sAYi6F^18N-t zHClEVatBKDr4k`DNQo(Sfb52$ROe_@7+3f5_yhS8Gv{75F|-wu^$6)9Kf?ME0zr5= zfMu4-=Jt^?uEXD?nt)QDJ#3de(0*fb_U(*az#octAIC&Y^3caA`fqgOGzWDzEit1c zC8ur`%9+lpPltfSes31Giy)RFFVd_mSN24@F5M_~j;Qq^2PcIXx(|uxy1l@?Pt4hX ze*`Fd_x}BMJb)<~$MSToP$AF@Cr=+n+)W;xMUUY()bUT4uHj5Y$-3Boy?aG#KtCi- zkSZVeS$V04+sh2E^NTGvZW!TxekE4v*$ReU6pP1Rp#~uTJ}WUw-=J29Rup&2KJ(o9 zRG#CL&8&#m$4z}{9r>2y`1z|Asa!@KlduC~ZQWnptS_5stPRWk-NH&Wi>Hbk!$#0d zGv&gepr!z7qpo>dTNuGudSNJ15fKS)`@FmLu$l=3rbVg?(mWk{LByN=hcr|CRxvo!iZ!P5nHD-wyc8q65)u=oMgZt z&xI3F&-p*ckARsQ2i_92K8fMf_^3F~Dt*8=iO`&2QEp+LPA6i+ylc^m(Z6Jz^i>A6vXN+)XmVgv9%o;AYTgvcbFXET6b#GpTP=M=I?V??r5MSi-o;3wCuk0X{G(I^M@MpmG|LL) z0@L^mqE{8SLkS!>c6pf-VB%N;itfdJBtWVuua93C^%pboP7|asY3Y8h&Bs5beB)PM zPA>U{T+I3f*$MQyTgRmoo}fe|)D8_Ac(-4DlXp3Yss$y18LcYk4U?Dz&443Enwa8U zqj#|@!A;zY7@iL_HPTXA%8%pITFL5U+E`iXL9Ia|619i?gCygAtAl4~Re19?MdikG z&$sT{by;7JYu>n@d;&9Tyr#vG>j&c!8+!-;&qFea=VJQuP%sII<9EU7l=jEuf_pie~cKv*pbG3PQg-4Ge+x^2<# zGuK~Q-Lrf5Q33sxeg1#4**LcR$fh5{ju>=8Y(P#PIdUYVY8{tL6r9p{iDvNAr>MZ+zPbf^?T-ocdF_Ij6xxy?Qf@yG5x^lzzWs^ zR|~+AFiYL3 z4bEDitTLB?S7YNw4=VdeJ4vHK?~gW?!5pIv4Q?4BcY9o~vCK$u!W2Qh_fMTTksbGS zxoQg*9PK@`_CIW$+ywf-RYj@Us%={wc5DFU|7)QoCPKKn2#_oAN!476#Rs2VEg6u* zwJ0lMk++>mCgg*f?Dv8d)TYy-W>go)K=W z2mm0xMDX{?BfYr$5@3b)2V+LX`_zABZyv>+?8iJLVdCg@0|)Lg<1=NTQ5^ah$(`J7 z2Bk1KkmBsTn5f=!Ya{4RhyXM_y7nm@cr*@;W}|HT1EK9M{Geo9nb0Exb<8vxJvN{k z6Wmtd9V8MRH@&XCO4Tmg*{1ZixZdq*P`$7kPzqsu#m$JsdiBV8sBa{Ivi8@>Nps8i z$y2AE;x&svNP5a4od(npVm3;OC-sP(n*ag_Rmy**i-1_0_~Bd8_P$|z3ccRr8*ND3 zLOhB%o`4*{c<%5zR`lM{?spS>Ut&=_vRA~xvMYZ)9-(5a485PS#>GTeaLJoCc zw`io0Z>f8pT(AltOuN!|aU@X2E#P>Xrwmfz`>Ln%fB&oOcSz#5Xc+5h)_wn#-A&|q zK-B`BnEKKdBA%fiZ1~%6w;490uKY}~Fdd_0umdp(kp0!n1;gCzpvz-s)4Pdh7pgwU zA0bQ;eVl3(=rur`+EJ&IPB0v3MPFf02`rvB5DK)qjhZx({w1jD=JL1dOs*YgoI62~0qI*W*UeHzXTL&JR-GyFL^%(yEC>}> z#?bY1s!1+vM;^Oj1V*HgdRlftCY;c8!dmco&|B=UQB zl1=o0{2Y0V#0mRDpU35eJ^&MBxd(o1LTbw31?iCFAj=FSNuQbKdD<8`-gnDS)PscBc=kROs_lCZSvsIDQw0;xLMU2wvZmxNe>uew2{~d_VQ;-MjZZkCv4cXj$zg zomwXu;k+>h1xbYHDg&UuMVIlfeN&PegZ$RTebv z*<0;YANl|DFTZF00NQv#iCjJ}`2bFKtL2jx7a1zW=ZujuYpC;a9lR$Gwbz}H2pF<5 z<_sU<(*%m&#IRwW{3jmrDO{5vjJALl781;a`t5gq*PIb3&dpGz?atk%KBQCukNA$weH|NAN?i zX~kRwa(g5X>SEwb=X*#T%v<`I6v^RX#gtqz`W!Ja1%MH|FEPI2?&*A-OG-Th`GG-% z*1TwVRdE^P|4W%gEK@Kzy@H28JuI8!iFz4;JpyAhL8|xFgxEz=n|y4vN_6TX6*LFoV)e*}Jumy>&7b&2TU=w_vA7Gmrr6a#Pg%h#`h zQK&AIBA%wYznyrl9pwr6evG7UrX-RBJ9qAprS;{_dJR4`qK&(n%vw=ii`$V9E`tUQ zGCK^5FJ{QpSG4|1PuIM{6SGR{<{dtWa}Nj zfr(BJQ6hjKa3SH}BCrTO{!BIZq;u@4O{ImoS(O>?rT zh9BLLJvy{jL7L0-4_jgPDxw1dDBQcnW!s6OO`JO8zadj+1~(eGiBHRL<_4ivCr>zFBD_(hRMsNbx~KZIw0mr ze-a05Li|H8C`P?i2q7@`4OWlr`hW^EST4fC4 zH#Uga3+{jc-$}IkMBw~W^C!bPh(p-|P#b9X!}RiUScsVKpPUQGuZia;&{k-%WTxX! z_k$XR)Kh_%;f58qKds+%CwU0t!8eytF}4UDS*jALc=d&>c2|>5flq-HEUPJyJ~#IA zQm%By#5WZwW-7ojAoqi>$K<1zH3U50!rF{~EwO6NY2idl0oftd4;>z+lE8M##9W5B z_6?j+LU6#XLB_T~<0J5x6zLSLnsK_ zNuU{HXoeCUoeArKyL~uy$t`+TOxz(=yj>%INBzU-xw=va-%3dECW3z<7`ANN_8vb* zx9$Vk$U|%CKwgpCz|E(9NFmCJFb@PnT+PhvT~w#BWn~qj)&qHYwu)2nL#F>%3qX}B z^Cvt6*-XkywO`C}m)%7S@zJ5%zbJ&Wsbs)ZEQ)|Ro^|u7ZX_5XS1^8a>PdhEafKm1 z`u7;$Y;p{Mk{oxuJ%~W??6??j-krMnR4SN_J@2yPPaR}4>K|0}`UL6D{#%=|3-njD zDY|WN5NgreY*pUMsYB{0==j4iwPLa>#=@LUhO-b$FoY&vg0jVewBg%ycKJU*E}|yp z;}C?0+Qjxn7(1vC;%p(~T=G(`m$?teZ9MQsjA6AAA2>t^yx7I9RHe7Ixbs{2C%%et z6HsQhdI1ehFv;}~3XI9!UZC}|*xb8JTQ*bSwZv01SRwYwUfh( z=}Qzcmw{BAYwHbOA~W?;lktC5vn%2lWB*6*Z?!4H8=-p3JebilCSk?Gy;~bI^?I4Xyw>$ZlIo%`;O@{t8e!iD<_R zXxDla%aA@}NV@w%jXVOSE&wl?^#CXl+NB;OfNg2^4Q}UF*eQT0`AsbE?o!TWtS8)Gfp*Ta+eRu?(Eg5C~@iy(j3Vv z!_g{eU`z$~6I@?k=6`_b6x49-`PQ<;4=A?3vxSAlzs^9iYk?n}c)7*zU}{ikdtn{~ zn&Sx%wfglAl`T+GoPqe;_xpcTo6gBV5o{U(TDT)Z-+`6C#iO}EYS@diI_SF_nU z6DCY}_-1FU0?d&qJO!XuNlu)(w3Lw9q+YRYCs5Rxj;RZI4fWe=<)YHGT*vF*mA-Mh zzV=$%x}CMUXW7cE-i-Zw7is>z%}2kz^Sm~vo}4nX+~4lvxzlqkA03(ShsEAMTbP|a z{?{J&2~%2{-7l}YGpw+1$c}UWY^x~$^7)#Pqi1Gz;e{LKCDv6JYOI8O0MTgGzP-4( zrF>)Xq}@x3@7Cz846?^dI>RhQCuV5nH*@7}X1K7vf*YC@z(F-+)NEYNfM0br98xR3YRhDkomz0%zxods;{P zLd-=nn+W8@-BoQrBoloB!NNiE?4K83m>kmhPH&>hKb)$!NWe@ffn}wL$bX5BJxB!w zV=ss$fwOjx9(4keY$G17B7GQO>&ahD9vrbWklst}U}10RmlGo=o*3h2BH|Yu6=dPD zsBIL?jJ}*3$dI_>OL|$d+(rmI!iS(~3fg(u0E@P}h(S7WlE9yWTBh*^VI=U-mG+lP zOjcfDd-Cv>BpoyeE%; zmROe=+!wJUBL+@NK&88EW=JH{(}npPtVhQnaSsp7gt?g%R`^HBNZZ6|)ASFB;2ubi zIF!KM9MF3+#_dAph|eh+M&wkgXgX)XHaZwclp7&Qqsn z_J(1R-SNb}lFm6mQ3~qDNocN8%T2)y#k_P#{O_jl!Es;OgnMw$nteGp0_EHvX~|x`w<1pWoPa4{rlBF$~#qL z71V$IiKHn-HCJ%&uw~Z4rV=aD2g&x0QyhM$^Bd8=9fW1910lH4quCazVC2a+X>yY9 zAyl3u6UHNau2Fe!CihZL-=(}%Y$uTF>t|}TW~p5rRS4EOQb*&>U$y61*Z1blhj_JS z(+|J+(80YA-PmzXxHR0f#s!B~4$$UAi7dKPr=91|pO0P#$VE{tT$s-q!BCu?#iate zvR*g*IfQ`&aY43It5NY7PG6SE{TXhZN<$zuU$Y|uCil-C9O787=JJEXT2sSJ<~@i8iYo|gi<_yVf)&y= zb1P(YfkYwlFDj}LzjR$%=6zv1Z=%N{+etx%*4Y^L;aM;gp6r~7w)DRu}UoMknmyl*GVaW-B zxtEbqFw-x;)=Dlyt0B|-bVZ*tChN!;iO(2Kx5;Sw0j*!7%)Vm zW6sTW*=^4BzwkOJ8^mpZ=Ctrflb2$)3xq)j)4V$CaYn`uMyX}aLh>TvgVJyYlD^;$ z{;8ZdrpX1~E~w{BV3YX^@Hf1<8jc(pqg`u!xj<;qZFFL@pX~2zv5m56_CCAU?Nj&_ zwK$M|hN6KznD>uN`BiJzTEotY;)C49_*Lj~Bn!XzH3(B7=(%^askV%$Lo5`I$Tr5% zh@%+0Y+4|w3iw(yjvaimd0h5{%uM}fpT>$ z-lThdeltpB0dW6BqSMek_`F)ic}?0QD-8i2L|Y8yM4%RdC&E|E7O=@XQ|6fy{N#H& zfM;q&7X^f{ER-D17K=SO^EQA&1tlXM7R?N3CGA$fge~z(93nyZg^)G zt;cI9o|Vtl*3)Y}QhTIpbgTRan{|Vxi2tBM1kA_&jEjZ0k`;#^{4)I=_fdflYD(s5z#Bz@V-&!E3>Sm!yX;D*Pamo% zw{cU&3K{ATHHo{Y)gNeWpU(Uc8Ej;{=wpRCJ5{=Omx&$Y&+7)ataQwofnCr^r-?3D zQ%lxOsj#UPi(JmM1;q2JlPXx;upKBFRSO?~TX`4MY*Om+ov6DZ<+mI-aA53V>F>e% zE}_Rm>^zow!F8&?Be_&0Cg6`Uxla-o*&eB0X8CM=2s?&wX}QqAXYl)yqm4JsJ}#}T`1l*JiX3?_4)rf!z*eNZrryC%b5S_Fzq8{Ji(K~7Po;~+zrXZ@NQs7O> z5+$ih(3)l4|02tZh!-d5X=Rih&D|vw8DjZ$z}NwkVDg|W+rnvaDubNU#*M2lkO4LJ z>=d)hGSSRiDEP9JkdJbz2kq_JvxRobrPNQzrLd(7!fMXX)6%fes01O3k2 zeVsHq(z@T0v+s`_Xg@KtXHu@l)jlR^E8vm4^la_~mdS9%?dn0!E-qztuGXM-5!VAP zt=sPsMuVyFxKfjz)?PrZt-;pYl$0srUC$uW^3we}YURz{tiH&POSkq3SvA~o;7DhW zLt1SfZE9+6x_0e|Wj8B(^F-f@#n0I&hKmb;kxrqi$m(qzGGf(lKa`DTmIVH1H7J!& zakzi4$=R;{2dSkf)2~~rN-V!K89b)vH$1N1v&l}c13fNUw?#HDJqW?KWGB1GcX*1( zVWMgKX~<-388=i}mj%W_ZB+-bttX?SAX^Gib@7%Xjaq1HdA%0tQ%a7-werrdKn||) z_54l(E4k*xkX|Fu$)FgtUD1{38Ax>t^AyizzuYU^Gjl(Niaf5OyHW?XbXS+TQ#4zU zXrv{-pdi7rRQvwo9m8*o!>8f$71>e__GCw4wvGi56|WK)VNN6Xio{67sj%0Sv*HW^ zn1tFj)Igv7M&&Oa^<<>+j4KN8%qMamdLNR7SM+&8=uqe+pqpS+VVA|1kX3A?Q85M* zahB9can)swfisW66O1sZdoA+la#(1RBAb{G(Vx)ti~$=}(5Tb0)=h5~B3mBt4@A9b zcBCdZcv1PFa<9_b^|-HMN8JAbwVrg=As@z!Rs}AdoqS$=4jb7UhTa9(h&kwc{la56 z{aQwhetPJf7%DVZM3+oN2uFcYTFR=fn9Ruj4#{(bOn=HTavUQf-S9po1S^luOUf4OXXc0M4$bcN|J7}CwV?^Ah$x_Wbc>Q#KXgM&<>BdmVS2pjU@xM$}Z@o4qmvm?ab)k z+}b5ty6C!h!%QJJ*ezQIPQkFNkG;?&dx-@BklP>8m+fo{cw|8PF2ReJGCu><#)(1! zaY)-|J`Hn7RV<^~3Xb4YF$1Xdwi}SSU}%N1_no?qx3+2bV(OE&XLZS|9q^%MSAvJH z(Bda9qTSE>aJf}h!M?;kj%715>sVSnn_m%QJ$c%+-aUGlHUBjMoM^EGkX{<)=&HG# zBR*4^b|CO-UV9C`%s!14VuuZRPPL}Sf|_15Ml>6r!@X*JkS(CMPUjLTXu0byAbcVZ zWb@3q)>HBZk0jTCm>{otHaCj#JWv@?poTRs1&Q3jM7(W`iEPyekf)VnpYBbN%o7iqVU^Gc=oKliq?MPS?E|%^w=9NKyisgNfNC2SsX6-x!6^KCn%&ffwUIo zvlv`VdqUkg7032XNLNc^%bO`^WCfn)-ZBt!cl`QnFG8CP*of;4-H~fFa3>Z*3phqH zZw%AhoS8n%$U=&vK*5=(z3;lp8lAG?s)^R2qA8))+{dS-OW6qHx#;FqhAxNj8{-ge z0?G{1`I(1s>~3~Cm61@R3Z@CQkkIm3*ZEA~)Wwd)^`n=vYCe^PQ1;-iC&^vZ0d;v0 z5VieF?!{8t$?PY!OQ?9Hv6vEF{V0?`Qjn%Z{3{+QSk3j}gm9w}df0L2t7*6p030f8 z$@mE7b{7IvU}VQr^H)jXA)}=oN3On5dFxE!SXv(0j(rw~y=IrW@2*P&Z=RdB*Sm~Y zX@lkg)P@#J@rK|KAKZ2UrV5LnU+T_HNzYu3QH`y=ec7Y&UG2_ez9o_FSg zOe`mfR1Y%wgd=6c3Gb2LK5)_4@sBrrYnNE-Iw=7iyJ%?0RE3C0_)`PxuGyY93RvFt zulme9_*J{r9@d6aGWH{b0*deGdi!8Z>r?@e4g*0@skK)CqK-j`kn)XeEk}hwWn5A7 zdztw)yrBWYVO4XgTZjScefpvID4xTb8_S9T`39hwabJhMv$Az`JnU%GRh4J;@pn1G zq=?Uob$BJY%>AmDjBc2kHXndNS~B{T8KBG>i^7?i=HQ6T2u=`wQC)h4Wyf`{QwPYJ z4N?_hhQhV}20Ed^s3g!tP?FL5ntb;RXX2Eo&RBzu-`6_;gJ8QL@2wD&Pax2#iA|G& z^)6TLtrqWb^vMi5r+NnD)pABe?1k~EFC3Ga_?ih}iE4O2tGw)sa4u-VHv-$p-X&jO z^QaD}_mGWHC%TuU1yFzrkS}J|I;oz-ykT=PUe&8=cj^0+*$SVyUyXwKX5b;ey?Ym| zcXoE(9TO9CZ_^$xfV(jms&d)t9OWHJiU^6z5}*U}6_vhNC_=vG8zt20_*2}zKJtXp zGnl?!nl;in{VMV1Lr6mIjMtR8l)>-v^T(3127CZ7yTg8f1U{~m^cJ#I2|ARdxwvKV z$B(OS>x9W@loPLH0jX=rSRVfCzOYatb;rX`Ea$ipXJX;u3X%@P$q4Ltag# z#?mbIz)oVA_Px}fIsG|zm)A&Z!R(1}mdKe3PCgXC6tAnSC?f(p-JaNXRU(xAQdVX| zZQrhZEiLXil+LN)k+ma>v*(zaDgb(~K3|$?V=1*xnbRMt%DS7L9xlI?dC`;iHg?l& zSH!X>9_`bO>+3tyjs|y2zc_xL!HkgkSI$kPXO?(N=-OHme! zFcX+q1bjZ%NxniL&@^4H`4KEr{$jbp##`)1Tnx~o4R#!2`= z7nwj`A-ptgZsFP+^_L@=aau*cqJC*jw}0S9L|p>^l!0j28La9sw;MV$ zy*8enhFv0FVaCsx=)XcHO(YGt2D2%xUq3m!hyXA5`csS{Fqyked4P&(1*0aqdV204#yF%e zyWGpwlY0vtGz8i&{?Q{pZU@su$>OXCa6CWJ7?8-G8XUqvhQ`Eq>y_14<34>FZoakG zG2?AQ-{LF+>tD9#J@`h_pbTJQ0jap zR~$HHCmHc&u0h?}zu|>I18w7SeDKXQdqB}h$a32A zJcU3Japlp82dXo=Qif9*T3#Pj#YY%Hy{Ug_x2KaD7KHrnT z9hB@+hGmI5L}{>N3XM@nOx>v&%3)J!J5buzW|BA!PRtMC zf3F4ftZ=u!LjJuoA~Ah~kepLYEjG=4WT2z-_n-f0eH_za*yNnMm0Kdw8<-_6S-1gu z4@DKzyI^SoKM5#KAk2Cnj+Z=R(;21_TKKrBP@M}8d?K^AIF^{>j68J1O`UZaG$bZ zP7OC!##0z4AmivHIJ5M5KQt{%ETWuN@we(!Bs9Sah-Q_U680so{8#*O(()WFycUVdWZ@ahRfAimd>I63;PC0 z0yN(kHAL_%Ew35C#uFz@ctc4hnh&%(YG)jBj3ih6g z2=g~nQYvJ?%tC36XeG!wRD~4d>9Vqk8WseWIMI5}OQmx0e5nPSHa!ItPje$tKmdQ@ z_&FxwDNOg=Tg?efrSG=4ZX-Tuv=YJ}Nz`?G7g(4|V=OXWHsg_Ke^qz+2nZPCC8Pbg zs$=8zv-8ri;s4bFd|mQpn(khc=jvstdyke z8Ih4y$xO0Bwn&9kc9A4WD1{_RW<&#(B19w#kp>x2lC*x$GuQXN|M=Y=-*H_o7oX4j z{d%3_IF9o;Wt3TT7%*Ke+P61CgeEZ#BgDu)n~H{uq?J08cm=m?t!6%xBAi1c3UJHV zs;mqZQpv5to5Qv8OtPzcb2giSAIjkb zD?3x+XSMms;ITX~Zr2qE*nK%s8gE;ro__o<-1{eI(f|> z3dF)kyN@*QDD!ti+NF|MCH*6cBA+)W5=jc?hiC9uNUlz|rodwMA{|^TK?dHY(N?#l z)5)JpZ=L{a$%)am%Sx{K)ec7zFVERGR5(4U0m)uqN~=8E+R{n1`36lWqeEn$kI)p4 zj&v(!sFL~y1r6@M6M@yqHCw)Wlo;Qgyn42vLv80pV>Ab{W&V;7VTnGWXk^(r-oqyh9q~ z`i`^{83lR=mthUObAM7^++ENYx}VaeXOABBYQTXd|5&7^_3PIci8xqsns|+<7n#){ zs-7K}ysdCJ0p(-oh^%|QAqkbK$g zgRBq^Tx8p{$%@V-)}yWRW7x6?F{+A@51wLE09#}%92_@@=9t6#?GlPS@8e@85rdavxGV&xs%sj80BP6xDX`r@f@#{Yf{F9aF2sl2<9E6;9?r<5<{YsC10;x`qr zXTuzNEqXlNSP^ZbynR&Df6HR+|AwQO!C))E9lsf_-U1Dd?Y0a(?R$iFn0+;E*34te z{Uh8Kb`#CLwp@nz6aCQ-Wgp=@^bSmbD~=rp%OIa+-Ct2Z zzRp;pZO`cW<@^{O+%S&fIUrMIVDEI*Vo3@(C<5NTeVc=ILC#daJab}B@#De)ePXvv z{Tp|G8J?T6a$HL*v|~zL)J@{?_-_}(yvcf7O-E>b5rf7@GxcHJYJQuV4D~Nfb)#rFMQFhz z*ppEKh8qI6+_${F$(_HUv^@Of%?*$PiNq9KqbNV1keYEaoX(6@NjVSM`iwf2!kzB& z9%D^ReIvwf2Dxm+S(c$!RNe!78f;Ew8l?6evCs@#Lm{NlX5yhxvk-BXe?0NX6(|N7 zE60B1#J8gvI0f^@gsrGCRME|hk@6o!G4n8!KbEIpy*uhP{rHjk*L9mCULo&$V*dQGnf-z{rM#*N!;cpSh>F=uGgEwV%Q z8Tt(Rp8KFx9J~6o9QR(o_JyA&0A#sHccnJhZx2)7Bu9!NUEKs)19pOGWgcHCWXS+(XQ7}ww+@|T`_W>SaXvxNWf zp`kSmRj-_!oUw4G2v7|VxZ3?QLHS>TscK5?DDALFEjWDA{EEck&DAN87JS+~9wk+) z$lVtUHHYSEF|`1Uw;167Czag$eI0Na>4_|GrNC~bs`{9WNIO%HVM!*;Ux;b5^tuF0 zq$ekn%0ZkIIX%m$pPA|6~p;kNWyK1}+x@F9VZ$b}eTL2wr*sxVpkI?~ zzaH;184MI(7FrR?Zl-kGGN?~EdsVwl@l9czpz%e4OB1rdM5SFj@mECUs_SD5)&on} zvRymt7F*!R2)c>LbRHtdIlNj{ZVRhL@R!Z(q=Lu!_uek9;#lZ1r3>=8+yw2IC|ksA zf)`slqNm{%0jb30f-ov;M)*$1Yt%8=$Ep;jW-oiGQBk2kEzl{{;aQ1=Hx$Dq?5@Ot zigFF>nTGIFdWi!dA8VTKYaZ_I1A2N^ZK(bBLis{4zM+@op)MMYJmi0e=>Px!YFBxw zqL&iF#?DUUv-Cx|?VaE)h;3p(Bb+{rMACpw+$K5t1g5K8Cu%ch1l!<%zU@Q#Tks)S zwh6H=1}EaXL{^!^-ICE7J`JOn&!V^331kUt?s&ri&s)$SBd&`AMaDe5ml1g!I&x&` zfemyNPSsV?&!8e!IOyy9K#nO?Gjo2|U#+2PCss73lj+;DFjB_3>NgYlA5y%o>7{1e zNdWP^01?<|@yDr+U2A zI1%~pDl8{>_M_{Qi5AK)u^{G?S;<&6jf>2V6ZSxm47P5qaJ=Dj=+GjyJ@Spq6*Xn{gtb*q=H=nA3i$L2JP*05 z0#afHdK>U%?F`h@?fC1?v{6+4_v7Nm)SoLSw715@|2dug-wN#i{8iH8-!i$tehNAk z+0h|Zz85b;SWsO+QY7)Ekh*jRdytRxZ!*q7HZ-{tqNT+~X7ZV_AF70h1F8`FieH7S z>L4L6ThGHBh*{t1@DLu-^=YS_-1R@r9 z@7d|alM*%nSR#3S2lD?wkGQLguFNm}`nq4HqqEF~fiTi{KiY>H`Ndus*Cm<1fwv7r z$3rfmER-B3<0A+Zo>2sB**1_*g+dxn!iLnHT^S;lsUir)(F8epTyy{e5;!wQ03J@$ zI}r3>kVmqQw)t5vLxl;D>Ifm3kEA4ZK@^BYp))BIultOgF`-+rABrql?{r#uXzqlSau#_tUOZzLZ)FgJBqXK90Ow-ssRF=hPO^W!h ztRm(S2m%e{B}2Eh7l2Cv4$ZknH=;)-OuR9bM%3*ks|FyA@DILhlqC@c26ySp2{2I0F;8z@l|-H%Kgfi$jKO<&t^6mc~K z6eD6Yh>hRBy1HoI=3MVtva3mqQ+XnbX+}v9bK((p$R3ZXl5i){ndBeqJZRrPr0gdwweh{!XaChbWJ(cdq%QYh-gA{4Nb9zm`&Q)TfRm^=?p*{K?#8GeKdXVKV z;=_psY7im_AOU8yCu93>n92RAWp}7Num2ia;9FCh*Sf>%5)Rh;Cyu9KMW5q%Mh$)F z+uC&f4+IjB9=uDfIamw(ti>mitRh#2N9;xSj;x2FtZqGeTw(1Sb3I}!DUxpfMWaJC zzcreI(dfpWXC6rp@@FI9IS}KPk55Vrm+(QCi5hAo_tlru1 zmJ=q$pV)^ov2b(k_BSW~K`t)Lz!UV1_hcnPS^u-Hmoh*>W@O1#WRqzTe>n8h0Y~;^ z?D6rL6=Ar}W-+`zh~=l3VVNU7l3osfblgEooV!1v@VdgG9Xr@wSM8}1C#JuoQIT>1 zREzG0(*X=6GfW)G^2B%MOPBVbBBDp#MPD(uBKlWJiTpa6NSQ+5Gu^}t8?j{$!I<|d zWIrSNvu|(G=8PC=)(o!?@p$&4E?dZh2WP8=Sgc+VDiQ(t(f@v%XQgwpma*)%s_=Hz zed#~%pODAIkD}fVa!Y7^I1T~_$_wJ2ikggJjao7?04LSv8yosfk4-c894f@5U;WRogd3E$pb&$3Z;H9z5-EbN$?DL6?HHU7(S9PN(Ca;g0C~U zdkA?|ioZ}79K_Ue!yNROiuD?I#!wrvRAW+??Vpp#@x^_?fMI%QEc#%D!)%ABrC5*m z(EGdX-l(LJj4R83kqjfiY*@|Xp3`4Xxy6G7K!V3wQ!C$2RT<%KMG5?e83L0|?atg)% zy1V!F|YowRVncd%SVDJQWBPW$H|9RZgI!6C@C^lYiJ0XwTmM zYvnyq9?NtKZS5fd3^-=M)n%L`q&MSKE1fvI|K??7rz0N&?g)MIB1Wzlt{|HhXm}=~ zeO)Rl5@ZX)=@E%xKgFwoKy+vy{T%3lm~ck9?^9D*zi!=~LW|fvYs`Hg#sYwt&i9@7<^os;mtCcszfs*EX+XzOw5I9YP_)7B8>4Ypr>?L4Z zWCMxqFN@N?%$W0`WkP{-svtsYZUJhEHjNZr_Xde|EZuyd~Vrp`kQ^sa#GETJ;3DS1KqjFOZQhS9x+crs#67DRUzYnr=T*jQQxT90;<_e&Z;Qrj z`<>v{emVB7OXaWU(;ngU3|w%oALmLD(<;QgMZN0HsKZ)7Lp18Jw-=`(1*T_ z;;IRclg6wHydp3Drf40O=y~!bkRA|2L_m5hQN3sl7V)LgHB`KT9K@8G7!`ATAc{^`V=ZUk1utB_+oLeIZ z9sAOeo}T7sJL1}bo?Pb2nR%Z8s9^agCYHXATnKa_UOUjoOuLHF*gw)u&7s9&PZeKq z3x*G;*dO)S?;AaD56oEVYfZrM_v7*Q?5gBWBB$iw8X_sV%7TQac$ zyogoBZY&NJ-?Q-^PzU|vLJ}|PF>!cSoh`}wfu{h#Irl(&DdsD?mLKSPV3G1-+S$WV z^IKYGmFqj(IxGGg;VHT&8#qK4OSK0#uW#G|brPwF>$!xd(kv>RuCEB}P#h!hBT_pz zgu*^$f1q+#~=(VZZ;NV?+DcwQ2uiKxUj6rS|ZesMHFuN<($^$WY_J+K3qyC`nD|aTu#+L4oto@i}UYHe%;= zntzGtH8@+Lt;xbVA8)(MOl`9lQ)3;tb;alSr;%0F=l%RFBG&(rK?>tc9Xy+OE;Ghg zpQQIarg8x=suf)>V7u_~l9Isb7)zG;Nq@VWiZPWmBX^JE@i^Ul0u$z}STJT;!jm!Tc2NCl%^y|rrH^keP=qw-D<9anpaA`*< zm{`^7Lc!-}rtWbUNKB^jHLs~p0~Przehw@kN^3W5HsA~&+3EA#kC0lVnB6p*`ep_K z+%jX+1!Upxoz?#VR){N`m8f0)eH|r5;t}O@KmVr%$Z+CbEar5Gc7+f%w&&rb#WMU# zkFaCkzI`>|r`j;!I2ukF%1molljixKX_2D0_!of=a4*VE`MnYop%YiYY}okK=%b z#LvCvWB4D1Mv+xKz`kNmCsR-8w`BiV1(h77J~-e+B=Y{5bt0J#_`ulv^9Mf~V@}bW zUS34lAXz1me^&tv%0Pe!Rsd(EyB9Y_0-+cne0mevkK3MiJ$=6Tt~aYJW2EyjBgGzj z_SEP5#jcIw+X`=C9?=*GXTC#j>kWRiwhBPm2`MSfR;~;hDe21d#AhQD_1&pzQF(~4f@;IB@w7-O6@mM8u3>>emSug|kLsMtiv>XSJ+n1M5@0 zS$z7{4!!p7cl>s)#?Qb$U?BCmUe90f=4pzBS~z$*^Ehxe`Sa>81Yav=aOv(mkaNoR z+lk$aRJ3PbQrNO(3w8dfC(Rw|A-)>tYIE`uK|=OXAV&D*qxR%)R&`Z<*=)ySbO;zo zkib2q3A7_9h?>16U#@0&8$r!Sm+(;B+GsD+#%S;U(HW3S42@;Tn&OJMT@c^0Y~PiZ zIaT_)Q(oqg`6`zMMDC{r)-K9{0z(Urt!Qf8zej zhKnyPGHX-UtoN%+i)Yp8(%BF>WP$1L${jxLT83t$?iN4zxIyRY^G$hQzxrNXwk;UB zRrUggGsz#2>W)ZD;Y$Fnw;LP^ssfE(aq}w&ZAOv zqfD{^lcm!a2%Chzj9UeR9S|HmD=4cPJ=5L;2T&-DR^DwlZ~lBW&~O=g;Jh;lQ>IzD zjoXpTQ6GYVlrSUAaFCl65%|`mex3OhMqkXa@x&0bZM$~5)OTD@7QH4srM|F`qG4X2 zV2XxM1qGV(wUi#zWk;Ha#)*I5-Qe=r2|Ngc?mvL$m?X+A?V~YE-4j8V)1$|a4ZEDH zvvK3bq$f|t_3-jMbZ9%C|ARGZ{!L{t-}xw-tKDA;_|Ai%!yc{aePrmyM{#kA{K&Bx z!qiLeG(8F@QS|_=FfC_N5HOg^qH&WZ50aCo?~L%StF5iwTU)!g2@M$O+niv?kOFhQ98w7@J_d&(9lT)SlL-XdRyCZb5Hpu25Dyl z1AmT7R;hE5@U2Uc4oVEHZvWYa(M~ps?4l$LJbik4LBPNeGqnPGu29M z;Zm5P}e+*;+_Oql9+XmWcOFK)*K6rGl) zX7;inqwOu~){5jswW>cx-uupmU2BfOL;uM=x*eE<$R8xS)p6s-We4!*FC1&UCIQ$J z-^QKP0zpF;PMEMan?2uyIr};mK9hTVr21zu+vtw7`9kT3j~`Fw5z}clfr!B;>}*mQ zN#`zoFya8sl3UDOyuP`&Lt^npn~EmS2##9f zk&KWq^wCDFZ2qk%ynM{@ZG>l{s9ugBht1B^_)cqh2|ohu(EWbV4?fCnzK4Sl_yJYbf6{DVH^< zAzd4u{TIZIdk?5Nt!_RD@@XEo@7OWsvY)4T6rweurNQERKdD=De!sqbWydToJx9SY zRU)G%_gKuk8}9h`Ffg+BO??@%6**{2*PXQVZmoW`8NTKBenfI16%yd2DqKL^GL+>yB}$vkG9uLGYEL4 zdmlS)zXFEtQyEo!_wF5k-i7#ppf_*kK}7BaoWzn#+ZzvLjy=o0f0_;-*WqpW5j{oygNeayE!mR`Hb+%Y%_3>i15k%DZp1`y{1xV ziouTRP-W1hAS-Ukg%@{kX#nGB|8@xhlN5si9x1`|PHO5QicMJ3A9mljETcq5qtQ00 zle>lejf+OQwNtNVB4|zi+Lns26}n?cT0<9(bGO$?_tGP6d5{Sx^>189Q&F0gW_z{s+CvE(v=jB$Q>sAym9ej zA4YjuaME$oq-39%@J8cxF0Fjr=kI}nWbquJh2h_u-Ohadf{#uvkq^2lK8-LmpPOQ> z-O#db27own*_i|D2U+n3bqZ}m*hm70SH!2Va|=W#d*Z~b#AHHxnlYSU~? z0|SS0#*H5^ML258lqMuyH~}dZ4`*~@=PAPEQL|==-4|hG*0~Y*B5vReHc?eo<-|ZZ zC7KtW?*3mDw004BO(1d(odQk%>>gjdlXK;1>cmzY`ucSh7jhqfh9F}cU}-}{`2zd; z;>A0U#QN~yM%)cweW#Ha`|zpNy^XNacM>T7*s)_Ul&w&eFk-Zwu&fba)f+7<-CZi` z5Yy{%-oaAoB3a?5o<4tmnlMH9kGftdGkWAwxvZQl_H0zlEFIr`r=2BL8q9{ZXZW{Q zmv<0akQnSI7Ypn9tT^o5=pXJ2VqX7oH#Ppw9geTnXPMY^Q+de-AYN~+bqH!s`1v(@ zymG~ghcJS|WteU$U@Hkds|+q9Qpl(sAyIfQHbVcX4XQyKl2~(qu!PYF8Z{4{(v^BxFeh+}w8=Rbt;}ZS8vg zye1#CTc18tmD`WjSd5BVrT*yV@yq7?aZ0Iwk-PDXnb$L>pC|cv83ld%%;6p1jE8pc z!4ewNGx1hvL8nnjW!JZF)M%gS+DVp{CwcEgMAUcnxY|}lRmDX`vfdo>lnZ9AtQ2TE zzfsoxk{_SFg5$>}wCvD2xp3vS@fI_pUpc>d5gZ~vhsz$P4!*5d|7j>5T~F@}4i1)r zbH$1kA*H&^8uFbnUR}=@4OS|5u5j4|^Q&A9(mC_%X5tz40y;(4!3ZD;Ev;h}7-EJ( zwKE!#YDnCCIk#-H0Di=V+XFP;hkrQhb=d2dm06uJAYnp-TP4q z5e@52&=A!N^(G7^u+V6bjn;t^t-3%sKv(obLuWQ)hGAgyv3}nMAdbHB!K2C8cOE&X z3JtektnXPhInr_DcawRZ-=2|kjBJBXRk1_ddxbu*(GUO_aFvgOeJAJUIYzWmV_?0u)dRb<3+`vC>sE{iiZngvhY*Dzef-@{G9k95Rf(06}l zd4_Ssa@VX4A3oJpR~xHPruYnhvCDRu^P3h9f3(BAnNoBsqZfV}r@oK<`RBu8lOLM1 zIkaGEpj2wS3AheSkeBdm+yb8DTToAf0T|exB{Wd9D_gzhs{k;scdq-P^@AmP1pCDC zogCxQQ(C{hHGnrNd96hFVp%+Eh1I2i*bHK6UB5iu&~Uwku_?#m#qF1'H_e6Oed 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

    Yfdu|VK=ZglhAT`Lk25+pf;W0>ky ze&y5@GS!raIW>QIH#K7`^m9hw5jE!5z9a`(P^fDgsE@X(Ot1M2RIBY+y~Wy0E5%57 zJ^7-%1eTB;w~;TTvQg-4a+t`28}d^-|Aja50B7g#gR32Z+cm_F6)5H72MA?i4@7O7M;(&81!+Ak|UjD}1)~x*{_L?&zV#vKR6^%e**kLXM+=IYFh~ zg;}O;_gwy9aF=X`x!pi%h`gK5M$u>mf)Z5SkLn6})*sa5&wWLNsCA1!iIdJ|Wkk<+ zU*SB_*?yw+e?9njVR0pV*i<%Es#*4y}qOpXs&}ZMiGOq%$E^va*dh8L8^HyJ6|=IJTtfeBWCRoLLrPD6Pz9%t)y*EHC9erZTheyZO<9>MS-m!GqGbT0RVc={Z70|Ly5agSCP*%3t0- zcOF0XL8~K9Y|a1H2st!Pw6!~1PLzwlUls8W0{hGApwms1_QwN=D(cSH{dLse+fUGL z9|@J4iM3`otE+|AtYZ6<&_V5iu=VotGh z=+B^Ewut}Unj!BCa@g>|ADg(XGR50-^IxmRxex(4&Uf^yaQpa#&Rq}mupN5c4X)9-g*7Dxw#p`flTKO*Z)%XH=U1VhD%P+2Me5(7SfE@Eapj1c=Zugh#%rh~U7 zlep#s&efcQ|M;8nQka2}HaP9C@>*l+j_QNFA&b0GM3gYM*y9b>O+Pbx#_#%VAa1eIy+jnBJUHdkE3Q!u~o>sGz z{Wu~4*=oZ0q&fb;BB!TFN&YR^^O&s?wo2L_Md>64refuWLIoI2+FTYs zMEpPAp_@PW9$QnaGe13~9zT&>K=+yGm$gP0J2`LwqkN2~DZFG7iHyRdhf*$$7;9Cb?<}d_fr`M}(Ul{@hyJ7f+Z6 zP>`NFg3|$Vh;evo4++{i7vD`%A+BteHR|$X1H^8L$yq3@c|aTbAU1DIL11MZT^Ro? z{&n;pxPl|9THcYNxyByo4sp&M#SX@xod(E}1Yc}EiLW-Yo9+09*I3fS3J0H0i&0!E z2;U}-pv0Zrm;JM+DQ`O1=-urijamkq9Du}^=FNO8Yl~<|kX@r#>C~mmsR65Z{Q+1{ zD@iNb5Tw#_LH=P_g2VXX;6V>-*QsYuA2P+83()C}n2eJRO8~V@@qDVa^po8oT-gP0 zW^ZE5qJr^&hlm#6hlT{$P_YOL_s=xhe_d$rwGj{vLSvw*U^vqh4y6b7dYSYg^FGlo zd*A^PK!qcw0DbH;mMA}0dVz6Ebw#q9gUe3@yj^~o_rC`Yn#K^zVfuKB3pQpH8v6=* zFBftA&6|ptF4{?5X~C#3KUtc};%M)!+wN`3BOd5nzCg$qKx5*s(HuRVj4Zt4+Q{V> zc`VgQR95;msAnQ%;@35h=dzccR=6i9AS!|hQ{eWHXq`-{<)FwlKQ1up@a>Z{+eeB{ zmnD808XA|xYDxk3Ct1xgRVMv@Hnul;usv{G=8VL&r_Tsdh{LD9+vtGGNNj9iSwe`A z$OCJ?R~uA`2vwFoJAeJKfqq)7FQ|*(BV<|qS(P10^g9?bPuOs!ly4=&*8IVN9BdHv z+E6s&`Tvw7zI{PQI2+dxsIOv9 zml!M{Z>GQ1JKKw~Jm+uuV@PCDzY>LdPR~F;jM!=R_tw}Ya+9QHQ)(fv-n$l%Qp07v z(u*c(kAu#v;2oAU%Y$By@$an3NILUVs$HYYO`MRbQgXmF?G{4p`vrWCo?N%v?NSz;RHkL@Hmh zUFb=^tVMA15yS1kESWu}PmTKwxcyyKfl^E+LW$=&{k;E7Yq{n4UM;VR{_~#EeBa*M zNBcQ0w*j@R4VJu!r7a!fwoKMVF*I0F_qiQbnz1S?KB2B=8lP7by)=+(Bq%T6Se%{d z~bhtHsN_e|D`o?{&(-ve^embj0eyv5Uk+vHRxfP zVzi$&4{G###;aGYCAL}mQy~fU7DfZtigQ;(RB#+Om=Kt7gik&5g_S)=$;$kfy>gBw z2d24?;r(u+8Nv5_BBxpVGFw71qbB6!f9lFCFR+$Wum3!K4`y%(2L_8-&t8i;(qMR4 z!oePB)dM>ARA2!?K2V$8XrZtmAXKR|$qn47nHv4at|4|N~5x!3AJ!S~1efLe(f1MP;l*5W~X_%9DrV04^`DHT&roUl|4;a|1i_V^atbz4+2>qT#CDJpc`vJ*>Pm}d~2PmXdNyssjra?lZi(;f8O2U$~~MqitXL5 ztAAapHE~=|lkTUMW_O~J;6=ymsJZ*zxH*j->siws{KutosK;YLNKwpf-v5fC<*MsX zL*xK$*b&ANc=zGM{`u7u0?W9-my%V*8;+^scuFcxEY?(4trD@*8jAC-LpTQBzSJz2 z5RqK!mqek-@XaBQE*%<+t{YHoLd~#bMSRWPxx+?&OjBJd!@ERKY68Q9SAW*6joZ-u z($zQl;ho!AXlh77Q?eXmF^`hQOfp@KiaJd%j0M+`;e#A(ZEP@f{oMAsgb%(Po8uoX zx#+y^`SQo-LLObPk4MMdd`~6Ft5{{gj|4o|VM+sj>g=%S`&MC| zVnRlGw2}GvwrW=*Dpt4I`gXIgMZddeeg^)LV1l`I ztXh?W1;8=h8x+^clO3GO7Z1pv>DO7iW~@|wm043Cq=%!h4`QHGV!zyV#NJi{j-4A|A27`(ABu5x{aE3ZWMp**P8=vItv1D zh$RhPZQHc@0~ZL!8ez2l8K=-jZ#VS@!)5SpR2FaB#*2KEu3hvfEFbt+J_>W;-AGf8 zpm&rc3MRiEKx@@mPl_kfQe(%F{@B@YS?W(z& zbPB8v&3SOK3mPdwpU~;tre38om4y}}ZBS57*t<31@U6ww50`5H$1yU3s)1k}1lufP ze^Q5RV3$Il%m)%)Lt;>X+0Z7*7NRo`x;0vAI^=cyr+1(84i&6Avv`VST4bMkGmW>I zlp+0Sf84>NbHi}G*UE#!`_E6#zM|{fOMmMqt6M!Dd2cS?++poT68)Y}jX#0{OLIt0 zT1Fp2RG1%OOiMv^N~oXnECV|v*zx)VfaX4HX-EZE9HkpG$94UbX^$xsWDO?oS({m! zb4&Xf8s@Yvm^9pO*|PJUHB~bKjKGQK~=tak#3R~`O>CnHA-330=2~~qf zS-$GANk`Iet=iIScgc;|H`6ynnq4@%5ktkhESxGhCbdHcOz8Y`dN#h;*tC4T>`$!r zH<&tImboGVmc>ofuwBL{r^)mU#l>hZHkQk50_T1{&+yy2pgB+qga%C$lfztjZ`$Tu zjRm7TXclol*iMqAVoxdwMJB=Gz#1m?nmRpH?};lYP;drkGnh3`$6ocjT>bhrHEYL-f|a)oHFeKOO+_x z7EKF7O59KG{@G~X6VyBY5;q)-h9x;X-&+;}GxQV;y*VcSI?pNg%V+1j@ zM5BMzfdikn59!eU;xVSE6@3{vzyJ?ywb9SPjerpr&;Abc;GTG$4U(Ua_Mi! zrP{4o)Ax$~n>eNvxT`n|pRrzFF>cPRSp(?$`EHpAK+X1X$wd#9tTUFu(bVaC%>HP< zc}-g~z!Sz-M3gCG+yDpyUQhwH2dxo-{iOb9Kmpach3_c-wf2eCIC$vfYVHW`A;z%Q zc_gV*_Z7cxkRBOWW@5!^edj6;~uL%Pk{uCbgAq^E9cX0GQYaXAo<%n z`_F)*&>w73I^CflIUxah_fkrMm6t|;&q=56rlyu&a3SvAc-G_cg$qu3W;5O8AH4Hv z@OTxO)fhcyjKJ;plau|9>>0#|6gF7aQXo7eCO-lL<~}?mr8bx`xt@3@zRk=$lEEtb zZ&M?dv?8c8yRwOjd&I1oAIvAxSU~SEW!f}Bvj~UUik+2q4ZSU{a%|(e$xjm16jfFx ziW0Fg-m_=Vpp^_k30~+Ng%Oope%N0YUS=y67=k98kxIGdj`_kX3J zf1=1yt-6P&;`zg0v@4VmNGn{`ZaiuI*#k36-0wbo@uKC~Nz*?R$qvT-2M&M@ojEtQ z0mc(UshPd++r1rlD-EF=-ZG(n`?cBa!mE3mlQZe$SVTx5aP9e@xU`{ZOj6#vf4}nu zS;e&+CoBk3#jCg-&2Dg82E1lYsTErCszhPP;^5gun}*z85Ty3n`rd`V%v2V;%^daO zqn^UFjK%eJwKeRUpK7w)Xrt|)8f|>fKAyIrTOFO6ckiJ$H$hnIr)m6R8B7-RjvSz{ zYiP-kFX#vbR~ESW!*yaJEgHK-%etz0iIX-OwiB-J%ILHdMy_0* z)87md8U@Ep9NUEUb-1sY4 zDPaZ=95g?6y<*-fv+)7WJ@^&BPWqrfik>47=)k%OG84?xz2s!ktHHgVp35|W*QHCn za&mG61OnGIM-Usc3hAtL-=o6UKc=)o&=~jP#eUFjLjTOu`(M3yF^g|f&#&f2^oQ2V z6-HeFsOCKv9gW)bT9(TAV&+Af5v(9VR7sO_7(dYVxP>B0y>j|1X8RQyH_c%XIRNk3 z$=}zm`Tcp5-|#c;b03KV5CD1%%hVs)89#t2Cc4iT=;!r5M6S>R=e6PeIls|r!Cl>p z1U%)s%Ub%*T7ryeUj23S|0rr)_}JBCp`BgTk=w&u&%Z<%K^@Cp9)-1TuXn6fUHu@z z)b#d;YSRi0)2wy(biTEl{bk3<-P2PtdU!tCWjAEu(bx~wZziYY?wIg2t4HtNbh^Hb zk~)0Lp8&qOR_53EN zxPx&Pfw4G(YXe@&jyK-KgyhC}+K2}zmzWi=*ivmDdUQ64mW)00=SByKL(`{2gP&PF zwkg( uKchiswsug%1IOp#KZI%2g5;z9pA8)}GJcRS#m1K%E03mcqW)`!_>fK+EF zDuNxOGp4s0Jb19+_*8Gx=lG-|n`DCg7L0r-i(NsuZ#{fCHtY@SEjbu<(9UP&AFwPbeNI8Bj(an*22j^c+KMclQ*a7sA6HojTtd=q})RA zKDED(R=Zgo#1Wg5%MCk=aII5{{v%8ptdfhb#@zi4|5f}TK-#*mvk zdCF$Vk~0Af8gmtN{0|=V-K5(1w-$h&d3s-L5Rq~RlT^eL$l8hkU~E8h%_wOtItM<{ zqz^8Mv9U+)X*QNc=Fq6=*IoR@%$H1D+ADn+x5`6k5WK9QK|VY?t45!zn_A8zdC7`T zp74O9k23S}1i$-gn(MO0&W0fXI8Tqm{)bqKMkJ_p9zYwHgp(M>1Is11N#yg$CQyEo z2%W*%++7D;0Xr6pFzN)6&_Y7oM0*COGaf1lV1@Ac4h1kU{@afqN6<=^z7hujV4S0? z3o>|7T&OL)4mc2|L(2}tmBp#qvyw#I1Q5dnV_YZWf9q+uq1z(CxeO0`Qj=l*eDt9$ zB%63$^I)I(>#i)wXv-!wSM<7czQ?T}d@D3w!;2F2R^F}EN@=K}Qx=7ThV2CV5INmP zoz1IJRl8PxF_4n(P<4y!9~Jc)WUT!1YN9>x&Q0{S<`qn45#1i*OO8IO3o(KlG9v5& zmjmk+>DxrVjh^Pgg9l8 zj0zOz1%D8)Q#Y1(TN-RdnSyUTaeNln)JOYwl~pwmCN#C0>C90B0*a%5Ol_LIW$V^a z!B$0A%$J=pz4pav?d8V*{QSuyZES*zyD{PEQaZO9d@$?cw%o*&J?hVsxvy zbY03vc3Snen0oZg_$uwUZ`6)vn7c+6?kL_`ytU`g>Z;~XoxIiC#?M>|2c~?4ZmEk$ zur{TQQ1;CMGi*M+&&};h;W(0T^K>cg!gvL0@8B2Cobt&EB6s2+7&&j=3Hg25Nd|Aa zMU1t!4glCYNt0s!B?|Hx@zYuBk?X9VRec{^F}T(FrR#6aQR#T}f#-prx4u{MKYjeR zxPN$9q(M&A+<15h)#l*3Qu8)>7ihx=^VqQAX0uef@d@iYohk{e{xR%;-t1eJUQeDs zpRBlthdAh4I3cWuzW#*#H#frUDhu4IPb+wg4Y8yP38u8_yuKKK`Ly`)oFYtjT`%H7 z>1##m%wNIuI-O6PIH7!m8PimgvW%rSs zEEKX~-z+JIn>TCLY-M^}T%5ZNcj6qef4ZW|09s{ph2uEPEE30i(zvCf3Sh+D^mHr5 zJ#0KSEh{f6DjKiAO)haxL%bZSkig3;jmyu;IiYT(WDD9C=unVh67${D(-Rf3f3UWP zNSEco%ezvL{~%wBF$VsxU`eGt`t+HUwsP4rbA`M3MKS=HV$?rB?MhfJZQ|BQ%9rM6 zC!JOpiK^kNXBLHI7ium`{nooIaJsom^H0GsF*%<8z}TO<00?SDMdJ5w@R8_TDjs}6 zdDVpvGj4_()S>bb7G;M_$nMp%=N@=l?e#VszMV+js4`6H~jO@=3Gc6 za{#M7)B+#&Vt;m_7SQmL@mIdQxiPbco}PK`P?VA!AF@a!+KZsb`wRrAFfe74+Y$E$ z=aS*_==i>^`Yf3esvhO%=U3}PQke3R7v~4|Fff>mQcZ=Bs$_0uWwi&0;nUtHA6Fz0 z&-a35b{#r&=%Ud(ckS9sm)C`2YSIeB!_aWS987t=m?EYuJ_=y!v1!vL!+NY(n3Ssx zkLY&d!k7a+%|s?^I1X!*ojm2H_}cN0tyG_5YkO2-BzZm6sS5RS=tGS$qenljcuZ5w z@!P|>?JOrEPPJ*%V1)z_K;@+k>enC7*y2&okj$&Jag)7fAXvoIF5+H={dlx{VG0Qp zZW>X^jWtZqpjXwNc6O3U7>*QOR{WrBo+9)X&wL9JFXss^9a;t0w;HowP@|x|%|c+ORT?Ii)~imF=QM zr!xA({8Q)+1IHp#NV2B;E$6R;aV*Dd8{m$ip}6=`ao=WcQjuAg{`{|V zDI{YzO|+f{>%}ATsNI zeSv$&`k0uXmWOR|>Z+B(%J`MjVJ#8P9^vz(M?3lQO_@`Wwd%+_{?^s?g0Gk96BL|^ z0&znP!s#l|rEkHPOH8dOV?jMGQJt3MzfJ`ARNiF^YyeiuXj^j%)Kteap#MVF_rz73 z`bP}95GMnb3j{Oh3j?eE$R>~_V&J6@1gd3Zq=xPz#zEjY&_NmCVH{T$i884#NjR~* zqT(-*0_H7&@!4@Kez77bqQn@vb1}MWg%_6>`eu|7@q->MfU8d4l|`RQ*3;3f)~#hn_!1P0LBaZrSoYHG3t7eyz(y|zqlJn%R0qBNwe<&R{8^Sy<{ z>SlG-d}*g{-FAX+^bV)9OKR?OGjDjJ4uHJq)URLUo$FAS55X5jx(=?T$-o0AP~_h%=9zZ#2j$+HZ?9LU zM&i_UH6#5PG%hl8!I~5?v>(Cu#dzpRue*92(1BRfaX^3x@V|IV=%M`6LouoT-LB4h zUVME98+v!d2^O;_vEAafAoj6}TD1#>=d4AGroA`*%rk;D^roI)&W8ntt1%YHeVEO; z*7E$q-_x(HJbmv1OYINx9b{V!rTo*1@jMS)0YyC|Gr+rd$AX{qb=OOv*3lW09qw9G+F0qXc^FKx0Yb2;bDfaZBjBIp4( z=B1v_9U&@SP$7bzBdD$j=O7{>ekP`U2lA2K1W2DI2F?d@f6wR!0(20eqtCzL$JYwU z1dmIT1zSWY(pq#ZA@?^7^Xos|>3WM!hw}d|*0j7q5gG;+eBM#aG;a~HK_*I(-jQaT zj{g16zN^1bpW)JgB=nlH2ADRj1ExtAN(q)X;RW$&oR9fEFK7J5&Q%vUxLSYwLOH{~ zrTf08H=s+Ux?buLR`srJ{m*%-G_V4Z8HR8*#X78(>ynOK@ zg_&1r-&y^BFg610R_j^U;nyxZmCPesi{&|>OShsyOHtHKyJD9_KqPpKuXNV`xO{}m zmzS67WggeM{|keB7kCCFqGijL;6{Wj6V7EbsW^P2TA+pqq2T9^)}BQ#$;p&)7UvT^ z#3_v9@-8=bD_dCd((5mSjhA$cX{@L1>3y6|02WkDuik59n?G)8CyR- z9j8!t;^R=p(P4Z*@8dw`iB0&+K7iIaw+|stXIded)WViSQI;kMAkEbNQNQHe-S>J`qK9axKhB-O}X2{+k#3PhqwSH8Tsu!*gP zo1jm3^1N%CGrU9PCQGMC>ct!Xrk9CCL8NeGQEI&I&b|KriNwTE`bs$XymcqJj53Sd zzxszS^Mfa|F|^tMNF(;tR4Ir1OZbIsE83O=SP!K{1`$GvihfLN^3XA5|^VPx)RnZY*G<$%8o;Vfq&<}js z9rqFDe6$@rd!mM?7*zm(o5d`@!aCxnmgiZJnY*!Ohi)2lDB?ZH z;|>C7W#g1wY`hOb1z}jp48UHHkW$3uR)W9trCyiJ1dyL8RL zM62!>cWU0#Ifx-R)@o`HG3?NO0zm@CU}bZdxWQhz!6-<0Y>SMJf5eW{MT$HMRhc=3 zk{@;E39*RRFIV{C!$ts!l#-o|#@5g|+fAZw|lZ4K6L)8F+FndK6r$1#=EX<`-y zKDy{)_cgmGL}W&Pe)NJ}e5ZHpQqk+(Tg$+}kHcgE;2$MvzOHwxy*drS4b;8)c#m%>!Wq*yST_ z=Cpk3yaA7PoD`E{NytEq6zpYB<7Zl1tMkXD{-Z#f4Xn6&bZ%~L?GIXQ9wsDMXv80l zH=8%_g!O2i*$!h*Dept(&Y4r^NXL7+AQugxC^0HHl2Yjm*rq^TLoVIQ(?{Do0(hiG z@S6r6AHHPao0+^_5#=L(xcjixj)VSK+j)~uL%G~<0m)moZY{Mj^^tN+K_Fn3pss0) z@xkvn+`V4^h)Y+lh!+rWgX+QQ%^xT#`=qyEWAOHjrMM>nYM1&vYhe(vQS+j>IVUBJ zd2M}k=%2iV$)9c6nxe%&>Th6wN;RYTXJ6GILY=#3(#8sVfJfz@+ZbW;phi$RSZ$hs z*BFI?Xr0NIao|}Z%YfH7+S+Sl#S0!^{XhSl_^E|4mPxvK;h|4HDkuHjpvB^=D?hbR zptnS{=1X}hTW48NF$6~NYaZ##p|Wf##E0bvr?NuF`7BLy{uaaD!Qzb_|5shGxk=d7 zjYA@ZDB)_0|8!qNL(_;1?k0ocSL>M9oOP)&>nd$`P`v)5c$91T+j=yr)i0be@)F%` z(*f<*>~3-;^VOD(X}_*PZliv28Is>tJ>sGD5cX~w6Z2G=M7&%>*IR2m~ z;iF0gV&WR2)>2wCY$`Sd1-0i&3Zdt9HWxo%sng&$bSLCxNpK`9u(GmEO{ajXQ}0%%$qCcWmPPJ-3lOD% zc=^n|$_73=TTssEI&9cWdH`x>kLL|*pL8PYBd8;bU9$NakjN8|JoD41QB>!tL*{#V zeq+|Rd+Hhu(w+{mnOMe>&xT!CYJ5oZ3~-lw0*yCor0SX57&Y#69}SgGu~p@4%yw&4 zxote}Q}&XZ!OFj+X7LI~s7DZHiB<@qpRDzxz+}wf7viIIN9k7I-l}(wUDbU#s#!BCyI_4{Wnbs7 z+RUfpvVG#tMWuq{W-fKB3)glYK*dkPXST0*&z`qf>7XNVHssog*dJGt4ZW<7|M|*5eUX&((cY! zNA<4O0ctamg|C#w^Ek-s zSRFyTy_Fhx_MAD#9>#lAR%JbUv6pG6l&UU^s-^a48eTY58RrJ^xC;{YbWWsF@{ZsD zBc&ZnRZ7!4cbW7%%lywRur@)rOBu11%0oD&`rCdN&P7d|YbJb23EJcwbNcuHrl_ko zBEO_VeTPx976z1J^pq(r3)^`wU5J+W5)=gO>nNn&Fw0I$4ujCJ>G5Z${L`=pNV3J% z0{VY$$gkvBH2KhvRxS0`6wVUYM??*zo=(I@Xi(wENlheFxCnOEc-S;cGu^&XsVDXs z)8{k|hcf-}`q{@7W)WZ!EpdU6Jk01Uz~Ui5tE^9-b__k*Iduwj3efHmh#rCcMRG_T zYQeIBm?DZtHlhl_N*EYV2lkZ63c-IzPH`O)9vPFWeaZIaYt#FVGK%lEoBvmPydBFqGuAy% zPj7=VmV$rc95t_wpLG@moYYpPFwUW6cz{5bk1g)<6aayVcb%2u$By@CJ?`eZ>Jd3N zw6K%1q3jb#gtF&b!C-~^_*L;hWXav6$^dvh0Sq`UcbL&0N_(cM?e-U+7Ok7+hJXItHn;t- z{bHPg=Axzkg57oA>jnd6q(@$=^Y3j4m~1%W9K}*wa2~kQ(Ny)zSFhHcco@LScFvq3 zMDkGI*Db!{BcU&a(a+jD<&dJdA<%M2FW&xjp~`pA$18#*{V{-hLAu6Yd$V-d*>)Mx zQENeWPO}+25q3@l|RLk$DN)-fY{SZTc2&PkRLAWp#Boxv-eiae;ojcm0DD zoG4z~8yQU>WARN>q^!%9Ws;dCRV{Z27m|(4>j*l)F29j`_ebb60p2K<5iJiL6pYFP zz}(P?jZ5_k4egB2aXUmG$O@R@5UW;i+eii)f+kusf2TYER9rpn`O$c*e`Z#gyaM4K z_BvqC9(fEw-)Y?Vy+Wko5k3yix`9@V&bIrY$^nKQd7?uWO5MZ!od;eJT<*-KxlJ3R zp*l5dIyn1=dfP`M^z`VahVM4D&a?<^vAo~BxsdivkSvR&R)G^nI6mkklq7}C_R!FU zLC3;%EvSE>SuO0PtR&me`<^v0FlC8QuU$F>4M|KSOQt^qoU813XMBD}o1E*9K4O+&L46Lj=4R1<0dW;)$c~Po-^g>3fPyV!ybU1E) zcw@iCBa++x#s&U8Hrk%F8-!$~b~tAfKL>B@@H?1q*H8=syqBWbZEH6o9B!jD#*&fLH8q7%-Z+wf8%M^ zY6k~dr^CZ;!bX6os7lLD8B1yG7$d>JdLuye$+S1lpLAA6dv*CTrIJ;8&}h`rPI-Nl z1wUdTPHeC65G}vMi;8c&gO>7S{uONFtLGc^&M~&FXMrKQ=XLei2soONks*60 zh;b?-cQ>e+KiIXa0z~M3Qj&{Z-`-_uX{o*t?tM6d3%pv@Ni0cMkDuAEMxj}T{E z^Af67*pjk4UIHqcJ(Kk(h3%$xmm!Ns3-r5LN0%Q+?mDvdbV?vSSY|IL;xP>4NZS0M z+?U*H#jh>Y;2!=xIKNK8W9KzJo&u%*XSPN|C7aIPJ6-!XL{>T14SRQl#yo!hQB&VK zk;lKn*X!BFHH2IbIBES$7sWD^Yfo3o?pdBUa!coT*O3NpK&0|nujq<5)0KQ1*rNsE zuO>U6p%vm$QsvBzmn>duJ{iTGx6a$_1M2oid{ z0~xB(O5|ldJ-t|t4B{0Z)^`4?8G^_r3Nl~~9ullAD@sB{Qh=KeSfZ@pTMn)4%BElF}v9Ysz$iFdO))s)p`I}MSzLecNNETcO(J1qosFOxAj|y=& zAmqv37cz`p&g8v}^b_M_sf6I)WO^MCPCWMiY^~ppYtECDvDKLGRM$KoS%ZtvXzTXv z^+_W#o`-gw1X^bR@@OdXS`djLgc@0CAwG}jheQx3jtr&!+7a%I8`Q2{TZ&FjP_pb0 zCT9we1Yjp%ZrSIlGQJ1y*T}fMO$@J-eqsxLsdWG_g|nf7qSNY2owXp`1*wD*xf9GXQ3JYD>~N+67NnzPj0Jb4`WPRzYN<45 zJZag;#*J7M37qoy@0Pf->~CWTOg4A`=j?<$J|X+ zJOs9VBB=ZoYmD!`4oY35u{J5QWErhDQUzHe`t{tujYHA5A}gQw2M-?f@%OL1v)xi- zua(w;=+;ia_FmYRx6_V7HzA{7f@d+Hugyzg9(aGNa`ZQ0rB_loxHbv`jjclur(FmH+tmT z#8<`hmoCXpmqq<{4Ygci1O)5eqKg>G5rK0s7Qmjmv$n@Z8X>;wEE=Cx*VNZ(Bb4wluP;E9Ob9!E_%1(YD` zKx1ayaCJdtc#FnV25qSsWy>A^QE&OXAu+31-7M>-n5s4v7j908L_u*SB$UC5dK}Ir zA4>d_jSXNm3MYwG;L3BMGn`9;Ivw_J*jj%Z966qOqOTKq(?p;2;8$Hf^e2?a%3OrR zt`*s;EA3J-yNtO=D`{r^V;=0^oHV79&s%Mkb_WKIW23k1K*uI6cGIzQ61!x)Pd|cf z(H96(A+7z%e*7hp-7&H36t+cz$JZDgq;y$w5-CRFtO74Y_7}2ruLsT3ya)Sl;^mdH zK%Yaf35Z|b6l#^!KJfm05a%>?lL+OU8~m!jO-yDSu6D&?Q7b>5L9nX(#!)joo;aXx;7&=;+zJ4koE3e zhY=1nP`QLA*$sSo$;+ldeLn_A~@+Sf)QUNy?|Cz)RoFpXAV=wT>xJ-hV2l1UJ^Ww-znKzpBgQKzBqD}+8( zeMUI&l&9xuMtTH`y^##|tXmhI;X(y)#wyZ>j`N=HbSZf60GhSzv!o>??eTMfD!7ri zrM0~FP(nFD2y)+Pp_dLM28*>&A9{@bqwGB5SZEM4tooI;bjFMslTDr`A~ufhAS>rT1Xp@tLQgmMsQ(`4nvZlDbOcS;9@ zlg3w$O^2!Pglv{kHsrd?xhBA)ly z>B1fso~$fXJYyX*&AvMB?p-`?CQ3bQZf+iAN|88<&&u;K>loGyAkOTN#yzbjfd*fbgldIUORjc%vwSIi$J&W=Ml-soF zcC)0eG)mpOH#$41(kfR|$#DZA5X$mL`lKzBRor=!D;rgGm~`kHdvx^lb^{F31qcjH z%yhoLe3ZvrYwHZlU1w*xE|@i|@P$i&zrSc7(B6@>RSe^pL*8)wc(!f4)hpXRur?IL zG|)3o*$x@6BBBfuJ*Ao3=ZfJsjek-UpnXz_`Y>eS+yVoON1%>gamtCmJ@%Isi6p09(;mL~6x^Xgh-%lODY(Rs}p zm8lU72O*qQUr!|+{q&RROjWw(zlj?PQkgRc)E`*%wTHnFFyfTuNPQZTbNt3;J zDXdYI-R=OqoUXesUX<&O+Fg0gLd6}gifuB&&t4*8@d8}^U`F9M_rZ)jrqZgvhi6;V z*p^!F(j~{x1WFhtg|a&obS02(zaL&B?#*#-$}YclJ$n2_qwUw!Z~lzYLr*1$f#4(L_p-`Q8xlZLQJ~T9#hC1&#&8dbjJ*O*l9!`O3(5MjtzDVMXYzbfqw(zMB@uri%=049si1)>8)9QrX*{Sx8$=>q+6#y40y=#mrZtcYwAKzyW2_pirx z82(%D{Tpc4tkm`>wo2>TrQbO@V>RWTwdXsZtlx6y^2%OoQtN8ow{tI_Z?57FyxJ6x zF<=;37Fgan0AL#8@N{km>dy!Gi^9rge*D;ZL(|_M=AQ!e-~SrGXN#bsr#S}R?KaTa zli{z`VhjeddT+gA?U6IW`1MRRINkANF=s&)QWh5EW*8$Fu z&7O_gJ$;YVG$f$n;^O^%mbMmCFA*-<{)yTOhD^pmDWA}8uH}}RAw{${qNTK<;GpPo zM?PiF0tW=KcK}32mA0X0ZYmEB4-EHLt}hr^5)YpR%({^LM9M=(KATdq01@9h_B3+5 zi{4aM$%N*3hMln6k44(39FC-S2e<<}UXRe&iBEP1Tto*CzHM>Wg`!?TGnZSCa zM=_rHP*2w*IJ2N288O=k`c*L*fs^GRecGFtn3yHAtP}xAdfU>}PD0uHArjZK4LI!~ zw-z}+&-yL88016>U_P^W-HhGtmrr$SV%LrsgCmQ}R+>bt?VkaqbCOvOiYJ-+p#0-3 zw%_nq@-ftQ(Rfu0fKDk`1eE$1SD`KwPR8>2Yi#d0np)=nUXp*Wa?R}txQ7xO%jLqZ zE@Qmb7|OgdzU#!km^zV^Gy_+85Y4`DlvDU(FBVT`>vQr1xs4`w}pc!6Ivx#hExy zXr%p5fa@^Ar_$gnf?5%8mD1g~GTzjhBuIT$_ToE~_c5q+SsK7ESD88wlH;EVR54g& zHk=OXiQ~`UvXwHJRay;*s(`*yHqA>kin$07k-Vq8`0e$P-+ij6mD=DZx_8&qoAp{D z=!}bv&AgC3?oi*G{JO%@(z*QjzD7o(%E%n}E)$u#{2;KwVF1OrOU^@wAp@q)UxddK zCute!rUiM#d=Xuy%x^k@MT~4S7%35IT$%BqRXla)&UMhMI8Zn^p~pA`1B!r}ihRR4 z8<6TQ@j&EBywMO^1DRe&9xurI6^FgS+5!nNFr{>Mk~rE6uDZ)0gGnXhK3iC)Dby5k z3E;&qejkI^bBQrS%*>=7mS`+YF||ri<6v1K2y7^;nIZJWzJN_ARg7p9O1$74HPg_L zg+_E{V)~8lW#0=o1R8Mm@A|uRqHCPOm2m^pUQ5AbRM9gA+H|jOQwTPZS)=0508A+erQ2 zq^bR${x5mY{w_$BX;k^7eIaE-eP!d7Kguo@GpFD=#tdiOj*VT<$KHD_47$h1 z&kya5IBP`S9d|lah6D+Tqfni)srr2MAM#15T3S+ik`+bWD!g2S7sm6+<>_E5$Ky-i zzQ0PBZY@0sH|j0rZAiS z=rH!6hUaoc-ulYaXH=R;o_rLLkg;DX1QW-ZO4|qd`uKeH$!&qY@)m2)!K@~CpT{V0 zU4c%HpA$QMFu&0gChWA7HTo~?+=rcbJ4Wnr&`>Vy%<=m ziBTW4`*x--rnw>$7BejV3_#fN$)=R^T&W^XU#*&JOtk9dR<({@tx2@xP#>)NgqlnM zNQvE89iMSHK7K`kTN}4AEqvP5ANc?AbtZ5*r``X*?aLtR5Gi8~rNtVF8O9n}MzoN$ zNrV~_TF5fiBqCAvy;PL4RJInkG{%w?McWXfkd*qrPw~w2{GQ+M@AaC-m~`Lw^}Vih zo%8v8&gYCfJZ+xJ+CO$ZxixuA?2HT1hn=1JI!_#I(f;(&GpA1R6>s4oeYHb^st>IkYu*e3q5}MCDKDjZXB*F zW2St!9{t0`dM7y_3o>-DygP&yIF~V;WP62-wv}g%-@Gx$PunBazCZE%HN(#+UllY@ zh^3X(EwWb58~s+fyPHkkaP3W-r3i5Y7NtTxP{rzUZ_zL0m{A3=BtRH?oFgb5O+#J+ z(mPyR+rZSVOD4{I(0nftxE7+Mxm)6j50;^Hc8-A%8qjj5jwpxOYXihl%Ebz&+}*~5 zC)RjgV?*KI8u=eHoEDc`^b+eEJb)KLbp;f1E7=lmJMJcO6zZw^{vN(cMZUZ~qG3aWTOcp5KxJioE}Y!0Mksn8Q5?t-b8o)wsrwCFT05K4}a z898}Y9*Dr&_OpE4dVZ6ZEnALcYYMPVu9TjW?ZbQFB;Atva-&Dr=h1S<%_=I2jt3NMMIx(!N ze3Uc?*)Fh(Sz^s71Md{uc?7@MrjC7QoZdB~CBq!T*DbdD7%UFYXSR&dpWO6Wxu^bQ zqvje$StVx88~QwSNGZ}Q`}8TgX~f6(?+=mrfY916usA%r3I2)J4=)0(2BhtYI8e7i z(?2oZ2Yq3jN?P=C#Kzv4y^a)LIr7(mYZ2s`9I7qUAZDG5po!}wm$bOUVT|~4V+UEW zUB@C;*!B7K21Hd`GkXVzv3^~D)jAhnUeIZC+uqlm&Rw;S3V|G=m0%$Sjrs8>&@$0Y zlT%MNkQsqzS}trLIW|&rAhXUJKeFFQZdXLxXO}M-M9JcVm*CXXv4D!KG z9lm6w^9Itp7c^8J*uS2jyp)twEVm`A27Gt_JVNNLwtsSHa`IjU7J5(8rz2b=X3e;s^CYIEG?fsduC=- z@~XvPcWs-6^yYY)e8o>bP-{<6s=W|~(tm>o49#?nDbjD3)NRJ)t32>~f7|+JpSd?W z)r^{B9(B}}lG}Y5b~7Tq_#3tMq8}AXU3)yY@LX}PZkA=|+@rH$!(X>I9)&h6bwW z{qS82u+jzSFt0&y>6;y`WU~QxK|i27c^u zv}B{NW4y$S4*Dahx_g^Nc8A1Ee)zuV&6`Pxb94iZMZ?8q;b0I~6K?+fi&rDwIoUQn zZO1u2!fL|*ii$>B$^g87UvsMVEaY9L15t!}gohHl3bzfp&s1;j)Oa4F3Y^;ex05@T zJO4<>l2}6nZc9@?^nRx$as%>Ze%WO}sUwj#DROVUAyGE0V$J z0iaNZWWKSjKiR(BB{Ou6-j^qL%^$=rgV@zR*ST}&WsMFEg9iH18&WKLdVKtb%*oDT7*oE|N+DizlW3 zd^g+ph%M_w9JJJ%qu_?!CuB!E<~^Wbi3>6w`oht~53=*;$$ z?jA-o(o4v&lh}P_v=RnUdf-AxHFF5K1#^$JEY-7R+uz{Fg5%q(2lc2n9sWGPH}V)M$16^?63u@6;rh6j29cQa#DfyBAw@?3<=c zg5Jcqo`IvAc(wcvrh%6yt=u!>wNKe~aez+?Z!9V9)wnFIx|f~J zjlSouTqmrFQxoln!Ws)N0dm_Ufy>IF-Oix*(C5!Q;?pSZWR&+|<}w2vB6;53!!`@r zTW%&A9knXR_OoM1jv`#iN0ldZqmDU1*ABiU?55o=v$#bGP7B zcm_1z^)3Dd(RjoWx(@n7&A1|Xp)0Ua#)jM~77Czx&hr?R)s!-zl}1?}hO zRqGh2{uE$8=s96lC7he-m{N({0=* z?CCcNwH0_BdD`%Ik9&0Q-cmy&4Sdp!5j6}&`}5ma9Iqgba4Bxo&l#Ie2r01*%2=Pv zHrhufX!$(G{U#P^agifMe?zC5bg3y2Egd5Xb88-!I?Jn2Z5a1e(!xMVp78)@d#|UF zkEvd}w9NF=qx1{ji{c4Hm%vky^7vO;Y7wh@etFr8G8?viDcCYJ=5dQcwRi*xuKMY0QWUbplQnKiukHoeE z?gWIUn!LDwKdgN>Tt!WuIe{inlc)f)KIg~1Ko*@A;gQ(H9|4NlfhEI8aq3<5h0p95 zOM8XK9C*~{kAr4B4CV(JLVnR?4rG~$P0PliYexv6VI;ZcG(#XeR zr$}p&f^?(KTwb=^^fDy?HL~1|RCx=dD$$S8bDMhlD+L7xMwrH?|j9V_Bc!C`>^Wv6a;A%O*D@3aZ!w7H_FHja{B>#bW?=PY$w zwk-eHo;fepx1SSkSml^hJJQt9ptPjxubX9FFK_d0g}tV#REx+MBAX`-XI2jRkLStf zF|4tNR$;z^yeaX~qffy_80>6p-D86M#hg#umf)vFxBS@cgYOLtG=@jpz_zP1t7L-9 zKAUqOT0~0og2!SI&L~Fg)B%G1Z9>64r=yn2slMS-{3ACsg`;r40q*VuoPjzuxw!kd z*8}SNhV7ZNaudv7DF8>r;%p=2i|AIK9pmRx^XQ2n4)S^_p+PY*IUh7z(=tYvaDRQS z?i9>m70U7JhRu$3x#cqN=e(cYaXp7kiL3hJB+4|3jQ1ZuMx8Zb)Pa$ax`|2JWoISR zE(rHaIT)LN)NU&3waI9xot>TCOFVIa2D3WIClo=URKgWw2dWl}9|47X-HW3v(Vb}g zJ^ae&7h6P?0PnPypljpgG?6M$a^sJKWP}_^c?Sd;G-%O_e)H8jQ|NC&E9dHp)f40h zBw9lN@4cz^eEYjUxBKyyXkXsW412o_ZoN8MYqAl1$Pf+MvA4?_Q8k)BnZu8MBwUPAkO#JimzSRBHHv^{BeoOiD?XMqnIMLy+x1jYt$0 z)l`RM9-l!GIKQg{(z9$|XAbjmf*w^haOqAU=4d#)LPC0n^ayQcY<|z58#HZu5C%)2 za}=N{E}ic`U7)&c4EM%*&J?wi*>*e6m3wQCO0xfpF;ShSeEw8=KG>o3jYCC;dFr>X z7~UA3R=T;e`2C1IF}sS)leTDF+@Jk<#havs^DkcObN@JDS$r2z4v$!(>ukAc$i&ck z>s!qA^>{lpU|pO2D^}k%N_Gr4v@L%C^ zKwnm)Ff=W6uL^T__pG+4886^&*}HpLt4Gm`ESQ|#0O1{-Un2nf?T{4)9L(IhX)c>q z1ZVvCz-Vb8`5~tBxCIUl8-e5%Fd=sy46-qUxgGF%XD`fHsq_ocWgQ|p$9-)IfjNx% z!O+4aB8|A);)|BkIC&Rp@)VM7;)?VXi^~VaN`A@#xBlQ9tuUxVeSb%C7xa^n3(F|h zg$RI^%A`{+;c@8iol9F%^C2iz_#E~H7;UEzt(d7I0!!zw! zY=PROC7nOPW^b&e<^KGNg9IMNUIv2IOs5?kek+9&IGv4Ku_^X>(gned1*`3#5<0c;NHCHM}##m}x-X7?_iOyzwG9W)mLm4KLk z(*2Q#dLr_|OQuZ-D?_*5T&nEf!Ys*~KFRo{D%8q_U!1KWuC|f_voojC=!RQY8o@)8 zs+;Zmu>JblwC10$m2Z&lq|qgP-g3|W{b%dc;)N-V^d?{Qp|#D#xY4Ax@v{umiuUXL z9<1EHr_PY5cf0Ij?=S78*j#DWJ#E44Gb^?ojT|44{%rV_jN7K0pK2yfFntl67hD*U zc6?v+hry>4xheI2t@0Y_%sc;_=2bNcFb(&6#?ZfA^Xhd(_KoJnoqqGU)Q7&4JJ|*! zthR4)om?1`x1{1yuub*wh6%ovpZ_dNzkBpRxob|4b$aUTT~0Gw1YLS`&4BEg*8gx? z*|^I6Pn}7z#aW>qM#M^eCNn_PvXQ}X2TpHU!p0Z3_!*BEjR_^hT7)%Go;GDKo}6(e zz|QR0gxz9?hx_w$8o{FdsCbJ1z*EUcGGlSKLIzL9+Bt|Fl`5OyRNSO2pNmG0nHi5;(Ex zC#U>m+;e)sPq79MSE8L1e;c^r?fKa*$YUqA(E4fMz=7Fu{Ue7u_**4yD9Eq*a52-z zy|odSnk$TQmVczDkOEApGll)1ij`N;sWh45B(OYP%<$w9S&qlpceJjzZnwLva{I5;Fx7(K3a zV8Qfki;!QubMq*?54y2c0;8pw4AszP#+cceaT;FITSp2SUv_BF7P=d)CU|b z#6bk%hIF*3s%}C=3s)k1AZ3chA{{_C{6Lzv)tnpE9Asa9DxQ%KOQ^wGF&~nKLo#I{ ze8kX(TEJe_`M_>catQ!bG{X>Ti=#y>8ZQ8STM5C%KHQm8F3g__(sdUIL&#$i5OH=V zH8Njxo~#>LNdM`fpkC9MIH8qvl0O3F9gL8Dg+cVIWP6%1F*QmW<-~Ln2JAfwku^ zlxfC&q8 zfi`+~^mA^$adLj!Y;H#gz%p*Kz%VcUKx5{<;_Em+>IxN8Tg@p7 zf8@a3%eZAkh{67JSm{gf5&Q=6427w^Ssakz>Z|wue7b#`Q@eA+cOA48Z*(9}(5@Zm zZE{TVd|XTr*DQrKBsJaVxP3OeQ2-Rjuu6i4wSFMDg7f3>H5>|K>x<-%(r*EDB2&0g zupKw=F=1Eog{xb4So){f?)IfNH=5VtR$furtpiD85+inK6fUfJp278-rg#{OqMW}> z|D^Q0id0yEBH>ng`rzpm2*DM90&<)gc4Xzsm4BU@-V4Ps-V28x&NdbHY)#z;*mH+8 ztkfY?e6H^G{AKn75`Nd= zMrO<*p2zug8~#X`N1k+O01_*M>5Uhf7Prg6*yfIlJAl+n6b{=z;%?|V@R5{q%4pLK z@Dg_AU!na2UVcSN8YFQ2tIu!9V(6|(j+jmNXS7XTe*UubvVOG*@IPNm+}x2#4{Tif zC%(P+DEkF0ndEBKe}mbEjnf9l``APZ=BF$LuO;j4j9Gf=!ivI>p=sBS`V2i;GOpYu zzrVIC#V(&;w7=jm67iLnIL+S1hlZ*uMIsI9He;MKnhtOUIu52$>YOq9b#vQ8Y!LZd zAUT{3?IIqF>)C&t3t)#MS`R*Sd(R8~yhL-A~0;3l##x}YCtiYg}Z!M+&5butkdA(C}u72@YRD`TvdLm>3m6*H8HN+py)ejV* zG-AAt@8VBFraMgztrOn#$Ghjui_$_HCI3FNb1fA4zkGGydNZpkZ zQHq-xiPwJ9oN`dH{L^y7)caSGx44`4-K;t9kLQ|W!8UFz98@o7(Wm2)u`Y4VvN5wj zDz|aQ$d}L_bZDzW7m4C=z@jG~*7*1y{$n1#$!B##6R@P0)InKjFn36T-VMEzt`*D1 z?44rqWLhs9YxTG1mRzr+{-kPc=1;$6H0Vf$0_zG?F7;ACel7eCRkib!2}wR1{<^I` zOkf9P2{)1p-XpNkfp($jI!L2{`I<}KaeBtLsBy{!URp+fQX=6Hof%pA?ynm(QThN5 z>t!dtxodM{uI{Y0UM0DY6^LU`JuKqrzN|2p5TV{TAmm8(V4ZW*kF@x@_Dg=nm8`@^ zs3jT&7dW1t(!<0n*tcuboKKcIou}QOu3c)_#j0Q> z?RH*94syrdHQ?GM)hNms#X3QSK&)bR&n=@@;N0OgAqr!tZI8rK~~T z(nCA4lE!grI*jl%2IOa_5 zb9#9zsI5CbJX_&D@SHlzyO6=6oDnWf80xv)NWl1|gUCgZjcfHf@_6k~ZC^<71nU;)+*y)7p-@Gb+<6LtUr(KKTL_3}jTm zjx2-*;Rva!uxGY2c#9N(`6E<+DL^ndM52y(TGy=MXNAB%JcD`qfm$^aa=*t3Wfv#x;e=$b3hR; z`uJ84PFl_wB4V?dvvU3bak(P0_UJws^&^K;4?lFRinizn*u>%VJk$I?9>Irp6iNmj z*00gB!x}elZilSr!J!tTmeE|vZ&c5>8RhCK`@lU*Dsz&4O*)HcG+cFj8R_y- zf~F#17@WZFnR7&2O1*3s8;2Ma5UT6nA4Ibqbpywm08 z%F?qZj+sVvdN|;7?bY<}Uw1A>S)e)X=(ywgU{azxMu*q5eZRA7zU?@bsnyjNCQNHr z`A)e$0)PIT!~fj9&dx1ax{zBdWQs zWb{;BcwBB^^fRG^mZYy?QPL=b-2$x%9ie`&U%6pi_|pN6+i@#reTQxa4c2*h__w&P zTfe5e&+)7>44GPVcgMrZ{li{g3BRwuflA+=&nqG)lM!DZv<|>+!Hh~j5yDo(P^-)< zs*lyVvtM_cz&?qzhBzzqDy}XldM9C2gJS=7qzRR<=zj^n%u~&IJNR76tcxJ<((r>j zlelhT{BnqrJwv@4ckqc7?_caS?#a~0pAiA9vM)Y#@BFrt4l{MEk_xQVJJmcI-~OGN zUppe-Nm6KAKDH1HmEYy$=K6rRM`vo9U(h5>1q_R{y~QoU(F+vuG6l?kYaa--hStF= zU-iZu!ug}-oGUU5v%7&oAgL6Y)roJ98HOP?H$Lf;{~h*@*nkGvv@{tLiXGzl zWkser%e{SleCiR0Z%3Qd*1ypY%#lzk;3Pa>Z*N``22(;p@=GfU%Qu?!l?qU_k^rD` zwE4I4@*pedSo0+Ls<@-huRuqMK5yJ*afFG?svuO$(#((|tyF7ui9Mpq; zbq&f(nZe11*6q-&quRkS-dW$Z0JVS7Jts5oQ-`~_3E zoM&_rBWUI~Nl%$H&UsAee{Qg76B6qAnbF!LgN0z{(o#XD_Wr?i6UV|@T0QIe(#A@U z*1MsL5b6RVO4pOEzO{`Fs?E+W1Cv@X+ZeKgXTmgI*UD8s80jEimvPLX__u(dbi=bdYO0=A?o0lUl~B8N>y{o_nUHw*k2g;nUZzGCdN1Ky#n{cn zI@b3`5__Tp*M`i0z%cdlhNsuxc<+}+c5RCd-$9;gwF-{AAM6^bn+%sC35*Tfjq43i z1MUfX)~={|Dx+NvhG&iSy*FR%S+VmMq7|Y9(bMSd9$aQ)Xx*hK#G%(b+CRvgNe9-{ z#bU5S2%ipnt5!kVsJQQtZSoMQ(D$;hosw!6(y%M+*IwPA)QqZ~U%}|+A>Y8cH7h-u z%k;w!tN&{=wDRlqC(pDTX`flllAq{wIZ7`t^8;tpLyj)Ld^@ktHyTO+k#=#E6ScMI zigY7(;$b*SaXr8=le;h?BDSJOG!Q)jU1sHS*&^`1F}vbhnuBlUmW+kRsZ5_Z*8Xg_ zL#ze0^2Pq!C@y!M3AZ4(B3DR-BTFRq%2_Aiq%8{trCLi==T(ZI2#~LcIOS@|Nr;jrqZ_|)zjmp9lBGf|wu$1U zKPo%Yb1;Y0^NYN&yJT*u@Z0h<5MQ_#gO=y);6%+2 z%{$K}SmTgOmRJImGMxw9{C2l~C&IHJAZA;~di6hYZyd}Rgy}&vB(bl=^+U45pw!r4 zn@-IdveQJo4)>b!QSCCk0{i}74`iNjd&jwcFcRAe?I0*Voe}PlPbF!f7n(3Inwy=U z9&TPuwf-kP3X*HKYS(VPv~0%fK<>)iC#`dZjITqSR(i}7{F8dvGzuB(A+MTAthJ}) z``4X1(1!!Q)#kA|&!1ld#2VPr_t4hxEI5SzC<2t8cN;4g{duqs7s`xTZ%5hccF?qn zGbDn^<}?Yqf|I^|wI$~4~7!`nDxv_Ws~b_$36Z~?(3E+TylLtiBfX?x^hz`f`9 zcVMW*76E?QeWlkLY0Mw1!1?IH%FfVA6sjf19zl$pol}i45~mcWUjM!Yzi-5G%<1En zHC2)}-{Kr<`QE%a`n$fu@YCC7$~PEn*}0FI^_EjOaGc6L`oTZbAI7w-v}GDdsl@S- zuKB`Mrw2mVL4a>QcW!Z51=;L-o~Qk#o>OWg##iZX>eWTg7`XO&+0qpbS55HJniUse(J8i=Im<5P03?{{8y{hp700UegF0 zQ|O6xRv&yc<4+jT4_wHN5?^R8xh>_!!@J*$KaMua%q93m>ym7OhI^QN#iWLzbY;WS zR}y8&MB`6*67>sV{r{@{d+rYkI(1yz3p{j{OhT=yszMd1(kUo&^kiSJh5Wfa8_~$elKx#Ly z6=h`gM{Z?}&f-_11j9bNA;CpVt-Q3=>I)cj*Q7->Tu(VVu9bJMsy%T`i>!~xOd4}6 z-Wsk#kd9oS$ncEKpdfK})`}ABc7uvWi>x?>H4|fp#{3_jx&egE89QN`$>H1T%-K(X z5GyUr^%_pBU7@O_?Ec%simwphDt9a%Sk*DWNw>p*ckZH8C)uB+E|?r;pO`BJJ_$zq zB6&W72N}}D|I zn$}F3Ho93Y(9|02C4-ktOG^m3To|L#wFC@4t_r5XrFnyqt>jeG=nX(LY&?Jd{IFLZ zz-zoYIRH-YYCe20>7mD3v03J1id8*$6B^c|4_DItl=DevovQ#K>}(pMk5UGkyj~$Q zj!F6JUNpHaM#4a@OwH0$h(8HF_oYW45j-+rixkXY5vOW8?h;&*j-u3b;TrCo_dTTl z^Y5J}$YES7En;9@NPE#@S9PE9ZJpg2*QLbEodLeeGILeySo&-qCKRrrsuojl5&Uth zFZumn@Mv@T}XZol)#o-3^F=M4(`Hy*S*nKhWs*6NlN~7{`680J9?jz<)Ft~H?Rn7B&_Eh( z>7Wjz14S<33vq~#WOy1AcNwSrHI?>OaW~cpDO@N1Gl$o z>^?hkU=>Rzf??o-cD<*qLm%-TxrN}vJf*SN{rrCLf5};bdy{;ky=4TheXJ+Jf?lxi zN8TlcZts$;yOZ~nZOXez#wOKw$;xL}+(lUhl^Va$A}Mk zkgncn&97aRyAgTYKzuZN3Of8A(j{7x< zCNm_v0JdQD^b^&g8@InnkO?n1cC8y3 z;dykX0W%3W+0w8lf?;S>U5>DTsXk>I2}~S>WX0`kgtXP3*^za2m*&*E$p%|j(g!O; zjit+Dh4Z+YC=#qDL2khOKfR$bn6_#Rvcry$A`Ip_=+0H(%&KPKvW_43{`wC(S#F{1X*-KEXth2RrTa?3 zM(rK}k3z%yVV~Lm+^XMyS27wpMOs}6d7|1O!zKf#@;?Gy2-mO+kl`@IwPM>j-MzQ~)Er?q#qA(soQE zrPe5CY$|U`XEMy9)=&9G?Avz8r~wMW9;JAC&D;)|uP%QBF-d(O7ZmR(_k~ z5D4Un8;Oqhuxq1J&ME4dQn>~2lGHB=tbhEZNl`NoQbNZO~nt{K=9HFsSraF zS`hW4RB;;5AN?4#5nQcoMiC#7K&J4l+Md zs4v4x?x2@IYOA~K)o%(mgAB(6xsYCa#fACz)*}CZzNupcsg3z{pRwCI?zWp1j>1l4 zMZ8&i7-(q?Cs1d*h9Z5yqdC|nlw0sGdi>@7MK!|tPt}i^`8_WD^Y1)Qq9TR~+b&+b z*l<+spR23F*3h`a5+{m#GPQ_IxJMqx1#{iy>LbFI7*e3Y+SPCN(EIymT^sM^%S#A# zg7)JER~N0nx!5fVjbZTVGKM=Scy9t_a!y_Vbeg$w)zaWVu78a1CM_XXDod1=%)Aie zA~u=mEC_=a>eardl98|^y)B}(s1SfhG|M zKD(weNLE%_us|0ChX#R~Oo|$yIz)`G<=iT8%#c?kAlWb2gXb@Y9+j&#pUup%*dtW@Nvs$JQ&_lI_EHlgO*aTQcR#W z$m^q~komGTt%@F$PGgx6K`0AY4tC&vIPoheCU3Wm0wr7Us<*KVGpm?*5@CED0O0pD zQESs?6JVzSi|UX$D7QsSnZ>s%;h(4Zuixb@EtB!9xDv1}GMLn5R}O_cku`L^vSFfn z9PqLI-Tf(C*gPm3CKc5T+<9#4<+u>YhG&(BAOb&3+|q*_gA^Rcxs)lv%=KKD@-vZq>fML&~x`G9pRZ1BtO6uf(Tt5eO6t$esu@ zL8KI*+AiZ0`prTjop@C;WNSCM^9%e_SopI~CXotJ4wP_oWisKN`! zi6X6&X+yx+q@};GCMYEe#n7DWgT~&Gq=^Hf-z*yIgzG6OO~|@L zyox7T8m0VgS^%`3CxK(;gDc)jP2C2XWbp+jfx7Q_g6G-i&pay@u^YZsI3@L`jSCys zkHH@$^eri-T>9M+wXS=*5k7rAkzm#l=bV5-H<^ho*pGq=_2s=INwX`2`6qWbUqI*A zlwp&;ZSN}Is}(KIT&k=dQe|uM>&THmH@Jv?<<@SCtiF+VrtX^;&~4Ea`>?YE#%^ym zDb+83FmvHTdrx*L?$ZAL8qF@bl~sSgs2sXx^Rd`DzD2LTe2N`h_SGP}$Tj3{p~pW} zieVJah$qLd_+_@X=fJW1l*Rq_btpFxHK>10*;b+k*P=lgIC##mp+j4%t5=O&B=?s$ z3#fpVAB!;_u|@iu=*pw2!1+Q~Y9(~YOy#VD7rl0Zjm*6wnhJFzI1W_@^DZA9H3q2U zSmaYda0m-Kc4^;*rcrbP1^dWf#_=N{u^t_*eYbg(`|U_ZA9P>DIwAr$d>2tXJlbP}=o?{A*$7K0oT5gD}UUkO_(jHDz2WS4KB zY-hSPP`))`1@Mzu==OIm<6sDm>b|m3EhL%e{@cNkby#nQoy#x!jC-4S`*u@r=85@# zfZh}h_~!OHlSzK0yZkZCBkN~FNeI#BR7brV9ufp)NseBkY$Yb;DfbiyFQbn_VSF3n zV;87wq2?-*AFPhz3vsPGfMN@lqr9DWU5l`@Wh&F7^xuwG){{PL6dtrr8dmd`aQR@EWXhOk2zNX zsC!n3ITIs!k2PA*ZRpS^wpJ~6;1kXTgKNz^mQQfV*H16+p`eMN`;m$RbV}5`}yAzHH;@xQQh-H8t&-kISKWj`!&^!M|+X>V6a^(m4Pwn?taViHQkE!o;&@99i1O zr_wF!pKuWuOQ?kZ4gN$38i9v%7krJc#Y30ooCuklj zf=vjy&L zDpotj$pXnm&vfR%NP8EFVohPRy|dV}%gqW>_#m%#SrvEh#;<$#<+~Q(?rM_XeSd7! zL}Ud=r`Y>C7pKxXBcaHQZ}Z$jKnx{?lzHq;DpekaTD12D_RRlmDfR^vZ_-!}xP?(m z1BQmO?ZO$*Cj-j}FsfjIVp9yvQuZc|#$om0E2m(eI;j>9be;UO%YTE^|LokrXrejM zx`7D)BQ8`{r}t$-qjasKr=)I+E~fbnjrz2vkq zVIX_ORqjO^dIFDFQbmCX?R~$JY6l>9=kDFVQd3CcOGPlt++3eAIE*ZCnpRDNz71Cg zpCkn1T;!G4Y4BlMiU!v$%If)kwJ(?#xC}WlxX*dDmlVm;vAM#763|j9+YhEX_ah1J z)_fk(ZFJ?7k}@!igf4$bhhrdiVj53+_9KLt_$0^18pKzY{6J&1oG|RN<{zqko#1*+ zchKuTogTZb^n~zk3c_*QFxny82;iW<@?5vvg$Hd>r{x2m5~_05`M&hNlarC zm^DjFxNs0Q4CZW56I5Ecw;*k)DcY0UP>rhN-%N^gG=-q+SGbm%o#e~pYqqtM)0W-4 zcL$5!Auo0*kb>HXY2W-`YTmm06tCv1UFAee?^~JnV8C$%eII-iDNe4Ftc%|uDE=Xu zscCha?-$&SaAa#|2l#PHUajW!hzT(6@rz><5)uq|pCR4{-_B3O`vI#LX#s~@qdpW9 zouM%W24c31_ZeznCZL+iwof4RHU8W5@+UTo}(&L33& zZv)A#f;$nhZ{XY3=G*mN^JCKX18+^CYMyknjR5ds}Mi`4f@CA~#T>mQ^34Nv^Q?HEUF_&Z&kRmo_Ofa>h$Vq6N zXBKmqLRs?yCcPW{uR^Taea2$<8beLSFgY>R1v_lhuHCN)>)2cNl(p5GibW{p>4V2> zafiSKGcm!j+V-BM5VnD|%f{Y*1M?hs914L=X_t|?-`dA(!8XHXz${6S^yBUAdjdm< z7L=8NC1`-0XA}uk)zr)MiuVXvUD5=&Q6^YdFW8E#f_U+cJ3%4lw>(@BPsk8Sj0Azc z)mGlW`|Z6>O>2+(|Nb>^{M0KemQv>@A&oG=5QMhG!=U3bQ5CkSLL;i2N$yMNQQD{< z$B~qpnrnU*6*##oa;qhb;uM|{lLqU zcq~k*MpUdrnmSx()s)0N`}R!$(2$87M6E%*hpx!4XfwcoV{XKMip}@5X@9lR^CD}omIWVgC5mw(>#SL`6giwzHmiaNwkqe7v~!6y z=aZu!;X@YmCjhNl=gxIR*)O0`HLOhxX+L`>uGqY`0y8w>a{N__gxHOD zQ-Kf$-TmZE_?Jz(^T59g7;p1%I0Pa z$LhSVVs%ODS$naSyOWx#I$(ZFWW06+X8PAgOj#u@+u-yRdrY?adM;@&$lG@H;kQ8- z($Ipv`|#l=rqa}yq&Z2nr$ECC+}Y@H&GH)B{r@k@Dp$<=4AAN6RRIl7A_jbh*#`1k z@%LB!`gwrY*gz$gy>N4f(3K+2{{v`_I4X(`h;(T!!HvKp)Gd;6|40zM<8ThlPpAWQ zN4X$fXE5<8_p-@dH1RW{e!ET+EZit;Ucy8gc*hmw{miox%W_@hu}Oc$a|9JM9;*DN zLq|OXpcvuSXtkH60Xw2ry9-^h)sZqgpOjBje1(O3oURg_TDNSOAW&GiwU5#3+MqOg zsC&uLl(;K6P9fpiEr=5*eZ)>9;1aY^H|sqVcNBL{5#@68-4{p|NE1aT1@zsEdK`{B zZ-`|N=I^2L1nl~io?e|@Qr1p`D9I2sj)xF;ih6%o8_Uf^5CsD&mO zB|^IHVtm5^yoK)U4G0dNEXWpme5@ZBem-0XZ>L9E9P3f0rUBzS5%~phWffha%fz9W zP%wtN476fU?;!p@TS>ZIAbW(4l9C%O6um!{vkH-_&f&}!%>>`GUsFos1JgsuMcDwuO>+8pm z8gaXevV{A29)rzMKb}OgwY{E=`bK1;GNS_scGB9s$@Iywxu(-k&6^s6YmbPtd003^ z@4Mi)d$&x1q0;_AvO_8~#=hv=CbtCc2tJaAvP3*|q+^rxP8JK>p(EhGDyx?$Z+s#j zaRvIO@uoba%mZGOFw=Whcoz;^itAOuAB11!<`*GqqgSp#v!ZSWQQ0}d%TvK=V+?Rl z>L_XWa|;c+s^iuAt&POgRw=_KPFnMCLG*wA){v+D`ypU@MOK_g5Q`=QbCA%n%$^H# zpJ2!+)j4|@oT=k|2#Y)PSxD;&#(R3lXL6D$LGtH2z`^%SM-bE%C>;E&4L=1CX`4G2 zpG@-ZnGY2*8Lcg9ZW)uzx+_LmH9c}GxyayK=8li92?AfzNPiN4eM=_>lI}e1+u1)###^)CmiF9LY zI(gq*icx{G@gpvd*j7ZbC>J;%djltM7_j7n@qe~AL!$3%!WmkamLS&i^7 zqGBWYn@F6^h*{c=GH-B-O7rFeW5ZBaBE7U_t8)qeN%EOAsFz?-v@%Es3qnN{%vJv4 z00PA=(s|KprDZpg8WAY>9#aNrF#SBzgLT*qVA>yTmVfca3*WpfHGIC;}8tPDK>~QQ_eURE9u+d5w2;YSrpzvT_oNUJNNDVlAax z3>ao4hnZ+NIN&NR3kXgQBVCf2I2`%&AT0=4R?vI`6wzodWW3;c8J+izjzaxi(PS(lb=;ZZTqJJnKoD=FzbWh@)( zlxb*3z>gINm!i5@%FrWE9FzP%fQq0jdYK&`uQ&3o52nF&WiIQQPw%}{TCBorQr?@W z3`pl>m>Q-wjSz3;prI3ycF+95i=K?edzy^42e%V(P4X)7T1G+RJwj!(8Qm}B`zJ`v zxVQISxJMO3wR?@d3ks=G<-bbCc&)}38We0lvA*Dxd_6(0(NS$$Qgr=SN$z_=?f8 zS8XLz1W6K|0YW0xQW>mG+LR#uCf;@GZG8!m%rWmqrrhy9rw)@Odx$Mx!*R}}(Bc|} zViQL6b_d@I>^7` zgEJeY4wwA}qX)I=!f#SsO9ycO@o7dwM07K#p*neD9~n<2=49hDkO+(298?|r%nMKr zsTJU*^W4=&RKBan?RJy^)AJ>_Xx%OpwL|c(zoS-XVX+;cgyPDlCr)MBK}Z={Us3oH ztp=xLUT|z9mZ5;Hy@n3mN3ON+^(n@DlhNrOCs=R6$3S!%Ap7Iy&FiY*nz94J5T_85 zQq}u)M9Bc?xm7?Zp`!@dc-<_l^n5W@SY581pQQUAb~nxSD!H{>-J-vz0A6b1tlNP} zJls+BKy&@;c`8Kn&)QRr34JXn!qN*m@o?5Py5@~F2Qshsys+Lib#Beo^j}~6 zdR?P+NVdHw6l>z_DjA6<=L$tB%o&t^9fY`I;nVB_yGyBxLXIt&T zWaFeVLas^26~Rb^4S20yE?U74AJ4-P-6-sbDE8Sa62gxxqaoTC zF%iS2Z`OtRtt3YW@e@fnUqX}tBG}&r0WR&6X?1< zhmjdVj4tfT&_i$5YMz~)T{GJtZNf48qTUkDu4N`F&Hf3)t3AA>941khF>g1Ws+Wb-ON9Eu$3E$aJ>l6ZjnAph%FUnnJCP!gm~>Ol%&5 z6A_Pzzz`_NVC~U4JQxZK;ZY>iySm=Ml8<7a9*cC#%q_mY4p_sB4Ia0yEj|?&zk_^9F*wxH#LMC*b?RbMFAh*0QyUW;S$;yBl?B zJQpyTbeodEA#0C?nVDQ^2w~Rm-aR8M8}VC&4{*LeNh$|rdnK9ra}o>m(9}IKPSx}c zD8&8Z+v*zrsx`2|e#nnCD1ie0;7jQSeHca&a48;=gMNQ>Lc(4&}D5D zKzv|iN;otnHTbrlf8!S41_&k+xJQqE^ybzPW_9}E(VGmn^&Yn3G?P)rf1z$tJdXDo z!MiRLFAK0mF5ETb7U$7Ua8UniOoTeqt#tr@i0ou0lu@o|GNgRMGoSOxF;TG(VWDw}i#&EAK2oS}UE=hZ? z`hAq9NN9*$*QlC{haE@!gvEi&Yb7`%v#|BSkHl1sO^uE3YVHUGT0;oKHVDGNE0jl{ zL9dDqoEzWEoxA+h%yZ9XS1_#TgxFqr1ROZRWIav2DZTVKXRNmWk=GQ; zd&z_e`5WG^s>{yc7~PaED|lH2Ex3(Ancbf5sfXxlcx1&3krPlYHB%e1gL1=YinpaV zl!Hisx(#O$pD1EM4=?1}w z7vM2~tS4!>NbL4I@yGukud%`1rXPbZ|JbzYT4Le`9v4Wb<1~AyT5(MhYPGuJm(PK>Yc}8i z4Vun;!dfNrV&OeVHQvKEL=d{kJ&kW;HsXTPj~mzkheAnwSzKw}CF#l^`V7>fW4*k( zwfRcW*UR|grF7`hUbkWFqU^Y_6}d z$ukk~Ft-84ovFr>n)}iH1@+k`v6Q4Tr!PDO2t%5}TwZUK`~K4>dp2z1?>^VOd1f#| zgEI>2#l9^pximN)b}y`=1Q=Goe}8K2<6JvED;9GjN}p~cjnxSp=t-}ds~hf>IdFUT zqBeh=Af_#BR`GohC;ofYXI+fk@8u7_fKW*RVQGp=TQ@tVPZshD8FxVDKl^mvLSstrBmSGk|e^3vTf8UeIBV@ud z2}JRiQPRTT=P-%aW)!DMT?h|5$Us9joS()76C!O3d~wxpZ_ z8c5Zf!_oFH8e1OJ#+xUUQ|(h_XiN%}4<%PetRAU*0`o3kx&$gV_sTOeObR`&CectD z?$Q%`0&)y#6{mE2Oobo?GqpI<0fn%Nb5_3W0bguP2E>jR(H^y>8s)TH?F$#4jTjEG z@(qW|+w=hKso*G3B7}0ODWJ6P<_-5DP(x|Q;0m-fEkK)3L%pV4(Yal_20L=!?b{fk za}oA~3xxnuf`B_H?;&GEfJjAQ#73X=$(nqnEzY#yM$_nxKpAzCybi1-AArW-OWL!f zRV!CcW26|@i|W7yZE4xd=N|Q%_bK1EkK#24V|ps}8W=1DEKlDacyEC3GX zPXv%&Pvco_qGJz~u%bGk`9TECIcW(Aln|s>yHI=zc}}|Th$kRhkIGt%XjqJGJYdpB zFpj*&FIG_7{@M8)Q_xt39kOY1Xe!^keNcqqUJzOjm5(es~7rRH~OaWtBSQ0GSwN@RL80xicoeYtKF1ku9Ki_b1O zb;^j3psA&NrcFu<@1V}B%ZhWEf_`UeuZpr(BwlfgE5vjW@uf9)VVO2L;zSCnA;e)k zAMOqu_txtT01O!3h@IK{G2-^ywX6O}lqK6Mi9{m#?063J1Rf|hEG3@YYa-hVE#7f< zvP^G-d*U7>_{g1ZTmH$oz$M5V%du(3uEGdg%ahN;$gvq-uqL$6q& zj%67ctDcc-XSwNA=zc25*!ZB*!z%ddU?%7$4{W&zGFduWc&=rJXS@4_G12bEr8j11*dtVo)a*Bkz!bB^R{;NC6K!dh)-mpkwfhV&Npz6!%Vb)0T?R$AyQ6e8--Hhx& zX5-?$CwSP?9X$JzJEy@_1nA*_6Y-cgbO%`|N}9vm3@TTp^#u!#vT;`Xp}#xPP}3D6 z;fLDI{Ld~bvjtJ5q-UVI4Wehskx<{%k-2~h4*y%#?icCn0+w1zJ`8*l5gDmpa4Rvf zz+DSczF`g*QO}p`zhemerL?7OWDG-BA49W-zTCzc+}*NEagP7Sj( z(9+hZaypHE*p8#?mg=^A`Jh;aSK07iWz9Tyg@TqY%!={DY^oqR2w@9#UQb7kyLgIn zcT291D$}L2#i!!MXoLKm;-1~8RiB)=#bJ~_AQ{j=-9UcT(wjFTGjO;|$HIeAXSyvC zr+)B05uRhYw!qi~Z+32f_l_Is9!0r$H$tb;e0qR@?c`HYly$~ZhmEh`qro!=Rz7$rzRh}moUYls_a=fO0Pf#o|BAz`1W{m$t2@&i z4EK<)$2(=P1F}B`fB5)u;GFC;h-Y61cbv1E80G%>ZCO}K_Ct{IG&|f~b~&wt{;%=T_#MW}|LSL}dfloIFuAy%$BEir zMicda?XMPms!g0tMg`j#Tg1BbkWJ4uQOR}|fdMC6e71AF{@g+}39cr21iSYIj3bv6 z#uPE*D*)niS^w3fjXht&t;vK(j)Jwl{TSqbjhi;Tz4W>bP&jl|E+>{Y$9ZTssI^7< zMhw-mic^y*1oSi2O<;5CB7A*Ovv*T@xMB=Ww4{i@GN2w8wUiXpeg34BB8~U;Jpma` z%&+GS%0?-Yh$?}U@+b_SkkiooLG>fHZQW|i+n3IABF#R-koBO-aJr(sVk{BIKQP5H zD}y29cX@hJL~_BP3V}s%f(R8JUQ%v!d>Hw*_6E$Gg7vv}txn}1Iw0#I9XK*ffUqyd z(d-+RA(0{hU&XFKVIoBl*bi)&Z;^>@f=ntxJU*#%sB*5BJ?q9$dHKI>+T1|H{h2

    !-*T!kxcylb*kYz+TxUF&$f_ZU-F3*3bJ)S#~n@&5)8B8 z;E3fTXU{(Bb`}%Wx>8O^w~6dbfHa7L{cdNoHoSlf^grLZz!KSVi`^Q2M)P}VB`$W2 zUu0?($>}i-vug}+RkuNdF^H)Z-W(IDj<~KKVn}J2tIvoM zXamI@xQw*Gd~gX`3}J2La$g?i(C2Yi(IALt7Bde>6~u=lIyt!^XBM6L zFWqx7<%yzbwX*sHB+!_BES=XEAQNc}$wb35T*E7*FMtuH8pwG?PPugNogc&z<-=+~f}1+bcOTrYYh^O3D^NH97D?&zDB`iDf;yjR!zFp|0xVq}9@V@RLe2X3W5Zwwj_@^X4=q9+gXGv*K6^OvWkzgc|4!{Ks21^QJm@OO=E8$l}*C zkSdvGu*D|oT$Nv7!mo#Rs-ZQ&Ezr}sCpxq?JxvF3Gr52Gzj#pVWJk1_3d4LY-aBLM07gCMtUdVJ?U;uft}^qb zTuf&_90Y>?rR?Xg zrEsBfkGuM)#+bs3OxE@d`bcCjNRLg&x5JnJJcNq!`qZC@PMc2ISD#y?y_F zJ0Ol^!JejlK^H^{faY=s?@g?{1-SdLjwuL|P9}V~rna`_+r03?Z{J4qP=tsEc6$rd z`TWMpF6fw7(AhH>-VoTdr|bc7+y_L^r+5|WY`=rJ?ui<#hC-xnd{_;YJ06S&0PI}i zWHY#;ln*)~e7f`|$a}uL0Zw&v&22Nf(&=cC2bJ${U3v^^Ke|Rk^;bQ-^hL;PjwLx= zvz~=NcwIEXi5P|Q<88Fyga6}KY0bX>eCh5H1DTs!lomE9BqT(d7(l7{Ksl_Gua7fZ zefaMdXWPnaMYkXiQE4g78%O4Do`{?eR%$gLjHMt=Q z7nmAiv1oQ=FRY+BX0SLuJ;xZqCjN`Of(`_AcU&ZCdR#))v> z?F#Tz8|kr0@q_G0xDUIoxKMa4x6RJ zoy?gQkztDhXPF2B;)40}fzaWaBmnYgE`6y*i~1JBB5}s^NxXSa*iE~YOg0o^Xyb5~+{Bf>xi%W_q@7MjL1LRTL=F9|HY#V5J=?lapd=~)A!Nbpx+@ln$ zfpdY&sZ*UBYRE&h(=|L>RKJ#@@|Nq#^2kcBGo5qWZ~?@sn57(;XW047K_^Dekatbx zYZq1ZnDTr(Az4NkfLh{s97WuzF~y3UF>lr{n1y;U!qHaolT8_HN8Vx#(&7Y`3+^1f$XI%R9Fi{iK5-CnZX zZXoM?khfJ+fM9oDcY^l+;)*zt{-CTBG)kc$*b5TG3zw}zBu7zNA}yJJNnb#*dhG@` zlSvkZh;>CsDY6X?nz#}V#3_t8WE`a2P5I8ylg{lGpA&yH&nT>n?ocnWmoZL40%So* zjb3H~EQx{iE@Y%JX=&}bY!=ZxoIKx|b0Nmg=AW7WzA{ z9vh=Rxer5cyiKuiFb(azq5j=x&txSXt?}krJ#(sYV@q9=2Oy2mxcXWse-z%Yoj^_L z2i=<YZH?rDHjlX0&e1&+>TtC70q&1UdrxWC`6zV3U(tJI@MT>AZY)gv4#+VRqE~|w%Z#;$B zPDJ76oZ#llc26HYqCP*20D_~8;o2_3ez$I)Z7W~dRg{OC&IY=!(tN9G)rF&e&JY`Y ztZ`5iIocx7$!B_pbpkcqU_TUp^`Yy zV`Z+uAG)+d%ig9ky+NltOOwxB8uaz(tKj!7+LuLE8huusinB* zsx}{z9`Gh~3qT^(bYE}?u%^N{LVz`XICcWEImS^_9zR}CRUlnHc;v`-jz*!bl{{4W zwLbVCRsX|;55PMo|I&?PAUewFEoT$ak~^HB=t7_oHHs^_!K4-dh*4t0dQ#T|x$UKn z%cFVg_>n|&b+Y}t_vo81a+?tql}7|c9-hXFX}J(OE}ZWz)uinsgHA)HEf&+L-0 z+iErrZz)V@!t;EIs(J#yFYoXFaf~0R_MZmm;n*dJy(Gs7#i8BfhVr;xeo@EgFP%S3 z?d*|ZO__88rP)*Gz?+<$Eiz9e5+bg!2qaqg?Gs9hGDe1`tJXnJDa3f)*%5F5a z3#g85AFDS}qBO3FvH-^WP^}(ST^+_NpbRzWIcx>;mGMOxb(4*KDn?3=mizS_QER+f z6EqV+ubq&th$Ti9sdUmysa@CUHwq-w?Ac@B6M?EyGjEYXp{cLE@8}68IzWaqY4JzA zLhyBQ#oG~5icv<3guu>)r>48|e&o_!Ig94{L_pRc1OoQgxE>5w4&CGPa_ZICRrM9H zlGWhvc8f$$A@_!U&X;;ZI9l3+j(f-1?U7gTKYr={=`jDq-~TSJ%QIwgXrN}6te@Yg zOZh8hqnxJ2Kw#U#cOUOf=7pH)yYNI80!M}}kodwX`CPd0 zAg1|a3?U`nQvmnAIt9*P1*8hP_=enw44bQMzZo=a?B2-f!f~^skw+ybMrcBN!1FqW z{xotuAMj;q_YXR&x#8m`O^TxulF7@rNO5SMq8R0sc@-HcMXVuqzjg+E3Ein2!O9oN z$Al~pRP^TR?o~7w31oC-#ZUA3^EYwwWj>!$Hz)enZTi>WODFy#D7m+a7+a}?7#&%0 zi;Q-CSAWeXJIx44XTrWO^TjQKTvOA~t|aE4VdM`^@bbLoKjyUEG3&{_^V?<`2fMCC zH(u5LsCDVt^P}(c1_+DsR;bGaa1`9h8z_0S%UM}j^C+|hDhBX%r?~W`lhRp1nC$Q{ zbdd!`9>eQtW7eMwez08YC-GSv$+~}SV;J~U z-Uf0U$`xj$ED3t5juquaQ)EFzZX_^I_Mnpheb!$YMjlELEo$M)m*2ivUp+!uCeydz z$KpK>Asl#*G5DmcF(`rq@KVN$<3Z{` z5Ox5{?Er2Wd3kq81(<0*$$N~mw@&IDeyE~j3FtsY-!D_DSV^)~L2z#3$jJ`_>2GED znfh6N80>3c-5(U+ynFAS1;99};LfSv3NtoLA~Ca5VC%<}Uk@v6*jW9J|9Nsez6{64 zEn39WqWxg^35FmCH-(8jh{>-czWeD`!S85E@wWPc7N&c=&0u`Gp{?F9_Zov;g>vV# z!=#^8+}-NCeMz%%P5C~t8+!FPb^(0)#mlsrAW-rU#6OrrbN#iK5#&c&=>u6^J=pn^3AA3N5FIqK#)XgLGg&dMr>*+^Lm@PS}5KoB1IcFd9tiN z5Z5Q_)E=+w4xr;jrW8enXYeLD^$YC!ez>$6Sv?r97A^aaw&N9Rj%U z)@o?N`ayW(4yer3`_@P6(20*4J2tbRUgZ7+ z#DY!5tqE?h9&aCv;(qFv4fgh8cuM4v=%j!t^M>0Xi|vE~S0sPQNsU7YmpWeX7+O36NR=0OVA%#R;Uz1P^XH-ghFFptKs712Lk!fTb00Is%KPL0L#9K=)FJq_& zX#u)9f(!e)?wZRMFp`nDP;SZEs=!53-WOxj)E5Vn{E&)0;O2Z%SISXHFa*iCMVL#Gslwx*(FKObkzfnQt&> zf8p^4CO_HE(3QhtiOs99Ay-X~+f)+5GTyyA%jyal&qGVs+w_L_70BaD`0m0Zo|2^& zxOj6xL+BVSb>*3`bb!cMgot#3mDTse!E$Fo%49Pk8igalFXQ6kE-g>jaj6>(1y?dh>P4&D+Oq6Y3)U2M@cr}aoURW-PFFc|ZZKo;XeGIxk59fdT z+F5{_{ZRERNebmhLsBD#(x@jMtSM*I2WVytSyloLO>@XdXEjO|v2w?BXdp?$3Kt`p z%#&U|^Jgb*Z7*C?9WJgh2z)9`bC)i@I-4(C7QlkYA>uWU?~Kk#39hAOK{FDvQHev+ zp;f!?8~U6YIv*v{-Ht!DKxi?_c&{ppiN~Q2z9Pe@?qVF!pY&!lpXKx=jU%lR~_c z`9YC*c(dd}s1i)o5va&ICP~&zvq<(LQA>#gPjR7dzLZ_;8(`#h6zDf260H%REudl* zpEN^1{kzIPobg_XPD$B=On32>0gE5iv}&6LR#o==;rwhZFey{Q2{)19C0lA3*#ye3DB9wC^ zLP@rOzc9+3w|Md44>skHsVEf>e`z$yuKl4f&Ks&y*(h&&+!>+`9uXIU#rGBf#A6b@ z6F@jSw497<1*@&VSIVSh(jzRO(dgjF9Zd;h+s+J@K?b$~Ob#3{ig@2sx5}%G;zK|+ zqVe7nC&bT{n7lsN>D2=&KXQTWaib)Pe7acA{);O?CdB-9ZI3+#VKT->(~Ow&!WDFb z?x>z+U(1V&ymt47p1)J_uTxOi;Q;%RQ9Ws$_)@k!lKu?c z2N+NRJ-aZchnrmuK&8_NtNE8A(S#%I<<_Xu9rN%5G$kwZQaUN!ZC-Uili_%Fq59UZ zI&OuN3BkH$AODoUx^MaK0hE7AI~=5W8xf=5eP9p-wb{#w&tl`lPhgMCx5 zZ#KNLP(83`Vn3!^S-$FxeXAUhCWcmI6ia8r_nm?fQNA*qIhx$95Oz}}LC>EbqAcTM zwxijjx?8=mhHdikA!ApszA|Qy1qn|9T9oumFR)j?eugE^4B%QKEM9-2Xb2z#!7jiI4~SVm1)(a6{EViI+S!_zl$PQm9c z|IkE0u>!mVd1EX5u*Mi*GOEI9VmpU6r2p%_2z!av?=r8$|-ad~yyYLKLmA-=9z+Z{p~ z4B=n%SsNf|6vdjp-@cfv{S*Y$!w9uqIRau2iKK*8dl#E^JxM5+dRP9Gy1E+=r7s>E z9x7h3fpb_Q%$s1w0r8bK-JRDdcV|!TE6sV*+P#7Q_+fqryh5`tsKWLfIdZQ2d~on? zmT^(ah=#viyHNF6S?Q!P8ERE&(Q}VYVpW7p+uL$vgUd)-o3v~>7Vwnps!&ZR2?gNj zICN+`G}Qn+7p^Rj9Wf<(0leReZQD{_j)F;&*w$btXaFBj@TBY`3lzj zO-Zh}>g}{rWl$&3gl?Y&^h#{eH?gB!vl_ zf35d58FM?Z^jOffpzPl6l&)ODNrW3O@1*kD);a4A19xApKa=j43WDt_(n@-m^RVKG zJCqEIuTYc9!XAcuWly;rxwP=v3(94E46`O+M_jR)*McExVSw%+su65l0g9!LNXAQF zJ@;MbbaKMR+~FxDj_GuwS#P2@Bh~Raf8K++Vz6C6M5_-Q*rb6oZwk>vau>`>FH~IISGbEOVFFu3K+k|9^D8vCgx&`PwJ6elCCf>{&eXA4WUv{3tGE z{S}YyK2XidRjYh~v4hvFyq|CmFhD#IfA4J)A494lrTX=~GP0&oM@Yv>8#kXPh}K~$ zUj!RL%nXzgOTihJZRic%lpaW^`aQGtYx^?hU>!M(7Ca$RJHw5DUKuQU=Sn_?Vt478E=`(Cv~j zNkaZfQ$ZRBwQ(JD+@-CJSM$$DPOkDiIO&k)Mv6ZfpH;7UqvMB9YYx5x7s6%Ri^3qQ zl|h;9u--ZiCttgMUETuAVMWHl4-ZE$wG?$%_k=Gb?aufG;~|N=`bH$%luWstLDdhY z)on))Z`Rwim6!f#G#%Gg-8x3{r3~HzT!*3vwZE*2XT?-o0<3oFCl)C}LD~K+T|@q4 zg}nugGuL_X*IP)>KuF(kMQF2V5ZcKIO#da%y}wdo9}00`ZWtJ0@shITrE^1}uw+Oo z3W$B~pa+ob9HP{^?|QK|6?V#p`nu#uRpzfanzd;5f6Gw!N=;rbN0}`OuQy!M@zeJ@ zHT|q%$ox?!5R1lAkqGQ1sOp0UyO^NRWJ?%PKaRk3dR(y3aP$w8K(l4Ek6{ZSg%sJN z!I*V$aB#DC&5;uM zFNQI$IW>WyTA>li6N{<%wkItr`i~!WjX+b_xWg;k?^ojkhu80Z;-C4({W@CM?b0DT zpYijPZVC6G!)!AGPZMEo)MKpv2UFwQZ#leuCWl;nj!kc_-o{mtqL9W*JUbbSq5T6!FM1UpT%cKM#tTJah{8DJ*s%%gO4nlwBBD(s^#0VJNJqTr zQ_;jE&~9P89P{#}$-77dAu_PQzM4@mmM$O|;+F4YG+Juf|~q@ZFb_IUF(28U>}K*0b}kI9%ZPdhQY4mkkd+0Tt2KWChW>QedY|p zkCEt7NvFM5qu#DmK2}n3IU()^)m40{HKA4TY~YDzedd~;btcre9=iU@qf`XZ1TK=&I1&JW)4}6Y z!deidKxBDYW5r2>zOgBukD*QjnBN$0Yuk?#HyvWG0HBM&m5v>s-9fqB{F_d4pC~LYKEu<4fES+~859z{k6eH~ ze`%_9i}vjwkO^C}F$)kmq;XY0-THSU@#|(~=v@GXawvUw#;|VT$xBRlNe#;J4`5A) zf+d&3{S1W&0{z_%-_%T_A%~Zcy_*hXJ_EciU}F48^BA%rC2N@tP;$5@W+7OBCM1lt zH?flk1_MdKMY&bv(Oavm6&sM+5&l8hN4|}5t0uTPTZk-y9DqR6j?h#KH%lRu{>}k? z+(^c1PQM}j#5#+c7kOrV=DXJ#4mX?9MofY= zMw{rCq-=MWIzrsaQ6-sr7ssc77Nd!dUx@nUx4k4jF;!fE`^YSbUmB_J9-{p8d3dpw%<5R8Svq0Lf|9;akhdEc;o~d ztRRGA?OuydcGr+BcgHsdpH09+1Kt1n}a1l4w8j+0e;- z=-JvTz>nlsj02=lAeN_48H5TnhT{fk4T8)P#q&pnbnWIe^=aIOwRkG ze-9~?dZI(8l4q0tTUZFZ`yK=Xy`9A^yI3|B^Lm@G(Tg>Trw#0dN#vLQuw@63*X<+r z5teBR4Fhxp3ZpDl?^qnC>VNt)iNxpiz)rU52Lq>{1^0}&(I?pW@)oF$B`qJR6b_aJ z)|lF#u8LJDqPO3-ckgf@sJRG3n_i zdHRo7u&J(NiT*)!OdMk({I=b@b9vyR*TszGAlRc=GZOx)M?r0YXT&p6s&rRuu}LYN zX|F*Z7(rs_$b!57Wy8-26c(;Dyi|xYUviCHx$QKj%)iuzX!-i>o4^b4H#lgr@&Q(Z zUQD^|zA~6V(JP}d;hjBcwH6f_eB9<+w>E4HP6a)+yC&G|=j?-KO`0`3ePs?fHsW89 zQJ`Ixjr4IUFC0s0cHTAX4^U&;T3p}mGpW_hETX)}!A$xl!Ce_laz)6KYx82##EB%j zhl}Xb{E0e@IC@e^bT^+_UscPSdP>z1P;mlDPL^Q|8U18YpK1Q}sJvsCqIZGlI)RZ`^fMfE_EK7f$owJW zz#hXQj|rP8TPe^ZT8C{NYWLX%A;>CVIA&aBd5T7x!;Lx|md(3p=M-3^2edtS#^1mC zqP9E2Tb(EcQ|$7_+1%S0xg;$x%zIPuq$i|!yzR3!+UX;kViGyb(!Ue-^vj^J6`qQ_ zEpZ#V%vTh2*d+uIDPbxkfz^6Y+_w5E? z5zOxvMygeHvrF?wLu>(q-|PR8Zw=AdJ>gzSa~gLXg}{JP7bV}hqnJm|T(o#Ga}0Od zjW6W)T<6YsKa{1sKXDag%k zj_`tT2#_<~3)+#bd??F7HqDfhAAI@ZwC7t1-jzWs9nKk^r9Zq9zfgEQnctQM0d#%X zyGY0cKeK07LP{h1K-uxU{pmy*Crga)0*d3{s-`yc-w{CrtBu(=dXyI|PJvWxvad{8 zJX?<(v9d|N*-=kJLx1~MWjH;!x?GdnFj7i)?AMYPXbgxB zCedSs!Q-t`70`ucynVa3S2?A&zgQb0zo*!+Jw65~YuK*T*J1kn0}us+M8_dZtm_pO z7MfFzGumEo-n7W`v2AHtS&bAnl6yoDDrA=`m3#N4yg~$JMoK62S-7*x39$rlz%+JT z@DfLp($f;ZM3#RpcwHLtdO08lU#{VhA-8mD+@Mkd&8-HUnYxJ0Zx8y``)CQKFrS`G zpmNYeoieLhbt2zuBca^M%npJF^^P+?GcVbqx9K=WJE4R88F$qI@aBhPqoY@*wrAx5 zVp%`NzGN5AvorV}PXx6kxKEBKU1(t;X43Ge+SP3@Z>rn0NfV3ACK+8qI5qUT+ji~B zq3{$*F1<1)u%6yi6rc$legrSEU=xI3uFtA^?LY=b)9Y|!W#0%d0fX$f^GTBwTm8tl?Yyk5c`e9Zmf`b?F#;BrzVwS60G#A6D z#2Q*WLcf~R`Lu^X;Z?5@vE+d=a#=m_vs$%$gJw}5h#h88p{%`~QWOK=*! zy;(H&KiqhZ5vQ!WjJ@I~`G~h$U2hS>r=AJlX(;}L62^3IU+(69vaf{FNvv15?btEx zQ=gmo5(5kSI#*V_*k#G%lA$90yfl)b?aPkoIvyd2o;q_zB7sn_E8amuRZH&Rz+cvn z7}*1E89^SUMAA=Zvbp-Ak3}*ZOuGMcuu*VaeEb$_Sc$^uiXYH#Q7p`C@4ip{`p?qQ z%$w0c5F+<1J+yakV}>Ub5HAYZ2;@;G!{Xb9bdftlV3J8YRV$QQd#wHlTN=6lUh(ow za$ksBL(4g_1ny;ABfq{uJbKTb#)itpn@CX1_nmuqV9m-(5Jh8*xZ*DoJtMB3Iquv| z@U*9zq)^3_DalLBAAs7|a?&r|`ibuO#rJIS3KPd#r0LpQzU4g}89IJK)pvF;9*ssq z+*(-5J|kkYZKVwyf#=acz;*3qSyexu-BA>9m#$qi8nNQ0v+6&@`VVj6c=xJ>0cPxF*f2?a)aVsW?EFmm~`H9EO zCXJ?bqh&8Hy$an~Jq5_vA+iG4WDkBo5cg zR|3XFQt&UJf1tuGGKH<0NC~!;l}61qzC~4B`CAJx{mxZ0%3w~PL_-49t!Y2+{#BAD(*g4wiX%dKp;CEO=nJ8#*p`0ApEn|KM+h`wz{ z=Fm!=a@8P79>D@3CBkuofMpbyhY)7dqsw?&WnyX3*RQ9!x>S6!Nq{>el3}L1WMAy; zN**-IUeC;nJ!!5MP*lNWW#s4IhZzt!#mnFW?F^##2ZR_JVihX$xWE3I(>fiFfx#p2 z9Xjd5vT01(N}9Se5W5I#YrAlJSr@vAj*6dfeQFVcLnG7#UTQc{#qcV}Z?OymWbbc`q)XS<>zQ2m%mKw&91Yn1p%pQu2se zaV-D~7$z>zk)?+~D3Hj!c)7J+>&|W)&Tb*{gg(>!uqj^b3CF*kYb#2K;%pQlRyH;) zhxpB!x)&RQL+R#uzb1e;<}D!Nq=X5Hkq}fkS;yhW9uDT4PoH{s`n%UJY>?e-JygpG z?hAzm=tDD{YM#v8l9k5pAG`Lg)?mZrHx!2l7h+`hAC)_{Z?9g_vS-n$ple|xY=4%Q zKfk=NAt`3fwK`KGr;tPs^P&JBp4chuo#r}EpYGYD)iE)FnomO`3SC`%7 z;Ee(G5hx}$RxMRhH8S8-?JYP&i8z1>mwPCL zWT6ajCKS*xE;(;iL9V)6oI8P*6r3X)=>tr>0c9usy7!Xn#^hIa#ny#QM}EK}#_JFJoq6ZiL+pc}jl5>i8<#ZZ46b+&{;?`x` z9OL}@GJ0Cro-$%|>G%93&_&h|ZeC(K!l5SmMF9(xwI*}ug$2R1GmbiB(3m57&Q8}N z2yih^pL*T6F_5-QJ58_0^nfUG2-s^UOc8*J_}4|v5B#`vyk-9D(EZ@J)-{iUnDtGl zQya?|FQf+~uD$sK`$WzSJL%2Rk*^|Y*HvIT0>@i@mfn00IwBT zz7zv5t~>49LWB_dw`k=+JAE>+HamX^OXUslg<_YbMC!Csw+O%QrA zFadyLA?gKMnz@;+64KI6NTZ4nKZ1>UmP6Wbaly$S&N>m4=|ix8(K@aTPV!=jcQtu4 zLIfoh6&zRkC1+LyMdi!e9->y9{xSl8F|f-n1P(vD!iPyMOPj0QwJNoy&F)}pungq~RR|Kw z^1vjB;&?z$eV2&A}J!2(_FX_JMV0-(%R5P7*J7F z)7qp5-Jd|)N)ww9)YSV!5a ziC=`c&!fih4BQNcB!zLOm8P*IYrT2P1YCH1dx7gW#E@A9+AbO#8UemY+^ zggMvk&AN|ZkG8DA00#C2IHYA`O8qt^qohf+#))N%)~_#}eRiX-Zx`AG!?et~>LfL%yC9wLNDJ}Jq~Utg>&uSY>Kt1$`TLjKDz;L`Q>qEgkM9)i6@+?UP0f_N znW#Vkjd5Pd-~-Y!8d64^1_yRG4mtg$(T>-Y;o~xwqe~%L-GBxm*;Uw~VvP@C|-6!?NDv~;ARSC88 zDYJ-WtA;jMw{qoMP)k~ulY|wa{D;x zoh*l#)#BBFDaQtGG&yh7zVlQA+Ob@!D3LaE-WJ!?>xy~Ak|jZ5$@G?@HszLS?^^Tt z@#FCmCfvrSaM+7w9dsSWk@YJJO(f320*DT%%`VA-jrZ>{{RMAV-9+6L=&;T4v&8(vjOJFL)s;{6%`8N0OcBrmCp3#|&) zb%)YH`vS_`7Qv{BPNca2yCDyMU1EgM)3_;2BUc9B(*tbf{797mKC_)v&&srt2&KPq zfV6d#+(>B`n49~!eg6uGLneiNY;#&oES?Xf(FLxOEHz^%601! zKrw--G&YVf1|EV~I|~#{m_yn&3h=uRBL^bx=H~=9$Z5Md4AGy~f$kh+&XX?1lyrUt zdvpuUslu9|Bw(eAJ0S$c$?@F&vVfXZl@qvcF1gXERNdJ;h1Gc}!<8O1s9U!qyo5CS zs5uoE=7uMtV-}fg6RYMZ_NnsEnq1YO{u$+GxEHx81ikpX(@^-3>TnsUi>L~wq7`*O zq{(HlrXmnVrK~0++$#?W0*~joP8qmM z>3)B3Zew8JhansOA_BgsZfVB6-6*9~&W}@V%*}_>Ev(Y9>b)p@?$rlq$WG?|U|J-x zBs%a;!Ql>Dq01qtrclH&kxSE4#05*8_xtu6MBY;mni$WNdd z+n8JI=0tBIOIe9&ba)vt*Frvqhb+f{4h+6ZU)EAXZUx_^!kDA-2NQs^H;{H@T%8Y@m_8`f?qlap zxg&pEDLT`^!ax?jY|J&kN~NBFV*{G8b-L*kIiht1QyGT7?a?wiArN_s+oG?~ZB$&4 z-W3T{ojO~cb<~Qfp~?ZO@HRP20pRynT-@l0rY-r6{16TXe1u6n2XIwt0u>i-u(wfQ z)h_5AEoYX-CnV$!ZU@;>xXx(Se3~ZYCWd)B7Ed+6oL*gI$m)&r@DO8cOMtQJOO*>! zQgSox!y2aFBMY^Vp~VyKA$aER>f{x?{wGauE#+8!k{I43NCE|BkO^*crf0j73OT>N zhG*%37oT{XsN8wi?%iEGc631}mG!b1utm@?jsWAss?#-|+N1^ne2COihF`v9jYm&& z%*G740?gEm#oMHi% z(jAKG1EGq>Nm_m2c&M5WZG&s2rly|Z$|k0h63FX~G5JI9<5et1`ly4>8ejH*bREtc z9keY-JRPG9JBT)J=+NWf6Ftg~&{WZuihvLwLg(_gCxS(p%^xOk9IQXC>V<@9TPAw? zz&xRLwFOwo)_HjQw#=t=YuGn&aAj}FWk0910BY7h(DQKq%}9#;sY36!8xjxo1d$%g z9%!D*;;+opTgA94N$LzIpI`99tJar?Pp?tQ=-K$rwc&faOYg1NHRv?uQIb`NbYO)f1 zqQugPzHr7%7JUR5`YDree29RCVU+^_xnO^1}e zb}vimVBWnB{gVpmw4lQ}RrjyZ$j{HOuf?4`ZMR;n|G)oi`NrJp z%S>-ZFZ`)j<44EMw$+gOh$9a8bAgsxF=tg~1w_8@>3RCf(L;wc8T-UZXK&{EU(ahA zo1fsjm%P5Q7XSdfj>h`!kg_o3f5>3y)9zFFXleX3>_P@eItg{&x zj#u|b$BqgJHjmG&jGeCV=;%d2_4p7HVo_@c@-*vX!82IRjl>)0;<54$tIrClzQ(M9 zWy!3=6hY^vcLyWATz`mD`3=M5mZ|cXKRjI9clxw|)Wmnew-q2A*@Q&>NN7sMXM#YnhFUSj7$XG7pty}9W;d&fjmy0Rin_Hf zd1gA7E9d#Lg$uXhJG|>QEa=&leT?TOiQE3n?{FGvZJc)(YE&T>$dmB(oE34#e8GbK znZ;W2rG6CbU!GeP@qhj8N7T|6A#PN5`;Q$fAM^Mjd>YS*%sOFeTpOOM@wNQEPy{^r z$B;oDjSP`#(9|)}yC){w_X6X;iEejJy+KDr^Oi~IGu-L$>_c{bFC87}p#KEL_Shpu z8Z6|g*E;G|-!=9XwQ`Lp^5o??QF8(eIw=H8uZMsB zNS}1Fa;?EKbX_4o^K)~HO&$*hgaA^f^+wbyP&`0b8kdPdt!aH$v9SYO!ZbA zKDhMx#f^y7j}U$SL}z5Wc^NxAu{|0JP@Tnw&8eHTM6d(TgT|{zio^Z;_qE$!DLw_E zz7v8qd$7&~J~XwaSS?7}AQR=hlwFeG1x+AApnn4|^$G7unM%X`n8t_<2F60`nlrFc z#yn*t<7NVbS#57?W0!xA8eL>thM7EhF?|97q^GQL!fgMy7Yk3aLFOJo&1*%*K|hpG z=g%Ks>Uj34wG1Nf`2a!WP^kf8!`J9a4bKg{OsgnSI3gjbbg6b9N-g*S>aHIQ{H}U^ z{jyV6E?uoV-{;IViY)Hs>c}}!FvU2#|39XNJ5`MSHL@6{4&peUb_P@SG20~sy6+wV zjX^{*q*kgy7u_1|*00N1bwfLx79lBpiml^~DFDWOsi1gIFGkoV=j&`WIiK^mH&Lz6 z8Q{RzhFem-N!>Qg5x;(5j3=ruGILM|abz_mKJ?eYgsO~vBj)vKdCw~?7|TM^bR z=!|&ubpW1U%o06X@u+19s>^M|_WF_O#l_}n_M{0D79jPP3JVNm^nyc}(a)Vb7xhbC zxXM#W1M*2W;YrmA)d|G{&?sgTQaMjQH+>r;ITl0G&tY9dYmh_hg37cxB_TcP3VKLd z(Pw$HDO{0miU%{p${gYz8%cp{g{%Q|T7`~V!F%Vm94uIC){iMeWLEmnM6&puX#-KQ zQ{-Ht;mUr!8u6%*0w8lMDKA(>c4+AwnBmZ2MbD_`NqYi?Aw7FU=s^f9XeKouTt+}t za4v^XY_oVCAOtaR&zHZw!%3NZJ{p0SQ@I_EX%oR41Pmrj!9=);#2u!`*})M#ws2;K zXpoV7B05WLh3I7`gU7IJBK?ESrMpRz5H%@~)Fh|eg+w4ji%yk4*J0)wO+kt4qpXti zfk1wIPyST;+HO+L?#zqd1b{<;S{-pNt1hobf0rm z>!jm%7TX8Ok`OvPz4TzqS`%-9E0q29&63$?q2Q6Ww%zQX-j$g%^c7nWW}}x>e_`+| z9aNo>A1!~)XcQh0sFh}!=BQ6xRTVK-7FCq2H@xxtF#W0%C(t!3nsql+OVy>OW((U1 zW`7!06?vikKHmHOXRE`ws@NZIn{Zz_F~4kq885zuPQ%1rkk=uXR7$yhW?s|f1uw&TX zxX#XheOVQT2;d$yJdIHUv_3Ol&d_L1UZ%j`4{&-{UwRTgse@+Dz3$IL59#~K>Ryq( z3NdA6zGko1F1weXmjSB(}G3S}q9 zzwf*#m+DgrD9y_|Y*^QRrseTS=kmcHJBGM-ywRy+w{1N(`5o#X+UK2xwQbpfm zIresTI)x>7@{6EiuTZWyBmrg5Q@%TNRnAVeci@mcSIh>$7~qzbQ`;@4qIIiQ-8M&i zb7zm7&txRjxuWQ#)o>pfZbv5{@sj2tkB6YGk{;%$XP>+nMDHa^#)!x<=BH^uDn%Y$B9RRo`3Bkh;K`qONk6tr`&`R&8GzYi zMvlG7XbB-d?TYPwo+!VyuSsQH``IUN&PDhC^5~7?OCOU_jUwC1sNYwi@P0mF;zUoi zpYURs0R%JqJDon&VdG*#=u@V%zG9Q}p6UC8YJPL4JoUN1^-1Z|XCaruiwcGy#Qg@q zZIhAO^l8TZ7Uu%C5BAe@N>iTxrpu6nF|NO7O^T(AB6ePNAy%?+D{U_om(!PuWsp#Z+KPI66!_n{rzwuJ_lQbE3_04)x>%pNdE zo#qQx=H|Ac$zW9Ba71OrhB*-qFSM2|Sl~+~VZ+ls2dK2araWLMro^)KKDUrN>`e6R zzA7ObgI`;`4$iI*WAWayY8%1twAuulTs?;h z)(@ocxSsP|cu|%mO~dYcE^PTA)Wz0%j0KXsla_p3%gr{@*H4_YTfN{zfZDsi)}_y& ziv(fnK|xZhX3aY>F&P(LvB5RP@#n2*a3ind#~qVz@{L|!?Y-_Kuc%ljIm{=8EbB`J zVqLoKD0NdlBTf)CH|+{fJ$n3DR*WD>?VWCq|Ij<=$(i8y)D;#sHa+z8BCF^6(5_O7 zgfUHHu3DDtTrn+R6`HFfR4PIIr*|0N=uet719CX~?c3kOiM|E>=#B-IR z5yg+*Q&cF|yVs%P=lC|uQ;v-o?C@j7#-R?#k`_ySCT?73 zcoyTu)i9Xi;Aq;%bOsT*tBW}c{(D{@|FBMD$e*)&-Mn_=gYK?8cjEl%YfE2R&#au| zUuZr#RO4?gfL4LlpxB><{y8CiEl=jz7a#iCD&5O8-+^kp@eXkYg*KQeYSTs_%7H-=A!y5THwR{y(U*86cUhP?Rj!YH|gwb`fkpR~dh9RF#wKZ^)7>f?$o z-@oej{{MoZ*s z*&qy2nVYL?-tl#5-Jh%t3k!P!9~*k}rtRKpzuv&^YMnxVzYCYH@6TUPdo+7__~?_-FnGWru$zzgYk7^1-a7`Mt(}*}J=X^MHA^^!63my>)A;JZH$c%zzQ8 zBHh&0jWD>{Tw}U{-!3n;@iThQxO-hkU41n2jQubd-y;{a*49VxdWm-9G`iArv@fQf z3PrP3J~c)*KbJD%sj9~q`Uwqn_3RT@$>?Ai8jmkc+?cGb_Kq^26)vIZVET+7Z1>q4 zhT5AKXhU=KJ}vxKP>@|~9eHlv76^H^F;W`H3+vvq=S107NTcpi?Q@i1CV&Jj&V46g z^jZ-{eQy2w#>$A5j6{O}P3B77%DuLE(W?!{d=VqOsbIWK=(1&ilv?uw@DQH*GB4Aj!R;jw9&f5i}jmIAL(0iZz z!c8ghc>6&=FBN}YmOPfaD-giK@%xK~N7yPRH-)bKLxFSUEip`hp^(byOJU*L`BEFK zKW5&nc>RS=<4-!3o|O(~61pz@Z#^F_nogWbv&*dS0q5Uk%uWLmaQ2%wQ5IDPS>F}m zP5{8OR`uTxMd4}fn)UbpIT1kT%RrK)YnHAn!N>;Ll>8%1e|O|1dtPtV1ec}#KX`7> z>#iH;nJN@6V}*j`2kToaOMf4R3~~)BD~coaFHPC&d)e3edXQuC(yC+Jvd@e#$1sg^ zryR11o}9Q13EpB`#m!r{Y|u!n4zfKBVd2dnPaf%5f6A0pT74Qnoi&){!;BgcZK~2p zXXU1eX46kBXAg$~E;t4gC+?*0^Ou-P3pE(2F@0tbvcUJj&OZaw>~q_3kNf?7c@312 zw=9B()v9g<*{TH`mjC?HW-C63VJCRXKNJf6dLwLq-}+zAsM%~%<&1IT+>v;xk0(ds zn{h&FqR5~5%S+yam7W6+SoC=NBXKfa6MDe!XZ z6z`1?V~c9vYvnP9b>7z8DlPJ^r!t(vUIeNh5`zAF6srDgw`=m<4$fUa9tR}bHEW*I z#;pb!2>+7U13JYtqV)e!_vUdqr)?Ow8ILhz#x#o=gHe`j$uf~$3}d;GXjNGUX(4N* zw9FV|#>jG`5M@beCz7;in2{vWDpHJyQc)_E>iwR#Z1c=K@B7F5d6)ipo+fv9zx(&Q zuJb(3<2cUqLQDXQD!ls5H2p2CPwAPG*mt504DE-^%6oj~&{s3OygWQSr2e8}w;|N- zB_u-XbyZlLb&W&K3n#AGA(pZ+5| zw7A8uZgn^F+t5yOx13{Xw&Th;SezYd89EJkt@tN%I@!?m^n&l2Q zGc#kr*i<>SMtnPLMt#^c_&!hE#z$dg9%3rbA^Ti;kh-Bs56X%^N4|66pTJc)ODHgNs%O+hU8TiNr6qD}d83vX{^hpR{rv})8D_?rxbWL+wo3|xX0%{W8qHjA6z&PP>0E-n05w_uL8L^r1+yk}*Up?@tkI zMiMzp8F+g;c7QCNXc*zq8elCu3q$b-7hi()7uR)QcW2GEuP)K?KOF9GkQAz=s~b7- z>(rI0BLe`8QoSZ|-+F4kyFw!zKF1DFCGmE|mn2W3su?-TrfGA&e6v44k>}LrQT=!09O6e`CXWBxm z4?dW;f`4uG1HC+aCDfmBtv@4nw2%<(yrw9}!LMf* zp&BR<3p%L1|Nd3G@Hl^(NcGBHP+^K-%sjokvgfx>^7!@F>6B3m7cENsP6grFQMK3g zKJh=v5o%r(Px@We&jCDl(U%KU0^0ASQ>$yaOzI-AbUJ)(hUS*U>}<2t5fvYO&O1zd zpJ7pQ$?AXn)-V1jsM{8!tX$*8^XJFPc!|jABwpkG?LCM_c=`ftvM(Ys(#5YX;`s4vv`rcV7!p_O5x4dZUFqLY6?Jx` z=Ycu$Hlv@&#MQW`X_ME?RM*f5M+Uu!HR<5NgIg;Lv;NZR-+vk)twrDDq$G|%PksuH zxQKO@)MO}N_{I`Ats_+IU!K;6)4>c9D!Cb3Y9QT8|MB=zMz%$qIu(DnoS^l9M_@!d zTbr-Ho~flbIuLzhlZS`Nx^>TuMtw<;AU(Km8_Z4lexa3>Ey5*hKCAiCu31A(@l@0< z`*Y*o$Cdy2^JZfD47v6M7bx9WCT|&ZmH&MC?W`S7?arhNF}&PWSgL+6nsr z?k++$hhKL6p&0tp2nwRb&kyoAsE7{ch-1fkE}J!HPJWEK!T9k%Gl;XardQVZ!_#S| z+8GxYXI_FlxnN-XJ*vO%o&*>B^oCt{F9zrUUUe)7VfTS`oI+Ao`k{?lqb1lfhRP#( zJ~W0CdGCwQKkv#Y;dDnvTF+j4?+cQ|je&!h;FhiMr`}dx_@S9!d1pwwHV9xJfGa1HS~r!%=Go z;?CH6!GG$0Em(WqrFku1in;rvyb zHVeMo)?2}y&m@CaUKw8YV26Po2S;Z=g|)C|gWJ*=`h$j{@m`H&oJuwCt}qLkaS-?r z#B-7-inwqTN3$K>Gpg9l9#81XM6^THt{d~N=#@C%c3A(# zCM(T<(YLh?!dWd6RZ?EwY_cenf|pGV0qZ2)SDB%fW(4I7GN_b>F3+DN3Mrvw8e$!U z2yJR%u{THLl`y=#<55t!k-M-tMAGsob*aP-3=EpHkZ%}!U=X zLqMo&v5hhkLKw2S{dZr0`4C8pPsNsYQvb(k_-Eww8lfn`o>MCt491N45j*4M3%sL1 zq)ZOrrl3|vMn=M63aZt$N&5~J!1nsF&MC!?Cn)v6pfB}fB zx$nJc>sB*_IsV>B+OzmQjt{-HIEP1=$sh-L6RRJF z;Gr;Hu)vSZnaOFB=@Ez}HXOsu1mvr9$(Nl@MRyK0KQSIdd3#i48y7TKsMtwopO^o} zSi&v}i|7?cpkD^Ad-izUK^-M0fBEA{eSnco@T>WdesWC*osoQ7 zJ%9I^3V9JEl7qN?yilP-VUJQS$j}qKtF}Z3j?^6BQP?o`4i=uD3hu*S2LM-294EwQX}(QcDWb#aYf$`=?ALZCc#v75d}lx`cNJ;6)1Y; zj~^cpobkrj?f4m2Sp}Os(X4F{Ah`+C*m*FO8Hf|)gnPllvY3w!)9g58*=WiNqGMo= z4rnhk&}ae}HVvM!>~te}p%>*k+=q_kS;`Kj9~)7jWRYM=>A7@i*}KhO)GMcVu(pcG zw=nxU^_v;)g39ME9C^=S_|wjmYMNS3IUkWBBCS;yH~$C?mn-0jo${ z91uWR8`i4PMsySx`9vkb7sawC#H$Gj(Qo4h4sd9#u z8m*e5=YfKpIOixVObelA`D(99?XPc9X@~I96tln3OBbk_G`GKSIYJr$nY_ZUFh>zW zwdMjQ-fjwJ`qp^f+aeT>^mUbvT2oJMu@)Dp`LKmQyAm2o3t z;cwUsLL}D+PaF(t+OFy9^`93vV&`03SL=!rWxSi@J>JHIXTSSzSQtCI;Ii+T%>cCM z4e@?4Ev{T0+37!*SzyTKcs=sYvaa^#PI;?%7Wl}=8AMvh`E3HT3Ux}Nl&#jRIDPz2^)h+ z)R^U5kx59Iietm6G`i4wraIiIgeN+O4v|>sJX5gcOcB2;G8^jh8$pa-sFntI%Q=q5 z0}{}0t6uFyMxRDAP`HvxeKOOcE}F%-);sOON&z685?E>uFrcyH05(qKi4hs6_U+$a zSySlCp^K|$Zhmq99E;#yj_?Yypq93FNP^m0w|!Dg8jR8Kl3!|GT{FZp2i zE;1cd=?8aOUwyVQv%}KZC*M_J2AeI#B>2af#IiXaRO#=2GbYrHiDWT97odh-0{lutquu+PxQCh#(L<+vEbp^Z z2Yz)!?b^roy6nd_p-Go6X&tZUu1$xIp(=VZqnbvy9&T=ppXHo~*XT$~P?*M7PkS=| zA?&-BLq}~&Tmc+a5vA+-V{CCx=mAoBX4xGNT%S}Ee%E2~NNy!0=eAbTV-E`V}2)RcF zrHpdSZrf-^U}I%7B{QZCkqtK?VbiGpR&u$D@u3XiREK072RcGVF|30jQCJ`Xrra48 z{X;DLz7Ws5JINLI>?Y%N(PnMIo?9J8Nq{8APF|qK9IZf31B07>e!R2?l{kg4>#vXI zQCJIzBM00*UYck^s$A5gs`Xlen`1?6}`0J z!Goh{8Jr$y17(Vi1ZM+tXbP8-jS0g9-3NM zD;2+cmqWM>f>>}Ly?1`39mbDP?)>n+)m2r3rco3EXk-h*(gG36v2W83o|;3D@K7IV z!RYy6Nb{_%?zF46c<;R+Zi)Xe>buI4n`ZEP)O?vd8v>jk0DO-vF;17v4J$d847`m) zuXaE-zwu>oO|N8!=8?4l3gwpP`EEZrC8#+DJxy%1nUvmcfApfY^WI%+WN0YVY0AE# zMtEEXdstE-P*X6qdnb2t_mnr@jc+Ht|Dxt+uGEYN;t0q+ae?eh5OcYG_c*dMx9vlR znW~!{TjAYR>HQH8}Z&_|5inNAmtW>RYER{u9%!nd2gW;O~>%YZ?dLQA~y<^I`b!G@C# zLc>4c=mpe`4cyVA&?P=^zsu-epB^2pFvNee)3Mj|U4LmM_4!l3)wU7EPI=W;Q}+#l ziVV*`aRtbR(z4>gqXR*|ntT{C)S+l6hanzRfj?Y|hnS#y6oB2HSz)tjF{PI4|LYsq z!?!#8t16{d)D;gj8lPiG4w#q@H@pgz!L$z@qekt((VpO?f*QANcA`%CYG!r-d+K3u~I| zFsyeFFa8oaJYDbzoS`pG|L^Z`{LtG$jdyYXizARG5p&JRP$wyNv3-~^*AR2Z;h}F| zc$=>BKp+2tBsUiOTujr(>-hz>@T!XVLPy0*FTj2MCdys)298DW!w?&xpoa9nfsjp| zCFD4M2j`*E-KZe~2qy=OIr%w@2X6EB%6apGZXXmnKcVYiFfBmuUQJFLV$1`DMlV zZ!c+SIM3r29!YJ!)G+ zqH(}>134JuBmkIU(^NV}a_Rtf*tFaFsfpSAb*j0xpvh2ov zOQro~wf5`l-65fzz!w*p6G2f^l;7B}=GU^{A?FT@uLCbVWTVHXr!xgi zaHhxxo6B?i)3G8?!1ojIPXO}Gr1AZETu1}|8NM0$s2Xkg{xfBZz3afB`e(G2pe z>t02PC-poW)|Vbmtr`%#Y?=F4lpB2lin^cp;1Uyi!xd9O_xxhy?jg$$VeeIac9(r3 z54D}M?jW=9dX5+|lR_MB^OroQ;yyxC0yo#p8pYgSL?w}Pa!&s~_x2C&-v{C^6>l1h z9tuxoV?%zU7~}P;b-41h+uXXS?o;<2g-5$aG@7Qx`DWkZrq`B$;ogq^MplM?cx-vA z6n=074y(ETizn9fzneaIQGyFY*iUn?7o`iW#%0dl;}0LdddFu&Xk7l1NiAA#*4t7) zvM(vzYybZJ7>2aqbQOlMYhQf%u1i9mOPpC-1X+7 zd8yT|;nl3dF;HZ(L_HGx z?HO91=Ug^Y)ELfs>>qp+Qbe!zL02k_hhU{N-sTmF%L#CF(=mE*{DH~T%GOmBIxb#{&-Rd5Pza!eBBzX(*hPD4Qv?XCH&1( zD6Bo6johxiY&IEOv(#JCIeTKp?fHMBo8DX>x9wH9`zr;e$uVQb#6P}qQv@lR4r<|I zGHEP{T$(={R0R9ziThXIfk-oH;>4@`_sQ@7Y$a?a#NBppZ*Tcb5L|nfRKw_s*oA8L z^iuEeoHNs_EKE3dJ=jl~M~YrScHSA&}pe5`?)O!DJ9E zq6z{+I@-|XA}?+8LsWLj;BaVAnZT!uq{Wgxr~Sz@JSwd|{x}P0qbp@7Iu|BhV>}`( ziv>Z+pqLN)#U7x+$ASrQ*FduccoYf6$<_n+mJILFL&fjXomH_vkq$)%hFYsu4SqXQ z9AyC1aIj6WAYm>`%nanBJxkUgtQ6&+Jxc?K>*e|sewduYMetc|EnzN8t7YEr9a!C)p zKm4un-lGm5y@w6fgu>Pg_4Kl@^$c?<83trp&X@tYsE?SD%?-!m+Cx$P^l1hVgcYPG z+@+ERf^Iwz1-GP#5k#7M&dsOG>LAHxI?Ry4$#9%TS;!+9XWiWB(2@abhSt^(Iu@t$ zap5&#=@m+GG4Rog*Q@DGV^u8d|CNYj68ji>BXloyRyR=vpn{ZmZW#SJSdlhC!-YZQ znoM~NW?d`&psjilp%9pG=j_t#)uqcAxW8;UCSu{GHtA1Vf!6q2wQFbfFOkA#W8p_*_WC{A0wS@RhC-8D6%$M~$r7x*Hcbq_B%HDJ@#;xj-o*j2+r*Z(ZHY zki68?)Hd6C*MDkXTv8H>p`AFj_X3=F%DXGNCEdJfNniiYon=GdkQSSk-M!mYB^dR> zI>D6pZkU+n4Du-9vovWjf~AhaPzhn^;oq{mGa}>V)nDp zdBSzW!Y-@BWI|mB`x~%|*4lJOp0U^oaig0kr^Gp|T6H-}4*tq};*8!nQRv!Feb zkKw(xL31(bKog^ZgmfHE_$j=mI3Q>k;vpb=SPy#h8NdDg>7}M8fntaLM5@ppVQd&5 zUUmV`3-l=-H~~XB5xL7!NeD(Wj%r57#1!7#qS8AMao}YApRiksxF?f1qLW;{bN6oR z8)YSg%FFSmjvwEy2{y`G&Usbm+wxp&PBpSV(ua;{otKwq5wki}I6UNOTQV_6@1&!L zRWi(_FgR{MQi*0S#6c(@|6}n(1;vf>^=X z#e-*cRjOi#PK(bAZ!HbukPC%QOv6&I4!=0p-4%jag!J)Sz7CW#Hod>tw2OryRSb>F?A{CZ9ux_qG@{(^^Fm)THKfj)YIz2PSP>!wq7P^e?i8hzs53)Tde z7d)sHv@XsN$J>=BA|fDc`T}l@o-OW+nL(ih@a8-#nbYw$6~Z=7)m=Jtyfp1-MZ z`%mGQ1y%KhmpV8(_aMV7HBo<2ZT4Px;mx5 z-ofWa)sv6o!+mmHXSPsGnsjFV68mLKzW@HOj$>D_c@QbwBs|jCE(uQ>h!**}WVM+z zlk;H|jUO6c>AfZdU8vf@o}E<|SM4Jj7wBTe;W5W6a6X8oX4r~?Uj(hN?&J^}W*gw3 zsVSYs;sV?c8fj0r(7mD}+g3>_NC$jEf51_mu6z5pcfgzfb$hA`cKyWINl#EF(fcsI z#8D9?Sk#Pxs3x$om06Zc_x!kyVPnXf4HI0|S))onHsPgPx8g2V)q&5leH))I;=W7) zcW)D8L=JJkB9l{TCMi|fR)V~yjR1?ZBgq}BcUYR8b#>u}9@pA0S#<>&}?8rUct||@@zEl;|4(``;kzKcpy~n zO4g%YP*O<=$fhFHcX(B&&dJ)Ch`{@1&;T+7mQ};dQ zUWJx3ZxP`roMg7fXVS;WS}*LqR`2R~sI-N-0~>6i8gN)F9lL`@~OmHU=H z=P{PSgk@9qufmaNnMFJLr3E@RSlCVPf)t_x9agT~fe}l;Q&`U82BULZiA&uSz$EXK z8YH;R?73ZiXVrSz(ZsG$irNbVxgftmn(jHHo(od2cxK~`~;(z-eB-H61DiTpmpe%*3 zDqE$bL~bs;f1ioR4}G#?KW*mBXq4pZ#KOhrrj~i}WLd?t#E)e1NqEu%tQN}h^74j4 zm;KZk5QlTuE*a!4eG)FzOVR@Z!5>n@D8ESDVadf(KT=v1-HZx9atfA2UZL0UY(AX~ z7NKzfLaz9dP8AM&OG(dk!tL_)UE0oo3IU=>JDk>Cb442MIod9mrm{GFd2yH+jG&eT zVZ!?Mxl8BFHQ&#srCEpZd(_v6;-Axo=AM z9SgO245Gt}KHj?hA8p$`4_)i*9L(mCzYqF%PIkl_0Wv+gAn7yIIP(kOh%l;Li_klS zW4`L?T~uk*TpF1%t;yE%_pK!Vz0BZ|4XeFz1okK)a432L=oPv|A0;S^l4?5#`BC_l zIi(1O;h~B5msc3$H$?Lmiq-;mlFQlm$QIHqCB89kC_Pi%_z53Zi<#pH4QRl38&8Jw z`b-#sd&R}QS;S)cAYGKxkjnIRTO)?q9%NH!0iJP|-N4@_YzURExh;8&tawbMw=Ss~e;v4`!>=Ncs zs7@pyjF;j$s|4>eCvX~tknyx>2MD&%O)9S*VWOtX`m=G=qfDD#B7S=s@uW+Q&m$qg z;`sL)kk7l)AiXEWN)SJ@1)Uh`9~!?}@BxS?IyxF-{y(`PUoDermFT7Z2?Z6wKdp}) zt~6<0piMb<#gy8S2Xu*OL@P7A6tI|FLYvP%`#um@G#wwOShT%Y(${8*)nB=O{rV$S zyUb>*axin2g1`IqGl@WwhA6_>VKcV0{^%oP`9%gL2I~_1_}$?(b#;~=!(mvkg|JFa zv=1kxi6n+cNgoVqWN#nF#T_E$24T8rtZ)`5AgcaUhB{p1`DDbdT`4RDt@yokjzzKj zI1n%kyFaa4{tOT+#`+wZtko6VDla)?tk z4kMDSSibxkm{how^nmoKdI(LrWgn_9l0Ao-J^7%^n|^j0=1>ligL00`rnsLsFtpI zS>2j}Jn}&mxR)*BoFavKlbZvBDq)c$hI%^JHP(GP1h!QS>a15vgKi2LesU?78}@t8eJ1pQ@5?>e5G2D4($0-D9Gy~duk)@pX!U;v{iID>LJ<$^z&6M9nn z_F6zuZb(Ud*l?6N>E2?*s;>TfWc3b0_W8IqtR=d72noLNM~oqm*x__*Uwup0y8R9j z_ao&3gWiApJj;e-HaPzLud(ZY@5Fu+x)y$L8`I$OYj0e(Iw6a7&y?;oqD^mX%+L9| zw)9NnwRqz`oWqn_xNvGYE!HEWr9gAh7U3=HZL%3X zaTLOLl2S&n10I&2e**x?8@V^CG(FXOHaqRX5IVUeP@|URsSrvk34p?|`>rehwYIu! zY2bdksA$g&(OGzDgz-p=V{?BH)WSs*j<^}gGbv1Dp-L!u;v~)eq?D%*4sR`Q_TmPO zm>WhPD_np)O~DDw?2zeb59xZ|?(3WHGAbV`=P8M5Ak&u% z)i2FP77sdbU^LlLXh~r`VPmZE@d#-N!&&MW%BOxnghAcutkzj|(-N8^eon<3pHAD1 zKnK_htwDpbbT}AAdMqX@5nRQ5OZV1|5aLk)rLY(ktxn`v=|L&-36`jva_z`A^Er`5>8e)1Ts9NR)f6Yn3x-c@1VYa&sF5ygKDfe=E==jOA-ClX z>{KxR!N#1$(mWIiEqU+Wy<6pb?V~p0xtLMKemX2oi=e(WxdUEoHSpmip;Lsjw+u0XoSfOl#}XT{exrKAAJXiej}(uM5^ZPw4O~qIO}tnl@v`Zj6#*wGNKUl~db< z$rS!qBzzq3!u5KefgMUtPL^RJV!7_Rb;KcCPUk??8L>pY}qjcH@f)4C|9mqZC!I_qaZzopa|zps`2N(6mjHUd_Y4x zkMZIx!Jn#Xr=4@wevjR)Gm+vZW!KQPFMjGYI<|T!q%&PisOLWHH&KZqTfi*<9NgF^ z$H(y@PPOX536MSa}AJ9S`aapi1Ho*AVP7hVIG^2u~p(>N+e#(?dN+#Tiym zU?EwrQ0Z1RAN8WU2+bjbg*XsRLQ*-0jENID^T4;wX-CYx)_@mZo7{}FG!D!uID`{e ze+%iOt({?HF!Bhcg|v`baEJzfMN=U<0z+?Qh1HYdg%V?awDj}A#aL!NE-z1GF-zZ^ zRNyk8gPiQg_>DR2nt~txma-DYCi%QtK+9Hw?$Qo#)e9nk3h%_@bKI_S!=led%FGcY zovkCvf1!fYuD}RSa-XVP?6aHor zDy4yw_vpc1xwTS_gCCfl-c^(U$|)l@;ljQ=M|mBXTCgW&SKH|EP^>}<0VRVts@`-Z zeaYK`gM(>>)>KGhlg|1)#;cu5aVi8o>TJuTsPYE0+B_f zB~6P1a5WzuPgEB=UkE>DWP8u2^FS)BB%-K})gW(?hXvHg=f=jX83-kYGGK}sSnjdn z?8X9y#af0wyn9!cO;0_&*~FT=zyH^&+4$P*VlUedeR;hA4m1Gi$}75l{IJQ<#Y7Y7 zkX0CBA^w7LV$V&AK$*=!ncoY`nyPPvRQE7ta6Ziz#UbYwV}lnrn6w)y{c!k#G5FXM zQPk7v2n?xeOQ#9UgT?G@%zcuBQA?MYR};HM9^`J?L~aDye;K_Io=b!*>e(~>Mt&rt znn0pgv^3WsvI|UQA*@Kg%XSK;5g;T!&ofrXVFmwO_MhMH<74!o-{l&Y&)exu=He@!i%i<>VF?k(@A^vr0r>mtQCKPk5f@E2_*!lAm-z;rI$}gbfdRI=|@zb;eq*e zh7wtG?#jz8JQyEV3kLr5}@qd7j=kEKBZeofq5KTG(d8 zsZ+0v+@CnNzXTjo1e-NR`!1ZaGH0?Hco*+nKXq;w_U&3$3N=N0_GIly*r;W;@NVA66zx**WDrv#&(#n=gqX$+vLR*N>wE_HwR#EqDu;$>dk=O{BK(a>fv4esD7o!IpHX#~F$@%8Peh=_`+ zUlhU>?a;h;|9;-;dH`AU>CSeb_Fci%y&01LGc=@2x3<+D!ZiM6B7e0pa2 z;Rc?>nn-T=#x7$gm1Y96x+ySRn%?DQrrB$I^F5=x&WIIWdb9CU$hOsZMLxnqQ!V3qo;*!?~H!_KO3{fwgpB?4k!Kt+B<{+=uF=kbboax+kVHnd-OP z##_=B16THx{3SIB;Si~MP~69@TAf+=)dw%0W5Y1%`_K%Xb2hK&gw~0i5U`6NW1dyS zW=c$2s3zmTH9Z)`>#jm*M#2c`+UH)^afMZrJxixs>_c^)CMU5}%@xi4YSpCH{n>P}`+HxpFv8(U#`6^pQ?rq}ciL zVbDlQn$=Re*ulXsUb}zSt|LvhC)$3Lj66CPlXt#;8Hd=2KSlWzs=My&?0&>UQRi7? z!IHu$HVDJVFOMp}*i~zG>}fH~Q0QN>9$0?tWu46woP&HkJNQB&yuf0NXw((<5{hfD zp34~%_r+4e&_*j9B^bmM&P|$A&`|9t^JMsga0vuP8enD`jI7+r!DmvM=dV&jKR1Qk z|5;7L{&Sj&X))*KXAr{{k8%9%ds;LxUdXgC98IQCpez$7HJ!43HQt_w4OZg4uc zOf#CGzVdAHI)n3;sN-bK3yvl< zbVFneu3)5{h0I|Bmde-=ag0dNrQBa!^$ZudjUXQ0o;sfn*k#oGGSJU+uXE1%TRMBD zh)y7|K_oe-KE{_%m(F=6aIiCq&&F%8L{*L|PNb)NdRp5qTA|rKPHF>J5u>DeF6>m+Yofg0o@dw?sW}9KD1~Ke@txVjAihk zmd%J+voytLq$LP63!Ig~+3e(5OVlhV^J!H3k?U$!kfLv`5=Pu}L48f02G=@SdI|tN z_8pYH6=+-OXy&@Gaw6oIt^|QAHEEeHmML4TuX_jZaDz?er>Ut6RJ_ zWH0*=7$atVfY|rCbb5pdu4@stnnH;BBZD(F2Rc_RUhCvk#A3l&AW=~00U2{6^H=VD z1sO;=oMO8KRa-i~*giW!a5;-bh=s|~P$Fg1X*EAE`sT>o z-^fq8i?3g`mGcLjxLKLp7G$8h6$a!;NkJDE=wOGrWaY}!l{s=iK5bN?U5A5J8v~0r<@Okg9QsZ3n1Pk>qea%KfKA z>9djqs1j7!lL&1J)GMh6XyLJsmg4~e2>~)UPTvlY5GqlU)VX2`r8dN{`GPoXCY)m@ zqz%W#7?EJTq>QJng=}V7G<)5Xabo5I)^a1o7|VNwvC(B@2r!8*YQT`XqVxVyV|8SApt5w(TpmstffWj*7aA~)q(*`xJHy4LJ9VnnW0JOi7> z>?L%*+$RPlD5IjH6c;%1h#a=@VsI_ntNlO5bg zXSA7;qihcH@g+c4JGi~K{`VrU1+V}NAbET$kzARaPfIOUk&Nk-zabYIDk{GF+s(c` z?~SH_sOfa0F>fnxdMJ;Ndtp|v@AtV9hm6rGEW_rph`;E#bNPu{ZloO_ja0p3WUiuT zk_MooAZ)A6jgt@c3t5R7EYU87paqBY=*FgLj1T=Q#K%f*bximhMrgXI+x@Kk{;LJ$ zZx`%-w$=Z6H^kYGUcY99^F zr&n_e!!CBh2Wz zeSUUnT2+-$e`ropn#-(g&DKwt-YHnt_G0Fu1!M2<*&O2>PYCK&o_Z^!tIC^!Bq}|qc@>o$;$(qOMQRKB=#P?M z9~|+T4MjbEd-ez%tY9$F)ai4Rp_%s44M0%p9jEj&w1+?NufLd_98)rqV%vjw(*x?^ zi+;0bqBV-|zuUm7pCR6uE2xn0KpI9c4({Q*&Tzt(ucL!q(GWl=JvBAIqtqHyf%qEx zu#yw3k5Yg}jhujVBHhD4JAn~=LB-G89x2_ta6MEV-SJtI)QiHxn?U71-q&X*uBXc# z)u!{~yuc}GVP z($~Z_B9@^eDrl&R5cZyPLPVwnfyrBt>bfc}rKHGAJR0lUsH=xjR55ozA6C&AkAf5+ zyZTsGohqDcU|om?Vb!wdYSxWModGkT$n3_1HbDSg(mXwqz(x=TS zG1)l$wIg|*C>E}DC4*^EN#gfO7UFLeL7Zy2;sWsP-@X#&Y!X6AeJ%iwRRe*aj-go^ z?rh-oJlFE)p|~DW>aZDhz{-FvW&8sbh~jL^)nPM^Bd(Z>vl}&Db2`xK+0_oD7V zI~Gg3Bs`wiislWSkYHHrVp0ey^l_fb+KjU)fjN2l$L9tQpdrOS3%^`iyN>N(G;?O| z9M@a&_#mL3ULKG-qeT!y(o~cbYiYp;Q6usELo@r62;i@Z3d zt%Q*eXtYDxTe9(H`a4flD5gugg8hlfYoxEB53~=&gXOtJY>q(oOOYrcKNSpP;xDs0 zp@)nhv$Yd9Zrq4-ake-TaBrAQup(2&6^3wTvXtG4c7LXH1G<8E8v6#V?w$P`Arm4=JG;aIY;>qh#1Ovuu_&Ha~n# zWLP2N4Dsb^iq?62vkL|xrJn%U@rSRi$P*fL)TlW!UE|0gM&fN$)5szwFYVCETdC}# zq2cRXWI$FC7w=@o&j5vmIfbp>i8iTymk<;shU7$b=gaqp5zb^#CapFi$~sc0!EZ>9 z5MoPSYvHSxN`LfO_>?^{JicEMMR!E^_$t?L`m;+p-%yZ*h5t;s@6kiYpNHB$w zCzff!ukfXnSQU zxLvwIA`yLUl2>1;`|?gT5ax^#Tr0VW79Mj5tkg5pWRe03hI-R**nbKerJp;~Bbu;2 z6{8%3aG4sAMMIKFz|@WkVRFB~pvtXGhF9#@&p_Ou%$~}`)J7(qB)%n_Ndw&))`>L7 z&WN&b=5I1?JhOLrY!`|^=7SZBJB%HORvLm1xV(A8C33UKk7!D-nz@;ZtZEQn{TlfxFLzDrEL`##y<69>`llq22kRbq> zpSj0Dfl?gL$W%o9M7AQ)Ts`o4acP-vgaMlcbhT;A=*(QrKQ9BK5+ zAeq`xP(B31o}n94CLqC$wzLYTY!Oj}H62;kF#9b3hMV2~i-9h~QO34`dNZ91DPaXS z$xI3L|KU|E9UxAC+hxB)7%3U*vanr6Wu*yvA=R;_f+s*tyhGydlT&uwd^>`e==z*n z(oKP*Mnnq2kQ_^NxAFGsAA%Z@Nz7%@KMQ!oF{rbNASwwC;p_n!Ot?j{2+-7-?%zPH z7Vq0G$Q*`cxiCzdDJ8pkz77V3bHG8^F+<-qAg!Nt8=7#7vX9CoPG-6fC zEN2-4+Xo$;Xd7LaC(;8xAw$yU=J9uzgc~UdC^nUO(BXS=Mt#4w?D>;+-*~62i3}jj z_QqW(xFpk&n_lqfQ3!oYmX$e)iHTNagU^jy8r#U9@1|gbM-I*RxG^g4^XDsPV$$Pp zO=pW_!hTSWPR5EPGp`s&Ox>WqJFa{8?ySt)@!`%08%-mw3>Pnc)Uo4AjGs$#Pm{%_ zd#a1q2(>qp-6K<$9{;Zx?wcdnt3e%4q-M@f-|xl87PDHPdeQT2H;J{U?8KLmR`$*j z+)t64Iha>JZGVfBzfzI%j$-1vzIjw-hLQAlF!BL&NF{^2XPmQw>j_fRdp24Iqssu{ z;KCzpR0%$P4qoCSg)tDx8VAv()YP&q)u(LIyN3c6i2o;tm5!fiKb=0AvR>ON$6tR$ z_J$d)YOMPBXf=6jE478ANU#w2)5uPkOOroEZvonj?|ll%=7S?#+x`NdA4X&ztr zf;j%C{OVq((s&!*W6xr_?WJm%^2;B)lIYQkRWCX|B-M&#%cg;@JhjbNOehAVzUaCm zO?lUJ=)Cut-H;(etf`9z-9_7B=EWw??-WuP8)lcSO!0~^naGjY0s1K(pQP{zZ(Z|| zhGo34Jpt)5ZJC6S;sl-5ulzcwB)C4eH6BaQghC0J_ZPPo_lwY|Pyr^;Xk%$k5V!}1u{T>J$8;q@VdQx=ohvZRFl%qTud6tc0k;)1Z z?;NU7a`w-ZY^niF%;~lI;Lq6z)?!K##6Y>k5+P2h1{07)m}z6cNT|(vjn7w#v0AJQ zD3%QoKC(Vu48MuC@h$DX`G2(L<+c-f>{*9j7#m4lK&!k7mJ3B1uB=_y(l9oUL`?9! zv3c`m@38rUyhCT#iFbE7vqi3{eTCM#fK`G=PMQ($OW<>wx?LBQ%{08CynL}O1fAx? zEv0Ud+v?7bz7d-QjOMt~6b$F01G&1!vwO6~m?ekTP#Tq4x(V_FnAuTmLX}6gcE}^R zf$jY{g;3xz+pA{lIq;9GKq31xTj$}-u@f}HO*h%L2nQtJ zEZpCr>tJ@xHl$Kf3a(zg+GXtA;j13ZUE7ZeQoxaT z_PImdG^^QOO2kvLuy!J_jg4$^gY%bJx8gU#lf?AGVr&*W@J}pE0r9DPv&(L~qbH~z zb?r0b*l3Da63M+g|6bJGcKhW;y$fJs{A&h~qN|YEB{wp4%%)9yTsOF)@%>uuo;|OU z7Z+zmf9hVFc;GTV1yO3L{|vDZa{BFpl?^vrZ2c?z4l}9P4l=}pa}Kn09+ht;ZY~k|AQgKaC&@r5e_u-~4zWe_Tu^h9uku=^xtpw55pksNfC1@24c}7u2lFY! zBcnFcQ8kqGpJE*r$W^Mg7k6{^Bms}gbrtSif`SQ9Tc#ph^6IxVFc{Ap*NpPkhis44 zUG!N3+aNnEiBrkpVmf7)?qqY3%4Jux=+m)v=)$3)wu*rd52x7RRFaj3%TDidckuvX z7!gW^EN_`29*M`vRBD(UO$gSiNr%OVTAY#|0K>F4y<#_&97-G6ITPcDKaVc|-r`E~F0P?L$N@V9VoAMcqVI^chTs59c1NBfMKMjJ z!aq{{X;5JjLxr)6nz@E{D0V6XYVVB9KM&TGB~Din;5x=8MH-S=Q}V%-Oh(j@Vo*jb zGXUKtx{&X@exG~n=^ua}(F&PLB8MPQci=1SUqcCQgnwnpnCVYarQ?Cc9z<;>;{`+* z6#RkH(6c=Ub$BN{JoN5q8ct0>gcQCvFRR)Nk{B?nNkw!{>uUY@TOQ5wTK>szArpkL zkN39xcghJHvBXBl(L;t0Pp1DN?M>&2TA7q_o{re+;Ecrb%&yDMjs}Ftxg%tj=}1Vdc)8!` zZ_*0Ou8qI<1R6F27ZFpj+sf45K^0&kBVh;uX|nWS2YLIeaAJ#XTVk8TQYAiVmdQav zu}nt;uiQ!>xo?zPJfG7a8m7TtmpqyV^LvO4MC>tF`VsZ%VHB68AxbpF;#0g}*7&QO zIAH~z*luWpbk0i}9NF;ft~Anq-La$Ke`I${(nRcbbsc<~V!)A+)^bvsY3Jy1E&lrQ zPu3)GlDQ)1mK3Ynvbf*ngaSs%|BEN<6s2gBbfzs4Q+F$ z*k{DFC)A74S%xMGM#KIQLI{^)4iiAWs^&uM0YQ$hUBf&&s^~p-azZ2ISTHFea|9 zd9j%GG;OXQn>Q~6Bul5G; zT%@^1PB!-=YUS{~5hCKOVLqh)GQ(R`KWl16z;E{DViXPz4&c<-^Lw#c4~7*l-B@Mg z>|VC9hOTa(6IX`yrg8|<&7;qW#4s}Yo~LC5r8d(-YMSTg)3uYtXYs_9+8Z$&N9U|o z2QRF1MT*d7UqtG4wY9a?K?OZmR~r5e+*9oH^5kfm;aAXMm*vzi9$0O|BT)JwQQ1%j zLBlH7e>|)wU_~nf#^D=PgQsS%byeEDC3SIahO+}cG5??-EzV9_cIUqyNrJt&;BT)y zfDM#}!u-COgY2>%jXkd%)fY$5b(Eos-r%Anl z@OQa7zB-Ok0D1}~*Efnwbi*&|MT6-PB(b3-C)4$I>1AeQ6r8$gKbc~AWx@6dXO{if zEtor4H74%y(18r4UCd3ymjJ%8Ve@+lJj6lPuK(Q89K_Hnk_|HvuCh4f8d5hBNWj!j zD)Jla^A};TNd=pf)4)!nMR&5oW#k^)%#Mz?f2i?ttMQTp=4qNr!U--*kZC9bc|KYh z5UYK7G#BS@9qCEz*K7IpvV_FEtpJjHv|dgnlh}EL&p6(N6qLkLL}rOicVM^pfcu7W zIm=$2==S<^B_yim-6j-@wo;K9?&{!Wn>wsGq~n${ZdOgA+w;VZS6YA7zZ1^%>kn^` zRg+t^op~(%4Eb*a^Yowf$l6M2b&sPaSMGlT0bIK5`TD1iaw@uJ{}T zwRf#Wvtx@KA0F{qamyjw=8r|!!GZZsVVQOP+i%m6=gr5y-kh_-hvOFZ9sgf1 z;0JSt{Q1w59urEt{NH;AUj6mQHBmTRwP&90FD#1{*YG}AFNa3sS67&@NOcwqzoJ)7 z$>Yloxuel6q3s2>p`1OB_w0ZtQcwZY3RAcl%(Z+r=4epRB|yLKD@sMLdDD7$9Bnpz z`gTOX%^e0$9nj3Z-%qre2Kf7r=bjxsLRuP%E>+HYHc|a!2m8~V34Ccx`Frv8?4zc6 zj|qjd+3sAy;hA7d)uWT`S6N&)>E&x*{J(GO|0iy1hu0pDxBmR2LI2;`A^Vb&cul_aO2ikrC9Ascf$f`F6tj-<$GUUZPIC^-? zB!;~yHQ9ePcQqP!vo9GK)2kg6Kw|vau3Lt5neg@UKYCO-fx0V@8y3-*GgT!Bx$Tlb z?p7b(xa+2UOdseFEzUnA>B@*XQ1A{(IgCo0gz0QMQcc{k687c*kdC%_gr?YRImtJT zSqnVR%o~XS`800F*RId*L|$Nw$v&(N-QgIfB9q9jp4Hi0TY|-N6){&`>`@j(PJSrv^mFC&Rd7^ zRv_kwoXKiBBC2Zssf?S2sMD3gBN_i=8hLsn` zsnMO`s4kIp_hB=z;*vL%}}Rx@)ngIOT_>V|1s+1{3+(yn_2WV45{a0{63Z;ppaS-pN0%`>|-+tKd!;_~&Bm`S@T3B0!Q=8~v|JSG)5T;iPLm3z)L9e9Y?*+Jr5+#coH~=$eYqxi>Y*p?3Chm09a>Fr~V`)4bI?QHm7+ z$N<`(@I2U1Y&GZDh|$!~KCsA5UL6{Fgo8?(BAx-6AJjN4>Br^Gbni06;bN8{2T zK-I8sRhmMfq+x|gAm2RXx%8#SOip>w)zy`KBc=-}TNp9m6n3_u_G{-y$J;T8_H$|b zP3Rj;u%?0N8YEJ|6z)*tuttTR2*;KgOh0oi(fJEz&nJF}X6daG%^S zNodABuBwowUJ%^v2=3qp-?LAT^pm_X5w6QN^9v5XhDmfdHHSkWlnba$LI*@qt65&yGeMO#|yRp*P%xn>o@i~Ys=Sqi_&~9wL(A2fWUk3u+e2Z< z*sn$Qb=UFn)c?>qTBV)`Oif`&pVdx6XZFRgF(%rc4ly7eZzI4bMa*q!Xu_BTLyCEoqhVhHaroq&FJlk6zb_@3$@&MmWWUW64Sv- z2eW39_kal>j;el`-UCh~6~5dez&@r#ElkqKi=*r1`88`6qj14D!k4?j1U{|o|I7P^ z4j`RMN4_fC()ePG8oax?+K9)^qx$vjd!_Tnuayw9gP^nxxC*-zGgDI;p_o*6M}z+V z%aZK|Tp4os6Cdwbjb^gZuAhCZCVxdwAI9NguYi3@3E9z4E_7IV_1l&U*)(g50t19d z5WpE(x~Sd&xq2uWdjNw%XF6n>NO>;Ip5#6-!cY*}O3p0rp_s~<;Hq?#+W0*6Yo`YX zK~DO}68jN5?m6ezAsLV{XnK5puU}wT*i>QwtVGWqO>+=bS2eB)q~A6Ym`edYeDEi6 z+t$AH0^}|m8-}Az;vk066ba7oruX-)yn+&_ueZtrR3$W468^;9u=Gceykw2RO7CV* z6i8B0e$;+oPp&K(d=&w}5Kcp0BfV^!zaFY1QYJ`&ytO0t**X z)|DqM&Wjx?5P^^c!8NmZh->){-v!LaT#MLvg0L&B4>(9WgKD@d-1G_|p9EAARipkH zRqVG0m2qkNQ3dyB;RzZ-tZqnXwvA)KdyIO1M-8yHTPibxRx(bfU6cDpYqspT>gv>N z+8-B&#g<=!Q|T^uj~4%3V&MRcwN!VUdoT=YGr#7_nsNqT50!NV@h`L;7kBuRKP++e zg}ap4MFYE6WY1c2gj^GuC6Cj+u~ehsj>hWfs)*#iH*Hc#zdDpF#wI35zzQTbjfaj@ zs-9)8)iL-mlPE?Qz<%buu56B_F2$A#C4M!qPevf{d&bm}l^N%T$s51;N(h+T1YaNh z0kYk7c*`(bFI&LeUVO8z*7|bddCJ;*1#yJGqBCliMG07Dl7{uD}hKw|QOjdn!G z`@mo##qmQF%544=R#LUEGS8e5}XT8Ju z5IpbS`EcqiH|<;|;0e06o*<)gNrWJz|QiASyV2RWHnx2S#iDd{9bAffxnacl;0 zU(=8S@1e^YOn)PQJ^T9ers~akH&?ijCn$(T?$Td>eXlPF==O*Agrw6Sd}}9X`gK|GCFpq8in)dI@c(a@Tag$O1swGx|iJfp0KPdWlV} zL4x{y%*L06av+I8QyGnww|{odhHwnpKlH|I|Hmy}4j!r!2J>Y1rYm{*e~&jz|9_Ru zGMe*7=dNBONzJQlUE%PWBm>t&?I2dp@e{EgL9D#^a!+m6l*`tYA}MwS2c=4vyu5e} zWe`L2!}zA%7@<%L1McLK6US9u;|JUpAG8?}A z^Jeb1#x-rHzx_kAf2Z;O|G>6r{2$!CcT|=4*8OXW(OBb~*t=pEyI6rlW5HgrAfjTY zMGz6C7!zYo?AS#_jUtNJ0RaU|EU1W4DN;m5AU04Ck$yju^z*y#zxUp89pjv+AbaoU z`95pSHP>2mt|5q=Bg2t&I<3Xls(a-7E1hYl%&K0v_Wgqxk8RvU6S~$V(;^rO*ao99 z{efNfCRQL`#pVBIWvvqC*@4ZDB*^sdKOdD~SMoPAYZCd~=JyJu_!R}>DeN=O(7g~E z@nYw;y-V_k(Ie_CUjGOwLE zh?T^zX9}vtB&l`+*_T1FT9GmKOMyJ-AYXyXLt{IRZ40 z`Z$@zP)9iUxy=34?`1y?6^flGzO*)DxHCmW5{1T{Ut)gjv@mV~M47R)O^rbTo<%!!k z7Mih3S%yxk83EW)-L4}6$A-a%ED0+S$*YDF@S1^x`ShE2!TK-%`SnRmJZ7QlaQIS; zP%;xPy4-UZg*uGtTkF4yJh!j@tX6!MB4gH_oZI*|LWbR;^+iR%z-$#qqc>De54f@x zdXJ&fk;QA7%@`zTrd?>KfSwbYQI z+vI1#OhVmujj-RO5Klbfl%64PM1Dyqnq33>BfOe zTm#8?v+3Nsf6hqI3NqJmv1jlU}1PP*+~_C zCP-)T%r_?!A?r}5yvy#j;J->%Hn#Tgs-lkyvRooNwEe5ldQ|n#9k-XikT=FtT~O)A zewsj{qq)XYCbEVL`DJzMkmdMn>FQ_D+6nCG!THTVK5;mW8Plz4{>P5phTQg%(I}`* z?V4N)(+uy_;<+#yIe|cik3s_d{jb9$0q1uEL=IA^idzI>q^2u%S-PZb<SPy8x1BA3y(Y7?s9pN~Vrh5&ap9bZi3VEdFhX=`fI940&K&tOS7Z=^U9GN;?DUw-WCG|AFA_RzA9A<2%zAG+m6uWf2- zB1G>cpvk~U454NxrSUi0e)}()L967I!dQp?&S%ACXYOjb*kR^4lA|Y}q znQD4xSL?y>XK(k}bew*!x7ppFht#ZF$9KoQQT+lxJ24%`B()^VWoJ(t^F2$S{D&Vn z`MbX&dPIdkGkK@J#5A#ujc+qAE`YwL^~oV;QH4G|U!3+C77kWc6T0o;u`ZyGei#>2>2oIw2Oe&M%{2GS?#J*K$tOP@yz z^I{(4xNBBurYi53LGjc36g=I`z3}aO?KR$18J#@~hLh*c(rNu5D1%~Hb>vGfnGk&z z`a!BPkj`DW&yR5@QH73*z9_K-Wqs?uQMb~xtRTjTzV%$X7U7GH?<0pgY1*PeK5srB z)w{V8EYYfHUvv1$+tI^2pWkAj*msY@qLJ&{`vW>^9pm^1cZAB5}?^Jt1u zZ>_?yx#-FqLO0LSV%37kEIBO8&$8@rw1pY-r#{TAwGkZx9Asv1Oy#%leXl);^eh7s z%;B6(p@bn4Zys3FxCal*P2z4Y5wp&v!LUPP+T3bkrg(XGc;|z#plUo&%q@8qhqC>{L_TI7VP5_)C&NX^#3YoymsV zdbB9dzghiQ?VRgO_2+Vm4hf#p5V;rPkUF)e*mW+1W89Q^bD*Dh_E<0uc;iT1naykJ zC+cdTqHHSsqZ(Sx2j@$J^&IL@xaxLrP?aX@PW$F7I`z|gmj@AEj}qT|!24^;a4ZAO z03NFhz*x9|E2vr}CWJ+#PjGYi8 zO9nfcdEM+3ezc1fOpq#Q0gcupc5LLW7JU?>3-w|xBeOk8+bJ`6v5BM>m{ZMkdaG#Q#Myw zMCvSV%{ln5 z8>2n3Nc5gh^W>;CDLVi0^s#Vmog#~KigUI{j_}eBBqjV!ok!XjKgTWOgjxzE(y*G% z-PT7e2L~##oIM={_UTld2ENI5h<{@(pqT7gRuc5#r^M=*vI5hxLnp3cRQ_Vx;$H`8fCuBuQ-ltM(QA!e zrU_lJXPvp)w0I_K)e#0!^bWSuE^Fgj)?7+;H`(*_1&+j4iE<~JI1+H{WL34xzNzmM zh3CA?5*~)5*^x$Ud~Q-|Y4GhJ_Xl&fr-Qz4@Zomy(=vGmk2{Ta!PP62=Aqh`*>4}4 z(+Iw$u{FUhf&#Uzb*Z0?p5swoee*|`h4YU3Ddg^Z7av*bto0ZoO5G;2^HR@qv|M>Z z<$0FiswR&-5HGpWvr__Z1Wp*>_~7uXeIdY%psVOHJ%fz$97^b-E~EFc;i(!r;M#3$ zzR#f?4&`T#=W%c3e1B|EuseLD2GXAPOD$Oc$zPS%%WwY#GS_Bsee`dfXpLm`XuE`E zV72|ItHxBmy`#&_0iD8r+y9a?vnot&2w?CCk~yOzmX-5VcIdS4c8;5}Dv@I7>GsIt zIaG3*ueD7IHq_x^1u^&MrX_79`j_J|^dbk+NAxElR>Ts^_KKSf^Yo^UTLf=vB_dS~ zSIBoCy`}(@beb-esu{VqiE&?1wp2M)zB)+_b$8U|Mkb#!MmHB&w}l|6JjLZY43-t8 zLwo1oXC{jTjGwIOd>b?%k6STCe3M4H7W#w`iZymN6oOKMNq~{L97_?3aseBVf^(T; z;(|lz;HQx~ebfxa^eoFMBee}zh3QSYvL@DzF-AeQRf$%`PwEQJdv7ze$e`!GDDcE4 zg2z)0D?LuggfY=T9IURmHaU(9kAit8K9*{bcZXwVTj*>t%22g=ZQ2fI0JQExk}O*G z;nv$!JU^WY0!l`kaZqXmiSo7zS#cXHWo-;XjvnnuhsjRUVU#7O%}+>+#pz1=;!vYO}Te%Rg-$ru4}2mMtURV zKZr^rn(Ae`e+sj3DoCAf_i01LJL}=nv~_(yXsR}hj?y8Q*Nf;j4C8JS*vxI*Kw|}> zx~biQUq9$dyIMWQ(Od;O5?*>_RyT4S8UZwmOI$*qs(hND`M@8_3)pw{9M0#N3;$GW z)VqsSQDVFss$Vy@HKRiyu{bMh*mgIo%uCYYxKzs)}>hIk>eHR`(L`>j}o~ z#>}LmTU1faj)l<<9)g{jfVfdS1gD8sIuwcQ&YI){B1e|)Uiu=^V|8+>H)aY zw-@tV{PvJ(v?}PO^%C%F*rhrNcS z51lX4oMeAyZwfBf^w`+6Fo}qJAW48$)R5g8SfCp+GRW@=W+-qc^;FW`?H|>CK zWS9=OFcqj<%Bd-A#N4Bh$7A=?CC#TMAr017f#|krnOo$?540=V%1jNVOKL6p@IPY) zAHP&olt&VgD5iR^**^>s8YdJt2d^>k=>P}F!w{UYv&FUSn7rrjDNi=XB+Qe7NPJ+Q(P&B?9mOef_A z*uc9y;)s)D#JG%GFi>She-6L%dg~{@{HMN&+fw_pkAKjNvFdi==v?2j{;HGI^RYP= z+FCF`bq4TcYSM;=y*g=Tf#Hg>e&ugZv)P_yrDAYa8rbG=-{(>fnt8416xNo}Ucu4L1}L_*d+W!H z{%7;g8ShSmL-p@jhGMpkjJgeEg_0I&p9gUTfv$e$?}q>$Jc^Q1{fG{s&yNJ?OwA_j zX^_euqD6zlO#BREUW$l${C+`4VS6uVt{T72pc!IaKI8`T6;w)_I=y9JS9n6 z0lnPgPK_7@`}(oN32H}GnyZ#~Rlp~E|B2qsR4Y#Pbf90Yil)r>e9`*#N2Vs5l#W=| z{J`BcpSJ4p=?DMQZrG;w*S9uUS;h3L4>le7ap>uNE2}K4IH=ZFUvFv>_O^Yq5689o z?8{}JvX%1vMw9HO=lX1)*}CG_C)`YJqMu~!rn|S?*Q;mIu6Z{RBGKk{AV&^S&nZa5 zpUsYM4cNrkE9cFdO^cnnZlj?v*)7J6F%3kD{K#!_I}W`;pnwz__`D$+2(?;2W6uMo zcvzv;(u3uqEC2b=e+pp?P@iaHwhV%fkldLKXE|&JAIXm_D>+`PSu#Q_m=twj|3#YQ zzxwgmN&y<53Ca4dvt}IoFn3eyC|+y{9^fBOzZ+d}Kb&c;>T;xD!{jbiMf&5%&CO6@ zbc>j|3zbo{*m`C79PoY|CHDbF{^a`7(jcCttLIDEx;4AY1X-?KDzyS)V+O1ueZ@}m zMuVNv8Q~G5(V7I}nl2!a3~pHJ4|MsB)@31>Tz+anWyEX=f1orotMrKPW*xCX`*e338$EIa6 ztTTZKE@3)Wbmw&2DGyrerYW)U2+WtiOP9vrOe7@?FPSm~_cJfPkir7#?rjFO@ed^= zjGH@GduwwhW>Zp3Kt|3?E*i0X7&dtFvQjK$1ZMxkx~D&UoxIGH{Xyw;qw}@pR8-I4rRG8@fnUcvf# zoj-q`wnRr3B2m)ue%zGpDD+S|btxX`C3!81Gc8+zT+C7IapqmSCAqYLdFz1|IXg%7 z^IyM`z>TDZAP%sEc{=CE<&yJZ>pLE<4r#CUa=MgdxGr@!9yTq~$ATeS+DeU^qW2DC zLRjm0nBfBJj}WWj!%x|#)>bcSLu=z`QhusqcqG-c%u*d$ zlhAKNLpmQz%g%QAI5h)5T5f$DKQ-_ha;QnfD~!AgKhZ zt$Tn;w9u;pENtpHor1mJjBLA3{+oxbvA-8>ujx5os){((!Y zJeMwAIy9_)-^Z9CJ4aX~Ilp-_2=V3X4GM_p4XG0DYlrv#tm88BniL zl_x~WiVJxQ%wW%5D5P|o@#ZvAJoqPcywuxqAW9M4gBCv<7hvPI{QYVJZddA)%;ei4$!D<8z ztj!N>JDu25e96?l@fx;VvHBRq-1o0M9GaFD=}@^&gasm0&+i@DfLvk^gp|DJNIFe! zuFM~LzIR(;2<+E{>RMlRS!S+Uy}DucYKznk%#fZ~nw=4m>698y9E^n<)D|0oXSkOn zbpB8VJNNU(rn>moV`#NWtNLW%&`m8?nLM;L>VVh{x;zqNjqVn*+9&ZyYFz$qrcZD% zzO=(T%5p;c&aOd4@6v32I`Cj>@o@KmyvH8(kPg!`#Mv05Sf?Hv^03wsFL)0(Zrz%I zv{}`OR#~$QLv2@i@9FD2%uD;E-p;>Vy_#W>8JLFsujQkH^-WEWG4^Xid_W`$Da8}J z?wuPSiRZb&6t||Gt0Bik9vsa)b{xea&LndU#?Gny@8CMzC18DpjU_;i{u4+I=D=`hL|GF&ll8esIf`y0xEJ*eA+e? zsM~(=FR7_kS`B@Z z3rTk$#ebr`*7=Q&Pn@Z4hdu&@uk9z7d8L8C(20mp!&=-N{+Z`bB)Vs0m9bRZ2`9_vp9a%9}WpYSY^ZJ&G?GP)w$=6c)ni(h~fUOmu;*E0Dlm&J?E zWyfD-TNZlAPZl%~%_HQ4C3y?hl>NaFS7%LGn<^EIba0y*PDr6|WgOn>%lL69lS$5hu7Soogqo;Pv&-s|^hS{zv2WZ6)3 zJ$2;4HGbUSsmYVr?v_#mn?|;AkHK%n>pulE0#&tIzh%o8KBk`2HMrTl-M>$M)xY=F zRt#uA?!fh?Ri18{{r&25^g7KSe|9(8^mW9<>CGF5@Ssb*4;_hvSjb9-gzuI}r3AIT zuYKY7aAo1f<;RkY{Y|@MBhsFIFhG^Y+1NnQ_j0!U+2t{`jps3HouKSrW0VK zVjb6YOSv(^?r{3seIniO3s!@(p7iDYpa)Pk&}m|b${!v{#-bOj$)1RqpXV@B$GUw& zJxaoA{a85ZF)FLH%Pq>_P!36Ij(S2qEja6>??lq-{RsEv-gERuK$bE)s%g->fv4&3!fy8%=%vf@$>easnTFQ@VR_A_yW00al*fn__fH?K1yf<%Jx9;|S$GRiQ zj#kkjjD9tcSRHNh^oMIEm3cy*KRA6zeIwqr-r}AV%BV@S>FKw{C5j9lGO3;4wsJ*%lKt5{Dy#q9*7>q^5E$ z^V96X7n6OuqsxWq>52Dy)ZM2kc74asp>s)*DY&5!GAB%+uIjOD%3Xyla=HtyC@YUdf4a(}Cp@38$9Ig3~I>GIbCVX`U7Q!1cAJQH#x zYq7g~e$BIX6_;dOGbhH$57={9Q(Y1EC7uDF&7q7XGI%o8)+lvR(^7wm=LZi;9PGa2 z&O#K(XAk|Qjf=Y%Thp%*%2Qw4)a^Fo_0xa_g)}1>&$I8YvHUJh`Sn%i0 zT!+mR(6#oq&?=XrpZsm9aA}Jouyj+X{Wj`witeQ4Iu{%CbIAfGZs!3%^kLCC1os8f zr16Kr?ED~86gZ#_u--Z@56tP)&N|3(4`&D6J{Uz6Q`>fvD^ zp1#Z8`qM(0>c27Z5-=keAwvnXN(&F^JT$WRA@~${L&8K65fK_zr|(%wc!*KB_ESzB zm^cL>J#tU~DRR5RuTQ>u{%ROdU?RYrTkYHE+SIZ1J)#h2Vx4V=%m`1Gv4&BuR>aqk znUU=uBPdu)?WYB4_;a!gGIo}(2TD659mJm^UNZ*YMSaKRUtHP#*h@wpe41&9Wq1qA@ViAj3|Jvw0h?! zQ@J$+geQZ3>`$3Th4g|{5(@-)%S_D;G*iGt{>t1Oul9ZWChkZ*kMAdQm_M_^GbK3* zZy#M(no9S9zD1>FmVZ5@zbB7>$l50lVTfQOhwFd_k%(xqtblYxsz_&szPs42pT214 zIK;US@pLW|`CO*raC?U!nqB|}2G_fO9+{QBu%OS;-Mz#7#c|Tz4LA)sa&jY@xIV3A z%q9mk94+lZd^}jOs!-qwbisGSaF>VN@q90V(I9R%~X^ZHp z=gaXDg(AFR?0J@UP_p|IZJskCG#+{&%dCvEdmm>)X$lF&JjWdkq-Dc^meD|CIZseB zNjQjlY!c;~$FpGeiCd_+|<86M}Q?Bm%Cpu?|l(4la6W=dYB?t%bLG zm+sA8JR%gPIQWU@Tu;khrq=)5qfV5xBTIDh86?v5n0@^-$=8C1HqnmJO#@RrM;#;H z!r}ZuQ10-s`nx3%i4^X9FpYH4_t=rAK6{4D)vzhwJ1s>ilcJ=MQcr$_@(oeX zt#<_79UNCO=lozgl7B6iB*ra9kq>a}IyeD@0o5`U1}KiKy6(_g@Kb zhI%~@e4qe5AhF?043}787{c>*{lSAisojWdQVE{?=yIG9Ma;TJea2y^mKg4GTtb~@ zz3P_DNAP#-?b+Sr)wl55wid725n6=pKn!BWcqYdK5c!=PM=sCxwy!zj%<0pjUScm9 zd)Ws6Oq9`sO@sVr_^Jl4WYLMCVD^hVNf?4QbUw)P!@cMaNO_*_Rbt!B?Cj&BVP%R= z>97?gN%)JCdpGF^KbahwmPT&rnSFM~#Sh(?Z!4tlAhya3939R$oz2+WDJdx#XZe-T z-xoH8K(x+g61v|E@VIDxLB=;`cUi34$7MfESG7+3H6BHfZ;(1&4CqQQS!fr!KxDCV z1QfFkm|S(PBmfB}JmnT^Es;!oCZY0Y+yZo+R>pdmnwmthjZ(Pz0qA{_ib*M!JVjy`5aTf?~;(% z+Kig?s6-UWIQ8~@Oe`Hd!@iSzcjnBQ;!~bYjX`72lR}O&1=UbuZC;WDqky)7I;i8E z5!?FNT>q7U8$U;rIN;Gw#1s*El3NsE1#*L1J25uc_Cb-yI#Gmtjs?t&K_1Whe$}ce zACF5&O0oe%E~ByCQ!*eJ3wcS6zvYeu;xF09=-MIRw1}L9xJXY=90ttc;qD?{bXeHr zcNw)h`@+>MdHeQEVM|Zm3JSJF=!?%AEMK;4>a-2;Uca%19S8kjXr_~_;*?V1ITIpv zuF-28r8NFwf7~^XQm;t+x<#{rVf8zng8QO*G}OvHZ!7y*V8x2huo9a}pC8z8(_XBTh0A>crVD#Xi43aZ<7vq=UVBU$PAl>7bWmPKYej>$G|r^Io&ec?BkizC-9}r zvVgLq*{8|(k=%`|#W!eq&l-CSxVMm{)98X47MV`OtGVn?Exq-?A1NSBW(=?h0k8Bp z0R?36arSI)o>_kiGIOUR%wz^Vc*n&^Og2%VYS8n>EDP|`+6v|f>v2?udDUoYV(aV% z*30uPD;`2w4AIhc<-FXfjj*YlD^dO}yLKHRw_rt*oH6b3t6{XoAn4t0ZUGa4F((Wd zu#y9!$R1Gi3m-$4BJ9e3n|n045Cvbu5>QE<{29~Z?`~s^z8zH?;3g!&WX_E*M(*r( zWmb}|Ro=9e+i~YVOg={Gr0P1_oohJ}KHV@_?&6G$Ae1;BP09n_%^wFpbS6;T%60im z+eNpp!lUEYW+U@l?e~eRrDJ5vp}YhI+7CCs_xH{*2@-}{E<8}-cAKR0)oyq3j#j-1 zu!b$pvS^CVoUGm?*#2?OLkFzJEAME_=2}GB0wZr(y7QHKtj*mgpJ6C=h`^LstzpC@ zRPncN-rSNf>h1Z~b9qyr-MgQ@cwylmM)a@UxUpUBpB#^82!|y@GOu(hg?W5#3*>y0-6nU2%n!6{i zAI`Qou6B#5(1A~197M%Bfq-~svKy@4Bi~!}i)fbyg9L8R(DnK2m*-f&va%ufYE=7c zVXo$SZ|@}Is%Luc9Kloln|n4_WZ=GmlgkM9W@yB&>SO`0v3!{a$A)U7>{&_2my=UR zHhuN#)kH#ECCB4LdW(urGu~YWqEU-fTz}K*vB}3-mEZ!FH<`^`=l}WZb+ZRu|0>x2 z&o7t%&5BB^{<%E*fBRh*J{tJHtbzUg?T^0wbG7g9zx(gsy}s~=K+u1G;U9lqI^&OR zo`3w^fB&|Bmp=ym{`(96_;Ztb|BJZKKfb5tKVb4d{`#N4T~X=kx6S|g7ySNx=1qDA zJe6=8^^qQVeSC(I_f{XD=r8~Ejh=t%D)G0aZ)87@YArHi|GCItlvSa0C3;rV{pqMq z7d2HpvH15NxN*~_ee^ZDeD=?ucp>%AWkcFhp67Ue7k~&Up_dPPkQbw0CRN zC~otwfAhz`UJ+U8Z-(mcpZM?Jz25ux&;R#V{{GYd=kE9q{|`P8z5ixZ{0(4B+1u5s z)tvs6n0%v~v**lN0P&TG;yaEy)SuR3#a$Nff$OKGU?x@sEWo7CL0UJGHRdOTb#{-Y zJIO4b2#FNBD`>JmPYyi|!p}LkJ)TkkZc$#3xYf|^iOPSNi~|r{oh0R-PU%FyLL$Ow zy%6nX6I8u^w*zC`rOvGST+FC_%Hli45r57Cgh~G##reP+xLC{wZNNgS6c9`T{MKE# zr;xWN|2`R2@!sLEemDQz+F{<<+Yn>aCq^&SN~5~8cod3StX>HYMt%qs_RJD(M&mUw z%NK|{pP_Rly2!{#_L5|Xl=InNgURI={PjOg+bZ@(6P#|^EGH{S9O=FXeD-a>TKqKT zJ>YKEU5pqaBSXmV=Nfy!FK|z~y4=Y7GNwM2#$wwEDWXm}EVfy>`T3m}8;7b2W8qO& zFD@ymkkMjqKpvZcbkq`uD07plT^-8&4OGJy_3O9ersCZ_mJj0^hwU3i_RTpA(634T z^H0sWY1<@;8lmFHAAgZhs?rN@(rO z&`tds9Or%t)B__m_EDvyCuv`XoYInI-)HO$xn&_ksRBw?1iB7bcmu+XVysE`O^fNXqaK>sQZxX6^8N1M^)?B`7RTu}CX@{VEX($9R{`}L%6NJSZ>;UuyW*Z6WrsV2CDpHsDd=>!iW^4%ND5cIkkTi zQ_hL~nq<#glz$I=z;T|92j^VCkb&IA=Ws66sTO;hhtg*I6)s>g^8%7~2Wlc=+;+my zEXbZ7%ihkXYKx*H$e_7wahPc8xYDs@%a(bx9y(y+i#FL zD~~HX$H9SyapynAl&sv|tfE?&vt{I{QNiyE%(dr()C^-Ov^e4zztXpJ!S&Gca7y%g zkwf70^Haqr;J49vbCmo`scQt^#m0b=FJJz*LGgvi9~%!We+>A)FCR0FJVb6%G8mKj z51V(t((BD*l=m5XOfHt$B9>t`K6&5dI=6;Rg!@OQbeD}Rvj?u*&eJrP7np3(sFMue z_F*{u7@AcH#mQ#I`71d9+@6k{P)!u^9X$thg{Ja{&|H&418QO7nZu|dwPN#oygD58 zG^H$_bkr0c2jx_AsvJ>4-gCI2J2IEPObPFm`pzoUaS)>=2Pihxip!&J(=ce)Uf7BVC>8kMZlPAn(JQ1vJ%^}2R^(x{p>ei zK?_gd3G2xX*874^8pCXa20gs5xzV?gH!0M$+Qqb2+QUs=-V8p+(FV-DSNvlP~Q~lu-2DMU+Hi zSaiAM@Xfx-VNnRG*7n=7GOXf&yDnb>y$9BEN82zYW_Dp$pVxb55C(_eaM_8RAmZ{>~WjQ}wzcI2bGlivlXC^>0GHU$Gmw!Gt<^R24`sWfMfBeFWGJ+h$ zgycRbYKI#qt8`|-9#V~-T3aKh<~g6y z2@spbKBelUh&jEO>4C3kOFU6fb&e3x!F8)TuOP8eVKTO?j1;nz_OLhG;xw z-_;k2(y)=FPWo_FoNsZ|scbtcryVKgWXd;N%>`DENNx8h=UU_S2QfXIr{r{7--gwa z;bS!J%XbtKBj5rTHd$CN<_Twa-MsR$tMn&|IOd?GrC$OE$ChOGck*9j*fo}edz4!~ zi9Hu!y zUt@}v$UGX;Obbs>W0-<@_2U%%&rl$g$00=ie(e0(L-VqMwTEgu$2eXCM>MfU?(RKS z(=U)3oxpXb0bZK8O(RD{4gNgqBGFBs>(^MrOr$l!hv`Q>=~5_ZS87?jZ6 ztCQCRediWq!eBsUtFG}>h}Yp>m`)s~5!4P-5cN!NT)lF|OtY$iCLuAkTN6e^$|bSp zWk^C}!p4%WB6N2gJ&uWy9`5eB(Y>xdnGPQm3)?GeIMVNMFO1mMee;O!$(u1{Rd>)Z z8a#L*;BOh5D{tA%d(NKcJpd7rZ2lHNwJ*S}ctevlG*1Gcx(l;C%PeL*pt*}P`o+1u zOEi_pRU|ZSX!x%zc_H;5j>W|v(D9JI{bB++GXuXQc+gbSQH6oH58G(>y-RWfw*vN* z7ShY)%n1sveZ7H0SAUL2S&57K7`nl-*?fF?wZ*EPPcoYR>hjy2uQ0v&l?NdY+1Ktsme>(!~^MSi}d{Lig3z9~M9Js^vEJ zGkV#AnDiXwD$G5kUplM!gA#E5+Ee5T+3E_^$!-M*GlrWlllyjWS6OOfGF>He$qm*;f+g>r6JHVGx6X z5@^jPD4Tgi8A`1CrkR3${`Nl%VOfe;bKw?6itF;_0eq}w2-0Y%fE|qmpe^v^Rs;3R zIHO(%$Qi%UVU_2N?fsKj>8NAP^|(v3FP48q%wNFXOr3AfZ4__IwlS&GQr=WVNxN-p zsFMu9DKWFcdF1Jdse{F;OS+IUn@efc4=$X>HButllB2t2tgsyB#!7~XEaq+1ca#nY6O!bDi8?vu(nfo zGZYjoL&!mU9cCtd?|F=YRW%p-dK90fi%<9G2&-oc)u?D5T5}h8lMVRAqz%)9r6TKD zYmi$GgC|uxmXV6*Gg*Qs>JNh&wi&TwFLy|PaW(wko>--w{-(Yj)uj1(%wWp*Nnv4O z>MrsO=#I+XSo3x$TONKhB#O_;TFQ9?GhpW6_d{rPwlV{0-4ps%9?MR(>U{pK7jL=T z4V89OwPHiE6}!*f)$E~QkLq=1KNA}279iSt1j04L;@yU!Tn|>Qly3PO8QOApL+Y=1 z!6!!@(tld0WBc)bYsCP-eh*kRE9~sq$ra7Mpq!$sQ|E(boGCrl6T1vn|CO!_#o&d6 zjI69<0HNu!-6FQ-H2%5Yr?;*Ll!V-@9&} zN*`ikseK1c4FcdejS%JsQut!BL^f4s#rB)W?`X@c zSJLKqEE4Nhq2`bD3=F1xTse->U!-5|T5mA+qa=8a%D{NKPr{Zga}D((zOKDomF(R*)`2Q)LwY3Hy4hF z*Brc}c__1S)XIzmXrPm7(cAkU5^&6wrFwnzSK)f0X&RGXQQe9!^E|L9cCu|Iz*|%0 zunF3rk!@Yeqgufm{CdbSjU3|C%EjLV@njGMBPXj?WnMPay1Wm$UcJM%oSK0f#ke#q z>le9VwP}lv9VPW1$IZdp%}%p)s4U#!sP?28vF4PvGoeJ}Pls*n z7j7CnDvc1+Dr$d8@Jk*Qz~4mfJuSz%wlUS~jv6uIOxvbSnshQ-Rb}vcA{;~#t&e>nSxN{Wu4URAAR&utCVT;tGIM>>6F8w_+1j& z+E*M@IG0UtBMS^H90!haC>doloH>NGFA^Y(%Y0uI1LzKDF%3u5U&+!FX!HF%jon5Zmu$Pv+hxOmTo@xk znoB0%$mUgZ3Rm2|wht$b3GS<_N3_w?C#qwO>nSjdw$+&iY5TT!YGNC+shCN^8T;vh zVc!Upe}~Amwy09sG?KE{16y;r0K*SMMz-F3a_?S4j*Dh}RBvWy`)0PVXWO7Jv@?_v zJ*p|7*NTkk@o&XpMHik@58DZ=xZ{6!=Kr>({po)Y6vWwDZWKTn)bTu|4Y|Sa&&^7v)xM zynfxfi4@vo-mSZLYoaXHf9yaW{|SVO?DtL1gP_^;?6$PREB`@pjbcY_obZ zGIxZ5bM zBz~PBBj1xuL-;UBU$@h=jm)2r$vO@&wy#aDAdiUkV^)-edeVO$wLeVKSl*(DQ+cu8 zZCc~BRC4JauZwZyU`W)qoJq80qu9y@>1jU(Z%bQ zUu(AHN%$48a`}b_bOb2{z-zeJC)B9{mB$@GePBih$NaS0nu8b9%ehiyXRfXTORpk0 z)&DRvulh;KbE2Gn(;f4zu=F|Gl-qfT2QH!7_49SPIx-Y2kJN+Lb_veBee+>h z!nk9}eG-xjcJ?#&H4viGVhA5}D+AFeP>kmlHDkv8{kebSi#qrHEb7j4Vp0MM=nVK& zL;wskQ(pgx?Z1n`Bl(Eu?p9O>9=0;mbRLgvYg*fDx@mqAB6K3Xei8W)Qkr)`5To|1 zhvzL!i(h}&wM{L2-XA@B)UQFNMUjCSnhImS{`z|Z8L>jovMKpR&F7I9d`y;ua!}>_ z4zM}9xJj4a2Q_G@SdUf3r}3z@nIppLe^$yo<#o*A61IU1@!-jK|w(PZHIx{oljG z#isAF`gaLce+sWy_p?DC3~Y8YyQZh>bnE}Ae0J~q zg5s^arG~J3dFR4uOC#6@HQDq>fA~U?76%O$)Gys+AgOt{j;+utJspr$dH(#l*MWgn z-*`w3G9h6HLn-MEQ{N9>69%Y0bn;}^pr9bTPpZHEwKqHDOj_RE{}PF&n=GYu$I{*) z3VEpb{iS=qt8oK-znhikY{LPL#Mf@DDb=x~E%Ls&IMXx+syn`&K|YuJHkaKA9#>kK zt8&(VVt=N#S9oirCPqmk9QiQ zh&@iRJIE7#ym{{cjpi{A!Rk|wW{1sRxbOy4&`v;-ge@$slVHULoLID+HpEs$tU94L zQGnD=!hU;-*TVq;H&O4&Lkz_9I+_JLA*?&WYD||>i^PJj^qie`Dyp?Ns{ySRV68sp z(Mt-~9c8GCE~sS?l(Hl#og8MrsFSTd()~kXM1-((|{?kql|;>V)ij; zj5#D8pDdHBHq2`p<0HRI+Hr=jLlSyn!8dA}^_X!(@T-w*q?EAO7MCJHP!s8T%3+R# z>$oP=`1OU4oP8JWV za!{3&Y^hvplI@4ulg8uv`nfnP%ga0NY0PK7^=X^k8+}XP9twRGoRlMV5oQFJ`;GS9 zkO~%nE%Fkg7MY>^7aUUssw!H(grms53Nwbvn);e>5P(_B3G4G$m3~`EK13C zoYZU2i$7-pu*aDVU?#bZ{-kD;-FigKPSLUrS#FyD^RYoKX1&$9GXz-!B7C}Ut|f==N)1XynA4vinxrxg|CH>X*RY!;=98o|e} zWAtif+63O0j>`6Fj%HHV8R2VUjJp3A(C&kb)+5)gTi1v3`!w&FGqa)yLA6_oAn3Q8 z{Kf%J&sdUn@`Ip|Ze{k4n}_t^N7VVFq+>+aVGa^jir|jSTi1Q~t37s`eTrXScH#|Z zNCF3C$Q`U6UrLQayzH5~L$f>&$>AvN@ME8p4=M@7S1{@uVO;J(Q6YPvySw}2;f2xr z_7GAeEvttX4fa&@*^r7wh^BE?NT1@LDNN}|tzA`GuP;xZoGOB*#5ek3xqeeQ%FYO_ z-8zvWd8-ODF5H4ybe`XTL;swiHGoh$EuO_`O{;#jBRa0v?pf}bgUCrLMpA}snfj+( zSnCr0Xl2!$HCDwf(0{r(H8R->jbb_r>F089%hkSA)=WC#QiXixzHT}1tKj*h$X&W= z5Lb4!E{wIX@Fw|6Ta3Rj{J8a*Lx&HyQ+AaecJcdbrc$m-IWkfwNPP5w}z_tU7*@yCTt=^m(-6qblFVWd{+c=TR;h7MJTGGqrFVMW0EPqso=>?vEcm zr}+JwRb{QK<8lcra$8D)*fumH8x2uRJY-tZj{fp><_RQBGt%gRfs`##hboqsupUOwpGY%Bu38N)=XY*vBPJ-(_>mjD%Z*X78n<6OxpQ>i0oNc3hm_ zm(gX%tt>2(p65D27O6ecJhZ77h)W{JW_QWAG`RZE4jRpePcohx5Ev{GH60+7xQ|3v zpGew*C)mQdIsDn#q(;Y*&b>*fbdU=ui$_Iy*+fb5EWk*cBoG6MZkczdy?Z$FWZzi; zEQK>BSa9D-ITFFle~LBsN{Q|@?@xozg9WvE`d%xY;op_ovIhXjFeP_q}r!SCH>U8$e%3=cQZT%F< z*zN4=yl@mP@@fr@j!rDfSdlz8+S|vFEr~Jj$R3iigv`B7byX#u!GmGr$B&od9i&3w ziN}_}jWtVHAvb&Y>58(m3mjVhwYj`v-M0=k%Y`Z~EIV@ic)36q1l>Hw5ITR{_8hbE z`p`IpO{x5`nHNy**u7EEFZbAiO`Eg{Ft;h(QwNe4@T5> zlZKvIhfJ3;A>u=uM=!~RI=Xg&0)ID8t*)lL&$y$JvmptjOssQ0AUxy5Z8qV1ponV& zhLLU9JU&)nA)-;47&Fa3*>x;|OBPGz$ri2Z(`BVahp9rD|g;H8-et?;=Ggs@5jalg*PAW z^jj9&JpFoP34ufw#vXU1?>diO{;S}A4Cl!oZZ@%6|7u^c+<1XCIiWG`_CE2pRCi`x z?AoPcc+z%DXMBqRZk_Lk9HfSmv*R)JP0?^Xd%|^U?hYD%cdzKlG;DOm^OY22>MCDM3Yea_2 zLfvMsr_@=~t;090p?^0|1AKogyBJL^o%6ea%HlD(b#o!Ob}3{jyaE6=0%U_Kzj^`D z%59a#vK+gZ){T;*5c+B-C;GCvau|;`uCZ0+%XYT58VQh}q(H4y@+5zLfE`@DFM_o< z{O|0LlqF7MP5hRy9yHA9_iAS1b>`=vcK0n9Ap;2#W?PmsZZNrlj{mPu_6)t-{;A*j z*BcCU@8U8Fb`3P%l_ZM|I=;5C_Vmb_1~@MyQaKyS*fQ*xZS^4X(uOG&QgW6-r zi#~|3@4e#JR8^e75cSS%tfh!>BgiPD`n@`%t8Q4Bu=w7{?r788^64i#aQo*kUgVZ! zdzzARqiYRmw29!=kJaCDzdtT&ZIhZlsLgh|zHC|kRby(3a{0u2qxu=*l3^F|F6ek* z-utE)H-FuI^4Xw*xhL;# zkqP6`>=z=I+OV9u7iT|o_laLbyosSG*s2GelDa(5s47-EJPpw-8S?3AZ=}pDx31lU ze5vJ8pKmYM>Ie18ZR3kei}DFkVjQ4iudY-M1$rzy zg+BE%h>9$}87W&Ts(s5U*|q77Ki=(l19`vAqxv4cvTHpmjFdp5!AJlNF(qK% zv-bs}%t@l72M+u$+RkXM~4Yn zn^kdl=Rn8s8557B6n;F~bBC?LUn?56FaKbTzN~~JgtMVXHfLIa90P;k&n9dk79Czm@xsmLko!&0akjF^3um{o{0jDpc(YCySFlp=9%wfYNG4OY+~Z}1 z$EA;!o-^}LlNAqgUu#F%s-MEIDUkO`-!fiq7H)`q z-XgnO+^5;E@~{9!;7!6oeI9@Rd6i5760u`dJDqI?)VYDG^VHs1Fs#vf#-#atox>da zI21$1%pY5>pMN?_0GnBAi~FX$5xJC{VnOVSOP{hoC*Qi3;HychgM<$Z3uXBR^;N~j z1G*-CxK-geaZO?z=;uU<2_u=iJsWP7)5U$5f-3m?HcjH3&Sg2BB@k_~>ZwtsD~o?& z>wR|5!YNnbko7Rfzl%KP&SMjS?R z9CYRF+lo{uh@2rse4bq|_NC`;w_IX|wz5obX0I^}p8sabQyZ(Isq~O#DRF>d4jG?% z9oWCWg&tZtu1G)=zmLHvO`eK1w>aooR@&*-vO+{n%gZ^^|CAFmz7nM2p=d)AOP|{7 z(_vmjC`sD)p*(g%mQ)Y+2=e?XMjs5K%q{G;rXuDXcS$$|U& zdauVYJD4^zFD0Y%>yP7bBIk|3;KYUNvSW9pT4B?8%=vOi^+1?sK^th3m!L z$ZLleZ6DR|aTQgDOjhUMf%6pVXC$9X@uynjzV}xZ)O$f+1&zHeqCg-Qr5|^f#UQz_ zP@9}^a~YZ?UlfKxbci3=o{l~RFp)2`yq!3t;h8eVmBfE*Gi5NNB(DA8G5Io9-D&FS zA@9C&3tph>z5DmK&>o(v7U1#FQt{C$CHRnN1!r&wN2$;R3>2r96?w)leW}}iKR!N_ z)klZi;Uy`EAAkIll=KUv#7rU)5OYP8di&z)dYF>pkF_W)~JZQJD>?Am6`a$>I}%Ddw%fZswdAx=H=!rC}> zz3$?EgCfol4okJ!jlgc!>-IIFV>B{n)a2M}#>Fko?g9@8GJP+hc5ap7Q!rlbbbw@iHu%1!AlC%dIwV8mNyA7s60bCC-$EM z(!5C|k-xLZ-g1*G?yxFu{xgc38(__ppoF^1o#?3NPorH1U_Xj3vI*d+Uhv zxH=2r))cl?b7;^8Tckq5)QR+jzPbf^-(Ida3?9VAWe4*vM%1gX-kpS{&VX@@BEBXb zO80V4(=e>XZxDV0xG@XVs^Ih=%NJq6d zN?#@2`;oXrs*0=N*L)WdmdvDyC)`KX<*IU<$&~F1r(t1zE$l<*FcUX^>7+X^MM)Zl zBzwt$LFHE+3)@Yi=m4$r16-cysg|$3JSq%tfYOrJ*6Z2=5awI%Tmv@kld;3P%H#NQ z{rF@8q`Y=80DQu!oD0j)2Rko63xof(i99-pAH1f*?e&Qy-P353 zg|uzhf9W>?OVBKNFmrX|#Ol8sCHpu#2UR^;L!j~{IV$kO|0Fq5@ttwCOqAj}cJ~3X zLGGN^#180+%$Mtkw4)CP1}b+tUT?noi--}v<+deinAoDwUBHR+g;F(zqlrPNHL=P-)#!{u%>FMVI9x#2t?XLCi1B}HVM;cHSE%Pd!CFIR7; z13iyu$oYBOcipNWVPo~43Ibt5)*c6(g)MbLWToz)Ky+d+*L zB*sVZ4c>OaQ$!)wnWOTQF|(w7C)MN zjgR_{Q?Cs~ywxuFL2ETQh^s1p89g}24YjFu)^f8F8&}Lla@$JTx@TVE52QApD;pfM zySO>YzDd5?O7=Q;ctziW)anL?(1ZSfq`0{_vigxM@GMbgHa&sB0cTA|$eHS&u>0+w z%e)PJ)H>j!G+tN~d)&j>r;vfYl+&Oz7k@hvicC3Vd_XM=H!}Hs!GX=AZkV<4x&QcN zwR&A<_*_e66sG47KcAU1^4oekxTv_N=Y@@u1o!HsI9OhKKQG24$qhhvG&~RLaB8Nr zO$Xb9j7=2qnz8$B-9I!Yx^9J+zw%vCJLNQSdLpduavteSrbCk7)RU{)Qf|4+^7_%~ zRC_?CKAQdq6lo((wWG{+P`8v-xoAa|wrZb7ZQ!|g%X0D^4s<$&Cb$IcL6V)m|AH;2 zHay?RhYyj7c8?xC4lovhpFq*jxaT@`)EtheV}~zNxG?I*m4PyzE(e@C=}H<(%g`Bt zlOka(%B|u8j)gI;Iby-s{D;v8Mc#{Q(X%9DnE|eRTRDlF-7ou`lN{JoZ4+YELR-D^ zoM~mnPI1V9q+5f>{T`*rT!TmcxfXt5h(D)i3fsr(l+;P**}5)BZHYhJ`63h9%E2|L z0RaopaSP)xA(ew0bLPv7W{8mj67Q6@ojY`}sZ|9-<(&g-^f3@rDwR`?nHMwkMO>Xy zt^lKRBVgEYLKxFa2A3BG&!v4;PAEeDNX4EB6f>N$e88=TpgspBslI2Z&OY`Ut2@8b z1H99*56O%4F8fH6U!jM*&p8#EF-$~zAQOHvnw5>*yTd!D>&LPZDDu}2Om*iN6IOze zh{miEQ$!2$S*3_3RGl(Dn;LzP$ru@@$YY^Ko*0V$Finl^fA4bewqGy$YhV6ROFWZ~ zyJas=m19IM33o2DghInQh+xV(b~SrHTA@r%a4@{Vgm#Y1nG9DtY<3x7zX5EeI3vFD zAvua#>JT4g;)(0*feNe0Pk^I1N(hc4EKYrpG}h;+2gNJmg_*DB;zw4SWyV014!m)k z0Hbe=-I16}W9Yz{`&Qp+pVe&~(8Uks54gnC21%T~pefUZSE~D9umHkMI_lhr^Mob% zg$7AlVeXL+?F+i^Q37f`4Am5;enLRyyb&2p5dt9bx^5#1Eos?zaEuuNBn~a@sXABI1NaKOqJPC5HX}uez>0py~4rYd3YX#iI(H zV#Kb|DiT^MAXi9-REhGB1eqMF%%FKDMhXz zqy+&B0xEa8_PjV9osoYCN0MK@@B6*S^FHtUj9K3;I(P0}`Wsbem`BD=$47*mcRvQi zGQkMCtFL|)oAn~0tsYb^#4oh@*jI1^sW`E1$o@tLOd;|L z0ATe%ea&Wb!plfg7`2kpls1?3Loeg}*{@riauZ=XsjqdR|E~hETVhmH6ad+^=A=V| zf|yTUovm7hJ=!4>WilC)hE(R`wTVLlZUd1_=t%?}uK-onVI0wQ3Lh5!0)h$xO{f_E z(@!yhgWUkr9qvZb;vyiK(f@?w1Ka_R--PLVn|~X(dg0e+Um`y9LW)vI?&-~cXYkG% z2Kr*GUmU>Fp)G3FRDd20Mm34l{se&~e$&H}B4t?yi%A3(^5wwh-}Hk+H48vE9y2r) zG%^8e(_azIylLQ)VAs0(({^ zq80GNLe2=L0X*?DD;tN$R(^voBx0`GIQLnfv>6So2#`VM z?!S-2>BfBSM5w~V1i}C+JcBL~{OH_Q3p)@LxpFzYc@+_Fm+X_Xi3O~OKT@$$YdTQU zbS5su;-xX1^)cMqNml6M&AC#_-e|I^;2>c_r1vWL9EmJN4gw~?BbLl3BOkd9^@y9# zWKKk2OCO^$j_8|EYsI_ca{&;B02N`0dOu1KR5bw##_a!BJ9?t^;e0I+z;FcFy~t|` ze|dNPaLX^3Uy`C!d-F(22?MMvZa{K_cP|pRMHNB_j`B#VVx!pjX#vV!;!5fUA#x$| zk*4q6K}o6DX~uXi$BAMTYJ#y36N_6Z@dgRO4UoxZ8J9>iLpcn5laK;#YLcj<|HYJbVAx%|933LE_9zB__lX=47^wT2w*k)bbPRN^80&7G0^b{C9c}+wCW%V7VQQlCY#bF;W z?vqkdgYf!@l;S*`ADcA;pnTf@R!P_ZJDLC# z&6G0Vc}LRJiJV#B( z8E<|~e0;nIXjQ~fZR)hAd=<8i4RF`FYlwu_sKf%&dVU($$4BFMy8ffUaH5a`@~8yB zDa(i~8aU9Cz^nk0aRtXvrSln3NrHDN^cR*R9ig<7FwA;x5<%|-&trT@TAlw60n&Iv zAqWz~rSXBTdSWwh{oM?d>X9y4VSe`N|C_-2eEUZqIzpQW%+vhsbEOrAU#1Z^jQSsS zd*nFBDtj_uIHceQoMIA#4@Kb9K(g~!#L^7oE|5JPk6oc<1)DfXI5*oIBv29lp%WP> zH)jgyn|;=y2TYRoh3QB_od1JO3-DU1D;MA|oqmMTgWu+r69N0eNFa5iX0{oR$2-Oq zFc%w-y3H`EW{RMw?nqR>6*8%CLh057$f?d<`o@48se(vpy>3>h0DIMeBoz7s?-xCk-y@N2l2SA0AQvpx!inm7-gwy zlzdJi{$0c%<<|#TTd~QPa`uAP-0Mpp0kr`OPyNa zV3E+cN=LI#jwOLaK44;VjS9tU8ksY7F)Uij)u5JS8))|=!KB{lzmiT0{amFiN;1xjB}IPw4uonhE3gDXb2a zRY>S=OV^jqqcjp5N&h;YwXJSjUD&Zd*R%SFCWnw?`qV5|5s-#L?a|TqS z?V2#q%i9eYBN1eX62N+7N!y8gMdF^p2qn-B$?YLMc8ncCO$y0s6$04@=fjZb z^$y!0Qv-CJtF8v*5Ho-p_7>n|&P0589iq-)dUR=Cmc&fu#iq>uZtsf2qEFCg(378c zl!mDRAhQtail0}!rw4aT4;Ge0%CqpAGsG*LG#QTwJGT1>5|K;-O_FJF9({jUrnFoW zwv;nj%K`Il14$d!>vispd6{y~e%s5&2uq1O9Pa%FUxZkb(o710Z0z7(;Mh|#GJFn4 zA3*uD0$k54Ww2Af0_IJ>f?W-0me|-K$p?j0{M3l9A540JCUo*&6P{({pqAQ+o4^uG zKV#(q6h1u(dq$r|wv97M$VNfZF^sAKLJ1+j+OQHbGe_bDkUsa0OZ=H;N?lPQfZ zSD1a+zk{a{Zvc|BL#b!_iSvU~l3I1>0m>Gu!UtmR*!HzhaMUxODOKKWHZVcxtE zmC%<(y4h=U$bYAc%T(&0Z#&~O5?2wCysbY$Vub#o*E8~bCnTbNO3M(Bg>K4^;3p88Lz`@42SklfPryf_+fvYX za@CQSH@daICf|IbNzf(wRZu-^NXvwyC8qE$EY8tHYG#_*#l^j0uz^nQ1&V{iL(_7i zIDuJ~x8ku3Aq>er|5}q={(i^_z+~b|P&|!e{ixRfTy_U{p_PO&dlg?i{`d-_lNs8u zSj@8_I0%rc0a~VgMn)k7%mO{Y2lzdOO_UwXO6C}McaFY2?<0q11u&9 zb%N_7`+z7pE7-`F{o+k#fB&AaLQ+BhDJ=}tzhFSERC+m}?dObWArpxTP?qyH&WJpz ztcg7GdX>8>$S#1>jj&9tO3%AzPGVFH2Qw?i8}H^IvBiW3i}YvcgY5tX<~EAjwP~5? zkmn8iBb?}h;I#$f$aLyF@)$SS$)+u&g9}Cea!s$RT=WWvp6NY-%TAW@eiT*sF z;SN+R{R&0~P?;9#-8KQjxO~+?nURPDY%z2|+>NZ3Up#lg1=IzwvAls%6gnuP5m!Rj z!Vkt6f0=M!wmz(xC+Pt5*VhJvGP+B2CZ}amkv#t!7I>1<0H^nPwT+fm?JB7kW7YQl z!Q19h)IXPa%dMVm>wO2-eTB~i0 z;U7UrA*Sk$-aKN`@Svo`gd%T-AG|{}I)L8Y{+(WpGDly3#lXOTYLe*E{;m z3?4YrF$wR(E@iP;rRZ~7g?`dwKKVH;uGqFY&S~34E5ag9GR-wKG;RUUU&iHfvvYHo zS{+s*z1X^LQ&b1C;upKrD)T`)3Y4`(DfucQMJOk zva2n^!&`dIPBDMo-w&vxezlr$m>!0inwlPuj{d}0bRdiM!3X_%)kBtC$*C?3a4|wx z0J{{UgOvs>YrnATc22dH1;gL1!R*DNJ?u~^SMzkUZGmn=bNAWSP|j8}Gk2sLj-8kW z))a)$Hei}Pl&Ub8I!qD<>?+>FBGnraAjf52yC&0dQIiORPaHo!cw-ty^c$0Nm-jgt zi(+6Q0;<$7jmWN>y=hae?}v`*b$j>hIhSI<`(oNE^$Ypv-t5M@<&x7O&=SaEPk~l{ z-X$wAx}jVgh=f27E%au|536ttf3Qs#mNC%|d-Z2Oh4Jo!YOE$^ibzx?@!Kv2fg$jo zxqvmY=&iSIp%>lMG$SK}9#~jfmckXwwBoj{CH97Mg`c;#dP0?lsp%@i01YItbpul- z=axYF!c<#WW$)s0Vrz1Z@-FqbHgF{uPyL&$ZBW@ z<3USDM;ZO({)U&FG|SPKyP2J0uTh4wp)yV-=m`cZAGi7;DAdDPL+kW9FYT32!LAO- z=;BL9QC^)^UV75JR(nXQc+2+lcr2W;_bhAIpT5J^xn0l&g!>?fp-K&WsnhY87>VlL zKI`O~uccBcZuo;hsu+oN-g#}Xw7qh3fvK*rh3}ehNmaM8r4q~6MoI>mYt7##cK0e^ z7`2?pCRHwo)eOzg1gqPR)w7TwiCH{L; zUIsT>#uqPIRE8Gc{9z*uPO6d1kRyk^I zd;R@&qVOCiO|x~UcAoLa!N8~cp`k}hTYGujwhlGNl#qhec@E-93$>6(=ZZ8MFo>-T zC4ae=-TLKiAoW3ZFvAYrw6A_Oq6sOq4K%TZ*+-_Prh<^tPaR156@K|Q&R7<@G6SnR z_|oC4)#+3+dgZIwbx%M5R7KZa>l}gd`D)KNg+bXN7fk-zOjb{9+f%4D6vFoK@Mr_~ ztLei&4D9O7R%}J*4AMM9On_Soji((V+8T0V)Ah`EUbzzd;t-3asae(~iY!dtgd;)3 zf2|Kcd?M1nsBn4RHezzVq0ALa1hUP}RBMAy9feuL9JkLdT5S+8kJ_f^^%lV9Ld&kM zu_!XK!C{?ct#z;>5M@qdCH$0yg~crxAa{f+wT+nT^A`pq8cnYsVb Date: Wed, 23 Aug 2017 17:18:59 +1000 Subject: [PATCH 074/133] Completely untested trailing spark for FC rotary ignitions May God have mercy on us all --- reference/speeduino.ini | 1 + speeduino/corrections.ino | 4 +-- speeduino/globals.h | 32 +++++++++++------------- speeduino/scheduledIO.h | 4 +++ speeduino/scheduledIO.ino | 3 ++- speeduino/speeduino.ino | 52 +++++++++++++++++++++++++++++++++++---- 6 files changed, 71 insertions(+), 25 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 785b24c1..275678ab 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -747,6 +747,7 @@ page = 11 requiresPowerCycle = boostMaxDuty requiresPowerCycle = useExtBaro requiresPowerCycle = baroPin + requiresPowerCycle = rotaryType defaultValue = pinLayout, 1 defaultValue = TrigPattern, 0 diff --git a/speeduino/corrections.ino b/speeduino/corrections.ino index e9bcf88c..2475c5c7 100644 --- a/speeduino/corrections.ino +++ b/speeduino/corrections.ino @@ -114,7 +114,7 @@ static inline byte correctionCranking() byte crankingValue = 100; //if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { crankingValue = 100 + configPage1.crankingPct; } if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) - { + { crankingValue = table2D_getValue(&crankingEnrichTable, currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET); } return crankingValue; @@ -262,7 +262,7 @@ static inline byte correctionLaunch() static inline bool correctionDFCO() { bool DFCOValue = false; - if ( configPage2.dfcoEnabled == 1 ) + if ( configPage1.dfcoEnabled == 1 ) { if ( bitRead(currentStatus.squirt, BIT_SQUIRT_DFCO) == 1 ) { DFCOValue = ( currentStatus.RPM > ( configPage2.dfcoRPM * 10) ) && ( currentStatus.TPS < configPage2.dfcoTPSThresh ); } else { DFCOValue = ( currentStatus.RPM > (unsigned int)( (configPage2.dfcoRPM * 10) + configPage2.dfcoHyster) ) && ( currentStatus.TPS < configPage2.dfcoTPSThresh ); } diff --git a/speeduino/globals.h b/speeduino/globals.h index 7f66dea5..f268d577 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -29,6 +29,10 @@ #define MS_IN_MINUTE 60000 #define US_IN_MINUTE 60000000 +//Define the load algorithm +#define LOAD_SOURCE_MAP 0 +#define LOAD_SOURCE_TPS 1 + //Define bit positions within engine virable #define BIT_ENGINE_RUN 0 // Engine running #define BIT_ENGINE_CRANK 1 // Engine cranking @@ -85,6 +89,10 @@ #define IGN_MODE_SEQUENTIAL 3 #define IGN_MODE_ROTARY 4 +#define ROTARY_IGN_FC 0 +#define ROTARY_IGN_FD 1 +#define ROTARY_IGN_RX8 2 + #define SIZE_BYTE 8 #define SIZE_INT 16 @@ -132,6 +140,7 @@ struct table2D dwellVCorrectionTable; //6 bin dwell voltage correction (2D) struct table2D injectorVCorrectionTable; //6 bin injector voltage correction (2D) struct table2D IATDensityCorrectionTable; //9 bin inlet air temperature density correction (2D) struct table2D IATRetardTable; //6 bin ignition adjustment based on inlet air temperature (2D) +struct table2D rotarySplitTable; //8 bin ignition split curve for rotary leading/trailing (2D) //These are for the direct port manipulation of the injectors and coils volatile byte *inj1_pin_port; @@ -579,23 +588,12 @@ See ini file for further info (Config Page 11 in the ini) struct config11 { byte crankingEnrichBins[4]; byte crankingEnrichValues[4]; - byte unused11_8; - byte unused11_9; - byte unused11_10; - byte unused11_11; - byte unused11_12; - byte unused11_13; - byte unused11_14; - byte unused11_15; - byte unused11_16; - byte unused11_17; - byte unused11_18; - byte unused11_19; - byte unused11_20; - byte unused10_21; - byte unused11_22; - byte unused11_23; - byte unused11_24; + + byte rotaryType : 2; + byte unused11_8c : 6; + + byte rotarySplitValues[8]; + byte rotarySplitBins[8]; byte unused11_25; byte unused11_26; byte unused11_27; diff --git a/speeduino/scheduledIO.h b/speeduino/scheduledIO.h index a6ba3049..90e75568 100644 --- a/speeduino/scheduledIO.h +++ b/speeduino/scheduledIO.h @@ -16,6 +16,10 @@ inline void endCoil4Charge(); inline void beginCoil5Charge(); inline void endCoil5Charge(); +//The following functions are used specifically for the trailing coil on rotary engines. They are separate as they also control the switching of the trailing select pin +inline void beginTrailingCoilCharge(); +inline void endTrailingCoilCharge(); + #define openInjector1() *inj1_pin_port |= (inj1_pin_mask); BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ1) #define closeInjector1() *inj1_pin_port &= ~(inj1_pin_mask); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ1) #define openInjector2() *inj2_pin_port |= (inj2_pin_mask); BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ2) diff --git a/speeduino/scheduledIO.ino b/speeduino/scheduledIO.ino index 1539a7f4..b514d691 100644 --- a/speeduino/scheduledIO.ino +++ b/speeduino/scheduledIO.ino @@ -18,7 +18,8 @@ volatile bool tachoAlt = true; inline void beginCoil5Charge() { digitalWrite(pinCoil5, coilHIGH); TACH_PULSE_LOW(); } inline void endCoil5Charge() { digitalWrite(pinCoil5, coilLOW); TACH_PULSE_HIGH(); } - + inline void beginTrailingCoilCharge() { digitalWrite(pinCoil2, coilHIGH); } + inline void endTrailingCoilCharge() { digitalWrite(pinCoil2, coilLOW); *ign3_pin_port ^= (1 << ign3_pin_mask); } //Flip the select pin //As above but for ignition (Wasted COP mode) void beginCoil1and3Charge() { digitalWrite(pinCoil1, coilHIGH); digitalWrite(pinCoil3, coilHIGH); TACH_PULSE_LOW(); } diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 188849cd..cc0ff652 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -199,6 +199,10 @@ void setup() IATRetardTable.xSize = 6; IATRetardTable.values = configPage2.iatRetValues; IATRetardTable.axisX = configPage2.iatRetBins; + rotarySplitTable.valueSize = SIZE_BYTE; + rotarySplitTable.xSize = 8; + rotarySplitTable.values = configPage11.rotarySplitValues; + rotarySplitTable.axisX = configPage11.rotarySplitBins; //Setup the calibration tables loadCalibration(); @@ -584,10 +588,20 @@ void setup() break; case IGN_MODE_ROTARY: - ign1StartFunction = beginCoil1Charge; - ign1EndFunction = endCoil1Charge; - ign2StartFunction = beginCoil1Charge; - ign2EndFunction = endCoil1Charge; + if(configPage11.rotaryType == ROTARY_IGN_FC) + { + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil1Charge; + ign2EndFunction = endCoil1Charge; + + ign3StartFunction = beginTrailingCoilCharge; + ign3EndFunction = endTrailingCoilCharge; + ign4StartFunction = beginTrailingCoilCharge; + ign4EndFunction = endTrailingCoilCharge; + } + break; + default: @@ -892,7 +906,7 @@ void loop() //Calculate an injector pulsewidth from the VE currentStatus.corrections = correctionsFuel(); lastAdvance = currentStatus.advance; //Store the previous advance value - if (configPage1.algorithm == 0) //Check which fuelling algorithm is being used + if (configPage1.algorithm == LOAD_SOURCE_MAP) //Check which fuelling algorithm is being used { //Speed Density currentStatus.VE = get3DTableValue(&fuelTable, currentStatus.MAP, currentStatus.RPM); //Perform lookup into fuel map for RPM vs MAP value @@ -1116,6 +1130,34 @@ void loop() ignition4StartAngle = ignition4EndAngle - dwellAngle; if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} } + else if(configPage2.sparkMode == IGN_MODE_ROTARY) + { + if(configPage11.rotaryType == ROTARY_IGN_FC) + { + byte splitDegrees = 0; + if (configPage1.algorithm == LOAD_SOURCE_MAP) { splitDegrees = table2D_getValue(&rotarySplitTable, currentStatus.MAP/2); } + else { splitDegrees = table2D_getValue(&rotarySplitTable, currentStatus.TPS/2); } + + //The trailing angles are set relative to the leading ones + ignition3EndAngle = ignition1EndAngle + splitDegrees; + ignition3StartAngle = ignition1EndAngle - dwellAngle; + ignition4EndAngle = ignition2EndAngle + splitDegrees; + ignition4StartAngle = ignition2EndAngle - dwellAngle; + + //This is a mess. Basically we need to figure out which one is going to fire next and set the select pin appropiately + int crankAngle = getCrankAngle(timePerDegree); + if(ignition3EndAngle < ignition4EndAngle) + { + if(ignition3EndAngle > crankAngle) { digitalWrite(pinCoil3, coilLOW); } + else { digitalWrite(pinCoil3, coilHIGH); } + } + else + { + if(ignition4EndAngle > crankAngle) { digitalWrite(pinCoil3, coilHIGH); } + else { digitalWrite(pinCoil3, coilLOW); } + } + } + } break; //5 cylinders case 5: From 0a7b782af9e2f710de5afa84850cbfb16894ca2e Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 24 Aug 2017 00:55:44 +1000 Subject: [PATCH 075/133] Better method of doing trailing select for FC rotary configs --- speeduino/scheduledIO.h | 4 +++- speeduino/scheduledIO.ino | 3 ++- speeduino/speeduino.ino | 17 ++--------------- 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/speeduino/scheduledIO.h b/speeduino/scheduledIO.h index 90e75568..7ced04df 100644 --- a/speeduino/scheduledIO.h +++ b/speeduino/scheduledIO.h @@ -18,7 +18,9 @@ inline void endCoil5Charge(); //The following functions are used specifically for the trailing coil on rotary engines. They are separate as they also control the switching of the trailing select pin inline void beginTrailingCoilCharge(); -inline void endTrailingCoilCharge(); +inline void endTrailingCoilCharge1(); +inline void endTrailingCoilCharge2(); + #define openInjector1() *inj1_pin_port |= (inj1_pin_mask); BIT_SET(currentStatus.squirt, BIT_SQUIRT_INJ1) #define closeInjector1() *inj1_pin_port &= ~(inj1_pin_mask); BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_INJ1) diff --git a/speeduino/scheduledIO.ino b/speeduino/scheduledIO.ino index b514d691..54dd7579 100644 --- a/speeduino/scheduledIO.ino +++ b/speeduino/scheduledIO.ino @@ -19,7 +19,8 @@ volatile bool tachoAlt = true; inline void endCoil5Charge() { digitalWrite(pinCoil5, coilLOW); TACH_PULSE_HIGH(); } inline void beginTrailingCoilCharge() { digitalWrite(pinCoil2, coilHIGH); } - inline void endTrailingCoilCharge() { digitalWrite(pinCoil2, coilLOW); *ign3_pin_port ^= (1 << ign3_pin_mask); } //Flip the select pin + inline void endTrailingCoilCharge1() { digitalWrite(pinCoil2, coilLOW); *ign3_pin_port |= ign3_pin_mask; } //Sets ign3 (Trailing select) high + inline void endTrailingCoilCharge2() { digitalWrite(pinCoil2, coilLOW); *ign3_pin_port &= ~(ign3_pin_mask); } //sets ign3 (Trailing select) low //As above but for ignition (Wasted COP mode) void beginCoil1and3Charge() { digitalWrite(pinCoil1, coilHIGH); digitalWrite(pinCoil3, coilHIGH); TACH_PULSE_LOW(); } diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index cc0ff652..3bbbe8b0 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -596,9 +596,9 @@ void setup() ign2EndFunction = endCoil1Charge; ign3StartFunction = beginTrailingCoilCharge; - ign3EndFunction = endTrailingCoilCharge; + ign3EndFunction = endTrailingCoilCharge1; ign4StartFunction = beginTrailingCoilCharge; - ign4EndFunction = endTrailingCoilCharge; + ign4EndFunction = endTrailingCoilCharge2; } break; @@ -1143,19 +1143,6 @@ void loop() ignition3StartAngle = ignition1EndAngle - dwellAngle; ignition4EndAngle = ignition2EndAngle + splitDegrees; ignition4StartAngle = ignition2EndAngle - dwellAngle; - - //This is a mess. Basically we need to figure out which one is going to fire next and set the select pin appropiately - int crankAngle = getCrankAngle(timePerDegree); - if(ignition3EndAngle < ignition4EndAngle) - { - if(ignition3EndAngle > crankAngle) { digitalWrite(pinCoil3, coilLOW); } - else { digitalWrite(pinCoil3, coilHIGH); } - } - else - { - if(ignition4EndAngle > crankAngle) { digitalWrite(pinCoil3, coilHIGH); } - else { digitalWrite(pinCoil3, coilLOW); } - } } } break; From 5400b3fe813212016735a583764e91d2ad0eca88 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 24 Aug 2017 00:56:05 +1000 Subject: [PATCH 076/133] Comment cleanup --- speeduino/sensors.ino | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/speeduino/sensors.ino b/speeduino/sensors.ino index a4e60f06..7057819c 100644 --- a/speeduino/sensors.ino +++ b/speeduino/sensors.ino @@ -100,7 +100,8 @@ void readMAP() { currentStatus.mapADC = ADC_FILTER(tempReading, ADCFILTER_MAP, currentStatus.mapADC); MAPrunningValue += currentStatus.mapADC; //Add the current reading onto the total - //MAPrunningValue = MAPrunningValue + (unsigned long)tempReading; //Add the current reading onto the total + //Old method (No filter) + //MAPrunningValue = MAPrunningValue + (unsigned long)tempReading; MAPcount++; } else { mapErrorCount += 1; } From 73712764c4bfb88278aed516b8827790768f10bf Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 24 Aug 2017 01:05:25 +1000 Subject: [PATCH 077/133] Add missing #defines for stm32 platforms --- speeduino/auxiliaries.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/speeduino/auxiliaries.h b/speeduino/auxiliaries.h index 5ce8d246..7eceb1bc 100644 --- a/speeduino/auxiliaries.h +++ b/speeduino/auxiliaries.h @@ -30,6 +30,11 @@ void initialiseFan(); #define VVT_TIMER_COUNTER FTM1_CNT #elif defined(CORE_STM32) + #define ENABLE_VVT_TIMER() + #define DISABLE_VVT_TIMER() + + #define ENABLE_BOOST_TIMER() + #define DISABLE_BOOST_TIMER() #endif From 9e4c191d7bef2a0fc68d6844cfce78037685c808 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 24 Aug 2017 08:33:32 +1000 Subject: [PATCH 078/133] Use correct page size for Pg 11 --- speeduino/comms.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 9cc6ae5e..418c9e65 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -539,7 +539,7 @@ void receiveValue(int valueOffset, byte newValue) case warmupPage: //Idle Air Control settings page (Page 4) pnt_configPage = &configPage11; //For some reason, TunerStudio is sending offsets greater than the maximum page size. I'm not sure if it's their bug or mine, but the fix is to only update the config page if the offset is less than the maximum size - if (valueOffset < page_size) + if (valueOffset < npage_size[currentPage]) { *((byte *)pnt_configPage + (byte)valueOffset) = newValue; } @@ -861,7 +861,7 @@ void sendPage(bool useChar) { sendComplete = true; } - else { pnt_configPage = &configPage11; } //Create a pointer to Page 4 in memory + else { pnt_configPage = &configPage11; } //Create a pointer to Page 11 in memory break; default: From 630a3bfe2a8c01ad3c5d83eaabb1191bd0323172 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 24 Aug 2017 10:17:35 +1000 Subject: [PATCH 079/133] Checks on trailing ignition angles for FC rotary --- speeduino/speeduino.ino | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 3bbbe8b0..df5ba5db 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -1140,9 +1140,14 @@ void loop() //The trailing angles are set relative to the leading ones ignition3EndAngle = ignition1EndAngle + splitDegrees; - ignition3StartAngle = ignition1EndAngle - dwellAngle; + ignition3StartAngle = ignition3EndAngle - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + if(ignition3StartAngle < 0) {ignition3StartAngle += CRANK_ANGLE_MAX_IGN;} + ignition4EndAngle = ignition2EndAngle + splitDegrees; - ignition4StartAngle = ignition2EndAngle - dwellAngle; + ignition4StartAngle = ignition4EndAngle - dwellAngle; + if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} + if(ignition4StartAngle < 0) {ignition4StartAngle += CRANK_ANGLE_MAX_IGN;} } } break; From fc06ce4d1ba78602023a2906e53d2c987dd1e4d5 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 24 Aug 2017 17:24:28 +1000 Subject: [PATCH 080/133] Minor ini and comms cleanup --- reference/speeduino.ini | 2 +- speeduino/comms.ino | 55 +++++++++++++++++++---------------------- 2 files changed, 26 insertions(+), 31 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 275678ab..353ea6c4 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -293,7 +293,7 @@ page = 4 ;Dwell control dwellcont = bits, U08, 12, [0:0], "INVALID", "Dwell control" useDwellLim= bits, U08, 12, [1:1], "Off", "On" - sparkMode = bits, U08, 12, [2:4], "Wasted Spark", "Single Channel", "Wasted COP", "Sequential", "Rotary", INVALID, INVALID, INVALID + sparkMode = bits, U08, 12, [2:4], "Wasted Spark", "Single Channel", "Wasted COP", "Sequential", "Rotary", "INVALID", "INVALID", "INVALID" TrigFilter = bits, U08, 12, [5:6], "Off", "Weak", "Medium", "Aggressive" ignCranklock=bits, U08, 12, [7:7], "Off", "On" dwellcrank = scalar, U08, 13, "ms", 0.1, 0, 0, 25, 1 diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 418c9e65..c4135b72 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -62,15 +62,11 @@ void command() if (Serial.available() > 0) { currentPage = Serial.read(); - if (currentPage >= '0') {//This converts the ascii number char into binary - currentPage -= '0'; - } - if ( (currentPage == veMapPage) || (currentPage == ignMapPage) || (currentPage == afrMapPage) ) { // Detecting if the current page is a table/map - isMap = true; - } - else { - isMap = false; - } + //This converts the ascii number char into binary. Note that this will break everyything if there are ever more than 48 pages (48 = asci code for '0') + if (currentPage >= '0') { currentPage -= '0'; } + // Detecting if the current page is a table/map + if ( (currentPage == veMapPage) || (currentPage == ignMapPage) || (currentPage == afrMapPage) ) { isMap = true; } + else { isMap = false; } cmdPending = false; } break; @@ -507,24 +503,23 @@ void receiveValue(int valueOffset, byte newValue) break; case seqFuelPage: - { - int tempOffset; - if (valueOffset < 36) { trim1Table.values[5 - (valueOffset / 6)][valueOffset % 6] = newValue; } //Trim1 values - else if (valueOffset < 42) { trim1Table.axisX[(valueOffset - 36)] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the trim1 table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) - else if (valueOffset < 48) { trim1Table.axisY[(5 - (valueOffset - 42))] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (TPS) axis of the boost table - //Trim table 2 - else if (valueOffset < 84) { tempOffset = valueOffset - 48; trim2Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map - else if (valueOffset < 90) { tempOffset = valueOffset - 84; trim2Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) - else if (valueOffset < 96) { tempOffset = valueOffset - 90; trim2Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table - //Trim table 3 - else if (valueOffset < 132) { tempOffset = valueOffset - 96; trim3Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map - else if (valueOffset < 138) { tempOffset = valueOffset - 132; trim3Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) - else if (valueOffset < 144) { tempOffset = valueOffset - 138; trim3Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table - //Trim table 4 - else if (valueOffset < 180) { tempOffset = valueOffset - 144; trim4Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map - else if (valueOffset < 186) { tempOffset = valueOffset - 180; trim4Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) - else if (valueOffset < 192) { tempOffset = valueOffset - 186; trim4Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table - } + int tempOffset; + if (valueOffset < 36) { trim1Table.values[5 - (valueOffset / 6)][valueOffset % 6] = newValue; } //Trim1 values + else if (valueOffset < 42) { trim1Table.axisX[(valueOffset - 36)] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the trim1 table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) + else if (valueOffset < 48) { trim1Table.axisY[(5 - (valueOffset - 42))] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (TPS) axis of the boost table + //Trim table 2 + else if (valueOffset < 84) { tempOffset = valueOffset - 48; trim2Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map + else if (valueOffset < 90) { tempOffset = valueOffset - 84; trim2Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) + else if (valueOffset < 96) { tempOffset = valueOffset - 90; trim2Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table + //Trim table 3 + else if (valueOffset < 132) { tempOffset = valueOffset - 96; trim3Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map + else if (valueOffset < 138) { tempOffset = valueOffset - 132; trim3Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) + else if (valueOffset < 144) { tempOffset = valueOffset - 138; trim3Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table + //Trim table 4 + else if (valueOffset < 180) { tempOffset = valueOffset - 144; trim4Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map + else if (valueOffset < 186) { tempOffset = valueOffset - 180; trim4Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) + else if (valueOffset < 192) { tempOffset = valueOffset - 186; trim4Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table + break; case canbusPage: @@ -536,7 +531,7 @@ void receiveValue(int valueOffset, byte newValue) } break; - case warmupPage: //Idle Air Control settings page (Page 4) + case warmupPage: pnt_configPage = &configPage11; //For some reason, TunerStudio is sending offsets greater than the maximum page size. I'm not sure if it's their bug or mine, but the fix is to only update the config page if the offset is less than the maximum size if (valueOffset < npage_size[currentPage]) @@ -940,7 +935,7 @@ void sendPage(bool useChar) } else currentTitleIndex = 0; }while(currentTitleIndex == 132); //Should never loop unless going to display vvtTable - } + } //use char else { //Need to perform a translation of the values[yaxis][xaxis] into the MS expected format @@ -955,7 +950,7 @@ void sendPage(bool useChar) //loop(); Serial.write((byte *)&response, sizeof(response)); } - } + } //is map else { /*if(useChar) From 4e47e8ae19a46a84a2a713d988742bdfc3476005 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Fri, 25 Aug 2017 17:26:04 +1000 Subject: [PATCH 081/133] Cleanup page 11 array --- reference/speeduino.ini | 4 ++-- speeduino/globals.h | 30 +++--------------------------- 2 files changed, 5 insertions(+), 29 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 353ea6c4..b27d6dfa 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -713,11 +713,11 @@ page = 11 #elif ALPHA_N rotarySplitBins = array, U08, 17, [8], "TPS", 2.0, 0.0, 0.0, 100.0, 0 #endif - unused11_8_192 = array, U08, 25,[167], "RPM", 100.0, 0.0, 100, 25500, 0 + unused11_25_192 = array, U08, 25,[167], "RPM", 100.0, 0.0, 100, 25500, 0 ;------------------------------------------------------------------------------- -[ConstantsExtensions] +[ConstantsExtensions] requiresPowerCycle = nCylinders requiresPowerCycle = pinLayout requiresPowerCycle = fanPin diff --git a/speeduino/globals.h b/speeduino/globals.h index f268d577..be7d6071 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -594,33 +594,9 @@ struct config11 { byte rotarySplitValues[8]; byte rotarySplitBins[8]; - byte unused11_25; - byte unused11_26; - byte unused11_27; - byte unused11_28; - byte unused11_29; - byte unused11_107; - byte unused11_108; - byte unused11_109; - byte unused11_110; - byte unused11_111; - byte unused11_112; - byte unused11_113; - byte unused11_114; - byte unused11_115; - byte unused11_116; - byte unused11_117; - byte unused11_118; - byte unused11_119; - byte unused11_120; - byte unused11_121; - byte unused11_122; - byte unused11_123; - byte unused11_124; - byte unused11_125; - byte unused11_126; - byte unused11_127; - byte unused11_128_192[64]; + + byte unused11_25_192[167]; + #if defined(CORE_AVR) }; #else From b8706f69b287eeef983212e681e81962a9ea5cc8 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Fri, 25 Aug 2017 17:26:24 +1000 Subject: [PATCH 082/133] Re-add scope guard in comms.ino --- speeduino/comms.ino | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/speeduino/comms.ino b/speeduino/comms.ino index c4135b72..a6164261 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -503,23 +503,24 @@ void receiveValue(int valueOffset, byte newValue) break; case seqFuelPage: - int tempOffset; - if (valueOffset < 36) { trim1Table.values[5 - (valueOffset / 6)][valueOffset % 6] = newValue; } //Trim1 values - else if (valueOffset < 42) { trim1Table.axisX[(valueOffset - 36)] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the trim1 table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) - else if (valueOffset < 48) { trim1Table.axisY[(5 - (valueOffset - 42))] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (TPS) axis of the boost table - //Trim table 2 - else if (valueOffset < 84) { tempOffset = valueOffset - 48; trim2Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map - else if (valueOffset < 90) { tempOffset = valueOffset - 84; trim2Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) - else if (valueOffset < 96) { tempOffset = valueOffset - 90; trim2Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table - //Trim table 3 - else if (valueOffset < 132) { tempOffset = valueOffset - 96; trim3Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map - else if (valueOffset < 138) { tempOffset = valueOffset - 132; trim3Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) - else if (valueOffset < 144) { tempOffset = valueOffset - 138; trim3Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table - //Trim table 4 - else if (valueOffset < 180) { tempOffset = valueOffset - 144; trim4Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map - else if (valueOffset < 186) { tempOffset = valueOffset - 180; trim4Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) - else if (valueOffset < 192) { tempOffset = valueOffset - 186; trim4Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table - + { + int tempOffset; + if (valueOffset < 36) { trim1Table.values[5 - (valueOffset / 6)][valueOffset % 6] = newValue; } //Trim1 values + else if (valueOffset < 42) { trim1Table.axisX[(valueOffset - 36)] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the trim1 table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) + else if (valueOffset < 48) { trim1Table.axisY[(5 - (valueOffset - 42))] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (TPS) axis of the boost table + //Trim table 2 + else if (valueOffset < 84) { tempOffset = valueOffset - 48; trim2Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map + else if (valueOffset < 90) { tempOffset = valueOffset - 84; trim2Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) + else if (valueOffset < 96) { tempOffset = valueOffset - 90; trim2Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table + //Trim table 3 + else if (valueOffset < 132) { tempOffset = valueOffset - 96; trim3Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map + else if (valueOffset < 138) { tempOffset = valueOffset - 132; trim3Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) + else if (valueOffset < 144) { tempOffset = valueOffset - 138; trim3Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table + //Trim table 4 + else if (valueOffset < 180) { tempOffset = valueOffset - 144; trim4Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map + else if (valueOffset < 186) { tempOffset = valueOffset - 180; trim4Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) + else if (valueOffset < 192) { tempOffset = valueOffset - 186; trim4Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table + } break; case canbusPage: From 38a89e41d0bf777c4f5e17bb4b06b616f872e6cf Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Sat, 26 Aug 2017 19:48:04 -0300 Subject: [PATCH 083/133] 082617 --- .gitignore | 4 ++++ speeduino/globals.h | 6 +++++- speeduino/speeduino.ino | 2 +- speeduino/utils.ino | 40 ++++++++++++++++++++-------------------- 4 files changed, 30 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index 9f7304ea..e279d43c 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,11 @@ table.py reference/hardware/v0.2/~$schematic v0.2_bom.xlsx reference/hardware/v0.4/gerbers/Archive.zip +speeduino/.vscode +speeduino/.build + .pioenvs .piolibdeps .clang_complete .gcc-flags.json +.project diff --git a/speeduino/globals.h b/speeduino/globals.h index f524c105..13269f5a 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -119,7 +119,11 @@ #define OFFSET_FUELTRIM 127 //The fuel trim tables are offset by 128 to allow for -128 to +128 values #define OFFSET_IGNITION 40 //Ignition values from the main spark table are offset 40 degrees downards to allow for negative spark timing -#define SERIAL_BUFFER_THRESHOLD 32 // When the serial buffer is filled to greater than this threshold value, the serial processing operations will be performed more urgently in order to avoid it overflowing. Serial buffer is 64 bytes long, so the threshold is set at half this as a reasonable figure +#if defined(CORE_STM32) + #define SERIAL_BUFFER_THRESHOLD 64 // When the serial buffer is filled to greater than this threshold value, the serial processing operations will be performed more urgently in order to avoid it overflowing. Serial buffer is 128 bytes long, so the threshold is set at half this as a reasonable figure +#else + #define SERIAL_BUFFER_THRESHOLD 32 // When the serial buffer is filled to greater than this threshold value, the serial processing operations will be performed more urgently in order to avoid it overflowing. Serial buffer is 64 bytes long, so the threshold is set at half this as a reasonable figure +#endif #define FUEL_PUMP_ON() *pump_pin_port |= (pump_pin_mask) #define FUEL_PUMP_OFF() *pump_pin_port &= ~(pump_pin_mask) diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 159ff6c7..030bd9f0 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -148,7 +148,6 @@ void setup() table3D_setSize(&trim2Table, 6); table3D_setSize(&trim3Table, 6); table3D_setSize(&trim4Table, 6); - Serial.begin(115200); #if defined(CORE_STM32) EEPROM.init(); @@ -156,6 +155,7 @@ void setup() loadConfig(); doUpdates(); //Check if any data items need updating (Occurs ith firmware updates) + Serial.begin(115200); #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } #elif defined(CORE_STM32) diff --git a/speeduino/utils.ino b/speeduino/utils.ino index 994c7f39..45092c16 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -494,25 +494,25 @@ void setPinMapping(byte boardID) //And for inputs #if defined(CORE_STM32) - #ifndef ARDUINO_ARCH_STM32 //libmaple core aka STM32DUINO - pinMode(pinMAP, INPUT_ANALOG); - pinMode(pinO2, INPUT_ANALOG); - pinMode(pinO2_2, INPUT_ANALOG); - pinMode(pinTPS, INPUT_ANALOG); - pinMode(pinIAT, INPUT_ANALOG); - pinMode(pinCLT, INPUT_ANALOG); - pinMode(pinBat, INPUT_ANALOG); - pinMode(pinBaro, INPUT_ANALOG); - #else - pinMode(pinMAP, INPUT); - pinMode(pinO2, INPUT); - pinMode(pinO2_2, INPUT); - pinMode(pinTPS, INPUT); - pinMode(pinIAT, INPUT); - pinMode(pinCLT, INPUT); - pinMode(pinBat, INPUT); - pinMode(pinBaro, INPUT); - #endif + #ifndef ARDUINO_ARCH_STM32 //libmaple core aka STM32DUINO + pinMode(pinMAP, INPUT_ANALOG); + pinMode(pinO2, INPUT_ANALOG); + pinMode(pinO2_2, INPUT_ANALOG); + pinMode(pinTPS, INPUT_ANALOG); + pinMode(pinIAT, INPUT_ANALOG); + pinMode(pinCLT, INPUT_ANALOG); + pinMode(pinBat, INPUT_ANALOG); + pinMode(pinBaro, INPUT_ANALOG); + #else + pinMode(pinMAP, INPUT); + pinMode(pinO2, INPUT); + pinMode(pinO2_2, INPUT); + pinMode(pinTPS, INPUT); + pinMode(pinIAT, INPUT); + pinMode(pinCLT, INPUT); + pinMode(pinBat, INPUT); + pinMode(pinBaro, INPUT); + #endif #endif pinMode(pinTrigger, INPUT); pinMode(pinTrigger2, INPUT); @@ -602,4 +602,4 @@ unsigned int PW_SD(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen unsigned int PW_AN(int REQ_FUEL, byte VE, byte TPS, int corrections, int injOpen) { return PW(REQ_FUEL, VE, currentStatus.MAP, corrections, injOpen); -} +} From e01dccc6b80ac6053d09b54d68e43c4a85f4a170 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sun, 27 Aug 2017 09:26:36 +1000 Subject: [PATCH 084/133] Initial work on revised version of the Miata 99-05 decoder --- speeduino/decoders.ino | 57 ++++++++++++++++++++++++++++------------- speeduino/speeduino.ino | 10 ++++++++ 2 files changed, 49 insertions(+), 18 deletions(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 0b13a98c..106155e6 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -1334,17 +1334,30 @@ void triggerSetup_Miata9905() toothCurrentCount = 99; //Fake tooth count represents no sync secondDerivEnabled = false; decoderIsSequential = true; + triggerActualTeeth = 8; + secondaryToothCount = 0; //Note that these angles are for every rising and falling edge - toothAngles[0] = 350; //Falling edge of tooth #1 - toothAngles[1] = 100; //Rising edge of tooth #2 - toothAngles[2] = 170; //Falling edge of tooth #2 - toothAngles[3] = 280; //Rising edge of tooth #1 + /* + toothAngles[0] = 350; + toothAngles[1] = 100; + toothAngles[2] = 170; + toothAngles[3] = 280; + */ + + toothAngles[0] = 710; // + toothAngles[1] = 100; //First crank pulse after the SINGLE cam pulse + toothAngles[2] = 170; // + toothAngles[3] = 280; // + toothAngles[4] = 350; // + toothAngles[5] = 460; //First crank pulse AFTER the DOUBLE cam pulse + toothAngles[6] = 530; // + toothAngles[7] = 640; // MAX_STALL_TIME = (3333UL * triggerToothAngle); //Minimum 50rpm. (3333uS is the time per degree at 50rpm) triggerFilterTime = 1500; //10000 rpm, assuming we're triggering on both edges off the crank tooth. - triggerSecFilterTime = (int)(1000000 / (MAX_RPM / 60 * 2)) / 2; //Same as above, but fixed at 2 teeth on the secondary input and divided by 2 (for cam speed) + triggerSecFilterTime = 0; //(int)(1000000 / (MAX_RPM / 60 * 2)) / 2; //Same as above, but fixed at 2 teeth on the secondary input and divided by 2 (for cam speed) } void triggerPri_Miata9905() @@ -1354,7 +1367,7 @@ void triggerPri_Miata9905() if ( curGap >= triggerFilterTime ) { toothCurrentCount++; - if( (toothCurrentCount == 1) || (toothCurrentCount == 5) ) //Trigger is on CHANGE, hence 4 pulses = 1 crank rev + if( (toothCurrentCount == 1) || (toothCurrentCount == (triggerActualTeeth+1)) ) { toothCurrentCount = 1; //Reset the counter toothOneMinusOneTime = toothOneTime; @@ -1362,13 +1375,21 @@ void triggerPri_Miata9905() currentStatus.hasSync = true; currentStatus.startRevolutions++; //Counter } + else + { + if(secondaryToothCount == 2) + { + toothCurrentCount = 6; + currentStatus.hasSync = true; + } + } if (currentStatus.hasSync == true) { addToothLogEntry(curGap); //Whilst this is an uneven tooth pattern, if the specific angle between the last 2 teeth is specified, 1st deriv prediction can be used - if( (toothCurrentCount == 1) || (toothCurrentCount == 3) ) { triggerToothAngle = 70; triggerFilterTime = curGap; } //Trigger filter is set to whatever time it took to do 70 degrees (Next trigger is 110 degrees away) + if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; triggerFilterTime = curGap; } //Trigger filter is set to whatever time it took to do 70 degrees (Next trigger is 110 degrees away) else { triggerToothAngle = 110; triggerFilterTime = (curGap * 3) >> 3; } //Trigger filter is set to (110*3)/8=41.25=41 degrees (Next trigger is 70 degrees away). curGap = curGap >> 1; @@ -1376,7 +1397,16 @@ void triggerPri_Miata9905() toothLastMinusOneToothTime = toothLastToothTime; toothLastToothTime = curTime; } //Has sync + + if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) && configPage2.ignCranklock) + { + if( (toothCurrentCount == 1) || (toothCurrentCount == 5) ) { endCoil1Charge(); } + else if( (toothCurrentCount == 2) || (toothCurrentCount == 6) ) { endCoil2Charge(); } + else if( (toothCurrentCount == 3) || (toothCurrentCount == 7) ) { endCoil3Charge(); } + else if( (toothCurrentCount == 4) || (toothCurrentCount == 8) ) { endCoil4Charge(); } + } } //Trigger filter + secondaryToothCount = 0; } void triggerSec_Miata9905() @@ -1387,18 +1417,9 @@ void triggerSec_Miata9905() { toothLastSecToothTime = curTime2; lastGap = curGap2; + secondaryToothCount++; - if( (BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) || (currentStatus.hasSync == false) ) - { - triggerFilterTime = 1500; - //Check the status of the crank trigger - targetGap = (lastGap) >> 1; //The target gap is set at half the last tooth gap - if ( curGap < targetGap) //If the gap between this tooth and the last one is less than half of the previous gap, then we are very likely at the extra (3rd) tooth on the cam). This tooth is located at 421 crank degrees (aka 61 degrees) and therefore the last crank tooth seen was number 1 (At 350 degrees) - { - toothCurrentCount = 1; - currentStatus.hasSync = true; - } - } + //TODO Add some secondary filtering here } } diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index df5ba5db..772eb7ec 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -723,6 +723,7 @@ void loop() secCounter = 0; //Reset our seconds counter. currentStatus.startRevolutions = 0; toothSystemCount = 0; + secondaryToothCount = 0; MAPcurRev = 0; MAPcount = 0; currentStatus.rpmDOT = 0; @@ -1001,6 +1002,7 @@ void loop() int PWdivTimerPerDegree = div(currentStatus.PW1, timePerDegree).quot; //How many crank degrees the calculated PW will take at the current speed injector1StartAngle = configPage1.inj1Ang - ( PWdivTimerPerDegree ); //This is a little primitive, but is based on the idea that all fuel needs to be delivered before the inlet valve opens. See http://www.extraefi.co.uk/sequential_fuel.html for more detail if(injector1StartAngle < 0) {injector1StartAngle += CRANK_ANGLE_MAX_INJ;} + if(injector1StartAngle > CRANK_ANGLE_MAX_INJ) {injector1StartAngle -= CRANK_ANGLE_MAX_INJ;} //Repeat the above for each cylinder switch (configPage1.nCylinders) @@ -1009,25 +1011,33 @@ void loop() case 2: injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + if(injector2StartAngle < 0) {injector2StartAngle += CRANK_ANGLE_MAX_INJ;} break; //3 cylinders case 3: injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + if(injector2StartAngle < 0) {injector2StartAngle += CRANK_ANGLE_MAX_INJ;} + injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} + if(injector3StartAngle < 0) {injector3StartAngle += CRANK_ANGLE_MAX_INJ;} break; //4 cylinders case 4: injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + if(injector2StartAngle < 0) {injector2StartAngle += CRANK_ANGLE_MAX_INJ;} if(configPage1.injLayout == INJ_SEQUENTIAL) { injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} + if(injector3StartAngle < 0) {injector3StartAngle += CRANK_ANGLE_MAX_INJ;} + injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} + if(injector4StartAngle < 0) {injector4StartAngle += CRANK_ANGLE_MAX_INJ;} if(configPage3.fuelTrimEnabled) { From 8286cf0ac46508fdfa7f3a5e0f69b44c65266c62 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sun, 27 Aug 2017 19:20:45 +1000 Subject: [PATCH 085/133] Initial commit of v3 VR conditioner files --- .../VR Conditioner/VR Conditioner v3.fzz | Bin 0 -> 108461 bytes .../gerbers/VR Conditioner v2_contour.gm1 | 26 - .../VR Conditioner v2_copperBottom.gbl | 2637 - .../gerbers/VR Conditioner v2_copperTop.gtl | 3068 - .../gerbers/VR Conditioner v2_drill.txt | 39 - .../gerbers/VR Conditioner v2_maskBottom.gbs | 136 - .../gerbers/VR Conditioner v2_maskTop.gts | 77 - .../VR Conditioner v2_pasteMaskBottom.gbp | 98 - .../VR Conditioner v2_pasteMaskTop.gtp | 39 - .../gerbers/VR Conditioner v2_pnp.txt | 121 - .../gerbers/VR Conditioner v2_silkBottom.gbo | 13102 ---- .../gerbers/VR Conditioner v2_silkTop.gto | 10733 --- .../gerbers/VR Conditioner v3_contour.gm1 | 2021 + .../VR Conditioner v3_copperBottom.gbl | 1949 + .../gerbers/VR Conditioner v3_copperTop.gtl | 2271 + .../gerbers/VR Conditioner v3_drill.txt | 31 + .../gerbers/VR Conditioner v3_maskBottom.gbs | 44 + .../gerbers/VR Conditioner v3_maskTop.gts | 122 + .../VR Conditioner v3_pasteMaskTop.gtp | 93 + .../gerbers/VR Conditioner v3_pnp.txt | 67 + .../gerbers/VR Conditioner v3_silkBottom.gbo | 60134 ++++++++++++++++ .../gerbers/VR Conditioner v3_silkTop.gto | 14133 ++++ .../gerbers/VR Conditioner-v0.3.zip | Bin 0 -> 98580 bytes 23 files changed, 80865 insertions(+), 30076 deletions(-) create mode 100644 reference/hardware/VR Conditioner/VR Conditioner v3.fzz delete mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v2_contour.gm1 delete mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v2_copperBottom.gbl delete mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v2_copperTop.gtl delete mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v2_drill.txt delete mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v2_maskBottom.gbs delete mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v2_maskTop.gts delete mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v2_pasteMaskBottom.gbp delete mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v2_pasteMaskTop.gtp delete mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v2_pnp.txt delete mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v2_silkBottom.gbo delete mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v2_silkTop.gto create mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v3_contour.gm1 create mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v3_copperBottom.gbl create mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v3_copperTop.gtl create mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v3_drill.txt create mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v3_maskBottom.gbs create mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v3_maskTop.gts create mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v3_pasteMaskTop.gtp create mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v3_pnp.txt create mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v3_silkBottom.gbo create mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner v3_silkTop.gto create mode 100644 reference/hardware/VR Conditioner/gerbers/VR Conditioner-v0.3.zip diff --git a/reference/hardware/VR Conditioner/VR Conditioner v3.fzz b/reference/hardware/VR Conditioner/VR Conditioner v3.fzz new file mode 100644 index 0000000000000000000000000000000000000000..95304d3fbe87f8631dcaa256f2679f8536b21c1d GIT binary patch literal 108461 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 u;y(B7FYdwF=Jhjg`5qW-p7ESvWj_=5 Date: Mon, 28 Aug 2017 13:02:06 +1000 Subject: [PATCH 086/133] Add filters for Miata 99-05 --- speeduino/decoders.ino | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 106155e6..d3c9629d 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -1357,7 +1357,7 @@ void triggerSetup_Miata9905() MAX_STALL_TIME = (3333UL * triggerToothAngle); //Minimum 50rpm. (3333uS is the time per degree at 50rpm) triggerFilterTime = 1500; //10000 rpm, assuming we're triggering on both edges off the crank tooth. - triggerSecFilterTime = 0; //(int)(1000000 / (MAX_RPM / 60 * 2)) / 2; //Same as above, but fixed at 2 teeth on the secondary input and divided by 2 (for cam speed) + triggerSecFilterTime = 0; //Need to figure out something better for this } void triggerPri_Miata9905() @@ -1389,10 +1389,33 @@ void triggerPri_Miata9905() addToothLogEntry(curGap); //Whilst this is an uneven tooth pattern, if the specific angle between the last 2 teeth is specified, 1st deriv prediction can be used - if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; triggerFilterTime = curGap; } //Trigger filter is set to whatever time it took to do 70 degrees (Next trigger is 110 degrees away) - else { triggerToothAngle = 110; triggerFilterTime = (curGap * 3) >> 3; } //Trigger filter is set to (110*3)/8=41.25=41 degrees (Next trigger is 70 degrees away). + if( (configPage2.triggerFilter == 1) || (currentStatus.RPM < 1400) ) + { + //Lite filter + if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; triggerFilterTime = curGap; } //Trigger filter is set to whatever time it took to do 70 degrees (Next trigger is 110 degrees away) + else { triggerToothAngle = 110; triggerFilterTime = (curGap * 3) >> 3; } //Trigger filter is set to (110*3)/8=41.25=41 degrees (Next trigger is 70 degrees away). + } + else if(configPage2.triggerFilter == 2) + { + //Medium filter level + if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; triggerFilterTime = (curGap * 5) >> 2 ; } //87.5 degrees with a target of 110 + else { triggerToothAngle = 110; triggerFilterTime = (curGap >> 1); } //55 degrees with a target of 70 + } + else if (configPage2.triggerFilter == 3) + { + //Aggressive filter level + if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; triggerFilterTime = (curGap * 11) >> 3 ; } //96.26 degrees with a target of 110 + else { triggerToothAngle = 110; triggerFilterTime = (curGap * 9) >> 5; } //61.87 degrees with a target of 70 + } + else + { + //trigger filter is turned off. + triggerFilterTime = 0; + if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; } //96.26 degrees with a target of 110 + else { triggerToothAngle = 110; } //61.87 degrees with a target of 70 + } - curGap = curGap >> 1; + curGap = curGap >> 1; //Why is this here? toothLastMinusOneToothTime = toothLastToothTime; toothLastToothTime = curTime; @@ -1706,7 +1729,7 @@ void triggerSetEndTeeth_Non360() /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Nissan 360 tooth with cam Desc: -Note: +Note: https://wiki.r31skylineclub.com/index.php/Crank_Angle_Sensor */ void triggerSetup_Nissan360() { From c10a637853cf4dd7974824dd13f14ad999036247 Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Mon, 28 Aug 2017 01:35:49 -0300 Subject: [PATCH 087/133] Sync with last changes --- speeduino/auxiliaries.h | 29 +++++- speeduino/auxiliaries.ino | 25 ++--- speeduino/cancomms.h | 6 +- speeduino/globals.h | 25 ++++- speeduino/idle.h | 20 ++-- speeduino/idle.ino | 23 +++-- speeduino/scheduler.h | 126 ++++++++++++++++--------- speeduino/scheduler.ino | 49 +++++++--- speeduino/speeduino.ino | 50 +++++----- speeduino/table.ino | 187 +++++++++++++++++++++----------------- speeduino/timers.h | 6 +- speeduino/timers.ino | 25 ++++- speeduino/utils.h | 41 +++++++++ speeduino/utils.ino | 124 +++++++++++-------------- 14 files changed, 458 insertions(+), 278 deletions(-) diff --git a/speeduino/auxiliaries.h b/speeduino/auxiliaries.h index 7eceb1bc..8ba228db 100644 --- a/speeduino/auxiliaries.h +++ b/speeduino/auxiliaries.h @@ -30,12 +30,29 @@ void initialiseFan(); #define VVT_TIMER_COUNTER FTM1_CNT #elif defined(CORE_STM32) - #define ENABLE_VVT_TIMER() - #define DISABLE_VVT_TIMER() + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core + #define ENABLE_BOOST_TIMER() (TIM1)->CCER |= TIM_CCER_CC2E + #define DISABLE_BOOST_TIMER() (TIM1)->CCER &= ~TIM_CCER_CC2E - #define ENABLE_BOOST_TIMER() - #define DISABLE_BOOST_TIMER() + #define ENABLE_VVT_TIMER() (TIM1)->CCER |= TIM_CCER_CC3E + #define DISABLE_VVT_TIMER() (TIM1)->CCER &= ~TIM_CCER_CC3E + #define BOOST_TIMER_COMPARE (TIM1)->CCR2 + #define BOOST_TIMER_COUNTER (TIM1)->CNT + #define VVT_TIMER_COMPARE (TIM1)->CCR3 + #define VVT_TIMER_COUNTER (TIM1)->CNT + #else //libmaple core aka STM32DUINO + #define ENABLE_BOOST_TIMER() (TIMER1->regs).gen->CCER |= TIMER_CCER_CC2E + #define DISABLE_BOOST_TIMER() (TIMER1->regs).gen->CCER &= ~TIMER_CCER_CC2E + + #define ENABLE_VVT_TIMER() (TIMER1->regs).gen->CCER |= TIMER_CCER_CC3E + #define DISABLE_VVT_TIMER() (TIMER1->regs).gen->CCER &= ~TIMER_CCER_CC3E + + #define BOOST_TIMER_COMPARE (TIMER1->regs).gen->CCR2 + #define BOOST_TIMER_COUNTER (TIMER1->regs).gen->CNT + #define VVT_TIMER_COMPARE (TIMER1->regs).gen->CCR3 + #define VVT_TIMER_COUNTER (TIMER1->regs).gen->CNT + #endif #endif #define BOOST_PIN_LOW() *boost_pin_port &= ~(boost_pin_mask) @@ -64,6 +81,10 @@ volatile bool vvt_pwm_state; unsigned int vvt_pwm_max_count; //Used for variable PWM frequency volatile unsigned int vvt_pwm_cur_value; long vvt_pwm_target_value; +#if defined (CORE_TEENSY) || defined(CORE_STM32) + static inline void boostInterrupt(); + static inline void vvtInterrupt(); +#endif #endif diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index d46311c7..544c0427 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -30,7 +30,6 @@ void fanControl() } } -#if defined(CORE_AVR) || defined(CORE_TEENSY) void initialiseAuxPWM() { #if defined(CORE_AVR) @@ -41,6 +40,10 @@ void initialiseAuxPWM() TCCR1B = (1 << CS12); //Timer1 Control Reg B: Timer Prescaler set to 256. 1 tick = 16uS. Refer to http://www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg #elif defined(CORE_TEENSY) //REALLY NEED TO DO THIS! + #elif defined(CORE_STM32) + Timer1.attachInterrupt(2, boostInterrupt); + Timer1.attachInterrupt(3, vvtInterrupt); + Timer1.resume(); #endif boost_pin_port = portOutputRegister(digitalPinToPort(pinBoost)); @@ -48,8 +51,13 @@ void initialiseAuxPWM() vvt_pin_port = portOutputRegister(digitalPinToPort(pinVVT_1)); vvt_pin_mask = digitalPinToBitMask(pinVVT_1); - boost_pwm_max_count = 1000000L / (16 * configPage3.boostFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. The x2 is there because the frequency is stored at half value (in a byte) to allow freqneucies up to 511Hz - vvt_pwm_max_count = 1000000L / (16 * configPage3.vvtFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle + #if defined(CORE_STM32) //2uS resolution Min 8Hz, Max 5KHz + boost_pwm_max_count = 1000000L / (configPage3.boostFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. The x2 is there because the frequency is stored at half value (in a byte) to allow freqneucies up to 511Hz + vvt_pwm_max_count = 1000000L / (configPage3.vvtFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle + #else + boost_pwm_max_count = 1000000L / (16 * configPage3.boostFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. The x2 is there because the frequency is stored at half value (in a byte) to allow freqneucies up to 511Hz + vvt_pwm_max_count = 1000000L / (16 * configPage3.vvtFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle + #endif //TIMSK1 |= (1 << OCIE1A); <---- Not required as compare A is turned on when needed by boost control ENABLE_VVT_TIMER(); //Turn on the B compare unit (ie turn on the interrupt) @@ -139,7 +147,7 @@ void vvtControl() //The interrupt to control the Boost PWM #if defined(CORE_AVR) ISR(TIMER1_COMPA_vect) -#elif defined (CORE_TEENSY) +#elif defined (CORE_TEENSY) || defined(CORE_STM32) static inline void boostInterrupt() //Most ARM chips can simply call a function #endif { @@ -161,7 +169,7 @@ void vvtControl() //The interrupt to control the VVT PWM #if defined(CORE_AVR) ISR(TIMER1_COMPB_vect) -#elif defined (CORE_TEENSY) +#elif defined (CORE_TEENSY) || defined(CORE_STM32) static inline void vvtInterrupt() //Most ARM chips can simply call a function #endif { @@ -180,10 +188,3 @@ void vvtControl() } } -#elif defined(CORE_STM32) -//YET TO BE IMPLEMENTED ON STM32 -void initialiseAuxPWM() { } -void boostControl() { } -void vvtControl() { } - -#endif diff --git a/speeduino/cancomms.h b/speeduino/cancomms.h index 7d1e5b50..b01b2aea 100644 --- a/speeduino/cancomms.h +++ b/speeduino/cancomms.h @@ -15,7 +15,11 @@ uint8_t Glow, Ghigh; #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) HardwareSerial &CANSerial = Serial3; #elif defined(CORE_STM32) - HardwareSerial &CANSerial = Serial2; + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core + SerialUART &CANSerial = Serial2; + #else //libmaple core aka STM32DUINO + HardwareSerial &CANSerial = Serial2; + #endif #elif defined(CORE_TEENSY) HardwareSerial &CANSerial = Serial2; #endif diff --git a/speeduino/globals.h b/speeduino/globals.h index be7d6071..a9feff4b 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -9,14 +9,25 @@ #define CORE_AVR #elif defined(CORE_TEENSY) #define BOARD_NR_GPIO_PINS 34 -#elif defined(STM32_MCU_SERIES) || defined(_VARIANT_ARDUINO_STM32_) +#elif defined(STM32_MCU_SERIES) || defined(ARDUINO_ARCH_STM32) || defined(__STM32F1__) || defined(STM32F4) || defined(STM32) #define CORE_STM32 - #define LED_BUILTIN 33 + #if defined (STM32F1) || defined(__STM32F1__) + #define BOARD_NR_GPIO_PINS 34 + #define LED_BUILTIN 33 + #elif defined(ARDUINO_BLACK_F407VE) || defined(STM32F4) + #define BOARD_NR_GPIO_PINS 80 + #define LED_BUILTIN PA7 + #endif extern "C" char* sbrk(int incr); //Used to freeRam inline unsigned char digitalPinToInterrupt(unsigned char Interrupt_pin) { return Interrupt_pin; } //This isn't included in the stm32duino libs (yet) - #define portOutputRegister(port) (volatile byte *)( &(port->regs->ODR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value - #define portInputRegister(port) (volatile byte *)( &(port->regs->IDR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core + #define portOutputRegister(port) (volatile byte *)( &(port->ODR) ) + #define portInputRegister(port) (volatile byte *)( &(port->IDR) ) + #else //libmaple core aka STM32DUINO + #define portOutputRegister(port) (volatile byte *)( &(port->regs->ODR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value + #define portInputRegister(port) (volatile byte *)( &(port->regs->IDR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value + #endif #else #error Incorrect board selected. Please select the correct board (Usually Mega 2560) and upload again #endif @@ -72,6 +83,12 @@ #define BIT_SPARK2_UNUSED7 6 #define BIT_SPARK2_UNUSED8 7 +#define BIT_TIMER_1HZ 0 +#define BIT_TIMER_4HZ 1 +#define BIT_TIMER_10HZ 2 +#define BIT_TIMER_15HZ 3 +#define BIT_TIMER_30HZ 4 + #define VALID_MAP_MAX 1022 //The largest ADC value that is valid for the MAP sensor #define VALID_MAP_MIN 2 //The smallest ADC value that is valid for the MAP sensor diff --git a/speeduino/idle.h b/speeduino/idle.h index 929a7755..ffa4f22c 100644 --- a/speeduino/idle.h +++ b/speeduino/idle.h @@ -40,14 +40,19 @@ struct StepperIdle #define IDLE_TIMER_DISABLE() FTM2_C0SC &= ~FTM_CSC_CHIE #elif defined(CORE_STM32) + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core + #define IDLE_COUNTER (TIM1)->CNT + #define IDLE_COMPARE (TIM1)->CCR4 - //Placeholders only - #define IDLE_COUNTER 0 - #define IDLE_COMPARE 0 - - #define IDLE_TIMER_ENABLE() - #define IDLE_TIMER_DISABLE() + #define IDLE_TIMER_ENABLE() (TIM1)->CCER |= TIM_CCER_CC4E + #define IDLE_TIMER_DISABLE() (TIM1)->CCER &= ~TIM_CCER_CC4E + #else //libmaple core aka STM32DUINO + #define IDLE_COUNTER (TIMER1->regs).gen->CNT + #define IDLE_COMPARE (TIMER1->regs).gen->CCR4 + #define IDLE_TIMER_ENABLE() (TIMER1->regs).gen->CCER |= TIMER_CCER_CC4E + #define IDLE_TIMER_DISABLE() (TIMER1->regs).gen->CCER &= ~TIMER_CCER_CC4E + #endif #endif struct table2D iacClosedLoopTable; @@ -81,5 +86,8 @@ static inline void enableIdle(); static inline byte isStepperHomed(); static inline byte checkForStepping(); static inline void doStep(); +#if defined (CORE_TEENSY) || defined(CORE_STM32) + static inline void idleInterrupt(); +#endif #endif diff --git a/speeduino/idle.ino b/speeduino/idle.ino index af41d507..ec0b0d7e 100644 --- a/speeduino/idle.ino +++ b/speeduino/idle.ino @@ -78,8 +78,9 @@ void initialiseIdle() NVIC_ENABLE_IRQ(IRQ_FTM2); } - #elif defined(MCU_STM32F103RB) - + #elif defined(CORE_STM32) + Timer1.attachInterrupt(4, idleInterrupt); + Timer1.resume(); #endif //Initialising comprises of setting the 2D tables with the relevant values from the config pages @@ -114,7 +115,11 @@ void initialiseIdle() idle_pin_mask = digitalPinToBitMask(pinIdle1); idle2_pin_port = portOutputRegister(digitalPinToPort(pinIdle2)); idle2_pin_mask = digitalPinToBitMask(pinIdle2); - idle_pwm_max_count = 1000000L / (16 * configPage3.idleFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. Note that the frequency is divided by 2 coming from TS to allow for up to 512hz + #if defined(CORE_STM32) + idle_pwm_max_count = 1000000L / (configPage3.idleFreq * 2); //Converts the frequency in Hz to the number of ticks (at 2uS) it takes to complete 1 cycle. Note that the frequency is divided by 2 coming from TS to allow for up to 5KHz + #else + idle_pwm_max_count = 1000000L / (16 * configPage3.idleFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. Note that the frequency is divided by 2 coming from TS to allow for up to 512hz + #endif enableIdle(); break; @@ -134,7 +139,11 @@ void initialiseIdle() idle_pin_mask = digitalPinToBitMask(pinIdle1); idle2_pin_port = portOutputRegister(digitalPinToPort(pinIdle2)); idle2_pin_mask = digitalPinToBitMask(pinIdle2); - idle_pwm_max_count = 1000000L / (16 * configPage3.idleFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. Note that the frequency is divided by 2 coming from TS to allow for up to 512hz + #if defined(CORE_STM32) + idle_pwm_max_count = 1000000L / (configPage3.idleFreq * 2); //Converts the frequency in Hz to the number of ticks (at 2uS) it takes to complete 1 cycle. Note that the frequency is divided by 2 coming from TS to allow for up to 5KHz + #else + idle_pwm_max_count = 1000000L / (16 * configPage3.idleFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. Note that the frequency is divided by 2 coming from TS to allow for up to 512hz + #endif idlePID.SetOutputLimits(percentage(configPage1.iacCLminDuty, idle_pwm_max_count), percentage(configPage1.iacCLmaxDuty, idle_pwm_max_count)); idlePID.SetTunings(configPage3.idleKP, configPage3.idleKI, configPage3.idleKD); idlePID.SetMode(AUTOMATIC); //Turn PID on @@ -407,7 +416,6 @@ ISR(TIMER4_COMPC_vect) #elif defined (CORE_TEENSY) || defined (CORE_STM32) static inline void idleInterrupt() //Most ARM chips can simply call a function #endif -#if defined(CORE_AVR) || defined (CORE_TEENSY) { if (idle_pwm_state) { @@ -446,8 +454,3 @@ static inline void idleInterrupt() //Most ARM chips can simply call a function } } -#elif defined (CORE_STM32) -{ - //No PWM idle for STM32 yet -} -#endif diff --git a/speeduino/scheduler.h b/speeduino/scheduler.h index 3350520b..c99ec64a 100644 --- a/speeduino/scheduler.h +++ b/speeduino/scheduler.h @@ -162,59 +162,103 @@ See page 136 of the processors datasheet: http://www.atmel.com/Images/doc2549.pd #define uS_TO_TIMER_COMPARE_SLOW(uS) ((uS * 15) >> 5) #elif defined(CORE_STM32) - //Placeholders ONLY! - - //https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/master/STM32F4/cores/maple/libmaple/timer.h#L51 #define MAX_TIMER_PERIOD 131070 //The longest period of time (in uS) that the timer can permit (IN this case it is 65535 * 2, as each timer tick is 2uS) #define uS_TO_TIMER_COMPARE(uS) (uS >> 1) //Converts a given number of uS into the required number of timer ticks until that time has passed. #define uS_TO_TIMER_COMPARE_SLOW(uS) (uS >> 1) //Converts a given number of uS into the required number of timer ticks until that time has passed. + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core + #include "HardwareTimer.h" + #define FUEL1_COUNTER (TIM2)->CNT + #define FUEL2_COUNTER (TIM2)->CNT + #define FUEL3_COUNTER (TIM2)->CNT + #define FUEL4_COUNTER (TIM2)->CNT + #define FUEL5_COUNTER (TIM2)->CNT - #define FUEL1_COUNTER (TIMER2->regs).gen->CNT - #define FUEL2_COUNTER (TIMER2->regs).gen->CNT - #define FUEL3_COUNTER (TIMER2->regs).gen->CNT - #define FUEL4_COUNTER (TIMER2->regs).gen->CNT - #define FUEL5_COUNTER (TIMER1->regs).gen->CNT + #define IGN1_COUNTER (TIM3)->CNT + #define IGN2_COUNTER (TIM3)->CNT + #define IGN3_COUNTER (TIM3)->CNT + #define IGN4_COUNTER (TIM3)->CNT + #define IGN5_COUNTER (TIM3)->CNT - #define IGN1_COUNTER (TIMER3->regs).gen->CNT - #define IGN2_COUNTER (TIMER3->regs).gen->CNT - #define IGN3_COUNTER (TIMER3->regs).gen->CNT - #define IGN4_COUNTER (TIMER3->regs).gen->CNT - #define IGN5_COUNTER (TIMER1->regs).gen->CNT + #define FUEL1_COMPARE (TIM2)->CCR1 + #define FUEL2_COMPARE (TIM2)->CCR2 + #define FUEL3_COMPARE (TIM2)->CCR3 + #define FUEL4_COMPARE (TIM2)->CCR4 - #define FUEL1_COMPARE (TIMER2->regs).gen->CCR1 - #define FUEL2_COMPARE (TIMER2->regs).gen->CCR2 - #define FUEL3_COMPARE (TIMER2->regs).gen->CCR3 - #define FUEL4_COMPARE (TIMER2->regs).gen->CCR4 + #define IGN1_COMPARE (TIM3)->CCR1 + #define IGN2_COMPARE (TIM3)->CCR2 + #define IGN3_COMPARE (TIM3)->CCR3 + #define IGN4_COMPARE (TIM3)->CCR4 + #define IGN5_COMPARE (TIM3)->CCR1 - #define IGN1_COMPARE (TIMER3->regs).gen->CCR1 - #define IGN2_COMPARE (TIMER3->regs).gen->CCR2 - #define IGN3_COMPARE (TIMER3->regs).gen->CCR3 - #define IGN4_COMPARE (TIMER3->regs).gen->CCR4 - #define IGN5_COMPARE (TIMER1->regs).gen->CCR1 + //https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 + #define FUEL1_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC1E + #define FUEL2_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC2E + #define FUEL3_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC3E + #define FUEL4_TIMER_ENABLE() (TIM2)->CCER |= TIM_CCER_CC4E - //https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 - #define FUEL1_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC1E - #define FUEL2_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC2E - #define FUEL3_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC3E - #define FUEL4_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC4E + #define IGN1_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC1E + #define IGN2_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC2E + #define IGN3_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC3E + #define IGN4_TIMER_ENABLE() (TIM3)->CCER |= TIM_CCER_CC4E + #define IGN5_TIMER_ENABLE() (TIM1)->CCER |= TIM_CCER_CC1E - #define IGN1_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC1E - #define IGN2_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC2E - #define IGN3_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC3E - #define IGN4_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC4E - #define IGN5_TIMER_ENABLE() (TIMER1->regs).gen->CCER |= TIMER_CCER_CC1E + #define FUEL1_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC1E + #define FUEL2_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC2E + #define FUEL3_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC3E + #define FUEL4_TIMER_DISABLE() (TIM2)->CCER &= ~TIM_CCER_CC4E - #define FUEL1_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC1E - #define FUEL2_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC2E - #define FUEL3_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC3E - #define FUEL4_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC4E + #define IGN1_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC1E + #define IGN2_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC2E + #define IGN3_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC3E + #define IGN4_TIMER_DISABLE() (TIM3)->CCER &= ~TIM_CCER_CC4E + #define IGN5_TIMER_DISABLE() (TIM1)->CCER &= ~TIM_CCER_CC1E + #else //libmaple core aka STM32DUINO + #define FUEL1_COUNTER (TIMER2->regs).gen->CNT + #define FUEL2_COUNTER (TIMER2->regs).gen->CNT + #define FUEL3_COUNTER (TIMER2->regs).gen->CNT + #define FUEL4_COUNTER (TIMER2->regs).gen->CNT + #define FUEL5_COUNTER (TIMER1->regs).gen->CNT - #define IGN1_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC1E - #define IGN2_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC2E - #define IGN3_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC3E - #define IGN4_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC4E - #define IGN5_TIMER_DISABLE() (TIMER1->regs).gen->CCER &= ~TIMER_CCER_CC1E + #define IGN1_COUNTER (TIMER3->regs).gen->CNT + #define IGN2_COUNTER (TIMER3->regs).gen->CNT + #define IGN3_COUNTER (TIMER3->regs).gen->CNT + #define IGN4_COUNTER (TIMER3->regs).gen->CNT + #define IGN5_COUNTER (TIMER1->regs).gen->CNT + #define FUEL1_COMPARE (TIMER2->regs).gen->CCR1 + #define FUEL2_COMPARE (TIMER2->regs).gen->CCR2 + #define FUEL3_COMPARE (TIMER2->regs).gen->CCR3 + #define FUEL4_COMPARE (TIMER2->regs).gen->CCR4 + + #define IGN1_COMPARE (TIMER3->regs).gen->CCR1 + #define IGN2_COMPARE (TIMER3->regs).gen->CCR2 + #define IGN3_COMPARE (TIMER3->regs).gen->CCR3 + #define IGN4_COMPARE (TIMER3->regs).gen->CCR4 + #define IGN5_COMPARE (TIMER1->regs).gen->CCR1 + + //https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 + #define FUEL1_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC1E + #define FUEL2_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC2E + #define FUEL3_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC3E + #define FUEL4_TIMER_ENABLE() (TIMER2->regs).gen->CCER |= TIMER_CCER_CC4E + + #define IGN1_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC1E + #define IGN2_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC2E + #define IGN3_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC3E + #define IGN4_TIMER_ENABLE() (TIMER3->regs).gen->CCER |= TIMER_CCER_CC4E + #define IGN5_TIMER_ENABLE() (TIMER1->regs).gen->CCER |= TIMER_CCER_CC1E + + #define FUEL1_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC1E + #define FUEL2_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC2E + #define FUEL3_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC3E + #define FUEL4_TIMER_DISABLE() (TIMER2->regs).gen->CCER &= ~TIMER_CCER_CC4E + + #define IGN1_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC1E + #define IGN2_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC2E + #define IGN3_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC3E + #define IGN4_TIMER_DISABLE() (TIMER3->regs).gen->CCER &= ~TIMER_CCER_CC4E + #define IGN5_TIMER_DISABLE() (TIMER1->regs).gen->CCER &= ~TIMER_CCER_CC1E + #endif #endif void initialiseSchedulers(); diff --git a/speeduino/scheduler.ino b/speeduino/scheduler.ino index 4610394d..94022b7e 100644 --- a/speeduino/scheduler.ino +++ b/speeduino/scheduler.ino @@ -161,23 +161,40 @@ void initialiseSchedulers() NVIC_ENABLE_IRQ(IRQ_FTM1); #elif defined(CORE_STM32) - //see https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 - (TIMER1->regs).bas->PSC = (CYCLES_PER_MICROSECOND << 1) - 1; //2us resolution - (TIMER2->regs).bas->PSC = (CYCLES_PER_MICROSECOND << 1) - 1; //2us resolution - (TIMER3->regs).bas->PSC = (CYCLES_PER_MICROSECOND << 1) - 1; //2us resolution - // Alternative 2us resolution: - //TimerX.setPrescaleFactor(CYCLES_PER_MICROSECOND * 2U); + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core + //see https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 + Timer1.setPrescaleFactor((HAL_RCC_GetHCLKFreq() * 2U)-1); //2us resolution + Timer2.setPrescaleFactor((HAL_RCC_GetHCLKFreq() * 2U)-1); //2us resolution + Timer3.setPrescaleFactor((HAL_RCC_GetHCLKFreq() * 2U)-1); //2us resolution + Timer2.setMode(1, TIMER_OUTPUT_COMPARE); + Timer2.setMode(2, TIMER_OUTPUT_COMPARE); + Timer2.setMode(3, TIMER_OUTPUT_COMPARE); + Timer2.setMode(4, TIMER_OUTPUT_COMPARE); - Timer2.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); - Timer2.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE); - Timer2.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE); - Timer2.setMode(TIMER_CH4, TIMER_OUTPUT_COMPARE); + Timer3.setMode(1, TIMER_OUTPUT_COMPARE); + Timer3.setMode(2, TIMER_OUTPUT_COMPARE); + Timer3.setMode(3, TIMER_OUTPUT_COMPARE); + Timer3.setMode(4, TIMER_OUTPUT_COMPARE); + Timer1.setMode(1, TIMER_OUTPUT_COMPARE); - Timer3.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); - Timer3.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE); - Timer3.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE); - Timer3.setMode(TIMER_CH4, TIMER_OUTPUT_COMPARE); + #else //libmaple core aka STM32DUINO + //see https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 + //(CYCLES_PER_MICROSECOND == 72, APB2 at 72MHz, APB1 at 36MHz). + //Timer2 to 4 is on APB1, Timer1 on APB2. http://www.st.com/resource/en/datasheet/stm32f103cb.pdf sheet 12 + Timer1.setPrescaleFactor((72 * 2U)-1); //2us resolution + Timer2.setPrescaleFactor((36 * 2U)-1); //2us resolution + Timer3.setPrescaleFactor((36 * 2U)-1); //2us resolution + Timer2.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); + Timer2.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE); + Timer2.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE); + Timer2.setMode(TIMER_CH4, TIMER_OUTPUT_COMPARE); + Timer3.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); + Timer3.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE); + Timer3.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE); + Timer3.setMode(TIMER_CH4, TIMER_OUTPUT_COMPARE); + + #endif Timer2.attachInterrupt(1, fuelSchedule1Interrupt); Timer2.attachInterrupt(2, fuelSchedule2Interrupt); Timer2.attachInterrupt(3, fuelSchedule3Interrupt); @@ -187,7 +204,11 @@ void initialiseSchedulers() Timer3.attachInterrupt(2, ignitionSchedule2Interrupt); Timer3.attachInterrupt(3, ignitionSchedule3Interrupt); Timer3.attachInterrupt(4, ignitionSchedule4Interrupt); + Timer1.attachInterrupt(1, ignitionSchedule5Interrupt); + Timer1.resume(); + Timer2.resume(); + Timer3.resume(); #endif fuelSchedule1.Status = OFF; diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 772eb7ec..e270699e 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -144,20 +144,23 @@ void setup() table3D_setSize(&trim3Table, 6); table3D_setSize(&trim4Table, 6); + #if defined(CORE_STM32) + EEPROM.init(); + #endif loadConfig(); doUpdates(); //Check if any data items need updating (Occurs ith firmware updates) Serial.begin(115200); #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - if (configPage10.enable_canbus == 1) { Serial3.begin(115200); } + if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } #elif defined(CORE_STM32) - if (configPage10.enable_canbus == 1) { Serial2.begin(115200); } + if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } else if (configPage10.enable_canbus == 2) { //enable local can interface } #elif defined(CORE_TEENSY) - if (configPage10.enable_canbus == 1) { Serial2.begin(115200); } + if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } else if (configPage10.enable_canbus == 2) { //Teensy onboard CAN not used currently @@ -635,10 +638,11 @@ void setup() void loop() { mainLoopCount++; + LOOP_TIMER = TIMER_mask; //Check for any requets from serial. Serial operations are checked under 2 scenarios: // 1) Every 64 loops (64 Is more than fast enough for TunerStudio). This function is equivalent to ((loopCount % 64) == 1) but is considerably faster due to not using the mod or division operations // 2) If the amount of data in the serial buffer is greater than a set threhold (See globals.h). This is to avoid serial buffer overflow when large amounts of data is being sent - if ( ((mainLoopCount & 31) == 1) or (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) + if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) { if (Serial.available() > 0) { @@ -650,7 +654,7 @@ void loop() //if serial3 interface is enabled then check for serial3 requests. if (configPage10.enable_canbus == 1) { - if ( ((mainLoopCount & 31) == 1) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) + if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) { if (CANSerial.available() > 0) { @@ -659,13 +663,13 @@ void loop() } } -#elif defined(CORE_STM32) +#elif defined(CORE_TEENSY) || defined(CORE_STM32) //if can or secondary serial interface is enabled then check for requests. if (configPage10.enable_canbus == 1) //secondary serial interface enabled { - if ( ((mainLoopCount & 31) == 1) or (Serial2.available() > SERIAL_BUFFER_THRESHOLD) ) + if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) { - if (Serial2.available() > 0) + if (CANSerial.available() > 0) { canCommand(); } @@ -674,23 +678,7 @@ void loop() else if (configPage10.enable_canbus == 2) // can module enabled { //check local can module - } -#elif defined(CORE_TEENSY) - //if can or secondary serial interface is enabled then check for requests. - if (configPage10.enable_canbus == 1) //secondary serial interface enabled - { - if ( ((mainLoopCount & 31) == 1) or (Serial2.available() > SERIAL_BUFFER_THRESHOLD) ) - { - if (Serial2.available() > 0) - { - canCommand(); - } - } - } - else if (configPage10.enable_canbus == 2) // can module enabled - { - //check local can module - // if ( ((mainLoopCount & 31) == 1) or (CANbus0.available()) + // if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (CANbus0.available()) // { // CANbus0.read(rx_msg); // } @@ -755,8 +743,9 @@ void loop() //----------------------------------------------------------------------------------------------------- readMAP(); - if ((mainLoopCount & 31) == 1) //Every 32 loops + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) //Every 32 loops { + BIT_CLEAR(TIMER_mask, BIT_TIMER_15HZ); readTPS(); //TPS reading to be performed every 32 loops (any faster and it can upset the TPSdot sampling time) //Check for launching/flat shift (clutch) can be done around here too @@ -803,13 +792,15 @@ void loop() //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough boostControl(); } - if( (mainLoopCount & 63) == 1) //Every 64 loops + if(BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) //Every 64 loops { //Nothing here currently + BIT_CLEAR(TIMER_mask, BIT_TIMER_30HZ); } //The IAT and CLT readings can be done less frequently. This still runs about 4 times per second - if ((mainLoopCount & 255) == 1) //Every 256 loops + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_4HZ)) //Every 256 loops { + BIT_CLEAR(TIMER_mask, BIT_TIMER_4HZ); readCLT(); readIAT(); readO2(); @@ -869,9 +860,10 @@ void loop() vvtControl(); idleControl(); //Perform any idle related actions. Even at higher frequencies, running 4x per second is sufficient. } - if ((mainLoopCount & 1023) == 1) //Every 1024 loops (Approx. 1 per second) + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_1HZ)) //Every 1024 loops (Approx. 1 per second) { //Approx. once per second + BIT_CLEAR(TIMER_mask, BIT_TIMER_1HZ); readBaro(); } diff --git a/speeduino/table.ino b/speeduino/table.ino index 1e8dc663..9d633630 100644 --- a/speeduino/table.ino +++ b/speeduino/table.ino @@ -409,82 +409,103 @@ int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) return tableResult; } /* Executed a benchmark on all options and this is the results - * Stadard:226224 91 |FP Math:32240 91.89 |Clean code:34056 91, Number of loops:2500 - * + * @Mega: Stadard:464276 92 |FP Math:893104 92.57 |Clean code:641280 92 , Number of loops:5000 + * @STM32F1: Stadard:21449 92 |FP Math:125707 92.57 |Clean code:11634 92 , Number of loops:5000 + * @STM32F4: Stadard:7275 92 |FP Math:5724 92.57 |Clean code:4742 92 , Number of loops:5000 + //This function pulls a value from a 3D table given a target for X and Y coordinates. //It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf float get3DTableValueF(struct table3D *fromTable, int Y, int X) { - float m, n, o ,p, q, r; byte xMin, xMax; byte yMin, yMax; - int yMaxValue, yMinValue; - int xMaxValue, xMinValue; + float tableResult = 0; - if(fromTable->lastXMin==0) {fromTable->lastXMin = fromTable->xSize-1;} - else {xMin = fromTable->lastXMin;} - if(fromTable->lastYMin==0) {fromTable->lastYMin = fromTable->ySize-1;} - else {yMin = fromTable->lastYMin;} - //yMin = fromTable->lastYMin; - - if(xMin>fromTable->xSize-1) - { - fromTable->lastXMin = fromTable->xSize-1; - xMin = fromTable->xSize-1; - } - if(yMin>fromTable->ySize-1) - { - fromTable->lastYMin = fromTable->ySize-1; - yMin = fromTable->ySize-1; - } + xMin = fromTable->lastXMin; + yMin = fromTable->lastYMin; + if(xMin == 0) { xMin = fromTable->xSize-1; } + if(yMin == 0) { yMin = fromTable->ySize-1; } do //RPM axis { - if(X>=fromTable->axisX[xMin]) {break;} + if(X == fromTable->axisX[xMin]) + { + xMax = xMin; + break; + } + else if(X > fromTable->axisX[xMin]) + { + if (xMin == fromTable->xSize-1) { xMax = xMin; } //Overflow protection + else { xMax = xMin + 1; } + break; + } xMin--; - }while(1); - fromTable->lastXMin = xMin + 1; + }while(true); + do //MAP axis { - if(Y<=fromTable->axisY[yMin]) {break;} + if(Y == fromTable->axisY[yMin]) + { + yMax = yMin; + break; + } + else if(Y < fromTable->axisY[yMin]) + { + if (yMin == fromTable->ySize-1) { yMax = yMin; } //Overflow protection + else { yMax = yMin + 1; } + break; + } yMin--; - }while(1); - fromTable->lastYMin = yMin + 1; + }while(true); - xMax = xMin + 1; - yMax = yMin + 1; - if (xMax>fromTable->xSize-1) //Overflow protection - { - xMax = fromTable->xSize-1; - xMin = xMax - 1; - } - if (yMax>fromTable->ySize-1) //Overflow protection - { - yMax = fromTable->ySize-1; - yMin = yMax - 1; - } - - yMaxValue = fromTable->axisY[yMax]; - yMinValue = fromTable->axisY[yMin]; - xMaxValue = fromTable->axisX[xMax]; - xMinValue = fromTable->axisX[xMin]; + fromTable->lastXMin = xMax; + fromTable->lastYMin = yMax; int A = fromTable->values[yMin][xMin]; int B = fromTable->values[yMin][xMax]; int C = fromTable->values[yMax][xMin]; int D = fromTable->values[yMax][xMax]; + if( (A == B) && (A == C) && (A == D) ) { tableResult = A; } + else if(xMin == xMax) // Same RPM axys do a simple 2D (27% faster on Mega on worst case, up to 500%) + { + int yMaxValue = fromTable->axisY[yMax]; + int yMinValue = fromTable->axisY[yMin]; + float q; + q = ((float)(Y - yMinValue) * (C - A)) / (yMaxValue - yMinValue); + tableResult = A + q; + } + else if(yMin == yMax) // Same MAP axys do a simple 2D (27% faster on Mega on worst case, up to 500%) + { + int xMaxValue = fromTable->axisX[xMax]; + int xMinValue = fromTable->axisX[xMin]; + float q; + q = ((float)(X - xMinValue) * (B - A)) / (xMaxValue - xMinValue); + tableResult = A + q; + } + else + { + int yMaxValue = fromTable->axisY[yMax]; + int yMinValue = fromTable->axisY[yMin]; + int xMaxValue = fromTable->axisX[xMax]; + int xMinValue = fromTable->axisX[xMin]; + + float m, n, o , p, q, r; + if (xMaxValue == xMinValue) { p = (float)X - xMinValue; } + else { p = ((float)X - xMinValue) / (xMaxValue - xMinValue); } + if (yMaxValue == yMinValue) { q = (float)Y - yMinValue; } + else { q = ((float)Y - yMinValue) / (yMaxValue - yMinValue); } - p = float(X - xMinValue) / (xMaxValue - xMinValue); //(RPM - RPM[1])/(RPM[2]- RPM[1]) - q = float(Y - yMinValue) / (yMaxValue - yMinValue); //(MAP - MAP[1])/(MAP[2]- MAP[1]) - - m = (1.0-p) * (1.0-q); - n = p * (1-q); - o = (1-p) * q; - r = p * q; - - return ( (A * m) + (B * n) + (C * o) + (D * r) ); + m = (1.0-p) * (1.0-q); + n = p * (1-q); + o = (1-p) * q; + r = p * q; + tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ); + } + return tableResult; } -*/ + +//This function pulls a value from a 3D table given a target for X and Y coordinates. +//It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf int get3DTableValueS(struct table3D *fromTable, int Y, int X) { byte xMin, xMax; @@ -498,68 +519,62 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) do //RPM axis { - if(X > fromTable->axisX[xMin]) - { - if (xMin == (fromTable->xSize-1) ) { xMax = xMin; } //Overflow protection - else { xMax = xMin + 1; } - break; - } - else if(X == fromTable->axisX[xMin]) + if(X == fromTable->axisX[xMin]) { xMax = xMin; break; } + else if(X > fromTable->axisX[xMin]) + { + if (xMin == fromTable->xSize-1) { xMax = xMin; } //Overflow protection + else { xMax = xMin + 1; } + break; + } xMin--; }while(true); do //MAP axis { - if(Y < fromTable->axisY[yMin]) - { - if (yMin == (fromTable->ySize-1) ) { yMax = yMin; } //Overflow protection - else { yMax = yMin + 1; } - break; - } - else if(Y == fromTable->axisY[yMin]) + if(Y == fromTable->axisY[yMin]) { yMax = yMin; break; } + else if(Y < fromTable->axisY[yMin]) + { + if (yMin == fromTable->ySize-1) { yMax = yMin; } //Overflow protection + else { yMax = yMin + 1; } + break; + } yMin--; }while(true); fromTable->lastXMin = xMax; fromTable->lastYMin = yMax; - //Serial.print("xMin, xMax ");Serial.print(xMin);Serial.print(",");Serial.println(xMax); - //Serial.print("yMin, yMax ");Serial.print(yMin);Serial.print(",");Serial.println(yMax); - int A = fromTable->values[yMin][xMin]; - if((xMin == xMax) && (yMin == yMax)) { tableResult = A; } - else if(xMin == xMax) // Simple 2D + int B = fromTable->values[yMin][xMax]; + int C = fromTable->values[yMax][xMin]; + int D = fromTable->values[yMax][xMax]; + if( (A == B) && (A == C) && (A == D) ) { tableResult = A; } + else if(xMin == xMax) // Same RPM axys do a simple 2D (27% faster on Mega on worst case, up to 500%) { - int D = fromTable->values[yMax][xMax]; int yMaxValue = fromTable->axisY[yMax]; int yMinValue = fromTable->axisY[yMin]; - long q = (long)Y - yMinValue; - q = ((q << 6) * (D - A)) / (yMaxValue - yMinValue); + long q; + q = (((long)(Y - yMinValue) << 6) * (C - A)) / (yMaxValue - yMinValue); tableResult = A + (q >> 6); } - else if(yMin == yMax) // Simple 2D + else if(yMin == yMax) // Same MAP axys do a simple 2D (27% faster on Mega on worst case, up to 500%) { - int D = fromTable->values[yMax][xMax]; int xMaxValue = fromTable->axisX[xMax]; int xMinValue = fromTable->axisX[xMin]; - long q = (long)X - xMinValue; - q = ((q << 6) * (D - A)) / (xMaxValue - xMinValue); + long q; + q = (((long)(X - xMinValue) << 6) * (B - A)) / (xMaxValue - xMinValue); tableResult = A + (q >> 6); } else { - int B = fromTable->values[yMin][xMax]; - int C = fromTable->values[yMax][xMin]; - int D = fromTable->values[yMax][xMax]; - int yMaxValue = fromTable->axisY[yMax]; int yMinValue = fromTable->axisY[yMin]; int xMaxValue = fromTable->axisX[xMax]; @@ -575,6 +590,7 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) q = (long)Y - yMinValue; q = (q << 8); } + //Standard case else { q = long(Y) - yMaxValue; @@ -586,6 +602,7 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) int o = ((256-p) * q) >> 8; int r = (p * q) >> 8; tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; - } + } return tableResult; } +*/ diff --git a/speeduino/timers.h b/speeduino/timers.h index 1762dbfd..c172adc5 100644 --- a/speeduino/timers.h +++ b/speeduino/timers.h @@ -19,8 +19,10 @@ Hence we will preload the timer with 131 cycles to leave 125 until overflow (1ms #ifndef TIMERS_H #define TIMERS_H -volatile int loop100ms; -volatile int loop250ms; +volatile byte loop33ms; +volatile byte loop66ms; +volatile byte loop100ms; +volatile byte loop250ms; volatile int loopSec; volatile unsigned int dwellLimit_uS; diff --git a/speeduino/timers.ino b/speeduino/timers.ino index 4b1483b0..bdc87e4d 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -42,8 +42,9 @@ void initialiseTimers() #elif defined(CORE_STM32) Timer4.setPeriod(1000); // Set up period // Set up an interrupt - Timer4.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); + Timer4.setMode(1, TIMER_OUTPUT_COMPARE); Timer4.attachInterrupt(1, oneMSInterval); + Timer4.resume(); //Start Timer #endif dwellLimit_uS = (1000 * configPage2.dwellLimit); @@ -61,6 +62,8 @@ void oneMSInterval() //Most ARM chips can simply call a function { //Increment Loop Counters + loop33ms++; + loop66ms++; loop100ms++; loop250ms++; loopSec++; @@ -78,11 +81,29 @@ void oneMSInterval() //Most ARM chips can simply call a function if(ignitionSchedule4.Status == RUNNING) { if( (ignitionSchedule4.startTime < targetOverdwellTime) && (configPage2.useDwellLim) && (isCrankLocked != true) ) { endCoil4Charge(); } } if(ignitionSchedule5.Status == RUNNING) { if( (ignitionSchedule5.startTime < targetOverdwellTime) && (configPage2.useDwellLim) && (isCrankLocked != true) ) { endCoil5Charge(); } } + //15Hz loop + if (loop66ms == 66) + { + loop66ms = 0; + BIT_SET(TIMER_mask, BIT_TIMER_15HZ); + } + + //30Hz loop + if (loop33ms == 33) + { + loop33ms = 0; + BIT_SET(TIMER_mask, BIT_TIMER_30HZ); + } + //Loop executed every 100ms loop //Anything inside this if statement will run every 100ms. if (loop100ms == 100) { loop100ms = 0; //Reset counter + BIT_SET(TIMER_mask, BIT_TIMER_10HZ); + #if defined(CORE_STM32) //debug purpose, only visal for running code + digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); + #endif currentStatus.rpmDOT = (currentStatus.RPM - lastRPM_100ms) * 10; //This is the RPM per second that the engine has accelerated/decelleratedin the last loop lastRPM_100ms = currentStatus.RPM; //Record the current RPM for next calc @@ -93,6 +114,7 @@ void oneMSInterval() //Most ARM chips can simply call a function if (loop250ms == 250) { loop250ms = 0; //Reset Counter + BIT_SET(TIMER_mask, BIT_TIMER_4HZ); #if defined(CORE_AVR) //Reset watchdog timer (Not active currently) @@ -107,6 +129,7 @@ void oneMSInterval() //Most ARM chips can simply call a function if (loopSec == 1000) { loopSec = 0; //Reset counter. + BIT_SET(TIMER_mask, BIT_TIMER_1HZ); dwellLimit_uS = (1000 * configPage2.dwellLimit); //Update uS value incase setting has changed currentStatus.crankRPM = ((unsigned int)configPage2.crankRPM * 100); diff --git a/speeduino/utils.h b/speeduino/utils.h index 603782d5..7632d05e 100644 --- a/speeduino/utils.h +++ b/speeduino/utils.h @@ -12,4 +12,45 @@ unsigned int PW(); unsigned int PW_SD(); unsigned int PW_AN(); +//This is dumb, but it'll do for now to get things compiling +#if defined(CORE_STM32) + //STM32F1/variants/.../board.cpp + #if defined (STM32F4) + #define A0 PA0 + #define A1 PA1 + #define A2 PA2 + #define A3 PA3 + #define A4 PA4 + #define A5 PA5 + #define A6 PA6 + #define A7 PA7 + #define A8 PB0 + #define A9 PB1 + #define A10 PC0 + #define A11 PC1 + #define A12 PC2 + #define A13 PC3 + #define A14 PC4 + #define A15 PC5 + #else + #define A0 PB0 + #define A1 PA7 + #define A2 PA6 + #define A3 PA5 + #define A4 PA4 + #define A5 PA3 + #define A6 PA2 + #define A7 PA1 + #define A8 PA0 + //STM32F1 have only 9 12bit adc + #define A9 PB0 + #define A10 PA7 + #define A11 PA6 + #define A12 PA5 + #define A13 PA4 + #define A14 PA3 + #define A15 PA2 + #endif +#endif + #endif // UTILS_H diff --git a/speeduino/utils.ino b/speeduino/utils.ino index e49c7e36..a9865a2c 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -42,28 +42,6 @@ uint16_t freeRam () void setPinMapping(byte boardID) { - //This is dumb, but it'll do for now to get things compiling - #if defined(CORE_STM32) - //STM32F1/variants/.../board.cpp - #define A0 boardADCPins[0] - #define A1 boardADCPins[1] - #define A2 boardADCPins[2] - #define A3 boardADCPins[3] - #define A4 boardADCPins[4] - #define A5 boardADCPins[5] - #define A6 boardADCPins[6] - #define A7 boardADCPins[7] - #define A8 boardADCPins[8] - #define A9 boardADCPins[9] - //STM32F1 have only 9 12bit adc - #define A10 boardADCPins[0] - #define A11 boardADCPins[1] - #define A12 boardADCPins[2] - #define A13 boardADCPins[3] - #define A14 boardADCPins[4] - #define A15 boardADCPins[5] - #endif - switch (boardID) { case 0: @@ -168,35 +146,6 @@ void setPinMapping(byte boardID) pinCoil4 = 21; pinCoil3 = 30; pinO2 = A22; - #elif defined(CORE_STM32) - //http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/0.0.12/hardware/maple-mini.html#master-pin-map - //pins 23, 24 and 33 couldn't be used - pinInjector1 = 15; //Output pin injector 1 is on - pinInjector2 = 16; //Output pin injector 2 is on - pinInjector3 = 17; //Output pin injector 3 is on - pinInjector4 = 18; //Output pin injector 4 is on - pinCoil1 = 19; //Pin for coil 1 - pinCoil2 = 20; //Pin for coil 2 - pinCoil3 = 21; //Pin for coil 3 - pinCoil4 = 26; //Pin for coil 4 - pinCoil5 = 27; //Pin for coil 5 - pinTPS = A0; //TPS input pin - pinMAP = A1; //MAP sensor pin - pinIAT = A2; //IAT sensor pin - pinCLT = A3; //CLS sensor pin - pinO2 = A4; //O2 Sensor pin - pinBat = A5; //Battery reference voltage pin - pinStepperDir = 12; //Direction pin for DRV8825 driver - pinStepperStep = 13; //Step pin for DRV8825 driver - pinStepperEnable = 14; //Enable pin for DRV8825 - pinDisplayReset = 2; // OLED reset pin - pinFan = 1; //Pin for the fan output - pinFuelPump = 0; //Fuel pump output - pinTachOut = 31; //Tacho output pin - //external interrupt enabled pins - pinFlex = 32; // Flex sensor (Must be external interrupt enabled) - pinTrigger = 25; //The CAS pin - pinTrigger2 = 22; //The Cam Sensor pin #endif break; @@ -245,6 +194,37 @@ void setPinMapping(byte boardID) pinCoil4 = 29; pinCoil3 = 30; pinO2 = A22; + #elif defined(STM32F4) + pinInjector1 = PE7; //Output pin injector 1 is on + pinInjector2 = PE8; //Output pin injector 2 is on + pinInjector3 = PE9; //Output pin injector 3 is on + pinInjector4 = PE10; //Output pin injector 4 is on + pinInjector5 = PE11; //Output pin injector 5 is on + pinCoil1 = PB10; //Pin for coil 1 + pinCoil2 = PB11; //Pin for coil 2 + pinCoil3 = PB12; //Pin for coil 3 + pinCoil4 = PB13; //Pin for coil 4 + pinCoil5 = PB14; //Pin for coil 5 + pinTPS = A0; //TPS input pin + pinMAP = A1; //MAP sensor pin + pinIAT = A2; //IAT sensor pin + pinCLT = A3; //CLS sensor pin + pinO2 = A4; //O2 Sensor pin + pinBat = A5; //Battery reference voltage pin + pinBaro = A6; + pinStepperDir = PD8; //Direction pin for DRV8825 driver + pinStepperStep = PB15; //Step pin for DRV8825 driver + pinStepperEnable = PD9; //Enable pin for DRV8825 + pinDisplayReset = PE1; // OLED reset pin + pinFan = PE2; //Pin for the fan output + pinFuelPump = PA6; //Fuel pump output + pinTachOut = PA7; //Tacho output pin + //external interrupt enabled pins + pinFlex = PC4; // Flex sensor (Must be external interrupt enabled) + pinTrigger = PC5; //The CAS pin + pinTrigger2 = PC6; //The Cam Sensor pin + pinBoost = PE0; //Boost control + pinVVT_1 = PE1; //Default VVT output #elif defined(CORE_STM32) //http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/0.0.12/hardware/maple-mini.html#master-pin-map //pins 23, 24 and 33 couldn't be used @@ -274,6 +254,9 @@ void setPinMapping(byte boardID) pinFlex = 32; // Flex sensor (Must be external interrupt enabled) pinTrigger = 25; //The CAS pin pinTrigger2 = 22; //The Cam Sensor pin + pinBaro = pinMAP; + pinBoost = 1; //Boost control + pinVVT_1 = 0; //Default VVT output #endif break; @@ -456,7 +439,7 @@ void setPinMapping(byte boardID) if ( (configPage4.fanPin != 0) && (configPage4.fanPin < BOARD_NR_GPIO_PINS) ) { pinFan = configPage4.fanPin; } if ( (configPage3.boostPin != 0) && (configPage3.boostPin < BOARD_NR_GPIO_PINS) ) { pinBoost = configPage3.boostPin; } if ( (configPage3.vvtPin != 0) && (configPage3.vvtPin < BOARD_NR_GPIO_PINS) ) { pinVVT_1 = configPage3.vvtPin; } - if ( (configPage3.useExtBaro != 0) ) { pinBaro = configPage3.baroPin + A0; } + if ( (configPage3.useExtBaro != 0) && (configPage3.baroPin < BOARD_NR_GPIO_PINS) ) { pinBaro = configPage3.baroPin + A0; } //Finally, set the relevant pin modes for outputs pinMode(pinCoil1, OUTPUT); @@ -508,25 +491,28 @@ void setPinMapping(byte boardID) pump_pin_port = portOutputRegister(digitalPinToPort(pinFuelPump)); pump_pin_mask = digitalPinToBitMask(pinFuelPump); + //And for inputs //And for inputs #if defined(CORE_STM32) - pinMode(pinMAP, INPUT_ANALOG); - pinMode(pinO2, INPUT_ANALOG); - pinMode(pinO2_2, INPUT_ANALOG); - pinMode(pinTPS, INPUT_ANALOG); - pinMode(pinIAT, INPUT_ANALOG); - pinMode(pinCLT, INPUT_ANALOG); - pinMode(pinBat, INPUT_ANALOG); - pinMode(pinBaro, INPUT_ANALOG); - #else - pinMode(pinMAP, INPUT); - pinMode(pinO2, INPUT); - pinMode(pinO2_2, INPUT); - pinMode(pinTPS, INPUT); - pinMode(pinIAT, INPUT); - pinMode(pinCLT, INPUT); - pinMode(pinBat, INPUT); - pinMode(pinBaro, INPUT); + #ifndef ARDUINO_ARCH_STM32 //libmaple core aka STM32DUINO + pinMode(pinMAP, INPUT_ANALOG); + pinMode(pinO2, INPUT_ANALOG); + pinMode(pinO2_2, INPUT_ANALOG); + pinMode(pinTPS, INPUT_ANALOG); + pinMode(pinIAT, INPUT_ANALOG); + pinMode(pinCLT, INPUT_ANALOG); + pinMode(pinBat, INPUT_ANALOG); + pinMode(pinBaro, INPUT_ANALOG); + #else + pinMode(pinMAP, INPUT); + pinMode(pinO2, INPUT); + pinMode(pinO2_2, INPUT); + pinMode(pinTPS, INPUT); + pinMode(pinIAT, INPUT); + pinMode(pinCLT, INPUT); + pinMode(pinBat, INPUT); + pinMode(pinBaro, INPUT); + #endif #endif pinMode(pinTrigger, INPUT); pinMode(pinTrigger2, INPUT); From b1e7b854d056ba3b6bb767e0c8b386b1c253fbcb Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Mon, 28 Aug 2017 01:44:08 -0300 Subject: [PATCH 088/133] Enable CRC on multi lib --- speeduino/src/FastCRC/FastCRC_tables.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/speeduino/src/FastCRC/FastCRC_tables.h b/speeduino/src/FastCRC/FastCRC_tables.h index 47f376dd..1d5142f5 100755 --- a/speeduino/src/FastCRC/FastCRC_tables.h +++ b/speeduino/src/FastCRC/FastCRC_tables.h @@ -31,7 +31,7 @@ #define FastCRC_tables #include "inttypes.h" -#if defined(__AVR__) || defined(STM32_MCU_SERIES) || defined(_VARIANT_ARDUINO_STM32_) +#if defined(__AVR__) || defined(STM32_MCU_SERIES) || defined(ARDUINO_ARCH_STM32) || defined(_VARIANT_ARDUINO_STM32_) #include #else #include From 8f9619ca96242e2a274c64fb6059c1d6be0457c1 Mon Sep 17 00:00:00 2001 From: "Vitor Moreno B. Sales" Date: Mon, 28 Aug 2017 01:54:53 -0300 Subject: [PATCH 089/133] Update timers.ino --- speeduino/timers.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/speeduino/timers.ino b/speeduino/timers.ino index 4dc34db4..a5332376 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -2,7 +2,7 @@ Speeduino - Simple engine management for the Arduino Mega 2560 platform Copyright (C) Josh Stewart A full copy of the license may be found in the projects root directory -*/ +*/ /* Timers are used for having actions performed repeatedly at a fixed interval (Eg every 100ms) From 1ffbad8a43277b41d1cd6c96ac8857dce438275e Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Mon, 28 Aug 2017 02:01:36 -0300 Subject: [PATCH 090/133] Revert "Merge branch 'master' into pr/5" This reverts commit d8898db9fe0abcb71ac2640d083ae65fff01df10, reversing changes made to b1e7b854d056ba3b6bb767e0c8b386b1c253fbcb. --- speeduino/cancomms.h | 58 +- speeduino/decoders.ino | 2 - speeduino/globals.h | 13 +- speeduino/sensors.h | 213 ++- speeduino/sensors.ino | 1 - speeduino/speeduino.ino | 2857 +++++++++++++++++++-------------------- speeduino/timers.ino | 211 +++ speeduino/updates.ino | 1 - speeduino/utils.ino | 1762 ++++++++++++------------ 9 files changed, 2655 insertions(+), 2463 deletions(-) diff --git a/speeduino/cancomms.h b/speeduino/cancomms.h index d6f98d73..2e43b7c2 100644 --- a/speeduino/cancomms.h +++ b/speeduino/cancomms.h @@ -1,30 +1,30 @@ -#ifndef CANCOMMS_H -#define CANCOMMS_H -//These are the page numbers that the Tuner Studio serial protocol uses to transverse the different map and config pages. -#define veMapPage 1 - -uint8_t currentcanCommand; -uint8_t currentCanPage = 1;//Not the same as the speeduino config page numbers -uint8_t nCanretry = 0; //no of retrys -uint8_t cancmdfail = 0; //command fail yes/no -uint8_t canlisten = 0; -uint8_t Lbuffer[8]; //8 byte buffer to store incomng can data -uint8_t Gdata[9]; -uint8_t Glow, Ghigh; - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - HardwareSerial &CANSerial = Serial3; -#elif defined(CORE_STM32) - #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core - SerialUART &CANSerial = Serial2; - #else //libmaple core aka STM32DUINO - HardwareSerial &CANSerial = Serial2; - #endif -#elif defined(CORE_TEENSY) - HardwareSerial &CANSerial = Serial2; -#endif - -void canCommand();//This is the heart of the Command Line Interpeter. All that needed to be done was to make it human readable. -void sendCancommand(uint8_t cmdtype , uint16_t canadddress, uint8_t candata1, uint8_t candata2, uint16_t paramgroup); - +#ifndef CANCOMMS_H +#define CANCOMMS_H +//These are the page numbers that the Tuner Studio serial protocol uses to transverse the different map and config pages. +#define veMapPage 1 + +uint8_t currentcanCommand; +uint8_t currentCanPage = 1;//Not the same as the speeduino config page numbers +uint8_t nCanretry = 0; //no of retrys +uint8_t cancmdfail = 0; //command fail yes/no +uint8_t canlisten = 0; +uint8_t Lbuffer[8]; //8 byte buffer to store incomng can data +uint8_t Gdata[9]; +uint8_t Glow, Ghigh; + +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + HardwareSerial &CANSerial = Serial3; +#elif defined(CORE_STM32) + #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core + SerialUART &CANSerial = Serial2; + #else //libmaple core aka STM32DUINO + HardwareSerial &CANSerial = Serial2; + #endif +#elif defined(CORE_TEENSY) + HardwareSerial &CANSerial = Serial2; +#endif + +void canCommand();//This is the heart of the Command Line Interpeter. All that needed to be done was to make it human readable. +void sendCancommand(uint8_t cmdtype , uint16_t canadddress, uint8_t candata1, uint8_t candata2, uint16_t paramgroup); + #endif // CANCOMMS_H diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 42de2391..106155e6 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -2196,7 +2196,6 @@ void triggerSetEndTeeth_Daihatsu() } - /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Code for decoder.ino Name: Harley @@ -2336,4 +2335,3 @@ void triggerSetEndTeeth_Harley() { } - diff --git a/speeduino/globals.h b/speeduino/globals.h index a870ffd6..a9feff4b 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -36,10 +36,6 @@ #define BIT_SET(a,b) ((a) |= (1<<(b))) #define BIT_CLEAR(a,b) ((a) &= ~(1<<(b))) #define BIT_CHECK(var,pos) !!((var) & (1<<(pos))) -#define Lo(param) ((char *)¶m)[0] -#define Hi(param) ((char *)¶m)[1] -#define Higher(param) ((char *)¶m)[2] -#define Highest(param) ((char *)¶m)[3] #define MS_IN_MINUTE 60000 #define US_IN_MINUTE 60000000 @@ -128,11 +124,7 @@ #define OFFSET_FUELTRIM 127 //The fuel trim tables are offset by 128 to allow for -128 to +128 values #define OFFSET_IGNITION 40 //Ignition values from the main spark table are offset 40 degrees downards to allow for negative spark timing -#if defined(CORE_STM32) - #define SERIAL_BUFFER_THRESHOLD 64 // When the serial buffer is filled to greater than this threshold value, the serial processing operations will be performed more urgently in order to avoid it overflowing. Serial buffer is 128 bytes long, so the threshold is set at half this as a reasonable figure -#else - #define SERIAL_BUFFER_THRESHOLD 32 // When the serial buffer is filled to greater than this threshold value, the serial processing operations will be performed more urgently in order to avoid it overflowing. Serial buffer is 64 bytes long, so the threshold is set at half this as a reasonable figure -#endif +#define SERIAL_BUFFER_THRESHOLD 32 // When the serial buffer is filled to greater than this threshold value, the serial processing operations will be performed more urgently in order to avoid it overflowing. Serial buffer is 64 bytes long, so the threshold is set at half this as a reasonable figure #define FUEL_PUMP_ON() *pump_pin_port |= (pump_pin_mask) #define FUEL_PUMP_OFF() *pump_pin_port &= ~(pump_pin_mask) @@ -215,9 +207,6 @@ int ignition4EndAngle = 0; //This is used across multiple files unsigned long revolutionTime; //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) -volatile byte TIMER_mask; -volatile byte LOOP_TIMER; - //The status struct contains the current values for all 'live' variables //In current version this is 64 bytes struct statuses { diff --git a/speeduino/sensors.h b/speeduino/sensors.h index 24245d04..204e5970 100644 --- a/speeduino/sensors.h +++ b/speeduino/sensors.h @@ -1,108 +1,107 @@ -#ifndef SENSORS_H -#define SENSORS_H - -#include "Arduino.h" - - -// The following are alpha values for the ADC filters. -// Their values are from 0 to 255 with 0 being no filtering and 255 being maximum -#define ADCFILTER_TPS 128 -#define ADCFILTER_CLT 180 -#define ADCFILTER_IAT 180 -#define ADCFILTER_O2 128 -#define ADCFILTER_BAT 128 -#define ADCFILTER_MAP 20 //This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response -#define ADCFILTER_BARO 64 - -#define BARO_MIN 87 -#define BARO_MAX 108 - -/* -#if defined(CORE_AVR) - #define ANALOG_ISR -#endif -*/ - -volatile byte flexCounter = 0; -volatile int AnChannel[15]; - -unsigned long MAPrunningValue; //Used for tracking either the total of all MAP readings in this cycle (Event average) or the lowest value detected in this cycle (event minimum) -unsigned int MAPcount; //Number of samples taken in the current MAP cycle -byte MAPcurRev; //Tracks which revolution we're sampling on - -/* - * Simple low pass IIR filter macro for the analog inputs - * This is effectively implementing the smooth filter from http://playground.arduino.cc/Main/Smooth - * But removes the use of floats and uses 8 bits of fixed precision. - */ -#define ADC_FILTER(input, alpha, prior) (((long)input * (256 - alpha) + ((long)prior * alpha))) >> 8 - -void instanteneousMAPReading(); -void readMAP(); -void flexPulse(); - -#if defined(ANALOG_ISR) -//Analog ISR interrupt routine -/* -ISR(ADC_vect) -{ - byte nChannel; - int result = ADCL | (ADCH << 8); - - //ADCSRA = 0x6E; // ADC disabled by clearing bit 7(ADEN) - //BIT_CLEAR(ADCSRA, ADIE); - - nChannel = ADMUX & 0x07; - #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) - if (nChannel==7) { ADMUX = 0x40; } - #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - if(ADCSRB & 0x08) { nChannel += 8; } //8 to 15 - if(nChannel == 15) - { - ADMUX = 0x40; //channel 0 - ADCSRB = 0x00; //clear MUX5 bit - } - else if (nChannel == 7) //channel 7 - { - ADMUX = 0x40; - ADCSRB = 0x08; //Set MUX5 bit - } - #endif - else { ADMUX++; } - AnChannel[nChannel-1] = result; - - //BIT_SET(ADCSRA, ADIE); - //ADCSRA = 0xEE; // ADC Interrupt Flag enabled -} -*/ -ISR(ADC_vect) -{ - byte nChannel = ADMUX & 0x07; - int result = ADCL | (ADCH << 8); - - BIT_CLEAR(ADCSRA, ADEN); //Disable ADC for Changing Channel (see chapter 26.5 of datasheet) - - #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) - if (nChannel==7) { ADMUX = 0x40; } - #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - if( (ADCSRB & 0x08) > 0) { nChannel += 8; } //8 to 15 - if(nChannel == 15) - { - ADMUX = 0x40; //channel 0 - ADCSRB = 0x00; //clear MUX5 bit - } - else if (nChannel == 7) //channel 7 - { - ADMUX = 0x40; - ADCSRB = 0x08; //Set MUX5 bit - } - #endif - else { ADMUX++; } - AnChannel[nChannel] = result; - - BIT_SET(ADCSRA, ADEN); //Enable ADC -} -#endif - -#endif // SENSORS_H +#ifndef SENSORS_H +#define SENSORS_H +#include "Arduino.h" + + +// The following are alpha values for the ADC filters. +// Their values are from 0 to 255 with 0 being no filtering and 255 being maximum +#define ADCFILTER_TPS 128 +#define ADCFILTER_CLT 180 +#define ADCFILTER_IAT 180 +#define ADCFILTER_O2 128 +#define ADCFILTER_BAT 128 +#define ADCFILTER_MAP 20 //This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response +#define ADCFILTER_BARO 64 + +#define BARO_MIN 87 +#define BARO_MAX 108 + +/* +#if defined(CORE_AVR) + #define ANALOG_ISR +#endif +*/ + +volatile byte flexCounter = 0; +volatile int AnChannel[15]; + +unsigned long MAPrunningValue; //Used for tracking either the total of all MAP readings in this cycle (Event average) or the lowest value detected in this cycle (event minimum) +unsigned int MAPcount; //Number of samples taken in the current MAP cycle +byte MAPcurRev; //Tracks which revolution we're sampling on + +/* + * Simple low pass IIR filter macro for the analog inputs + * This is effectively implementing the smooth filter from http://playground.arduino.cc/Main/Smooth + * But removes the use of floats and uses 8 bits of fixed precision. + */ +#define ADC_FILTER(input, alpha, prior) (((long)input * (256 - alpha) + ((long)prior * alpha))) >> 8 + +void instanteneousMAPReading(); +void readMAP(); +void flexPulse(); + +#if defined(ANALOG_ISR) +//Analog ISR interrupt routine +/* +ISR(ADC_vect) +{ + byte nChannel; + int result = ADCL | (ADCH << 8); + + //ADCSRA = 0x6E; // ADC disabled by clearing bit 7(ADEN) + //BIT_CLEAR(ADCSRA, ADIE); + + nChannel = ADMUX & 0x07; + #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) + if (nChannel==7) { ADMUX = 0x40; } + #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + if(ADCSRB & 0x08) { nChannel += 8; } //8 to 15 + if(nChannel == 15) + { + ADMUX = 0x40; //channel 0 + ADCSRB = 0x00; //clear MUX5 bit + } + else if (nChannel == 7) //channel 7 + { + ADMUX = 0x40; + ADCSRB = 0x08; //Set MUX5 bit + } + #endif + else { ADMUX++; } + AnChannel[nChannel-1] = result; + + //BIT_SET(ADCSRA, ADIE); + //ADCSRA = 0xEE; // ADC Interrupt Flag enabled +} +*/ +ISR(ADC_vect) +{ + byte nChannel = ADMUX & 0x07; + int result = ADCL | (ADCH << 8); + + BIT_CLEAR(ADCSRA, ADEN); //Disable ADC for Changing Channel (see chapter 26.5 of datasheet) + + #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) + if (nChannel==7) { ADMUX = 0x40; } + #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + if( (ADCSRB & 0x08) > 0) { nChannel += 8; } //8 to 15 + if(nChannel == 15) + { + ADMUX = 0x40; //channel 0 + ADCSRB = 0x00; //clear MUX5 bit + } + else if (nChannel == 7) //channel 7 + { + ADMUX = 0x40; + ADCSRB = 0x08; //Set MUX5 bit + } + #endif + else { ADMUX++; } + AnChannel[nChannel] = result; + + BIT_SET(ADCSRA, ADEN); //Enable ADC +} +#endif + +#endif // SENSORS_H diff --git a/speeduino/sensors.ino b/speeduino/sensors.ino index 57904c36..7057819c 100644 --- a/speeduino/sensors.ino +++ b/speeduino/sensors.ino @@ -268,4 +268,3 @@ void flexPulse() { ++flexCounter; } - diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 59c50222..e270699e 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -1,1431 +1,1428 @@ -/* -Speeduino - Simple engine management for the Arduino Mega 2560 platform -Copyright (C) Josh Stewart - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful,la -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -*/ - -//************************************************************************************************** -// Config section -#define engineSquirtsPerCycle 2 //Would be 1 for a 2 stroke -//************************************************************************************************** - -//https://developer.mbed.org/handbook/C-Data-Types -#include -//************************************************ -#include "globals.h" -#include "utils.h" -#include "table.h" -#include "scheduler.h" -#include "comms.h" -#include "cancomms.h" -#include "maths.h" -#include "corrections.h" -#include "timers.h" -//#include "display.h" -#include "decoders.h" -#include "idle.h" -#include "auxiliaries.h" -#include "sensors.h" -#include "src/PID_v1/PID_v1.h" -//#include "src/DigitalWriteFast/digitalWriteFast.h" -#include "errors.h" -#include "storage.h" -#include "scheduledIO.h" -#include -#if defined (CORE_TEENSY) -#include -#endif - -struct config1 configPage1; -struct config2 configPage2; -struct config3 configPage3; -struct config4 configPage4; -struct config10 configPage10; -struct config11 configPage11; - -int req_fuel_uS, inj_opentime_uS; - -bool ignitionOn = false; //The current state of the ignition system -bool fuelOn = false; //The current state of the ignition system -bool fuelPumpOn = false; //The current status of the fuel pump - -void (*trigger)(); //Pointer for the trigger function (Gets pointed to the relevant decoder) -void (*triggerSecondary)(); //Pointer for the secondary trigger function (Gets pointed to the relevant decoder) -uint16_t (*getRPM)(); //Pointer to the getRPM function (Gets pointed to the relevant decoder) -int (*getCrankAngle)(int); //Pointer to the getCrank Angle function (Gets pointed to the relevant decoder) -void (*triggerSetEndTeeth)(); //Pointer to the triggerSetEndTeeth function of each decoder - -byte cltCalibrationTable[CALIBRATION_TABLE_SIZE]; -byte iatCalibrationTable[CALIBRATION_TABLE_SIZE]; -byte o2CalibrationTable[CALIBRATION_TABLE_SIZE]; - -//These variables are used for tracking the number of running sensors values that appear to be errors. Once a threshold is reached, the sensor reading will go to default value and assume the sensor is faulty -byte mapErrorCount = 0; -byte iatErrorCount = 0; -byte cltErrorCount = 0; - -unsigned long counter; -unsigned long currentLoopTime; //The time the current loop started (uS) -unsigned long previousLoopTime; //The time the previous loop started (uS) - -int CRANK_ANGLE_MAX = 720; -int CRANK_ANGLE_MAX_IGN = 360; -int CRANK_ANGLE_MAX_INJ = 360; // The number of crank degrees that the system track over. 360 for wasted / timed batch and 720 for sequential - -static byte coilHIGH = HIGH; -static byte coilLOW = LOW; -static byte fanHIGH = HIGH; // Used to invert the cooling fan output -static byte fanLOW = LOW; // Used to invert the cooling fan output - -volatile uint16_t mainLoopCount; -byte deltaToothCount = 0; //The last tooth that was used with the deltaV calc -int rpmDelta; -byte ignitionCount; -uint16_t fixedCrankingOverride = 0; -int16_t lastAdvance; //Stores the previous advance figure to track changes. -bool clutchTrigger; -bool previousClutchTrigger; - -unsigned long secCounter; //The next time to incremen 'runSecs' counter. -int channel1IgnDegrees; //The number of crank degrees until cylinder 1 is at TDC (This is obviously 0 for virtually ALL engines, but there's some weird ones) -int channel2IgnDegrees; //The number of crank degrees until cylinder 2 (and 5/6/7/8) is at TDC -int channel3IgnDegrees; //The number of crank degrees until cylinder 3 (and 5/6/7/8) is at TDC -int channel4IgnDegrees; //The number of crank degrees until cylinder 4 (and 5/6/7/8) is at TDC -int channel5IgnDegrees; //The number of crank degrees until cylinder 5 is at TDC -int channel1InjDegrees; //The number of crank degrees until cylinder 1 is at TDC (This is obviously 0 for virtually ALL engines, but there's some weird ones) -int channel2InjDegrees; //The number of crank degrees until cylinder 2 (and 5/6/7/8) is at TDC -int channel3InjDegrees; //The number of crank degrees until cylinder 3 (and 5/6/7/8) is at TDC -int channel4InjDegrees; //The number of crank degrees until cylinder 4 (and 5/6/7/8) is at TDC -int channel5InjDegrees; //The number of crank degrees until cylinder 5 is at TDC - -//These are the functions the get called to begin and end the ignition coil charging. They are required for the various spark output modes -void (*ign1StartFunction)(); -void (*ign1EndFunction)(); -void (*ign2StartFunction)(); -void (*ign2EndFunction)(); -void (*ign3StartFunction)(); -void (*ign3EndFunction)(); -void (*ign4StartFunction)(); -void (*ign4EndFunction)(); -void (*ign5StartFunction)(); -void (*ign5EndFunction)(); - -int timePerDegree; -byte degreesPerLoop; //The number of crank degrees that pass for each mainloop of the program -volatile bool fpPrimed = false; //Tracks whether or not the fuel pump priming has been completed yet -bool initialisationComplete = false; //Tracks whether the setup() functino has run completely - -void setup() -{ - digitalWrite(LED_BUILTIN, LOW); - //Setup the dummy fuel and ignition tables - //dummyFuelTable(&fuelTable); - //dummyIgnitionTable(&ignitionTable); - table3D_setSize(&fuelTable, 16); - table3D_setSize(&ignitionTable, 16); - table3D_setSize(&afrTable, 16); - table3D_setSize(&boostTable, 8); - table3D_setSize(&vvtTable, 8); - table3D_setSize(&trim1Table, 6); - table3D_setSize(&trim2Table, 6); - table3D_setSize(&trim3Table, 6); - table3D_setSize(&trim4Table, 6); - - #if defined(CORE_STM32) - EEPROM.init(); - #endif - loadConfig(); - doUpdates(); //Check if any data items need updating (Occurs ith firmware updates) - - Serial.begin(115200); -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } -#elif defined(CORE_STM32) - if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } - else if (configPage10.enable_canbus == 2) - { - //enable local can interface - } -#elif defined(CORE_TEENSY) - if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } - else if (configPage10.enable_canbus == 2) - { - //Teensy onboard CAN not used currently - //enable local can interface - //setup can interface to 250k - //FlexCAN CANbus0(2500000, 0); - //static CAN_message_t txmsg,rxmsg; - //CANbus0.begin(); - } -#endif - - //Repoint the 2D table structs to the config pages that were just loaded - taeTable.valueSize = SIZE_BYTE; //Set this table to use byte values - taeTable.xSize = 4; - taeTable.values = configPage2.taeValues; - taeTable.axisX = configPage2.taeBins; - WUETable.valueSize = SIZE_BYTE; //Set this table to use byte values - WUETable.xSize = 10; - WUETable.values = configPage1.wueValues; - WUETable.axisX = configPage2.wueBins; - crankingEnrichTable.valueSize = SIZE_BYTE; - crankingEnrichTable.xSize = 4; - crankingEnrichTable.values = configPage11.crankingEnrichValues; - crankingEnrichTable.axisX = configPage11.crankingEnrichBins; - - dwellVCorrectionTable.valueSize = SIZE_BYTE; - dwellVCorrectionTable.xSize = 6; - dwellVCorrectionTable.values = configPage2.dwellCorrectionValues; - dwellVCorrectionTable.axisX = configPage3.voltageCorrectionBins; - injectorVCorrectionTable.valueSize = SIZE_BYTE; - injectorVCorrectionTable.xSize = 6; - injectorVCorrectionTable.values = configPage3.injVoltageCorrectionValues; - injectorVCorrectionTable.axisX = configPage3.voltageCorrectionBins; - IATDensityCorrectionTable.valueSize = SIZE_BYTE; - IATDensityCorrectionTable.xSize = 9; - IATDensityCorrectionTable.values = configPage3.airDenRates; - IATDensityCorrectionTable.axisX = configPage3.airDenBins; - IATRetardTable.valueSize = SIZE_BYTE; - IATRetardTable.xSize = 6; - IATRetardTable.values = configPage2.iatRetValues; - IATRetardTable.axisX = configPage2.iatRetBins; - rotarySplitTable.valueSize = SIZE_BYTE; - rotarySplitTable.xSize = 8; - rotarySplitTable.values = configPage11.rotarySplitValues; - rotarySplitTable.axisX = configPage11.rotarySplitBins; - - //Setup the calibration tables - loadCalibration(); - - //Set the pin mappings - if(configPage1.pinMapping > BOARD_NR_GPIO_PINS) - { - //First time running on this board - setPinMapping(3); //Force board to v0.4 - configPage1.flexEnabled = false; //Have to disable flex. If this isn't done and the wrong flex pin is interrupt attached below, system can hang. - } - else { setPinMapping(configPage1.pinMapping); } - - //Need to check early on whether the coil charging is inverted. If this is not set straight away it can cause an unwanted spark at bootup - if(configPage2.IgInv == 1) { coilHIGH = LOW, coilLOW = HIGH; } - else { coilHIGH = HIGH, coilLOW = LOW; } - endCoil1Charge(); - endCoil2Charge(); - endCoil3Charge(); - endCoil4Charge(); - endCoil5Charge(); - - //Similar for injectors, make sure they're turned off - closeInjector1(); - closeInjector2(); - closeInjector3(); - closeInjector4(); - closeInjector5(); - - //Set the tacho output default state - digitalWrite(pinTachOut, HIGH); - - //Perform all initialisations - initialiseSchedulers(); - initialiseTimers(); - //initialiseDisplay(); - initialiseIdle(); - initialiseFan(); - initialiseAuxPWM(); - initialiseCorrections(); - initialiseADC(); - - //Lookup the current MAP reading for barometric pressure - instanteneousMAPReading(); - //barometric reading can be taken from either an external sensor if enabled, or simply by using the initial MAP value - if ( configPage3.useExtBaro != 0 ) - { - readBaro(); - EEPROM.update(EEPROM_LAST_BARO, currentStatus.baro); - } - else - { - /* - * The highest sea-level pressure on Earth occurs in Siberia, where the Siberian High often attains a sea-level pressure above 105 kPa; - * with record highs close to 108.5 kPa. - * The lowest measurable sea-level pressure is found at the centers of tropical cyclones and tornadoes, with a record low of 87 kPa; - */ - if ((currentStatus.MAP >= BARO_MIN) && (currentStatus.MAP <= BARO_MAX)) //Check if engine isn't running - { - currentStatus.baro = currentStatus.MAP; - EEPROM.update(EEPROM_LAST_BARO, currentStatus.baro); - } - else - { - //Attempt to use the last known good baro reading from EEPROM - if ((EEPROM.read(EEPROM_LAST_BARO) >= BARO_MIN) && (EEPROM.read(EEPROM_LAST_BARO) <= BARO_MAX)) //Make sure it's not invalid (Possible on first run etc) - { currentStatus.baro = EEPROM.read(EEPROM_LAST_BARO); } //last baro correction - else { currentStatus.baro = 100; } //Final fall back position. - } - } - - //Check whether the flex sensor is enabled and if so, attach an interupt for it - if(configPage1.flexEnabled) - { - attachInterrupt(digitalPinToInterrupt(pinFlex), flexPulse, RISING); - currentStatus.ethanolPct = 0; - } - - //Once the configs have been loaded, a number of one time calculations can be completed - req_fuel_uS = configPage1.reqFuel * 100; //Convert to uS and an int. This is the only variable to be used in calculations - inj_opentime_uS = configPage1.injOpen * 100; //Injector open time. Comes through as ms*10 (Eg 15.5ms = 155). - - //Begin the main crank trigger interrupt pin setup - //The interrupt numbering is a bit odd - See here for reference: http://arduino.cc/en/Reference/AttachInterrupt - //These assignments are based on the Arduino Mega AND VARY BETWEEN BOARDS. Please confirm the board you are using and update acordingly. - currentStatus.RPM = 0; - currentStatus.hasSync = false; - currentStatus.runSecs = 0; - currentStatus.secl = 0; - currentStatus.startRevolutions = 0; - currentStatus.flatShiftingHard = false; - currentStatus.launchingHard = false; - currentStatus.crankRPM = ((unsigned int)configPage2.crankRPM * 100); //Crank RPM limit (Saves us calculating this over and over again. It's updated once per second in timers.ino) - triggerFilterTime = 0; //Trigger filter time is the shortest possible time (in uS) that there can be between crank teeth (ie at max RPM). Any pulses that occur faster than this time will be disgarded as noise. This is simply a default value, the actual values are set in the setup() functinos of each decoder - - noInterrupts(); - initialiseTriggers(); - - //End crank triger interrupt attachment - req_fuel_uS = req_fuel_uS / engineSquirtsPerCycle; //The req_fuel calculation above gives the total required fuel (At VE 100%) in the full cycle. If we're doing more than 1 squirt per cycle then we need to split the amount accordingly. (Note that in a non-sequential 4-stroke setup you cannot have less than 2 squirts as you cannot determine the stroke to make the single squirt on) - - //Initial values for loop times - previousLoopTime = 0; - currentLoopTime = micros(); - - mainLoopCount = 0; - ignitionCount = 0; - - //Calculate the number of degrees between cylinders - switch (configPage1.nCylinders) { - case 1: - channel1IgnDegrees = 0; - channel1InjDegrees = 0; - - channel1InjEnabled = true; - break; - - case 2: - channel1IgnDegrees = 0; - - if (configPage1.engineType == EVEN_FIRE ) - { - channel2IgnDegrees = 180; - } - else { channel2IgnDegrees = configPage1.oddfire2; } - - //For alternating injection, the squirt occurs at different times for each channel - if(configPage1.injLayout == INJ_SEMISEQUENTIAL) - { - channel1InjDegrees = 0; - channel2InjDegrees = channel2IgnDegrees; //Set to the same as the ignition degrees (Means there's no need for another if to check for oddfire) - } - if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = 0; } //For simultaneous, all squirts happen at the same time - - channel1InjEnabled = true; - channel2InjEnabled = true; - break; - - case 3: - channel1IgnDegrees = 0; - - if (configPage1.engineType == EVEN_FIRE ) - { - if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) - { - channel2IgnDegrees = 240; - channel3IgnDegrees = 480; - - CRANK_ANGLE_MAX_IGN = 720; - } - else - { - channel2IgnDegrees = 120; - channel3IgnDegrees = 240; - } - } - else - { - channel2IgnDegrees = configPage1.oddfire2; - channel3IgnDegrees = configPage1.oddfire3; - } - - //For alternatiing injection, the squirt occurs at different times for each channel - if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) - { - channel1InjDegrees = 0; - channel2InjDegrees = 120; - channel3InjDegrees = 240; - } - else if (configPage1.injLayout == INJ_SEQUENTIAL) - { - channel1InjDegrees = 0; - channel2InjDegrees = 240; - channel3InjDegrees = 480; - CRANK_ANGLE_MAX_INJ = 720; - req_fuel_uS = req_fuel_uS * 2; - } - if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = 0; } //For simultaneous, all squirts happen at the same time - - channel1InjEnabled = true; - channel2InjEnabled = true; - channel3InjEnabled = true; - break; - case 4: - channel1IgnDegrees = 0; - - if (configPage1.engineType == EVEN_FIRE ) - { - channel2IgnDegrees = 180; - - if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) - { - channel3IgnDegrees = 360; - channel4IgnDegrees = 540; - - CRANK_ANGLE_MAX_IGN = 720; - } - } - else - { - channel2IgnDegrees = configPage1.oddfire2; - channel3IgnDegrees = configPage1.oddfire3; - channel4IgnDegrees = configPage1.oddfire4; - } - - //For alternatiing injection, the squirt occurs at different times for each channel - if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) - { - channel1InjDegrees = 0; - channel2InjDegrees = 180; - } - else if (configPage1.injLayout == INJ_SEQUENTIAL) - { - channel1InjDegrees = 0; - channel2InjDegrees = 180; - channel3InjDegrees = 360; - channel4InjDegrees = 540; - - channel3InjEnabled = true; - channel4InjEnabled = true; - - CRANK_ANGLE_MAX_INJ = 720; - req_fuel_uS = req_fuel_uS * 2; - } - if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = 0; } //For simultaneous, all squirts happen at the same time - - channel1InjEnabled = true; - channel2InjEnabled = true; - break; - case 5: - channel1IgnDegrees = 0; - channel2IgnDegrees = 72; - channel3IgnDegrees = 144; - channel4IgnDegrees = 216; - channel5IgnDegrees = 288; - - if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) - { - channel2IgnDegrees = 144; - channel3IgnDegrees = 288; - channel4IgnDegrees = 432; - channel5IgnDegrees = 576; - - CRANK_ANGLE_MAX_IGN = 720; - } - - //For alternatiing injection, the squirt occurs at different times for each channel - if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) - { - channel1InjDegrees = 0; - channel2InjDegrees = 72; - channel3InjDegrees = 144; - channel4InjDegrees = 216; - channel5InjDegrees = 288; - } - else if (configPage1.injLayout == INJ_SEQUENTIAL) - { - channel1InjDegrees = 0; - channel2InjDegrees = 144; - channel3InjDegrees = 288; - channel4InjDegrees = 432; - channel5InjDegrees = 576; - - CRANK_ANGLE_MAX_INJ = 720; - } - if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = channel4InjDegrees = channel5InjDegrees = 0; } //For simultaneous, all squirts happen at the same time - - channel1InjEnabled = true; - channel2InjEnabled = true; - channel3InjEnabled = false; //this is disabled as injector 5 function calls 3 & 5 together - channel4InjEnabled = true; - channel5InjEnabled = true; - break; - case 6: - channel1IgnDegrees = 0; - channel1InjDegrees = 0; - channel2IgnDegrees = 120; - channel2InjDegrees = 120; - channel3IgnDegrees = 240; - channel3InjDegrees = 240; - - if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = 0; } //For simultaneous, all squirts happen at the same time - - configPage1.injLayout = 0; //This is a failsafe. We can never run semi-sequential with more than 4 cylinders - - channel1InjEnabled = true; - channel2InjEnabled = true; - channel3InjEnabled = true; - break; - case 8: - channel1IgnDegrees = channel1InjDegrees = 0; - channel2IgnDegrees = channel2InjDegrees = 90; - channel3IgnDegrees = channel3InjDegrees = 180; - channel4IgnDegrees = channel4InjDegrees = 270; - - if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = channel4InjDegrees = 0; } //For simultaneous, all squirts happen at the same time - - configPage1.injLayout = 0; //This is a failsafe. We can never run semi-sequential with more than 4 cylinders - - channel1InjEnabled = true; - channel2InjEnabled = true; - channel3InjEnabled = true; - channel4InjEnabled = true; - break; - default: //Handle this better!!! - channel1InjDegrees = 0; - channel2InjDegrees = 180; - break; - } - - switch(configPage2.sparkMode) - { - case IGN_MODE_WASTED: - //Wasted Spark (Normal mode) - ign1StartFunction = beginCoil1Charge; - ign1EndFunction = endCoil1Charge; - ign2StartFunction = beginCoil2Charge; - ign2EndFunction = endCoil2Charge; - ign3StartFunction = beginCoil3Charge; - ign3EndFunction = endCoil3Charge; - ign4StartFunction = beginCoil4Charge; - ign4EndFunction = endCoil4Charge; - ign5StartFunction = beginCoil5Charge; - ign5EndFunction = endCoil5Charge; - break; - - case IGN_MODE_SINGLE: - //Single channel mode. All ignition pulses are on channel 1 - ign1StartFunction = beginCoil1Charge; - ign1EndFunction = endCoil1Charge; - ign2StartFunction = beginCoil1Charge; - ign2EndFunction = endCoil1Charge; - ign3StartFunction = beginCoil1Charge; - ign3EndFunction = endCoil1Charge; - ign4StartFunction = beginCoil1Charge; - ign4EndFunction = endCoil1Charge; - ign5StartFunction = beginCoil1Charge; - ign5EndFunction = endCoil1Charge; - break; - - case IGN_MODE_WASTEDCOP: - //Wasted COP mode. Ignition channels 1&3 and 2&4 are paired together - //This is not a valid mode for >4 cylinders - if( configPage1.nCylinders <= 4 ) - { - ign1StartFunction = beginCoil1and3Charge; - ign1EndFunction = endCoil1and3Charge; - ign2StartFunction = beginCoil2and4Charge; - ign2EndFunction = endCoil2and4Charge; - - ign3StartFunction = nullCallback; - ign3EndFunction = nullCallback; - ign4StartFunction = nullCallback; - ign4EndFunction = nullCallback; - } - else - { - //If the person has inadvertantly selected this when running more than 4 cylinders, just use standard Wasted spark mode - ign1StartFunction = beginCoil1Charge; - ign1EndFunction = endCoil1Charge; - ign2StartFunction = beginCoil2Charge; - ign2EndFunction = endCoil2Charge; - ign3StartFunction = beginCoil3Charge; - ign3EndFunction = endCoil3Charge; - ign4StartFunction = beginCoil4Charge; - ign4EndFunction = endCoil4Charge; - ign5StartFunction = beginCoil5Charge; - ign5EndFunction = endCoil5Charge; - } - break; - - case IGN_MODE_SEQUENTIAL: - ign1StartFunction = beginCoil1Charge; - ign1EndFunction = endCoil1Charge; - ign2StartFunction = beginCoil2Charge; - ign2EndFunction = endCoil2Charge; - ign3StartFunction = beginCoil3Charge; - ign3EndFunction = endCoil3Charge; - ign4StartFunction = beginCoil4Charge; - ign4EndFunction = endCoil4Charge; - ign5StartFunction = beginCoil5Charge; - ign5EndFunction = endCoil5Charge; - break; - - case IGN_MODE_ROTARY: - if(configPage11.rotaryType == ROTARY_IGN_FC) - { - ign1StartFunction = beginCoil1Charge; - ign1EndFunction = endCoil1Charge; - ign2StartFunction = beginCoil1Charge; - ign2EndFunction = endCoil1Charge; - - ign3StartFunction = beginTrailingCoilCharge; - ign3EndFunction = endTrailingCoilCharge1; - ign4StartFunction = beginTrailingCoilCharge; - ign4EndFunction = endTrailingCoilCharge2; - } - break; - - - - default: - //Wasted spark (Shouldn't ever happen anyway) - ign1StartFunction = beginCoil1Charge; - ign1EndFunction = endCoil1Charge; - ign2StartFunction = beginCoil2Charge; - ign2EndFunction = endCoil2Charge; - ign3StartFunction = beginCoil3Charge; - ign3EndFunction = endCoil3Charge; - ign4StartFunction = beginCoil4Charge; - ign4EndFunction = endCoil4Charge; - ign5StartFunction = beginCoil5Charge; - ign5EndFunction = endCoil5Charge; - break; - } - - //Begin priming the fuel pump. This is turned off in the low resolution, 1s interrupt in timers.ino - digitalWrite(pinFuelPump, HIGH); - fuelPumpOn = true; - interrupts(); - //Perform the priming pulses. Set these to run at an arbitrary time in the future (100us). The prime pulse value is in ms*10, so need to multiple by 100 to get to uS - setFuelSchedule1(100, (unsigned long)(configPage1.primePulse * 100)); - setFuelSchedule2(100, (unsigned long)(configPage1.primePulse * 100)); - setFuelSchedule3(100, (unsigned long)(configPage1.primePulse * 100)); - setFuelSchedule4(100, (unsigned long)(configPage1.primePulse * 100)); - initialisationComplete = true; - digitalWrite(LED_BUILTIN, HIGH); -} - -void loop() -{ - mainLoopCount++; - LOOP_TIMER = TIMER_mask; - //Check for any requets from serial. Serial operations are checked under 2 scenarios: - // 1) Every 64 loops (64 Is more than fast enough for TunerStudio). This function is equivalent to ((loopCount % 64) == 1) but is considerably faster due to not using the mod or division operations - // 2) If the amount of data in the serial buffer is greater than a set threhold (See globals.h). This is to avoid serial buffer overflow when large amounts of data is being sent - if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ) or (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) - - { - if (Serial.available() > 0) - { - command(); - } - } - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - //if serial3 interface is enabled then check for serial3 requests. - if (configPage10.enable_canbus == 1) - { - if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) - - { - if (CANSerial.available() > 0) - { - canCommand(); - } - } - } - -#elif defined(CORE_TEENSY) || defined(CORE_STM32) - //if can or secondary serial interface is enabled then check for requests. - if (configPage10.enable_canbus == 1) //secondary serial interface enabled - { - if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) - - { - if (CANSerial.available() > 0) - { - canCommand(); - } - } - } - else if (configPage10.enable_canbus == 2) // can module enabled - { - //check local can module - // if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (CANbus0.available()) - // { - // CANbus0.read(rx_msg); - // } - } -#endif - - //Displays currently disabled - // if (configPage1.displayType && (mainLoopCount & 255) == 1) { updateDisplay();} - - previousLoopTime = currentLoopTime; - currentLoopTime = micros(); - unsigned long timeToLastTooth = (currentLoopTime - toothLastToothTime); - if ( (timeToLastTooth < MAX_STALL_TIME) || (toothLastToothTime > currentLoopTime) ) //Check how long ago the last tooth was seen compared to now. If it was more than half a second ago then the engine is probably stopped. toothLastToothTime can be greater than currentLoopTime if a pulse occurs between getting the lastest time and doing the comparison - { - currentStatus.RPM = currentStatus.longRPM = getRPM(); //Long RPM is included here - FUEL_PUMP_ON(); - fuelPumpOn = true; //Not sure if this is needed. - } - else - { - //We reach here if the time between teeth is too great. This VERY likely means the engine has stopped - currentStatus.RPM = 0; - currentStatus.PW1 = 0; - currentStatus.VE = 0; - toothLastToothTime = 0; - toothLastSecToothTime = 0; - //toothLastMinusOneToothTime = 0; - currentStatus.hasSync = false; - currentStatus.runSecs = 0; //Reset the counter for number of seconds running. - secCounter = 0; //Reset our seconds counter. - currentStatus.startRevolutions = 0; - toothSystemCount = 0; - secondaryToothCount = 0; - MAPcurRev = 0; - MAPcount = 0; - currentStatus.rpmDOT = 0; - ignitionOn = false; - fuelOn = false; - if (fpPrimed) { digitalWrite(pinFuelPump, LOW); } //Turn off the fuel pump, but only if the priming is complete - fuelPumpOn = false; - disableIdle(); //Turn off the idle PWM - BIT_CLEAR(currentStatus.engine, BIT_ENGINE_CRANK); //Clear cranking bit (Can otherwise get stuck 'on' even with 0 rpm) - BIT_CLEAR(currentStatus.engine, BIT_ENGINE_WARMUP); //Same as above except for WUE - - //This is a safety check. If for some reason the interrupts have got screwed up (Leading to 0rpm), this resets them. - //It can possibly be run much less frequently. - initialiseTriggers(); - - VVT_PIN_LOW(); - DISABLE_VVT_TIMER(); - DISABLE_BOOST_TIMER(); //Turn off timer - BOOST_PIN_LOW(); - } - - //Uncomment the following for testing - /* - currentStatus.hasSync = true; - currentStatus.RPM = 500; - */ - - //***Perform sensor reads*** - //----------------------------------------------------------------------------------------------------- - readMAP(); - - if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) - { - BIT_CLEAR(TIMER_mask, BIT_TIMER_15HZ); - readTPS(); //TPS reading to be performed every 32 loops (any faster and it can upset the TPSdot sampling time) - - //Check for launching/flat shift (clutch) can be done around here too - previousClutchTrigger = clutchTrigger; - if(configPage3.launchHiLo) { clutchTrigger = digitalRead(pinLaunch); } - else { clutchTrigger = !digitalRead(pinLaunch); } - - if(previousClutchTrigger != clutchTrigger) { currentStatus.clutchEngagedRPM = currentStatus.RPM; } - - if (configPage3.launchEnabled && clutchTrigger && (currentStatus.clutchEngagedRPM < ((unsigned int)(configPage3.flatSArm) * 100)) && (currentStatus.RPM > ((unsigned int)(configPage3.lnchHardLim) * 100)) ) { currentStatus.launchingHard = true; BIT_SET(currentStatus.spark, BIT_SPARK_HLAUNCH); } //HardCut rev limit for 2-step launch control. - else { currentStatus.launchingHard = false; BIT_CLEAR(currentStatus.spark, BIT_SPARK_HLAUNCH); } - - if(configPage3.flatSEnable && clutchTrigger && (currentStatus.RPM > ((unsigned int)(configPage3.flatSArm) * 100)) && (currentStatus.RPM > currentStatus.clutchEngagedRPM) ) { currentStatus.flatShiftingHard = true; } - else { currentStatus.flatShiftingHard = false; } - - //Boost cutoff is very similar to launchControl, but with a check against MAP rather than a switch - if(configPage3.boostCutType && currentStatus.MAP > (configPage3.boostLimit * 2) ) //The boost limit is divided by 2 to allow a limit up to 511kPa - { - switch(configPage3.boostCutType) - { - case 1: - BIT_SET(currentStatus.spark, BIT_SPARK_BOOSTCUT); - BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); - break; - case 2: - BIT_SET(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); - BIT_CLEAR(currentStatus.spark, BIT_SPARK_BOOSTCUT); - break; - case 3: - BIT_SET(currentStatus.spark, BIT_SPARK_BOOSTCUT); - BIT_SET(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); - break; - } - } - else - { - BIT_CLEAR(currentStatus.spark, BIT_SPARK_BOOSTCUT); - BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); - } - - //And check whether the tooth log buffer is ready - if(toothHistoryIndex > TOOTH_LOG_SIZE) { BIT_SET(currentStatus.squirt, BIT_SQUIRT_TOOTHLOG1READY); } - - //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough - boostControl(); - } - if(BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) //Every 64 loops - { - //Nothing here currently - BIT_CLEAR(TIMER_mask, BIT_TIMER_30HZ); - } - //The IAT and CLT readings can be done less frequently. This still runs about 4 times per second - if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_4HZ)) //Every 256 loops - { - BIT_CLEAR(TIMER_mask, BIT_TIMER_4HZ); - readCLT(); - readIAT(); - readO2(); - readBat(); -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - //if Can interface is enabled then check for serial3 requests. - if (configPage10.enable_canbus == 1) // megas only support can via secondary serial - { - if (configPage10.enable_candata_in) - { - if (BIT_CHECK(configPage10.caninput_sel,currentStatus.current_caninchannel)) //if current input channel bit is enabled - { - sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage10.caninput_param_group[currentStatus.current_caninchannel]&2047)+256)); //send an R command for data from paramgroup[currentStatus.current_caninchannel] - } - else - { - if (currentStatus.current_caninchannel < 15) - { - currentStatus.current_caninchannel++; //step to next input channel if under 15 - } - else - { - currentStatus.current_caninchannel = 0; //reset input channel back to 1 - } - } - } - } -#elif defined(CORE_STM32) || defined(CORE_TEENSY) - //if serial3io is enabled then check for serial3 requests. - if (configPage10.enable_candata_in) - { - if (BIT_CHECK(configPage10.caninput_sel,currentStatus.current_caninchannel)) //if current input channel is enabled - { - if (configPage10.enable_canbus == 1) //can via secondary serial - { - sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage10.caninput_param_group[currentStatus.current_caninchannel]&2047)+256)); //send an R command for data from paramgroup[currentStatus.current_caninchannel] - } - else if (configPage10.enable_canbus == 2) // can via internal can module - { - sendCancommand(3,configPage10.speeduino_tsCanId,currentStatus.current_caninchannel,0,configPage10.caninput_param_group[currentStatus.current_caninchannel]); //send via localcanbus the command for data from paramgroup[currentStatus.current_caninchannel] - } - } - else - { - if (currentStatus.current_caninchannel < 15) - { - currentStatus.current_caninchannel++; //step to next input channel if under 15 - } - else - { - currentStatus.current_caninchannel = 0; //reset input channel back to 0 - } - } - } - -#endif - vvtControl(); - idleControl(); //Perform any idle related actions. Even at higher frequencies, running 4x per second is sufficient. - } - if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_1HZ)) //Every 1024 loops (Approx. 1 per second) - { - //Approx. once per second - BIT_CLEAR(TIMER_mask, BIT_TIMER_1HZ); - readBaro(); - } - - if(configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL || configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL) { idleControl(); } //Run idlecontrol every loop for stepper idle. - - //Always check for sync - //Main loop runs within this clause - if (currentStatus.hasSync && (currentStatus.RPM > 0)) - { - if(currentStatus.startRevolutions >= configPage2.StgCycles) { ignitionOn = true; fuelOn = true;} //Enable the fuel and ignition, assuming staging revolutions are complete - //If it is, check is we're running or cranking - if(currentStatus.RPM > currentStatus.crankRPM) //Crank RPM stored in byte as RPM / 100 - { - BIT_SET(currentStatus.engine, BIT_ENGINE_RUN); //Sets the engine running bit - //Only need to do anything if we're transitioning from cranking to running - if( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) - { - BIT_CLEAR(currentStatus.engine, BIT_ENGINE_CRANK); //clears the engine cranking bit - if(configPage2.ignBypassEnabled) { digitalWrite(pinIgnBypass, HIGH); } - } - } - else - { //Sets the engine cranking bit, clears the engine running bit - BIT_SET(currentStatus.engine, BIT_ENGINE_CRANK); - BIT_CLEAR(currentStatus.engine, BIT_ENGINE_RUN); - currentStatus.runSecs = 0; //We're cranking (hopefully), so reset the engine run time to prompt ASE. - if(configPage2.ignBypassEnabled) { digitalWrite(pinIgnBypass, LOW); } - } - //END SETTING STATUSES - //----------------------------------------------------------------------------------------------------- - - //Begin the fuel calculation - //Calculate an injector pulsewidth from the VE - currentStatus.corrections = correctionsFuel(); - lastAdvance = currentStatus.advance; //Store the previous advance value - if (configPage1.algorithm == LOAD_SOURCE_MAP) //Check which fuelling algorithm is being used - { - //Speed Density - currentStatus.VE = get3DTableValue(&fuelTable, currentStatus.MAP, currentStatus.RPM); //Perform lookup into fuel map for RPM vs MAP value - currentStatus.PW1 = PW_SD(req_fuel_uS, currentStatus.VE, currentStatus.MAP, currentStatus.corrections, inj_opentime_uS); - currentStatus.advance = get3DTableValue(&ignitionTable, currentStatus.MAP, currentStatus.RPM) - OFFSET_IGNITION; //As above, but for ignition advance - } - else - { - //Alpha-N - currentStatus.VE = get3DTableValue(&fuelTable, currentStatus.TPS, currentStatus.RPM); //Perform lookup into fuel map for RPM vs TPS value - currentStatus.PW1 = PW_AN(req_fuel_uS, currentStatus.VE, currentStatus.TPS, currentStatus.corrections, inj_opentime_uS); //Calculate pulsewidth using the Alpha-N algorithm (in uS) - currentStatus.advance = get3DTableValue(&ignitionTable, currentStatus.TPS, currentStatus.RPM) - OFFSET_IGNITION; //As above, but for ignition advance - } - - currentStatus.advance = correctionsIgn(currentStatus.advance); - - int injector1StartAngle = 0; - int injector2StartAngle = 0; - int injector3StartAngle = 0; //Currently used for 3 cylinder only - int injector4StartAngle = 0; //Not used until sequential gets written - int injector5StartAngle = 0; //For 5 cylinder testing - int ignition1StartAngle = 0; - int ignition2StartAngle = 0; - int ignition3StartAngle = 0; //Currently used for 3 cylinder only - int ignition4StartAngle = 0; //Not used until sequential or 4+ cylinders support gets written - int ignition5StartAngle = 0; //Not used until sequential or 4+ cylinders support gets written - //These are used for comparisons on channels above 1 where the starting angle (for injectors or ignition) can be less than a single loop time - //(Don't ask why this is needed, it will break your head) - int tempCrankAngle; - int tempStartAngle; - - //******************************************************** - //How fast are we going? Need to know how long (uS) it will take to get from one tooth to the next. We then use that to estimate how far we are between the last tooth and the next one - //We use a 1st Deriv accleration prediction, but only when there is an even spacing between primary sensor teeth - //Any decoder that has uneven spacing has its triggerToothAngle set to 0 - if(secondDerivEnabled && toothHistoryIndex >= 3 && currentStatus.RPM < 2000) //toothHistoryIndex must be greater than or equal to 3 as we need the last 3 entries. Currently this mode only runs below 3000 rpm - //if(true) - { - //Only recalculate deltaV if the tooth has changed since last time (DeltaV stays the same until the next tooth) - //if (deltaToothCount != toothCurrentCount) - { - deltaToothCount = toothCurrentCount; - int angle1, angle2; //These represent the crank angles that are travelled for the last 2 pulses - if(configPage2.TrigPattern == 4) - { - //Special case for 70/110 pattern on 4g63 - angle2 = triggerToothAngle; //Angle 2 is the most recent - if (angle2 == 70) { angle1 = 110; } - else { angle1 = 70; } - } - else if(configPage2.TrigPattern == 0) - { - //Special case for missing tooth decoder where the missing tooth was one of the last 2 seen - if(toothCurrentCount == 1) { angle2 = 2*triggerToothAngle; angle1 = triggerToothAngle; } - else if(toothCurrentCount == 2) { angle1 = 2*triggerToothAngle; angle2 = triggerToothAngle; } - else { angle1 = angle2 = triggerToothAngle; } - } - else { angle1 = angle2 = triggerToothAngle; } - - long toothDeltaV = (1000000L * angle2 / toothHistory[toothHistoryIndex]) - (1000000L * angle1 / toothHistory[toothHistoryIndex-1]); - long toothDeltaT = toothHistory[toothHistoryIndex]; - //long timeToLastTooth = micros() - toothLastToothTime; - - rpmDelta = (toothDeltaV << 10) / (6 * toothDeltaT); - } - - - timePerDegree = ldiv( 166666L, (currentStatus.RPM + rpmDelta)).quot; //There is a small amount of rounding in this calculation, however it is less than 0.001 of a uS (Faster as ldiv than / ) - } - else - { - long rpm_adjust = ((long)(micros() - toothOneTime) * (long)currentStatus.rpmDOT) / 1000000; //Take into account any likely accleration that has occurred since the last full revolution completed - - //timePerDegree = DIV_ROUND_CLOSEST(166666L, (currentStatus.RPM + rpm_adjust)); - timePerDegree = ldiv( 166666L, currentStatus.RPM + rpm_adjust).quot; //There is a small amount of rounding in this calculation, however it is less than 0.001 of a uS (Faster as ldiv than / ) - } - - //Check that the duty cycle of the chosen pulsewidth isn't too high. This is disabled at cranking - if( !BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) - { - unsigned long pwLimit = percentage(configPage1.dutyLim, revolutionTime); //The pulsewidth limit is determined to be the duty cycle limit (Eg 85%) by the total time it takes to perform 1 revolution - if (CRANK_ANGLE_MAX_INJ == 720) { pwLimit = pwLimit * 2; } //For sequential, the maximum pulse time is double (2 revolutions). Wouldn't work for 2 stroke... - if (currentStatus.PW1 > pwLimit) { currentStatus.PW1 = pwLimit; } - } - - - //*********************************************************************************************** - //BEGIN INJECTION TIMING - //Determine next firing angles - currentStatus.PW2 = currentStatus.PW3 = currentStatus.PW4 = currentStatus.PW1; // Initial state is for all pulsewidths to be the same (This gets changed below) - if(!configPage1.indInjAng) {configPage1.inj4Ang = configPage1.inj3Ang = configPage1.inj2Ang = configPage1.inj1Ang;} //Forcing all injector close angles to be the same. - int PWdivTimerPerDegree = div(currentStatus.PW1, timePerDegree).quot; //How many crank degrees the calculated PW will take at the current speed - injector1StartAngle = configPage1.inj1Ang - ( PWdivTimerPerDegree ); //This is a little primitive, but is based on the idea that all fuel needs to be delivered before the inlet valve opens. See http://www.extraefi.co.uk/sequential_fuel.html for more detail - if(injector1StartAngle < 0) {injector1StartAngle += CRANK_ANGLE_MAX_INJ;} - if(injector1StartAngle > CRANK_ANGLE_MAX_INJ) {injector1StartAngle -= CRANK_ANGLE_MAX_INJ;} - - //Repeat the above for each cylinder - switch (configPage1.nCylinders) - { - //2 cylinders - case 2: - injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); - if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} - if(injector2StartAngle < 0) {injector2StartAngle += CRANK_ANGLE_MAX_INJ;} - break; - //3 cylinders - case 3: - injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); - if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} - if(injector2StartAngle < 0) {injector2StartAngle += CRANK_ANGLE_MAX_INJ;} - - injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); - if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} - if(injector3StartAngle < 0) {injector3StartAngle += CRANK_ANGLE_MAX_INJ;} - break; - //4 cylinders - case 4: - injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); - if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} - if(injector2StartAngle < 0) {injector2StartAngle += CRANK_ANGLE_MAX_INJ;} - - if(configPage1.injLayout == INJ_SEQUENTIAL) - { - injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); - if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} - if(injector3StartAngle < 0) {injector3StartAngle += CRANK_ANGLE_MAX_INJ;} - - injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); - if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} - if(injector4StartAngle < 0) {injector4StartAngle += CRANK_ANGLE_MAX_INJ;} - - if(configPage3.fuelTrimEnabled) - { - unsigned long pw1percent = 100 + (byte)get3DTableValue(&trim1Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; - unsigned long pw2percent = 100 + (byte)get3DTableValue(&trim2Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; - unsigned long pw3percent = 100 + (byte)get3DTableValue(&trim3Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; - unsigned long pw4percent = 100 + (byte)get3DTableValue(&trim4Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; - - if (pw1percent != 100) { currentStatus.PW1 = (pw1percent * currentStatus.PW1) / 100; } - if (pw2percent != 100) { currentStatus.PW2 = (pw2percent * currentStatus.PW2) / 100; } - if (pw3percent != 100) { currentStatus.PW3 = (pw3percent * currentStatus.PW3) / 100; } - if (pw4percent != 100) { currentStatus.PW4 = (pw4percent * currentStatus.PW4) / 100; } - } - } - break; - //5 cylinders - case 5: - injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); - if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); - if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); - if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector5StartAngle = (configPage1.inj1Ang + channel5InjDegrees - ( PWdivTimerPerDegree )); - if(injector5StartAngle > CRANK_ANGLE_MAX_INJ) {injector5StartAngle -= CRANK_ANGLE_MAX_INJ;} - break; - //6 cylinders - case 6: - injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); - if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); - if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} - break; - //8 cylinders - case 8: - injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); - if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); - if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); - if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} - break; - //Will hit the default case on 1 cylinder or >8 cylinders. Do nothing in these cases - default: - break; - } - - //*********************************************************************************************** - //| BEGIN IGNITION CALCULATIONS - BIT_CLEAR(currentStatus.spark, BIT_SPARK_HRDLIM); - if (currentStatus.RPM > ((unsigned int)(configPage2.HardRevLim) * 100) ) { BIT_SET(currentStatus.spark, BIT_SPARK_HRDLIM); } //Hardcut RPM limit - - - //Set dwell - //Dwell is stored as ms * 10. ie Dwell of 4.3ms would be 43 in configPage2. This number therefore needs to be multiplied by 100 to get dwell in uS - if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { currentStatus.dwell = (configPage2.dwellCrank * 100); } - else { currentStatus.dwell = (configPage2.dwellRun * 100); } - currentStatus.dwell = correctionsDwell(currentStatus.dwell); - - int dwellAngle = uSToDegrees(currentStatus.dwell); //Convert the dwell time to dwell angle based on the current engine speed - - //Calculate start angle for each channel - //1 cylinder (Everyone gets this) - ignition1EndAngle = CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition1StartAngle = ignition1EndAngle - dwellAngle; // 360 - desired advance angle - number of degrees the dwell will take - if(ignition1StartAngle < 0) {ignition1StartAngle += CRANK_ANGLE_MAX_IGN;} - - //This test for more cylinders and do the same thing - switch (configPage1.nCylinders) - { - //2 cylinders - case 2: - ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition2StartAngle = ignition2EndAngle - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - break; - //3 cylinders - case 3: - ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition2StartAngle = ignition2EndAngle - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition3StartAngle = channel3IgnDegrees + 360 - currentStatus.advance - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - break; - //4 cylinders - case 4: - ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition2StartAngle = ignition2EndAngle - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} - - if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) - { - ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition3StartAngle = ignition3EndAngle - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition4StartAngle = ignition4EndAngle - dwellAngle; - if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} - } - else if(configPage2.sparkMode == IGN_MODE_ROTARY) - { - if(configPage11.rotaryType == ROTARY_IGN_FC) - { - byte splitDegrees = 0; - if (configPage1.algorithm == LOAD_SOURCE_MAP) { splitDegrees = table2D_getValue(&rotarySplitTable, currentStatus.MAP/2); } - else { splitDegrees = table2D_getValue(&rotarySplitTable, currentStatus.TPS/2); } - - //The trailing angles are set relative to the leading ones - ignition3EndAngle = ignition1EndAngle + splitDegrees; - ignition3StartAngle = ignition3EndAngle - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - if(ignition3StartAngle < 0) {ignition3StartAngle += CRANK_ANGLE_MAX_IGN;} - - ignition4EndAngle = ignition2EndAngle + splitDegrees; - ignition4StartAngle = ignition4EndAngle - dwellAngle; - if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} - if(ignition4StartAngle < 0) {ignition4StartAngle += CRANK_ANGLE_MAX_IGN;} - } - } - break; - //5 cylinders - case 5: - ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition2StartAngle = ignition2EndAngle - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} - - ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition3StartAngle = ignition3EndAngle - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition4StartAngle = ignition4EndAngle - dwellAngle; - if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition5StartAngle = channel5IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; - if(ignition5StartAngle > CRANK_ANGLE_MAX_IGN) {ignition5StartAngle -= CRANK_ANGLE_MAX_IGN;} - - break; - //6 cylinders - case 6: - ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition2StartAngle = ignition2EndAngle - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition3StartAngle = ignition3EndAngle - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - break; - //8 cylinders - case 8: - ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition2StartAngle = ignition2EndAngle - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition3StartAngle = ignition3EndAngle - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition4StartAngle = ignition4EndAngle - dwellAngle; - if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} - break; - - //Will hit the default case on 1 cylinder or >8 cylinders. Do nothing in these cases - default: - break; - } - //If ignition timing is being tracked per tooth, perform the calcs to get the end teeth - //This only needs to be run if the advance figure has changed, otherwise the end teeth will still be the same - if( (configPage1.perToothIgn == true) && (lastAdvance != currentStatus.advance) ) { triggerSetEndTeeth(); } - - //*********************************************************************************************** - //| BEGIN FUEL SCHEDULES - //Finally calculate the time (uS) until we reach the firing angles and set the schedules - //We only need to set the shcedule if we're BEFORE the open angle - //This may potentially be called a number of times as we get closer and closer to the opening time - - //Determine the current crank angle - int crankAngle = getCrankAngle(timePerDegree); - if (crankAngle > CRANK_ANGLE_MAX_INJ ) { crankAngle -= 360; } - - if (fuelOn && currentStatus.PW1 > 0 && !BIT_CHECK(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT)) - { - if ( (injector1StartAngle <= crankAngle) && (fuelSchedule1.Status == RUNNING) ) { injector1StartAngle += CRANK_ANGLE_MAX_INJ; } - if (injector1StartAngle > crankAngle) - { - setFuelSchedule1( - ((unsigned long)(injector1StartAngle - crankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW1 - ); - } - - /*----------------------------------------------------------------------------------------- - | A Note on tempCrankAngle and tempStartAngle: - | The use of tempCrankAngle/tempStartAngle is described below. It is then used in the same way for channels 2, 3 and 4 on both injectors and ignition - | Essentially, these 2 variables are used to realign the current crank angle and the desired start angle around 0 degrees for the given cylinder/output - | Eg: If cylinder 2 TDC is 180 degrees after cylinder 1 (Eg a standard 4 cylidner engine), then tempCrankAngle is 180* less than the current crank angle and - | tempStartAngle is the desired open time less 180*. Thus the cylinder is being treated relative to its own TDC, regardless of its offset - | - | This is done to avoid problems with very short of very long times until tempStartAngle. - | This will very likely need to be rewritten when sequential is enabled - |------------------------------------------------------------------------------------------ - */ - if(channel2InjEnabled) - { - tempCrankAngle = crankAngle - channel2InjDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } - tempStartAngle = injector2StartAngle - channel2InjDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule2.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( tempStartAngle > tempCrankAngle ) - { - setFuelSchedule2( - ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW2 - ); - } - } - - if(channel3InjEnabled) - { - tempCrankAngle = crankAngle - channel3InjDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } - tempStartAngle = injector3StartAngle - channel3InjDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule3.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( tempStartAngle > tempCrankAngle ) - { - setFuelSchedule3( - ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW3 - ); - } - } - - if(channel4InjEnabled) - { - tempCrankAngle = crankAngle - channel4InjDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } - tempStartAngle = injector4StartAngle - channel4InjDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule4.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( tempStartAngle > tempCrankAngle ) - { - setFuelSchedule4( - ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW4 - ); - } - } - - if(channel5InjEnabled) - { - tempCrankAngle = crankAngle - channel5InjDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } - tempStartAngle = injector5StartAngle - channel5InjDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if (tempStartAngle <= tempCrankAngle && fuelSchedule5.schedulesSet == 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( tempStartAngle > tempCrankAngle ) - { - //Note the hacky use of fuel schedule 3 below - /* - setFuelSchedule3(openInjector3and5, - ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW1, - closeInjector3and5 - );*/ - setFuelSchedule3( - ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW1 - ); - } - } - } - //*********************************************************************************************** - //| BEGIN IGNITION SCHEDULES - //Likewise for the ignition - - //fixedCrankingOverride is used to extend the dwell during cranking so that the decoder can trigger the spark upon seeing a certain tooth. Currently only available on the basic distributor and 4g63 decoders. - if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) { fixedCrankingOverride = currentStatus.dwell * 3; } - else { fixedCrankingOverride = 0; } - - //Perform an initial check to see if the ignition is turned on (Ignition only turns on after a preset number of cranking revolutions and: - //Check for hard cut rev limit (If we're above the hardcut limit, we simply don't set a spark schedule) - if(ignitionOn && !currentStatus.launchingHard && !BIT_CHECK(currentStatus.spark, BIT_SPARK_BOOSTCUT) && !BIT_CHECK(currentStatus.spark, BIT_SPARK_HRDLIM) && !currentStatus.flatShiftingHard) - { - - //Refresh the current crank angle info - //ignition1StartAngle = 335; - crankAngle = getCrankAngle(timePerDegree); //Refresh with the latest crank angle - if (crankAngle > CRANK_ANGLE_MAX_IGN ) { crankAngle -= 360; } - - if (ignition1StartAngle > crankAngle) - { - /* - long some_time = ((unsigned long)(ignition1StartAngle - crankAngle) * (unsigned long)timePerDegree); - long newRPM = (long)(some_time * currentStatus.rpmDOT) / 1000000L; - newRPM = currentStatus.RPM + (newRPM/2); - unsigned long timePerDegree_1 = ldiv( 166666L, newRPM).quot; - unsigned long timeout = (unsigned long)(ignition1StartAngle - crankAngle) * 282UL; - */ - setIgnitionSchedule1(ign1StartFunction, - //((unsigned long)(ignition1StartAngle - crankAngle) * (unsigned long)timePerDegree), - degreesToUS((ignition1StartAngle - crankAngle)), - currentStatus.dwell + fixedCrankingOverride, //((unsigned long)((unsigned long)currentStatus.dwell* currentStatus.RPM) / newRPM) + fixedCrankingOverride, - ign1EndFunction - ); - } - - tempCrankAngle = crankAngle - channel2IgnDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } - tempStartAngle = ignition2StartAngle - channel2IgnDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } - { - unsigned long ignition2StartTime = 0; - if(tempStartAngle > tempCrankAngle) { ignition2StartTime = degreesToUS((tempStartAngle - tempCrankAngle)); } - //else if (tempStartAngle < tempCrankAngle) { ignition2StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } - else { ignition2StartTime = 0; } - - if(ignition2StartTime > 0) { - setIgnitionSchedule2(ign2StartFunction, - ignition2StartTime, - currentStatus.dwell + fixedCrankingOverride, - ign2EndFunction - ); - } - } - - tempCrankAngle = crankAngle - channel3IgnDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } - tempStartAngle = ignition3StartAngle - channel3IgnDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } - //if (tempStartAngle > tempCrankAngle) - { - long ignition3StartTime = 0; - if(tempStartAngle > tempCrankAngle) { ignition3StartTime = degreesToUS((tempStartAngle - tempCrankAngle)); } - //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } - else { ignition3StartTime = 0; } - - if(ignition3StartTime > 0) { - setIgnitionSchedule3(ign3StartFunction, - ignition3StartTime, - currentStatus.dwell + fixedCrankingOverride, - ign3EndFunction - ); - } - } - - tempCrankAngle = crankAngle - channel4IgnDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } - tempStartAngle = ignition4StartAngle - channel4IgnDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } - //if (tempStartAngle > tempCrankAngle) - { - - long ignition4StartTime = 0; - if(tempStartAngle > tempCrankAngle) { ignition4StartTime = degreesToUS((tempStartAngle - tempCrankAngle)); } - //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } - else { ignition4StartTime = 0; } - - if(ignition4StartTime > 0) { - setIgnitionSchedule4(ign4StartFunction, - ignition4StartTime, - currentStatus.dwell + fixedCrankingOverride, - ign4EndFunction - ); - } - } - - tempCrankAngle = crankAngle - channel5IgnDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } - tempStartAngle = ignition5StartAngle - channel5IgnDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } - //if (tempStartAngle > tempCrankAngle) - { - - long ignition5StartTime = 0; - if(tempStartAngle > tempCrankAngle) { ignition5StartTime = degreesToUS((tempStartAngle - tempCrankAngle)); } - //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } - else { ignition5StartTime = 0; } - - if(ignition5StartTime > 0) { - setIgnitionSchedule5(ign5StartFunction, - ignition5StartTime, - currentStatus.dwell + fixedCrankingOverride, - ign5EndFunction - ); - } - } - } //Ignition schedules on - } //Has sync and RPM +/* +Speeduino - Simple engine management for the Arduino Mega 2560 platform +Copyright (C) Josh Stewart + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful,la +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +//************************************************************************************************** +// Config section +#define engineSquirtsPerCycle 2 //Would be 1 for a 2 stroke +//************************************************************************************************** + +//https://developer.mbed.org/handbook/C-Data-Types +#include +//************************************************ +#include "globals.h" +#include "utils.h" +#include "table.h" +#include "scheduler.h" +#include "comms.h" +#include "cancomms.h" +#include "maths.h" +#include "corrections.h" +#include "timers.h" +//#include "display.h" +#include "decoders.h" +#include "idle.h" +#include "auxiliaries.h" +#include "sensors.h" +#include "src/PID_v1/PID_v1.h" +//#include "src/DigitalWriteFast/digitalWriteFast.h" +#include "errors.h" +#include "storage.h" +#include "scheduledIO.h" +#include +#if defined (CORE_TEENSY) +#include +#endif + +struct config1 configPage1; +struct config2 configPage2; +struct config3 configPage3; +struct config4 configPage4; +struct config10 configPage10; +struct config11 configPage11; + +int req_fuel_uS, inj_opentime_uS; + +bool ignitionOn = false; //The current state of the ignition system +bool fuelOn = false; //The current state of the ignition system +bool fuelPumpOn = false; //The current status of the fuel pump + +void (*trigger)(); //Pointer for the trigger function (Gets pointed to the relevant decoder) +void (*triggerSecondary)(); //Pointer for the secondary trigger function (Gets pointed to the relevant decoder) +uint16_t (*getRPM)(); //Pointer to the getRPM function (Gets pointed to the relevant decoder) +int (*getCrankAngle)(int); //Pointer to the getCrank Angle function (Gets pointed to the relevant decoder) +void (*triggerSetEndTeeth)(); //Pointer to the triggerSetEndTeeth function of each decoder + +byte cltCalibrationTable[CALIBRATION_TABLE_SIZE]; +byte iatCalibrationTable[CALIBRATION_TABLE_SIZE]; +byte o2CalibrationTable[CALIBRATION_TABLE_SIZE]; + +//These variables are used for tracking the number of running sensors values that appear to be errors. Once a threshold is reached, the sensor reading will go to default value and assume the sensor is faulty +byte mapErrorCount = 0; +byte iatErrorCount = 0; +byte cltErrorCount = 0; + +unsigned long counter; +unsigned long currentLoopTime; //The time the current loop started (uS) +unsigned long previousLoopTime; //The time the previous loop started (uS) + +int CRANK_ANGLE_MAX = 720; +int CRANK_ANGLE_MAX_IGN = 360; +int CRANK_ANGLE_MAX_INJ = 360; // The number of crank degrees that the system track over. 360 for wasted / timed batch and 720 for sequential + +static byte coilHIGH = HIGH; +static byte coilLOW = LOW; +static byte fanHIGH = HIGH; // Used to invert the cooling fan output +static byte fanLOW = LOW; // Used to invert the cooling fan output + +volatile uint16_t mainLoopCount; +byte deltaToothCount = 0; //The last tooth that was used with the deltaV calc +int rpmDelta; +byte ignitionCount; +uint16_t fixedCrankingOverride = 0; +int16_t lastAdvance; //Stores the previous advance figure to track changes. +bool clutchTrigger; +bool previousClutchTrigger; + +unsigned long secCounter; //The next time to incremen 'runSecs' counter. +int channel1IgnDegrees; //The number of crank degrees until cylinder 1 is at TDC (This is obviously 0 for virtually ALL engines, but there's some weird ones) +int channel2IgnDegrees; //The number of crank degrees until cylinder 2 (and 5/6/7/8) is at TDC +int channel3IgnDegrees; //The number of crank degrees until cylinder 3 (and 5/6/7/8) is at TDC +int channel4IgnDegrees; //The number of crank degrees until cylinder 4 (and 5/6/7/8) is at TDC +int channel5IgnDegrees; //The number of crank degrees until cylinder 5 is at TDC +int channel1InjDegrees; //The number of crank degrees until cylinder 1 is at TDC (This is obviously 0 for virtually ALL engines, but there's some weird ones) +int channel2InjDegrees; //The number of crank degrees until cylinder 2 (and 5/6/7/8) is at TDC +int channel3InjDegrees; //The number of crank degrees until cylinder 3 (and 5/6/7/8) is at TDC +int channel4InjDegrees; //The number of crank degrees until cylinder 4 (and 5/6/7/8) is at TDC +int channel5InjDegrees; //The number of crank degrees until cylinder 5 is at TDC + +//These are the functions the get called to begin and end the ignition coil charging. They are required for the various spark output modes +void (*ign1StartFunction)(); +void (*ign1EndFunction)(); +void (*ign2StartFunction)(); +void (*ign2EndFunction)(); +void (*ign3StartFunction)(); +void (*ign3EndFunction)(); +void (*ign4StartFunction)(); +void (*ign4EndFunction)(); +void (*ign5StartFunction)(); +void (*ign5EndFunction)(); + +int timePerDegree; +byte degreesPerLoop; //The number of crank degrees that pass for each mainloop of the program +volatile bool fpPrimed = false; //Tracks whether or not the fuel pump priming has been completed yet +bool initialisationComplete = false; //Tracks whether the setup() functino has run completely + +void setup() +{ + digitalWrite(LED_BUILTIN, LOW); + //Setup the dummy fuel and ignition tables + //dummyFuelTable(&fuelTable); + //dummyIgnitionTable(&ignitionTable); + table3D_setSize(&fuelTable, 16); + table3D_setSize(&ignitionTable, 16); + table3D_setSize(&afrTable, 16); + table3D_setSize(&boostTable, 8); + table3D_setSize(&vvtTable, 8); + table3D_setSize(&trim1Table, 6); + table3D_setSize(&trim2Table, 6); + table3D_setSize(&trim3Table, 6); + table3D_setSize(&trim4Table, 6); + + #if defined(CORE_STM32) + EEPROM.init(); + #endif + loadConfig(); + doUpdates(); //Check if any data items need updating (Occurs ith firmware updates) + + Serial.begin(115200); +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 + if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } +#elif defined(CORE_STM32) + if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } + else if (configPage10.enable_canbus == 2) + { + //enable local can interface + } +#elif defined(CORE_TEENSY) + if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } + else if (configPage10.enable_canbus == 2) + { + //Teensy onboard CAN not used currently + //enable local can interface + //setup can interface to 250k + //FlexCAN CANbus0(2500000, 0); + //static CAN_message_t txmsg,rxmsg; + //CANbus0.begin(); + } +#endif + + //Repoint the 2D table structs to the config pages that were just loaded + taeTable.valueSize = SIZE_BYTE; //Set this table to use byte values + taeTable.xSize = 4; + taeTable.values = configPage2.taeValues; + taeTable.axisX = configPage2.taeBins; + WUETable.valueSize = SIZE_BYTE; //Set this table to use byte values + WUETable.xSize = 10; + WUETable.values = configPage1.wueValues; + WUETable.axisX = configPage2.wueBins; + crankingEnrichTable.valueSize = SIZE_BYTE; + crankingEnrichTable.xSize = 4; + crankingEnrichTable.values = configPage11.crankingEnrichValues; + crankingEnrichTable.axisX = configPage11.crankingEnrichBins; + + dwellVCorrectionTable.valueSize = SIZE_BYTE; + dwellVCorrectionTable.xSize = 6; + dwellVCorrectionTable.values = configPage2.dwellCorrectionValues; + dwellVCorrectionTable.axisX = configPage3.voltageCorrectionBins; + injectorVCorrectionTable.valueSize = SIZE_BYTE; + injectorVCorrectionTable.xSize = 6; + injectorVCorrectionTable.values = configPage3.injVoltageCorrectionValues; + injectorVCorrectionTable.axisX = configPage3.voltageCorrectionBins; + IATDensityCorrectionTable.valueSize = SIZE_BYTE; + IATDensityCorrectionTable.xSize = 9; + IATDensityCorrectionTable.values = configPage3.airDenRates; + IATDensityCorrectionTable.axisX = configPage3.airDenBins; + IATRetardTable.valueSize = SIZE_BYTE; + IATRetardTable.xSize = 6; + IATRetardTable.values = configPage2.iatRetValues; + IATRetardTable.axisX = configPage2.iatRetBins; + rotarySplitTable.valueSize = SIZE_BYTE; + rotarySplitTable.xSize = 8; + rotarySplitTable.values = configPage11.rotarySplitValues; + rotarySplitTable.axisX = configPage11.rotarySplitBins; + + //Setup the calibration tables + loadCalibration(); + + //Set the pin mappings + if(configPage1.pinMapping > BOARD_NR_GPIO_PINS) + { + //First time running on this board + setPinMapping(3); //Force board to v0.4 + configPage1.flexEnabled = false; //Have to disable flex. If this isn't done and the wrong flex pin is interrupt attached below, system can hang. + } + else { setPinMapping(configPage1.pinMapping); } + + //Need to check early on whether the coil charging is inverted. If this is not set straight away it can cause an unwanted spark at bootup + if(configPage2.IgInv == 1) { coilHIGH = LOW, coilLOW = HIGH; } + else { coilHIGH = HIGH, coilLOW = LOW; } + endCoil1Charge(); + endCoil2Charge(); + endCoil3Charge(); + endCoil4Charge(); + endCoil5Charge(); + + //Similar for injectors, make sure they're turned off + closeInjector1(); + closeInjector2(); + closeInjector3(); + closeInjector4(); + closeInjector5(); + + //Set the tacho output default state + digitalWrite(pinTachOut, HIGH); + + //Perform all initialisations + initialiseSchedulers(); + initialiseTimers(); + //initialiseDisplay(); + initialiseIdle(); + initialiseFan(); + initialiseAuxPWM(); + initialiseCorrections(); + initialiseADC(); + + //Lookup the current MAP reading for barometric pressure + instanteneousMAPReading(); + //barometric reading can be taken from either an external sensor if enabled, or simply by using the initial MAP value + if ( configPage3.useExtBaro != 0 ) + { + readBaro(); + EEPROM.update(EEPROM_LAST_BARO, currentStatus.baro); + } + else + { + /* + * The highest sea-level pressure on Earth occurs in Siberia, where the Siberian High often attains a sea-level pressure above 105 kPa; + * with record highs close to 108.5 kPa. + * The lowest measurable sea-level pressure is found at the centers of tropical cyclones and tornadoes, with a record low of 87 kPa; + */ + if ((currentStatus.MAP >= BARO_MIN) && (currentStatus.MAP <= BARO_MAX)) //Check if engine isn't running + { + currentStatus.baro = currentStatus.MAP; + EEPROM.update(EEPROM_LAST_BARO, currentStatus.baro); + } + else + { + //Attempt to use the last known good baro reading from EEPROM + if ((EEPROM.read(EEPROM_LAST_BARO) >= BARO_MIN) && (EEPROM.read(EEPROM_LAST_BARO) <= BARO_MAX)) //Make sure it's not invalid (Possible on first run etc) + { currentStatus.baro = EEPROM.read(EEPROM_LAST_BARO); } //last baro correction + else { currentStatus.baro = 100; } //Final fall back position. + } + } + + //Check whether the flex sensor is enabled and if so, attach an interupt for it + if(configPage1.flexEnabled) + { + attachInterrupt(digitalPinToInterrupt(pinFlex), flexPulse, RISING); + currentStatus.ethanolPct = 0; + } + + //Once the configs have been loaded, a number of one time calculations can be completed + req_fuel_uS = configPage1.reqFuel * 100; //Convert to uS and an int. This is the only variable to be used in calculations + inj_opentime_uS = configPage1.injOpen * 100; //Injector open time. Comes through as ms*10 (Eg 15.5ms = 155). + + //Begin the main crank trigger interrupt pin setup + //The interrupt numbering is a bit odd - See here for reference: http://arduino.cc/en/Reference/AttachInterrupt + //These assignments are based on the Arduino Mega AND VARY BETWEEN BOARDS. Please confirm the board you are using and update acordingly. + currentStatus.RPM = 0; + currentStatus.hasSync = false; + currentStatus.runSecs = 0; + currentStatus.secl = 0; + currentStatus.startRevolutions = 0; + currentStatus.flatShiftingHard = false; + currentStatus.launchingHard = false; + currentStatus.crankRPM = ((unsigned int)configPage2.crankRPM * 100); //Crank RPM limit (Saves us calculating this over and over again. It's updated once per second in timers.ino) + triggerFilterTime = 0; //Trigger filter time is the shortest possible time (in uS) that there can be between crank teeth (ie at max RPM). Any pulses that occur faster than this time will be disgarded as noise. This is simply a default value, the actual values are set in the setup() functinos of each decoder + + noInterrupts(); + initialiseTriggers(); + + //End crank triger interrupt attachment + req_fuel_uS = req_fuel_uS / engineSquirtsPerCycle; //The req_fuel calculation above gives the total required fuel (At VE 100%) in the full cycle. If we're doing more than 1 squirt per cycle then we need to split the amount accordingly. (Note that in a non-sequential 4-stroke setup you cannot have less than 2 squirts as you cannot determine the stroke to make the single squirt on) + + //Initial values for loop times + previousLoopTime = 0; + currentLoopTime = micros(); + + mainLoopCount = 0; + ignitionCount = 0; + + //Calculate the number of degrees between cylinders + switch (configPage1.nCylinders) { + case 1: + channel1IgnDegrees = 0; + channel1InjDegrees = 0; + + channel1InjEnabled = true; + break; + + case 2: + channel1IgnDegrees = 0; + + if (configPage1.engineType == EVEN_FIRE ) + { + channel2IgnDegrees = 180; + } + else { channel2IgnDegrees = configPage1.oddfire2; } + + //For alternating injection, the squirt occurs at different times for each channel + if(configPage1.injLayout == INJ_SEMISEQUENTIAL) + { + channel1InjDegrees = 0; + channel2InjDegrees = channel2IgnDegrees; //Set to the same as the ignition degrees (Means there's no need for another if to check for oddfire) + } + if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = 0; } //For simultaneous, all squirts happen at the same time + + channel1InjEnabled = true; + channel2InjEnabled = true; + break; + + case 3: + channel1IgnDegrees = 0; + + if (configPage1.engineType == EVEN_FIRE ) + { + if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) + { + channel2IgnDegrees = 240; + channel3IgnDegrees = 480; + + CRANK_ANGLE_MAX_IGN = 720; + } + else + { + channel2IgnDegrees = 120; + channel3IgnDegrees = 240; + } + } + else + { + channel2IgnDegrees = configPage1.oddfire2; + channel3IgnDegrees = configPage1.oddfire3; + } + + //For alternatiing injection, the squirt occurs at different times for each channel + if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) + { + channel1InjDegrees = 0; + channel2InjDegrees = 120; + channel3InjDegrees = 240; + } + else if (configPage1.injLayout == INJ_SEQUENTIAL) + { + channel1InjDegrees = 0; + channel2InjDegrees = 240; + channel3InjDegrees = 480; + CRANK_ANGLE_MAX_INJ = 720; + req_fuel_uS = req_fuel_uS * 2; + } + if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = 0; } //For simultaneous, all squirts happen at the same time + + channel1InjEnabled = true; + channel2InjEnabled = true; + channel3InjEnabled = true; + break; + case 4: + channel1IgnDegrees = 0; + + if (configPage1.engineType == EVEN_FIRE ) + { + channel2IgnDegrees = 180; + + if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) + { + channel3IgnDegrees = 360; + channel4IgnDegrees = 540; + + CRANK_ANGLE_MAX_IGN = 720; + } + } + else + { + channel2IgnDegrees = configPage1.oddfire2; + channel3IgnDegrees = configPage1.oddfire3; + channel4IgnDegrees = configPage1.oddfire4; + } + + //For alternatiing injection, the squirt occurs at different times for each channel + if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) + { + channel1InjDegrees = 0; + channel2InjDegrees = 180; + } + else if (configPage1.injLayout == INJ_SEQUENTIAL) + { + channel1InjDegrees = 0; + channel2InjDegrees = 180; + channel3InjDegrees = 360; + channel4InjDegrees = 540; + + channel3InjEnabled = true; + channel4InjEnabled = true; + + CRANK_ANGLE_MAX_INJ = 720; + req_fuel_uS = req_fuel_uS * 2; + } + if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = 0; } //For simultaneous, all squirts happen at the same time + + channel1InjEnabled = true; + channel2InjEnabled = true; + break; + case 5: + channel1IgnDegrees = 0; + channel2IgnDegrees = 72; + channel3IgnDegrees = 144; + channel4IgnDegrees = 216; + channel5IgnDegrees = 288; + + if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) + { + channel2IgnDegrees = 144; + channel3IgnDegrees = 288; + channel4IgnDegrees = 432; + channel5IgnDegrees = 576; + + CRANK_ANGLE_MAX_IGN = 720; + } + + //For alternatiing injection, the squirt occurs at different times for each channel + if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) + { + channel1InjDegrees = 0; + channel2InjDegrees = 72; + channel3InjDegrees = 144; + channel4InjDegrees = 216; + channel5InjDegrees = 288; + } + else if (configPage1.injLayout == INJ_SEQUENTIAL) + { + channel1InjDegrees = 0; + channel2InjDegrees = 144; + channel3InjDegrees = 288; + channel4InjDegrees = 432; + channel5InjDegrees = 576; + + CRANK_ANGLE_MAX_INJ = 720; + } + if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = channel4InjDegrees = channel5InjDegrees = 0; } //For simultaneous, all squirts happen at the same time + + channel1InjEnabled = true; + channel2InjEnabled = true; + channel3InjEnabled = false; //this is disabled as injector 5 function calls 3 & 5 together + channel4InjEnabled = true; + channel5InjEnabled = true; + break; + case 6: + channel1IgnDegrees = 0; + channel1InjDegrees = 0; + channel2IgnDegrees = 120; + channel2InjDegrees = 120; + channel3IgnDegrees = 240; + channel3InjDegrees = 240; + + if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = 0; } //For simultaneous, all squirts happen at the same time + + configPage1.injLayout = 0; //This is a failsafe. We can never run semi-sequential with more than 4 cylinders + + channel1InjEnabled = true; + channel2InjEnabled = true; + channel3InjEnabled = true; + break; + case 8: + channel1IgnDegrees = channel1InjDegrees = 0; + channel2IgnDegrees = channel2InjDegrees = 90; + channel3IgnDegrees = channel3InjDegrees = 180; + channel4IgnDegrees = channel4InjDegrees = 270; + + if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = channel4InjDegrees = 0; } //For simultaneous, all squirts happen at the same time + + configPage1.injLayout = 0; //This is a failsafe. We can never run semi-sequential with more than 4 cylinders + + channel1InjEnabled = true; + channel2InjEnabled = true; + channel3InjEnabled = true; + channel4InjEnabled = true; + break; + default: //Handle this better!!! + channel1InjDegrees = 0; + channel2InjDegrees = 180; + break; + } + + switch(configPage2.sparkMode) + { + case IGN_MODE_WASTED: + //Wasted Spark (Normal mode) + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil2Charge; + ign2EndFunction = endCoil2Charge; + ign3StartFunction = beginCoil3Charge; + ign3EndFunction = endCoil3Charge; + ign4StartFunction = beginCoil4Charge; + ign4EndFunction = endCoil4Charge; + ign5StartFunction = beginCoil5Charge; + ign5EndFunction = endCoil5Charge; + break; + + case IGN_MODE_SINGLE: + //Single channel mode. All ignition pulses are on channel 1 + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil1Charge; + ign2EndFunction = endCoil1Charge; + ign3StartFunction = beginCoil1Charge; + ign3EndFunction = endCoil1Charge; + ign4StartFunction = beginCoil1Charge; + ign4EndFunction = endCoil1Charge; + ign5StartFunction = beginCoil1Charge; + ign5EndFunction = endCoil1Charge; + break; + + case IGN_MODE_WASTEDCOP: + //Wasted COP mode. Ignition channels 1&3 and 2&4 are paired together + //This is not a valid mode for >4 cylinders + if( configPage1.nCylinders <= 4 ) + { + ign1StartFunction = beginCoil1and3Charge; + ign1EndFunction = endCoil1and3Charge; + ign2StartFunction = beginCoil2and4Charge; + ign2EndFunction = endCoil2and4Charge; + + ign3StartFunction = nullCallback; + ign3EndFunction = nullCallback; + ign4StartFunction = nullCallback; + ign4EndFunction = nullCallback; + } + else + { + //If the person has inadvertantly selected this when running more than 4 cylinders, just use standard Wasted spark mode + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil2Charge; + ign2EndFunction = endCoil2Charge; + ign3StartFunction = beginCoil3Charge; + ign3EndFunction = endCoil3Charge; + ign4StartFunction = beginCoil4Charge; + ign4EndFunction = endCoil4Charge; + ign5StartFunction = beginCoil5Charge; + ign5EndFunction = endCoil5Charge; + } + break; + + case IGN_MODE_SEQUENTIAL: + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil2Charge; + ign2EndFunction = endCoil2Charge; + ign3StartFunction = beginCoil3Charge; + ign3EndFunction = endCoil3Charge; + ign4StartFunction = beginCoil4Charge; + ign4EndFunction = endCoil4Charge; + ign5StartFunction = beginCoil5Charge; + ign5EndFunction = endCoil5Charge; + break; + + case IGN_MODE_ROTARY: + if(configPage11.rotaryType == ROTARY_IGN_FC) + { + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil1Charge; + ign2EndFunction = endCoil1Charge; + + ign3StartFunction = beginTrailingCoilCharge; + ign3EndFunction = endTrailingCoilCharge1; + ign4StartFunction = beginTrailingCoilCharge; + ign4EndFunction = endTrailingCoilCharge2; + } + break; + + + + default: + //Wasted spark (Shouldn't ever happen anyway) + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil2Charge; + ign2EndFunction = endCoil2Charge; + ign3StartFunction = beginCoil3Charge; + ign3EndFunction = endCoil3Charge; + ign4StartFunction = beginCoil4Charge; + ign4EndFunction = endCoil4Charge; + ign5StartFunction = beginCoil5Charge; + ign5EndFunction = endCoil5Charge; + break; + } + + //Begin priming the fuel pump. This is turned off in the low resolution, 1s interrupt in timers.ino + digitalWrite(pinFuelPump, HIGH); + fuelPumpOn = true; + interrupts(); + //Perform the priming pulses. Set these to run at an arbitrary time in the future (100us). The prime pulse value is in ms*10, so need to multiple by 100 to get to uS + setFuelSchedule1(100, (unsigned long)(configPage1.primePulse * 100)); + setFuelSchedule2(100, (unsigned long)(configPage1.primePulse * 100)); + setFuelSchedule3(100, (unsigned long)(configPage1.primePulse * 100)); + setFuelSchedule4(100, (unsigned long)(configPage1.primePulse * 100)); + initialisationComplete = true; + digitalWrite(LED_BUILTIN, HIGH); +} + +void loop() +{ + mainLoopCount++; + LOOP_TIMER = TIMER_mask; + //Check for any requets from serial. Serial operations are checked under 2 scenarios: + // 1) Every 64 loops (64 Is more than fast enough for TunerStudio). This function is equivalent to ((loopCount % 64) == 1) but is considerably faster due to not using the mod or division operations + // 2) If the amount of data in the serial buffer is greater than a set threhold (See globals.h). This is to avoid serial buffer overflow when large amounts of data is being sent + if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) + { + if (Serial.available() > 0) + { + command(); + } + } + +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 + //if serial3 interface is enabled then check for serial3 requests. + if (configPage10.enable_canbus == 1) + { + if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) + { + if (CANSerial.available() > 0) + { + canCommand(); + } + } + } + +#elif defined(CORE_TEENSY) || defined(CORE_STM32) + //if can or secondary serial interface is enabled then check for requests. + if (configPage10.enable_canbus == 1) //secondary serial interface enabled + { + if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) + { + if (CANSerial.available() > 0) + { + canCommand(); + } + } + } + else if (configPage10.enable_canbus == 2) // can module enabled + { + //check local can module + // if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (CANbus0.available()) + // { + // CANbus0.read(rx_msg); + // } + } +#endif + + //Displays currently disabled + // if (configPage1.displayType && (mainLoopCount & 255) == 1) { updateDisplay();} + + previousLoopTime = currentLoopTime; + currentLoopTime = micros(); + unsigned long timeToLastTooth = (currentLoopTime - toothLastToothTime); + if ( (timeToLastTooth < MAX_STALL_TIME) || (toothLastToothTime > currentLoopTime) ) //Check how long ago the last tooth was seen compared to now. If it was more than half a second ago then the engine is probably stopped. toothLastToothTime can be greater than currentLoopTime if a pulse occurs between getting the lastest time and doing the comparison + { + currentStatus.RPM = currentStatus.longRPM = getRPM(); //Long RPM is included here + FUEL_PUMP_ON(); + fuelPumpOn = true; //Not sure if this is needed. + } + else + { + //We reach here if the time between teeth is too great. This VERY likely means the engine has stopped + currentStatus.RPM = 0; + currentStatus.PW1 = 0; + currentStatus.VE = 0; + toothLastToothTime = 0; + toothLastSecToothTime = 0; + //toothLastMinusOneToothTime = 0; + currentStatus.hasSync = false; + currentStatus.runSecs = 0; //Reset the counter for number of seconds running. + secCounter = 0; //Reset our seconds counter. + currentStatus.startRevolutions = 0; + toothSystemCount = 0; + secondaryToothCount = 0; + MAPcurRev = 0; + MAPcount = 0; + currentStatus.rpmDOT = 0; + ignitionOn = false; + fuelOn = false; + if (fpPrimed) { digitalWrite(pinFuelPump, LOW); } //Turn off the fuel pump, but only if the priming is complete + fuelPumpOn = false; + disableIdle(); //Turn off the idle PWM + BIT_CLEAR(currentStatus.engine, BIT_ENGINE_CRANK); //Clear cranking bit (Can otherwise get stuck 'on' even with 0 rpm) + BIT_CLEAR(currentStatus.engine, BIT_ENGINE_WARMUP); //Same as above except for WUE + + //This is a safety check. If for some reason the interrupts have got screwed up (Leading to 0rpm), this resets them. + //It can possibly be run much less frequently. + initialiseTriggers(); + + VVT_PIN_LOW(); + DISABLE_VVT_TIMER(); + DISABLE_BOOST_TIMER(); //Turn off timer + BOOST_PIN_LOW(); + } + + //Uncomment the following for testing + /* + currentStatus.hasSync = true; + currentStatus.RPM = 500; + */ + + //***Perform sensor reads*** + //----------------------------------------------------------------------------------------------------- + readMAP(); + + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) //Every 32 loops + { + BIT_CLEAR(TIMER_mask, BIT_TIMER_15HZ); + readTPS(); //TPS reading to be performed every 32 loops (any faster and it can upset the TPSdot sampling time) + + //Check for launching/flat shift (clutch) can be done around here too + previousClutchTrigger = clutchTrigger; + if(configPage3.launchHiLo) { clutchTrigger = digitalRead(pinLaunch); } + else { clutchTrigger = !digitalRead(pinLaunch); } + + if(previousClutchTrigger != clutchTrigger) { currentStatus.clutchEngagedRPM = currentStatus.RPM; } + + if (configPage3.launchEnabled && clutchTrigger && (currentStatus.clutchEngagedRPM < ((unsigned int)(configPage3.flatSArm) * 100)) && (currentStatus.RPM > ((unsigned int)(configPage3.lnchHardLim) * 100)) ) { currentStatus.launchingHard = true; BIT_SET(currentStatus.spark, BIT_SPARK_HLAUNCH); } //HardCut rev limit for 2-step launch control. + else { currentStatus.launchingHard = false; BIT_CLEAR(currentStatus.spark, BIT_SPARK_HLAUNCH); } + + if(configPage3.flatSEnable && clutchTrigger && (currentStatus.RPM > ((unsigned int)(configPage3.flatSArm) * 100)) && (currentStatus.RPM > currentStatus.clutchEngagedRPM) ) { currentStatus.flatShiftingHard = true; } + else { currentStatus.flatShiftingHard = false; } + + //Boost cutoff is very similar to launchControl, but with a check against MAP rather than a switch + if(configPage3.boostCutType && currentStatus.MAP > (configPage3.boostLimit * 2) ) //The boost limit is divided by 2 to allow a limit up to 511kPa + { + switch(configPage3.boostCutType) + { + case 1: + BIT_SET(currentStatus.spark, BIT_SPARK_BOOSTCUT); + BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); + break; + case 2: + BIT_SET(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); + BIT_CLEAR(currentStatus.spark, BIT_SPARK_BOOSTCUT); + break; + case 3: + BIT_SET(currentStatus.spark, BIT_SPARK_BOOSTCUT); + BIT_SET(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); + break; + } + } + else + { + BIT_CLEAR(currentStatus.spark, BIT_SPARK_BOOSTCUT); + BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); + } + + //And check whether the tooth log buffer is ready + if(toothHistoryIndex > TOOTH_LOG_SIZE) { BIT_SET(currentStatus.squirt, BIT_SQUIRT_TOOTHLOG1READY); } + + //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough + boostControl(); + } + if(BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) //Every 64 loops + { + //Nothing here currently + BIT_CLEAR(TIMER_mask, BIT_TIMER_30HZ); + } + //The IAT and CLT readings can be done less frequently. This still runs about 4 times per second + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_4HZ)) //Every 256 loops + { + BIT_CLEAR(TIMER_mask, BIT_TIMER_4HZ); + readCLT(); + readIAT(); + readO2(); + readBat(); +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 + //if Can interface is enabled then check for serial3 requests. + if (configPage10.enable_canbus == 1) // megas only support can via secondary serial + { + if (configPage10.enable_candata_in) + { + if (BIT_CHECK(configPage10.caninput_sel,currentStatus.current_caninchannel)) //if current input channel bit is enabled + { + sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage10.caninput_param_group[currentStatus.current_caninchannel]&2047)+256)); //send an R command for data from paramgroup[currentStatus.current_caninchannel] + } + else + { + if (currentStatus.current_caninchannel < 15) + { + currentStatus.current_caninchannel++; //step to next input channel if under 15 + } + else + { + currentStatus.current_caninchannel = 0; //reset input channel back to 1 + } + } + } + } +#elif defined(CORE_STM32) || defined(CORE_TEENSY) + //if serial3io is enabled then check for serial3 requests. + if (configPage10.enable_candata_in) + { + if (BIT_CHECK(configPage10.caninput_sel,currentStatus.current_caninchannel)) //if current input channel is enabled + { + if (configPage10.enable_canbus == 1) //can via secondary serial + { + sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage10.caninput_param_group[currentStatus.current_caninchannel]&2047)+256)); //send an R command for data from paramgroup[currentStatus.current_caninchannel] + } + else if (configPage10.enable_canbus == 2) // can via internal can module + { + sendCancommand(3,configPage10.speeduino_tsCanId,currentStatus.current_caninchannel,0,configPage10.caninput_param_group[currentStatus.current_caninchannel]); //send via localcanbus the command for data from paramgroup[currentStatus.current_caninchannel] + } + } + else + { + if (currentStatus.current_caninchannel < 15) + { + currentStatus.current_caninchannel++; //step to next input channel if under 15 + } + else + { + currentStatus.current_caninchannel = 0; //reset input channel back to 0 + } + } + } + +#endif + vvtControl(); + idleControl(); //Perform any idle related actions. Even at higher frequencies, running 4x per second is sufficient. + } + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_1HZ)) //Every 1024 loops (Approx. 1 per second) + { + //Approx. once per second + BIT_CLEAR(TIMER_mask, BIT_TIMER_1HZ); + readBaro(); + } + + if(configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL || configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL) { idleControl(); } //Run idlecontrol every loop for stepper idle. + + //Always check for sync + //Main loop runs within this clause + if (currentStatus.hasSync && (currentStatus.RPM > 0)) + { + if(currentStatus.startRevolutions >= configPage2.StgCycles) { ignitionOn = true; fuelOn = true; } //Enable the fuel and ignition, assuming staging revolutions are complete + //If it is, check is we're running or cranking + if(currentStatus.RPM > currentStatus.crankRPM) //Crank RPM stored in byte as RPM / 100 + { + BIT_SET(currentStatus.engine, BIT_ENGINE_RUN); //Sets the engine running bit + //Only need to do anything if we're transitioning from cranking to running + if( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) + { + BIT_CLEAR(currentStatus.engine, BIT_ENGINE_CRANK); //clears the engine cranking bit + if(configPage2.ignBypassEnabled) { digitalWrite(pinIgnBypass, HIGH); } + } + } + else + { //Sets the engine cranking bit, clears the engine running bit + BIT_SET(currentStatus.engine, BIT_ENGINE_CRANK); + BIT_CLEAR(currentStatus.engine, BIT_ENGINE_RUN); + currentStatus.runSecs = 0; //We're cranking (hopefully), so reset the engine run time to prompt ASE. + if(configPage2.ignBypassEnabled) { digitalWrite(pinIgnBypass, LOW); } + } + //END SETTING STATUSES + //----------------------------------------------------------------------------------------------------- + + //Begin the fuel calculation + //Calculate an injector pulsewidth from the VE + currentStatus.corrections = correctionsFuel(); + lastAdvance = currentStatus.advance; //Store the previous advance value + if (configPage1.algorithm == LOAD_SOURCE_MAP) //Check which fuelling algorithm is being used + { + //Speed Density + currentStatus.VE = get3DTableValue(&fuelTable, currentStatus.MAP, currentStatus.RPM); //Perform lookup into fuel map for RPM vs MAP value + currentStatus.PW1 = PW_SD(req_fuel_uS, currentStatus.VE, currentStatus.MAP, currentStatus.corrections, inj_opentime_uS); + currentStatus.advance = get3DTableValue(&ignitionTable, currentStatus.MAP, currentStatus.RPM) - OFFSET_IGNITION; //As above, but for ignition advance + } + else + { + //Alpha-N + currentStatus.VE = get3DTableValue(&fuelTable, currentStatus.TPS, currentStatus.RPM); //Perform lookup into fuel map for RPM vs TPS value + currentStatus.PW1 = PW_AN(req_fuel_uS, currentStatus.VE, currentStatus.TPS, currentStatus.corrections, inj_opentime_uS); //Calculate pulsewidth using the Alpha-N algorithm (in uS) + currentStatus.advance = get3DTableValue(&ignitionTable, currentStatus.TPS, currentStatus.RPM) - OFFSET_IGNITION; //As above, but for ignition advance + } + + currentStatus.advance = correctionsIgn(currentStatus.advance); + + int injector1StartAngle = 0; + int injector2StartAngle = 0; + int injector3StartAngle = 0; //Currently used for 3 cylinder only + int injector4StartAngle = 0; //Not used until sequential gets written + int injector5StartAngle = 0; //For 5 cylinder testing + int ignition1StartAngle = 0; + int ignition2StartAngle = 0; + int ignition3StartAngle = 0; //Currently used for 3 cylinder only + int ignition4StartAngle = 0; //Not used until sequential or 4+ cylinders support gets written + int ignition5StartAngle = 0; //Not used until sequential or 4+ cylinders support gets written + //These are used for comparisons on channels above 1 where the starting angle (for injectors or ignition) can be less than a single loop time + //(Don't ask why this is needed, it will break your head) + int tempCrankAngle; + int tempStartAngle; + + //******************************************************** + //How fast are we going? Need to know how long (uS) it will take to get from one tooth to the next. We then use that to estimate how far we are between the last tooth and the next one + //We use a 1st Deriv accleration prediction, but only when there is an even spacing between primary sensor teeth + //Any decoder that has uneven spacing has its triggerToothAngle set to 0 + if(secondDerivEnabled && toothHistoryIndex >= 3 && currentStatus.RPM < 2000) //toothHistoryIndex must be greater than or equal to 3 as we need the last 3 entries. Currently this mode only runs below 3000 rpm + //if(true) + { + //Only recalculate deltaV if the tooth has changed since last time (DeltaV stays the same until the next tooth) + //if (deltaToothCount != toothCurrentCount) + { + deltaToothCount = toothCurrentCount; + int angle1, angle2; //These represent the crank angles that are travelled for the last 2 pulses + if(configPage2.TrigPattern == 4) + { + //Special case for 70/110 pattern on 4g63 + angle2 = triggerToothAngle; //Angle 2 is the most recent + if (angle2 == 70) { angle1 = 110; } + else { angle1 = 70; } + } + else if(configPage2.TrigPattern == 0) + { + //Special case for missing tooth decoder where the missing tooth was one of the last 2 seen + if(toothCurrentCount == 1) { angle2 = 2*triggerToothAngle; angle1 = triggerToothAngle; } + else if(toothCurrentCount == 2) { angle1 = 2*triggerToothAngle; angle2 = triggerToothAngle; } + else { angle1 = angle2 = triggerToothAngle; } + } + else { angle1 = angle2 = triggerToothAngle; } + + long toothDeltaV = (1000000L * angle2 / toothHistory[toothHistoryIndex]) - (1000000L * angle1 / toothHistory[toothHistoryIndex-1]); + long toothDeltaT = toothHistory[toothHistoryIndex]; + //long timeToLastTooth = micros() - toothLastToothTime; + + rpmDelta = (toothDeltaV << 10) / (6 * toothDeltaT); + } + + + timePerDegree = ldiv( 166666L, (currentStatus.RPM + rpmDelta)).quot; //There is a small amount of rounding in this calculation, however it is less than 0.001 of a uS (Faster as ldiv than / ) + } + else + { + long rpm_adjust = ((long)(micros() - toothOneTime) * (long)currentStatus.rpmDOT) / 1000000; //Take into account any likely accleration that has occurred since the last full revolution completed + + //timePerDegree = DIV_ROUND_CLOSEST(166666L, (currentStatus.RPM + rpm_adjust)); + timePerDegree = ldiv( 166666L, currentStatus.RPM + rpm_adjust).quot; //There is a small amount of rounding in this calculation, however it is less than 0.001 of a uS (Faster as ldiv than / ) + } + + //Check that the duty cycle of the chosen pulsewidth isn't too high. This is disabled at cranking + if( !BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) + { + unsigned long pwLimit = percentage(configPage1.dutyLim, revolutionTime); //The pulsewidth limit is determined to be the duty cycle limit (Eg 85%) by the total time it takes to perform 1 revolution + if (CRANK_ANGLE_MAX_INJ == 720) { pwLimit = pwLimit * 2; } //For sequential, the maximum pulse time is double (2 revolutions). Wouldn't work for 2 stroke... + if (currentStatus.PW1 > pwLimit) { currentStatus.PW1 = pwLimit; } + } + + + //*********************************************************************************************** + //BEGIN INJECTION TIMING + //Determine next firing angles + currentStatus.PW2 = currentStatus.PW3 = currentStatus.PW4 = currentStatus.PW1; // Initial state is for all pulsewidths to be the same (This gets changed below) + if(!configPage1.indInjAng) {configPage1.inj4Ang = configPage1.inj3Ang = configPage1.inj2Ang = configPage1.inj1Ang;} //Forcing all injector close angles to be the same. + int PWdivTimerPerDegree = div(currentStatus.PW1, timePerDegree).quot; //How many crank degrees the calculated PW will take at the current speed + injector1StartAngle = configPage1.inj1Ang - ( PWdivTimerPerDegree ); //This is a little primitive, but is based on the idea that all fuel needs to be delivered before the inlet valve opens. See http://www.extraefi.co.uk/sequential_fuel.html for more detail + if(injector1StartAngle < 0) {injector1StartAngle += CRANK_ANGLE_MAX_INJ;} + if(injector1StartAngle > CRANK_ANGLE_MAX_INJ) {injector1StartAngle -= CRANK_ANGLE_MAX_INJ;} + + //Repeat the above for each cylinder + switch (configPage1.nCylinders) + { + //2 cylinders + case 2: + injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); + if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + if(injector2StartAngle < 0) {injector2StartAngle += CRANK_ANGLE_MAX_INJ;} + break; + //3 cylinders + case 3: + injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); + if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + if(injector2StartAngle < 0) {injector2StartAngle += CRANK_ANGLE_MAX_INJ;} + + injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); + if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} + if(injector3StartAngle < 0) {injector3StartAngle += CRANK_ANGLE_MAX_INJ;} + break; + //4 cylinders + case 4: + injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); + if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + if(injector2StartAngle < 0) {injector2StartAngle += CRANK_ANGLE_MAX_INJ;} + + if(configPage1.injLayout == INJ_SEQUENTIAL) + { + injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); + if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} + if(injector3StartAngle < 0) {injector3StartAngle += CRANK_ANGLE_MAX_INJ;} + + injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); + if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} + if(injector4StartAngle < 0) {injector4StartAngle += CRANK_ANGLE_MAX_INJ;} + + if(configPage3.fuelTrimEnabled) + { + unsigned long pw1percent = 100 + (byte)get3DTableValue(&trim1Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; + unsigned long pw2percent = 100 + (byte)get3DTableValue(&trim2Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; + unsigned long pw3percent = 100 + (byte)get3DTableValue(&trim3Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; + unsigned long pw4percent = 100 + (byte)get3DTableValue(&trim4Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; + + if (pw1percent != 100) { currentStatus.PW1 = (pw1percent * currentStatus.PW1) / 100; } + if (pw2percent != 100) { currentStatus.PW2 = (pw2percent * currentStatus.PW2) / 100; } + if (pw3percent != 100) { currentStatus.PW3 = (pw3percent * currentStatus.PW3) / 100; } + if (pw4percent != 100) { currentStatus.PW4 = (pw4percent * currentStatus.PW4) / 100; } + } + } + break; + //5 cylinders + case 5: + injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); + if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); + if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); + if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector5StartAngle = (configPage1.inj1Ang + channel5InjDegrees - ( PWdivTimerPerDegree )); + if(injector5StartAngle > CRANK_ANGLE_MAX_INJ) {injector5StartAngle -= CRANK_ANGLE_MAX_INJ;} + break; + //6 cylinders + case 6: + injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); + if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); + if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} + break; + //8 cylinders + case 8: + injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); + if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); + if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); + if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} + break; + //Will hit the default case on 1 cylinder or >8 cylinders. Do nothing in these cases + default: + break; + } + + //*********************************************************************************************** + //| BEGIN IGNITION CALCULATIONS + BIT_CLEAR(currentStatus.spark, BIT_SPARK_HRDLIM); + if (currentStatus.RPM > ((unsigned int)(configPage2.HardRevLim) * 100) ) { BIT_SET(currentStatus.spark, BIT_SPARK_HRDLIM); } //Hardcut RPM limit + + + //Set dwell + //Dwell is stored as ms * 10. ie Dwell of 4.3ms would be 43 in configPage2. This number therefore needs to be multiplied by 100 to get dwell in uS + if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { currentStatus.dwell = (configPage2.dwellCrank * 100); } + else { currentStatus.dwell = (configPage2.dwellRun * 100); } + currentStatus.dwell = correctionsDwell(currentStatus.dwell); + + int dwellAngle = uSToDegrees(currentStatus.dwell); //Convert the dwell time to dwell angle based on the current engine speed + + //Calculate start angle for each channel + //1 cylinder (Everyone gets this) + ignition1EndAngle = CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition1StartAngle = ignition1EndAngle - dwellAngle; // 360 - desired advance angle - number of degrees the dwell will take + if(ignition1StartAngle < 0) {ignition1StartAngle += CRANK_ANGLE_MAX_IGN;} + + //This test for more cylinders and do the same thing + switch (configPage1.nCylinders) + { + //2 cylinders + case 2: + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + break; + //3 cylinders + case 3: + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = channel3IgnDegrees + 360 - currentStatus.advance - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + break; + //4 cylinders + case 4: + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} + + if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) + { + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = ignition3EndAngle - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition4StartAngle = ignition4EndAngle - dwellAngle; + if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} + } + else if(configPage2.sparkMode == IGN_MODE_ROTARY) + { + if(configPage11.rotaryType == ROTARY_IGN_FC) + { + byte splitDegrees = 0; + if (configPage1.algorithm == LOAD_SOURCE_MAP) { splitDegrees = table2D_getValue(&rotarySplitTable, currentStatus.MAP/2); } + else { splitDegrees = table2D_getValue(&rotarySplitTable, currentStatus.TPS/2); } + + //The trailing angles are set relative to the leading ones + ignition3EndAngle = ignition1EndAngle + splitDegrees; + ignition3StartAngle = ignition3EndAngle - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + if(ignition3StartAngle < 0) {ignition3StartAngle += CRANK_ANGLE_MAX_IGN;} + + ignition4EndAngle = ignition2EndAngle + splitDegrees; + ignition4StartAngle = ignition4EndAngle - dwellAngle; + if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} + if(ignition4StartAngle < 0) {ignition4StartAngle += CRANK_ANGLE_MAX_IGN;} + } + } + break; + //5 cylinders + case 5: + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} + + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = ignition3EndAngle - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition4StartAngle = ignition4EndAngle - dwellAngle; + if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition5StartAngle = channel5IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; + if(ignition5StartAngle > CRANK_ANGLE_MAX_IGN) {ignition5StartAngle -= CRANK_ANGLE_MAX_IGN;} + + break; + //6 cylinders + case 6: + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = ignition3EndAngle - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + break; + //8 cylinders + case 8: + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = ignition3EndAngle - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition4StartAngle = ignition4EndAngle - dwellAngle; + if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} + break; + + //Will hit the default case on 1 cylinder or >8 cylinders. Do nothing in these cases + default: + break; + } + //If ignition timing is being tracked per tooth, perform the calcs to get the end teeth + //This only needs to be run if the advance figure has changed, otherwise the end teeth will still be the same + if( (configPage1.perToothIgn == true) && (lastAdvance != currentStatus.advance) ) { triggerSetEndTeeth(); } + + //*********************************************************************************************** + //| BEGIN FUEL SCHEDULES + //Finally calculate the time (uS) until we reach the firing angles and set the schedules + //We only need to set the shcedule if we're BEFORE the open angle + //This may potentially be called a number of times as we get closer and closer to the opening time + + //Determine the current crank angle + int crankAngle = getCrankAngle(timePerDegree); + if (crankAngle > CRANK_ANGLE_MAX_INJ ) { crankAngle -= 360; } + + if (fuelOn && currentStatus.PW1 > 0 && !BIT_CHECK(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT)) + { + if ( (injector1StartAngle <= crankAngle) && (fuelSchedule1.Status == RUNNING) ) { injector1StartAngle += CRANK_ANGLE_MAX_INJ; } + if (injector1StartAngle > crankAngle) + { + setFuelSchedule1( + ((unsigned long)(injector1StartAngle - crankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW1 + ); + } + + /*----------------------------------------------------------------------------------------- + | A Note on tempCrankAngle and tempStartAngle: + | The use of tempCrankAngle/tempStartAngle is described below. It is then used in the same way for channels 2, 3 and 4 on both injectors and ignition + | Essentially, these 2 variables are used to realign the current crank angle and the desired start angle around 0 degrees for the given cylinder/output + | Eg: If cylinder 2 TDC is 180 degrees after cylinder 1 (Eg a standard 4 cylidner engine), then tempCrankAngle is 180* less than the current crank angle and + | tempStartAngle is the desired open time less 180*. Thus the cylinder is being treated relative to its own TDC, regardless of its offset + | + | This is done to avoid problems with very short of very long times until tempStartAngle. + | This will very likely need to be rewritten when sequential is enabled + |------------------------------------------------------------------------------------------ + */ + if(channel2InjEnabled) + { + tempCrankAngle = crankAngle - channel2InjDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } + tempStartAngle = injector2StartAngle - channel2InjDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule2.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( tempStartAngle > tempCrankAngle ) + { + setFuelSchedule2( + ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW2 + ); + } + } + + if(channel3InjEnabled) + { + tempCrankAngle = crankAngle - channel3InjDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } + tempStartAngle = injector3StartAngle - channel3InjDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule3.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( tempStartAngle > tempCrankAngle ) + { + setFuelSchedule3( + ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW3 + ); + } + } + + if(channel4InjEnabled) + { + tempCrankAngle = crankAngle - channel4InjDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } + tempStartAngle = injector4StartAngle - channel4InjDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule4.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( tempStartAngle > tempCrankAngle ) + { + setFuelSchedule4( + ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW4 + ); + } + } + + if(channel5InjEnabled) + { + tempCrankAngle = crankAngle - channel5InjDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } + tempStartAngle = injector5StartAngle - channel5InjDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if (tempStartAngle <= tempCrankAngle && fuelSchedule5.schedulesSet == 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( tempStartAngle > tempCrankAngle ) + { + //Note the hacky use of fuel schedule 3 below + /* + setFuelSchedule3(openInjector3and5, + ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW1, + closeInjector3and5 + );*/ + setFuelSchedule3( + ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW1 + ); + } + } + } + //*********************************************************************************************** + //| BEGIN IGNITION SCHEDULES + //Likewise for the ignition + + //fixedCrankingOverride is used to extend the dwell during cranking so that the decoder can trigger the spark upon seeing a certain tooth. Currently only available on the basic distributor and 4g63 decoders. + if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) { fixedCrankingOverride = currentStatus.dwell * 3; } + else { fixedCrankingOverride = 0; } + + //Perform an initial check to see if the ignition is turned on (Ignition only turns on after a preset number of cranking revolutions and: + //Check for hard cut rev limit (If we're above the hardcut limit, we simply don't set a spark schedule) + if(ignitionOn && !currentStatus.launchingHard && !BIT_CHECK(currentStatus.spark, BIT_SPARK_BOOSTCUT) && !BIT_CHECK(currentStatus.spark, BIT_SPARK_HRDLIM) && !currentStatus.flatShiftingHard) + { + + //Refresh the current crank angle info + //ignition1StartAngle = 335; + crankAngle = getCrankAngle(timePerDegree); //Refresh with the latest crank angle + if (crankAngle > CRANK_ANGLE_MAX_IGN ) { crankAngle -= 360; } + + if (ignition1StartAngle > crankAngle) + { + /* + long some_time = ((unsigned long)(ignition1StartAngle - crankAngle) * (unsigned long)timePerDegree); + long newRPM = (long)(some_time * currentStatus.rpmDOT) / 1000000L; + newRPM = currentStatus.RPM + (newRPM/2); + unsigned long timePerDegree_1 = ldiv( 166666L, newRPM).quot; + unsigned long timeout = (unsigned long)(ignition1StartAngle - crankAngle) * 282UL; + */ + setIgnitionSchedule1(ign1StartFunction, + //((unsigned long)(ignition1StartAngle - crankAngle) * (unsigned long)timePerDegree), + degreesToUS((ignition1StartAngle - crankAngle)), + currentStatus.dwell + fixedCrankingOverride, //((unsigned long)((unsigned long)currentStatus.dwell* currentStatus.RPM) / newRPM) + fixedCrankingOverride, + ign1EndFunction + ); + } + + tempCrankAngle = crankAngle - channel2IgnDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } + tempStartAngle = ignition2StartAngle - channel2IgnDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } + { + unsigned long ignition2StartTime = 0; + if(tempStartAngle > tempCrankAngle) { ignition2StartTime = degreesToUS((tempStartAngle - tempCrankAngle)); } + //else if (tempStartAngle < tempCrankAngle) { ignition2StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } + else { ignition2StartTime = 0; } + + if(ignition2StartTime > 0) { + setIgnitionSchedule2(ign2StartFunction, + ignition2StartTime, + currentStatus.dwell + fixedCrankingOverride, + ign2EndFunction + ); + } + } + + tempCrankAngle = crankAngle - channel3IgnDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } + tempStartAngle = ignition3StartAngle - channel3IgnDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } + //if (tempStartAngle > tempCrankAngle) + { + long ignition3StartTime = 0; + if(tempStartAngle > tempCrankAngle) { ignition3StartTime = degreesToUS((tempStartAngle - tempCrankAngle)); } + //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } + else { ignition3StartTime = 0; } + + if(ignition3StartTime > 0) { + setIgnitionSchedule3(ign3StartFunction, + ignition3StartTime, + currentStatus.dwell + fixedCrankingOverride, + ign3EndFunction + ); + } + } + + tempCrankAngle = crankAngle - channel4IgnDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } + tempStartAngle = ignition4StartAngle - channel4IgnDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } + //if (tempStartAngle > tempCrankAngle) + { + + long ignition4StartTime = 0; + if(tempStartAngle > tempCrankAngle) { ignition4StartTime = degreesToUS((tempStartAngle - tempCrankAngle)); } + //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } + else { ignition4StartTime = 0; } + + if(ignition4StartTime > 0) { + setIgnitionSchedule4(ign4StartFunction, + ignition4StartTime, + currentStatus.dwell + fixedCrankingOverride, + ign4EndFunction + ); + } + } + + tempCrankAngle = crankAngle - channel5IgnDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } + tempStartAngle = ignition5StartAngle - channel5IgnDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } + //if (tempStartAngle > tempCrankAngle) + { + + long ignition5StartTime = 0; + if(tempStartAngle > tempCrankAngle) { ignition5StartTime = degreesToUS((tempStartAngle - tempCrankAngle)); } + //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } + else { ignition5StartTime = 0; } + + if(ignition5StartTime > 0) { + setIgnitionSchedule5(ign5StartFunction, + ignition5StartTime, + currentStatus.dwell + fixedCrankingOverride, + ign5EndFunction + ); + } + } + } //Ignition schedules on + } //Has sync and RPM } //loop() diff --git a/speeduino/timers.ino b/speeduino/timers.ino index a5332376..a0dd2b1d 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -1,3 +1,4 @@ +<<<<<<< HEAD /* Speeduino - Simple engine management for the Arduino Mega 2560 platform Copyright (C) Josh Stewart @@ -209,4 +210,214 @@ void oneMSInterval() //Most ARM chips can simply call a function TCNT2 = 131; //Preload timer2 with 100 cycles, leaving 156 till overflow. TIFR2 = 0x00; //Timer2 INT Flag Reg: Clear Timer Overflow Flag #endif +======= +/* +Speeduino - Simple engine management for the Arduino Mega 2560 platform +Copyright (C) Josh Stewart +A full copy of the license may be found in the projects root directory +*/ + +/* +Timers are used for having actions performed repeatedly at a fixed interval (Eg every 100ms) +They should not be confused with Schedulers, which are for performing an action once at a given point of time in the future + +Timers are typically low resolution (Compared to Schedulers), with maximum frequency currently being approximately every 10ms +*/ +#include "timers.h" +#include "globals.h" +#include "sensors.h" + +#if defined(CORE_AVR) + #include +#endif + +void initialiseTimers() +{ +#if defined(CORE_AVR) //AVR chips use the ISR for this + //Configure Timer2 for our low-freq interrupt code. + TCCR2B = 0x00; //Disbale Timer2 while we set it up + TCNT2 = 131; //Preload timer2 with 131 cycles, leaving 125 till overflow. As the timer runs at 125Khz, this causes overflow to occur at 1Khz = 1ms + TIFR2 = 0x00; //Timer2 INT Flag Reg: Clear Timer Overflow Flag + TIMSK2 = 0x01; //Timer2 Set Overflow Interrupt enabled. + TCCR2A = 0x00; //Timer2 Control Reg A: Wave Gen Mode normal + /* Now configure the prescaler to CPU clock divided by 128 = 125Khz */ + TCCR2B |= (1<= configPage1.fpPrime) + { + fpPrimed = true; //Mark the priming as being completed + if(currentStatus.RPM == 0) { digitalWrite(pinFuelPump, LOW); fuelPumpOn = false; } //If we reach here then the priming is complete, however only turn off the fuel pump if the engine isn't running + } + } + //************************************************************************************************************************************************** + //Set the flex reading (if enabled). The flexCounter is updated with every pulse from the sensor. If cleared once per second, we get a frequency reading + if(configPage1.flexEnabled == true) + { + if(flexCounter < 50) + { + currentStatus.ethanolPct = 0; //Standard GM Continental sensor reads from 50Hz (0 ethanol) to 150Hz (Pure ethanol). Subtracting 50 from the frequency therefore gives the ethanol percentage. + flexCounter = 0; + } + else if (flexCounter > 151) //1 pulse buffer + { + + if(flexCounter < 169) + { + currentStatus.ethanolPct = 100; + flexCounter = 0; + } + else + { + //This indicates an error condition. Spec of the sensor is that errors are above 170Hz) + currentStatus.ethanolPct = 0; + flexCounter = 0; + } + } + else + { + currentStatus.ethanolPct = flexCounter - 50; //Standard GM Continental sensor reads from 50Hz (0 ethanol) to 150Hz (Pure ethanol). Subtracting 50 from the frequency therefore gives the ethanol percentage. + flexCounter = 0; + } + + //Off by 1 error check + if (currentStatus.ethanolPct == 1) { currentStatus.ethanolPct = 0; } + + } + + } +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //AVR chips use the ISR for this + //Reset Timer2 to trigger in another ~1ms + TCNT2 = 131; //Preload timer2 with 100 cycles, leaving 156 till overflow. + TIFR2 = 0x00; //Timer2 INT Flag Reg: Clear Timer Overflow Flag +#endif +>>>>>>> parent of d8898db... Merge branch 'master' into pr/5 } diff --git a/speeduino/updates.ino b/speeduino/updates.ino index a184b99e..03c02ac4 100644 --- a/speeduino/updates.ino +++ b/speeduino/updates.ino @@ -62,4 +62,3 @@ void doUpdates() } } - diff --git a/speeduino/utils.ino b/speeduino/utils.ino index c5c1e3e9..a9865a2c 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -1,882 +1,882 @@ -/* - Speeduino - Simple engine management for the Arduino Mega 2560 platform - Copyright (C) Josh Stewart - A full copy of the license may be found in the projects root directory -*/ - - -/* - Returns how much free dynamic memory exists (between heap and stack) - This function is one big MISRA violation. MISRA advisories forbid directly poking at memory addresses, however there is no other way of determining heap size on embedded systems. -*/ -#include "utils.h" - -uint16_t freeRam () -{ -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - extern int __heap_start, *__brkval; - uint16_t v; - - return (uint16_t) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); - -#elif defined(CORE_TEENSY) - uint32_t stackTop; - uint32_t heapTop; - - // current position of the stack. - stackTop = (uint32_t) &stackTop; - - // current position of heap. - void* hTop = malloc(1); - heapTop = (uint32_t) hTop; - free(hTop); - - // The difference is the free, available ram. - return (uint16_t)stackTop - heapTop; -#elif defined(CORE_STM32) - char top = 't'; - return &top - reinterpret_cast(sbrk(0)); - -#endif -} - -void setPinMapping(byte boardID) -{ - switch (boardID) - { - case 0: - //Pin mappings as per the v0.1 shield - pinInjector1 = 8; //Output pin injector 1 is on - pinInjector2 = 9; //Output pin injector 2 is on - pinInjector3 = 11; //Output pin injector 3 is on - pinInjector4 = 10; //Output pin injector 4 is on - pinInjector5 = 12; //Output pin injector 5 is on - pinCoil1 = 6; //Pin for coil 1 - pinCoil2 = 7; //Pin for coil 2 - pinCoil3 = 12; //Pin for coil 3 - pinCoil4 = 13; //Pin for coil 4 - pinCoil5 = 14; //Pin for coil 5 - pinTrigger = 2; //The CAS pin - pinTrigger2 = 3; //The CAS pin - pinTPS = A0; //TPS input pin - pinMAP = A1; //MAP sensor pin - pinIAT = A2; //IAT sensor pin - pinCLT = A3; //CLS sensor pin - pinO2 = A4; //O2 Sensor pin - pinIdle1 = 46; //Single wire idle control - pinIdle2 = 47; //2 wire idle control - pinStepperDir = 16; //Direction pin for DRV8825 driver - pinStepperStep = 17; //Step pin for DRV8825 driver - pinFan = 47; //Pin for the fan output - pinFuelPump = 4; //Fuel pump output - pinTachOut = 49; //Tacho output pin - pinFlex = 19; // Flex sensor (Must be external interrupt enabled) - break; - case 1: - //Pin mappings as per the v0.2 shield - pinInjector1 = 8; //Output pin injector 1 is on - pinInjector2 = 9; //Output pin injector 2 is on - pinInjector3 = 10; //Output pin injector 3 is on - pinInjector4 = 11; //Output pin injector 4 is on - pinInjector5 = 12; //Output pin injector 5 is on - pinCoil1 = 28; //Pin for coil 1 - pinCoil2 = 24; //Pin for coil 2 - pinCoil3 = 40; //Pin for coil 3 - pinCoil4 = 36; //Pin for coil 4 - pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now - pinTrigger = 20; //The CAS pin - pinTrigger2 = 21; //The Cam Sensor pin - pinTPS = A2; //TPS input pin - pinMAP = A3; //MAP sensor pin - pinIAT = A0; //IAT sensor pin - pinCLT = A1; //CLS sensor pin - pinO2 = A8; //O2 Sensor pin - pinBat = A4; //Battery reference voltage pin - pinDisplayReset = 48; // OLED reset pin - pinTachOut = 49; //Tacho output pin - pinIdle1 = 30; //Single wire idle control - pinIdle2 = 31; //2 wire idle control - pinStepperDir = 16; //Direction pin for DRV8825 driver - pinStepperStep = 17; //Step pin for DRV8825 driver - pinFan = 47; //Pin for the fan output - pinFuelPump = 4; //Fuel pump output - pinFlex = 2; // Flex sensor (Must be external interrupt enabled) - break; - case 2: - //Pin mappings as per the v0.3 shield - pinInjector1 = 8; //Output pin injector 1 is on - pinInjector2 = 9; //Output pin injector 2 is on - pinInjector3 = 10; //Output pin injector 3 is on - pinInjector4 = 11; //Output pin injector 4 is on - pinInjector5 = 12; //Output pin injector 5 is on - pinCoil1 = 28; //Pin for coil 1 - pinCoil2 = 24; //Pin for coil 2 - pinCoil3 = 40; //Pin for coil 3 - pinCoil4 = 36; //Pin for coil 4 - pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now - pinTrigger = 19; //The CAS pin - pinTrigger2 = 18; //The Cam Sensor pin - pinTPS = A2;//TPS input pin - pinMAP = A3; //MAP sensor pin - pinIAT = A0; //IAT sensor pin - pinCLT = A1; //CLS sensor pin - pinO2 = A8; //O2 Sensor pin - pinBat = A4; //Battery reference voltage pin - pinDisplayReset = 48; // OLED reset pin - pinTachOut = 49; //Tacho output pin - pinIdle1 = 5; //Single wire idle control - pinIdle2 = 53; //2 wire idle control - pinBoost = 7; //Boost control - pinVVT_1 = 6; //Default VVT output - pinFuelPump = 4; //Fuel pump output - pinStepperDir = 16; //Direction pin for DRV8825 driver - pinStepperStep = 17; //Step pin for DRV8825 driver - pinStepperEnable = 26; //Enable pin for DRV8825 - pinFan = A13; //Pin for the fan output - pinLaunch = 12; //Can be overwritten below - pinFlex = 2; // Flex sensor (Must be external interrupt enabled) - - #if defined(CORE_TEENSY) - pinTrigger = 23; - pinStepperDir = 33; - pinStepperStep = 34; - pinCoil1 = 31; - pinTachOut = 28; - pinFan = 27; - pinCoil4 = 21; - pinCoil3 = 30; - pinO2 = A22; - #endif - break; - - case 3: - //Pin mappings as per the v0.4 shield - pinInjector1 = 8; //Output pin injector 1 is on - pinInjector2 = 9; //Output pin injector 2 is on - pinInjector3 = 10; //Output pin injector 3 is on - pinInjector4 = 11; //Output pin injector 4 is on - pinInjector5 = 12; //Output pin injector 5 is on - pinCoil1 = 40; //Pin for coil 1 - pinCoil2 = 38; //Pin for coil 2 - pinCoil3 = 52; //Pin for coil 3 - pinCoil4 = 50; //Pin for coil 4 - pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now - pinTrigger = 19; //The CAS pin - pinTrigger2 = 18; //The Cam Sensor pin - pinTPS = A2;//TPS input pin - pinMAP = A3; //MAP sensor pin - pinIAT = A0; //IAT sensor pin - pinCLT = A1; //CLS sensor pin - pinO2 = A8; //O2 Sensor pin - pinBat = A4; //Battery reference voltage pin - pinDisplayReset = 48; // OLED reset pin - pinTachOut = 49; //Tacho output pin (Goes to ULN2803) - pinIdle1 = 5; //Single wire idle control - pinIdle2 = 6; //2 wire idle control - pinBoost = 7; //Boost control - pinVVT_1 = 4; //Default VVT output - pinFuelPump = 45; //Fuel pump output (Goes to ULN2803) - pinStepperDir = 16; //Direction pin for DRV8825 driver - pinStepperStep = 17; //Step pin for DRV8825 driver - pinStepperEnable = 24; //Enable pin for DRV8825 - pinFan = 47; //Pin for the fan output (Goes to ULN2803) - pinLaunch = 12; //Can be overwritten below - pinFlex = 2; // Flex sensor (Must be external interrupt enabled) - - #if defined(CORE_TEENSY) - pinTrigger = 23; - pinTrigger2 = 35; - pinStepperDir = 33; - pinStepperStep = 34; - pinCoil1 = 31; - pinTachOut = 28; - pinFan = 27; - pinCoil4 = 29; - pinCoil3 = 30; - pinO2 = A22; - #elif defined(STM32F4) - pinInjector1 = PE7; //Output pin injector 1 is on - pinInjector2 = PE8; //Output pin injector 2 is on - pinInjector3 = PE9; //Output pin injector 3 is on - pinInjector4 = PE10; //Output pin injector 4 is on - pinInjector5 = PE11; //Output pin injector 5 is on - pinCoil1 = PB10; //Pin for coil 1 - pinCoil2 = PB11; //Pin for coil 2 - pinCoil3 = PB12; //Pin for coil 3 - pinCoil4 = PB13; //Pin for coil 4 - pinCoil5 = PB14; //Pin for coil 5 - pinTPS = A0; //TPS input pin - pinMAP = A1; //MAP sensor pin - pinIAT = A2; //IAT sensor pin - pinCLT = A3; //CLS sensor pin - pinO2 = A4; //O2 Sensor pin - pinBat = A5; //Battery reference voltage pin - pinBaro = A6; - pinStepperDir = PD8; //Direction pin for DRV8825 driver - pinStepperStep = PB15; //Step pin for DRV8825 driver - pinStepperEnable = PD9; //Enable pin for DRV8825 - pinDisplayReset = PE1; // OLED reset pin - pinFan = PE2; //Pin for the fan output - pinFuelPump = PA6; //Fuel pump output - pinTachOut = PA7; //Tacho output pin - //external interrupt enabled pins - pinFlex = PC4; // Flex sensor (Must be external interrupt enabled) - pinTrigger = PC5; //The CAS pin - pinTrigger2 = PC6; //The Cam Sensor pin - pinBoost = PE0; //Boost control - pinVVT_1 = PE1; //Default VVT output - #elif defined(CORE_STM32) - //http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/0.0.12/hardware/maple-mini.html#master-pin-map - //pins 23, 24 and 33 couldn't be used - pinInjector1 = 15; //Output pin injector 1 is on - pinInjector2 = 16; //Output pin injector 2 is on - pinInjector3 = 17; //Output pin injector 3 is on - pinInjector4 = 18; //Output pin injector 4 is on - pinCoil1 = 19; //Pin for coil 1 - pinCoil2 = 20; //Pin for coil 2 - pinCoil3 = 21; //Pin for coil 3 - pinCoil4 = 26; //Pin for coil 4 - pinCoil5 = 27; //Pin for coil 5 - pinTPS = A0; //TPS input pin - pinMAP = A1; //MAP sensor pin - pinIAT = A2; //IAT sensor pin - pinCLT = A3; //CLS sensor pin - pinO2 = A4; //O2 Sensor pin - pinBat = A5; //Battery reference voltage pin - pinStepperDir = 12; //Direction pin for DRV8825 driver - pinStepperStep = 13; //Step pin for DRV8825 driver - pinStepperEnable = 14; //Enable pin for DRV8825 - pinDisplayReset = 2; // OLED reset pin - pinFan = 1; //Pin for the fan output - pinFuelPump = 0; //Fuel pump output - pinTachOut = 31; //Tacho output pin - //external interrupt enabled pins - pinFlex = 32; // Flex sensor (Must be external interrupt enabled) - pinTrigger = 25; //The CAS pin - pinTrigger2 = 22; //The Cam Sensor pin - pinBaro = pinMAP; - pinBoost = 1; //Boost control - pinVVT_1 = 0; //Default VVT output - #endif - break; - - case 9: - //Pin mappings as per the MX5 PNP shield - pinInjector1 = 11; //Output pin injector 1 is on - pinInjector2 = 10; //Output pin injector 2 is on - pinInjector3 = 8; //Output pin injector 3 is on - pinInjector4 = 9; //Output pin injector 4 is on - pinInjector5 = 14; //Output pin injector 5 is on - pinCoil1 = 39; //Pin for coil 1 - pinCoil2 = 41; //Pin for coil 2 - pinCoil3 = 35; //Pin for coil 3 - pinCoil4 = 37; //Pin for coil 4 - pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now - pinTrigger = 19; //The CAS pin - pinTrigger2 = 18; //The Cam Sensor pin - pinTPS = A2;//TPS input pin - pinMAP = A5; //MAP sensor pin - pinIAT = A0; //IAT sensor pin - pinCLT = A1; //CLS sensor pin - pinO2 = A3; //O2 Sensor pin - pinBat = A4; //Battery reference voltage pin - pinDisplayReset = 48; // OLED reset pin - pinTachOut = 49; //Tacho output pin (Goes to ULN2803) - pinIdle1 = 2; //Single wire idle control - pinBoost = 4; - pinIdle2 = 4; //2 wire idle control (Note this is shared with boost!!!) - pinFuelPump = 37; //Fuel pump output (Goes to ULN2803) - pinStepperDir = 16; //Direction pin for DRV8825 driver - pinStepperStep = 17; //Step pin for DRV8825 driver - pinFan = 47; //Pin for the fan output (Goes to ULN2803) - pinLaunch = 12; //Can be overwritten below - pinFlex = 3; // Flex sensor (Must be external interrupt enabled) - break; - - case 10: - //Pin mappings for user turtanas PCB - pinInjector1 = 4; //Output pin injector 1 is on - pinInjector2 = 5; //Output pin injector 2 is on - pinInjector3 = 6; //Output pin injector 3 is on - pinInjector4 = 7; //Output pin injector 4 is on - pinInjector5 = 8; //Placeholder only - NOT USED - pinInjector6 = 9; //Placeholder only - NOT USED - pinInjector7 = 10; //Placeholder only - NOT USED - pinInjector8 = 11; //Placeholder only - NOT USED - pinCoil1 = 24; //Pin for coil 1 - pinCoil2 = 28; //Pin for coil 2 - pinCoil3 = 36; //Pin for coil 3 - pinCoil4 = 40; //Pin for coil 4 - pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now - pinTrigger = 18; //The CAS pin - pinTrigger2 = 19; //The Cam Sensor pin - pinTPS = A2;//TPS input pin - pinMAP = A3; //MAP sensor pin - pinMAP2 = A8; //MAP2 sensor pin - pinIAT = A0; //IAT sensor pin - pinCLT = A1; //CLS sensor pin - pinO2 = A4; //O2 Sensor pin - pinBat = A7; //Battery reference voltage pin - pinDisplayReset = 48; // OLED reset pin - pinSpareTemp1 = A6; - pinSpareTemp2 = A5; - pinTachOut = 41; //Tacho output pin transistori puuttuu 2n2222 tähän ja 1k 12v - pinFuelPump = 42; //Fuel pump output 2n2222 - pinFan = 47; //Pin for the fan output - pinTachOut = 49; //Tacho output pin - pinFlex = 2; // Flex sensor (Must be external interrupt enabled) - break; - - case 20: - //Pin mappings as per the Plazomat In/Out shields Rev 0.1 - pinInjector1 = 8; //Output pin injector 1 is on - pinInjector2 = 9; //Output pin injector 2 is on - pinInjector3 = 10; //Output pin injector 3 is on - pinInjector4 = 11; //Output pin injector 4 is on - pinInjector5 = 12; //Output pin injector 5 is on - pinCoil1 = 28; //Pin for coil 1 - pinCoil2 = 24; //Pin for coil 2 - pinCoil3 = 40; //Pin for coil 3 - pinCoil4 = 36; //Pin for coil 4 - pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now - pinSpareOut1 = 4; //Spare LSD Output 1(PWM) - pinSpareOut2 = 5; //Spare LSD Output 2(PWM) - pinSpareOut3 = 6; //Spare LSD Output 3(PWM) - pinSpareOut4 = 7; //Spare LSD Output 4(PWM) - pinSpareOut5 = 50; //Spare LSD Output 5(digital) - pinSpareOut6 = 52; //Spare LSD Output 6(digital) - pinTrigger = 20; //The CAS pin - pinTrigger2 = 21; //The Cam Sensor pin - pinSpareTemp2 = A15; //spare Analog input 2 - pinSpareTemp1 = A14; //spare Analog input 1 - pinO2 = A8; //O2 Sensor pin - pinBat = A4; //Battery reference voltage pin - pinMAP = A3; //MAP sensor pin - pinTPS = A2;//TPS input pin - pinCLT = A1; //CLS sensor pin - pinIAT = A0; //IAT sensor pin - pinFan = 47; //Pin for the fan output - pinFuelPump = 4; //Fuel pump output - pinTachOut = 49; //Tacho output pin - break; - - case 30: - //Pin mappings as per the dazv6 shield - pinInjector1 = 8; //Output pin injector 1 is on - pinInjector2 = 9; //Output pin injector 2 is on - pinInjector3 = 10; //Output pin injector 3 is on - pinInjector4 = 11; //Output pin injector 4 is on - pinInjector5 = 12; //Output pin injector 5 is on - pinCoil1 = 40; //Pin for coil 1 - pinCoil2 = 38; //Pin for coil 2 - pinCoil3 = 50; //Pin for coil 3 - pinCoil4 = 52; //Pin for coil 4 - pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now - pinTrigger = 19; //The CAS pin - pinTrigger2 = 18; //The Cam Sensor pin - pinTrigger3 = 17; // cam sensor 2 pin - pinTPS = A2;//TPS input pin - pinMAP = A3; //MAP sensor pin - pinIAT = A0; //IAT sensor pin - pinCLT = A1; //CLS sensor pin - pinO2 = A8; //O2 Sensor pin - pinO2_2 = A9; //O2 sensor pin (second sensor) - pinBat = A4; //Battery reference voltage pin - pinDisplayReset = 48; // OLED reset pin - pinTachOut = 49; //Tacho output pin - pinIdle1 = 5; //Single wire idle control - pinFuelPump = 45; //Fuel pump output - pinStepperDir = 20; //Direction pin for DRV8825 driver - pinStepperStep = 21; //Step pin for DRV8825 driver - pinSpareHOut1 = 4; // high current output spare1 - pinSpareHOut2 = 6; // high current output spare2 - pinBoost = 7; - pinSpareLOut1 = 43; //low current output spare1 - pinSpareLOut2 = 47; - pinSpareLOut3 = 49; - pinSpareLOut4 = 51; - pinSpareLOut5 = 53; - pinFan = 47; //Pin for the fan output - break; - - default: - //Pin mappings as per the v0.2 shield - pinInjector1 = 8; //Output pin injector 1 is on - pinInjector2 = 9; //Output pin injector 2 is on - pinInjector3 = 10; //Output pin injector 3 is on - pinInjector4 = 11; //Output pin injector 4 is on - pinInjector5 = 12; //Output pin injector 5 is on - pinCoil1 = 28; //Pin for coil 1 - pinCoil2 = 24; //Pin for coil 2 - pinCoil3 = 40; //Pin for coil 3 - pinCoil4 = 36; //Pin for coil 4 - pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now - pinTrigger = 20; //The CAS pin - pinTrigger2 = 21; //The Cam Sensor pin - pinTPS = A2; //TPS input pin - pinMAP = A3; //MAP sensor pin - pinIAT = A0; //IAT sensor pin - pinCLT = A1; //CLS sensor pin - pinO2 = A8; //O2 Sensor pin - pinBat = A4; //Battery reference voltage pin - pinStepperDir = 16; //Direction pin for DRV8825 driver - pinStepperStep = 17; //Step pin for DRV8825 driver - pinDisplayReset = 48; // OLED reset pin - pinFan = 47; //Pin for the fan output - pinFuelPump = 4; //Fuel pump output - pinTachOut = 49; //Tacho output pin - pinFlex = 3; // Flex sensor (Must be external interrupt enabled) - pinBoost = 5; - pinIdle1 = 6; - break; - } - - //Setup any devices that are using selectable pins - if ( (configPage3.launchPin != 0) && (configPage3.launchPin < BOARD_NR_GPIO_PINS) ) { pinLaunch = configPage3.launchPin; } - if ( (configPage2.ignBypassPin != 0) && (configPage2.ignBypassPin < BOARD_NR_GPIO_PINS) ) { pinIgnBypass = configPage2.ignBypassPin; } - if ( (configPage1.tachoPin != 0) && (configPage1.tachoPin < BOARD_NR_GPIO_PINS) ) { pinTachOut = configPage1.tachoPin; } - if ( (configPage2.fuelPumpPin != 0) && (configPage2.fuelPumpPin < BOARD_NR_GPIO_PINS) ) { pinFuelPump = configPage2.fuelPumpPin; } - if ( (configPage4.fanPin != 0) && (configPage4.fanPin < BOARD_NR_GPIO_PINS) ) { pinFan = configPage4.fanPin; } - if ( (configPage3.boostPin != 0) && (configPage3.boostPin < BOARD_NR_GPIO_PINS) ) { pinBoost = configPage3.boostPin; } - if ( (configPage3.vvtPin != 0) && (configPage3.vvtPin < BOARD_NR_GPIO_PINS) ) { pinVVT_1 = configPage3.vvtPin; } - if ( (configPage3.useExtBaro != 0) && (configPage3.baroPin < BOARD_NR_GPIO_PINS) ) { pinBaro = configPage3.baroPin + A0; } - - //Finally, set the relevant pin modes for outputs - pinMode(pinCoil1, OUTPUT); - pinMode(pinCoil2, OUTPUT); - pinMode(pinCoil3, OUTPUT); - pinMode(pinCoil4, OUTPUT); - pinMode(pinCoil5, OUTPUT); - pinMode(pinInjector1, OUTPUT); - pinMode(pinInjector2, OUTPUT); - pinMode(pinInjector3, OUTPUT); - pinMode(pinInjector4, OUTPUT); - pinMode(pinInjector5, OUTPUT); - pinMode(pinTachOut, OUTPUT); - pinMode(pinIdle1, OUTPUT); - pinMode(pinIdle2, OUTPUT); - pinMode(pinFuelPump, OUTPUT); - pinMode(pinIgnBypass, OUTPUT); - pinMode(pinFan, OUTPUT); - pinMode(pinStepperDir, OUTPUT); - pinMode(pinStepperStep, OUTPUT); - pinMode(pinStepperEnable, OUTPUT); - pinMode(pinBoost, OUTPUT); - pinMode(pinVVT_1, OUTPUT); - - inj1_pin_port = portOutputRegister(digitalPinToPort(pinInjector1)); - inj1_pin_mask = digitalPinToBitMask(pinInjector1); - inj2_pin_port = portOutputRegister(digitalPinToPort(pinInjector2)); - inj2_pin_mask = digitalPinToBitMask(pinInjector2); - inj3_pin_port = portOutputRegister(digitalPinToPort(pinInjector3)); - inj3_pin_mask = digitalPinToBitMask(pinInjector3); - inj4_pin_port = portOutputRegister(digitalPinToPort(pinInjector4)); - inj4_pin_mask = digitalPinToBitMask(pinInjector4); - inj5_pin_port = portOutputRegister(digitalPinToPort(pinInjector5)); - inj5_pin_mask = digitalPinToBitMask(pinInjector5); - - ign1_pin_port = portOutputRegister(digitalPinToPort(pinCoil1)); - ign1_pin_mask = digitalPinToBitMask(pinCoil1); - ign2_pin_port = portOutputRegister(digitalPinToPort(pinCoil2)); - ign2_pin_mask = digitalPinToBitMask(pinCoil2); - ign3_pin_port = portOutputRegister(digitalPinToPort(pinCoil3)); - ign3_pin_mask = digitalPinToBitMask(pinCoil3); - ign4_pin_port = portOutputRegister(digitalPinToPort(pinCoil4)); - ign4_pin_mask = digitalPinToBitMask(pinCoil4); - ign5_pin_port = portOutputRegister(digitalPinToPort(pinCoil5)); - ign5_pin_mask = digitalPinToBitMask(pinCoil5); - - tach_pin_port = portOutputRegister(digitalPinToPort(pinTachOut)); - tach_pin_mask = digitalPinToBitMask(pinTachOut); - pump_pin_port = portOutputRegister(digitalPinToPort(pinFuelPump)); - pump_pin_mask = digitalPinToBitMask(pinFuelPump); - - //And for inputs - //And for inputs - #if defined(CORE_STM32) - #ifndef ARDUINO_ARCH_STM32 //libmaple core aka STM32DUINO - pinMode(pinMAP, INPUT_ANALOG); - pinMode(pinO2, INPUT_ANALOG); - pinMode(pinO2_2, INPUT_ANALOG); - pinMode(pinTPS, INPUT_ANALOG); - pinMode(pinIAT, INPUT_ANALOG); - pinMode(pinCLT, INPUT_ANALOG); - pinMode(pinBat, INPUT_ANALOG); - pinMode(pinBaro, INPUT_ANALOG); - #else - pinMode(pinMAP, INPUT); - pinMode(pinO2, INPUT); - pinMode(pinO2_2, INPUT); - pinMode(pinTPS, INPUT); - pinMode(pinIAT, INPUT); - pinMode(pinCLT, INPUT); - pinMode(pinBat, INPUT); - pinMode(pinBaro, INPUT); - #endif - #endif - pinMode(pinTrigger, INPUT); - pinMode(pinTrigger2, INPUT); - pinMode(pinTrigger3, INPUT); - pinMode(pinFlex, INPUT_PULLUP); //Standard GM / Continental flex sensor requires pullup - if (configPage3.lnchPullRes == true) { - pinMode(pinLaunch, INPUT_PULLUP); - } - else { - pinMode(pinLaunch, INPUT); //If Launch Pull Resistor is not set make input float. - } - - //These must come after the above pinMode statements - triggerPri_pin_port = portInputRegister(digitalPinToPort(pinTrigger)); - triggerPri_pin_mask = digitalPinToBitMask(pinTrigger); - triggerSec_pin_port = portInputRegister(digitalPinToPort(pinTrigger2)); - triggerSec_pin_mask = digitalPinToBitMask(pinTrigger2); - - #if defined(CORE_STM32) - #else - //Set default values - digitalWrite(pinMAP, HIGH); - //digitalWrite(pinO2, LOW); - digitalWrite(pinTPS, LOW); - #endif -} - -void initialiseTriggers() -{ - byte triggerInterrupt = 0; // By default, use the first interrupt - byte triggerInterrupt2 = 1; - #if defined(CORE_AVR) - switch (pinTrigger) { - //Arduino Mega 2560 mapping - case 2: - triggerInterrupt = 0; break; - case 3: - triggerInterrupt = 1; break; - case 18: - triggerInterrupt = 5; break; - case 19: - triggerInterrupt = 4; break; - case 20: - triggerInterrupt = 3; break; - case 21: - triggerInterrupt = 2; break; - default: - triggerInterrupt = 0; break; //This should NEVER happen - } - #else - triggerInterrupt = pinTrigger; - #endif - - #if defined(CORE_AVR) - switch (pinTrigger2) { - //Arduino Mega 2560 mapping - case 2: - triggerInterrupt2 = 0; break; - case 3: - triggerInterrupt2 = 1; break; - case 18: - triggerInterrupt2 = 5; break; - case 19: - triggerInterrupt2 = 4; break; - case 20: - triggerInterrupt2 = 3; break; - case 21: - triggerInterrupt2 = 2; break; - default: - triggerInterrupt2 = 0; break; //This should NEVER happen - } - #else - triggerInterrupt2 = pinTrigger2; - #endif - pinMode(pinTrigger, INPUT); - pinMode(pinTrigger2, INPUT); - pinMode(pinTrigger3, INPUT); - //digitalWrite(pinTrigger, HIGH); - detachInterrupt(triggerInterrupt); - detachInterrupt(triggerInterrupt2); - - //Set the trigger function based on the decoder in the config - switch (configPage2.TrigPattern) - { - case 0: - //Missing tooth decoder - triggerSetup_missingTooth(); - trigger = triggerPri_missingTooth; - triggerSecondary = triggerSec_missingTooth; - getRPM = getRPM_missingTooth; - getCrankAngle = getCrankAngle_missingTooth; - triggerSetEndTeeth = triggerSetEndTeeth_missingTooth; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, RISING); } - else { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, FALLING); } - break; - - case 1: - // Basic distributor - triggerSetup_BasicDistributor(); - trigger = triggerPri_BasicDistributor; - getRPM = getRPM_BasicDistributor; - getCrankAngle = getCrankAngle_BasicDistributor; - triggerSetEndTeeth = triggerSetEndTeeth_BasicDistributor; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - break; - - case 2: - triggerSetup_DualWheel(); - trigger = triggerPri_DualWheel; - getRPM = getRPM_DualWheel; - getCrankAngle = getCrankAngle_DualWheel; - triggerSetEndTeeth = triggerSetEndTeeth_DualWheel; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, RISING); } - else { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); } - break; - - case 3: - triggerSetup_GM7X(); - trigger = triggerPri_GM7X; - getRPM = getRPM_GM7X; - getCrankAngle = getCrankAngle_GM7X; - triggerSetEndTeeth = triggerSetEndTeeth_GM7X; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - break; - - case 4: - triggerSetup_4G63(); - trigger = triggerPri_4G63; - getRPM = getRPM_4G63; - getCrankAngle = getCrankAngle_4G63; - triggerSetEndTeeth = triggerSetEndTeeth_4G63; - - //These may both need to change, not sure - if(configPage2.TrigEdge == 0) - { - attachInterrupt(triggerInterrupt, trigger, CHANGE); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - attachInterrupt(triggerInterrupt2, triggerSec_4G63, FALLING); //changed - } - else - { - attachInterrupt(triggerInterrupt, trigger, CHANGE); // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_4G63, FALLING); - } - break; - - case 5: - triggerSetup_24X(); - trigger = triggerPri_24X; - getRPM = getRPM_24X; - getCrankAngle = getCrankAngle_24X; - triggerSetEndTeeth = triggerSetEndTeeth_24X; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_24X, CHANGE); - break; - - case 6: - triggerSetup_Jeep2000(); - trigger = triggerPri_Jeep2000; - getRPM = getRPM_Jeep2000; - getCrankAngle = getCrankAngle_Jeep2000; - triggerSetEndTeeth = triggerSetEndTeeth_Jeep2000; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_Jeep2000, CHANGE); - break; - - case 7: - triggerSetup_Audi135(); - trigger = triggerPri_Audi135; - getRPM = getRPM_Audi135; - getCrankAngle = getCrankAngle_Audi135; - triggerSetEndTeeth = triggerSetEndTeeth_Audi135; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - attachInterrupt(triggerInterrupt2, triggerSec_Audi135, RISING); - break; - - case 8: - triggerSetup_HondaD17(); - trigger = triggerPri_HondaD17; - getRPM = getRPM_HondaD17; - getCrankAngle = getCrankAngle_HondaD17; - triggerSetEndTeeth = triggerSetEndTeeth_HondaD17; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_HondaD17, CHANGE); - break; - - case 9: - triggerSetup_Miata9905(); - trigger = triggerPri_Miata9905; - getRPM = getRPM_Miata9905; - getCrankAngle = getCrankAngle_Miata9905; - triggerSetEndTeeth = triggerSetEndTeeth_Miata9905; - - //These may both need to change, not sure - if(configPage2.TrigEdge == 0) - { - attachInterrupt(triggerInterrupt, trigger, RISING); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, FALLING); //changed - } - else - { - attachInterrupt(triggerInterrupt, trigger, FALLING); // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, RISING); - } - break; - - case 10: - triggerSetup_MazdaAU(); - trigger = triggerPri_MazdaAU; - getRPM = getRPM_MazdaAU; - getCrankAngle = getCrankAngle_MazdaAU; - triggerSetEndTeeth = triggerSetEndTeeth_MazdaAU; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_MazdaAU, FALLING); - break; - - case 11: - triggerSetup_non360(); - trigger = triggerPri_DualWheel; //Is identical to the dual wheel decoder, so that is used. Same goes for the secondary below - getRPM = getRPM_non360; - getCrankAngle = getCrankAngle_non360; - triggerSetEndTeeth = triggerSetEndTeeth_Non360; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); //Note the use of the Dual Wheel trigger function here. No point in having the same code in twice. - break; - - case 12: - triggerSetup_Nissan360(); - trigger = triggerPri_Nissan360; - getRPM = getRPM_Nissan360; - getCrankAngle = getCrankAngle_Nissan360; - triggerSetEndTeeth = triggerSetEndTeeth_Nissan360; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - attachInterrupt(triggerInterrupt2, triggerSec_Nissan360, CHANGE); - break; - - case 13: - triggerSetup_Subaru67(); - trigger = triggerPri_Subaru67; - getRPM = getRPM_Subaru67; - getCrankAngle = getCrankAngle_Subaru67; - triggerSetEndTeeth = triggerSetEndTeeth_Subaru67; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - attachInterrupt(triggerInterrupt2, triggerSec_Subaru67, FALLING); - break; - - case 14: - triggerSetup_Daihatsu(); - trigger = triggerPri_Daihatsu; - getRPM = getRPM_Daihatsu; - getCrankAngle = getCrankAngle_Daihatsu; - triggerSetEndTeeth = triggerSetEndTeeth_Daihatsu; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - //No secondary input required for this pattern - break; - - case 15: - triggerSetup_Harley(); - trigger = triggerPri_Harley; - //triggerSecondary = triggerSec_Harley; - getRPM = getRPM_Harley; - getCrankAngle = getCrankAngle_Harley; - triggerSetEndTeeth = triggerSetEndTeeth_Harley; - attachInterrupt(triggerInterrupt, trigger, RISING); - // attachInterrupt(triggerInterrupt2, triggerSec_Harley, FALLING); - break; - - default: - trigger = triggerPri_missingTooth; - getRPM = getRPM_missingTooth; - getCrankAngle = getCrankAngle_missingTooth; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - break; - } -} -/* - This function retuns a pulsewidth time (in us) using a either Alpha-N or Speed Density algorithms, given the following: - REQ_FUEL - VE: Lookup from the main MAP vs RPM fuel table - MAP: In KPa, read from the sensor - GammaE: Sum of Enrichment factors (Cold start, acceleration). This is a multiplication factor (Eg to add 10%, this should be 110) - injDT: Injector dead time. The time the injector take to open minus the time it takes to close (Both in uS) - TPS: Throttle position (0% to 100%) - - This function is called by PW_SD and PW_AN for speed0density and pure Alpha-N calculations respectively. -*/ -unsigned int PW(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen) -{ - //Standard float version of the calculation - //return (REQ_FUEL * (float)(VE/100.0) * (float)(MAP/100.0) * (float)(TPS/100.0) * (float)(corrections/100.0) + injOpen); - //Note: The MAP and TPS portions are currently disabled, we use VE and corrections only - uint16_t iVE, iCorrections; - uint16_t iMAP = 100; - uint16_t iAFR = 147; - - //100% float free version, does sacrifice a little bit of accuracy, but not much. - iVE = ((unsigned int)VE << 7) / 100; - if ( configPage1.multiplyMAP == true ) { - iMAP = ((unsigned int)MAP << 7) / currentStatus.baro; //Include multiply MAP (vs baro) if enabled - } - if ( (configPage1.includeAFR == true) && (configPage3.egoType == 2)) { - iAFR = ((unsigned int)currentStatus.O2 << 7) / currentStatus.afrTarget; //Include AFR (vs target) if enabled - } - iCorrections = (corrections << 7) / 100; - - - unsigned long intermediate = ((long)REQ_FUEL * (long)iVE) >> 7; //Need to use an intermediate value to avoid overflowing the long - if ( configPage1.multiplyMAP == true ) { - intermediate = (intermediate * (unsigned long)iMAP) >> 7; - } - if ( (configPage1.includeAFR == true) && (configPage3.egoType == 2) ) { - intermediate = (intermediate * (unsigned long)iAFR) >> 7; //EGO type must be set to wideband for this to be used - } - intermediate = (intermediate * (unsigned long)iCorrections) >> 7; - if (intermediate != 0) - { - //If intermeditate is not 0, we need to add the opening time (0 typically indicates that one of the full fuel cuts is active) - intermediate += injOpen; //Add the injector opening time - if ( intermediate > 65535) - { - intermediate = 65535; //Make sure this won't overflow when we convert to uInt. This means the maximum pulsewidth possible is 65.535mS - } - } - return (unsigned int)(intermediate); - -} - -//Convenience functions for Speed Density and Alpha-N -unsigned int PW_SD(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen) -{ - return PW(REQ_FUEL, VE, MAP, corrections, injOpen); - //return PW(REQ_FUEL, VE, 100, corrections, injOpen); -} - -unsigned int PW_AN(int REQ_FUEL, byte VE, byte TPS, int corrections, int injOpen) -{ - return PW(REQ_FUEL, VE, currentStatus.MAP, corrections, injOpen); +/* + Speeduino - Simple engine management for the Arduino Mega 2560 platform + Copyright (C) Josh Stewart + A full copy of the license may be found in the projects root directory +*/ + + +/* + Returns how much free dynamic memory exists (between heap and stack) + This function is one big MISRA violation. MISRA advisories forbid directly poking at memory addresses, however there is no other way of determining heap size on embedded systems. +*/ +#include "utils.h" + +uint16_t freeRam () +{ +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + extern int __heap_start, *__brkval; + uint16_t v; + + return (uint16_t) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); + +#elif defined(CORE_TEENSY) + uint32_t stackTop; + uint32_t heapTop; + + // current position of the stack. + stackTop = (uint32_t) &stackTop; + + // current position of heap. + void* hTop = malloc(1); + heapTop = (uint32_t) hTop; + free(hTop); + + // The difference is the free, available ram. + return (uint16_t)stackTop - heapTop; +#elif defined(CORE_STM32) + char top = 't'; + return &top - reinterpret_cast(sbrk(0)); + +#endif +} + +void setPinMapping(byte boardID) +{ + switch (boardID) + { + case 0: + //Pin mappings as per the v0.1 shield + pinInjector1 = 8; //Output pin injector 1 is on + pinInjector2 = 9; //Output pin injector 2 is on + pinInjector3 = 11; //Output pin injector 3 is on + pinInjector4 = 10; //Output pin injector 4 is on + pinInjector5 = 12; //Output pin injector 5 is on + pinCoil1 = 6; //Pin for coil 1 + pinCoil2 = 7; //Pin for coil 2 + pinCoil3 = 12; //Pin for coil 3 + pinCoil4 = 13; //Pin for coil 4 + pinCoil5 = 14; //Pin for coil 5 + pinTrigger = 2; //The CAS pin + pinTrigger2 = 3; //The CAS pin + pinTPS = A0; //TPS input pin + pinMAP = A1; //MAP sensor pin + pinIAT = A2; //IAT sensor pin + pinCLT = A3; //CLS sensor pin + pinO2 = A4; //O2 Sensor pin + pinIdle1 = 46; //Single wire idle control + pinIdle2 = 47; //2 wire idle control + pinStepperDir = 16; //Direction pin for DRV8825 driver + pinStepperStep = 17; //Step pin for DRV8825 driver + pinFan = 47; //Pin for the fan output + pinFuelPump = 4; //Fuel pump output + pinTachOut = 49; //Tacho output pin + pinFlex = 19; // Flex sensor (Must be external interrupt enabled) + break; + case 1: + //Pin mappings as per the v0.2 shield + pinInjector1 = 8; //Output pin injector 1 is on + pinInjector2 = 9; //Output pin injector 2 is on + pinInjector3 = 10; //Output pin injector 3 is on + pinInjector4 = 11; //Output pin injector 4 is on + pinInjector5 = 12; //Output pin injector 5 is on + pinCoil1 = 28; //Pin for coil 1 + pinCoil2 = 24; //Pin for coil 2 + pinCoil3 = 40; //Pin for coil 3 + pinCoil4 = 36; //Pin for coil 4 + pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now + pinTrigger = 20; //The CAS pin + pinTrigger2 = 21; //The Cam Sensor pin + pinTPS = A2; //TPS input pin + pinMAP = A3; //MAP sensor pin + pinIAT = A0; //IAT sensor pin + pinCLT = A1; //CLS sensor pin + pinO2 = A8; //O2 Sensor pin + pinBat = A4; //Battery reference voltage pin + pinDisplayReset = 48; // OLED reset pin + pinTachOut = 49; //Tacho output pin + pinIdle1 = 30; //Single wire idle control + pinIdle2 = 31; //2 wire idle control + pinStepperDir = 16; //Direction pin for DRV8825 driver + pinStepperStep = 17; //Step pin for DRV8825 driver + pinFan = 47; //Pin for the fan output + pinFuelPump = 4; //Fuel pump output + pinFlex = 2; // Flex sensor (Must be external interrupt enabled) + break; + case 2: + //Pin mappings as per the v0.3 shield + pinInjector1 = 8; //Output pin injector 1 is on + pinInjector2 = 9; //Output pin injector 2 is on + pinInjector3 = 10; //Output pin injector 3 is on + pinInjector4 = 11; //Output pin injector 4 is on + pinInjector5 = 12; //Output pin injector 5 is on + pinCoil1 = 28; //Pin for coil 1 + pinCoil2 = 24; //Pin for coil 2 + pinCoil3 = 40; //Pin for coil 3 + pinCoil4 = 36; //Pin for coil 4 + pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now + pinTrigger = 19; //The CAS pin + pinTrigger2 = 18; //The Cam Sensor pin + pinTPS = A2;//TPS input pin + pinMAP = A3; //MAP sensor pin + pinIAT = A0; //IAT sensor pin + pinCLT = A1; //CLS sensor pin + pinO2 = A8; //O2 Sensor pin + pinBat = A4; //Battery reference voltage pin + pinDisplayReset = 48; // OLED reset pin + pinTachOut = 49; //Tacho output pin + pinIdle1 = 5; //Single wire idle control + pinIdle2 = 53; //2 wire idle control + pinBoost = 7; //Boost control + pinVVT_1 = 6; //Default VVT output + pinFuelPump = 4; //Fuel pump output + pinStepperDir = 16; //Direction pin for DRV8825 driver + pinStepperStep = 17; //Step pin for DRV8825 driver + pinStepperEnable = 26; //Enable pin for DRV8825 + pinFan = A13; //Pin for the fan output + pinLaunch = 12; //Can be overwritten below + pinFlex = 2; // Flex sensor (Must be external interrupt enabled) + + #if defined(CORE_TEENSY) + pinTrigger = 23; + pinStepperDir = 33; + pinStepperStep = 34; + pinCoil1 = 31; + pinTachOut = 28; + pinFan = 27; + pinCoil4 = 21; + pinCoil3 = 30; + pinO2 = A22; + #endif + break; + + case 3: + //Pin mappings as per the v0.4 shield + pinInjector1 = 8; //Output pin injector 1 is on + pinInjector2 = 9; //Output pin injector 2 is on + pinInjector3 = 10; //Output pin injector 3 is on + pinInjector4 = 11; //Output pin injector 4 is on + pinInjector5 = 12; //Output pin injector 5 is on + pinCoil1 = 40; //Pin for coil 1 + pinCoil2 = 38; //Pin for coil 2 + pinCoil3 = 52; //Pin for coil 3 + pinCoil4 = 50; //Pin for coil 4 + pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now + pinTrigger = 19; //The CAS pin + pinTrigger2 = 18; //The Cam Sensor pin + pinTPS = A2;//TPS input pin + pinMAP = A3; //MAP sensor pin + pinIAT = A0; //IAT sensor pin + pinCLT = A1; //CLS sensor pin + pinO2 = A8; //O2 Sensor pin + pinBat = A4; //Battery reference voltage pin + pinDisplayReset = 48; // OLED reset pin + pinTachOut = 49; //Tacho output pin (Goes to ULN2803) + pinIdle1 = 5; //Single wire idle control + pinIdle2 = 6; //2 wire idle control + pinBoost = 7; //Boost control + pinVVT_1 = 4; //Default VVT output + pinFuelPump = 45; //Fuel pump output (Goes to ULN2803) + pinStepperDir = 16; //Direction pin for DRV8825 driver + pinStepperStep = 17; //Step pin for DRV8825 driver + pinStepperEnable = 24; //Enable pin for DRV8825 + pinFan = 47; //Pin for the fan output (Goes to ULN2803) + pinLaunch = 12; //Can be overwritten below + pinFlex = 2; // Flex sensor (Must be external interrupt enabled) + + #if defined(CORE_TEENSY) + pinTrigger = 23; + pinTrigger2 = 35; + pinStepperDir = 33; + pinStepperStep = 34; + pinCoil1 = 31; + pinTachOut = 28; + pinFan = 27; + pinCoil4 = 29; + pinCoil3 = 30; + pinO2 = A22; + #elif defined(STM32F4) + pinInjector1 = PE7; //Output pin injector 1 is on + pinInjector2 = PE8; //Output pin injector 2 is on + pinInjector3 = PE9; //Output pin injector 3 is on + pinInjector4 = PE10; //Output pin injector 4 is on + pinInjector5 = PE11; //Output pin injector 5 is on + pinCoil1 = PB10; //Pin for coil 1 + pinCoil2 = PB11; //Pin for coil 2 + pinCoil3 = PB12; //Pin for coil 3 + pinCoil4 = PB13; //Pin for coil 4 + pinCoil5 = PB14; //Pin for coil 5 + pinTPS = A0; //TPS input pin + pinMAP = A1; //MAP sensor pin + pinIAT = A2; //IAT sensor pin + pinCLT = A3; //CLS sensor pin + pinO2 = A4; //O2 Sensor pin + pinBat = A5; //Battery reference voltage pin + pinBaro = A6; + pinStepperDir = PD8; //Direction pin for DRV8825 driver + pinStepperStep = PB15; //Step pin for DRV8825 driver + pinStepperEnable = PD9; //Enable pin for DRV8825 + pinDisplayReset = PE1; // OLED reset pin + pinFan = PE2; //Pin for the fan output + pinFuelPump = PA6; //Fuel pump output + pinTachOut = PA7; //Tacho output pin + //external interrupt enabled pins + pinFlex = PC4; // Flex sensor (Must be external interrupt enabled) + pinTrigger = PC5; //The CAS pin + pinTrigger2 = PC6; //The Cam Sensor pin + pinBoost = PE0; //Boost control + pinVVT_1 = PE1; //Default VVT output + #elif defined(CORE_STM32) + //http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/0.0.12/hardware/maple-mini.html#master-pin-map + //pins 23, 24 and 33 couldn't be used + pinInjector1 = 15; //Output pin injector 1 is on + pinInjector2 = 16; //Output pin injector 2 is on + pinInjector3 = 17; //Output pin injector 3 is on + pinInjector4 = 18; //Output pin injector 4 is on + pinCoil1 = 19; //Pin for coil 1 + pinCoil2 = 20; //Pin for coil 2 + pinCoil3 = 21; //Pin for coil 3 + pinCoil4 = 26; //Pin for coil 4 + pinCoil5 = 27; //Pin for coil 5 + pinTPS = A0; //TPS input pin + pinMAP = A1; //MAP sensor pin + pinIAT = A2; //IAT sensor pin + pinCLT = A3; //CLS sensor pin + pinO2 = A4; //O2 Sensor pin + pinBat = A5; //Battery reference voltage pin + pinStepperDir = 12; //Direction pin for DRV8825 driver + pinStepperStep = 13; //Step pin for DRV8825 driver + pinStepperEnable = 14; //Enable pin for DRV8825 + pinDisplayReset = 2; // OLED reset pin + pinFan = 1; //Pin for the fan output + pinFuelPump = 0; //Fuel pump output + pinTachOut = 31; //Tacho output pin + //external interrupt enabled pins + pinFlex = 32; // Flex sensor (Must be external interrupt enabled) + pinTrigger = 25; //The CAS pin + pinTrigger2 = 22; //The Cam Sensor pin + pinBaro = pinMAP; + pinBoost = 1; //Boost control + pinVVT_1 = 0; //Default VVT output + #endif + break; + + case 9: + //Pin mappings as per the MX5 PNP shield + pinInjector1 = 11; //Output pin injector 1 is on + pinInjector2 = 10; //Output pin injector 2 is on + pinInjector3 = 8; //Output pin injector 3 is on + pinInjector4 = 9; //Output pin injector 4 is on + pinInjector5 = 14; //Output pin injector 5 is on + pinCoil1 = 39; //Pin for coil 1 + pinCoil2 = 41; //Pin for coil 2 + pinCoil3 = 35; //Pin for coil 3 + pinCoil4 = 37; //Pin for coil 4 + pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now + pinTrigger = 19; //The CAS pin + pinTrigger2 = 18; //The Cam Sensor pin + pinTPS = A2;//TPS input pin + pinMAP = A5; //MAP sensor pin + pinIAT = A0; //IAT sensor pin + pinCLT = A1; //CLS sensor pin + pinO2 = A3; //O2 Sensor pin + pinBat = A4; //Battery reference voltage pin + pinDisplayReset = 48; // OLED reset pin + pinTachOut = 49; //Tacho output pin (Goes to ULN2803) + pinIdle1 = 2; //Single wire idle control + pinBoost = 4; + pinIdle2 = 4; //2 wire idle control (Note this is shared with boost!!!) + pinFuelPump = 37; //Fuel pump output (Goes to ULN2803) + pinStepperDir = 16; //Direction pin for DRV8825 driver + pinStepperStep = 17; //Step pin for DRV8825 driver + pinFan = 47; //Pin for the fan output (Goes to ULN2803) + pinLaunch = 12; //Can be overwritten below + pinFlex = 3; // Flex sensor (Must be external interrupt enabled) + break; + + case 10: + //Pin mappings for user turtanas PCB + pinInjector1 = 4; //Output pin injector 1 is on + pinInjector2 = 5; //Output pin injector 2 is on + pinInjector3 = 6; //Output pin injector 3 is on + pinInjector4 = 7; //Output pin injector 4 is on + pinInjector5 = 8; //Placeholder only - NOT USED + pinInjector6 = 9; //Placeholder only - NOT USED + pinInjector7 = 10; //Placeholder only - NOT USED + pinInjector8 = 11; //Placeholder only - NOT USED + pinCoil1 = 24; //Pin for coil 1 + pinCoil2 = 28; //Pin for coil 2 + pinCoil3 = 36; //Pin for coil 3 + pinCoil4 = 40; //Pin for coil 4 + pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now + pinTrigger = 18; //The CAS pin + pinTrigger2 = 19; //The Cam Sensor pin + pinTPS = A2;//TPS input pin + pinMAP = A3; //MAP sensor pin + pinMAP2 = A8; //MAP2 sensor pin + pinIAT = A0; //IAT sensor pin + pinCLT = A1; //CLS sensor pin + pinO2 = A4; //O2 Sensor pin + pinBat = A7; //Battery reference voltage pin + pinDisplayReset = 48; // OLED reset pin + pinSpareTemp1 = A6; + pinSpareTemp2 = A5; + pinTachOut = 41; //Tacho output pin transistori puuttuu 2n2222 tähän ja 1k 12v + pinFuelPump = 42; //Fuel pump output 2n2222 + pinFan = 47; //Pin for the fan output + pinTachOut = 49; //Tacho output pin + pinFlex = 2; // Flex sensor (Must be external interrupt enabled) + break; + + case 20: + //Pin mappings as per the Plazomat In/Out shields Rev 0.1 + pinInjector1 = 8; //Output pin injector 1 is on + pinInjector2 = 9; //Output pin injector 2 is on + pinInjector3 = 10; //Output pin injector 3 is on + pinInjector4 = 11; //Output pin injector 4 is on + pinInjector5 = 12; //Output pin injector 5 is on + pinCoil1 = 28; //Pin for coil 1 + pinCoil2 = 24; //Pin for coil 2 + pinCoil3 = 40; //Pin for coil 3 + pinCoil4 = 36; //Pin for coil 4 + pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now + pinSpareOut1 = 4; //Spare LSD Output 1(PWM) + pinSpareOut2 = 5; //Spare LSD Output 2(PWM) + pinSpareOut3 = 6; //Spare LSD Output 3(PWM) + pinSpareOut4 = 7; //Spare LSD Output 4(PWM) + pinSpareOut5 = 50; //Spare LSD Output 5(digital) + pinSpareOut6 = 52; //Spare LSD Output 6(digital) + pinTrigger = 20; //The CAS pin + pinTrigger2 = 21; //The Cam Sensor pin + pinSpareTemp2 = A15; //spare Analog input 2 + pinSpareTemp1 = A14; //spare Analog input 1 + pinO2 = A8; //O2 Sensor pin + pinBat = A4; //Battery reference voltage pin + pinMAP = A3; //MAP sensor pin + pinTPS = A2;//TPS input pin + pinCLT = A1; //CLS sensor pin + pinIAT = A0; //IAT sensor pin + pinFan = 47; //Pin for the fan output + pinFuelPump = 4; //Fuel pump output + pinTachOut = 49; //Tacho output pin + break; + + case 30: + //Pin mappings as per the dazv6 shield + pinInjector1 = 8; //Output pin injector 1 is on + pinInjector2 = 9; //Output pin injector 2 is on + pinInjector3 = 10; //Output pin injector 3 is on + pinInjector4 = 11; //Output pin injector 4 is on + pinInjector5 = 12; //Output pin injector 5 is on + pinCoil1 = 40; //Pin for coil 1 + pinCoil2 = 38; //Pin for coil 2 + pinCoil3 = 50; //Pin for coil 3 + pinCoil4 = 52; //Pin for coil 4 + pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now + pinTrigger = 19; //The CAS pin + pinTrigger2 = 18; //The Cam Sensor pin + pinTrigger3 = 17; // cam sensor 2 pin + pinTPS = A2;//TPS input pin + pinMAP = A3; //MAP sensor pin + pinIAT = A0; //IAT sensor pin + pinCLT = A1; //CLS sensor pin + pinO2 = A8; //O2 Sensor pin + pinO2_2 = A9; //O2 sensor pin (second sensor) + pinBat = A4; //Battery reference voltage pin + pinDisplayReset = 48; // OLED reset pin + pinTachOut = 49; //Tacho output pin + pinIdle1 = 5; //Single wire idle control + pinFuelPump = 45; //Fuel pump output + pinStepperDir = 20; //Direction pin for DRV8825 driver + pinStepperStep = 21; //Step pin for DRV8825 driver + pinSpareHOut1 = 4; // high current output spare1 + pinSpareHOut2 = 6; // high current output spare2 + pinBoost = 7; + pinSpareLOut1 = 43; //low current output spare1 + pinSpareLOut2 = 47; + pinSpareLOut3 = 49; + pinSpareLOut4 = 51; + pinSpareLOut5 = 53; + pinFan = 47; //Pin for the fan output + break; + + default: + //Pin mappings as per the v0.2 shield + pinInjector1 = 8; //Output pin injector 1 is on + pinInjector2 = 9; //Output pin injector 2 is on + pinInjector3 = 10; //Output pin injector 3 is on + pinInjector4 = 11; //Output pin injector 4 is on + pinInjector5 = 12; //Output pin injector 5 is on + pinCoil1 = 28; //Pin for coil 1 + pinCoil2 = 24; //Pin for coil 2 + pinCoil3 = 40; //Pin for coil 3 + pinCoil4 = 36; //Pin for coil 4 + pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now + pinTrigger = 20; //The CAS pin + pinTrigger2 = 21; //The Cam Sensor pin + pinTPS = A2; //TPS input pin + pinMAP = A3; //MAP sensor pin + pinIAT = A0; //IAT sensor pin + pinCLT = A1; //CLS sensor pin + pinO2 = A8; //O2 Sensor pin + pinBat = A4; //Battery reference voltage pin + pinStepperDir = 16; //Direction pin for DRV8825 driver + pinStepperStep = 17; //Step pin for DRV8825 driver + pinDisplayReset = 48; // OLED reset pin + pinFan = 47; //Pin for the fan output + pinFuelPump = 4; //Fuel pump output + pinTachOut = 49; //Tacho output pin + pinFlex = 3; // Flex sensor (Must be external interrupt enabled) + pinBoost = 5; + pinIdle1 = 6; + break; + } + + //Setup any devices that are using selectable pins + if ( (configPage3.launchPin != 0) && (configPage3.launchPin < BOARD_NR_GPIO_PINS) ) { pinLaunch = configPage3.launchPin; } + if ( (configPage2.ignBypassPin != 0) && (configPage2.ignBypassPin < BOARD_NR_GPIO_PINS) ) { pinIgnBypass = configPage2.ignBypassPin; } + if ( (configPage1.tachoPin != 0) && (configPage1.tachoPin < BOARD_NR_GPIO_PINS) ) { pinTachOut = configPage1.tachoPin; } + if ( (configPage2.fuelPumpPin != 0) && (configPage2.fuelPumpPin < BOARD_NR_GPIO_PINS) ) { pinFuelPump = configPage2.fuelPumpPin; } + if ( (configPage4.fanPin != 0) && (configPage4.fanPin < BOARD_NR_GPIO_PINS) ) { pinFan = configPage4.fanPin; } + if ( (configPage3.boostPin != 0) && (configPage3.boostPin < BOARD_NR_GPIO_PINS) ) { pinBoost = configPage3.boostPin; } + if ( (configPage3.vvtPin != 0) && (configPage3.vvtPin < BOARD_NR_GPIO_PINS) ) { pinVVT_1 = configPage3.vvtPin; } + if ( (configPage3.useExtBaro != 0) && (configPage3.baroPin < BOARD_NR_GPIO_PINS) ) { pinBaro = configPage3.baroPin + A0; } + + //Finally, set the relevant pin modes for outputs + pinMode(pinCoil1, OUTPUT); + pinMode(pinCoil2, OUTPUT); + pinMode(pinCoil3, OUTPUT); + pinMode(pinCoil4, OUTPUT); + pinMode(pinCoil5, OUTPUT); + pinMode(pinInjector1, OUTPUT); + pinMode(pinInjector2, OUTPUT); + pinMode(pinInjector3, OUTPUT); + pinMode(pinInjector4, OUTPUT); + pinMode(pinInjector5, OUTPUT); + pinMode(pinTachOut, OUTPUT); + pinMode(pinIdle1, OUTPUT); + pinMode(pinIdle2, OUTPUT); + pinMode(pinFuelPump, OUTPUT); + pinMode(pinIgnBypass, OUTPUT); + pinMode(pinFan, OUTPUT); + pinMode(pinStepperDir, OUTPUT); + pinMode(pinStepperStep, OUTPUT); + pinMode(pinStepperEnable, OUTPUT); + pinMode(pinBoost, OUTPUT); + pinMode(pinVVT_1, OUTPUT); + + inj1_pin_port = portOutputRegister(digitalPinToPort(pinInjector1)); + inj1_pin_mask = digitalPinToBitMask(pinInjector1); + inj2_pin_port = portOutputRegister(digitalPinToPort(pinInjector2)); + inj2_pin_mask = digitalPinToBitMask(pinInjector2); + inj3_pin_port = portOutputRegister(digitalPinToPort(pinInjector3)); + inj3_pin_mask = digitalPinToBitMask(pinInjector3); + inj4_pin_port = portOutputRegister(digitalPinToPort(pinInjector4)); + inj4_pin_mask = digitalPinToBitMask(pinInjector4); + inj5_pin_port = portOutputRegister(digitalPinToPort(pinInjector5)); + inj5_pin_mask = digitalPinToBitMask(pinInjector5); + + ign1_pin_port = portOutputRegister(digitalPinToPort(pinCoil1)); + ign1_pin_mask = digitalPinToBitMask(pinCoil1); + ign2_pin_port = portOutputRegister(digitalPinToPort(pinCoil2)); + ign2_pin_mask = digitalPinToBitMask(pinCoil2); + ign3_pin_port = portOutputRegister(digitalPinToPort(pinCoil3)); + ign3_pin_mask = digitalPinToBitMask(pinCoil3); + ign4_pin_port = portOutputRegister(digitalPinToPort(pinCoil4)); + ign4_pin_mask = digitalPinToBitMask(pinCoil4); + ign5_pin_port = portOutputRegister(digitalPinToPort(pinCoil5)); + ign5_pin_mask = digitalPinToBitMask(pinCoil5); + + tach_pin_port = portOutputRegister(digitalPinToPort(pinTachOut)); + tach_pin_mask = digitalPinToBitMask(pinTachOut); + pump_pin_port = portOutputRegister(digitalPinToPort(pinFuelPump)); + pump_pin_mask = digitalPinToBitMask(pinFuelPump); + + //And for inputs + //And for inputs + #if defined(CORE_STM32) + #ifndef ARDUINO_ARCH_STM32 //libmaple core aka STM32DUINO + pinMode(pinMAP, INPUT_ANALOG); + pinMode(pinO2, INPUT_ANALOG); + pinMode(pinO2_2, INPUT_ANALOG); + pinMode(pinTPS, INPUT_ANALOG); + pinMode(pinIAT, INPUT_ANALOG); + pinMode(pinCLT, INPUT_ANALOG); + pinMode(pinBat, INPUT_ANALOG); + pinMode(pinBaro, INPUT_ANALOG); + #else + pinMode(pinMAP, INPUT); + pinMode(pinO2, INPUT); + pinMode(pinO2_2, INPUT); + pinMode(pinTPS, INPUT); + pinMode(pinIAT, INPUT); + pinMode(pinCLT, INPUT); + pinMode(pinBat, INPUT); + pinMode(pinBaro, INPUT); + #endif + #endif + pinMode(pinTrigger, INPUT); + pinMode(pinTrigger2, INPUT); + pinMode(pinTrigger3, INPUT); + pinMode(pinFlex, INPUT_PULLUP); //Standard GM / Continental flex sensor requires pullup + if (configPage3.lnchPullRes == true) { + pinMode(pinLaunch, INPUT_PULLUP); + } + else { + pinMode(pinLaunch, INPUT); //If Launch Pull Resistor is not set make input float. + } + + //These must come after the above pinMode statements + triggerPri_pin_port = portInputRegister(digitalPinToPort(pinTrigger)); + triggerPri_pin_mask = digitalPinToBitMask(pinTrigger); + triggerSec_pin_port = portInputRegister(digitalPinToPort(pinTrigger2)); + triggerSec_pin_mask = digitalPinToBitMask(pinTrigger2); + + #if defined(CORE_STM32) + #else + //Set default values + digitalWrite(pinMAP, HIGH); + //digitalWrite(pinO2, LOW); + digitalWrite(pinTPS, LOW); + #endif +} + +void initialiseTriggers() +{ + byte triggerInterrupt = 0; // By default, use the first interrupt + byte triggerInterrupt2 = 1; + #if defined(CORE_AVR) + switch (pinTrigger) { + //Arduino Mega 2560 mapping + case 2: + triggerInterrupt = 0; break; + case 3: + triggerInterrupt = 1; break; + case 18: + triggerInterrupt = 5; break; + case 19: + triggerInterrupt = 4; break; + case 20: + triggerInterrupt = 3; break; + case 21: + triggerInterrupt = 2; break; + default: + triggerInterrupt = 0; break; //This should NEVER happen + } + #else + triggerInterrupt = pinTrigger; + #endif + + #if defined(CORE_AVR) + switch (pinTrigger2) { + //Arduino Mega 2560 mapping + case 2: + triggerInterrupt2 = 0; break; + case 3: + triggerInterrupt2 = 1; break; + case 18: + triggerInterrupt2 = 5; break; + case 19: + triggerInterrupt2 = 4; break; + case 20: + triggerInterrupt2 = 3; break; + case 21: + triggerInterrupt2 = 2; break; + default: + triggerInterrupt2 = 0; break; //This should NEVER happen + } + #else + triggerInterrupt2 = pinTrigger2; + #endif + pinMode(pinTrigger, INPUT); + pinMode(pinTrigger2, INPUT); + pinMode(pinTrigger3, INPUT); + //digitalWrite(pinTrigger, HIGH); + detachInterrupt(triggerInterrupt); + detachInterrupt(triggerInterrupt2); + + //Set the trigger function based on the decoder in the config + switch (configPage2.TrigPattern) + { + case 0: + //Missing tooth decoder + triggerSetup_missingTooth(); + trigger = triggerPri_missingTooth; + triggerSecondary = triggerSec_missingTooth; + getRPM = getRPM_missingTooth; + getCrankAngle = getCrankAngle_missingTooth; + triggerSetEndTeeth = triggerSetEndTeeth_missingTooth; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, RISING); } + else { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, FALLING); } + break; + + case 1: + // Basic distributor + triggerSetup_BasicDistributor(); + trigger = triggerPri_BasicDistributor; + getRPM = getRPM_BasicDistributor; + getCrankAngle = getCrankAngle_BasicDistributor; + triggerSetEndTeeth = triggerSetEndTeeth_BasicDistributor; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + break; + + case 2: + triggerSetup_DualWheel(); + trigger = triggerPri_DualWheel; + getRPM = getRPM_DualWheel; + getCrankAngle = getCrankAngle_DualWheel; + triggerSetEndTeeth = triggerSetEndTeeth_DualWheel; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, RISING); } + else { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); } + break; + + case 3: + triggerSetup_GM7X(); + trigger = triggerPri_GM7X; + getRPM = getRPM_GM7X; + getCrankAngle = getCrankAngle_GM7X; + triggerSetEndTeeth = triggerSetEndTeeth_GM7X; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + break; + + case 4: + triggerSetup_4G63(); + trigger = triggerPri_4G63; + getRPM = getRPM_4G63; + getCrankAngle = getCrankAngle_4G63; + triggerSetEndTeeth = triggerSetEndTeeth_4G63; + + //These may both need to change, not sure + if(configPage2.TrigEdge == 0) + { + attachInterrupt(triggerInterrupt, trigger, CHANGE); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + attachInterrupt(triggerInterrupt2, triggerSec_4G63, FALLING); //changed + } + else + { + attachInterrupt(triggerInterrupt, trigger, CHANGE); // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_4G63, FALLING); + } + break; + + case 5: + triggerSetup_24X(); + trigger = triggerPri_24X; + getRPM = getRPM_24X; + getCrankAngle = getCrankAngle_24X; + triggerSetEndTeeth = triggerSetEndTeeth_24X; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_24X, CHANGE); + break; + + case 6: + triggerSetup_Jeep2000(); + trigger = triggerPri_Jeep2000; + getRPM = getRPM_Jeep2000; + getCrankAngle = getCrankAngle_Jeep2000; + triggerSetEndTeeth = triggerSetEndTeeth_Jeep2000; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_Jeep2000, CHANGE); + break; + + case 7: + triggerSetup_Audi135(); + trigger = triggerPri_Audi135; + getRPM = getRPM_Audi135; + getCrankAngle = getCrankAngle_Audi135; + triggerSetEndTeeth = triggerSetEndTeeth_Audi135; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + attachInterrupt(triggerInterrupt2, triggerSec_Audi135, RISING); + break; + + case 8: + triggerSetup_HondaD17(); + trigger = triggerPri_HondaD17; + getRPM = getRPM_HondaD17; + getCrankAngle = getCrankAngle_HondaD17; + triggerSetEndTeeth = triggerSetEndTeeth_HondaD17; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_HondaD17, CHANGE); + break; + + case 9: + triggerSetup_Miata9905(); + trigger = triggerPri_Miata9905; + getRPM = getRPM_Miata9905; + getCrankAngle = getCrankAngle_Miata9905; + triggerSetEndTeeth = triggerSetEndTeeth_Miata9905; + + //These may both need to change, not sure + if(configPage2.TrigEdge == 0) + { + attachInterrupt(triggerInterrupt, trigger, RISING); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, FALLING); //changed + } + else + { + attachInterrupt(triggerInterrupt, trigger, FALLING); // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, RISING); + } + break; + + case 10: + triggerSetup_MazdaAU(); + trigger = triggerPri_MazdaAU; + getRPM = getRPM_MazdaAU; + getCrankAngle = getCrankAngle_MazdaAU; + triggerSetEndTeeth = triggerSetEndTeeth_MazdaAU; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_MazdaAU, FALLING); + break; + + case 11: + triggerSetup_non360(); + trigger = triggerPri_DualWheel; //Is identical to the dual wheel decoder, so that is used. Same goes for the secondary below + getRPM = getRPM_non360; + getCrankAngle = getCrankAngle_non360; + triggerSetEndTeeth = triggerSetEndTeeth_Non360; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); //Note the use of the Dual Wheel trigger function here. No point in having the same code in twice. + break; + + case 12: + triggerSetup_Nissan360(); + trigger = triggerPri_Nissan360; + getRPM = getRPM_Nissan360; + getCrankAngle = getCrankAngle_Nissan360; + triggerSetEndTeeth = triggerSetEndTeeth_Nissan360; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + attachInterrupt(triggerInterrupt2, triggerSec_Nissan360, CHANGE); + break; + + case 13: + triggerSetup_Subaru67(); + trigger = triggerPri_Subaru67; + getRPM = getRPM_Subaru67; + getCrankAngle = getCrankAngle_Subaru67; + triggerSetEndTeeth = triggerSetEndTeeth_Subaru67; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + attachInterrupt(triggerInterrupt2, triggerSec_Subaru67, FALLING); + break; + + case 14: + triggerSetup_Daihatsu(); + trigger = triggerPri_Daihatsu; + getRPM = getRPM_Daihatsu; + getCrankAngle = getCrankAngle_Daihatsu; + triggerSetEndTeeth = triggerSetEndTeeth_Daihatsu; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + //No secondary input required for this pattern + break; + + case 15: + triggerSetup_Harley(); + trigger = triggerPri_Harley; + //triggerSecondary = triggerSec_Harley; + getRPM = getRPM_Harley; + getCrankAngle = getCrankAngle_Harley; + triggerSetEndTeeth = triggerSetEndTeeth_Harley; + attachInterrupt(triggerInterrupt, trigger, RISING); + // attachInterrupt(triggerInterrupt2, triggerSec_Harley, FALLING); + break; + + default: + trigger = triggerPri_missingTooth; + getRPM = getRPM_missingTooth; + getCrankAngle = getCrankAngle_missingTooth; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + break; + } +} +/* + This function retuns a pulsewidth time (in us) using a either Alpha-N or Speed Density algorithms, given the following: + REQ_FUEL + VE: Lookup from the main MAP vs RPM fuel table + MAP: In KPa, read from the sensor + GammaE: Sum of Enrichment factors (Cold start, acceleration). This is a multiplication factor (Eg to add 10%, this should be 110) + injDT: Injector dead time. The time the injector take to open minus the time it takes to close (Both in uS) + TPS: Throttle position (0% to 100%) + + This function is called by PW_SD and PW_AN for speed0density and pure Alpha-N calculations respectively. +*/ +unsigned int PW(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen) +{ + //Standard float version of the calculation + //return (REQ_FUEL * (float)(VE/100.0) * (float)(MAP/100.0) * (float)(TPS/100.0) * (float)(corrections/100.0) + injOpen); + //Note: The MAP and TPS portions are currently disabled, we use VE and corrections only + uint16_t iVE, iCorrections; + uint16_t iMAP = 100; + uint16_t iAFR = 147; + + //100% float free version, does sacrifice a little bit of accuracy, but not much. + iVE = ((unsigned int)VE << 7) / 100; + if ( configPage1.multiplyMAP == true ) { + iMAP = ((unsigned int)MAP << 7) / currentStatus.baro; //Include multiply MAP (vs baro) if enabled + } + if ( (configPage1.includeAFR == true) && (configPage3.egoType == 2)) { + iAFR = ((unsigned int)currentStatus.O2 << 7) / currentStatus.afrTarget; //Include AFR (vs target) if enabled + } + iCorrections = (corrections << 7) / 100; + + + unsigned long intermediate = ((long)REQ_FUEL * (long)iVE) >> 7; //Need to use an intermediate value to avoid overflowing the long + if ( configPage1.multiplyMAP == true ) { + intermediate = (intermediate * (unsigned long)iMAP) >> 7; + } + if ( (configPage1.includeAFR == true) && (configPage3.egoType == 2) ) { + intermediate = (intermediate * (unsigned long)iAFR) >> 7; //EGO type must be set to wideband for this to be used + } + intermediate = (intermediate * (unsigned long)iCorrections) >> 7; + if (intermediate != 0) + { + //If intermeditate is not 0, we need to add the opening time (0 typically indicates that one of the full fuel cuts is active) + intermediate += injOpen; //Add the injector opening time + if ( intermediate > 65535) + { + intermediate = 65535; //Make sure this won't overflow when we convert to uInt. This means the maximum pulsewidth possible is 65.535mS + } + } + return (unsigned int)(intermediate); + +} + +//Convenience functions for Speed Density and Alpha-N +unsigned int PW_SD(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen) +{ + return PW(REQ_FUEL, VE, MAP, corrections, injOpen); + //return PW(REQ_FUEL, VE, 100, corrections, injOpen); +} + +unsigned int PW_AN(int REQ_FUEL, byte VE, byte TPS, int corrections, int injOpen) +{ + return PW(REQ_FUEL, VE, currentStatus.MAP, corrections, injOpen); } From 04be30dc039dc7c3c59c78a9cbbf2a9db048e368 Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Mon, 28 Aug 2017 02:15:05 -0300 Subject: [PATCH 091/133] Add missing variables --- speeduino/globals.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/speeduino/globals.h b/speeduino/globals.h index a9feff4b..7f0d33cc 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -207,6 +207,9 @@ int ignition4EndAngle = 0; //This is used across multiple files unsigned long revolutionTime; //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) +volatile byte TIMER_mask; +volatile byte LOOP_TIMER; + //The status struct contains the current values for all 'live' variables //In current version this is 64 bytes struct statuses { From 9e4746596a8a54a78d111baccbb0e2d029c239ba Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Mon, 28 Aug 2017 02:21:34 -0300 Subject: [PATCH 092/133] Fix github mistakes --- speeduino/timers.ino | 219 +------------------------------------------ 1 file changed, 4 insertions(+), 215 deletions(-) diff --git a/speeduino/timers.ino b/speeduino/timers.ino index a0dd2b1d..b4ff21b3 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -1,221 +1,8 @@ -<<<<<<< HEAD -/* -Speeduino - Simple engine management for the Arduino Mega 2560 platform -Copyright (C) Josh Stewart -A full copy of the license may be found in the projects root directory -*/ - -/* -Timers are used for having actions performed repeatedly at a fixed interval (Eg every 100ms) -They should not be confused with Schedulers, which are for performing an action once at a given point of time in the future - -Timers are typically low resolution (Compared to Schedulers), with maximum frequency currently being approximately every 10ms -*/ -#include "timers.h" -#include "globals.h" -#include "sensors.h" - -#if defined(CORE_AVR) - #include -#endif - -void initialiseTimers() -{ -#if defined(CORE_AVR) //AVR chips use the ISR for this - //Configure Timer2 for our low-freq interrupt code. - TCCR2B = 0x00; //Disbale Timer2 while we set it up - TCNT2 = 131; //Preload timer2 with 131 cycles, leaving 125 till overflow. As the timer runs at 125Khz, this causes overflow to occur at 1Khz = 1ms - TIFR2 = 0x00; //Timer2 INT Flag Reg: Clear Timer Overflow Flag - TIMSK2 = 0x01; //Timer2 Set Overflow Interrupt enabled. - TCCR2A = 0x00; //Timer2 Control Reg A: Wave Gen Mode normal - /* Now configure the prescaler to CPU clock divided by 128 = 125Khz */ - TCCR2B |= (1<= configPage1.fpPrime) - { - fpPrimed = true; //Mark the priming as being completed - if(currentStatus.RPM == 0) { digitalWrite(pinFuelPump, LOW); fuelPumpOn = false; } //If we reach here then the priming is complete, however only turn off the fuel pump if the engine isn't running - } - } - //************************************************************************************************************************************************** - //Set the flex reading (if enabled). The flexCounter is updated with every pulse from the sensor. If cleared once per second, we get a frequency reading - if(configPage1.flexEnabled == true) - { - if(flexCounter < 50) - { - currentStatus.ethanolPct = 0; //Standard GM Continental sensor reads from 50Hz (0 ethanol) to 150Hz (Pure ethanol). Subtracting 50 from the frequency therefore gives the ethanol percentage. - flexCounter = 0; - } - else if (flexCounter > 151) //1 pulse buffer - { - - if(flexCounter < 169) - { - currentStatus.ethanolPct = 100; - flexCounter = 0; - } - else - { - //This indicates an error condition. Spec of the sensor is that errors are above 170Hz) - currentStatus.ethanolPct = 0; - flexCounter = 0; - } - } - else - { - currentStatus.ethanolPct = flexCounter - 50; //Standard GM Continental sensor reads from 50Hz (0 ethanol) to 150Hz (Pure ethanol). Subtracting 50 from the frequency therefore gives the ethanol percentage. - flexCounter = 0; - } - - //Off by 1 error check - if (currentStatus.ethanolPct == 1) { currentStatus.ethanolPct = 0; } - - } - - } -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //AVR chips use the ISR for this - //Reset Timer2 to trigger in another ~1ms - TCNT2 = 131; //Preload timer2 with 100 cycles, leaving 156 till overflow. - TIFR2 = 0x00; //Timer2 INT Flag Reg: Clear Timer Overflow Flag -#endif -======= /* Speeduino - Simple engine management for the Arduino Mega 2560 platform Copyright (C) Josh Stewart A full copy of the license may be found in the projects root directory -*/ +*/ /* Timers are used for having actions performed repeatedly at a fixed interval (Eg every 100ms) @@ -260,6 +47,9 @@ void initialiseTimers() Timer4.resume(); //Start Timer #endif + #if defined(CORE_STM32) + pinMode(LED_BUILTIN, OUTPUT); + #endif dwellLimit_uS = (1000 * configPage2.dwellLimit); lastRPM_100ms = 0; } @@ -419,5 +209,4 @@ void oneMSInterval() //Most ARM chips can simply call a function TCNT2 = 131; //Preload timer2 with 100 cycles, leaving 156 till overflow. TIFR2 = 0x00; //Timer2 INT Flag Reg: Clear Timer Overflow Flag #endif ->>>>>>> parent of d8898db... Merge branch 'master' into pr/5 } From d4876f5883a446b82e6e6bceedd8a897f39c5b02 Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Mon, 28 Aug 2017 02:32:18 -0300 Subject: [PATCH 093/133] Removed unused table code --- speeduino/table.ino | 198 -------------------------------------------- 1 file changed, 198 deletions(-) diff --git a/speeduino/table.ino b/speeduino/table.ino index 9d633630..b425cab3 100644 --- a/speeduino/table.ino +++ b/speeduino/table.ino @@ -408,201 +408,3 @@ int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) } return tableResult; } -/* Executed a benchmark on all options and this is the results - * @Mega: Stadard:464276 92 |FP Math:893104 92.57 |Clean code:641280 92 , Number of loops:5000 - * @STM32F1: Stadard:21449 92 |FP Math:125707 92.57 |Clean code:11634 92 , Number of loops:5000 - * @STM32F4: Stadard:7275 92 |FP Math:5724 92.57 |Clean code:4742 92 , Number of loops:5000 - -//This function pulls a value from a 3D table given a target for X and Y coordinates. -//It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf -float get3DTableValueF(struct table3D *fromTable, int Y, int X) -{ - byte xMin, xMax; - byte yMin, yMax; - float tableResult = 0; - - xMin = fromTable->lastXMin; - yMin = fromTable->lastYMin; - if(xMin == 0) { xMin = fromTable->xSize-1; } - if(yMin == 0) { yMin = fromTable->ySize-1; } - - do //RPM axis - { - if(X == fromTable->axisX[xMin]) - { - xMax = xMin; - break; - } - else if(X > fromTable->axisX[xMin]) - { - if (xMin == fromTable->xSize-1) { xMax = xMin; } //Overflow protection - else { xMax = xMin + 1; } - break; - } - xMin--; - }while(true); - - do //MAP axis - { - if(Y == fromTable->axisY[yMin]) - { - yMax = yMin; - break; - } - else if(Y < fromTable->axisY[yMin]) - { - if (yMin == fromTable->ySize-1) { yMax = yMin; } //Overflow protection - else { yMax = yMin + 1; } - break; - } - yMin--; - }while(true); - - fromTable->lastXMin = xMax; - fromTable->lastYMin = yMax; - - int A = fromTable->values[yMin][xMin]; - int B = fromTable->values[yMin][xMax]; - int C = fromTable->values[yMax][xMin]; - int D = fromTable->values[yMax][xMax]; - if( (A == B) && (A == C) && (A == D) ) { tableResult = A; } - else if(xMin == xMax) // Same RPM axys do a simple 2D (27% faster on Mega on worst case, up to 500%) - { - int yMaxValue = fromTable->axisY[yMax]; - int yMinValue = fromTable->axisY[yMin]; - float q; - q = ((float)(Y - yMinValue) * (C - A)) / (yMaxValue - yMinValue); - tableResult = A + q; - } - else if(yMin == yMax) // Same MAP axys do a simple 2D (27% faster on Mega on worst case, up to 500%) - { - int xMaxValue = fromTable->axisX[xMax]; - int xMinValue = fromTable->axisX[xMin]; - float q; - q = ((float)(X - xMinValue) * (B - A)) / (xMaxValue - xMinValue); - tableResult = A + q; - } - else - { - int yMaxValue = fromTable->axisY[yMax]; - int yMinValue = fromTable->axisY[yMin]; - int xMaxValue = fromTable->axisX[xMax]; - int xMinValue = fromTable->axisX[xMin]; - - float m, n, o , p, q, r; - if (xMaxValue == xMinValue) { p = (float)X - xMinValue; } - else { p = ((float)X - xMinValue) / (xMaxValue - xMinValue); } - if (yMaxValue == yMinValue) { q = (float)Y - yMinValue; } - else { q = ((float)Y - yMinValue) / (yMaxValue - yMinValue); } - - m = (1.0-p) * (1.0-q); - n = p * (1-q); - o = (1-p) * q; - r = p * q; - tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ); - } - return tableResult; -} - -//This function pulls a value from a 3D table given a target for X and Y coordinates. -//It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf -int get3DTableValueS(struct table3D *fromTable, int Y, int X) -{ - byte xMin, xMax; - byte yMin, yMax; - int tableResult = 0; - - xMin = fromTable->lastXMin; - yMin = fromTable->lastYMin; - if(xMin == 0) { xMin = fromTable->xSize-1; } - if(yMin == 0) { yMin = fromTable->ySize-1; } - - do //RPM axis - { - if(X == fromTable->axisX[xMin]) - { - xMax = xMin; - break; - } - else if(X > fromTable->axisX[xMin]) - { - if (xMin == fromTable->xSize-1) { xMax = xMin; } //Overflow protection - else { xMax = xMin + 1; } - break; - } - xMin--; - }while(true); - - do //MAP axis - { - if(Y == fromTable->axisY[yMin]) - { - yMax = yMin; - break; - } - else if(Y < fromTable->axisY[yMin]) - { - if (yMin == fromTable->ySize-1) { yMax = yMin; } //Overflow protection - else { yMax = yMin + 1; } - break; - } - yMin--; - }while(true); - - fromTable->lastXMin = xMax; - fromTable->lastYMin = yMax; - - int A = fromTable->values[yMin][xMin]; - int B = fromTable->values[yMin][xMax]; - int C = fromTable->values[yMax][xMin]; - int D = fromTable->values[yMax][xMax]; - if( (A == B) && (A == C) && (A == D) ) { tableResult = A; } - else if(xMin == xMax) // Same RPM axys do a simple 2D (27% faster on Mega on worst case, up to 500%) - { - int yMaxValue = fromTable->axisY[yMax]; - int yMinValue = fromTable->axisY[yMin]; - long q; - q = (((long)(Y - yMinValue) << 6) * (C - A)) / (yMaxValue - yMinValue); - tableResult = A + (q >> 6); - } - else if(yMin == yMax) // Same MAP axys do a simple 2D (27% faster on Mega on worst case, up to 500%) - { - int xMaxValue = fromTable->axisX[xMax]; - int xMinValue = fromTable->axisX[xMin]; - long q; - q = (((long)(X - xMinValue) << 6) * (B - A)) / (xMaxValue - xMinValue); - tableResult = A + (q >> 6); - } - else - { - int yMaxValue = fromTable->axisY[yMax]; - int yMinValue = fromTable->axisY[yMin]; - int xMaxValue = fromTable->axisX[xMax]; - int xMinValue = fromTable->axisX[xMin]; - - long p = (long)X - xMinValue; - if (xMaxValue == xMinValue) { p = (p << 8); } //This only occurs if the requested X value was equal to one of the X axis bins - else { p = ( (p << 8) / (xMaxValue - xMinValue) ); } //This is the standard case - - long q; - if (yMaxValue == yMinValue) - { - q = (long)Y - yMinValue; - q = (q << 8); - } - //Standard case - else - { - q = long(Y) - yMaxValue; - q = 256 - ( (q << 8) / (yMinValue - yMaxValue) ); - } - - int m = ((256-p) * (256-q)) >> 8; - int n = (p * (256-q)) >> 8; - int o = ((256-p) * q) >> 8; - int r = (p * q) >> 8; - tableResult = ( (A * m) + (B * n) + (C * o) + (D * r) ) >> 8; - } - return tableResult; -} -*/ From b9282e1eddfd9df2cd68874b2b1dd1ae45fcb44c Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Mon, 28 Aug 2017 02:36:28 -0300 Subject: [PATCH 094/133] Clear MISRA error on decoders --- speeduino/decoders.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 106155e6..faafb88a 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -1357,7 +1357,7 @@ void triggerSetup_Miata9905() MAX_STALL_TIME = (3333UL * triggerToothAngle); //Minimum 50rpm. (3333uS is the time per degree at 50rpm) triggerFilterTime = 1500; //10000 rpm, assuming we're triggering on both edges off the crank tooth. - triggerSecFilterTime = 0; //(int)(1000000 / (MAX_RPM / 60 * 2)) / 2; //Same as above, but fixed at 2 teeth on the secondary input and divided by 2 (for cam speed) + triggerSecFilterTime = 0; // (int)(1000000 / (MAX_RPM / 60 * 2)) / 2; } void triggerPri_Miata9905() From 2ced1200220f0901aad7724b5896aab86c1eab0d Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 29 Aug 2017 00:11:50 +1000 Subject: [PATCH 095/133] Tweaks to Miata 99-05 pattern --- speeduino/decoders.ino | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index d3c9629d..83e1071b 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -1436,6 +1436,12 @@ void triggerSec_Miata9905() { curTime2 = micros(); curGap2 = curTime2 - toothLastSecToothTime; + + if(BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) || (currentStatus.hasSync == false) ) + { + triggerFilterTime = 1500; //If this is removed, can have trouble getting sync again after the engine is turned off (but ECU not reset). + } + if ( curGap2 >= triggerSecFilterTime ) { toothLastSecToothTime = curTime2; @@ -1454,14 +1460,16 @@ uint16_t getRPM_Miata9905() if(currentStatus.RPM < currentStatus.crankRPM) { int tempToothAngle; + int toothTime; noInterrupts(); tempToothAngle = triggerToothAngle; - revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 70 and 110 depending on the last tooth that was seen + toothTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 70 and 110 depending on the last tooth that was seen interrupts(); - revolutionTime = revolutionTime * 36; - tempRPM = (tempToothAngle * 60000000L) / revolutionTime; + toothTime = toothTime * 36; + tempRPM = ((unsigned long)tempToothAngle * 60000000L) / toothTime; + revolutionTime = (10UL * toothTime) / tempToothAngle; } - else { tempRPM = stdGetRPM(); } + else { tempRPM = stdGetRPM() >> 1; } return tempRPM; } @@ -1483,9 +1491,8 @@ int getCrankAngle_Miata9905(int timePerDegree) crankAngle = toothAngles[(tempToothCurrentCount - 1)] + configPage2.triggerAngle; //Perform a lookup of the fixed toothAngles array to find what the angle of the last tooth passed was. //Estimate the number of degrees travelled since the last tooth} - long elapsedTime = micros() - tempToothLastToothTime; - if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime - else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; } + unsigned long elapsedTime = micros() - tempToothLastToothTime; + crankAngle += uSToDegrees(elapsedTime); if (crankAngle >= 720) { crankAngle -= 720; } if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } From a44f36b58cdd6aac27047ccc37d7df246481eaf0 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 29 Aug 2017 14:18:56 +1000 Subject: [PATCH 096/133] Small cleanup in ini --- reference/speeduino.ini | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index b27d6dfa..256bf32e 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -717,7 +717,7 @@ page = 11 ;------------------------------------------------------------------------------- -[ConstantsExtensions] +[ConstantsExtensions] requiresPowerCycle = nCylinders requiresPowerCycle = pinLayout requiresPowerCycle = fanPin @@ -948,7 +948,7 @@ menuDialog = main TrigFilter = "Tuning of the trigger filter algorithm. The more aggressive the setting, the more noise will be removed, however this increases the chance of some true readings being filtered out (False positive). Medium is safe for most setups. Only select 'Aggressive' if no other options are working" sparkMode = "Wasted Spark: Ignition outputs are on the channels <= half the number of cylinders. Eg 4 cylinder outputs on IGN1 and IGN2.\nSingle Channel: All ignition pulses are output on IGN1.\nWasted COP: Ignition pulses are output on all ignition channels up to the number of cylinders. Eg 4 cylinder outputs on all ignition channels. No valid for >4 cylinders" - IgInv = "Whether the spark fires when the ignition sign goes high or goes low. Most ignition systems 'Going Low' but please verify this as damage to coils can result from the incorrect selection" + IgInv = "Whether the spark fires when the ignition signal goes high or goes low. Nearly all ignition systems use 'Going Low' but please verify this as damage to coils can result from the incorrect selection. (NOTE: THIS IS NOT MEGASQUIRT. THIS SETTING IS USUALLY THE OPPOSITE OF WHAT THEY USE!)" sparkDur = "The duration of the spark at full dwell. Typically around 1ms" fanInv = "" @@ -1297,7 +1297,6 @@ menuDialog = main dialog = crankingEnrichDialog, "Cranking Enrichment", yAxis panel = cranking_enrich_curve - panel = wc_note dialog = crankingIgnOptions, "Cranking Timing", yAxis field = "Cranking bypass", ignBypassEnable From e93bf9f5ace19cb3659e76eac72a0859953bba88 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Wed, 30 Aug 2017 12:53:56 +1000 Subject: [PATCH 097/133] Fix RPM calc issue on Miata 99-05 --- reference/speeduino.ini | 2 +- speeduino/decoders.ino | 39 +++++++++++++++++++++++---------------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 256bf32e..ff020e32 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -1341,7 +1341,7 @@ menuDialog = main field = "Note: This is the number of revolutions that will be skipped during" field = "cranking before the injectors and coils are fired" field = "Trigger edge", TrigEdge - field = "Secondary trigger edge", TrigEdgeSec, { TrigPattern == 0 || TrigPattern == 2 } ;Missing tooth and dual wheel + field = "Secondary trigger edge", TrigEdgeSec, { TrigPattern == 0 || TrigPattern == 2 || TrigPattern == 9 } ;Missing tooth, dual wheel and Miata 9905 field = "Trigger Filter", TrigFilter field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 } ;Dual wheel, 4G63 and Audi 135 field = "" diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 83e1071b..130ecbc3 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -1336,6 +1336,8 @@ void triggerSetup_Miata9905() decoderIsSequential = true; triggerActualTeeth = 8; secondaryToothCount = 0; + toothLastToothTime = micros(); //Set a startup value here to avoid filter errors when starting + toothLastMinusOneToothTime = 0; //Note that these angles are for every rising and falling edge @@ -1364,10 +1366,10 @@ void triggerPri_Miata9905() { curTime = micros(); curGap = curTime - toothLastToothTime; - if ( curGap >= triggerFilterTime ) + if ( curGap >= triggerFilterTime || (currentStatus.startRevolutions == 0) ) { toothCurrentCount++; - if( (toothCurrentCount == 1) || (toothCurrentCount == (triggerActualTeeth+1)) ) + if( (toothCurrentCount == (triggerActualTeeth + 1)) ) { toothCurrentCount = 1; //Reset the counter toothOneMinusOneTime = toothOneTime; @@ -1380,7 +1382,7 @@ void triggerPri_Miata9905() if(secondaryToothCount == 2) { toothCurrentCount = 6; - currentStatus.hasSync = true; + //currentStatus.hasSync = true; } } @@ -1389,7 +1391,7 @@ void triggerPri_Miata9905() addToothLogEntry(curGap); //Whilst this is an uneven tooth pattern, if the specific angle between the last 2 teeth is specified, 1st deriv prediction can be used - if( (configPage2.triggerFilter == 1) || (currentStatus.RPM < 1400) ) + if( (configPage2.triggerFilter == 1) ) { //Lite filter if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; triggerFilterTime = curGap; } //Trigger filter is set to whatever time it took to do 70 degrees (Next trigger is 110 degrees away) @@ -1407,15 +1409,16 @@ void triggerPri_Miata9905() if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; triggerFilterTime = (curGap * 11) >> 3 ; } //96.26 degrees with a target of 110 else { triggerToothAngle = 110; triggerFilterTime = (curGap * 9) >> 5; } //61.87 degrees with a target of 70 } - else + else if (configPage2.triggerFilter == 0) { //trigger filter is turned off. triggerFilterTime = 0; + triggerSecFilterTime = 0; if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; } //96.26 degrees with a target of 110 else { triggerToothAngle = 110; } //61.87 degrees with a target of 70 } - curGap = curGap >> 1; //Why is this here? + //curGap = curGap >> 1; //Why is this here? toothLastMinusOneToothTime = toothLastToothTime; toothLastToothTime = curTime; @@ -1459,17 +1462,21 @@ uint16_t getRPM_Miata9905() uint16_t tempRPM = 0; if(currentStatus.RPM < currentStatus.crankRPM) { - int tempToothAngle; - int toothTime; - noInterrupts(); - tempToothAngle = triggerToothAngle; - toothTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 70 and 110 depending on the last tooth that was seen - interrupts(); - toothTime = toothTime * 36; - tempRPM = ((unsigned long)tempToothAngle * 60000000L) / toothTime; - revolutionTime = (10UL * toothTime) / tempToothAngle; + if( (toothLastToothTime == 0) || (toothLastMinusOneToothTime == 0) ) { tempRPM = 0; } + else + { + int tempToothAngle; + unsigned long toothTime; + noInterrupts(); + tempToothAngle = triggerToothAngle; + toothTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 70 and 110 depending on the last tooth that was seen + interrupts(); + toothTime = toothTime * 36; + tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime; + revolutionTime = (10UL * toothTime) / tempToothAngle; + } } - else { tempRPM = stdGetRPM() >> 1; } + else { tempRPM = stdGetRPM() << 1; } return tempRPM; } From 6aebf7e0684413e4acc10dcac28689d5137b0c02 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Wed, 30 Aug 2017 12:54:21 +1000 Subject: [PATCH 098/133] Allow for setting secondary trigger edge on Miata 99-05 --- speeduino/utils.ino | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/speeduino/utils.ino b/speeduino/utils.ino index e49c7e36..29246720 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -738,16 +738,12 @@ void initialiseTriggers() triggerSetEndTeeth = triggerSetEndTeeth_Miata9905; //These may both need to change, not sure - if(configPage2.TrigEdge == 0) - { - attachInterrupt(triggerInterrupt, trigger, RISING); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, FALLING); //changed - } - else - { - attachInterrupt(triggerInterrupt, trigger, FALLING); // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, RISING); - } + // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + + if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, RISING); } + else { attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, FALLING); } break; case 10: From c292a265c1ce89e119650cfb151c1d13abe6e31d Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Wed, 30 Aug 2017 08:47:59 -0300 Subject: [PATCH 099/133] ignore VScode build --- .gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index e279d43c..52197162 100644 --- a/.gitignore +++ b/.gitignore @@ -10,11 +10,11 @@ table.py reference/hardware/v0.2/~$schematic v0.2_bom.xlsx reference/hardware/v0.4/gerbers/Archive.zip -speeduino/.vscode -speeduino/.build .pioenvs .piolibdeps .clang_complete .gcc-flags.json .project +.vscode +.build From 0ccab57e616429dd4752b2735a274cea125f6c28 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 31 Aug 2017 12:09:13 +1000 Subject: [PATCH 100/133] Fix for potential miss on trailing spark of FC rotary mode at high RPM --- speeduino/corrections.ino | 2 +- speeduino/scheduler.ino | 40 +++++++++++++++++++++++++++++++++++++-- speeduino/speeduino.ino | 12 +++++++++--- 3 files changed, 48 insertions(+), 6 deletions(-) diff --git a/speeduino/corrections.ino b/speeduino/corrections.ino index 2475c5c7..2cd863e2 100644 --- a/speeduino/corrections.ino +++ b/speeduino/corrections.ino @@ -478,7 +478,7 @@ uint16_t correctionsDwell(uint16_t dwell) uint16_t dwellPerRevolution = tempDwell + (uint16_t)(configPage2.sparkDur * 100); //Spark duration is in mS*10. Multiple it by 100 to get spark duration in uS int8_t pulsesPerRevolution = 1; //Single channel spark mode is the only time there will be more than 1 pulse per revolution on any given output - if( (configPage2.sparkMode == IGN_MODE_SINGLE) && (configPage1.nCylinders > 1) ) //No point in running this for 1 cylinder engines + if( ( (configPage2.sparkMode == IGN_MODE_SINGLE) || (configPage2.sparkMode == IGN_MODE_ROTARY) ) && (configPage1.nCylinders > 1) ) //No point in running this for 1 cylinder engines { pulsesPerRevolution = (configPage1.nCylinders >> 1); dwellPerRevolution = dwellPerRevolution * pulsesPerRevolution; diff --git a/speeduino/scheduler.ino b/speeduino/scheduler.ino index 4610394d..a0e377dd 100644 --- a/speeduino/scheduler.ino +++ b/speeduino/scheduler.ino @@ -445,6 +445,14 @@ void setIgnitionSchedule3(void (*startCallback)(), unsigned long timeout, unsign interrupts(); IGN3_TIMER_ENABLE(); } + else + { + //If the schedule is already running, we can set the next schedule so it is ready to go + //This is required in cases of high rpm and high DC where there otherwise would not be enough time to set the schedule + ignitionSchedule3.nextStartCompare = IGN3_COUNTER + uS_TO_TIMER_COMPARE(timeout); + ignitionSchedule3.nextEndCompare = ignitionSchedule3.nextStartCompare + uS_TO_TIMER_COMPARE(duration); + ignitionSchedule3.hasNextSchedule = true; + } } void setIgnitionSchedule4(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) { @@ -469,6 +477,14 @@ void setIgnitionSchedule4(void (*startCallback)(), unsigned long timeout, unsign interrupts(); IGN4_TIMER_ENABLE(); } + else + { + //If the schedule is already running, we can set the next schedule so it is ready to go + //This is required in cases of high rpm and high DC where there otherwise would not be enough time to set the schedule + ignitionSchedule4.nextStartCompare = IGN4_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout); + ignitionSchedule4.nextEndCompare = ignitionSchedule4.nextStartCompare + uS_TO_TIMER_COMPARE_SLOW(duration); + ignitionSchedule4.hasNextSchedule = true; + } } void setIgnitionSchedule5(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)()) { @@ -707,7 +723,17 @@ static inline void ignitionSchedule3Interrupt() //Most ARM chips can simply call ignitionSchedule3.EndCallback(); ignitionSchedule3.schedulesSet = 0; ignitionCount += 1; //Increment the igintion counter - IGN3_TIMER_DISABLE(); + + //If there is a next schedule queued up, activate it + if(ignitionSchedule3.hasNextSchedule == true) + { + IGN3_COMPARE = ignitionSchedule3.nextStartCompare; + ignitionSchedule3.endCompare = ignitionSchedule3.nextEndCompare; + ignitionSchedule3.Status = PENDING; + ignitionSchedule3.schedulesSet = 1; + ignitionSchedule3.hasNextSchedule = false; + } + else { IGN3_TIMER_DISABLE(); } } } @@ -730,7 +756,17 @@ static inline void ignitionSchedule4Interrupt() //Most ARM chips can simply call ignitionSchedule4.EndCallback(); ignitionSchedule4.schedulesSet = 0; ignitionCount += 1; //Increment the igintion counter - IGN4_TIMER_DISABLE(); + + //If there is a next schedule queued up, activate it + if(ignitionSchedule4.hasNextSchedule == true) + { + IGN4_COMPARE = ignitionSchedule4.nextStartCompare; + ignitionSchedule4.endCompare = ignitionSchedule4.nextEndCompare; + ignitionSchedule4.Status = PENDING; + ignitionSchedule4.schedulesSet = 1; + ignitionSchedule4.hasNextSchedule = false; + } + else { IGN4_TIMER_DISABLE(); } } } diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 772eb7ec..89804c4a 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -400,6 +400,12 @@ void setup() CRANK_ANGLE_MAX_IGN = 720; } + else if(configPage2.sparkMode == IGN_MODE_ROTARY) + { + //Rotary uses the ign 3 and 4 schedules for the trailing spark. They are offset from the ign 1 and 2 channels respectively and so use the same degrees as them + channel3IgnDegrees = 0; + channel4IgnDegrees = 180; + } } else { @@ -931,9 +937,9 @@ void loop() int injector5StartAngle = 0; //For 5 cylinder testing int ignition1StartAngle = 0; int ignition2StartAngle = 0; - int ignition3StartAngle = 0; //Currently used for 3 cylinder only - int ignition4StartAngle = 0; //Not used until sequential or 4+ cylinders support gets written - int ignition5StartAngle = 0; //Not used until sequential or 4+ cylinders support gets written + int ignition3StartAngle = 0; + int ignition4StartAngle = 0; + int ignition5StartAngle = 0; //These are used for comparisons on channels above 1 where the starting angle (for injectors or ignition) can be less than a single loop time //(Don't ask why this is needed, it will break your head) int tempCrankAngle; From bb8807bbcddd947811aefe43b77c04af81ddbb24 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 31 Aug 2017 14:42:20 +1000 Subject: [PATCH 101/133] SCAD file for PCB locator used on the PNP units --- reference/hardware/Pro/Case/PCB_locator.scad | 128 +++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 reference/hardware/Pro/Case/PCB_locator.scad diff --git a/reference/hardware/Pro/Case/PCB_locator.scad b/reference/hardware/Pro/Case/PCB_locator.scad new file mode 100644 index 00000000..f7f57da4 --- /dev/null +++ b/reference/hardware/Pro/Case/PCB_locator.scad @@ -0,0 +1,128 @@ +$fn = 100; + +// standard board thicknesses (mm) +PCB_THICK_06 = 0.6; +PCB_THICK_08 = 0.8; +PCB_THICK_10 = 1.0; +PCB_THICK_12 = 1.2; +PCB_THICK_16 = 1.6; + +// standard board hole diameters +PCB_HOLE_30 = 3.0; + +HEIGHT = 1.8; + +// standard stand-off heights +STANDOFF_4 = 3.0; + +// base dimensions +BASE_THICKNESS = 3.0; +BASE_DIAMETER = 12.0; + +module pcb_support(coord,hole_dia,pcb_thick,standoff_height) +{ + translate(coord) + { + standoff(hole_dia,standoff_height); + translate([standoff_height,0,0]) clip(hole_dia,pcb_thick,standoff_height); + } +} + +module baseWedge(hole_dia,base_thickness) +{ + standoff_side = hole_dia*1.2; // width of standoff + //standoff_thickness = hole_dia * .75; // thickness of standoff bar + standoff_thickness = HEIGHT; // thickness of standoff bar + + translate([0,-base_thickness,0]) + linear_extrude(height=standoff_thickness) + { + polygon + ( + points= + [ + [-(standoff_side/2+base_thickness),0], + [-standoff_side/2,base_thickness], + [standoff_side/2,base_thickness], + [standoff_side/2+base_thickness,0] + ] + ); + } +} + +module standoff(hole_dia,height,base_thickness) +{ + standoff_side = hole_dia*1.2; // width of standoff + //standoff_thickness = hole_dia * .75; // thickness of standoff bar + standoff_thickness = HEIGHT; // thickness of standoff bar + shaft_width = hole_dia * 1.0; // width of clip part that rests inside of the PCB hole + slot_length = height/5-2; // length of cut slot + slot_width = shaft_width * 0.4; // amount of gap in the slot + base_inset = 0.1; // inset of wedge into bottom of base + + // standoff + translate([-standoff_side/2,0,0]) + { + difference() + { + cube([standoff_side,height,standoff_thickness]); + translate([standoff_side/2-slot_width/2,height-slot_length,0]) cube([slot_width,slot_length,standoff_thickness]); + } + } + + difference() + { + baseWedge(hole_dia,base_thickness); + translate([-(standoff_side+base_thickness*2)/2,-base_thickness,0]) cube([standoff_side+base_thickness*2,base_inset,standoff_thickness]); + } +} + +//pcb_support([0,0,0],3,PCB_THICK_16,8); +module clip(hole_dia,pcb_thick) +{ +clip_length = pcb_thick * 3; // total length of clip +clip_width = hole_dia * 1.2; // width of clip at its widest +//clip_thickness = hole_dia * .75; // thickness of of the entire clip in the Z direction +clip_thickness = HEIGHT; // thickness of of the entire clip in the Z direction +shaft_length = pcb_thick * 1.1; // length of clip part that rests inside of the PCB hole +shaft_width = hole_dia * 0.9; // width of clip part that rests inside of the PCB hole +slot_length = clip_length; // length of cut slot +slot_width = shaft_width * 0.4; // amount of gap in the slot + +clip_lip = 0.4; // overhange on one side +clip_chamfer = hole_dia/3; // side of triangle taken off of clip to produce a chamfer + + translate([-shaft_width/2,0,0]) + linear_extrude(height=clip_thickness) + { + polygon + ( + points= + [ + // left clip + [0,0], + [0,shaft_length], + [-clip_lip,shaft_length+clip_chamfer], + [-clip_lip,clip_length-clip_chamfer], + [0,clip_length], + [(shaft_width-slot_width)/2,clip_length], + [(shaft_width-slot_width)/2,clip_length-slot_length], + + // right clip + [(shaft_width-slot_width)/2+slot_width,clip_length-slot_length], + [(shaft_width-slot_width)/2+slot_width,clip_length], + [shaft_width,clip_length], + [shaft_width+clip_lip,clip_length-clip_chamfer], + [shaft_width+clip_lip,shaft_length+clip_chamfer], + [shaft_width,shaft_length], + [shaft_width,0] + ] + ); + } +} + +scale([1.8,3.2,2.5]) +{ +translate([0,STANDOFF_4,0]) clip(PCB_HOLE_30,PCB_THICK_16); +standoff(PCB_HOLE_30,STANDOFF_4,BASE_THICKNESS); +} From 282f3a84aacf24779cdf8867adb2899bd0c7c50b Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 31 Aug 2017 14:42:37 +1000 Subject: [PATCH 102/133] Wiki images --- .../hardware/VR Conditioner/rounded_pcb.svg | 10 ++++++++++ reference/wiki/decoders/nissan_360.gif | Bin 0 -> 24925 bytes 2 files changed, 10 insertions(+) create mode 100644 reference/hardware/VR Conditioner/rounded_pcb.svg create mode 100644 reference/wiki/decoders/nissan_360.gif diff --git a/reference/hardware/VR Conditioner/rounded_pcb.svg b/reference/hardware/VR Conditioner/rounded_pcb.svg new file mode 100644 index 00000000..7d7ad3f1 --- /dev/null +++ b/reference/hardware/VR Conditioner/rounded_pcb.svg @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/reference/wiki/decoders/nissan_360.gif b/reference/wiki/decoders/nissan_360.gif new file mode 100644 index 0000000000000000000000000000000000000000..34e5b833c84ce002f333e8254e4a3550f1f20d74 GIT binary patch literal 24925 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 literal 0 HcmV?d00001 From 2d0189c76d0b139a73bfa011a9465c99c120555b Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 31 Aug 2017 14:53:46 +1000 Subject: [PATCH 103/133] Cleanup of files that didn't need to be changed in preparation for merge --- misra/check_misra.sh | 0 .../hardware/VR Conditioner/BOM/Bom-pcbng.csv | 28 +-- .../VR Conditioner/BOM/Bom-seeedstudio.csv | 14 +- speeduino/sensors.h | 214 +++++++++--------- 4 files changed, 128 insertions(+), 128 deletions(-) mode change 100644 => 100755 misra/check_misra.sh diff --git a/misra/check_misra.sh b/misra/check_misra.sh old mode 100644 new mode 100755 diff --git a/reference/hardware/VR Conditioner/BOM/Bom-pcbng.csv b/reference/hardware/VR Conditioner/BOM/Bom-pcbng.csv index b18e1a0f..a63636b8 100644 --- a/reference/hardware/VR Conditioner/BOM/Bom-pcbng.csv +++ b/reference/hardware/VR Conditioner/BOM/Bom-pcbng.csv @@ -1,15 +1,15 @@ -Part/Designator,Manufacture Part Number -R3,RC0805FR-071KL -R5,RC0805FR-071KL -R4,RC0805JR-0710KL -R6,RC0805JR-0710KL -R7,RC0805JR-0710KL -R9,RC0805JR-0710KL -R11,RC0805JR-0710KL -R13,RC0805JR-0710KL -MAX9926,MAX9926UAEE+T -C2,CC0805KRX7R9BB103 -C3,CC0805KKX7R7BB105 -C4,CC0805KRX7R9BB102 -C5,CC0805KRX7R9BB102 +Part/Designator,Manufacture Part Number +R3,RC0805FR-071KL +R5,RC0805FR-071KL +R4,RC0805JR-0710KL +R6,RC0805JR-0710KL +R7,RC0805JR-0710KL +R9,RC0805JR-0710KL +R11,RC0805JR-0710KL +R13,RC0805JR-0710KL +MAX9926,MAX9926UAEE+T +C2,CC0805KRX7R9BB103 +C3,CC0805KKX7R7BB105 +C4,CC0805KRX7R9BB102 +C5,CC0805KRX7R9BB102 C1,CC0805ZRY5V9BB104 \ No newline at end of file diff --git a/reference/hardware/VR Conditioner/BOM/Bom-seeedstudio.csv b/reference/hardware/VR Conditioner/BOM/Bom-seeedstudio.csv index 806ca63c..9133f6dd 100644 --- a/reference/hardware/VR Conditioner/BOM/Bom-seeedstudio.csv +++ b/reference/hardware/VR Conditioner/BOM/Bom-seeedstudio.csv @@ -1,8 +1,8 @@ -Part/Designator,Manufacture Part Number,Quantity -"R3,R5",RC0805FR-071KL,2 -"R4,R6,R7,R9,R11,R13",RC0805JR-0710KL,6 -MAX9926,MAX9926UAEE+T,1 -C2,CC0805KRX7R9BB103,1 -C3,CC0805KKX7R7BB105,1 -"C4,C5",CC0805KRX7R9BB102,2 +Part/Designator,Manufacture Part Number,Quantity +"R3,R5",RC0805FR-071KL,2 +"R4,R6,R7,R9,R11,R13",RC0805JR-0710KL,6 +MAX9926,MAX9926UAEE+T,1 +C2,CC0805KRX7R9BB103,1 +C3,CC0805KKX7R7BB105,1 +"C4,C5",CC0805KRX7R9BB102,2 C1,CC0805ZRY5V9BB104,1 \ No newline at end of file diff --git a/speeduino/sensors.h b/speeduino/sensors.h index 204e5970..a1c6ef92 100644 --- a/speeduino/sensors.h +++ b/speeduino/sensors.h @@ -1,107 +1,107 @@ -#ifndef SENSORS_H -#define SENSORS_H - -#include "Arduino.h" - - -// The following are alpha values for the ADC filters. -// Their values are from 0 to 255 with 0 being no filtering and 255 being maximum -#define ADCFILTER_TPS 128 -#define ADCFILTER_CLT 180 -#define ADCFILTER_IAT 180 -#define ADCFILTER_O2 128 -#define ADCFILTER_BAT 128 -#define ADCFILTER_MAP 20 //This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response -#define ADCFILTER_BARO 64 - -#define BARO_MIN 87 -#define BARO_MAX 108 - -/* -#if defined(CORE_AVR) - #define ANALOG_ISR -#endif -*/ - -volatile byte flexCounter = 0; -volatile int AnChannel[15]; - -unsigned long MAPrunningValue; //Used for tracking either the total of all MAP readings in this cycle (Event average) or the lowest value detected in this cycle (event minimum) -unsigned int MAPcount; //Number of samples taken in the current MAP cycle -byte MAPcurRev; //Tracks which revolution we're sampling on - -/* - * Simple low pass IIR filter macro for the analog inputs - * This is effectively implementing the smooth filter from http://playground.arduino.cc/Main/Smooth - * But removes the use of floats and uses 8 bits of fixed precision. - */ -#define ADC_FILTER(input, alpha, prior) (((long)input * (256 - alpha) + ((long)prior * alpha))) >> 8 - -void instanteneousMAPReading(); -void readMAP(); -void flexPulse(); - -#if defined(ANALOG_ISR) -//Analog ISR interrupt routine -/* -ISR(ADC_vect) -{ - byte nChannel; - int result = ADCL | (ADCH << 8); - - //ADCSRA = 0x6E; // ADC disabled by clearing bit 7(ADEN) - //BIT_CLEAR(ADCSRA, ADIE); - - nChannel = ADMUX & 0x07; - #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) - if (nChannel==7) { ADMUX = 0x40; } - #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - if(ADCSRB & 0x08) { nChannel += 8; } //8 to 15 - if(nChannel == 15) - { - ADMUX = 0x40; //channel 0 - ADCSRB = 0x00; //clear MUX5 bit - } - else if (nChannel == 7) //channel 7 - { - ADMUX = 0x40; - ADCSRB = 0x08; //Set MUX5 bit - } - #endif - else { ADMUX++; } - AnChannel[nChannel-1] = result; - - //BIT_SET(ADCSRA, ADIE); - //ADCSRA = 0xEE; // ADC Interrupt Flag enabled -} -*/ -ISR(ADC_vect) -{ - byte nChannel = ADMUX & 0x07; - int result = ADCL | (ADCH << 8); - - BIT_CLEAR(ADCSRA, ADEN); //Disable ADC for Changing Channel (see chapter 26.5 of datasheet) - - #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) - if (nChannel==7) { ADMUX = 0x40; } - #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - if( (ADCSRB & 0x08) > 0) { nChannel += 8; } //8 to 15 - if(nChannel == 15) - { - ADMUX = 0x40; //channel 0 - ADCSRB = 0x00; //clear MUX5 bit - } - else if (nChannel == 7) //channel 7 - { - ADMUX = 0x40; - ADCSRB = 0x08; //Set MUX5 bit - } - #endif - else { ADMUX++; } - AnChannel[nChannel] = result; - - BIT_SET(ADCSRA, ADEN); //Enable ADC -} -#endif - -#endif // SENSORS_H +#ifndef SENSORS_H +#define SENSORS_H + +#include "Arduino.h" + + +// The following are alpha values for the ADC filters. +// Their values are from 0 to 255 with 0 being no filtering and 255 being maximum +#define ADCFILTER_TPS 128 +#define ADCFILTER_CLT 180 +#define ADCFILTER_IAT 180 +#define ADCFILTER_O2 128 +#define ADCFILTER_BAT 128 +#define ADCFILTER_MAP 20 //This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response +#define ADCFILTER_BARO 64 + +#define BARO_MIN 87 +#define BARO_MAX 108 + +/* +#if defined(CORE_AVR) + #define ANALOG_ISR +#endif +*/ + +volatile byte flexCounter = 0; +volatile int AnChannel[15]; + +unsigned long MAPrunningValue; //Used for tracking either the total of all MAP readings in this cycle (Event average) or the lowest value detected in this cycle (event minimum) +unsigned int MAPcount; //Number of samples taken in the current MAP cycle +byte MAPcurRev; //Tracks which revolution we're sampling on + +/* + * Simple low pass IIR filter macro for the analog inputs + * This is effectively implementing the smooth filter from http://playground.arduino.cc/Main/Smooth + * But removes the use of floats and uses 8 bits of fixed precision. + */ +#define ADC_FILTER(input, alpha, prior) (((long)input * (256 - alpha) + ((long)prior * alpha))) >> 8 + +void instanteneousMAPReading(); +void readMAP(); +void flexPulse(); + +#if defined(ANALOG_ISR) +//Analog ISR interrupt routine +/* +ISR(ADC_vect) +{ + byte nChannel; + int result = ADCL | (ADCH << 8); + + //ADCSRA = 0x6E; // ADC disabled by clearing bit 7(ADEN) + //BIT_CLEAR(ADCSRA, ADIE); + + nChannel = ADMUX & 0x07; + #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) + if (nChannel==7) { ADMUX = 0x40; } + #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + if(ADCSRB & 0x08) { nChannel += 8; } //8 to 15 + if(nChannel == 15) + { + ADMUX = 0x40; //channel 0 + ADCSRB = 0x00; //clear MUX5 bit + } + else if (nChannel == 7) //channel 7 + { + ADMUX = 0x40; + ADCSRB = 0x08; //Set MUX5 bit + } + #endif + else { ADMUX++; } + AnChannel[nChannel-1] = result; + + //BIT_SET(ADCSRA, ADIE); + //ADCSRA = 0xEE; // ADC Interrupt Flag enabled +} +*/ +ISR(ADC_vect) +{ + byte nChannel = ADMUX & 0x07; + int result = ADCL | (ADCH << 8); + + BIT_CLEAR(ADCSRA, ADEN); //Disable ADC for Changing Channel (see chapter 26.5 of datasheet) + + #if defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2561__) + if (nChannel==7) { ADMUX = 0x40; } + #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) + if( (ADCSRB & 0x08) > 0) { nChannel += 8; } //8 to 15 + if(nChannel == 15) + { + ADMUX = 0x40; //channel 0 + ADCSRB = 0x00; //clear MUX5 bit + } + else if (nChannel == 7) //channel 7 + { + ADMUX = 0x40; + ADCSRB = 0x08; //Set MUX5 bit + } + #endif + else { ADMUX++; } + AnChannel[nChannel] = result; + + BIT_SET(ADCSRA, ADEN); //Enable ADC +} +#endif + +#endif // SENSORS_H From 515cf332f1d952001f61e8247ab87488977b44c5 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 31 Aug 2017 15:03:39 +1000 Subject: [PATCH 104/133] MISRA cleanup --- speeduino/decoders.ino | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 130ecbc3..aeb6eff2 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -1366,7 +1366,7 @@ void triggerPri_Miata9905() { curTime = micros(); curGap = curTime - toothLastToothTime; - if ( curGap >= triggerFilterTime || (currentStatus.startRevolutions == 0) ) + if ( (curGap >= triggerFilterTime) || (currentStatus.startRevolutions == 0) ) { toothCurrentCount++; if( (toothCurrentCount == (triggerActualTeeth + 1)) ) @@ -1418,8 +1418,6 @@ void triggerPri_Miata9905() else { triggerToothAngle = 110; } //61.87 degrees with a target of 70 } - //curGap = curGap >> 1; //Why is this here? - toothLastMinusOneToothTime = toothLastToothTime; toothLastToothTime = curTime; } //Has sync From e7ac7177968d1179c3fb834d14ad1f443e9f70ad Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 31 Aug 2017 18:01:37 +1000 Subject: [PATCH 105/133] Startup improvements on Nissan 360 CAS --- reference/speeduino.ini | 2 +- speeduino/decoders.ino | 61 +++++++++++++++++++++++++++++------------ 2 files changed, 44 insertions(+), 19 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index ff020e32..6a14c723 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -1341,7 +1341,7 @@ menuDialog = main field = "Note: This is the number of revolutions that will be skipped during" field = "cranking before the injectors and coils are fired" field = "Trigger edge", TrigEdge - field = "Secondary trigger edge", TrigEdgeSec, { TrigPattern == 0 || TrigPattern == 2 || TrigPattern == 9 } ;Missing tooth, dual wheel and Miata 9905 + field = "Secondary trigger edge", TrigEdgeSec, { TrigPattern == 0 || TrigPattern == 2 || TrigPattern == 9 || TrigPattern == 12 } ;Missing tooth, dual wheel and Miata 9905 field = "Trigger Filter", TrigFilter field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 } ;Dual wheel, 4G63 and Audi 135 field = "" diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index aeb6eff2..8b12b552 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -1767,24 +1767,19 @@ void triggerPri_Nissan360() toothLastMinusOneToothTime = toothLastToothTime; toothLastToothTime = curTime; - //if ( currentStatus.hasSync == false ) { return; } - - if ( toothCurrentCount == 181) //1 complete crank revolution + if ( currentStatus.hasSync == true ) { - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - currentStatus.startRevolutions++; - } - else if ( toothCurrentCount == 361 ) //2 complete crank revolutions - { - toothCurrentCount = 1; - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - currentStatus.startRevolutions++; //Counter - } - //Recalc the new filter value - //setFilter(curGap); + if ( toothCurrentCount == 361 ) //2 complete crank revolutions + { + toothCurrentCount = 1; + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.startRevolutions++; //Counter + } + //Recalc the new filter value + //setFilter(curGap); + } } void triggerSec_Nissan360() @@ -1798,7 +1793,11 @@ void triggerSec_Nissan360() //Calculate number of primary teeth that this window has been active for - if( (secondaryToothCount == 0) || (READ_SEC_TRIGGER() == LOW) ) { secondaryToothCount = toothCurrentCount; } //This occurs on the first rotation upon powerup OR the start of a secondary window + byte trigEdge; + if(configPage2.TrigEdgeSec == 0) { trigEdge = LOW; } + else { trigEdge = HIGH; } + + if( (secondaryToothCount == 0) || (READ_SEC_TRIGGER() == trigEdge) ) { secondaryToothCount = toothCurrentCount; } //This occurs on the first rotation upon powerup OR the start of a secondary window else { //If we reach here, we are at the end of a secondary window @@ -1887,7 +1886,29 @@ void triggerSec_Nissan360() uint16_t getRPM_Nissan360() { - return stdGetRPM(); + //Can't use stdGetRPM as there is no separate cranking RPM calc (stdGetRPM returns 0 if cranking) + uint16_t tempRPM; + if( (currentStatus.hasSync == true) && (toothLastToothTime != 0) && (toothLastMinusOneToothTime != 0) ) + { + if(currentStatus.startRevolutions < 2) + { + noInterrupts(); + revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime) * 180; + interrupts(); + } + else + { + noInterrupts(); + revolutionTime = (toothOneTime - toothOneMinusOneTime) >> 2; //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) + interrupts(); + } + tempRPM = (US_IN_MINUTE / revolutionTime); //Calc RPM based on last full revolution time (Faster as /) + if(tempRPM >= MAX_RPM) { tempRPM = currentStatus.RPM; } //Sanity check + MAX_STALL_TIME = revolutionTime << 1; //Set the stall time to be twice the current RPM. This is a safe figure as there should be no single revolution where this changes more than this + } + else { tempRPM = 0; } + + return tempRPM; } int getCrankAngle_Nissan360(int timePerDegree) @@ -1902,6 +1923,10 @@ int getCrankAngle_Nissan360(int timePerDegree) } else { crankAngle = (toothCurrentCount * triggerToothAngle); } + if (crankAngle >= 720) { crankAngle -= 720; } + if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } + if (crankAngle < 0) { crankAngle += 360; } + return crankAngle; } From eb400302f4ba3ce9e579eefbefe26c6f73793f14 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 31 Aug 2017 18:20:25 +1000 Subject: [PATCH 106/133] Fix incorrect divide on Nissan 360 --- speeduino/decoders.ino | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 8b12b552..a9527f66 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -1899,7 +1899,7 @@ uint16_t getRPM_Nissan360() else { noInterrupts(); - revolutionTime = (toothOneTime - toothOneMinusOneTime) >> 2; //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) + revolutionTime = (toothOneTime - toothOneMinusOneTime) >> 1; //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) interrupts(); } tempRPM = (US_IN_MINUTE / revolutionTime); //Calc RPM based on last full revolution time (Faster as /) @@ -1915,13 +1915,23 @@ int getCrankAngle_Nissan360(int timePerDegree) { //As each tooth represents 2 crank degrees, we only need to determine whether we're more or less than halfway between teeth to know whether to add another 1 degrees int crankAngle = 0; - unsigned long halfTooth = (toothLastToothTime - toothLastMinusOneToothTime) >> 1; - if ( (micros() - toothLastToothTime) > halfTooth) + int tempToothLastToothTime; + int tempToothLastMinusOneToothTime; + int tempToothCurrentCount; + + noInterrupts(); + tempToothLastToothTime = toothLastToothTime; + tempToothLastMinusOneToothTime = toothLastMinusOneToothTime; + tempToothCurrentCount = toothCurrentCount; + interrupts(); + + unsigned long halfTooth = (tempToothLastToothTime - tempToothLastMinusOneToothTime) >> 1; + if ( (micros() - tempToothLastToothTime) > halfTooth) { //Means we're over halfway to the next tooth, so add on 1 degree - crankAngle = (toothCurrentCount * triggerToothAngle) + 1; + crankAngle = (tempToothCurrentCount * triggerToothAngle) + 1; } - else { crankAngle = (toothCurrentCount * triggerToothAngle); } + else { crankAngle = (tempToothCurrentCount * triggerToothAngle); } if (crankAngle >= 720) { crankAngle -= 720; } if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } From bd54aae5662a10d11e4fdc0e3d79f6cce26f1c91 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 31 Aug 2017 21:04:32 +1000 Subject: [PATCH 107/133] Enable per tooth timing on Nissan 360 --- reference/speeduino.ini | 2 +- speeduino/decoders.ino | 62 ++++++++++++++++++----------------------- 2 files changed, 28 insertions(+), 36 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 6a14c723..2cea254c 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -1346,7 +1346,7 @@ menuDialog = main field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 } ;Dual wheel, 4G63 and Audi 135 field = "" field = "#The below option is EXPERIMENTAL! If unsure what this is, please set to No" - field = "User per tooth ignition calculation", perToothIgn, {TrigPattern == 0 || TrigPattern == 1 || TrigPattern == 2 || TrigPattern == 4} ;Only works for missing tooth, distributor and dual wheel + field = "User per tooth ignition calculation", perToothIgn, {TrigPattern == 0 || TrigPattern == 1 || TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 12 } ;Only works for missing tooth, distributor, dual wheel, nissan 360 dialog = sparkSettings,"Spark Settings",4 field = "Spark output mode", sparkMode diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index a9527f66..7c185dca 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -113,7 +113,7 @@ static inline void doPerToothTiming(uint16_t crankAngle) if ( (toothCurrentCount == ignition1EndTooth) && (ignitionSchedule1.Status == RUNNING) ) { IGN1_COMPARE = IGN1_COUNTER + uS_TO_TIMER_COMPARE( (ignition1EndAngle - crankAngle) * timePerDegree ); } else if ( (toothCurrentCount == ignition2EndTooth) && (ignitionSchedule2.Status == RUNNING) ) { IGN2_COMPARE = IGN2_COUNTER + uS_TO_TIMER_COMPARE( (ignition2EndAngle - crankAngle) * timePerDegree ); } else if ( (toothCurrentCount == ignition3EndTooth) && (ignitionSchedule3.Status == RUNNING) ) { IGN3_COMPARE = IGN3_COUNTER + uS_TO_TIMER_COMPARE( (ignition3EndAngle - crankAngle) * timePerDegree ); } - else if ( (toothCurrentCount == ignition4EndTooth) && (ignitionSchedule4.Status == RUNNING) ) { IGN4_COMPARE = IGN4_COUNTER + uS_TO_TIMER_COMPARE( (ignition4EndAngle - crankAngle) * timePerDegree ); } + else if ( (toothCurrentCount == ignition4EndTooth) && (ignitionSchedule4.Status == RUNNING) ) { IGN4_COMPARE = IGN4_COUNTER + uS_TO_TIMER_COMPARE_SLOW( (ignition4EndAngle - crankAngle) * timePerDegree ); } } /* @@ -1769,7 +1769,6 @@ void triggerPri_Nissan360() if ( currentStatus.hasSync == true ) { - if ( toothCurrentCount == 361 ) //2 complete crank revolutions { toothCurrentCount = 1; @@ -1779,6 +1778,13 @@ void triggerPri_Nissan360() } //Recalc the new filter value //setFilter(curGap); + + //EXPERIMENTAL! + if(configPage1.perToothIgn == true) + { + uint16_t crankAngle = ( (toothCurrentCount-1) * 2 ) + configPage2.triggerAngle; + doPerToothTiming(crankAngle); + } } } @@ -1807,77 +1813,60 @@ void triggerSec_Nissan360() { if(configPage1.nCylinders == 4) { - if( (secondaryDuration >= 15) || (secondaryDuration <= 17) ) //Duration of window = 16 primary teeth + if( (secondaryDuration >= 15) && (secondaryDuration <= 17) ) //Duration of window = 16 primary teeth { toothCurrentCount = 16; //End of first window (The longest) occurs 16 teeth after TDC currentStatus.hasSync = true; } - else if( (secondaryDuration >= 11) || (secondaryDuration <= 13) ) //Duration of window = 12 primary teeth + else if( (secondaryDuration >= 11) && (secondaryDuration <= 13) ) //Duration of window = 12 primary teeth { toothCurrentCount = 102; //End of second window is after 90+12 primary teeth currentStatus.hasSync = true; } - else if( (secondaryDuration >= 7) || (secondaryDuration <= 9) ) //Duration of window = 8 primary teeth + else if( (secondaryDuration >= 7) && (secondaryDuration <= 9) ) //Duration of window = 8 primary teeth { toothCurrentCount = 188; //End of third window is after 90+90+8 primary teeth currentStatus.hasSync = true; } - else if( (secondaryDuration >= 3) || (secondaryDuration <= 5) ) //Duration of window = 4 primary teeth + else if( (secondaryDuration >= 3) && (secondaryDuration <= 5) ) //Duration of window = 4 primary teeth { toothCurrentCount = 274; //End of fourth window is after 90+90+90+4 primary teeth currentStatus.hasSync = true; } + else { currentStatus.hasSync = false; } //This should really never happen } else if(configPage1.nCylinders == 6) { - if( (secondaryDuration >= 23) || (secondaryDuration <= 25) ) //Duration of window = 16 primary teeth - { - toothCurrentCount = 24; //End of first window (The longest) occurs 24 teeth after TDC - currentStatus.hasSync = true; - } - else if( (secondaryDuration >= 19) || (secondaryDuration <= 21) ) //Duration of window = 12 primary teeth - { - toothCurrentCount = 84; //End of second window is after 60+20 primary teeth - currentStatus.hasSync = true; - } - else if( (secondaryDuration >= 15) || (secondaryDuration <= 17) ) //Duration of window = 16 primary teeth + //Pattern on the 6 cylinders is 4-8-12-16-12-8 + //We can therefore only get sync on the 4 and 16 pulses as they are the only unique ones + if( (secondaryDuration >= 15) && (secondaryDuration <= 17) ) //Duration of window = 16 primary teeth { toothCurrentCount = 136; //End of third window is after 60+60+16 primary teeth currentStatus.hasSync = true; } - else if( (secondaryDuration >= 11) || (secondaryDuration <= 13) ) //Duration of window = 12 primary teeth - { - toothCurrentCount = 192; //End of fourth window is after 60+60+60+12 primary teeth - currentStatus.hasSync = true; - } - else if( (secondaryDuration >= 7) || (secondaryDuration <= 9) ) //Duration of window = 8 primary teeth - { - toothCurrentCount = 248; //End of fifth window is after 60+60+60+60+8 primary teeth - currentStatus.hasSync = true; - } - else if( (secondaryDuration >= 3) || (secondaryDuration <= 5) ) //Duration of window = 4 primary teeth + else if( (secondaryDuration >= 3) && (secondaryDuration <= 5) ) //Duration of window = 4 primary teeth { toothCurrentCount = 304; //End of sixth window is after 60+60+60+60+60+4 primary teeth currentStatus.hasSync = true; } } - else { currentStatus.hasSync = false; } //This should really never happen + else { currentStatus.hasSync = false; } //This should really never happen (Only 4 and 6 cylinder engines for this patter) } else { //Already have sync, but do a verify every 720 degrees. if(configPage1.nCylinders == 4) { - if(secondaryDuration >= 15) //Duration of window = 16 primary teeth + if(secondaryDuration >= 15 && (secondaryDuration <= 17)) //Duration of window = 16 primary teeth { toothCurrentCount = 16; //End of first window (The longest) occurs 16 teeth after TDC } } else if(configPage1.nCylinders == 6) { - if(secondaryDuration >= 23) //Duration of window = 24 primary teeth + if(secondaryDuration == 4) { - toothCurrentCount = 24; //End of first window (The longest) occurs 24 teeth after TDC + toothCurrentCount = 304; } } //Cylinder count } //Has sync @@ -1925,13 +1914,13 @@ int getCrankAngle_Nissan360(int timePerDegree) tempToothCurrentCount = toothCurrentCount; interrupts(); + crankAngle = ( (tempToothCurrentCount - 1) * 2) + configPage2.triggerAngle; unsigned long halfTooth = (tempToothLastToothTime - tempToothLastMinusOneToothTime) >> 1; if ( (micros() - tempToothLastToothTime) > halfTooth) { //Means we're over halfway to the next tooth, so add on 1 degree - crankAngle = (tempToothCurrentCount * triggerToothAngle) + 1; + crankAngle += 1; } - else { crankAngle = (tempToothCurrentCount * triggerToothAngle); } if (crankAngle >= 720) { crankAngle -= 720; } if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } @@ -1942,7 +1931,10 @@ int getCrankAngle_Nissan360(int timePerDegree) void triggerSetEndTeeth_Nissan360() { - + ignition1EndTooth = ( (ignition1EndAngle - configPage2.triggerAngle) / 2 ) - 1; + ignition2EndTooth = ( (ignition2EndAngle - configPage2.triggerAngle) / 2 ) - 4; + ignition3EndTooth = ( (ignition3EndAngle - configPage2.triggerAngle) / 2 ) - 1; + ignition4EndTooth = ( (ignition4EndAngle - configPage2.triggerAngle) / 2 ) - 1; } /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- From 3b3309423092e3fd704bdfaaf26f980f8dfe37ea Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sun, 3 Sep 2017 20:28:49 +1000 Subject: [PATCH 108/133] Initial commit of new Ideal PID implementation (Active for boost control) --- reference/speeduino.ini | 56 +++++++++------ speeduino/auxiliaries.h | 4 -- speeduino/auxiliaries.ino | 31 ++++---- speeduino/comms.ino | 4 +- speeduino/globals.h | 12 ++-- speeduino/src/PID_v1/PID_v1.cpp | 121 +++++++++++++++----------------- speeduino/src/PID_v1/PID_v1.h | 18 ++--- 7 files changed, 127 insertions(+), 119 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 2cea254c..5f2b1536 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -389,7 +389,7 @@ page = 6 egoTPSMax = scalar, U08, 12, "%", 1, 0, 0, 120, 0 vvtPin = bits , U08, 13, [0:5], "Board Default", "INVALID", "INVALID", "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" useExtBaro = bits, U08, 13, [6:6], "No", "Yes" - unused6-13f = bits, U08, 13, [7:7], "ONE", "INVALID" + boostMode = bits, U08, 13, [7:7], "Simple", "Full" boostPin = bits, U08, 14, [0:5], "Board Default", "INVALID", "INVALID", "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" unused6-14e = bits, U08, 14, [6:6], "ONE", "INVALID" unused6-14f = bits, U08, 14, [7:7], "ONE", "INVALID" @@ -693,27 +693,29 @@ page = 10 page = 11 #if CELSIUS - crankingEnrichBins = array, U08, 0, [4], "C", 1.0, -40, -40, 215, 0 + crankingEnrichBins = array, U08, 0, [4], "C", 1.0, -40, -40, 215, 0 #else - crankingEnrichBins = array, U08, 0, [4], "F", 1.8, -22.23, -40, 215, 0 + crankingEnrichBins = array, U08, 0, [4], "F", 1.8, -22.23, -40, 215, 0 #endif - crankingEnrichValues= array, U08, 4, [4], "%", 1.0, 0.0, 0, 255, 0 ; Values for the cranking enrichment curve + crankingEnrichValues= array, U08, 4, [4], "%", 1.0, 0.0, 0, 255, 0 ; Values for the cranking enrichment curve - rotaryType = bits , U08, 8, [0:1], "FC", "FD", "RX8", "INVALID" - unused11-8c = bits , U08, 8, [2:2], "Off","On" - unused11-8d = bits , U08, 8, [3:3], "Off","On" - unused11-8e = bits , U08, 8, [4:4], "Off","On" - unused11-8f = bits , U08, 8, [5:5], "Off","On" - unused11-8g = bits , U08, 8, [6:6], "Off","On" - unused11-8h = bits , U08, 8, [7:7], "Off","On" + rotaryType = bits , U08, 8, [0:1], "FC", "FD", "RX8", "INVALID" + unused11-8c = bits , U08, 8, [2:2], "Off","On" + unused11-8d = bits , U08, 8, [3:3], "Off","On" + unused11-8e = bits , U08, 8, [4:4], "Off","On" + unused11-8f = bits , U08, 8, [5:5], "Off","On" + unused11-8g = bits , U08, 8, [6:6], "Off","On" + unused11-8h = bits , U08, 8, [7:7], "Off","On" - rotarySplitValues = array, U08, 9, [8], "degrees", 1.0, 0.0, 0.0, 40, 0 + rotarySplitValues = array, U08, 9, [8], "degrees", 1.0, 0.0, 0.0, 40, 0 #if SPEED_DENSITY - rotarySplitBins = array, U08, 17, [8], "kPa", 2.0, 0.0, 0.0, 511.0, 0 + rotarySplitBins = array, U08, 17, [8], "kPa", 2.0, 0.0, 0.0, 511.0, 0 #elif ALPHA_N - rotarySplitBins = array, U08, 17, [8], "TPS", 2.0, 0.0, 0.0, 100.0, 0 + rotarySplitBins = array, U08, 17, [8], "TPS", 2.0, 0.0, 0.0, 100.0, 0 #endif - unused11_25_192 = array, U08, 25,[167], "RPM", 100.0, 0.0, 100, 25500, 0 + boostSens = scalar, U16, 25, "", 1, 0, 0, 5000, 0 + boostIntv = scalar, U08, 27, "ms", 1, 0, 0, 80, 0 + unused11_28_192 = array, U08, 28,[164], "RPM", 100.0, 0.0, 100, 25500, 0 ;------------------------------------------------------------------------------- @@ -743,8 +745,6 @@ page = 11 requiresPowerCycle = oddfire4 requiresPowerCycle = iacCLminDuty requiresPowerCycle = iacCLmaxDuty - requiresPowerCycle = boostMinDuty - requiresPowerCycle = boostMaxDuty requiresPowerCycle = useExtBaro requiresPowerCycle = baroPin requiresPowerCycle = rotaryType @@ -786,6 +786,7 @@ page = 11 defaultValue = iacCLmaxDuty,100 defaultValue = boostMinDuty,0 defaultValue = boostMaxDuty,100 + defaultValue = boostIntv, 15 defaultValue = sparkDur, 1.0 defaultValue = speeduino_tsCanId, 0 defaultValue = true_address, 256 @@ -1082,6 +1083,8 @@ menuDialog = main cmdtestspk350dc = "this will cycle the output at 50% Duty cycle" cmdtestspk450dc = "this will cycle the output at 50% Duty cycle" + boostIntv = "The closed loop control interval will run every this many ms. Generally values between 50% and 100% of the valve frequency work best" + [UserDefined] ; Enhanced TunerStudio dialogs can be defined here @@ -1444,20 +1447,27 @@ menuDialog = main field = "Use external Baro sensor", useExtBaro field = "Analog pin to use for ext. Baro sensor", baroPin, { useExtBaro } + dialog = boostCut, "Boost Cut" + field = "Boost Cut", boostCutType, { boostEnabled } + field = "Boost Limit", boostLimit, { boostEnabled && boostCutType } dialog = boostSettings, "Boost Control" topicHelp = "http://speeduino.com/wiki/index.php/Boost_Control" field = "Boost Control Enabled", boostEnabled field = "Boost output pin", boostPin, { boostEnabled } field = "Boost solenoid freq.", boostFreq, { boostEnabled } - field = "Boost Cut", boostCutType, { boostEnabled } - field = "Boost Limit", boostLimit, { boostEnabled && boostCutType } - field = "Closed Loop settings" - field = "P", boostKP, { boostEnabled } - field = "I", boostKI, { boostEnabled } - field = "D", boostKD, { boostEnabled } + field = "Valve minimum duty cycle", boostMinDuty, { boostEnabled } field = "Valve maximum duty cycle", boostMaxDuty, { boostEnabled } + panel = boostCut + field = "Closed Loop settings" + field = "Control mode", boostMode, { boostEnabled } + slider = "Sensitivity", boostSens, horizontal, { boostEnabled } + field = "Control interval", boostIntv, { boostEnabled } + field = "P", boostKP, { boostEnabled && boostMode } + field = "I", boostKI, { boostEnabled && boostMode} + field = "D", boostKD, { boostEnabled && boostMode} + dialog = vvtSettings, "VVT Control" field = "VVT Control Enabled", vvtEnabled diff --git a/speeduino/auxiliaries.h b/speeduino/auxiliaries.h index 8ba228db..e97edc07 100644 --- a/speeduino/auxiliaries.h +++ b/speeduino/auxiliaries.h @@ -72,10 +72,6 @@ volatile unsigned int boost_pwm_cur_value; long boost_pwm_target_value; long boost_cl_target_boost; byte boostCounter; -//Boost control uses a scaling factor of 100 on the MAP reading and MAP target in order to have a reasonable response time -//These are the values that are passed to the PID controller -long MAPx100; -long boostTargetx100; volatile bool vvt_pwm_state; unsigned int vvt_pwm_max_count; //Used for variable PWM frequency diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 544c0427..212da2c6 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -5,7 +5,7 @@ A full copy of the license may be found in the projects root directory */ //Old PID method. Retained incase the new one has issues //integerPID boostPID(&MAPx100, &boost_pwm_target_value, &boostTargetx100, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); -integerPIDnew boostPID(¤tStatus.MAP, &boost_pwm_target_value, &boost_cl_target_boost, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call +integerPID_ideal boostPID(¤tStatus.MAP, ¤tStatus.boostDuty , ¤tStatus.boostTarget, &configPage11.boostSens, &configPage11.boostIntv, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call /* Fan control @@ -61,7 +61,7 @@ void initialiseAuxPWM() //TIMSK1 |= (1 << OCIE1A); <---- Not required as compare A is turned on when needed by boost control ENABLE_VVT_TIMER(); //Turn on the B compare unit (ie turn on the interrupt) - boostPID.SetOutputLimits(percentage(configPage1.boostMinDuty, boost_pwm_max_count) , percentage(configPage1.boostMaxDuty, boost_pwm_max_count)); + boostPID.SetOutputLimits(configPage1.boostMinDuty, configPage1.boostMaxDuty); boostPID.SetTunings(configPage3.boostKP, configPage3.boostKI, configPage3.boostKD); boostPID.SetMode(AUTOMATIC); //Turn PID on @@ -73,30 +73,36 @@ void boostControl() { if( configPage3.boostEnabled==1 ) { - if(currentStatus.MAP >= 100) + if(currentStatus.MAP >= 50) { - MAPx100 = currentStatus.MAP * 100; - - if( (boostCounter & 3) == 1) { boost_cl_target_boost = get3DTableValue(&boostTable, currentStatus.TPS, currentStatus.RPM) * 2; } //Boost target table is in kpa and divided by 2 + if( (boostCounter & 3) == 1) { currentStatus.boostTarget = get3DTableValue(&boostTable, currentStatus.TPS, currentStatus.RPM) * 2; } //Boost target table is in kpa and divided by 2 //If flex fuel is enabled, there can be an adder to the boost target based on ethanol content if( configPage1.flexEnabled == 1 ) { int16_t boostAdder = (((int16_t)configPage1.flexBoostHigh - (int16_t)configPage1.flexBoostLow) * currentStatus.ethanolPct) / 100; boostAdder = boostAdder + configPage1.flexBoostLow; //Required in case flexBoostLow is less than 0 - boost_cl_target_boost = boost_cl_target_boost + boostAdder; + currentStatus.boostTarget += boostAdder; } - boostTargetx100 = boost_cl_target_boost * 100; - currentStatus.boostTarget = boost_cl_target_boost >> 1; //Boost target is sent as a byte value to TS and so is divided by 2 + //boostTargetx100 = boost_cl_target_boost * 100; + //currentStatus.boostTarget = boost_cl_target_boost >> 1; //Boost target is sent as a byte value to TS and so is divided by 2 if(currentStatus.boostTarget > 0) { - if( (boostCounter & 31) == 1) { boostPID.SetTunings(configPage3.boostKP, configPage3.boostKI, configPage3.boostKD); } //This only needs to be run very infrequently, once every 32 calls to boostControl(). This is approx. once per second + //This only needs to be run very infrequently, once every 16 calls to boostControl(). This is approx. once per second + if( (boostCounter & 15) == 1) + { + boostPID.SetOutputLimits(configPage1.boostMinDuty, configPage1.boostMaxDuty); + boostPID.SetTunings(configPage3.boostKP, configPage3.boostKI, configPage3.boostKD); + } boostPID.Compute(); - currentStatus.boostDuty = (unsigned long)(boost_pwm_target_value * 100UL) / boost_pwm_max_count; if(currentStatus.boostDuty == 0) { DISABLE_BOOST_TIMER(); BOOST_PIN_LOW(); } //If boost duty is 0, shut everything down - else { ENABLE_BOOST_TIMER(); } //Turn on the compare unit (ie turn on the interrupt) if boost duty >0 + else + { + boost_pwm_target_value = ((unsigned long)(currentStatus.boostDuty) * boost_pwm_max_count) / 10000; //Convert boost duty (Which is a % multipled by 100) to a pwm count + ENABLE_BOOST_TIMER(); //Turn on the compare unit (ie turn on the interrupt) if boost duty >0 + } } else @@ -187,4 +193,3 @@ void vvtControl() vvt_pwm_state = true; } } - diff --git a/speeduino/comms.ino b/speeduino/comms.ino index a6164261..e743d389 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -300,8 +300,8 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte cmd, byte portNum) fullStatus[26] = lowByte(currentStatus.freeRAM); //(byte)((currentStatus.loopsPerSecond >> 8) & 0xFF); fullStatus[27] = highByte(currentStatus.freeRAM); - fullStatus[28] = currentStatus.boostTarget; - fullStatus[29] = currentStatus.boostDuty; + fullStatus[28] = (byte)(currentStatus.boostTarget >> 1); //Divide boost target by 2 to fit in a byte + fullStatus[29] = (byte)(currentStatus.boostDuty / 100); fullStatus[30] = currentStatus.spark; //Spark related bitfield //rpmDOT must be sent as a signed integer diff --git a/speeduino/globals.h b/speeduino/globals.h index 7f0d33cc..3c0ba6ce 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -272,10 +272,10 @@ struct statuses { unsigned int clutchEngagedRPM; bool flatShiftingHard; volatile uint16_t startRevolutions; //A counter for how many revolutions have been completed since sync was achieved. - byte boostTarget; + uint16_t boostTarget; byte testOutputs; bool testActive; - byte boostDuty; + uint16_t boostDuty; //Percentage value * 100 to give 2 points of precision byte idleLoad; //Either the current steps or current duty cycle for the idle control. uint16_t canin[16]; //16bit raw value of selected canin data for channel 0-15 uint8_t current_caninchannel = 0; //start off at channel 0 @@ -470,7 +470,7 @@ struct config3 { byte egoTPSMax; //TPS must be below this for closed loop to function byte vvtPin : 6; byte useExtBaro : 1; - byte unused6_13f : 1; + byte boostMode : 1; //Simple of full boost contrl byte boostPin : 6; byte unused6_14 : 2; byte voltageCorrectionBins[6]; //X axis bins for voltage correction tables @@ -615,8 +615,10 @@ struct config11 { byte rotarySplitValues[8]; byte rotarySplitBins[8]; - byte unused11_25_192[167]; - + uint16_t boostSens; + byte boostIntv; + byte unused11_28_192[164]; + #if defined(CORE_AVR) }; #else diff --git a/speeduino/src/PID_v1/PID_v1.cpp b/speeduino/src/PID_v1/PID_v1.cpp index b870eced..ccd38398 100755 --- a/speeduino/src/PID_v1/PID_v1.cpp +++ b/speeduino/src/PID_v1/PID_v1.cpp @@ -389,32 +389,31 @@ int integerPID::GetMode(){ return inAuto ? AUTOMATIC : MANUAL;} int integerPID::GetDirection(){ return controllerDirection;} //************************************************************************************************************************ -#define PID_P_FACTOR 128 -#define PID_I_FACTOR 1024 -#define PID_D_FACTOR 128 /*Constructor (...)********************************************************* * The parameters specified here are those for for which we can't set up * reliable defaults, so we need to have the user set them. ***************************************************************************/ -integerPIDnew::integerPIDnew(long* Input, long* Output, long* Setpoint, - byte Kp, byte Ki, byte Kd, byte ControllerDirection) +integerPID_ideal::integerPID_ideal(long* Input, uint16_t* Output, uint16_t* Setpoint, uint16_t* Sensitivity, byte* SampleTime, + byte Kp, byte Ki, byte Kd, byte ControllerDirection) { myOutput = Output; myInput = (long*)Input; mySetpoint = Setpoint; - inAuto = false; + mySensitivity = Sensitivity; + mySampleTime = SampleTime; + inAuto = false; - integerPIDnew::SetOutputLimits(0, 255); //default output limit corresponds to + + integerPID_ideal::SetOutputLimits(0, 255); //default output limit corresponds to //the arduino pwm limits - SampleTime = 50; //default Controller Sample Time is 0.05 seconds + integerPID_ideal::SetControllerDirection(ControllerDirection); + integerPID_ideal::SetTunings(Kp, Ki, Kd); - integerPIDnew::SetControllerDirection(ControllerDirection); - integerPIDnew::SetTunings(Kp, Ki, Kd); - - lastTime = millis()-SampleTime; + lastTime = millis()- *mySampleTime; + lastError = 0; } /* Compute() ********************************************************************** @@ -423,32 +422,53 @@ integerPIDnew::integerPIDnew(long* Input, long* Output, long* Setpoint, * pid Output needs to be computed. returns true when the output is computed, * false when nothing has been done. **********************************************************************************/ -bool integerPIDnew::Compute() +bool integerPID_ideal::Compute() { if(!inAuto) return false; unsigned long now = millis(); //SampleTime = (now - lastTime); unsigned long timeChange = (now - lastTime); - if(timeChange >= SampleTime) + if(timeChange >= *mySampleTime) { /*Compute all the working error variables*/ - long input = *myInput; - long error = (*mySetpoint - input) * 100; //Error is multiplied by 100 in order to allow use of 0-100% rather than 0-1 - ITerm += (ki * error)/PID_I_FACTOR; //Note that ki is multiplied by 1024 to avoid floats. It is divided back here AFTER being multiplied by error - if(ITerm > outMax) { ITerm = outMax; } - else if(ITerm < outMin) { ITerm = outMin; } - long dInput = (input - lastInput); + uint16_t sensitivity = 5001 - *mySensitivity; + long limitMultiplier = 100; //How much outMin and OutMax must be multiplied by to get them in the same scale as the output + long unitless_setpoint = (((long)*mySetpoint - 0) * 10000L) / (sensitivity - 0); + long unitless_input = (((long)*myInput - 0) * 10000L) / (sensitivity - 0); + long error = unitless_setpoint - unitless_input; + + ITerm += error; + + uint16_t bias = 20; //Base target DC% + long output = 0; + + if(ki != 0) + { + output = ((outMax - bias) * limitMultiplier * 100) / (long)ki; + if (output < 0) { output = 0; } + } + if (ITerm > output) { ITerm = output; } + + if(ki != 0) + { + output = ((bias - outMin) * limitMultiplier * 100) / (long)ki; + if (output < 0) { output = 0; } + } + else { output = 0; } + if (ITerm < -output) { ITerm = -output; } /*Compute PID Output*/ - long output = (kp * error)/100 + ITerm - (kd * dInput)/100; //100 is used to allow 0-100% rather than 0-1 + output = (kp * error) + (ki * ITerm) + (kd * (error - lastError)); + output = (bias * 100) + (output / 10); + + if(output > (outMax * limitMultiplier)) { output = (outMax * limitMultiplier); } + if(output < (outMin * limitMultiplier)) { output = (outMin * limitMultiplier); } - if(output > outMax) output = outMax; - else if(output < outMin) output = outMin; *myOutput = output; /*Remember some variables for next time*/ - lastInput = input; lastTime = now; + lastError = error; return true; } @@ -461,22 +481,15 @@ bool integerPIDnew::Compute() * it's called automatically from the constructor, but tunings can also * be adjusted on the fly during normal operation ******************************************************************************/ -void integerPIDnew::SetTunings(byte Kp, byte Ki, byte Kd) +void integerPID_ideal::SetTunings(byte Kp, byte Ki, byte Kd) { if (Kp<0 || Ki<0 || Kd<0) return; if ( dispKp == Kp && dispKi == Ki && dispKd == Kd ) return; //Only do anything if one of the values has changed dispKp = Kp; dispKi = Ki; dispKd = Kd; - /* - double SampleTimeInSec = ((double)SampleTime)/1000; - kp = Kp; - ki = Ki * SampleTimeInSec; - kd = Kd / SampleTimeInSec; - */ - long InverseSampleTimeInSec = 1000 / SampleTime; kp = Kp; - ki = (long)((long)Ki * PID_I_FACTOR) / InverseSampleTimeInSec; - kd = (long)Kd * InverseSampleTimeInSec; + ki = Ki; + kd = Kd; if(controllerDirection == REVERSE) { @@ -486,22 +499,6 @@ void integerPIDnew::SetTunings(byte Kp, byte Ki, byte Kd) } } -/* SetSampleTime(...) ********************************************************* - * sets the period, in Milliseconds, at which the calculation is performed - ******************************************************************************/ -void integerPIDnew::SetSampleTime(int NewSampleTime) -{ - if (SampleTime == (unsigned long)NewSampleTime) return; //If new value = old value, no action required. - if (NewSampleTime > 0) - { - unsigned long ratioX1000 = (unsigned long)(NewSampleTime * 1000) / (unsigned long)SampleTime; - ki = ((unsigned long)ki * ratioX1000) / 1000; - //kd /= ratio; - kd = ((unsigned long)kd * 1000) / ratioX1000; - SampleTime = (unsigned long)NewSampleTime; - } -} - /* SetOutputLimits(...)**************************************************** * This function will be used far more often than SetInputLimits. while * the input to the controller will generally be in the 0-1023 range (which is @@ -510,7 +507,7 @@ void integerPIDnew::SetSampleTime(int NewSampleTime) * want to clamp it from 0-125. who knows. at any rate, that can all be done * here. **************************************************************************/ -void integerPIDnew::SetOutputLimits(long Min, long Max) +void integerPID_ideal::SetOutputLimits(long Min, long Max) { if(Min >= Max) return; outMin = Min; @@ -531,12 +528,12 @@ void integerPIDnew::SetOutputLimits(long Min, long Max) * when the transition from manual to auto occurs, the controller is * automatically initialized ******************************************************************************/ -void integerPIDnew::SetMode(int Mode) +void integerPID_ideal::SetMode(int Mode) { bool newAuto = (Mode == AUTOMATIC); if(newAuto == !inAuto) { /*we just went from manual to auto*/ - integerPIDnew::Initialize(); + integerPID_ideal::Initialize(); } inAuto = newAuto; } @@ -545,12 +542,10 @@ void integerPIDnew::SetMode(int Mode) * does all the things that need to happen to ensure a bumpless transfer * from manual to automatic mode. ******************************************************************************/ -void integerPIDnew::Initialize() +void integerPID_ideal::Initialize() { - ITerm = *myOutput; + ITerm = 0; lastInput = *myInput; - if(ITerm > outMax) ITerm = outMax; - else if(ITerm < outMin) ITerm = outMin; } /* SetControllerDirection(...)************************************************* @@ -559,7 +554,7 @@ void integerPIDnew::Initialize() * know which one, because otherwise we may increase the output when we should * be decreasing. This is called from the constructor. ******************************************************************************/ -void integerPIDnew::SetControllerDirection(byte Direction) +void integerPID_ideal::SetControllerDirection(byte Direction) { if(inAuto && Direction !=controllerDirection) { @@ -575,8 +570,8 @@ void integerPIDnew::SetControllerDirection(byte Direction) * functions query the internal state of the PID. they're here for display * purposes. this are the functions the PID Front-end uses for example ******************************************************************************/ -byte integerPIDnew::GetKp(){ return dispKp; } -byte integerPIDnew::GetKi(){ return dispKi;} -byte integerPIDnew::GetKd(){ return dispKd;} -int integerPIDnew::GetMode(){ return inAuto ? AUTOMATIC : MANUAL;} -int integerPIDnew::GetDirection(){ return controllerDirection;} +byte integerPID_ideal::GetKp(){ return dispKp; } +byte integerPID_ideal::GetKi(){ return dispKi;} +byte integerPID_ideal::GetKd(){ return dispKd;} +int integerPID_ideal::GetMode(){ return inAuto ? AUTOMATIC : MANUAL;} +int integerPID_ideal::GetDirection(){ return controllerDirection;} diff --git a/speeduino/src/PID_v1/PID_v1.h b/speeduino/src/PID_v1/PID_v1.h index d2c8330b..6332251a 100755 --- a/speeduino/src/PID_v1/PID_v1.h +++ b/speeduino/src/PID_v1/PID_v1.h @@ -152,7 +152,7 @@ class integerPID bool inAuto; }; -class integerPIDnew +class integerPID_ideal { @@ -165,7 +165,7 @@ class integerPIDnew #define REVERSE 1 //commonly used functions ************************************************************************** - integerPIDnew(long*, long*, long*, // * constructor. links the PID to the Input, Output, and + integerPID_ideal(long*, uint16_t*, uint16_t*, uint16_t*, byte*, // * constructor. links the PID to the Input, Output, and byte, byte, byte, byte); // Setpoint. Initial tuning parameters are also set here void SetMode(int Mode); // * sets PID to either Manual (0) or Auto (non-0) @@ -189,8 +189,6 @@ class integerPIDnew // means the output will increase when error is positive. REVERSE // means the opposite. it's very unlikely that this will be needed // once it is set in the constructor. - void SetSampleTime(int); // * sets the frequency, in Milliseconds, with which - // the PID calculation is performed. default is 100 @@ -214,15 +212,17 @@ class integerPIDnew int controllerDirection; - long *myInput; // * Pointers to the Input, Output, and Setpoint variables - long *myOutput; // This creates a hard link between the variables and the - long *mySetpoint; // PID, freeing the user from having to constantly tell us - // what these values are. with pointers we'll just know. + long *myInput; // + uint16_t *myOutput; // This is a percentage figure multipled by 100 (To give 2 points of precision) + uint16_t *mySetpoint; // + uint16_t *mySensitivity; + byte *mySampleTime; + unsigned long lastTime; + long lastError; long ITerm, lastInput; - unsigned long SampleTime; long outMin, outMax; bool inAuto; }; From 4e858f1ca894dc5aab0482852ffb8eaa1fdf894d Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 4 Sep 2017 11:50:55 +1000 Subject: [PATCH 109/133] Completed new PID mode for boost control --- reference/speeduino.ini | 5 +++- speeduino/auxiliaries.ino | 41 +++++++++++++++----------- speeduino/globals.h | 3 ++ speeduino/speeduino.ino | 11 ++++--- speeduino/src/PID_v1/PID_v1.cpp | 51 +++++++++++---------------------- speeduino/src/PID_v1/PID_v1.h | 6 ++-- 6 files changed, 56 insertions(+), 61 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 5f2b1536..6c09fd12 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -714,7 +714,7 @@ page = 11 rotarySplitBins = array, U08, 17, [8], "TPS", 2.0, 0.0, 0.0, 100.0, 0 #endif boostSens = scalar, U16, 25, "", 1, 0, 0, 5000, 0 - boostIntv = scalar, U08, 27, "ms", 1, 0, 0, 80, 0 + boostIntv = scalar, U08, 27, "ms", 1, 0, 0, 250, 0 unused11_28_192 = array, U08, 28,[164], "RPM", 100.0, 0.0, 100, 25500, 0 ;------------------------------------------------------------------------------- @@ -786,6 +786,7 @@ page = 11 defaultValue = iacCLmaxDuty,100 defaultValue = boostMinDuty,0 defaultValue = boostMaxDuty,100 + defaultValue = boostSens, 2000 defaultValue = boostIntv, 15 defaultValue = sparkDur, 1.0 defaultValue = speeduino_tsCanId, 0 @@ -1297,11 +1298,13 @@ menuDialog = main dialog = fuelpump, "Fuel pump" field = "Fuel pump pin", fuelPumpPin + field = "Fuel pump prime duration", fpPrime dialog = crankingEnrichDialog, "Cranking Enrichment", yAxis panel = cranking_enrich_curve dialog = crankingIgnOptions, "Cranking Timing", yAxis + field = "Cranking advance Angle", CrankAng field = "Cranking bypass", ignBypassEnable field = "Bypass output pin", ignBypassPin { ignBypassEnable } field = "Fix cranking timing with trigger", ignCranklock, { TrigPattern == 1 || TrigPattern == 4 || TrigPattern == 10} diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 212da2c6..fbdf70ef 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -62,21 +62,21 @@ void initialiseAuxPWM() ENABLE_VVT_TIMER(); //Turn on the B compare unit (ie turn on the interrupt) boostPID.SetOutputLimits(configPage1.boostMinDuty, configPage1.boostMaxDuty); - boostPID.SetTunings(configPage3.boostKP, configPage3.boostKI, configPage3.boostKD); - boostPID.SetMode(AUTOMATIC); //Turn PID on + if(configPage3.boostMode == BOOST_MODE_SIMPLE) { boostPID.SetTunings(100, 100, 100); } + else { boostPID.SetTunings(configPage3.boostKP, configPage3.boostKI, configPage3.boostKD); } currentStatus.boostDuty = 0; boostCounter = 0; } +#define BOOST_HYSTER 40 void boostControl() { if( configPage3.boostEnabled==1 ) { - if(currentStatus.MAP >= 50) + if( (boostCounter & 3) == 1) { currentStatus.boostTarget = get3DTableValue(&boostTable, currentStatus.TPS, currentStatus.RPM) * 2; } //Boost target table is in kpa and divided by 2 + if(currentStatus.MAP >= (currentStatus.boostTarget - BOOST_HYSTER) ) { - if( (boostCounter & 3) == 1) { currentStatus.boostTarget = get3DTableValue(&boostTable, currentStatus.TPS, currentStatus.RPM) * 2; } //Boost target table is in kpa and divided by 2 - //If flex fuel is enabled, there can be an adder to the boost target based on ethanol content if( configPage1.flexEnabled == 1 ) { @@ -85,38 +85,39 @@ void boostControl() currentStatus.boostTarget += boostAdder; } - //boostTargetx100 = boost_cl_target_boost * 100; - //currentStatus.boostTarget = boost_cl_target_boost >> 1; //Boost target is sent as a byte value to TS and so is divided by 2 if(currentStatus.boostTarget > 0) { //This only needs to be run very infrequently, once every 16 calls to boostControl(). This is approx. once per second if( (boostCounter & 15) == 1) { boostPID.SetOutputLimits(configPage1.boostMinDuty, configPage1.boostMaxDuty); - boostPID.SetTunings(configPage3.boostKP, configPage3.boostKI, configPage3.boostKD); + + if(configPage3.boostMode == BOOST_MODE_SIMPLE) { boostPID.SetTunings(100, 100, 100); } + else { boostPID.SetTunings(configPage3.boostKP, configPage3.boostKI, configPage3.boostKD); } } - boostPID.Compute(); + byte PIDcomputed = boostPID.Compute(); //Compute() returns false if the required interval has not yet passed. if(currentStatus.boostDuty == 0) { DISABLE_BOOST_TIMER(); BOOST_PIN_LOW(); } //If boost duty is 0, shut everything down else { - boost_pwm_target_value = ((unsigned long)(currentStatus.boostDuty) * boost_pwm_max_count) / 10000; //Convert boost duty (Which is a % multipled by 100) to a pwm count - ENABLE_BOOST_TIMER(); //Turn on the compare unit (ie turn on the interrupt) if boost duty >0 + if(PIDcomputed == true) + { + boost_pwm_target_value = ((unsigned long)(currentStatus.boostDuty) * boost_pwm_max_count) / 10000; //Convert boost duty (Which is a % multipled by 100) to a pwm count + ENABLE_BOOST_TIMER(); //Turn on the compare unit (ie turn on the interrupt) if boost duty >0 + } } } else { //If boost target is 0, turn everything off - DISABLE_BOOST_TIMER(); //Turn off timer - BOOST_PIN_LOW(); + boostDisable(); } } else { - //Boost control does nothing if kPa below 100 - DISABLE_BOOST_TIMER(); //Turn off timer - BOOST_PIN_LOW(); //Make sure solenoid is off (0% duty) + //Boost control does nothing if kPa below the hyster point + boostDisable(); } } else { DISABLE_BOOST_TIMER(); } // Disable timer channel @@ -150,6 +151,14 @@ void vvtControl() else { DISABLE_VVT_TIMER(); } // Disable timer channel } +void boostDisable() +{ + boostPID.Initialize(); //This resets the ITerm value to prevent rubber banding + currentStatus.boostDuty = 0; + DISABLE_BOOST_TIMER(); //Turn off timer + BOOST_PIN_LOW(); //Make sure solenoid is off (0% duty) +} + //The interrupt to control the Boost PWM #if defined(CORE_AVR) ISR(TIMER1_COMPA_vect) diff --git a/speeduino/globals.h b/speeduino/globals.h index 3c0ba6ce..dbaf2583 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -110,6 +110,9 @@ #define ROTARY_IGN_FD 1 #define ROTARY_IGN_RX8 2 +#define BOOST_MODE_SIMPLE 0 +#define BOOST_MODE_FULL 1 + #define SIZE_BYTE 8 #define SIZE_INT 16 diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 6397acf5..d5b80a6a 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -123,7 +123,7 @@ void (*ign4EndFunction)(); void (*ign5StartFunction)(); void (*ign5EndFunction)(); -int timePerDegree; +volatile int timePerDegree; byte degreesPerLoop; //The number of crank degrees that pass for each mainloop of the program volatile bool fpPrimed = false; //Tracks whether or not the fuel pump priming has been completed yet bool initialisationComplete = false; //Tracks whether the setup() functino has run completely @@ -723,8 +723,7 @@ void loop() currentStatus.rpmDOT = 0; ignitionOn = false; fuelOn = false; - if (fpPrimed) { digitalWrite(pinFuelPump, LOW); } //Turn off the fuel pump, but only if the priming is complete - fuelPumpOn = false; + if (fpPrimed == true) { digitalWrite(pinFuelPump, LOW); fuelPumpOn = false; } //Turn off the fuel pump, but only if the priming is complete disableIdle(); //Turn off the idle PWM BIT_CLEAR(currentStatus.engine, BIT_ENGINE_CRANK); //Clear cranking bit (Can otherwise get stuck 'on' even with 0 rpm) BIT_CLEAR(currentStatus.engine, BIT_ENGINE_WARMUP); //Same as above except for WUE @@ -735,8 +734,7 @@ void loop() VVT_PIN_LOW(); DISABLE_VVT_TIMER(); - DISABLE_BOOST_TIMER(); //Turn off timer - BOOST_PIN_LOW(); + boostDisable(); } //Uncomment the following for testing @@ -794,9 +792,10 @@ void loop() //And check whether the tooth log buffer is ready if(toothHistoryIndex > TOOTH_LOG_SIZE) { BIT_SET(currentStatus.squirt, BIT_SQUIRT_TOOTHLOG1READY); } - //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough + //currentStatus.RPM = 3000; boostControl(); + } if(BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) //Every 64 loops { diff --git a/speeduino/src/PID_v1/PID_v1.cpp b/speeduino/src/PID_v1/PID_v1.cpp index ccd38398..3b81dcb5 100755 --- a/speeduino/src/PID_v1/PID_v1.cpp +++ b/speeduino/src/PID_v1/PID_v1.cpp @@ -389,6 +389,7 @@ int integerPID::GetMode(){ return inAuto ? AUTOMATIC : MANUAL;} int integerPID::GetDirection(){ return controllerDirection;} //************************************************************************************************************************ +#define limitMultiplier 100 //How much outMin and OutMax must be multiplied by to get them in the same scale as the output /*Constructor (...)********************************************************* * The parameters specified here are those for for which we can't set up @@ -403,11 +404,8 @@ integerPID_ideal::integerPID_ideal(long* Input, uint16_t* Output, uint16_t* Setp mySetpoint = Setpoint; mySensitivity = Sensitivity; mySampleTime = SampleTime; - inAuto = false; - - integerPID_ideal::SetOutputLimits(0, 255); //default output limit corresponds to - //the arduino pwm limits + integerPID_ideal::SetOutputLimits(20, 80); //default output limits integerPID_ideal::SetControllerDirection(ControllerDirection); integerPID_ideal::SetTunings(Kp, Ki, Kd); @@ -424,7 +422,6 @@ integerPID_ideal::integerPID_ideal(long* Input, uint16_t* Output, uint16_t* Setp **********************************************************************************/ bool integerPID_ideal::Compute() { - if(!inAuto) return false; unsigned long now = millis(); //SampleTime = (now - lastTime); unsigned long timeChange = (now - lastTime); @@ -432,14 +429,13 @@ bool integerPID_ideal::Compute() { /*Compute all the working error variables*/ uint16_t sensitivity = 5001 - *mySensitivity; - long limitMultiplier = 100; //How much outMin and OutMax must be multiplied by to get them in the same scale as the output long unitless_setpoint = (((long)*mySetpoint - 0) * 10000L) / (sensitivity - 0); long unitless_input = (((long)*myInput - 0) * 10000L) / (sensitivity - 0); long error = unitless_setpoint - unitless_input; ITerm += error; - uint16_t bias = 20; //Base target DC% + uint16_t bias = 50; //Base target DC% long output = 0; if(ki != 0) @@ -459,7 +455,7 @@ bool integerPID_ideal::Compute() /*Compute PID Output*/ output = (kp * error) + (ki * ITerm) + (kd * (error - lastError)); - output = (bias * 100) + (output / 10); + output = (bias * limitMultiplier) + (output / 10); //output is % multipled by 1000. To get % with 2 decimal places, divide it by 10. Likewise, bias is % in whole numbers. Multiply it by 100 to get it with 2 places. if(output > (outMax * limitMultiplier)) { output = (outMax * limitMultiplier); } if(output < (outMin * limitMultiplier)) { output = (outMin * limitMultiplier); } @@ -509,33 +505,21 @@ void integerPID_ideal::SetTunings(byte Kp, byte Ki, byte Kd) **************************************************************************/ void integerPID_ideal::SetOutputLimits(long Min, long Max) { - if(Min >= Max) return; - outMin = Min; - outMax = Max; - - if(inAuto) + if(Min < Max) { - if(*myOutput > outMax) *myOutput = outMax; - else if(*myOutput < outMin) *myOutput = outMin; - - if(ITerm > outMax) ITerm= outMax; - else if(ITerm < outMin) ITerm= outMin; + outMin = Min; + outMax = Max; } -} +/* + long outMax_resized = outMax * limitMultiplier; + long outMin_resized = outMin * limitMultiplier; -/* SetMode(...)**************************************************************** - * Allows the controller Mode to be set to manual (0) or Automatic (non-zero) - * when the transition from manual to auto occurs, the controller is - * automatically initialized - ******************************************************************************/ -void integerPID_ideal::SetMode(int Mode) -{ - bool newAuto = (Mode == AUTOMATIC); - if(newAuto == !inAuto) - { /*we just went from manual to auto*/ - integerPID_ideal::Initialize(); - } - inAuto = newAuto; + if(*myOutput > outMax_resized) { *myOutput = outMax_resized; } + else if(*myOutput < outMin_resized) { *myOutput = outMin_resized; } + + if(ITerm > outMax_resized) ITerm = outMax_resized; + else if(ITerm < outMin_resized) ITerm = outMin_resized; +*/ } /* Initialize()**************************************************************** @@ -556,7 +540,7 @@ void integerPID_ideal::Initialize() ******************************************************************************/ void integerPID_ideal::SetControllerDirection(byte Direction) { - if(inAuto && Direction !=controllerDirection) + if(Direction != controllerDirection) { kp = (0 - kp); ki = (0 - ki); @@ -573,5 +557,4 @@ void integerPID_ideal::SetControllerDirection(byte Direction) byte integerPID_ideal::GetKp(){ return dispKp; } byte integerPID_ideal::GetKi(){ return dispKi;} byte integerPID_ideal::GetKd(){ return dispKd;} -int integerPID_ideal::GetMode(){ return inAuto ? AUTOMATIC : MANUAL;} int integerPID_ideal::GetDirection(){ return controllerDirection;} diff --git a/speeduino/src/PID_v1/PID_v1.h b/speeduino/src/PID_v1/PID_v1.h index 6332251a..2646c7ff 100755 --- a/speeduino/src/PID_v1/PID_v1.h +++ b/speeduino/src/PID_v1/PID_v1.h @@ -168,8 +168,6 @@ class integerPID_ideal integerPID_ideal(long*, uint16_t*, uint16_t*, uint16_t*, byte*, // * constructor. links the PID to the Input, Output, and byte, byte, byte, byte); // Setpoint. Initial tuning parameters are also set here - void SetMode(int Mode); // * sets PID to either Manual (0) or Auto (non-0) - bool Compute(); // * performs the PID calculation. it should be // called every time loop() cycles. ON/OFF and // calculation frequency can be set using SetMode @@ -198,9 +196,10 @@ class integerPID_ideal byte GetKd(); // where it's important to know what is actually int GetMode(); // inside the PID. int GetDirection(); // + void Initialize(); private: - void Initialize(); + byte dispKp; // * we'll hold on to the tuning parameters in user-entered byte dispKi; // format for display purposes @@ -224,6 +223,5 @@ class integerPID_ideal long ITerm, lastInput; long outMin, outMax; - bool inAuto; }; #endif From 72c2a3fb4b537991acb2cf6067bdcdd2f5ab0f6b Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Wed, 6 Sep 2017 09:40:56 +1000 Subject: [PATCH 110/133] Change MAP variable type to long for boost levels > 255kPa --- speeduino/utils.ino | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/speeduino/utils.ino b/speeduino/utils.ino index d82aaa05..a6225c89 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -211,7 +211,7 @@ void setPinMapping(byte boardID) pinCLT = A3; //CLS sensor pin pinO2 = A4; //O2 Sensor pin pinBat = A5; //Battery reference voltage pin - pinBaro = A6; + pinBaro = A6; pinStepperDir = PD8; //Direction pin for DRV8825 driver pinStepperStep = PB15; //Step pin for DRV8825 driver pinStepperEnable = PD9; //Enable pin for DRV8825 @@ -285,7 +285,7 @@ void setPinMapping(byte boardID) pinIdle1 = 2; //Single wire idle control pinBoost = 4; pinIdle2 = 4; //2 wire idle control (Note this is shared with boost!!!) - pinFuelPump = 37; //Fuel pump output (Goes to ULN2803) + pinFuelPump = 37; //Fuel pump output pinStepperDir = 16; //Direction pin for DRV8825 driver pinStepperStep = 17; //Step pin for DRV8825 driver pinFan = 47; //Pin for the fan output (Goes to ULN2803) @@ -824,7 +824,7 @@ void initialiseTriggers() This function is called by PW_SD and PW_AN for speed0density and pure Alpha-N calculations respectively. */ -unsigned int PW(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen) +unsigned int PW(int REQ_FUEL, byte VE, long MAP, int corrections, int injOpen) { //Standard float version of the calculation //return (REQ_FUEL * (float)(VE/100.0) * (float)(MAP/100.0) * (float)(TPS/100.0) * (float)(corrections/100.0) + injOpen); @@ -866,7 +866,7 @@ unsigned int PW(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen) } //Convenience functions for Speed Density and Alpha-N -unsigned int PW_SD(int REQ_FUEL, byte VE, byte MAP, int corrections, int injOpen) +unsigned int PW_SD(int REQ_FUEL, byte VE, long MAP, int corrections, int injOpen) { return PW(REQ_FUEL, VE, MAP, corrections, injOpen); //return PW(REQ_FUEL, VE, 100, corrections, injOpen); From 7c0932a396d5dae2c039b57e99ba1381801d7875 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 7 Sep 2017 06:20:22 +1000 Subject: [PATCH 111/133] Adjust boost timings slightly --- reference/speeduino.ini | 4 ++-- speeduino/auxiliaries.ino | 4 ++-- speeduino/speeduino.ino | 11 ++++++++--- speeduino/timers.ino | 15 ++++++++++----- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 6c09fd12..4bf8c16f 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -787,7 +787,7 @@ page = 11 defaultValue = boostMinDuty,0 defaultValue = boostMaxDuty,100 defaultValue = boostSens, 2000 - defaultValue = boostIntv, 15 + defaultValue = boostIntv, 30 defaultValue = sparkDur, 1.0 defaultValue = speeduino_tsCanId, 0 defaultValue = true_address, 256 @@ -1349,7 +1349,7 @@ menuDialog = main field = "Trigger edge", TrigEdge field = "Secondary trigger edge", TrigEdgeSec, { TrigPattern == 0 || TrigPattern == 2 || TrigPattern == 9 || TrigPattern == 12 } ;Missing tooth, dual wheel and Miata 9905 field = "Trigger Filter", TrigFilter - field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 } ;Dual wheel, 4G63 and Audi 135 + field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 || TrigPattern == 12 } ;Dual wheel, 4G63, Audi 135, Nissan 360 field = "" field = "#The below option is EXPERIMENTAL! If unsure what this is, please set to No" field = "User per tooth ignition calculation", perToothIgn, {TrigPattern == 0 || TrigPattern == 1 || TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 12 } ;Only works for missing tooth, distributor, dual wheel, nissan 360 diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index fbdf70ef..e164d0f1 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -74,7 +74,7 @@ void boostControl() { if( configPage3.boostEnabled==1 ) { - if( (boostCounter & 3) == 1) { currentStatus.boostTarget = get3DTableValue(&boostTable, currentStatus.TPS, currentStatus.RPM) * 2; } //Boost target table is in kpa and divided by 2 + if( (boostCounter & 7) == 1) { currentStatus.boostTarget = get3DTableValue(&boostTable, currentStatus.TPS, currentStatus.RPM) * 2; } //Boost target table is in kpa and divided by 2 if(currentStatus.MAP >= (currentStatus.boostTarget - BOOST_HYSTER) ) { //If flex fuel is enabled, there can be an adder to the boost target based on ethanol content @@ -96,7 +96,7 @@ void boostControl() else { boostPID.SetTunings(configPage3.boostKP, configPage3.boostKI, configPage3.boostKD); } } - byte PIDcomputed = boostPID.Compute(); //Compute() returns false if the required interval has not yet passed. + bool PIDcomputed = boostPID.Compute(); //Compute() returns false if the required interval has not yet passed. if(currentStatus.boostDuty == 0) { DISABLE_BOOST_TIMER(); BOOST_PIN_LOW(); } //If boost duty is 0, shut everything down else { diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index d5b80a6a..c4416578 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -747,6 +747,14 @@ void loop() //----------------------------------------------------------------------------------------------------- readMAP(); + if(BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) + { + BIT_CLEAR(TIMER_mask, BIT_TIMER_30HZ); + //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough + //currentStatus.RPM = 3000; + boostControl(); + } + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) //Every 32 loops { BIT_CLEAR(TIMER_mask, BIT_TIMER_15HZ); @@ -792,9 +800,6 @@ void loop() //And check whether the tooth log buffer is ready if(toothHistoryIndex > TOOTH_LOG_SIZE) { BIT_SET(currentStatus.squirt, BIT_SQUIRT_TOOTHLOG1READY); } - //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough - //currentStatus.RPM = 3000; - boostControl(); } if(BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) //Every 64 loops diff --git a/speeduino/timers.ino b/speeduino/timers.ino index b4ff21b3..a3fc8856 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -2,7 +2,7 @@ Speeduino - Simple engine management for the Arduino Mega 2560 platform Copyright (C) Josh Stewart A full copy of the license may be found in the projects root directory -*/ +*/ /* Timers are used for having actions performed repeatedly at a fixed interval (Eg every 100ms) @@ -97,7 +97,7 @@ void oneMSInterval() //Most ARM chips can simply call a function loop33ms = 0; BIT_SET(TIMER_mask, BIT_TIMER_30HZ); } - + //Loop executed every 100ms loop //Anything inside this if statement will run every 100ms. if (loop100ms == 100) @@ -106,7 +106,7 @@ void oneMSInterval() //Most ARM chips can simply call a function BIT_SET(TIMER_mask, BIT_TIMER_10HZ); #if defined(CORE_STM32) //debug purpose, only visal for running code digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); - #endif + #endif currentStatus.rpmDOT = (currentStatus.RPM - lastRPM_100ms) * 10; //This is the RPM per second that the engine has accelerated/decelleratedin the last loop lastRPM_100ms = currentStatus.RPM; //Record the current RPM for next calc @@ -160,12 +160,17 @@ void oneMSInterval() //Most ARM chips can simply call a function } //Check whether fuel pump priming is complete - if(!fpPrimed) + if(fpPrimed == false) { if(currentStatus.secl >= configPage1.fpPrime) { fpPrimed = true; //Mark the priming as being completed - if(currentStatus.RPM == 0) { digitalWrite(pinFuelPump, LOW); fuelPumpOn = false; } //If we reach here then the priming is complete, however only turn off the fuel pump if the engine isn't running + if(currentStatus.RPM == 0) + { + //If we reach here then the priming is complete, however only turn off the fuel pump if the engine isn't running + digitalWrite(pinFuelPump, LOW); + fuelPumpOn = false; + } } } //************************************************************************************************************************************************** From 62d3c19c3100d6ffe4ee106bd3df35cb068c0443 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 7 Sep 2017 08:58:24 +1000 Subject: [PATCH 112/133] Adjust for full sensitivity scale on ideal PID controller --- speeduino/src/PID_v1/PID_v1.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/speeduino/src/PID_v1/PID_v1.cpp b/speeduino/src/PID_v1/PID_v1.cpp index 3b81dcb5..1e69e71f 100755 --- a/speeduino/src/PID_v1/PID_v1.cpp +++ b/speeduino/src/PID_v1/PID_v1.cpp @@ -428,7 +428,7 @@ bool integerPID_ideal::Compute() if(timeChange >= *mySampleTime) { /*Compute all the working error variables*/ - uint16_t sensitivity = 5001 - *mySensitivity; + uint16_t sensitivity = 10001 - (*mySensitivity * 2); long unitless_setpoint = (((long)*mySetpoint - 0) * 10000L) / (sensitivity - 0); long unitless_input = (((long)*myInput - 0) * 10000L) / (sensitivity - 0); long error = unitless_setpoint - unitless_input; @@ -530,6 +530,7 @@ void integerPID_ideal::Initialize() { ITerm = 0; lastInput = *myInput; + lastError = 0; } /* SetControllerDirection(...)************************************************* From 70693ae3a8011a1a9fc141be85c6cc3c31b3f819 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sat, 9 Sep 2017 22:07:12 +1000 Subject: [PATCH 113/133] Further improvements to the Nissan 360 pattern --- speeduino/decoders.ino | 46 +++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 7c185dca..cb015d6f 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -853,6 +853,8 @@ uint16_t getRPM_4G63() else { tempRPM = stdGetRPM(); + //EXPERIMENTAL! Add/subtract RPM based on the last rpmDOT calc + //tempRPM += (micros() - toothOneTime) * currentStatus.rpmDOT MAX_STALL_TIME = revolutionTime << 1; //Set the stall time to be twice the current RPM. This is a safe figure as there should be no single revolution where this changes more than this } } @@ -1415,7 +1417,7 @@ void triggerPri_Miata9905() triggerFilterTime = 0; triggerSecFilterTime = 0; if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; } //96.26 degrees with a target of 110 - else { triggerToothAngle = 110; } //61.87 degrees with a target of 70 + else { triggerToothAngle = 110; } } toothLastMinusOneToothTime = toothLastToothTime; @@ -1458,7 +1460,7 @@ uint16_t getRPM_Miata9905() //During cranking, RPM is calculated 4 times per revolution, once for each tooth on the crank signal. //Because these signals aren't even (Alternating 110 and 70 degrees), this needs a special function uint16_t tempRPM = 0; - if(currentStatus.RPM < currentStatus.crankRPM) + if( (currentStatus.RPM < currentStatus.crankRPM) && (currentStatus.hasSync == true) ) { if( (toothLastToothTime == 0) || (toothLastMinusOneToothTime == 0) ) { tempRPM = 0; } else @@ -1759,7 +1761,7 @@ void triggerSetup_Nissan360() void triggerPri_Nissan360() { curTime = micros(); - //curGap = curTime - toothLastToothTime; + curGap = curTime - toothLastToothTime; //if ( curGap < triggerFilterTime ) { return; } toothCurrentCount++; //Increment the tooth counter //addToothLogEntry(curGap); Disable tooth logging on this decoder due to overhead @@ -1782,9 +1784,13 @@ void triggerPri_Nissan360() //EXPERIMENTAL! if(configPage1.perToothIgn == true) { - uint16_t crankAngle = ( (toothCurrentCount-1) * 2 ) + configPage2.triggerAngle; + int16_t crankAngle = ( (toothCurrentCount-1) * 2 ) + configPage2.triggerAngle; + //if(crankAngle > CRANK_ANGLE_MAX_IGN) { crankAngle -= CRANK_ANGLE_MAX_IGN; } + //if(crankAngle < CRANK_ANGLE_MAX_IGN) { doPerToothTiming(crankAngle); } + + timePerDegree = curGap >> 1;; //The time per crank degree is simply the time between this tooth and the last one divided by 2 } } @@ -1854,21 +1860,24 @@ void triggerSec_Nissan360() } else { - //Already have sync, but do a verify every 720 degrees. - if(configPage1.nCylinders == 4) + if (configPage2.useResync == true) { - if(secondaryDuration >= 15 && (secondaryDuration <= 17)) //Duration of window = 16 primary teeth + //Already have sync, but do a verify every 720 degrees. + if(configPage1.nCylinders == 4) { - toothCurrentCount = 16; //End of first window (The longest) occurs 16 teeth after TDC + if( (secondaryDuration >= 15) && (secondaryDuration <= 17) ) //Duration of window = 16 primary teeth + { + toothCurrentCount = 16; //End of first window (The longest) occurs 16 teeth after TDC + } } - } - else if(configPage1.nCylinders == 6) - { - if(secondaryDuration == 4) + else if(configPage1.nCylinders == 6) { - toothCurrentCount = 304; - } - } //Cylinder count + if(secondaryDuration == 4) + { + toothCurrentCount = 304; + } + } //Cylinder count + } //use resync } //Has sync } //First getting sync or not } @@ -1931,10 +1940,11 @@ int getCrankAngle_Nissan360(int timePerDegree) void triggerSetEndTeeth_Nissan360() { - ignition1EndTooth = ( (ignition1EndAngle - configPage2.triggerAngle) / 2 ) - 1; + //This uses 4 prior teeth, just to ensure there is sufficient time to set the schedule etc + ignition1EndTooth = ( (ignition1EndAngle - configPage2.triggerAngle) / 2 ) - 4; ignition2EndTooth = ( (ignition2EndAngle - configPage2.triggerAngle) / 2 ) - 4; - ignition3EndTooth = ( (ignition3EndAngle - configPage2.triggerAngle) / 2 ) - 1; - ignition4EndTooth = ( (ignition4EndAngle - configPage2.triggerAngle) / 2 ) - 1; + ignition3EndTooth = ( (ignition3EndAngle - configPage2.triggerAngle) / 2 ) - 4; + ignition4EndTooth = ( (ignition4EndAngle - configPage2.triggerAngle) / 2 ) - 4; } /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- From d8d1d8ff04c0c25928a4570e2ab85f134861c8fc Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sat, 9 Sep 2017 22:07:46 +1000 Subject: [PATCH 114/133] August signature and base tune --- reference/Speeduino base tune.msq | 11 +++++------ reference/speeduino.ini | 2 +- speeduino/comms.ino | 4 ++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/reference/Speeduino base tune.msq b/reference/Speeduino base tune.msq index 92ad043c..6ab52dd9 100644 --- a/reference/Speeduino base tune.msq +++ b/reference/Speeduino base tune.msq @@ -1,7 +1,7 @@ - - + + "CAN ID 0" @@ -122,7 +122,7 @@ "Off" "Paired" "No" -"No" +"Off" 1.0 90.0 50.0 @@ -222,7 +222,6 @@ "Dwell control" "On" "Wasted Spark" -"Off" "Off" "On" 4.5 @@ -367,7 +366,7 @@ 70.0 "Board Default" "No" -"ONE" +"Simple" "Board Default" "ONE" "ONE" @@ -805,7 +804,7 @@ 255.0 255.0 255.0 -255.0 +1.0 diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 4bf8c16f..6e5c9394 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -7,7 +7,7 @@ queryCommand = "Q" ;signature = 20 - signature = "speeduino 201708-dev" + signature = "speeduino 201708" versionInfo = "S" ; Put this in the title bar. [TunerStudio] diff --git a/speeduino/comms.ino b/speeduino/comms.ino index e743d389..d3a6e215 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -76,12 +76,12 @@ void command() break; case 'S': // send code version - Serial.print("Speeduino 2017.08-dev"); + Serial.print("Speeduino 2017.08"); currentStatus.secl = 0; //This is required in TS3 due to its stricter timings break; case 'Q': // send code version - Serial.print("speeduino 201708-dev"); + Serial.print("speeduino 201708"); break; case 'V': // send VE table and constants in binary From 0694564ed11441417b8d43512f4bb472e8cd02c9 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sun, 10 Sep 2017 00:51:10 +1000 Subject: [PATCH 115/133] September dev signature --- reference/speeduino.ini | 2 +- speeduino/comms.ino | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 6e5c9394..a5ed513d 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -7,7 +7,7 @@ queryCommand = "Q" ;signature = 20 - signature = "speeduino 201708" + signature = "speeduino 201709-dev" versionInfo = "S" ; Put this in the title bar. [TunerStudio] diff --git a/speeduino/comms.ino b/speeduino/comms.ino index d3a6e215..2acddea8 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -76,12 +76,12 @@ void command() break; case 'S': // send code version - Serial.print("Speeduino 2017.08"); + Serial.print("Speeduino 2017.09-dev"); currentStatus.secl = 0; //This is required in TS3 due to its stricter timings break; case 'Q': // send code version - Serial.print("speeduino 201708"); + Serial.print("speeduino 201709-dev"); break; case 'V': // send VE table and constants in binary From d0d5a38c23106c80e48b33debd3f1e9d63024d46 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 12 Sep 2017 14:01:28 +1000 Subject: [PATCH 116/133] Double sync checking method for 4g63 --- speeduino/decoders.ino | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index cb015d6f..a1ac44a6 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -697,12 +697,13 @@ void triggerPri_4G63() toothLastToothTime = curTime; toothCurrentCount++; + if( (toothCurrentCount == 1) || (toothCurrentCount > configPage1.nCylinders) ) //Trigger is on CHANGE, hence 4 pulses = 1 crank rev { toothCurrentCount = 1; //Reset the counter toothOneMinusOneTime = toothOneTime; toothOneTime = curTime; - currentStatus.hasSync = true; + //currentStatus.hasSync = true; currentStatus.startRevolutions++; //Counter } @@ -766,6 +767,20 @@ void triggerPri_4G63() doPerToothTiming(crankAngle); } } //Has sync + else + { + triggerSecFilterTime = 0; + //New secondary method of determining sync + if(READ_PRI_TRIGGER() == true) + { + if(READ_SEC_TRIGGER() == true) { revolutionOne = true; } + else { revolutionOne = false; } + } + else + { + if( (READ_SEC_TRIGGER() == false) && (revolutionOne == true) ) { toothCurrentCount = 1; } //Crank is low, cam is low and the crank pulse STARTED when the cam was high. Means we're at 5* BTDC + } + } } //Filter time } @@ -795,28 +810,32 @@ void triggerSec_4G63() //75%: //triggerSecFilterTime = (curGap2 * 6) >> 3; - if(BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) || (currentStatus.hasSync == false) ) + //if( (currentStatus.RPM < currentStatus.crankRPM) || (currentStatus.hasSync == false) ) + if( (currentStatus.hasSync == false) ) { triggerFilterTime = 1500; //If this is removed, can have trouble getting sync again after the engine is turned off (but ECU not reset). + triggerSecFilterTime = triggerSecFilterTime >> 1; //Divide the secondary filter time by 2 again, making it 25%. Only needed when cranking if(READ_PRI_TRIGGER() == true)// && (crankState == digitalRead(pinTrigger))) { - toothCurrentCount = 4; //If the crank trigger is currently HIGH, it means we're on tooth #1 + //if( (currentStatus.hasSync == true) && (toothCurrentCount != 4) ) { currentStatus.hasSync = false; } + //toothCurrentCount = 4; //If the crank trigger is currently HIGH, it means we're on tooth #1 + if(toothCurrentCount == 4) { currentStatus.hasSync = true; } + } } //if ( (micros() - secondaryLastToothTime1) < triggerSecFilterTime_duration && configPage2.useResync ) - if ( configPage2.useResync == 1 ) + if ( (configPage2.useResync == 1) && (currentStatus.hasSync == true) ) { triggerSecFilterTime_duration = (micros() - secondaryLastToothTime1) >> 1; if(READ_PRI_TRIGGER() == true)// && (crankState == digitalRead(pinTrigger))) { - if( (currentStatus.RPM < currentStatus.crankRPM) && (currentStatus.hasSync == true) ) + if( (currentStatus.RPM < currentStatus.crankRPM) || true ) { - //Whilst we're cranking and have sync, we need to watch for noise pulses. if(toothCurrentCount != 4) { currentStatus.hasSync = false; } // This should never be true, except when there's noise - else { toothCurrentCount = 4; } + else { toothCurrentCount = 4; } //Why? Just why? } else { toothCurrentCount = 4; } //If the crank trigger is currently HIGH, it means we're on tooth #1 @@ -847,7 +866,7 @@ uint16_t getRPM_4G63() toothTime = toothTime * 36; tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime; revolutionTime = (10UL * toothTime) / tempToothAngle; - //MAX_STALL_TIME = revolutionTime << 3; + MAX_STALL_TIME = 366667UL; // 50RPM } } else @@ -856,6 +875,7 @@ uint16_t getRPM_4G63() //EXPERIMENTAL! Add/subtract RPM based on the last rpmDOT calc //tempRPM += (micros() - toothOneTime) * currentStatus.rpmDOT MAX_STALL_TIME = revolutionTime << 1; //Set the stall time to be twice the current RPM. This is a safe figure as there should be no single revolution where this changes more than this + if(MAX_STALL_TIME < 366667UL) { MAX_STALL_TIME = 366667UL; } //Check for 50rpm minimum } } From 2d036651620f2a682ef39a0223dcdb5230979bed Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 12 Sep 2017 14:02:00 +1000 Subject: [PATCH 117/133] Remove unused odd fire variable --- reference/speeduino.ini | 2 +- speeduino/globals.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index a5ed513d..711bd701 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -273,7 +273,7 @@ page = 4 TrigEdge = bits, U08, 5,[0:0], "Leading", "Trailing" TrigSpeed = bits, U08, 5,[1:1], "Crank Speed", "Cam Speed" IgInv = bits, U08, 5,[2:2], "Going Low", "Going High" - oddfire = bits, U08, 5,[3:3], "No", "Yes" + unused4-5d = bits, U08, 5,[3:3], "No", "Yes" TrigPattern= bits, U08, 5,[4:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata / 3000GT", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "Nissan 360", "Subaru 6/7", "Daihatsu +1", "Harley EVO" TrigEdgeSec= bits, U08, 6,[0:0], "Leading", "Trailing" fuelPumpPin= bits , U08, 6,[1:6], "Board Default", "INVALID", "INVALID", "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" diff --git a/speeduino/globals.h b/speeduino/globals.h index dbaf2583..fd4ee3be 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -399,7 +399,7 @@ struct config2 { byte TrigEdge : 1; byte TrigSpeed : 1; byte IgInv : 1; - byte oddfire : 1; + byte unused4_5d : 1; byte TrigPattern : 4; byte TrigEdgeSec : 1; From a1fa406cdd934b8f442b9279888c0e57712f108d Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Wed, 13 Sep 2017 08:13:17 +1000 Subject: [PATCH 118/133] Minor BOM changes --- .../Pro/BOMs/Bom-template-MX5-PNP_ITEAD.xls | Bin 60928 -> 60928 bytes .../Templates/Bom-template-0.4.4_ITEAD.xls | Bin 41472 -> 42496 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/reference/hardware/Pro/BOMs/Bom-template-MX5-PNP_ITEAD.xls b/reference/hardware/Pro/BOMs/Bom-template-MX5-PNP_ITEAD.xls index 1043c1c95bee3363b0aa2a6d3ef9c4c8056c879c..fd7db25e208d00ecf90aa5c77441d5e507026225 100644 GIT binary patch delta 22 ecmZp;!`yI(c|#5h`-Fr4V_9@AZ!Tu(eF*?^Rth!% delta 22 ecmZp;!`yI(c|#5hd%~<8=D8m)Z7yc%eF*?^@(P~- diff --git a/reference/hardware/v0.4/BOMs/Templates/Bom-template-0.4.4_ITEAD.xls b/reference/hardware/v0.4/BOMs/Templates/Bom-template-0.4.4_ITEAD.xls index 0035551507804ad187765cd9a466b50eeae9d0d8..33aecfec7528ac7c3b522a4998cc3ccf55d5dfc3 100644 GIT binary patch delta 4337 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 Date: Sat, 16 Sep 2017 16:45:40 +1000 Subject: [PATCH 119/133] Fix for fuel pump priming never ending on 4g63 and Miata9905 patterns --- speeduino/decoders.ino | 6 +++--- speeduino/utils.ino | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index a1ac44a6..937953d3 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -640,7 +640,7 @@ void triggerSetup_4G63() secondDerivEnabled = false; decoderIsSequential = true; MAX_STALL_TIME = 366667UL; //Minimum 50rpm based on the 110 degree tooth spacing - toothLastToothTime = micros(); //Set a startup value here to avoid filter errors when starting + if(initialisationComplete == false) { toothLastToothTime = micros(); } //Set a startup value here to avoid filter errors when starting. This MUST have the initi check to prevent the fuel pump just staying on all the time //decoderIsLowRes = true; //Note that these angles are for every rising and falling edge @@ -1358,7 +1358,7 @@ void triggerSetup_Miata9905() decoderIsSequential = true; triggerActualTeeth = 8; secondaryToothCount = 0; - toothLastToothTime = micros(); //Set a startup value here to avoid filter errors when starting + if(initialisationComplete == false) { toothLastToothTime = micros(); } //Set a startup value here to avoid filter errors when starting. This MUST have the initi check to prevent the fuel pump just staying on all the time toothLastMinusOneToothTime = 0; //Note that these angles are for every rising and falling edge @@ -2302,7 +2302,7 @@ void triggerSetup_Harley() secondDerivEnabled = false; decoderIsSequential = false; MAX_STALL_TIME = (3333UL * 60); //Minimum 50rpm. (3333uS is the time per degree at 50rpm) - toothLastToothTime = micros(); + if(initialisationComplete == false) { toothLastToothTime = micros(); } //Set a startup value here to avoid filter errors when starting. This MUST have the initi check to prevent the fuel pump just staying on all the time triggerFilterTime = 1500; } diff --git a/speeduino/utils.ino b/speeduino/utils.ino index a6225c89..12f8adac 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -270,7 +270,7 @@ void setPinMapping(byte boardID) pinCoil1 = 39; //Pin for coil 1 pinCoil2 = 41; //Pin for coil 2 pinCoil3 = 35; //Pin for coil 3 - pinCoil4 = 37; //Pin for coil 4 + pinCoil4 = 33; //Pin for coil 4 pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now pinTrigger = 19; //The CAS pin pinTrigger2 = 18; //The Cam Sensor pin @@ -432,6 +432,7 @@ void setPinMapping(byte boardID) } //Setup any devices that are using selectable pins + if ( (configPage3.launchPin != 0) && (configPage3.launchPin < BOARD_NR_GPIO_PINS) ) { pinLaunch = configPage3.launchPin; } if ( (configPage2.ignBypassPin != 0) && (configPage2.ignBypassPin < BOARD_NR_GPIO_PINS) ) { pinIgnBypass = configPage2.ignBypassPin; } if ( (configPage1.tachoPin != 0) && (configPage1.tachoPin < BOARD_NR_GPIO_PINS) ) { pinTachOut = configPage1.tachoPin; } @@ -544,6 +545,7 @@ void initialiseTriggers() { byte triggerInterrupt = 0; // By default, use the first interrupt byte triggerInterrupt2 = 1; + #if defined(CORE_AVR) switch (pinTrigger) { //Arduino Mega 2560 mapping @@ -587,6 +589,7 @@ void initialiseTriggers() #else triggerInterrupt2 = pinTrigger2; #endif + pinMode(pinTrigger, INPUT); pinMode(pinTrigger2, INPUT); pinMode(pinTrigger3, INPUT); From 02976029cf91e75146fcc9c2f5961ad24fe0046c Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 18 Sep 2017 10:38:49 +1000 Subject: [PATCH 120/133] Comment cleanup --- speeduino/speeduino.ino | 49 ++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index c4416578..4d2d5821 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -648,39 +648,30 @@ void loop() //Check for any requets from serial. Serial operations are checked under 2 scenarios: // 1) Every 64 loops (64 Is more than fast enough for TunerStudio). This function is equivalent to ((loopCount % 64) == 1) but is considerably faster due to not using the mod or division operations // 2) If the amount of data in the serial buffer is greater than a set threhold (See globals.h). This is to avoid serial buffer overflow when large amounts of data is being sent - if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) + if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) || (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) { - if (Serial.available() > 0) - { - command(); - } + if (Serial.available() > 0) { command(); } } #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 //if serial3 interface is enabled then check for serial3 requests. if (configPage10.enable_canbus == 1) - { - if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) - { - if (CANSerial.available() > 0) - { - canCommand(); - } - } - } + { + if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) || (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) + { + if (CANSerial.available() > 0) { canCommand(); } + } + } #elif defined(CORE_TEENSY) || defined(CORE_STM32) //if can or secondary serial interface is enabled then check for requests. if (configPage10.enable_canbus == 1) //secondary serial interface enabled - { - if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) - { - if (CANSerial.available() > 0) - { - canCommand(); - } - } - } + { + if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) || (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) + { + if (CANSerial.available() > 0) { canCommand(); } + } + } else if (configPage10.enable_canbus == 2) // can module enabled { //check local can module @@ -727,7 +718,6 @@ void loop() disableIdle(); //Turn off the idle PWM BIT_CLEAR(currentStatus.engine, BIT_ENGINE_CRANK); //Clear cranking bit (Can otherwise get stuck 'on' even with 0 rpm) BIT_CLEAR(currentStatus.engine, BIT_ENGINE_WARMUP); //Same as above except for WUE - //This is a safety check. If for some reason the interrupts have got screwed up (Leading to 0rpm), this resets them. //It can possibly be run much less frequently. initialiseTriggers(); @@ -802,13 +792,13 @@ void loop() if(toothHistoryIndex > TOOTH_LOG_SIZE) { BIT_SET(currentStatus.squirt, BIT_SQUIRT_TOOTHLOG1READY); } } - if(BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) //Every 64 loops + if(BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) //30 hertz { //Nothing here currently BIT_CLEAR(TIMER_mask, BIT_TIMER_30HZ); } - //The IAT and CLT readings can be done less frequently. This still runs about 4 times per second - if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_4HZ)) //Every 256 loops + //The IAT and CLT readings can be done less frequently (4 times per second) + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_4HZ)) { BIT_CLEAR(TIMER_mask, BIT_TIMER_4HZ); readCLT(); @@ -870,11 +860,10 @@ void loop() vvtControl(); idleControl(); //Perform any idle related actions. Even at higher frequencies, running 4x per second is sufficient. } - if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_1HZ)) //Every 1024 loops (Approx. 1 per second) + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_1HZ)) //Once per second) { - //Approx. once per second BIT_CLEAR(TIMER_mask, BIT_TIMER_1HZ); - readBaro(); + readBaro(); //Infrequent baro readings are not an issue. } if(configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL || configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL) { idleControl(); } //Run idlecontrol every loop for stepper idle. From 1fa85bbbdbe06074e6a7f3063e0912f504dbcbb6 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 18 Sep 2017 10:41:00 +1000 Subject: [PATCH 121/133] Change wording on boost cut indicator --- reference/speeduino.ini | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 711bd701..832323a9 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -11,7 +11,7 @@ versionInfo = "S" ; Put this in the title bar. [TunerStudio] - iniSpecVersion = 3.49 + iniSpecVersion = 3.24 ;------------------------------------------------------------------------------- @@ -114,7 +114,7 @@ blockReadTimeout = 2000 ;tsWriteBlocks = off ;writeBlocks = off - interWriteDelay = 8 + interWriteDelay = 5 ;New for TS 3.0.08ish upwards, define lists of standard I/O options @@ -2230,7 +2230,7 @@ cmdtestspk450dc = "E\x03\x0C" indicator = { launchSoft }, "Launch Soft", "Launch Soft", white, black, green, black indicator = { softlimitOn }, "Soft Limit OFF","Soft Limiter", white, black, red, black indicator = { hardLimitOn }, "Hard Limit OFF","Hard Limiter", white, black, red, black - indicator = { boostCutOut }, "Boost Cut OFF", "Boost Cut", white, black, red, black + indicator = { boostCutOut }, "Ign Cut OFF", "Ign Cut (Boost)", white, black, red, black indicator = { sync }, "No Sync", "Sync", white, black, green, black ;------------------------------------------------------------------------------- From ae780dc940a4cf546375cd0d16e0b56047f3b7ec Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 19 Sep 2017 14:05:43 +1000 Subject: [PATCH 122/133] New per page based EEPROM writes --- speeduino/speeduino.ino | 2 + speeduino/storage.h | 4 + speeduino/storage.ino | 549 ++++++++++++++++++++++------------------ speeduino/updates.ino | 6 +- 4 files changed, 313 insertions(+), 248 deletions(-) diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 4d2d5821..0e3606db 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -805,6 +805,8 @@ void loop() readIAT(); readO2(); readBat(); + if(eepromWritesPending == true) { writeAllConfig(); } //Check for any outstanding EEPROM writes. + #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 //if Can interface is enabled then check for serial3 requests. if (configPage10.enable_canbus == 1) // megas only support can via secondary serial diff --git a/speeduino/storage.h b/speeduino/storage.h index 6d176a7e..0d109e97 100644 --- a/speeduino/storage.h +++ b/speeduino/storage.h @@ -1,11 +1,15 @@ #ifndef STORAGE_H #define STORAGE_H +void writeAllConfig(); void writeConfig(); void loadConfig(); void loadCalibration(); void writeCalibration(); +#define EEPROM_MAX_WRITE_BLOCK 50 //The maximum number of write operations that will be performed in one go. If we try to write to the EEPROM too fast (Each write takes ~3ms) then the rest of the system can hang) +bool eepromWritesPending = false; + /* Current layout of EEPROM data (Version 3) is as follows (All sizes are in bytes): |---------------------------------------------------| diff --git a/speeduino/storage.ino b/speeduino/storage.ino index fcb1ca43..dfe9dfd1 100644 --- a/speeduino/storage.ino +++ b/speeduino/storage.ino @@ -7,13 +7,30 @@ A full copy of the license may be found in the projects root directory #include "storage.h" #include "globals.h" #include "table.h" +#include "comms.h" #include +void writeAllConfig() +{ + writeConfig(1); + writeConfig(2); + writeConfig(3); + writeConfig(4); + writeConfig(5); + writeConfig(6); + writeConfig(7); + writeConfig(8); + writeConfig(9); + writeConfig(10); + writeConfig(11); +} + + /* Takes the current configuration (config pages and maps) and writes them to EEPROM as per the layout defined in storage.h */ -void writeConfig() +void writeConfig(byte tableNum) { /* We only ever write to the EEPROM where the new value is different from the currently stored byte @@ -21,268 +38,310 @@ void writeConfig() */ int offset; + int writeCounter = 0; //Create a pointer to the config page byte* pnt_configPage; + switch(tableNum) + { + case veMapPage: + /*--------------------------------------------------- + | Fuel table (See storage.h for data layout) - Page 1 + | 16x16 table itself + the 16 values along each of the axis + -----------------------------------------------------*/ + if(EEPROM.read(EEPROM_CONFIG1_XSIZE) != fuelTable.xSize) { EEPROM.write(EEPROM_CONFIG1_XSIZE, fuelTable.xSize); } //Write the VE Tables RPM dimension size + if(EEPROM.read(EEPROM_CONFIG1_YSIZE) != fuelTable.ySize) { EEPROM.write(EEPROM_CONFIG1_YSIZE, fuelTable.ySize); } //Write the VE Tables MAP/TPS dimension size + for(int x=EEPROM_CONFIG1_MAP; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG1_MAP; + if( EEPROM.read(x) != (fuelTable.values[15-(offset/16)][offset%16]) ) { EEPROM.write(x, fuelTable.values[15-(offset/16)][offset%16]); writeCounter++; } //Write the 16x16 map + } - /*--------------------------------------------------- - | Fuel table (See storage.h for data layout) - Page 1 - | 16x16 table itself + the 16 values along each of the axis - -----------------------------------------------------*/ - if(EEPROM.read(EEPROM_CONFIG1_XSIZE) != fuelTable.xSize) { EEPROM.write(EEPROM_CONFIG1_XSIZE, fuelTable.xSize); } //Write the VE Tables RPM dimension size - if(EEPROM.read(EEPROM_CONFIG1_YSIZE) != fuelTable.ySize) { EEPROM.write(EEPROM_CONFIG1_YSIZE, fuelTable.ySize); } //Write the VE Tables MAP/TPS dimension size - for(int x=EEPROM_CONFIG1_MAP; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG1_XBINS; + if( EEPROM.read(x) != (byte(fuelTable.axisX[offset]/TABLE_RPM_MULTIPLIER)) ) { EEPROM.write(x, byte(fuelTable.axisX[offset]/TABLE_RPM_MULTIPLIER)); writeCounter++; } //RPM bins are divided by 100 and converted to a byte + } + //TPS/MAP bins + for(int x=EEPROM_CONFIG1_YBINS; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG1_YBINS; + EEPROM.update(x, fuelTable.axisY[offset] / TABLE_LOAD_MULTIPLIER); //Table load is divided by 2 (Allows for MAP up to 511) + } + break; + //That concludes the writing of the VE table - //RPM bins - for(int x=EEPROM_CONFIG1_XBINS; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG2_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG2_START))); writeCounter++; } + } + break; - /*--------------------------------------------------- - | Config page 2 (See storage.h for data layout) - | 64 byte long config table - -----------------------------------------------------*/ - pnt_configPage = (byte *)&configPage1; //Create a pointer to Page 2 in memory - for(int x=EEPROM_CONFIG2_START; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG3_MAP; + if(EEPROM.read(x) != (ignitionTable.values[15-(offset/16)][offset%16]) ) { EEPROM.write(x, ignitionTable.values[15-(offset/16)][offset%16]); writeCounter++; } //Write the 16x16 map with translation + } + //RPM bins + for(int x=EEPROM_CONFIG3_XBINS; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG3_XBINS; + if(EEPROM.read(x) != byte(ignitionTable.axisX[offset]/TABLE_RPM_MULTIPLIER)) { EEPROM.write(x, byte(ignitionTable.axisX[offset]/TABLE_RPM_MULTIPLIER)); writeCounter++; } //RPM bins are divided by 100 and converted to a byte + } + //TPS/MAP bins + for(int x=EEPROM_CONFIG3_YBINS; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG3_YBINS; + EEPROM.update(x, ignitionTable.axisY[offset]/TABLE_LOAD_MULTIPLIER); //Table load is divided by 2 (Allows for MAP up to 511) + } + //That concludes the writing of the IGN table + break; - /*--------------------------------------------------- - | Ignition table (See storage.h for data layout) - Page 1 - | 16x16 table itself + the 16 values along each of the axis - -----------------------------------------------------*/ - //Begin writing the Ignition table, basically the same thing as above - if(EEPROM.read(EEPROM_CONFIG3_XSIZE) != ignitionTable.xSize) { EEPROM.write(EEPROM_CONFIG3_XSIZE,ignitionTable.xSize); } //Write the ignition Table RPM dimension size - if(EEPROM.read(EEPROM_CONFIG3_YSIZE) != ignitionTable.ySize) { EEPROM.write(EEPROM_CONFIG3_YSIZE,ignitionTable.ySize); } //Write the ignition Table MAP/TPS dimension size + case ignSetPage: + /*--------------------------------------------------- + | Config page 2 (See storage.h for data layout) + | 64 byte long config table + -----------------------------------------------------*/ + pnt_configPage = (byte *)&configPage2; //Create a pointer to Page 2 in memory + for(int x=EEPROM_CONFIG4_START; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG4_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG4_START))); writeCounter++; } + } + break; - for(int x=EEPROM_CONFIG3_MAP; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG5_MAP; + if(EEPROM.read(x) != (afrTable.values[15-(offset/16)][offset%16]) ) { EEPROM.write(x, afrTable.values[15-(offset/16)][offset%16]); writeCounter++; } //Write the 16x16 map + } + //RPM bins + for(int x=EEPROM_CONFIG5_XBINS; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG5_XBINS; + if(EEPROM.read(x) != byte(afrTable.axisX[offset]/TABLE_RPM_MULTIPLIER)) { EEPROM.write(x, byte(afrTable.axisX[offset]/TABLE_RPM_MULTIPLIER)); writeCounter++; } //RPM bins are divided by 100 and converted to a byte + } + //TPS/MAP bins + for(int x=EEPROM_CONFIG5_YBINS; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG5_YBINS; + EEPROM.update(x, afrTable.axisY[offset]/TABLE_LOAD_MULTIPLIER); //Table load is divided by 2 (Allows for MAP up to 511) + } + //That concludes the writing of the AFR table + break; + case afrSetPage: + /*--------------------------------------------------- + | Config page 3 (See storage.h for data layout) + | 64 byte long config table + -----------------------------------------------------*/ + pnt_configPage = (byte *)&configPage3; //Create a pointer to Page 3 in memory + for(int x=EEPROM_CONFIG6_START; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG6_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG6_START))); writeCounter++; } + } + break; - /*--------------------------------------------------- - | AFR table (See storage.h for data layout) - Page 5 - | 16x16 table itself + the 16 values along each of the axis - -----------------------------------------------------*/ - //Begin writing the Ignition table, basically the same thing as above - if(EEPROM.read(EEPROM_CONFIG5_XSIZE) != afrTable.xSize) { EEPROM.write(EEPROM_CONFIG5_XSIZE,afrTable.xSize); } //Write the ignition Table RPM dimension size - if(EEPROM.read(EEPROM_CONFIG5_YSIZE) != afrTable.ySize) { EEPROM.write(EEPROM_CONFIG5_YSIZE,afrTable.ySize); } //Write the ignition Table MAP/TPS dimension size + case iacPage: + /*--------------------------------------------------- + | Config page 4 (See storage.h for data layout) + | 64 byte long config table + -----------------------------------------------------*/ + pnt_configPage = (byte *)&configPage4; //Create a pointer to Page 4 in memory + //The next 128 bytes can simply be pulled straight from the configTable + for(int x=EEPROM_CONFIG7_START; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG7_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG7_START))); writeCounter++; } + } + break; - for(int x=EEPROM_CONFIG5_MAP; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG8_MAP1; + if(EEPROM.read(x) != (boostTable.values[7-(offset/8)][offset%8]) ) { EEPROM.write(x, boostTable.values[7-(offset/8)][offset%8]); writeCounter++; } //Write the 8x8 map + offset = y - EEPROM_CONFIG8_MAP2; + if(EEPROM.read(y) != (vvtTable.values[7-(offset/8)][offset%8]) ) { EEPROM.write(y, vvtTable.values[7-(offset/8)][offset%8]); writeCounter++; } //Write the 8x8 map + y++; + } + //RPM bins + y = EEPROM_CONFIG8_XBINS2; + for(int x=EEPROM_CONFIG8_XBINS1; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG8_XBINS1; + if(EEPROM.read(x) != byte(boostTable.axisX[offset]/TABLE_RPM_MULTIPLIER)) { EEPROM.write(x, byte(boostTable.axisX[offset]/TABLE_RPM_MULTIPLIER)); writeCounter++; } //RPM bins are divided by 100 and converted to a byte + offset = y - EEPROM_CONFIG8_XBINS2; + if(EEPROM.read(y) != byte(vvtTable.axisX[offset]/TABLE_RPM_MULTIPLIER)) { EEPROM.write(y, byte(vvtTable.axisX[offset]/TABLE_RPM_MULTIPLIER)); writeCounter++; } //RPM bins are divided by 100 and converted to a byte + y++; + } + //TPS/MAP bins + y=EEPROM_CONFIG8_YBINS2; + for(int x=EEPROM_CONFIG8_YBINS1; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG8_YBINS1; + EEPROM.update(x, boostTable.axisY[offset]); //TABLE_LOAD_MULTIPLIER is NOT used for boost as it is TPS based (0-100) + offset = y - EEPROM_CONFIG8_YBINS2; + EEPROM.update(y, vvtTable.axisY[offset]); //TABLE_LOAD_MULTIPLIER is NOT used for VVT as it is TPS based (0-100) + y++; + } + } + break; - /*--------------------------------------------------- - | Config page 4 (See storage.h for data layout) - | 64 byte long config table - -----------------------------------------------------*/ - pnt_configPage = (byte *)&configPage4; //Create a pointer to Page 4 in memory - //The next 128 bytes can simply be pulled straight from the configTable - for(int x=EEPROM_CONFIG7_START; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG9_MAP1; + EEPROM.update(x, (trim1Table.values[5-(offset/6)][offset%6]) ); //Write the 6x6 map + offset = y - EEPROM_CONFIG9_MAP2; + EEPROM.update(y, trim2Table.values[5-(offset/6)][offset%6]); //Write the 6x6 map + offset = z - EEPROM_CONFIG9_MAP3; + EEPROM.update(z, trim3Table.values[5-(offset/6)][offset%6]); //Write the 6x6 map + offset = i - EEPROM_CONFIG9_MAP4; + EEPROM.update(i, trim4Table.values[5-(offset/6)][offset%6]); //Write the 6x6 map + y++; + z++; + i++; + } + //RPM bins + y = EEPROM_CONFIG9_XBINS2; + z = EEPROM_CONFIG9_XBINS3; + i = EEPROM_CONFIG9_XBINS4; + for(int x=EEPROM_CONFIG9_XBINS1; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG9_XBINS1; + EEPROM.update(x, byte(trim1Table.axisX[offset]/TABLE_RPM_MULTIPLIER)); //RPM bins are divided by 100 and converted to a byte + offset = y - EEPROM_CONFIG9_XBINS2; + EEPROM.update(y, byte(trim2Table.axisX[offset]/TABLE_RPM_MULTIPLIER)); //RPM bins are divided by 100 and converted to a byte + offset = z - EEPROM_CONFIG9_XBINS3; + EEPROM.update(z, byte(trim3Table.axisX[offset]/TABLE_RPM_MULTIPLIER)); //RPM bins are divided by 100 and converted to a byte + offset = i - EEPROM_CONFIG9_XBINS4; + EEPROM.update(i, byte(trim4Table.axisX[offset]/TABLE_RPM_MULTIPLIER)); //RPM bins are divided by 100 and converted to a byte + y++; + z++; + i++; + } + //TPS/MAP bins + y=EEPROM_CONFIG9_YBINS2; + z=EEPROM_CONFIG9_YBINS3; + i=EEPROM_CONFIG9_YBINS4; + for(int x=EEPROM_CONFIG9_YBINS1; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + offset = x - EEPROM_CONFIG9_YBINS1; + EEPROM.update(x, trim1Table.axisY[offset]/TABLE_LOAD_MULTIPLIER); //Table load is divided by 2 (Allows for MAP up to 511) + offset = y - EEPROM_CONFIG9_YBINS2; + EEPROM.update(y, trim2Table.axisY[offset]/TABLE_LOAD_MULTIPLIER); //Table load is divided by 2 (Allows for MAP up to 511) + offset = z - EEPROM_CONFIG9_YBINS3; + EEPROM.update(z, trim3Table.axisY[offset]/TABLE_LOAD_MULTIPLIER); //Table load is divided by 2 (Allows for MAP up to 511) + offset = i - EEPROM_CONFIG9_YBINS4; + EEPROM.update(i, trim4Table.axisY[offset]/TABLE_LOAD_MULTIPLIER); //Table load is divided by 2 (Allows for MAP up to 511) + y++; + z++; + i++; + } + } + break; - int y = EEPROM_CONFIG8_MAP2; //We do the 2 maps together in the same loop - for(int x=EEPROM_CONFIG8_MAP1; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG10_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG10_START))); } + } + break; - /*--------------------------------------------------- - | Fuel trim tables (See storage.h for data layout) - Page 9 - | 6x6 tables itself + the 6 values along each of the axis - -----------------------------------------------------*/ - //Begin writing the 2 tables, basically the same thing as above but we're doing these 2 together (2 tables per page instead of 1) - EEPROM.update(EEPROM_CONFIG9_XSIZE1,trim1Table.xSize); //Write the boost Table RPM dimension size - EEPROM.update(EEPROM_CONFIG9_YSIZE1,trim1Table.ySize); //Write the boost Table MAP/TPS dimension size - EEPROM.update(EEPROM_CONFIG9_XSIZE2,trim2Table.xSize); //Write the boost Table RPM dimension size - EEPROM.update(EEPROM_CONFIG9_YSIZE2,trim2Table.ySize); //Write the boost Table MAP/TPS dimension size - EEPROM.update(EEPROM_CONFIG9_XSIZE3,trim3Table.xSize); //Write the boost Table RPM dimension size - EEPROM.update(EEPROM_CONFIG9_YSIZE3,trim3Table.ySize); //Write the boost Table MAP/TPS dimension size - EEPROM.update(EEPROM_CONFIG9_XSIZE4,trim4Table.xSize); //Write the boost Table RPM dimension size - EEPROM.update(EEPROM_CONFIG9_YSIZE4,trim4Table.ySize); //Write the boost Table MAP/TPS dimension size + case warmupPage: + /*--------------------------------------------------- + | Config page 11 (See storage.h for data layout) + | 192 byte long config table + -----------------------------------------------------*/ + pnt_configPage = (byte *)&configPage11; //Create a pointer to Page 11 in memory + //As there are no 3d tables in this page, all 192 bytes can simply be read in + for(int x=EEPROM_CONFIG11_START; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG11_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG11_START))); } + } + break; - y = EEPROM_CONFIG9_MAP2; //We do the 4 maps together in the same loop - int z = EEPROM_CONFIG9_MAP3; //We do the 4 maps together in the same loop - int i = EEPROM_CONFIG9_MAP4; //We do the 4 maps together in the same loop - for(int x=EEPROM_CONFIG9_MAP1; x Date: Tue, 19 Sep 2017 14:09:02 +1000 Subject: [PATCH 123/133] Disable manual WDT to prevent it causing problems with serial comms --- speeduino/timers.ino | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/speeduino/timers.ino b/speeduino/timers.ino index a3fc8856..b0d70368 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -50,14 +50,19 @@ void initialiseTimers() #if defined(CORE_STM32) pinMode(LED_BUILTIN, OUTPUT); #endif - dwellLimit_uS = (1000 * configPage2.dwellLimit); + lastRPM_100ms = 0; + loop33ms = 0; + loop66ms = 0; + loop100ms = 0; + loop250ms = 0; + loopSec = 0; } //Timer2 Overflow Interrupt Vector, called when the timer overflows. //Executes every ~1ms. -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //AVR chips use the ISR for this +#if defined(CORE_AVR) //AVR chips use the ISR for this ISR(TIMER2_OVF_vect, ISR_NOBLOCK) #elif defined (CORE_TEENSY) || defined(CORE_STM32) void oneMSInterval() //Most ARM chips can simply call a function @@ -84,12 +89,7 @@ void oneMSInterval() //Most ARM chips can simply call a function if(ignitionSchedule4.Status == RUNNING) { if( (ignitionSchedule4.startTime < targetOverdwellTime) && (configPage2.useDwellLim) && (isCrankLocked != true) ) { endCoil4Charge(); } } if(ignitionSchedule5.Status == RUNNING) { if( (ignitionSchedule5.startTime < targetOverdwellTime) && (configPage2.useDwellLim) && (isCrankLocked != true) ) { endCoil5Charge(); } } - //15Hz loop - if (loop66ms == 66) - { - loop66ms = 0; - BIT_SET(TIMER_mask, BIT_TIMER_15HZ); - } + //30Hz loop if (loop33ms == 33) @@ -98,6 +98,13 @@ void oneMSInterval() //Most ARM chips can simply call a function BIT_SET(TIMER_mask, BIT_TIMER_30HZ); } + //15Hz loop + if (loop66ms == 66) + { + loop66ms = 0; + BIT_SET(TIMER_mask, BIT_TIMER_15HZ); + } + //Loop executed every 100ms loop //Anything inside this if statement will run every 100ms. if (loop100ms == 100) @@ -123,8 +130,8 @@ void oneMSInterval() //Most ARM chips can simply call a function //Reset watchdog timer (Not active currently) //wdt_reset(); //DIY watchdog - if( (initialisationComplete == true) && (last250msLoopCount == mainLoopCount) ) { setup(); } //This is a sign of a crash. - else { last250msLoopCount = mainLoopCount; } + //if( (initialisationComplete == true) && (last250msLoopCount == mainLoopCount) ) { setup(); } //This is a sign of a crash. + //else { last250msLoopCount = mainLoopCount; } #endif } @@ -209,7 +216,7 @@ void oneMSInterval() //Most ARM chips can simply call a function } } -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //AVR chips use the ISR for this +#if defined(CORE_AVR) //AVR chips use the ISR for this //Reset Timer2 to trigger in another ~1ms TCNT2 = 131; //Preload timer2 with 100 cycles, leaving 156 till overflow. TIFR2 = 0x00; //Timer2 INT Flag Reg: Clear Timer Overflow Flag From 6763ff15b4cd0a261369551b68fe0840017570b6 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 19 Sep 2017 14:10:07 +1000 Subject: [PATCH 124/133] Initial work on new serial comms protocols (Working, but slow) --- reference/speeduino.ini | 34 +++++-- speeduino/comms.h | 3 + speeduino/comms.ino | 220 +++++++++++++++++++++++++++++++++++++++- speeduino/speeduino.ino | 10 +- 4 files changed, 248 insertions(+), 19 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 832323a9..1ed58633 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -11,7 +11,7 @@ versionInfo = "S" ; Put this in the title bar. [TunerStudio] - iniSpecVersion = 3.24 + iniSpecVersion = 3.46 ;------------------------------------------------------------------------------- @@ -98,23 +98,35 @@ endianness = little nPages = 11 - burnCommand = "B" - pageSize = 288, 64, 288, 64, 288, 64, 64, 160, 192, 128, 192 -; pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A" - pageActivationDelay = 10 - pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012", "P\013" - pageReadCommand = "V", "V", "V", "V", "V", "V", "V", "V", "V", "V", "V" - pageValueWrite = "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v" -; pageChunkWrite = "" ; No chunk write yet + ;pageSize = 288, 64, 288, 64, 288, 64, 64, 160, 192, 128, 192 + + ;burnCommand = "B" + ;pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012", "P\013" + ;pageReadCommand = "V", "V", "V", "V", "V", "V", "V", "V", "V", "V", "V" + ;pageValueWrite = "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v" + + + ;pageChunkWrite = "w%2o%2c%v", "w%2o%2c%v", "w%2o%2c%v", "w%2o%2c%v", "w%2o%2c%v", "w%2o%2c%v", "w%2o%2c%v", "w%2o%2c%v", "w%2o%2c%v", "w%2o%2c%v", "w%2o%2c%v" + ;pageChunkWrite = "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v" + + ; New commands + pageSize = 288, 128, 288, 128, 288, 128, 128, 160, 192, 128, 192 + pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A", "\$tsCanId\x0B" + burnCommand = "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i" + pageReadCommand = "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v" + pageValueWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" + ;pageChunkWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" + ;pageChunkWrite = "w%2i%2o%2c%v", "", "w%2i%2o%2c%v", "", "w%2i%2o%2c%v", "", "", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" blockingFactor = 2048 tableBlockingFactor = 2048 delayAfterPortOpen=1000 ;validateArrayBounds = true blockReadTimeout = 2000 - ;tsWriteBlocks = off + ;tsWriteBlocks = on ;writeBlocks = off - interWriteDelay = 5 + interWriteDelay = 1 + pageActivationDelay = 10 ;New for TS 3.0.08ish upwards, define lists of standard I/O options diff --git a/speeduino/comms.h b/speeduino/comms.h index 132944e9..5f84a81e 100644 --- a/speeduino/comms.h +++ b/speeduino/comms.h @@ -20,6 +20,9 @@ bool isMap = true; unsigned long requestCount = 0; //The number of times the A command has been issued byte currentCommand; bool cmdPending = false; +bool chunkPending = false; +uint16_t chunkComplete = 0; +uint16_t chunkSize = 0; byte cmdGroup = 0; byte cmdValue = 0; int cmdCombined = 0; //the cmdgroup as high byte and cmdvalue as low byte diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 2acddea8..d9da098b 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -15,7 +15,7 @@ A detailed description of each call can be found at: http://www.msextra.com/doc/ void command() { - if (!cmdPending) { currentCommand = Serial.read(); } + if (cmdPending == false) { currentCommand = Serial.read(); } switch (currentCommand) { @@ -26,7 +26,18 @@ void command() case 'B': // Burn current values to eeprom - writeConfig(); + writeAllConfig(); + break; + + case 'b': // New EEPROM burn command to only burn a single page at a time + cmdPending = true; + + if (Serial.available() >= 2) + { + Serial.read(); //Ignore the first table value, it's always 0 + writeConfig(Serial.read()); + cmdPending = false; + } break; case 'C': // test communications. This is used by Tunerstudio to see whether there is an ECU on a given serial port @@ -82,7 +93,7 @@ void command() case 'Q': // send code version Serial.print("speeduino 201709-dev"); - break; + break; case 'V': // send VE table and constants in binary sendPage(false); @@ -117,6 +128,76 @@ void command() break; + /* + * New method for sending page values + */ + case 'p': + cmdPending = true; + + //6 bytes required: + //2 - Page identifier + //2 - offset + //2 - Length + if(Serial.available() >= 6) + { + byte offset1, offset2, length1, length2; + int length; + byte tempPage; + + Serial.read(); // First byte of the page identifier can be ignored. It's always 0 + tempPage = Serial.read(); + //currentPage = 1; + offset1 = Serial.read(); + offset2 = Serial.read(); + valueOffset = word(offset2, offset1); + length1 = Serial.read(); + length2 = Serial.read(); + length = word(length2, length1); + for(int x = 0; x < length; x++) + { + Serial.write( getPageValue(tempPage, valueOffset + x) ); + } + + cmdPending = false; + } + break; + + case 'w': + cmdPending = true; + + if(chunkPending == false) + { + //This means it's a new request + //7 bytes required: + //2 - Page identifier + //2 - offset + //2 - Length (Should always be 1 until chunk write is setup) + //1 - New value + if(Serial.available() >= 7) + { + byte offset1, offset2, length1, length2; + + Serial.read(); // First byte of the page identifier can be ignored. It's always 0 + currentPage = Serial.read(); + //currentPage = 1; + offset1 = Serial.read(); + offset2 = Serial.read(); + valueOffset = word(offset2, offset1); + length1 = Serial.read(); // Length to be written (Should always be 1) + length2 = Serial.read(); // Length to be written (Should always be 1) + chunkSize = word(length2, length1); + + //chunkPending = true; + for(uint16_t x = 0; x < chunkSize; x++) + { + while(Serial.available() == 0) { } + receiveValue( (valueOffset + x), Serial.read()); + } + cmdPending = false; + } + } + break; + case 't': // receive new Calibration info. Command structure: "t", . This is an MS2/Extra command, NOT part of MS1 spec byte tableID; //byte canID; @@ -382,12 +463,16 @@ void receiveValue(int valueOffset, byte newValue) //X Axis fuelTable.axisX[(valueOffset - 256)] = ((int)(newValue) * TABLE_RPM_MULTIPLIER); //The RPM values sent by megasquirt are divided by 100, need to multiple it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) } - else + else if(valueOffset < 288) { //Y Axis int tempOffset = 15 - (valueOffset - 272); //Need to do a translation to flip the order (Due to us using (0,0) in the top left rather than bottom right fuelTable.axisY[tempOffset] = (int)(newValue) * TABLE_LOAD_MULTIPLIER; } + else + { + //This should never happen. It means there's an invalid offset value coming through + } } break; @@ -413,7 +498,7 @@ void receiveValue(int valueOffset, byte newValue) //X Axis ignitionTable.axisX[(valueOffset - 256)] = (int)(newValue) * TABLE_RPM_MULTIPLIER; //The RPM values sent by megasquirt are divided by 100, need to multiple it back by 100 to make it correct } - else + else if(valueOffset < 288) { //Y Axis int tempOffset = 15 - (valueOffset - 272); //Need to do a translation to flip the order @@ -544,6 +629,7 @@ void receiveValue(int valueOffset, byte newValue) default: break; } + //if(Serial.available() > 16) { command(); } } /* @@ -980,6 +1066,130 @@ void sendPage(bool useChar) } //sendComplete } +byte getPageValue(byte page, uint16_t valueAddress) +{ + void* pnt_configPage = &configPage1; //Default value is for safety only. Will be changed below if needed. + byte returnValue = 0; + + switch (page) + { + case veMapPage: + if( valueAddress < 256) { returnValue = fuelTable.values[15 - (valueAddress / 16)][valueAddress % 16]; } //This is slightly non-intuitive, but essentially just flips the table vertically (IE top line becomes the bottom line etc). Columns are unchanged. Every 16 loops, manually call loop() to avoid potential misses + else if(valueAddress < 272) { returnValue = byte(fuelTable.axisX[(valueAddress - 256)] / TABLE_RPM_MULTIPLIER); } //RPM Bins for VE table (Need to be dvidied by 100) + else if (valueAddress < 288) { returnValue = byte(fuelTable.axisY[15 - (valueAddress - 272)] / TABLE_LOAD_MULTIPLIER); } //MAP or TPS bins for VE table + break; + + case veSetPage: + pnt_configPage = &configPage1; //Create a pointer to Page 1 in memory + returnValue = *((byte *)pnt_configPage + valueAddress); + break; + + case ignMapPage: + if( valueAddress < 256) { returnValue = ignitionTable.values[15 - (valueAddress / 16)][valueAddress % 16]; } //This is slightly non-intuitive, but essentially just flips the table vertically (IE top line becomes the bottom line etc). Columns are unchanged. Every 16 loops, manually call loop() to avoid potential misses + else if(valueAddress < 272) { returnValue = byte(ignitionTable.axisX[(valueAddress - 256)] / TABLE_RPM_MULTIPLIER); } //RPM Bins for VE table (Need to be dvidied by 100) + else if (valueAddress < 288) { returnValue = byte(ignitionTable.axisY[15 - (valueAddress - 272)] / TABLE_LOAD_MULTIPLIER); } //MAP or TPS bins for VE table + break; + + case ignSetPage: + pnt_configPage = &configPage2; //Create a pointer to Page 2 in memory + returnValue = *((byte *)pnt_configPage + valueAddress); + break; + + case afrMapPage: + if( valueAddress < 256) { returnValue = afrTable.values[15 - (valueAddress / 16)][valueAddress % 16]; } //This is slightly non-intuitive, but essentially just flips the table vertically (IE top line becomes the bottom line etc). Columns are unchanged. Every 16 loops, manually call loop() to avoid potential misses + else if(valueAddress < 272) { returnValue = byte(afrTable.axisX[(valueAddress - 256)] / TABLE_RPM_MULTIPLIER); } //RPM Bins for VE table (Need to be dvidied by 100) + else if (valueAddress < 288) { returnValue = byte(afrTable.axisY[15 - (valueAddress - 272)] / TABLE_LOAD_MULTIPLIER); } //MAP or TPS bins for VE table + break; + + case afrSetPage: + pnt_configPage = &configPage3; //Create a pointer to Page 3 in memory + returnValue = *((byte *)pnt_configPage + valueAddress); + break; + + case iacPage: + pnt_configPage = &configPage4; //Create a pointer to Page 4 in memory + returnValue = *((byte *)pnt_configPage + valueAddress); + break; + + case boostvvtPage: + + { + //Need to perform a translation of the values[MAP/TPS][RPM] into the MS expected format + if(valueAddress < 80) + { + //Boost table + if(valueAddress < 64) { returnValue = boostTable.values[7 - (valueAddress / 8)][valueAddress % 8]; } + else if(valueAddress < 72) { returnValue = byte(boostTable.axisX[(valueAddress - 64)] / TABLE_RPM_MULTIPLIER); } + else if(valueAddress < 80) { returnValue = byte(boostTable.axisY[7 - (valueAddress - 72)]); } + } + else + { + valueAddress -= 80; + //VVT table + if(valueAddress < 64) { returnValue = vvtTable.values[7 - (valueAddress / 8)][valueAddress % 8]; } + else if(valueAddress < 72) { returnValue = byte(vvtTable.axisX[(valueAddress - 64)] / TABLE_RPM_MULTIPLIER); } + else if(valueAddress < 80) { returnValue = byte(vvtTable.axisY[7 - (valueAddress - 72)]); } + } + } + break; + + case seqFuelPage: + + { + //Need to perform a translation of the values[MAP/TPS][RPM] into the TS expected format + if(valueAddress < 48) + { + //trim1 table + if(valueAddress < 36) { returnValue = trim1Table.values[5 - (valueAddress / 6)][valueAddress % 6]; } + else if(valueAddress < 42) { returnValue = byte(trim1Table.axisX[(valueAddress - 36)] / TABLE_RPM_MULTIPLIER); } + else if(valueAddress < 48) { returnValue = byte(trim1Table.axisY[5 - (valueAddress - 42)] / TABLE_LOAD_MULTIPLIER); } + } + else if(valueAddress < 96) + { + valueAddress -= 48; + //trim2 table + if(valueAddress < 36) { returnValue = trim2Table.values[5 - (valueAddress / 6)][valueAddress % 6]; } + else if(valueAddress < 42) { returnValue = byte(trim2Table.axisX[(valueAddress - 36)] / TABLE_RPM_MULTIPLIER); } + else if(valueAddress < 48) { returnValue = byte(trim2Table.axisY[5 - (valueAddress - 42)] / TABLE_LOAD_MULTIPLIER); } + } + else if(valueAddress < 144) + { + valueAddress -= 96; + //trim3 table + if(valueAddress < 36) { returnValue = trim3Table.values[5 - (valueAddress / 6)][valueAddress % 6]; } + else if(valueAddress < 42) { returnValue = byte(trim3Table.axisX[(valueAddress - 36)] / TABLE_RPM_MULTIPLIER); } + else if(valueAddress < 48) { returnValue = byte(trim3Table.axisY[5 - (valueAddress - 42)] / TABLE_LOAD_MULTIPLIER); } + } + else if(valueAddress < 192) + { + valueAddress -= 144; + //trim4 table + if(valueAddress < 36) { returnValue = trim4Table.values[5 - (valueAddress / 6)][valueAddress % 6]; } + else if(valueAddress < 42) { returnValue = byte(trim4Table.axisX[(valueAddress - 36)] / TABLE_RPM_MULTIPLIER); } + else if(valueAddress < 48) { returnValue = byte(trim4Table.axisY[5 - (valueAddress - 42)] / TABLE_LOAD_MULTIPLIER); } + } + } + break; + + case canbusPage: + pnt_configPage = &configPage10; //Create a pointer to Page 10 in memory + returnValue = *((byte *)pnt_configPage + valueAddress); + break; + + case warmupPage: + pnt_configPage = &configPage11; //Create a pointer to Page 11 in memory + returnValue = *((byte *)pnt_configPage + valueAddress); + break; + + default: + Serial.println(F("\nPage has not been implemented yet. Change to another page.")); + //Just set default Values to avoid warnings + pnt_configPage = &configPage11; + break; + } + return returnValue; +} + /* This function is used to store calibration data sent by Tuner Studio. */ diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 0e3606db..03c8378e 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -130,6 +130,7 @@ bool initialisationComplete = false; //Tracks whether the setup() functino has r void setup() { + initialiseTimers(); digitalWrite(LED_BUILTIN, LOW); //Setup the dummy fuel and ignition tables //dummyFuelTable(&fuelTable); @@ -237,10 +238,8 @@ void setup() //Set the tacho output default state digitalWrite(pinTachOut, HIGH); - //Perform all initialisations initialiseSchedulers(); - initialiseTimers(); //initialiseDisplay(); initialiseIdle(); initialiseFan(); @@ -300,6 +299,7 @@ void setup() currentStatus.launchingHard = false; currentStatus.crankRPM = ((unsigned int)configPage2.crankRPM * 100); //Crank RPM limit (Saves us calculating this over and over again. It's updated once per second in timers.ino) triggerFilterTime = 0; //Trigger filter time is the shortest possible time (in uS) that there can be between crank teeth (ie at max RPM). Any pulses that occur faster than this time will be disgarded as noise. This is simply a default value, the actual values are set in the setup() functinos of each decoder + dwellLimit_uS = (1000 * configPage2.dwellLimit); noInterrupts(); initialiseTriggers(); @@ -648,11 +648,15 @@ void loop() //Check for any requets from serial. Serial operations are checked under 2 scenarios: // 1) Every 64 loops (64 Is more than fast enough for TunerStudio). This function is equivalent to ((loopCount % 64) == 1) but is considerably faster due to not using the mod or division operations // 2) If the amount of data in the serial buffer is greater than a set threhold (See globals.h). This is to avoid serial buffer overflow when large amounts of data is being sent - if ( (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) || (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) + //if ( (BIT_CHECK(TIMER_mask, BIT_TIMER_15HZ)) || (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) + //if ( (timer15Hz == true) ) + if ( ((mainLoopCount & 31) == 1) or (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) { if (Serial.available() > 0) { command(); } } + + #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 //if serial3 interface is enabled then check for serial3 requests. if (configPage10.enable_canbus == 1) From 5b3df5ac4d686d46848bc4fd0b0961febb1368b0 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 19 Sep 2017 14:51:33 +1000 Subject: [PATCH 125/133] Merge config pages 6 and 7 --- reference/speeduino.ini | 85 +++++++++++++++++++-------------------- speeduino/auxiliaries.ino | 8 ++-- speeduino/comms.h | 9 ++--- speeduino/comms.ino | 47 ++++++++-------------- speeduino/globals.h | 14 +------ speeduino/idle.ino | 80 ++++++++++++++++++------------------ speeduino/speeduino.ino | 3 +- speeduino/storage.h | 4 +- speeduino/storage.ino | 26 ------------ speeduino/timers.ino | 2 +- speeduino/utils.ino | 2 +- 11 files changed, 111 insertions(+), 169 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 1ed58633..c0d22a56 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -97,8 +97,9 @@ ;---------------------------------------------------------------------------- endianness = little - nPages = 11 + nPages = 10 ;pageSize = 288, 64, 288, 64, 288, 64, 64, 160, 192, 128, 192 + pageSize = 288, 64, 288, 64, 288, 128, 160, 192, 128, 192 ;burnCommand = "B" ;pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012", "P\013" @@ -110,11 +111,11 @@ ;pageChunkWrite = "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v", "X%o%c%v" ; New commands - pageSize = 288, 128, 288, 128, 288, 128, 128, 160, 192, 128, 192 - pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A", "\$tsCanId\x0B" - burnCommand = "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i" - pageReadCommand = "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v" - pageValueWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" + ;pageSize = 288, 128, 288, 128, 288, 128, 128, 160, 192, 128, 192 + pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A" + burnCommand = "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i" + pageReadCommand = "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v" + pageValueWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" ;pageChunkWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" ;pageChunkWrite = "w%2i%2o%2c%v", "", "w%2i%2o%2c%v", "", "w%2i%2o%2c%v", "", "", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" @@ -448,62 +449,58 @@ page = 6 flatSRetard = scalar, U08, 62, "deg", 1.0, 0.0, 0.0, 80, 0 flatSArm = scalar, U08, 63, "rpm", 100, 0.0, 100, 25500, 0 -;-------------------------------------------------- -;Start idle and fan controls (Page 7) -;-------------------------------------------------- -page = 7 - iacCLValues = array, U08, 0, [10], "RPM", 10.0, 0.0, 0, 2550, 0 - iacOLStepVal = array, U08, 10, [10], "Steps", 3, 0, 0, 765, 0 - iacOLPWMVal = array, U08, 20, [10], "Duty %", 1.0, 0, 0, 100, 0 + iacCLValues = array, U08, 64, [10], "RPM", 10.0, 0.0, 0, 2550, 0 + iacOLStepVal = array, U08, 74, [10], "Steps", 3, 0, 0, 765, 0 + iacOLPWMVal = array, U08, 84, [10], "Duty %", 1.0, 0, 0, 100, 0 #if CELSIUS - iacBins = array, U08, 30, [10], "C", 1.0, -40, -40, 215, 0 + iacBins = array, U08, 94, [10], "C", 1.0, -40, -40, 215, 0 #else - iacBins = array, U08, 30, [10], "F", 1.8, -22.23, -40, 215, 0 + iacBins = array, U08, 94, [10], "F", 1.8, -22.23, -40, 215, 0 #endif - iacCrankSteps= array, U08, 40, [4], "Steps", 3, 0, 0, 765, 0 - iacCrankDuty = array, U08, 44, [4], "Duty %", 1.0, 0, 0, 100, 0 + iacCrankSteps= array, U08, 104, [4], "Steps", 3, 0, 0, 765, 0 + iacCrankDuty = array, U08, 108, [4], "Duty %", 1.0, 0, 0, 100, 0 #if CELSIUS - iacCrankBins = array, U08, 48, [4], "C", 1.0, -40, -40, 215, 0 + iacCrankBins = array, U08, 112, [4], "C", 1.0, -40, -40, 215, 0 #else - iacCrankBins = array, U08, 48, [4], "F", 1.8, -22.23, -40, 215, 0 + iacCrankBins = array, U08, 112, [4], "F", 1.8, -22.23, -40, 215, 0 #endif - iacAlgorithm = bits , U08, 52, [0:2], "None", "On/Off", "PWM Open loop", "PWM Closed loop", "Stepper Open Loop", "Stepper Closed Loop", "INVALID", "INVALID" - iacStepTime = bits , U08, 52, [3:5], "INVALID","1", "2", "3", "4", "5", "6","INVALID" - iacChannels = bits, U08, 52, [6:6], "1", "2" - iacPWMdir = bits , U08, 52, [7:7], "Normal", "Reverse" + iacAlgorithm = bits , U08, 116, [0:2], "None", "On/Off", "PWM Open loop", "PWM Closed loop", "Stepper Open Loop", "Stepper Closed Loop", "INVALID", "INVALID" + iacStepTime = bits , U08, 116, [3:5], "INVALID","1", "2", "3", "4", "5", "6","INVALID" + iacChannels = bits, U08, 116, [6:6], "1", "2" + iacPWMdir = bits , U08, 116, [7:7], "Normal", "Reverse" #if CELSIUS - iacFastTemp = scalar, U08, 53, "C", 1.0, -40, -40, 215, 0 + iacFastTemp = scalar, U08, 117, "C", 1.0, -40, -40, 215, 0 #else - iacFastTemp = scalar, U08, 53, "F", 1.8, -22.23, -40, 215, 0 + iacFastTemp = scalar, U08, 117, "F", 1.8, -22.23, -40, 215, 0 #endif - iacStepHome = scalar, U08, 54, "Steps", 3, 0, 0, 765, 0 - iacStepHyster= scalar, U08, 55, "Steps", 1, 0.0, 0.0, 10, 0 + iacStepHome = scalar, U08, 118, "Steps", 3, 0, 0, 765, 0 + iacStepHyster= scalar, U08, 119, "Steps", 1, 0.0, 0.0, 10, 0 ; Begin fan control vairables - fanInv = bits, U08, 56, [0:0], "No", "Yes" - fanEnable = bits, U08, 56, [1:1], "Off", "On/Off" - fanPin = bits , U08, 56, [2:7], "Board Default", "INVALID", "INVALID", "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" + fanInv = bits, U08, 120, [0:0], "No", "Yes" + fanEnable = bits, U08, 120, [1:1], "Off", "On/Off" + fanPin = bits , U08, 120, [2:7], "Board Default", "INVALID", "INVALID", "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" #if CELSIUS - fanSP = scalar, U08, 57, "C", 1.0, -40, -40, 215.0, 0 - fanHyster = scalar, U08, 58, "C", 1.0, 0.0, 0.0, 40, 0 + fanSP = scalar, U08, 121, "C", 1.0, -40, -40, 215.0, 0 + fanHyster = scalar, U08, 122, "C", 1.0, 0.0, 0.0, 40, 0 #else - fanSP = scalar, U08, 57, "F", 1.8, -22.23, -40, 215.0, 0 - fanHyster = scalar, U08, 58, "F", 1.0, 0.0, 0.0, 40, 0 + fanSP = scalar, U08, 121, "F", 1.8, -22.23, -40, 215.0, 0 + fanHyster = scalar, U08, 122, "F", 1.0, 0.0, 0.0, 40, 0 #endif - fanFreq = scalar, U08 , 59, "Hz", 2.0, 0.0, 10, 511, 0 + fanFreq = scalar, U08 , 123, "Hz", 2.0, 0.0, 10, 511, 0 #if CELSIUS - fanPWMBins = array, U08, 60, [4], "C", 1.0, -40, -40, 215, 0 + fanPWMBins = array, U08, 124, [4], "C", 1.0, -40, -40, 215, 0 #else - fanPWMBins = array, U08, 60, [4], "F", 1.8, -22.23, -40, 215, 0 + fanPWMBins = array, U08, 124, [4], "F", 1.8, -22.23, -40, 215, 0 #endif ;-------------------------------------------------- -;Boost and vvt maps (Page 8) +;Boost and vvt maps (Page 7) ;-------------------------------------------------- -page = 8 +page = 7 ;notes for boostTable in PSI~~~There are 6.895 psis to a kPa then x 2 like the kPa ver~~~div atmos. pressure in kPa by 2 and make neg so to subtract instead of add ; #if BOOSTPSI ; boostTable = array, U08, 0,[8x8], "PSI", 0.29007547546041846, -50.6625, 0, 74, 0 @@ -517,9 +514,9 @@ page = 8 tpsBinsVVT = array, U08, 152,[ 8], "TPS", 1.0, 0.0, 0.0, 255.0, 0 ;-------------------------------------------------- -;Sequential fuel trim tables (Page 9) +;Sequential fuel trim tables (Page 8) ;-------------------------------------------------- -page = 9 +page = 8 fuelTrim1Table = array, U08, 0,[6x6], "%", 1.0, -128, -50, 50, 0 fuelTrim1rpmBins = array, U08, 36,[ 6], "RPM", 100.0, 0.0, 100, 25500, 0 #if SPEED_DENSITY @@ -553,9 +550,9 @@ page = 9 #endif ;-------------------------------------------------- -;CANBUS control (Page 10) +;CANBUS control (Page 9) ;-------------------------------------------------- -page = 10 +page = 9 #if CAN_COMMANDS enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "ON via Internal CAN ", "INVALID" #else @@ -703,7 +700,7 @@ page = 10 unused10_126 = scalar, U08, 126, "", 1, 0, 0, 255, 0 unused10_127 = scalar, U08, 127, "", 1, 0, 0, 255, 0 -page = 11 +page = 10 #if CELSIUS crankingEnrichBins = array, U08, 0, [4], "C", 1.0, -40, -40, 215, 0 #else diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index e164d0f1..d10d5ac9 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -12,7 +12,7 @@ Fan control */ void initialiseFan() { - if( configPage4.fanInv == 1 ) { fanHIGH = LOW; fanLOW = HIGH; } + if( configPage3.fanInv == 1 ) { fanHIGH = LOW; fanLOW = HIGH; } else { fanHIGH = HIGH; fanLOW = LOW; } digitalWrite(pinFan, fanLOW); //Initiallise program with the fan in the off state currentStatus.fanOn = false; @@ -20,10 +20,10 @@ void initialiseFan() void fanControl() { - if( configPage4.fanEnable == 1 ) + if( configPage3.fanEnable == 1 ) { - int onTemp = (int)configPage4.fanSP - CALIBRATION_TEMPERATURE_OFFSET; - int offTemp = onTemp - configPage4.fanHyster; + int onTemp = (int)configPage3.fanSP - CALIBRATION_TEMPERATURE_OFFSET; + int offTemp = onTemp - configPage3.fanHyster; if ( (!currentStatus.fanOn) && (currentStatus.coolant >= onTemp) ) { digitalWrite(pinFan,fanHIGH); currentStatus.fanOn = true; } if ( (currentStatus.fanOn) && (currentStatus.coolant <= offTemp) ) { digitalWrite(pinFan, fanLOW); currentStatus.fanOn = false; } diff --git a/speeduino/comms.h b/speeduino/comms.h index 5f84a81e..be7969fd 100644 --- a/speeduino/comms.h +++ b/speeduino/comms.h @@ -7,11 +7,10 @@ #define ignSetPage 4//Config Page 2 #define afrMapPage 5 #define afrSetPage 6//Config Page 3 -#define iacPage 7//Config Page 4 -#define boostvvtPage 8 -#define seqFuelPage 9 -#define canbusPage 10//Config Page 10 -#define warmupPage 11 //Config Page 11 +#define boostvvtPage 7 +#define seqFuelPage 8 +#define canbusPage 9//Config Page 9 +#define warmupPage 10 //Config Page 10 #define packetSize 74 diff --git a/speeduino/comms.ino b/speeduino/comms.ino index d9da098b..4b406fe5 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -479,7 +479,7 @@ void receiveValue(int valueOffset, byte newValue) case veSetPage: pnt_configPage = &configPage1; //Setup a pointer to the relevant config page //For some reason, TunerStudio is sending offsets greater than the maximum page size. I'm not sure if it's their bug or mine, but the fix is to only update the config page if the offset is less than the maximum size - if (valueOffset < page_size) + if (valueOffset < npage_size[veSetPage]) { *((byte *)pnt_configPage + (byte)valueOffset) = newValue; } @@ -510,7 +510,7 @@ void receiveValue(int valueOffset, byte newValue) case ignSetPage: pnt_configPage = &configPage2; //For some reason, TunerStudio is sending offsets greater than the maximum page size. I'm not sure if it's their bug or mine, but the fix is to only update the config page if the offset is less than the maximum size - if (valueOffset < page_size) + if (valueOffset < npage_size[ignSetPage]) { *((byte *)pnt_configPage + (byte)valueOffset) = newValue; } @@ -542,16 +542,7 @@ void receiveValue(int valueOffset, byte newValue) case afrSetPage: pnt_configPage = &configPage3; //For some reason, TunerStudio is sending offsets greater than the maximum page size. I'm not sure if it's their bug or mine, but the fix is to only update the config page if the offset is less than the maximum size - if (valueOffset < page_size) - { - *((byte *)pnt_configPage + (byte)valueOffset) = newValue; - } - break; - - case iacPage: //Idle Air Control settings page (Page 4) - pnt_configPage = &configPage4; - //For some reason, TunerStudio is sending offsets greater than the maximum page size. I'm not sure if it's their bug or mine, but the fix is to only update the config page if the offset is less than the maximum size - if (valueOffset < page_size) + if (valueOffset < npage_size[afrSetPage]) { *((byte *)pnt_configPage + (byte)valueOffset) = newValue; } @@ -679,7 +670,7 @@ void sendPage(bool useChar) for (pnt_configPage = (uint16_t *)&configPage1.inj4Ang + 1; pnt_configPage < &configPage1.mapMax; pnt_configPage = (byte *)pnt_configPage + 1) { Serial.println(*((byte *)pnt_configPage)); } Serial.println(configPage1.mapMax); // Following loop displays remaining byte values of the page - for (pnt_configPage = (uint16_t *)&configPage1.mapMax + 1; pnt_configPage < (byte *)&configPage1 + page_size; pnt_configPage = (byte *)pnt_configPage + 1) { Serial.println(*((byte *)pnt_configPage)); } + for (pnt_configPage = (uint16_t *)&configPage1.mapMax + 1; pnt_configPage < (byte *)&configPage1 + npage_size[veSetPage]; pnt_configPage = (byte *)pnt_configPage + 1) { Serial.println(*((byte *)pnt_configPage)); } sendComplete = true; } else { pnt_configPage = &configPage1; } //Create a pointer to Page 1 in memory @@ -729,7 +720,7 @@ void sendPage(bool useChar) Serial.print(' '); } Serial.println(); - for (pnt_configPage = (byte *)&configPage2.dwellCorrectionValues[5] + 1; pnt_configPage < (byte *)&configPage2 + page_size; pnt_configPage = (byte *)pnt_configPage + 1) + for (pnt_configPage = (byte *)&configPage2.dwellCorrectionValues[5] + 1; pnt_configPage < (byte *)&configPage2 + npage_size[ignSetPage]; pnt_configPage = (byte *)pnt_configPage + 1) { Serial.println(*((byte *)pnt_configPage));// Displaying remaining byte values of the page } @@ -780,16 +771,15 @@ void sendPage(bool useChar) Serial.println(); } // Following loop displays the remaining byte values of the page - for (pnt_configPage = (byte *)&configPage3.airDenRates[8] + 1; pnt_configPage < (byte *)&configPage3 + page_size; pnt_configPage = (byte *)pnt_configPage + 1) + for (pnt_configPage = (byte *)&configPage3.airDenRates[8] + 1; pnt_configPage < (byte *)&configPage3 + npage_size[afrSetPage]; pnt_configPage = (byte *)pnt_configPage + 1) { Serial.println(*((byte *)pnt_configPage)); } sendComplete = true; } else { pnt_configPage = &configPage3; } //Create a pointer to Page 3 in memory - break; - case iacPage: + //Old configPage4 STARTED HERE! //currentTitleIndex = 106; //To Display Values from Config Page 4 if (useChar) @@ -800,10 +790,10 @@ void sendPage(bool useChar) byte * currentVar; switch (y) { - case 1: currentVar = configPage4.iacBins; break; - case 2: currentVar = configPage4.iacOLPWMVal; break; - case 3: currentVar = configPage4.iacOLStepVal; break; - case 4: currentVar = configPage4.iacCLValues; break; + case 1: currentVar = configPage3.iacBins; break; + case 2: currentVar = configPage3.iacOLPWMVal; break; + case 3: currentVar = configPage3.iacOLStepVal; break; + case 4: currentVar = configPage3.iacCLValues; break; default: break; } for (byte x = 10; x; x--) @@ -818,9 +808,9 @@ void sendPage(bool useChar) byte * currentVar; switch (y) { - case 1: currentVar = configPage4.iacCrankBins; break; - case 2: currentVar = configPage4.iacCrankDuty; break; - case 3: currentVar = configPage4.iacCrankSteps; break; + case 1: currentVar = configPage3.iacCrankBins; break; + case 2: currentVar = configPage3.iacCrankDuty; break; + case 3: currentVar = configPage3.iacCrankSteps; break; default: break; } for (byte x = 4; x; x--) @@ -831,10 +821,10 @@ void sendPage(bool useChar) Serial.println(); } // Following loop is for remaining byte value of page - for (pnt_configPage = (byte *)&configPage4.iacCrankBins[3] + 1; pnt_configPage < (byte *)&configPage4 + page_size; pnt_configPage = (byte *)pnt_configPage + 1) { Serial.println(*((byte *)pnt_configPage)); } + for (pnt_configPage = (byte *)&configPage3.iacCrankBins[3] + 1; pnt_configPage < (byte *)&configPage3 + npage_size[afrSetPage]; pnt_configPage = (byte *)pnt_configPage + 1) { Serial.println(*((byte *)pnt_configPage)); } sendComplete = true; } - else { pnt_configPage = &configPage4; } //Create a pointer to Page 4 in memory + else { pnt_configPage = &configPage3; } //Create a pointer to Page 4 in memory break; case boostvvtPage: @@ -1106,11 +1096,6 @@ byte getPageValue(byte page, uint16_t valueAddress) returnValue = *((byte *)pnt_configPage + valueAddress); break; - case iacPage: - pnt_configPage = &configPage4; //Create a pointer to Page 4 in memory - returnValue = *((byte *)pnt_configPage + valueAddress); - break; - case boostvvtPage: { diff --git a/speeduino/globals.h b/speeduino/globals.h index fd4ee3be..cabea41e 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -139,8 +139,8 @@ const char displaySignature[] = "speeduino 201609-dev"; const char TSfirmwareVersion[] = "Speeduino 2016.09"; const byte data_structure_version = 2; //This identifies the data structure when reading / writing. -const byte page_size = 64; -const int npage_size[12] = {0,288,64,288,64,288,64,64,160,192,128,192}; +//const byte page_size = 64; +const int npage_size[11] = {0,288,64,288,64,288,128,160,192,128,192}; //const byte page11_size = 128; #define MAP_PAGE_SIZE 288 @@ -511,16 +511,6 @@ struct config3 { byte flatSRetard; byte flatSArm; -#if defined(CORE_AVR) - }; -#else - } __attribute__((__packed__)); //The 32 bit systems require all structs to be fully packed -#endif - - -//Page 4 of the config mostly deals with idle control -//See ini file for further info (Config Page 7 in the ini) -struct config4 { byte iacCLValues[10]; //Closed loop target RPM value byte iacOLStepVal[10]; //Open loop step values for stepper motors byte iacOLPWMVal[10]; //Open loop duty values for PMWM valves diff --git a/speeduino/idle.ino b/speeduino/idle.ino index ec0b0d7e..00a4769d 100644 --- a/speeduino/idle.ino +++ b/speeduino/idle.ino @@ -24,7 +24,7 @@ void initialiseIdle() #elif defined (CORE_TEENSY) - if( (configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_OL) || (configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_CL) ) + if( (configPage3.iacAlgorithm == IAC_ALGORITHM_PWM_OL) || (configPage3.iacAlgorithm == IAC_ALGORITHM_PWM_CL) ) { //FlexTimer 2 is used for idle FTM2_MODE |= FTM_MODE_WPDIS; // Write Protection Disable @@ -84,14 +84,14 @@ void initialiseIdle() #endif //Initialising comprises of setting the 2D tables with the relevant values from the config pages - switch(configPage4.iacAlgorithm) + switch(configPage3.iacAlgorithm) { case IAC_ALGORITHM_NONE: //Case 0 is no idle control ('None') break; case IAC_ALGORITHM_ONOFF: //Case 1 is on/off idle control - if ((currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET) < configPage4.iacFastTemp) + if ((currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET) < configPage3.iacFastTemp) { digitalWrite(pinIdle1, HIGH); idleOn = true; @@ -102,14 +102,14 @@ void initialiseIdle() //Case 2 is PWM open loop iacPWMTable.xSize = 10; iacPWMTable.valueSize = SIZE_BYTE; - iacPWMTable.values = configPage4.iacOLPWMVal; - iacPWMTable.axisX = configPage4.iacBins; + iacPWMTable.values = configPage3.iacOLPWMVal; + iacPWMTable.axisX = configPage3.iacBins; iacCrankDutyTable.xSize = 4; iacCrankDutyTable.valueSize = SIZE_BYTE; - iacCrankDutyTable.values = configPage4.iacCrankDuty; - iacCrankDutyTable.axisX = configPage4.iacCrankBins; + iacCrankDutyTable.values = configPage3.iacCrankDuty; + iacCrankDutyTable.axisX = configPage3.iacCrankBins; idle_pin_port = portOutputRegister(digitalPinToPort(pinIdle1)); idle_pin_mask = digitalPinToBitMask(pinIdle1); @@ -127,13 +127,13 @@ void initialiseIdle() //Case 3 is PWM closed loop iacClosedLoopTable.xSize = 10; iacClosedLoopTable.valueSize = SIZE_BYTE; - iacClosedLoopTable.values = configPage4.iacCLValues; - iacClosedLoopTable.axisX = configPage4.iacBins; + iacClosedLoopTable.values = configPage3.iacCLValues; + iacClosedLoopTable.axisX = configPage3.iacBins; iacCrankDutyTable.xSize = 4; iacCrankDutyTable.valueSize = SIZE_BYTE; - iacCrankDutyTable.values = configPage4.iacCrankDuty; - iacCrankDutyTable.axisX = configPage4.iacCrankBins; + iacCrankDutyTable.values = configPage3.iacCrankDuty; + iacCrankDutyTable.axisX = configPage3.iacCrankBins; idle_pin_port = portOutputRegister(digitalPinToPort(pinIdle1)); idle_pin_mask = digitalPinToBitMask(pinIdle1); @@ -155,13 +155,13 @@ void initialiseIdle() //Case 2 is Stepper open loop iacStepTable.xSize = 10; iacStepTable.valueSize = SIZE_BYTE; - iacStepTable.values = configPage4.iacOLStepVal; - iacStepTable.axisX = configPage4.iacBins; + iacStepTable.values = configPage3.iacOLStepVal; + iacStepTable.axisX = configPage3.iacBins; iacCrankStepsTable.xSize = 4; - iacCrankStepsTable.values = configPage4.iacCrankSteps; - iacCrankStepsTable.axisX = configPage4.iacCrankBins; - iacStepTime = configPage4.iacStepTime * 1000; + iacCrankStepsTable.values = configPage3.iacCrankSteps; + iacCrankStepsTable.axisX = configPage3.iacCrankBins; + iacStepTime = configPage3.iacStepTime * 1000; completedHomeSteps = 0; idleStepper.curIdleStep = 0; @@ -172,20 +172,20 @@ void initialiseIdle() //Case 5 is Stepper closed loop iacClosedLoopTable.xSize = 10; iacClosedLoopTable.valueSize = SIZE_BYTE; - iacClosedLoopTable.values = configPage4.iacCLValues; - iacClosedLoopTable.axisX = configPage4.iacBins; + iacClosedLoopTable.values = configPage3.iacCLValues; + iacClosedLoopTable.axisX = configPage3.iacBins; iacCrankStepsTable.xSize = 4; - iacCrankStepsTable.values = configPage4.iacCrankSteps; - iacCrankStepsTable.axisX = configPage4.iacCrankBins; - iacStepTime = configPage4.iacStepTime * 1000; + iacCrankStepsTable.values = configPage3.iacCrankSteps; + iacCrankStepsTable.axisX = configPage3.iacCrankBins; + iacStepTime = configPage3.iacStepTime * 1000; completedHomeSteps = 0; idleCounter = 0; idleStepper.curIdleStep = 0; idleStepper.stepperStatus = SOFF; - idlePID.SetOutputLimits(0, (configPage4.iacStepHome * 3)); //Maximum number of steps probably needs its own setting + idlePID.SetOutputLimits(0, (configPage3.iacStepHome * 3)); //Maximum number of steps probably needs its own setting idlePID.SetTunings(configPage3.idleKP, configPage3.idleKI, configPage3.idleKD); idlePID.SetMode(AUTOMATIC); //Turn PID on break; @@ -194,21 +194,21 @@ void initialiseIdle() //Well this just shouldn't happen break; } - idleInitComplete = configPage4.iacAlgorithm; //Sets which idle method was initialised + idleInitComplete = configPage3.iacAlgorithm; //Sets which idle method was initialised currentStatus.idleLoad = 0; } void idleControl() { - if(idleInitComplete != configPage4.iacAlgorithm) { initialiseIdle(); } + if(idleInitComplete != configPage3.iacAlgorithm) { initialiseIdle(); } - switch(configPage4.iacAlgorithm) + switch(configPage3.iacAlgorithm) { case IAC_ALGORITHM_NONE: //Case 0 is no idle control ('None') break; case IAC_ALGORITHM_ONOFF: //Case 1 is on/off idle control - if ( (currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET) < configPage4.iacFastTemp) //All temps are offset by 40 degrees + if ( (currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET) < configPage3.iacFastTemp) //All temps are offset by 40 degrees { digitalWrite(pinIdle1, HIGH); idleOn = true; @@ -270,7 +270,7 @@ void idleControl() { //Only do a lookup of the required value around 4 times per second. Any more than this can create too much jitter and require a hyster value that is too high idleStepper.targetIdleStep = table2D_getValue(&iacStepTable, (currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET)) * 3; //All temps are offset by 40 degrees. Step counts are divided by 3 in TS. Multiply back out here - iacStepTime = configPage4.iacStepTime * 1000; + iacStepTime = configPage3.iacStepTime * 1000; } doStep(); } @@ -286,7 +286,7 @@ void idleControl() { //This only needs to be run very infrequently, once every 32 calls to idleControl(). This is approx. once per second idlePID.SetTunings(configPage3.idleKP, configPage3.idleKI, configPage3.idleKD); - iacStepTime = configPage4.iacStepTime * 1000; + iacStepTime = configPage3.iacStepTime * 1000; } idle_cl_target_rpm = table2D_getValue(&iacClosedLoopTable, currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET) * 10; //All temps are offset by 40 degrees @@ -314,7 +314,7 @@ False: If the motor has not yet been homed. Will also perform another homing ste static inline byte isStepperHomed() { bool isHomed = true; //As it's the most common scenario, default value is true - if( completedHomeSteps < (configPage4.iacStepHome * 3) ) //Home steps are divided by 3 from TS + if( completedHomeSteps < (configPage3.iacStepHome * 3) ) //Home steps are divided by 3 from TS { digitalWrite(pinStepperDir, STEPPER_BACKWARD); //Sets stepper direction to backwards digitalWrite(pinStepperStep, HIGH); @@ -369,7 +369,7 @@ Performs a step */ static inline void doStep() { - if ( (idleStepper.targetIdleStep <= (idleStepper.curIdleStep - configPage4.iacStepHyster)) || (idleStepper.targetIdleStep >= (idleStepper.curIdleStep + configPage4.iacStepHyster)) ) //Hysteris check + if ( (idleStepper.targetIdleStep <= (idleStepper.curIdleStep - configPage3.iacStepHyster)) || (idleStepper.targetIdleStep >= (idleStepper.curIdleStep + configPage3.iacStepHyster)) ) //Hysteris check { if(idleStepper.targetIdleStep < idleStepper.curIdleStep) { digitalWrite(pinStepperDir, STEPPER_BACKWARD); idleStepper.curIdleStep--; }//Sets stepper direction to backwards else if (idleStepper.targetIdleStep > idleStepper.curIdleStep) { digitalWrite(pinStepperDir, STEPPER_FORWARD); idleStepper.curIdleStep++; }//Sets stepper direction to forwards @@ -385,12 +385,12 @@ static inline void doStep() //This function simply turns off the idle PWM and sets the pin low static inline void disableIdle() { - if( (configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_CL) || (configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_OL) ) + if( (configPage3.iacAlgorithm == IAC_ALGORITHM_PWM_CL) || (configPage3.iacAlgorithm == IAC_ALGORITHM_PWM_OL) ) { IDLE_TIMER_DISABLE(); digitalWrite(pinIdle1, LOW); } - else if ( (configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL) || (configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL) ) + else if ( (configPage3.iacAlgorithm == IAC_ALGORITHM_STEP_CL) || (configPage3.iacAlgorithm == IAC_ALGORITHM_STEP_OL) ) { digitalWrite(pinStepperEnable, HIGH); //Disable the DRV8825 idleStepper.targetIdleStep = idleStepper.curIdleStep; //Don't try to move anymore @@ -401,11 +401,11 @@ static inline void disableIdle() //Typically this is enabling the PWM interrupt static inline void enableIdle() { - if( (configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_CL) || (configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_OL) ) + if( (configPage3.iacAlgorithm == IAC_ALGORITHM_PWM_CL) || (configPage3.iacAlgorithm == IAC_ALGORITHM_PWM_OL) ) { IDLE_TIMER_ENABLE(); } - else if ( (configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL) || (configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL) ) + else if ( (configPage3.iacAlgorithm == IAC_ALGORITHM_STEP_CL) || (configPage3.iacAlgorithm == IAC_ALGORITHM_STEP_OL) ) { } @@ -419,34 +419,34 @@ static inline void idleInterrupt() //Most ARM chips can simply call a function { if (idle_pwm_state) { - if (configPage4.iacPWMdir == 0) + if (configPage3.iacPWMdir == 0) { //Normal direction *idle_pin_port &= ~(idle_pin_mask); // Switch pin to low (1 pin mode) - if(configPage4.iacChannels == 1) { *idle2_pin_port |= (idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 + if(configPage3.iacChannels == 1) { *idle2_pin_port |= (idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 } else { //Reversed direction *idle_pin_port |= (idle_pin_mask); // Switch pin high - if(configPage4.iacChannels == 1) { *idle2_pin_port &= ~(idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 + if(configPage3.iacChannels == 1) { *idle2_pin_port &= ~(idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 } IDLE_COMPARE = IDLE_COUNTER + (idle_pwm_max_count - idle_pwm_cur_value); idle_pwm_state = false; } else { - if (configPage4.iacPWMdir == 0) + if (configPage3.iacPWMdir == 0) { //Normal direction *idle_pin_port |= (idle_pin_mask); // Switch pin high - if(configPage4.iacChannels == 1) { *idle2_pin_port &= ~(idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 + if(configPage3.iacChannels == 1) { *idle2_pin_port &= ~(idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 } else { //Reversed direction *idle_pin_port &= ~(idle_pin_mask); // Switch pin to low (1 pin mode) - if(configPage4.iacChannels == 1) { *idle2_pin_port |= (idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 + if(configPage3.iacChannels == 1) { *idle2_pin_port |= (idle2_pin_mask); } //If 2 idle channels are in use, flip idle2 to be the opposite of idle1 } IDLE_COMPARE = IDLE_COUNTER + idle_pwm_target_value; idle_pwm_cur_value = idle_pwm_target_value; diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 03c8378e..df944b60 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -52,7 +52,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. struct config1 configPage1; struct config2 configPage2; struct config3 configPage3; -struct config4 configPage4; struct config10 configPage10; struct config11 configPage11; @@ -872,7 +871,7 @@ void loop() readBaro(); //Infrequent baro readings are not an issue. } - if(configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL || configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL) { idleControl(); } //Run idlecontrol every loop for stepper idle. + if(configPage3.iacAlgorithm == IAC_ALGORITHM_STEP_OL || configPage3.iacAlgorithm == IAC_ALGORITHM_STEP_CL) { idleControl(); } //Run idlecontrol every loop for stepper idle. //Always check for sync //Main loop runs within this clause diff --git a/speeduino/storage.h b/speeduino/storage.h index 0d109e97..26724003 100644 --- a/speeduino/storage.h +++ b/speeduino/storage.h @@ -83,9 +83,7 @@ Current layout of EEPROM data (Version 3) is as follows (All sizes are in bytes) #define EEPROM_CONFIG5_XBINS 967 #define EEPROM_CONFIG5_YBINS 983 #define EEPROM_CONFIG6_START 999 -#define EEPROM_CONFIG6_END 1063 -#define EEPROM_CONFIG7_START 1063 -#define EEPROM_CONFIG7_END 1127 +#define EEPROM_CONFIG6_END 1127 #define EEPROM_CONFIG8_XSIZE1 1127 #define EEPROM_CONFIG8_YSIZE1 1128 #define EEPROM_CONFIG8_MAP1 1129 diff --git a/speeduino/storage.ino b/speeduino/storage.ino index dfe9dfd1..b647bec3 100644 --- a/speeduino/storage.ino +++ b/speeduino/storage.ino @@ -22,7 +22,6 @@ void writeAllConfig() writeConfig(8); writeConfig(9); writeConfig(10); - writeConfig(11); } @@ -177,20 +176,6 @@ void writeConfig(byte tableNum) } break; - case iacPage: - /*--------------------------------------------------- - | Config page 4 (See storage.h for data layout) - | 64 byte long config table - -----------------------------------------------------*/ - pnt_configPage = (byte *)&configPage4; //Create a pointer to Page 4 in memory - //The next 128 bytes can simply be pulled straight from the configTable - for(int x=EEPROM_CONFIG7_START; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. - if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG7_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG7_START))); writeCounter++; } - } - break; - case boostvvtPage: { /*--------------------------------------------------- @@ -434,17 +419,6 @@ void loadConfig() *(pnt_configPage + byte(x - EEPROM_CONFIG6_START)) = EEPROM.read(x); } - //********************************************************************************************************************************************************************************* - - //CONFIG PAGE (4) - pnt_configPage = (byte *)&configPage4; //Create a pointer to Page 3 in memory - //Begin writing the Ignition table, basically the same thing as above - //The first 64 bytes can simply be pulled straight from the configTable - for(int x=EEPROM_CONFIG7_START; x Date: Tue, 19 Sep 2017 15:09:32 +1000 Subject: [PATCH 126/133] Expand page 2 to 128 bytes in size --- reference/speeduino.ini | 5 +- speeduino/globals.h | 4 +- speeduino/storage.h | 100 ++++++++++++++++++++-------------------- 3 files changed, 56 insertions(+), 53 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index c0d22a56..fcc809fa 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -99,7 +99,7 @@ endianness = little nPages = 10 ;pageSize = 288, 64, 288, 64, 288, 64, 64, 160, 192, 128, 192 - pageSize = 288, 64, 288, 64, 288, 128, 160, 192, 128, 192 + pageSize = 288, 128, 288, 64, 288, 128, 160, 192, 128, 192 ;burnCommand = "B" ;pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012", "P\013" @@ -256,6 +256,7 @@ page = 2 iacCLmaxDuty = scalar, U08, 62, "%", 1.0, 0.0, 0.0, 100.0, 0 boostMinDuty = scalar, U08, 63, "%", 1.0, 0.0, 0.0, 100.0, 0 ; Minimum and maximum duty cycles for boost control + unused2-64 = array, U08, 64, [64], "%", 1.0, 0.0, 0.0, 255, 0 ;-------------------------------------------------- @@ -352,7 +353,7 @@ page = 4 ignBypassPin = bits , U08, 63, [1:6], "INVALID", "INVALID", "INVALID", "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" ignBypassHiLo = bits, U08, 63, [7:7], "LOW", "HIGH" - + ;unused4-64 = array, U08, 64, [64], "%", 1.0, 0.0, 0.0, 255, 0 ;-------------------------------------------------- ;Start AFR page ;-------------------------------------------------- diff --git a/speeduino/globals.h b/speeduino/globals.h index cabea41e..27ccdcb2 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -140,7 +140,7 @@ const char TSfirmwareVersion[] = "Speeduino 2016.09"; const byte data_structure_version = 2; //This identifies the data structure when reading / writing. //const byte page_size = 64; -const int npage_size[11] = {0,288,64,288,64,288,128,160,192,128,192}; +const int npage_size[11] = {0,288,128,288,64,288,128,160,192,128,192}; //const byte page11_size = 128; #define MAP_PAGE_SIZE 288 @@ -381,6 +381,8 @@ struct config1 { byte iacCLmaxDuty; byte boostMinDuty; + byte unused2_64[64]; + #if defined(CORE_AVR) }; #else diff --git a/speeduino/storage.h b/speeduino/storage.h index 26724003..2eb34254 100644 --- a/speeduino/storage.h +++ b/speeduino/storage.h @@ -69,57 +69,57 @@ Current layout of EEPROM data (Version 3) is as follows (All sizes are in bytes) #define EEPROM_CONFIG1_XBINS 259 #define EEPROM_CONFIG1_YBINS 275 #define EEPROM_CONFIG2_START 291 -#define EEPROM_CONFIG2_END 355 // +64 131 -#define EEPROM_CONFIG3_XSIZE 355 -#define EEPROM_CONFIG3_YSIZE 356 -#define EEPROM_CONFIG3_MAP 357 -#define EEPROM_CONFIG3_XBINS 613 -#define EEPROM_CONFIG3_YBINS 629 -#define EEPROM_CONFIG4_START 645 -#define EEPROM_CONFIG4_END 709 -#define EEPROM_CONFIG5_XSIZE 709 -#define EEPROM_CONFIG5_YSIZE 710 -#define EEPROM_CONFIG5_MAP 711 -#define EEPROM_CONFIG5_XBINS 967 -#define EEPROM_CONFIG5_YBINS 983 -#define EEPROM_CONFIG6_START 999 -#define EEPROM_CONFIG6_END 1127 -#define EEPROM_CONFIG8_XSIZE1 1127 -#define EEPROM_CONFIG8_YSIZE1 1128 -#define EEPROM_CONFIG8_MAP1 1129 -#define EEPROM_CONFIG8_XBINS1 1193 -#define EEPROM_CONFIG8_YBINS1 1201 -#define EEPROM_CONFIG8_XSIZE2 1209 -#define EEPROM_CONFIG8_YSIZE2 1210 -#define EEPROM_CONFIG8_MAP2 1211 -#define EEPROM_CONFIG8_XBINS2 1275 -#define EEPROM_CONFIG8_YBINS2 1283 -#define EEPROM_CONFIG8_END 1291 +#define EEPROM_CONFIG2_END 419 +#define EEPROM_CONFIG3_XSIZE 419 +#define EEPROM_CONFIG3_YSIZE 420 +#define EEPROM_CONFIG3_MAP 421 +#define EEPROM_CONFIG3_XBINS 677 +#define EEPROM_CONFIG3_YBINS 693 +#define EEPROM_CONFIG4_START 709 +#define EEPROM_CONFIG4_END 773 +#define EEPROM_CONFIG5_XSIZE 773 +#define EEPROM_CONFIG5_YSIZE 774 +#define EEPROM_CONFIG5_MAP 775 +#define EEPROM_CONFIG5_XBINS 1031 +#define EEPROM_CONFIG5_YBINS 1047 +#define EEPROM_CONFIG6_START 1063 +#define EEPROM_CONFIG6_END 1191 +#define EEPROM_CONFIG8_XSIZE1 1191 +#define EEPROM_CONFIG8_YSIZE1 1192 +#define EEPROM_CONFIG8_MAP1 1193 +#define EEPROM_CONFIG8_XBINS1 1257 +#define EEPROM_CONFIG8_YBINS1 1265 +#define EEPROM_CONFIG8_XSIZE2 1273 +#define EEPROM_CONFIG8_YSIZE2 1274 +#define EEPROM_CONFIG8_MAP2 1275 +#define EEPROM_CONFIG8_XBINS2 1339 +#define EEPROM_CONFIG8_YBINS2 1347 +#define EEPROM_CONFIG8_END 1355 -#define EEPROM_CONFIG9_XSIZE1 1291 -#define EEPROM_CONFIG9_YSIZE1 1292 -#define EEPROM_CONFIG9_MAP1 1293 -#define EEPROM_CONFIG9_XBINS1 1329 -#define EEPROM_CONFIG9_YBINS1 1335 -#define EEPROM_CONFIG9_XSIZE2 1341 -#define EEPROM_CONFIG9_YSIZE2 1342 -#define EEPROM_CONFIG9_MAP2 1343 -#define EEPROM_CONFIG9_XBINS2 1379 -#define EEPROM_CONFIG9_YBINS2 1385 -#define EEPROM_CONFIG9_XSIZE3 1391 -#define EEPROM_CONFIG9_YSIZE3 1392 -#define EEPROM_CONFIG9_MAP3 1393 -#define EEPROM_CONFIG9_XBINS3 1429 -#define EEPROM_CONFIG9_YBINS3 1435 -#define EEPROM_CONFIG9_XSIZE4 1441 -#define EEPROM_CONFIG9_YSIZE4 1442 -#define EEPROM_CONFIG9_MAP4 1443 -#define EEPROM_CONFIG9_XBINS4 1479 -#define EEPROM_CONFIG9_YBINS4 1485 -#define EEPROM_CONFIG10_START 1500 -#define EEPROM_CONFIG10_END 1628 -#define EEPROM_CONFIG11_START 1628 -#define EEPROM_CONFIG11_END 1820 +#define EEPROM_CONFIG9_XSIZE1 1355 +#define EEPROM_CONFIG9_YSIZE1 1356 +#define EEPROM_CONFIG9_MAP1 1357 +#define EEPROM_CONFIG9_XBINS1 1393 +#define EEPROM_CONFIG9_YBINS1 1399 +#define EEPROM_CONFIG9_XSIZE2 1405 +#define EEPROM_CONFIG9_YSIZE2 1406 +#define EEPROM_CONFIG9_MAP2 1407 +#define EEPROM_CONFIG9_XBINS2 1443 +#define EEPROM_CONFIG9_YBINS2 1449 +#define EEPROM_CONFIG9_XSIZE3 1455 +#define EEPROM_CONFIG9_YSIZE3 1456 +#define EEPROM_CONFIG9_MAP3 1457 +#define EEPROM_CONFIG9_XBINS3 1493 +#define EEPROM_CONFIG9_YBINS3 1499 +#define EEPROM_CONFIG9_XSIZE4 1505 +#define EEPROM_CONFIG9_YSIZE4 1506 +#define EEPROM_CONFIG9_MAP4 1507 +#define EEPROM_CONFIG9_XBINS4 1543 +#define EEPROM_CONFIG9_YBINS4 1549 +#define EEPROM_CONFIG10_START 1564 +#define EEPROM_CONFIG10_END 1692 +#define EEPROM_CONFIG11_START 1692 +#define EEPROM_CONFIG11_END 1884 //Calibration data is stored at the end of the EEPROM (This is in case any further calibration tables are needed as they are large blocks) #define EEPROM_LAST_BARO 2558 From 9d89494666324ced1065eb2755dd21bd66707af6 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Wed, 20 Sep 2017 12:15:41 +1000 Subject: [PATCH 127/133] Expand page 4 to 128 bytes --- reference/speeduino.ini | 21 +++++----- speeduino/globals.h | 6 ++- speeduino/storage.h | 88 ++++++++++++++++++++--------------------- 3 files changed, 58 insertions(+), 57 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index fcc809fa..207b4a04 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -99,7 +99,7 @@ endianness = little nPages = 10 ;pageSize = 288, 64, 288, 64, 288, 64, 64, 160, 192, 128, 192 - pageSize = 288, 128, 288, 64, 288, 128, 160, 192, 128, 192 + pageSize = 288, 128, 288, 128, 288, 128, 160, 192, 128, 192 ;burnCommand = "B" ;pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012", "P\013" @@ -114,9 +114,9 @@ ;pageSize = 288, 128, 288, 128, 288, 128, 128, 160, 192, 128, 192 pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A" burnCommand = "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i" - pageReadCommand = "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v" + pageReadCommand = "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v" pageValueWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" - ;pageChunkWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" + pageChunkWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" ;pageChunkWrite = "w%2i%2o%2c%v", "", "w%2i%2o%2c%v", "", "w%2i%2o%2c%v", "", "", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" blockingFactor = 2048 @@ -125,8 +125,7 @@ ;validateArrayBounds = true blockReadTimeout = 2000 ;tsWriteBlocks = on - ;writeBlocks = off - interWriteDelay = 1 + interWriteDelay = 5 ;Ignored when tsWriteBlocks is on pageActivationDelay = 10 ;New for TS 3.0.08ish upwards, define lists of standard I/O options @@ -256,7 +255,7 @@ page = 2 iacCLmaxDuty = scalar, U08, 62, "%", 1.0, 0.0, 0.0, 100.0, 0 boostMinDuty = scalar, U08, 63, "%", 1.0, 0.0, 0.0, 100.0, 0 ; Minimum and maximum duty cycles for boost control - unused2-64 = array, U08, 64, [64], "%", 1.0, 0.0, 0.0, 255, 0 + unused2-64 = array, U08, 64, [63], "%", 1.0, 0.0, 0.0, 255, 0 ;-------------------------------------------------- @@ -353,7 +352,7 @@ page = 4 ignBypassPin = bits , U08, 63, [1:6], "INVALID", "INVALID", "INVALID", "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" ignBypassHiLo = bits, U08, 63, [7:7], "LOW", "HIGH" - ;unused4-64 = array, U08, 64, [64], "%", 1.0, 0.0, 0.0, 255, 0 + unused4-64 = array, U08, 64, [63], "%", 1.0, 0.0, 0.0, 255, 0 ;-------------------------------------------------- ;Start AFR page ;-------------------------------------------------- @@ -519,7 +518,7 @@ page = 7 ;-------------------------------------------------- page = 8 fuelTrim1Table = array, U08, 0,[6x6], "%", 1.0, -128, -50, 50, 0 - fuelTrim1rpmBins = array, U08, 36,[ 6], "RPM", 100.0, 0.0, 100, 25500, 0 + fuelTrim1rpmBins = array, U08, 36,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 #if SPEED_DENSITY fuelTrim1loadBins = array, U08, 42,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 #elif ALPHA_N @@ -527,7 +526,7 @@ page = 8 #endif fuelTrim2Table = array, U08, 48,[6x6], "%", 1.0, -128, -50, 50, 0 - fuelTrim2rpmBins = array, U08, 84,[ 6], "RPM", 100.0, 0.0, 100, 25500, 0 + fuelTrim2rpmBins = array, U08, 84,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 #if SPEED_DENSITY fuelTrim2loadBins = array, U08, 90,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 #elif ALPHA_N @@ -535,7 +534,7 @@ page = 8 #endif fuelTrim3Table = array, U08, 96,[6x6], "%", 1.0, -128, -50, 50, 0 - fuelTrim3rpmBins = array, U08, 132,[ 6], "RPM", 100.0, 0.0, 100, 25500, 0 + fuelTrim3rpmBins = array, U08, 132,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 #if SPEED_DENSITY fuelTrim3loadBins = array, U08, 138,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 #elif ALPHA_N @@ -543,7 +542,7 @@ page = 8 #endif fuelTrim4Table = array, U08, 144,[6x6], "%", 1.0, -128, -50, 50, 0 - fuelTrim4rpmBins = array, U08, 180,[ 6], "RPM", 100.0, 0.0, 100, 25500, 0 + fuelTrim4rpmBins = array, U08, 180,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 #if SPEED_DENSITY fuelTrim4loadBins = array, U08, 186,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 #elif ALPHA_N diff --git a/speeduino/globals.h b/speeduino/globals.h index 27ccdcb2..a726d8c3 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -140,7 +140,7 @@ const char TSfirmwareVersion[] = "Speeduino 2016.09"; const byte data_structure_version = 2; //This identifies the data structure when reading / writing. //const byte page_size = 64; -const int npage_size[11] = {0,288,128,288,64,288,128,160,192,128,192}; +const int npage_size[11] = {0,288,128,288,128,288,128,160,192,128,192}; //const byte page11_size = 128; #define MAP_PAGE_SIZE 288 @@ -381,7 +381,7 @@ struct config1 { byte iacCLmaxDuty; byte boostMinDuty; - byte unused2_64[64]; + byte unused1_64[63]; #if defined(CORE_AVR) }; @@ -445,6 +445,8 @@ struct config2 { byte ignBypassPin : 6; //Pin the ignition bypass is activated on byte ignBypassHiLo : 1; //Whether this should be active high or low. + byte unused2_64[63]; + #if defined(CORE_AVR) }; #else diff --git a/speeduino/storage.h b/speeduino/storage.h index 2eb34254..b967d47a 100644 --- a/speeduino/storage.h +++ b/speeduino/storage.h @@ -7,7 +7,7 @@ void loadConfig(); void loadCalibration(); void writeCalibration(); -#define EEPROM_MAX_WRITE_BLOCK 50 //The maximum number of write operations that will be performed in one go. If we try to write to the EEPROM too fast (Each write takes ~3ms) then the rest of the system can hang) +#define EEPROM_MAX_WRITE_BLOCK 30 //The maximum number of write operations that will be performed in one go. If we try to write to the EEPROM too fast (Each write takes ~3ms) then the rest of the system can hang) bool eepromWritesPending = false; /* @@ -76,50 +76,50 @@ Current layout of EEPROM data (Version 3) is as follows (All sizes are in bytes) #define EEPROM_CONFIG3_XBINS 677 #define EEPROM_CONFIG3_YBINS 693 #define EEPROM_CONFIG4_START 709 -#define EEPROM_CONFIG4_END 773 -#define EEPROM_CONFIG5_XSIZE 773 -#define EEPROM_CONFIG5_YSIZE 774 -#define EEPROM_CONFIG5_MAP 775 -#define EEPROM_CONFIG5_XBINS 1031 -#define EEPROM_CONFIG5_YBINS 1047 -#define EEPROM_CONFIG6_START 1063 -#define EEPROM_CONFIG6_END 1191 -#define EEPROM_CONFIG8_XSIZE1 1191 -#define EEPROM_CONFIG8_YSIZE1 1192 -#define EEPROM_CONFIG8_MAP1 1193 -#define EEPROM_CONFIG8_XBINS1 1257 -#define EEPROM_CONFIG8_YBINS1 1265 -#define EEPROM_CONFIG8_XSIZE2 1273 -#define EEPROM_CONFIG8_YSIZE2 1274 -#define EEPROM_CONFIG8_MAP2 1275 -#define EEPROM_CONFIG8_XBINS2 1339 -#define EEPROM_CONFIG8_YBINS2 1347 -#define EEPROM_CONFIG8_END 1355 +#define EEPROM_CONFIG4_END 837 +#define EEPROM_CONFIG5_XSIZE 837 +#define EEPROM_CONFIG5_YSIZE 838 +#define EEPROM_CONFIG5_MAP 839 +#define EEPROM_CONFIG5_XBINS 1095 +#define EEPROM_CONFIG5_YBINS 1111 +#define EEPROM_CONFIG6_START 1127 +#define EEPROM_CONFIG6_END 1255 +#define EEPROM_CONFIG8_XSIZE1 1255 +#define EEPROM_CONFIG8_YSIZE1 1256 +#define EEPROM_CONFIG8_MAP1 1257 +#define EEPROM_CONFIG8_XBINS1 1321 +#define EEPROM_CONFIG8_YBINS1 1329 +#define EEPROM_CONFIG8_XSIZE2 1337 +#define EEPROM_CONFIG8_YSIZE2 1338 +#define EEPROM_CONFIG8_MAP2 1339 +#define EEPROM_CONFIG8_XBINS2 1403 +#define EEPROM_CONFIG8_YBINS2 1411 +#define EEPROM_CONFIG8_END 1419 -#define EEPROM_CONFIG9_XSIZE1 1355 -#define EEPROM_CONFIG9_YSIZE1 1356 -#define EEPROM_CONFIG9_MAP1 1357 -#define EEPROM_CONFIG9_XBINS1 1393 -#define EEPROM_CONFIG9_YBINS1 1399 -#define EEPROM_CONFIG9_XSIZE2 1405 -#define EEPROM_CONFIG9_YSIZE2 1406 -#define EEPROM_CONFIG9_MAP2 1407 -#define EEPROM_CONFIG9_XBINS2 1443 -#define EEPROM_CONFIG9_YBINS2 1449 -#define EEPROM_CONFIG9_XSIZE3 1455 -#define EEPROM_CONFIG9_YSIZE3 1456 -#define EEPROM_CONFIG9_MAP3 1457 -#define EEPROM_CONFIG9_XBINS3 1493 -#define EEPROM_CONFIG9_YBINS3 1499 -#define EEPROM_CONFIG9_XSIZE4 1505 -#define EEPROM_CONFIG9_YSIZE4 1506 -#define EEPROM_CONFIG9_MAP4 1507 -#define EEPROM_CONFIG9_XBINS4 1543 -#define EEPROM_CONFIG9_YBINS4 1549 -#define EEPROM_CONFIG10_START 1564 -#define EEPROM_CONFIG10_END 1692 -#define EEPROM_CONFIG11_START 1692 -#define EEPROM_CONFIG11_END 1884 +#define EEPROM_CONFIG9_XSIZE1 1419 +#define EEPROM_CONFIG9_YSIZE1 1420 +#define EEPROM_CONFIG9_MAP1 1421 +#define EEPROM_CONFIG9_XBINS1 1457 +#define EEPROM_CONFIG9_YBINS1 1463 +#define EEPROM_CONFIG9_XSIZE2 1469 +#define EEPROM_CONFIG9_YSIZE2 1470 +#define EEPROM_CONFIG9_MAP2 1471 +#define EEPROM_CONFIG9_XBINS2 1507 +#define EEPROM_CONFIG9_YBINS2 1513 +#define EEPROM_CONFIG9_XSIZE3 1519 +#define EEPROM_CONFIG9_YSIZE3 1520 +#define EEPROM_CONFIG9_MAP3 1521 +#define EEPROM_CONFIG9_XBINS3 1557 +#define EEPROM_CONFIG9_YBINS3 1563 +#define EEPROM_CONFIG9_XSIZE4 1569 +#define EEPROM_CONFIG9_YSIZE4 1570 +#define EEPROM_CONFIG9_MAP4 1571 +#define EEPROM_CONFIG9_XBINS4 1607 +#define EEPROM_CONFIG9_YBINS4 1613 +#define EEPROM_CONFIG10_START 1628 +#define EEPROM_CONFIG10_END 1756 +#define EEPROM_CONFIG11_START 1756 +#define EEPROM_CONFIG11_END 1948 //Calibration data is stored at the end of the EEPROM (This is in case any further calibration tables are needed as they are large blocks) #define EEPROM_LAST_BARO 2558 From 46b1663da93fe22f3c63155635ee8aee759d1cbb Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Wed, 20 Sep 2017 14:06:55 +1000 Subject: [PATCH 128/133] Support chunk serial comms mode --- speeduino/comms.ino | 37 ++++----- speeduino/speeduino.ino | 14 ++-- speeduino/storage.ino | 177 +++++++++++++++++++++++++--------------- 3 files changed, 135 insertions(+), 93 deletions(-) diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 4b406fe5..447d7f85 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -571,7 +571,7 @@ void receiveValue(int valueOffset, byte newValue) int tempOffset = valueOffset - 144; vvtTable.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; //The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) } - else //New value is on the Y (Load) axis of the vvt table + else if (valueOffset < 161) //New value is on the X (RPM) axis of the vvt table//New value is on the Y (Load) axis of the vvt table { int tempOffset = valueOffset - 152; vvtTable.axisY[(7 - tempOffset)] = int(newValue); //TABLE_LOAD_MULTIPLIER is NOT used for vvt as it is TPS based (0-100) @@ -579,24 +579,23 @@ void receiveValue(int valueOffset, byte newValue) break; case seqFuelPage: - { - int tempOffset; - if (valueOffset < 36) { trim1Table.values[5 - (valueOffset / 6)][valueOffset % 6] = newValue; } //Trim1 values - else if (valueOffset < 42) { trim1Table.axisX[(valueOffset - 36)] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the trim1 table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) - else if (valueOffset < 48) { trim1Table.axisY[(5 - (valueOffset - 42))] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (TPS) axis of the boost table - //Trim table 2 - else if (valueOffset < 84) { tempOffset = valueOffset - 48; trim2Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map - else if (valueOffset < 90) { tempOffset = valueOffset - 84; trim2Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) - else if (valueOffset < 96) { tempOffset = valueOffset - 90; trim2Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table - //Trim table 3 - else if (valueOffset < 132) { tempOffset = valueOffset - 96; trim3Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map - else if (valueOffset < 138) { tempOffset = valueOffset - 132; trim3Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) - else if (valueOffset < 144) { tempOffset = valueOffset - 138; trim3Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table - //Trim table 4 - else if (valueOffset < 180) { tempOffset = valueOffset - 144; trim4Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map - else if (valueOffset < 186) { tempOffset = valueOffset - 180; trim4Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) - else if (valueOffset < 192) { tempOffset = valueOffset - 186; trim4Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table - } + int tempOffset; + if (valueOffset < 36) { trim1Table.values[5 - (valueOffset / 6)][valueOffset % 6] = newValue; } //Trim1 values + else if (valueOffset < 42) { trim1Table.axisX[(valueOffset - 36)] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the trim1 table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) + else if (valueOffset < 48) { trim1Table.axisY[(5 - (valueOffset - 42))] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (TPS) axis of the boost table + //Trim table 2 + else if (valueOffset < 84) { tempOffset = valueOffset - 48; trim2Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map + else if (valueOffset < 90) { tempOffset = valueOffset - 84; trim2Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) + else if (valueOffset < 96) { tempOffset = valueOffset - 90; trim2Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table + //Trim table 3 + else if (valueOffset < 132) { tempOffset = valueOffset - 96; trim3Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map + else if (valueOffset < 138) { tempOffset = valueOffset - 132; trim3Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) + else if (valueOffset < 144) { tempOffset = valueOffset - 138; trim3Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table + //Trim table 4 + else if (valueOffset < 180) { tempOffset = valueOffset - 144; trim4Table.values[5 - (tempOffset / 6)][tempOffset % 6] = newValue; } //New value is part of the trim2 map + else if (valueOffset < 186) { tempOffset = valueOffset - 180; trim4Table.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) + else if (valueOffset < 192) { tempOffset = valueOffset - 186; trim4Table.axisY[(5 - tempOffset)] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (Load) axis of the table + break; case canbusPage: diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index df944b60..680383cb 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -740,14 +740,6 @@ void loop() //----------------------------------------------------------------------------------------------------- readMAP(); - if(BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) - { - BIT_CLEAR(TIMER_mask, BIT_TIMER_30HZ); - //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough - //currentStatus.RPM = 3000; - boostControl(); - } - if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) //Every 32 loops { BIT_CLEAR(TIMER_mask, BIT_TIMER_15HZ); @@ -794,11 +786,16 @@ void loop() //And check whether the tooth log buffer is ready if(toothHistoryIndex > TOOTH_LOG_SIZE) { BIT_SET(currentStatus.squirt, BIT_SQUIRT_TOOTHLOG1READY); } + } if(BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) //30 hertz { //Nothing here currently BIT_CLEAR(TIMER_mask, BIT_TIMER_30HZ); + //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough + //currentStatus.RPM = 3000; + boostControl(); + } //The IAT and CLT readings can be done less frequently (4 times per second) if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_4HZ)) @@ -808,6 +805,7 @@ void loop() readIAT(); readO2(); readBat(); + if(eepromWritesPending == true) { writeAllConfig(); } //Check for any outstanding EEPROM writes. #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 diff --git a/speeduino/storage.ino b/speeduino/storage.ino index b647bec3..01cff706 100644 --- a/speeduino/storage.ino +++ b/speeduino/storage.ino @@ -13,15 +13,15 @@ A full copy of the license may be found in the projects root directory void writeAllConfig() { writeConfig(1); - writeConfig(2); - writeConfig(3); - writeConfig(4); - writeConfig(5); - writeConfig(6); - writeConfig(7); - writeConfig(8); - writeConfig(9); - writeConfig(10); + if (eepromWritesPending == false) { writeConfig(2); } + if (eepromWritesPending == false) { writeConfig(3); } + if (eepromWritesPending == false) { writeConfig(4); } + if (eepromWritesPending == false) { writeConfig(5); } + if (eepromWritesPending == false) { writeConfig(6); } + if (eepromWritesPending == false) { writeConfig(7); } + if (eepromWritesPending == false) { writeConfig(8); } + if (eepromWritesPending == false) { writeConfig(9); } + if (eepromWritesPending == false) { writeConfig(10); } } @@ -37,7 +37,9 @@ void writeConfig(byte tableNum) */ int offset; + int i, z, y; int writeCounter = 0; + byte newVal; //Used for tempoerarily storing the new intended value //Create a pointer to the config page byte* pnt_configPage; switch(tableNum) @@ -47,11 +49,11 @@ void writeConfig(byte tableNum) | Fuel table (See storage.h for data layout) - Page 1 | 16x16 table itself + the 16 values along each of the axis -----------------------------------------------------*/ - if(EEPROM.read(EEPROM_CONFIG1_XSIZE) != fuelTable.xSize) { EEPROM.write(EEPROM_CONFIG1_XSIZE, fuelTable.xSize); } //Write the VE Tables RPM dimension size - if(EEPROM.read(EEPROM_CONFIG1_YSIZE) != fuelTable.ySize) { EEPROM.write(EEPROM_CONFIG1_YSIZE, fuelTable.ySize); } //Write the VE Tables MAP/TPS dimension size + if(EEPROM.read(EEPROM_CONFIG1_XSIZE) != fuelTable.xSize) { EEPROM.write(EEPROM_CONFIG1_XSIZE, fuelTable.xSize); writeCounter++; } //Write the VE Tables RPM dimension size + if(EEPROM.read(EEPROM_CONFIG1_YSIZE) != fuelTable.ySize) { EEPROM.write(EEPROM_CONFIG1_YSIZE, fuelTable.ySize); writeCounter++; } //Write the VE Tables MAP/TPS dimension size for(int x=EEPROM_CONFIG1_MAP; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG1_MAP; if( EEPROM.read(x) != (fuelTable.values[15-(offset/16)][offset%16]) ) { EEPROM.write(x, fuelTable.values[15-(offset/16)][offset%16]); writeCounter++; } //Write the 16x16 map } @@ -59,17 +61,19 @@ void writeConfig(byte tableNum) //RPM bins for(int x=EEPROM_CONFIG1_XBINS; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG1_XBINS; if( EEPROM.read(x) != (byte(fuelTable.axisX[offset]/TABLE_RPM_MULTIPLIER)) ) { EEPROM.write(x, byte(fuelTable.axisX[offset]/TABLE_RPM_MULTIPLIER)); writeCounter++; } //RPM bins are divided by 100 and converted to a byte } //TPS/MAP bins for(int x=EEPROM_CONFIG1_YBINS; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG1_YBINS; EEPROM.update(x, fuelTable.axisY[offset] / TABLE_LOAD_MULTIPLIER); //Table load is divided by 2 (Allows for MAP up to 511) } + if(writeCounter > EEPROM_MAX_WRITE_BLOCK) { eepromWritesPending = true; } + else { eepromWritesPending = false; } break; //That concludes the writing of the VE table @@ -81,9 +85,13 @@ void writeConfig(byte tableNum) pnt_configPage = (byte *)&configPage1; //Create a pointer to Page 2 in memory for(int x=EEPROM_CONFIG2_START; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG2_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG2_START))); writeCounter++; } } + + if(writeCounter > EEPROM_MAX_WRITE_BLOCK) { eepromWritesPending = true; } + else { eepromWritesPending = false; } + break; case ignMapPage: @@ -92,30 +100,36 @@ void writeConfig(byte tableNum) | 16x16 table itself + the 16 values along each of the axis -----------------------------------------------------*/ //Begin writing the Ignition table, basically the same thing as above - if(EEPROM.read(EEPROM_CONFIG3_XSIZE) != ignitionTable.xSize) { EEPROM.write(EEPROM_CONFIG3_XSIZE,ignitionTable.xSize); } //Write the ignition Table RPM dimension size - if(EEPROM.read(EEPROM_CONFIG3_YSIZE) != ignitionTable.ySize) { EEPROM.write(EEPROM_CONFIG3_YSIZE,ignitionTable.ySize); } //Write the ignition Table MAP/TPS dimension size + if(EEPROM.read(EEPROM_CONFIG3_XSIZE) != ignitionTable.xSize) { EEPROM.write(EEPROM_CONFIG3_XSIZE,ignitionTable.xSize); writeCounter++; } //Write the ignition Table RPM dimension size + if(EEPROM.read(EEPROM_CONFIG3_YSIZE) != ignitionTable.ySize) { EEPROM.write(EEPROM_CONFIG3_YSIZE,ignitionTable.ySize); writeCounter++; } //Write the ignition Table MAP/TPS dimension size for(int x=EEPROM_CONFIG3_MAP; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG3_MAP; - if(EEPROM.read(x) != (ignitionTable.values[15-(offset/16)][offset%16]) ) { EEPROM.write(x, ignitionTable.values[15-(offset/16)][offset%16]); writeCounter++; } //Write the 16x16 map with translation + newVal = ignitionTable.values[15-(offset/16)][offset%16]; + if(EEPROM.read(x) != newVal) { EEPROM.write(x, newVal); writeCounter++; } //Write the 16x16 map with translation } //RPM bins for(int x=EEPROM_CONFIG3_XBINS; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG3_XBINS; - if(EEPROM.read(x) != byte(ignitionTable.axisX[offset]/TABLE_RPM_MULTIPLIER)) { EEPROM.write(x, byte(ignitionTable.axisX[offset]/TABLE_RPM_MULTIPLIER)); writeCounter++; } //RPM bins are divided by 100 and converted to a byte + newVal = ignitionTable.axisX[offset]/TABLE_RPM_MULTIPLIER; + if(EEPROM.read(x) != newVal) { EEPROM.write(x, newVal); writeCounter++; } //RPM bins are divided by 100 and converted to a byte } //TPS/MAP bins for(int x=EEPROM_CONFIG3_YBINS; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG3_YBINS; - EEPROM.update(x, ignitionTable.axisY[offset]/TABLE_LOAD_MULTIPLIER); //Table load is divided by 2 (Allows for MAP up to 511) + newVal = ignitionTable.axisY[offset]/TABLE_LOAD_MULTIPLIER; + if(EEPROM.read(x) != newVal) { EEPROM.write(x, newVal); writeCounter++; } //Table load is divided by 2 (Allows for MAP up to 511) } - //That concludes the writing of the IGN table + + if(writeCounter > EEPROM_MAX_WRITE_BLOCK) { eepromWritesPending = true; } + else { eepromWritesPending = false; } + break; case ignSetPage: @@ -126,9 +140,13 @@ void writeConfig(byte tableNum) pnt_configPage = (byte *)&configPage2; //Create a pointer to Page 2 in memory for(int x=EEPROM_CONFIG4_START; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG4_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG4_START))); writeCounter++; } } + + if(writeCounter > EEPROM_MAX_WRITE_BLOCK) { eepromWritesPending = true; } + else { eepromWritesPending = false; } + break; case afrMapPage: @@ -137,30 +155,33 @@ void writeConfig(byte tableNum) | 16x16 table itself + the 16 values along each of the axis -----------------------------------------------------*/ //Begin writing the Ignition table, basically the same thing as above - if(EEPROM.read(EEPROM_CONFIG5_XSIZE) != afrTable.xSize) { EEPROM.write(EEPROM_CONFIG5_XSIZE,afrTable.xSize); } //Write the ignition Table RPM dimension size - if(EEPROM.read(EEPROM_CONFIG5_YSIZE) != afrTable.ySize) { EEPROM.write(EEPROM_CONFIG5_YSIZE,afrTable.ySize); } //Write the ignition Table MAP/TPS dimension size + if(EEPROM.read(EEPROM_CONFIG5_XSIZE) != afrTable.xSize) { EEPROM.write(EEPROM_CONFIG5_XSIZE,afrTable.xSize); writeCounter++; } //Write the ignition Table RPM dimension size + if(EEPROM.read(EEPROM_CONFIG5_YSIZE) != afrTable.ySize) { EEPROM.write(EEPROM_CONFIG5_YSIZE,afrTable.ySize); writeCounter++; } //Write the ignition Table MAP/TPS dimension size for(int x=EEPROM_CONFIG5_MAP; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG5_MAP; if(EEPROM.read(x) != (afrTable.values[15-(offset/16)][offset%16]) ) { EEPROM.write(x, afrTable.values[15-(offset/16)][offset%16]); writeCounter++; } //Write the 16x16 map } //RPM bins for(int x=EEPROM_CONFIG5_XBINS; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG5_XBINS; if(EEPROM.read(x) != byte(afrTable.axisX[offset]/TABLE_RPM_MULTIPLIER)) { EEPROM.write(x, byte(afrTable.axisX[offset]/TABLE_RPM_MULTIPLIER)); writeCounter++; } //RPM bins are divided by 100 and converted to a byte } //TPS/MAP bins for(int x=EEPROM_CONFIG5_YBINS; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG5_YBINS; EEPROM.update(x, afrTable.axisY[offset]/TABLE_LOAD_MULTIPLIER); //Table load is divided by 2 (Allows for MAP up to 511) } - //That concludes the writing of the AFR table + + if(writeCounter > EEPROM_MAX_WRITE_BLOCK) { eepromWritesPending = true; } + else { eepromWritesPending = false; } + break; case afrSetPage: @@ -171,27 +192,30 @@ void writeConfig(byte tableNum) pnt_configPage = (byte *)&configPage3; //Create a pointer to Page 3 in memory for(int x=EEPROM_CONFIG6_START; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG6_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG6_START))); writeCounter++; } } + + if(writeCounter > EEPROM_MAX_WRITE_BLOCK) { eepromWritesPending = true; } + else { eepromWritesPending = false; } + break; case boostvvtPage: - { /*--------------------------------------------------- | Boost and vvt tables (See storage.h for data layout) - Page 8 | 8x8 table itself + the 8 values along each of the axis -----------------------------------------------------*/ //Begin writing the 2 tables, basically the same thing as above but we're doing these 2 together (2 tables per page instead of 1) - if(EEPROM.read(EEPROM_CONFIG8_XSIZE1) != boostTable.xSize) { EEPROM.write(EEPROM_CONFIG8_XSIZE1,boostTable.xSize); } //Write the boost Table RPM dimension size - if(EEPROM.read(EEPROM_CONFIG8_YSIZE1) != boostTable.ySize) { EEPROM.write(EEPROM_CONFIG8_YSIZE1,boostTable.ySize); } //Write the boost Table MAP/TPS dimension size - if(EEPROM.read(EEPROM_CONFIG8_XSIZE2) != vvtTable.xSize) { EEPROM.write(EEPROM_CONFIG8_XSIZE2,vvtTable.xSize); } //Write the vvt Table RPM dimension size - if(EEPROM.read(EEPROM_CONFIG8_YSIZE2) != vvtTable.ySize) { EEPROM.write(EEPROM_CONFIG8_YSIZE2,vvtTable.ySize); } //Write the vvt Table MAP/TPS dimension size + if(EEPROM.read(EEPROM_CONFIG8_XSIZE1) != boostTable.xSize) { EEPROM.write(EEPROM_CONFIG8_XSIZE1,boostTable.xSize); writeCounter++; } //Write the boost Table RPM dimension size + if(EEPROM.read(EEPROM_CONFIG8_YSIZE1) != boostTable.ySize) { EEPROM.write(EEPROM_CONFIG8_YSIZE1,boostTable.ySize); writeCounter++; } //Write the boost Table MAP/TPS dimension size + if(EEPROM.read(EEPROM_CONFIG8_XSIZE2) != vvtTable.xSize) { EEPROM.write(EEPROM_CONFIG8_XSIZE2,vvtTable.xSize); writeCounter++; } //Write the vvt Table RPM dimension size + if(EEPROM.read(EEPROM_CONFIG8_YSIZE2) != vvtTable.ySize) { EEPROM.write(EEPROM_CONFIG8_YSIZE2,vvtTable.ySize); writeCounter++; } //Write the vvt Table MAP/TPS dimension size - int y = EEPROM_CONFIG8_MAP2; //We do the 2 maps together in the same loop + y = EEPROM_CONFIG8_MAP2; //We do the 2 maps together in the same loop for(int x=EEPROM_CONFIG8_MAP1; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG8_MAP1; if(EEPROM.read(x) != (boostTable.values[7-(offset/8)][offset%8]) ) { EEPROM.write(x, boostTable.values[7-(offset/8)][offset%8]); writeCounter++; } //Write the 8x8 map offset = y - EEPROM_CONFIG8_MAP2; @@ -202,7 +226,7 @@ void writeConfig(byte tableNum) y = EEPROM_CONFIG8_XBINS2; for(int x=EEPROM_CONFIG8_XBINS1; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG8_XBINS1; if(EEPROM.read(x) != byte(boostTable.axisX[offset]/TABLE_RPM_MULTIPLIER)) { EEPROM.write(x, byte(boostTable.axisX[offset]/TABLE_RPM_MULTIPLIER)); writeCounter++; } //RPM bins are divided by 100 and converted to a byte offset = y - EEPROM_CONFIG8_XBINS2; @@ -213,46 +237,57 @@ void writeConfig(byte tableNum) y=EEPROM_CONFIG8_YBINS2; for(int x=EEPROM_CONFIG8_YBINS1; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG8_YBINS1; - EEPROM.update(x, boostTable.axisY[offset]); //TABLE_LOAD_MULTIPLIER is NOT used for boost as it is TPS based (0-100) + if(EEPROM.read(x) != boostTable.axisY[offset]) { EEPROM.write(x, boostTable.axisY[offset]); writeCounter++; } //TABLE_LOAD_MULTIPLIER is NOT used for boost as it is TPS based (0-100) offset = y - EEPROM_CONFIG8_YBINS2; - EEPROM.update(y, vvtTable.axisY[offset]); //TABLE_LOAD_MULTIPLIER is NOT used for VVT as it is TPS based (0-100) + if(EEPROM.read(y) != vvtTable.axisY[offset]) { EEPROM.write(y, vvtTable.axisY[offset]); writeCounter++; } //TABLE_LOAD_MULTIPLIER is NOT used for VVT as it is TPS based (0-100) y++; } - } + + if(writeCounter > EEPROM_MAX_WRITE_BLOCK) { eepromWritesPending = true; } + else { eepromWritesPending = false; } + break; case seqFuelPage: - { /*--------------------------------------------------- | Fuel trim tables (See storage.h for data layout) - Page 9 | 6x6 tables itself + the 6 values along each of the axis -----------------------------------------------------*/ //Begin writing the 2 tables, basically the same thing as above but we're doing these 2 together (2 tables per page instead of 1) - EEPROM.update(EEPROM_CONFIG9_XSIZE1,trim1Table.xSize); //Write the boost Table RPM dimension size - EEPROM.update(EEPROM_CONFIG9_YSIZE1,trim1Table.ySize); //Write the boost Table MAP/TPS dimension size - EEPROM.update(EEPROM_CONFIG9_XSIZE2,trim2Table.xSize); //Write the boost Table RPM dimension size - EEPROM.update(EEPROM_CONFIG9_YSIZE2,trim2Table.ySize); //Write the boost Table MAP/TPS dimension size - EEPROM.update(EEPROM_CONFIG9_XSIZE3,trim3Table.xSize); //Write the boost Table RPM dimension size - EEPROM.update(EEPROM_CONFIG9_YSIZE3,trim3Table.ySize); //Write the boost Table MAP/TPS dimension size - EEPROM.update(EEPROM_CONFIG9_XSIZE4,trim4Table.xSize); //Write the boost Table RPM dimension size - EEPROM.update(EEPROM_CONFIG9_YSIZE4,trim4Table.ySize); //Write the boost Table MAP/TPS dimension size + if(EEPROM.read(EEPROM_CONFIG9_XSIZE1) != trim1Table.xSize) { EEPROM.write(EEPROM_CONFIG9_XSIZE1,trim1Table.xSize); writeCounter++; } //Write the boost Table RPM dimension size + if(EEPROM.read(EEPROM_CONFIG9_YSIZE1) != trim1Table.ySize) { EEPROM.write(EEPROM_CONFIG9_YSIZE1,trim1Table.ySize); writeCounter++; } //Write the boost Table MAP/TPS dimension size + if(EEPROM.read(EEPROM_CONFIG9_XSIZE2) != trim2Table.xSize) { EEPROM.write(EEPROM_CONFIG9_XSIZE2,trim2Table.xSize); writeCounter++; } //Write the boost Table RPM dimension size + if(EEPROM.read(EEPROM_CONFIG9_YSIZE2) != trim2Table.ySize) { EEPROM.write(EEPROM_CONFIG9_YSIZE2,trim2Table.ySize); writeCounter++; } //Write the boost Table MAP/TPS dimension size + if(EEPROM.read(EEPROM_CONFIG9_XSIZE3) != trim3Table.xSize) { EEPROM.write(EEPROM_CONFIG9_XSIZE3,trim3Table.xSize); writeCounter++; } //Write the boost Table RPM dimension size + if(EEPROM.read(EEPROM_CONFIG9_YSIZE3) != trim3Table.ySize) { EEPROM.write(EEPROM_CONFIG9_YSIZE3,trim3Table.ySize); writeCounter++; } //Write the boost Table MAP/TPS dimension size + if(EEPROM.read(EEPROM_CONFIG9_XSIZE4) != trim4Table.xSize) { EEPROM.write(EEPROM_CONFIG9_XSIZE4,trim4Table.xSize); writeCounter++; } //Write the boost Table RPM dimension size + if(EEPROM.read(EEPROM_CONFIG9_YSIZE4) != trim4Table.ySize) { EEPROM.write(EEPROM_CONFIG9_YSIZE4,trim4Table.ySize); writeCounter++; } //Write the boost Table MAP/TPS dimension size + + y = EEPROM_CONFIG9_MAP2; //We do the 4 maps together in the same loop + z = EEPROM_CONFIG9_MAP3; //We do the 4 maps together in the same loop + i = EEPROM_CONFIG9_MAP4; //We do the 4 maps together in the same loop - int y = EEPROM_CONFIG9_MAP2; //We do the 4 maps together in the same loop - int z = EEPROM_CONFIG9_MAP3; //We do the 4 maps together in the same loop - int i = EEPROM_CONFIG9_MAP4; //We do the 4 maps together in the same loop for(int x=EEPROM_CONFIG9_MAP1; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG9_MAP1; - EEPROM.update(x, (trim1Table.values[5-(offset/6)][offset%6]) ); //Write the 6x6 map + newVal = trim1Table.values[5-(offset/6)][offset%6]; + if (EEPROM.read(x) != newVal ) { EEPROM.update(x, newVal ); writeCounter++; } //Write the 6x6 map + offset = y - EEPROM_CONFIG9_MAP2; - EEPROM.update(y, trim2Table.values[5-(offset/6)][offset%6]); //Write the 6x6 map + newVal = trim2Table.values[5-(offset/6)][offset%6]; + if (EEPROM.read(y) != newVal ) { EEPROM.update(y, newVal); writeCounter++; } //Write the 6x6 map + offset = z - EEPROM_CONFIG9_MAP3; - EEPROM.update(z, trim3Table.values[5-(offset/6)][offset%6]); //Write the 6x6 map + newVal = trim3Table.values[5-(offset/6)][offset%6]; + if (EEPROM.read(z) != newVal ) { EEPROM.update(z, newVal); writeCounter++; } //Write the 6x6 map + offset = i - EEPROM_CONFIG9_MAP4; - EEPROM.update(i, trim4Table.values[5-(offset/6)][offset%6]); //Write the 6x6 map + newVal = trim4Table.values[5-(offset/6)][offset%6]; + if (EEPROM.read(i) != newVal ) { EEPROM.update(i, newVal); writeCounter++; } //Write the 6x6 map + y++; z++; i++; @@ -295,7 +330,9 @@ void writeConfig(byte tableNum) z++; i++; } - } + if(writeCounter > EEPROM_MAX_WRITE_BLOCK) { eepromWritesPending = true; } + else { eepromWritesPending = false; } + break; case canbusPage: @@ -306,9 +343,13 @@ void writeConfig(byte tableNum) pnt_configPage = (byte *)&configPage10; //Create a pointer to Page 10 in memory for(int x=EEPROM_CONFIG10_START; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. - if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG10_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG10_START))); } + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG10_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG10_START))); writeCounter++; } } + + if(writeCounter > EEPROM_MAX_WRITE_BLOCK) { eepromWritesPending = true; } + else { eepromWritesPending = false; } + break; case warmupPage: @@ -320,9 +361,13 @@ void writeConfig(byte tableNum) //As there are no 3d tables in this page, all 192 bytes can simply be read in for(int x=EEPROM_CONFIG11_START; x EEPROM_MAX_WRITE_BLOCK) ) { eepromWritesPending = true; break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. - if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG11_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG11_START))); } + if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. + if(EEPROM.read(x) != *(pnt_configPage + byte(x - EEPROM_CONFIG11_START))) { EEPROM.write(x, *(pnt_configPage + byte(x - EEPROM_CONFIG11_START))); writeCounter++; } } + + if(writeCounter > EEPROM_MAX_WRITE_BLOCK) { eepromWritesPending = true; } + else { eepromWritesPending = false; } + break; default: From e4a18fb45e7f43b41e173644b4fdbef0f697cda3 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Wed, 20 Sep 2017 14:07:15 +1000 Subject: [PATCH 129/133] Updater script for all the crazy serial stuff --- speeduino/updates.ino | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/speeduino/updates.ino b/speeduino/updates.ino index 7691f9c2..f9c95304 100644 --- a/speeduino/updates.ino +++ b/speeduino/updates.ino @@ -8,7 +8,7 @@ void doUpdates() { - #define CURRENT_DATA_VERSION 5 + #define CURRENT_DATA_VERSION 6 //May 2017 firmware introduced a -40 offset on the ignition table. Update that table to +40 if(EEPROM.read(EEPROM_DATA_VERSION) == 2) @@ -53,12 +53,37 @@ void doUpdates() writeAllConfig(); EEPROM.write(EEPROM_DATA_VERSION, 5); } + //September 2017 had a major change to increase the minimum table size to 128. This required multiple pieces of data being moved around + if(EEPROM.read(EEPROM_DATA_VERSION) == 5) + { + //Data after page 4 has to move back 128 bytes + for(int x=0; x < 1152; x++) + { + int endMem = EEPROM_CONFIG11_END - x; + int startMem = endMem - 128; // + byte currentVal = EEPROM.read(startMem); + EEPROM.update(endMem, currentVal); + } + //The remaining data only has to move back 64 bytes + for(int x=0; x < 352; x++) + { + int endMem = EEPROM_CONFIG11_END - 1152 - x; + int startMem = endMem - 64; // + byte currentVal = EEPROM.read(startMem); + EEPROM.update(endMem, currentVal); + } + + EEPROM.write(EEPROM_DATA_VERSION, 6); + loadConfig(); //Reload the config after changing everything in EEPROM + } //Final check is always for 255 and 0 (Brand new arduino) if( (EEPROM.read(EEPROM_DATA_VERSION) == 0) || (EEPROM.read(EEPROM_DATA_VERSION) == 255) ) { configPage10.true_address = 0x200; EEPROM.write(EEPROM_DATA_VERSION, CURRENT_DATA_VERSION); - } + + //Check to see if someone has downgraded versions: + if( EEPROM.read(EEPROM_DATA_VERSION) > CURRENT_DATA_VERSION ) { EEPROM.write(EEPROM_DATA_VERSION, CURRENT_DATA_VERSION); } } From 515f0a626f107d705a5b6e34e8ea9ce6ac2296bc Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Wed, 20 Sep 2017 14:38:42 +1000 Subject: [PATCH 130/133] MISRA cleanup from the comms work --- speeduino/comms.h | 2 +- speeduino/comms.ino | 59 +++++++++++++++++++++--------------------- speeduino/decoders.ino | 3 --- speeduino/timers.ino | 3 ++- 4 files changed, 33 insertions(+), 34 deletions(-) diff --git a/speeduino/comms.h b/speeduino/comms.h index be7969fd..b6e16a91 100644 --- a/speeduino/comms.h +++ b/speeduino/comms.h @@ -21,7 +21,7 @@ byte currentCommand; bool cmdPending = false; bool chunkPending = false; uint16_t chunkComplete = 0; -uint16_t chunkSize = 0; +int16_t chunkSize = 0; byte cmdGroup = 0; byte cmdValue = 0; int cmdCombined = 0; //the cmdgroup as high byte and cmdvalue as low byte diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 447d7f85..f8f90ece 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -153,9 +153,9 @@ void command() length1 = Serial.read(); length2 = Serial.read(); length = word(length2, length1); - for(int x = 0; x < length; x++) + for(int i = 0; i < length; i++) { - Serial.write( getPageValue(tempPage, valueOffset + x) ); + Serial.write( getPageValue(tempPage, valueOffset + i) ); } cmdPending = false; @@ -188,10 +188,10 @@ void command() chunkSize = word(length2, length1); //chunkPending = true; - for(uint16_t x = 0; x < chunkSize; x++) + for(int i = 0; i < chunkSize; i++) { - while(Serial.available() == 0) { } - receiveValue( (valueOffset + x), Serial.read()); + while(Serial.available() == 0) { } //For chunk writes, we can safely loop here + receiveValue( (valueOffset + i), Serial.read()); } cmdPending = false; } @@ -447,6 +447,7 @@ void receiveValue(int valueOffset, byte newValue) { void* pnt_configPage;//This only stores the address of the value that it's pointing to and not the max size + int tempOffset; switch (currentPage) { @@ -466,7 +467,7 @@ void receiveValue(int valueOffset, byte newValue) else if(valueOffset < 288) { //Y Axis - int tempOffset = 15 - (valueOffset - 272); //Need to do a translation to flip the order (Due to us using (0,0) in the top left rather than bottom right + tempOffset = 15 - (valueOffset - 272); //Need to do a translation to flip the order (Due to us using (0,0) in the top left rather than bottom right fuelTable.axisY[tempOffset] = (int)(newValue) * TABLE_LOAD_MULTIPLIER; } else @@ -501,7 +502,7 @@ void receiveValue(int valueOffset, byte newValue) else if(valueOffset < 288) { //Y Axis - int tempOffset = 15 - (valueOffset - 272); //Need to do a translation to flip the order + tempOffset = 15 - (valueOffset - 272); //Need to do a translation to flip the order ignitionTable.axisY[tempOffset] = (int)(newValue) * TABLE_LOAD_MULTIPLIER; } } @@ -532,7 +533,7 @@ void receiveValue(int valueOffset, byte newValue) else { //Y Axis - int tempOffset = 15 - (valueOffset - 272); //Need to do a translation to flip the order + tempOffset = 15 - (valueOffset - 272); //Need to do a translation to flip the order afrTable.axisY[tempOffset] = int(newValue) * TABLE_LOAD_MULTIPLIER; } @@ -563,23 +564,22 @@ void receiveValue(int valueOffset, byte newValue) } else if (valueOffset < 144) //New value is part of the vvt map { - int tempOffset = valueOffset - 80; + tempOffset = valueOffset - 80; vvtTable.values[7 - (tempOffset / 8)][tempOffset % 8] = newValue; } else if (valueOffset < 152) //New value is on the X (RPM) axis of the vvt table { - int tempOffset = valueOffset - 144; + tempOffset = valueOffset - 144; vvtTable.axisX[tempOffset] = int(newValue) * TABLE_RPM_MULTIPLIER; //The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) } - else if (valueOffset < 161) //New value is on the X (RPM) axis of the vvt table//New value is on the Y (Load) axis of the vvt table + else if (valueOffset < 161) //New value is on the Y (Load) axis of the vvt table { - int tempOffset = valueOffset - 152; + tempOffset = valueOffset - 152; vvtTable.axisY[(7 - tempOffset)] = int(newValue); //TABLE_LOAD_MULTIPLIER is NOT used for vvt as it is TPS based (0-100) } break; case seqFuelPage: - int tempOffset; if (valueOffset < 36) { trim1Table.values[5 - (valueOffset / 6)][valueOffset % 6] = newValue; } //Trim1 values else if (valueOffset < 42) { trim1Table.axisX[(valueOffset - 36)] = int(newValue) * TABLE_RPM_MULTIPLIER; } //New value is on the X (RPM) axis of the trim1 table. The RPM values sent by TunerStudio are divided by 100, need to multiply it back by 100 to make it correct (TABLE_RPM_MULTIPLIER) else if (valueOffset < 48) { trim1Table.axisY[(5 - (valueOffset - 42))] = int(newValue) * TABLE_LOAD_MULTIPLIER; } //New value is on the Y (TPS) axis of the boost table @@ -1058,6 +1058,7 @@ void sendPage(bool useChar) byte getPageValue(byte page, uint16_t valueAddress) { void* pnt_configPage = &configPage1; //Default value is for safety only. Will be changed below if needed. + uint16_t tempAddress; byte returnValue = 0; switch (page) @@ -1108,11 +1109,11 @@ byte getPageValue(byte page, uint16_t valueAddress) } else { - valueAddress -= 80; + tempAddress = valueAddress - 80; //VVT table - if(valueAddress < 64) { returnValue = vvtTable.values[7 - (valueAddress / 8)][valueAddress % 8]; } - else if(valueAddress < 72) { returnValue = byte(vvtTable.axisX[(valueAddress - 64)] / TABLE_RPM_MULTIPLIER); } - else if(valueAddress < 80) { returnValue = byte(vvtTable.axisY[7 - (valueAddress - 72)]); } + if(tempAddress < 64) { returnValue = vvtTable.values[7 - (tempAddress / 8)][tempAddress % 8]; } + else if(tempAddress < 72) { returnValue = byte(vvtTable.axisX[(tempAddress - 64)] / TABLE_RPM_MULTIPLIER); } + else if(tempAddress < 80) { returnValue = byte(vvtTable.axisY[7 - (tempAddress - 72)]); } } } break; @@ -1130,27 +1131,27 @@ byte getPageValue(byte page, uint16_t valueAddress) } else if(valueAddress < 96) { - valueAddress -= 48; + tempAddress = valueAddress - 48; //trim2 table - if(valueAddress < 36) { returnValue = trim2Table.values[5 - (valueAddress / 6)][valueAddress % 6]; } - else if(valueAddress < 42) { returnValue = byte(trim2Table.axisX[(valueAddress - 36)] / TABLE_RPM_MULTIPLIER); } - else if(valueAddress < 48) { returnValue = byte(trim2Table.axisY[5 - (valueAddress - 42)] / TABLE_LOAD_MULTIPLIER); } + if(tempAddress < 36) { returnValue = trim2Table.values[5 - (tempAddress / 6)][tempAddress % 6]; } + else if(tempAddress < 42) { returnValue = byte(trim2Table.axisX[(tempAddress - 36)] / TABLE_RPM_MULTIPLIER); } + else if(tempAddress < 48) { returnValue = byte(trim2Table.axisY[5 - (tempAddress - 42)] / TABLE_LOAD_MULTIPLIER); } } else if(valueAddress < 144) { - valueAddress -= 96; + tempAddress = valueAddress - 96; //trim3 table - if(valueAddress < 36) { returnValue = trim3Table.values[5 - (valueAddress / 6)][valueAddress % 6]; } - else if(valueAddress < 42) { returnValue = byte(trim3Table.axisX[(valueAddress - 36)] / TABLE_RPM_MULTIPLIER); } - else if(valueAddress < 48) { returnValue = byte(trim3Table.axisY[5 - (valueAddress - 42)] / TABLE_LOAD_MULTIPLIER); } + if(tempAddress < 36) { returnValue = trim3Table.values[5 - (tempAddress / 6)][tempAddress % 6]; } + else if(tempAddress < 42) { returnValue = byte(trim3Table.axisX[(tempAddress - 36)] / TABLE_RPM_MULTIPLIER); } + else if(tempAddress < 48) { returnValue = byte(trim3Table.axisY[5 - (tempAddress - 42)] / TABLE_LOAD_MULTIPLIER); } } else if(valueAddress < 192) { - valueAddress -= 144; + tempAddress = valueAddress - 144; //trim4 table - if(valueAddress < 36) { returnValue = trim4Table.values[5 - (valueAddress / 6)][valueAddress % 6]; } - else if(valueAddress < 42) { returnValue = byte(trim4Table.axisX[(valueAddress - 36)] / TABLE_RPM_MULTIPLIER); } - else if(valueAddress < 48) { returnValue = byte(trim4Table.axisY[5 - (valueAddress - 42)] / TABLE_LOAD_MULTIPLIER); } + if(tempAddress < 36) { returnValue = trim4Table.values[5 - (tempAddress / 6)][tempAddress % 6]; } + else if(tempAddress < 42) { returnValue = byte(trim4Table.axisX[(tempAddress - 36)] / TABLE_RPM_MULTIPLIER); } + else if(tempAddress < 48) { returnValue = byte(trim4Table.axisY[5 - (tempAddress - 42)] / TABLE_LOAD_MULTIPLIER); } } } break; diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 937953d3..63e03688 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -818,10 +818,7 @@ void triggerSec_4G63() triggerSecFilterTime = triggerSecFilterTime >> 1; //Divide the secondary filter time by 2 again, making it 25%. Only needed when cranking if(READ_PRI_TRIGGER() == true)// && (crankState == digitalRead(pinTrigger))) { - //if( (currentStatus.hasSync == true) && (toothCurrentCount != 4) ) { currentStatus.hasSync = false; } - //toothCurrentCount = 4; //If the crank trigger is currently HIGH, it means we're on tooth #1 if(toothCurrentCount == 4) { currentStatus.hasSync = true; } - } } diff --git a/speeduino/timers.ino b/speeduino/timers.ino index b7e334e1..9ff1eb9a 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -130,7 +130,8 @@ void oneMSInterval() //Most ARM chips can simply call a function //Reset watchdog timer (Not active currently) //wdt_reset(); //DIY watchdog - //if( (initialisationComplete == true) && (last250msLoopCount == mainLoopCount) ) { setup(); } //This is a sign of a crash. + //This is a sign of a crash: + //if( (initialisationComplete == true) && (last250msLoopCount == mainLoopCount) ) { setup(); } //else { last250msLoopCount = mainLoopCount; } #endif } From 7aa8d277f31d8126873b831f163cbd595b22a6a8 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Wed, 20 Sep 2017 16:43:55 +1000 Subject: [PATCH 131/133] Potential fix for cranking problem on Miata 9905 pattern --- reference/speeduino.ini | 2 +- speeduino/decoders.ino | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 207b4a04..2eda6e8e 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -1316,7 +1316,7 @@ menuDialog = main field = "Cranking advance Angle", CrankAng field = "Cranking bypass", ignBypassEnable field = "Bypass output pin", ignBypassPin { ignBypassEnable } - field = "Fix cranking timing with trigger", ignCranklock, { TrigPattern == 1 || TrigPattern == 4 || TrigPattern == 10} + field = "Fix cranking timing with trigger", ignCranklock, { TrigPattern == 1 || TrigPattern == 4 || TrigPattern == 10 || TrigPattern == 9 } dialog = crankingOptions, "", yAxis field = "Cranking RPM (Max)", crankRPM diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 63e03688..0a5e5932 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -1356,6 +1356,7 @@ void triggerSetup_Miata9905() triggerActualTeeth = 8; secondaryToothCount = 0; if(initialisationComplete == false) { toothLastToothTime = micros(); } //Set a startup value here to avoid filter errors when starting. This MUST have the initi check to prevent the fuel pump just staying on all the time + else { toothLastToothTime = 0; } toothLastMinusOneToothTime = 0; //Note that these angles are for every rising and falling edge @@ -1443,10 +1444,9 @@ void triggerPri_Miata9905() if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) && configPage2.ignCranklock) { - if( (toothCurrentCount == 1) || (toothCurrentCount == 5) ) { endCoil1Charge(); } - else if( (toothCurrentCount == 2) || (toothCurrentCount == 6) ) { endCoil2Charge(); } - else if( (toothCurrentCount == 3) || (toothCurrentCount == 7) ) { endCoil3Charge(); } - else if( (toothCurrentCount == 4) || (toothCurrentCount == 8) ) { endCoil4Charge(); } + //This operates in waasted spark mode during cranking to align with crank teeth + if( (toothCurrentCount == 1) || (toothCurrentCount == 5) ) { endCoil1Charge(); endCoil3Charge(); } + else if( (toothCurrentCount == 3) || (toothCurrentCount == 7) ) { endCoil2Charge(); endCoil4Charge(); } } } //Trigger filter secondaryToothCount = 0; From 9591d4f935238f60cd2ca99c01cb62f25dbfbbd0 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Fri, 22 Sep 2017 21:28:34 +1000 Subject: [PATCH 132/133] Add dedicated CPU and memory outputs for future benchmarking --- speeduino/comms.ino | 192 +++++++++++++++++++++++--------------------- 1 file changed, 102 insertions(+), 90 deletions(-) diff --git a/speeduino/comms.ino b/speeduino/comms.ino index f8f90ece..23e0615a 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -15,6 +15,8 @@ A detailed description of each call can be found at: http://www.msextra.com/doc/ void command() { + int valueOffset; //cannot use offset as a variable name, it is a reserved word for several teensy libraries + if (cmdPending == false) { currentCommand = Serial.read(); } switch (currentCommand) @@ -44,6 +46,13 @@ void command() testComm(); break; + case 'c': //Send the current loops/sec value + Serial.write(lowByte(currentStatus.loopsPerSecond)); + Serial.write(highByte(currentStatus.loopsPerSecond)); + break; + + //The following can be used to show the amount of free memory + case 'E': // receive command button commands cmdPending = true; @@ -58,10 +67,20 @@ void command() } break; + case 'F': // send serial protocol version + Serial.print("001"); + break; + case 'L': // List the contents of current page in human readable form sendPage(true); break; + case 'm': //Send the current free memory + currentStatus.freeRAM = freeRam(); + Serial.write(lowByte(currentStatus.freeRAM)); + Serial.write(highByte(currentStatus.freeRAM)); + break; + case 'N': // Displays a new line. Like pushing enter in a text editor Serial.println(); break; @@ -82,52 +101,6 @@ void command() } break; - case 'F': // send serial protocol version - Serial.print("001"); - break; - - case 'S': // send code version - Serial.print("Speeduino 2017.09-dev"); - currentStatus.secl = 0; //This is required in TS3 due to its stricter timings - break; - - case 'Q': // send code version - Serial.print("speeduino 201709-dev"); - break; - - case 'V': // send VE table and constants in binary - sendPage(false); - break; - - case 'W': // receive new VE obr constant at 'W'++ - cmdPending = true; - - int valueOffset; //cannot use offset as a variable name, it is a reserved word for several teensy libraries - - if (isMap) - { - if(Serial.available() >= 3) // 1 additional byte is required on the MAP pages which are larger than 255 bytes - { - byte offset1, offset2; - offset1 = Serial.read(); - offset2 = Serial.read(); - valueOffset = word(offset2, offset1); - receiveValue(valueOffset, Serial.read()); - cmdPending = false; - } - } - else - { - if(Serial.available() >= 2) - { - valueOffset = Serial.read(); - receiveValue(valueOffset, Serial.read()); - cmdPending = false; - } - } - - break; - /* * New method for sending page values */ @@ -162,6 +135,89 @@ void command() } break; + case 'Q': // send code version + Serial.print("speeduino 201709-dev"); + break; + + case 'r': //New format for the optimised OutputChannels + cmdPending = true; + byte cmd; + if (Serial.available() >= 6) + { + tsCanId = Serial.read(); //Read the $tsCanId + cmd = Serial.read(); // read the command + + uint16_t offset, length; + if(cmd == 0x30) //Send output channels command 0x30 is 48dec + { + byte tmp; + tmp = Serial.read(); + offset = word(Serial.read(), tmp); + tmp = Serial.read(); + length = word(Serial.read(), tmp); + sendValues(offset, length,cmd, 0); + } + else + { + //No other r/ commands should be called + } + cmdPending = false; + } + break; + + case 'S': // send code version + Serial.print("Speeduino 2017.09-dev"); + currentStatus.secl = 0; //This is required in TS3 due to its stricter timings + break; + + case 'T': //Send 256 tooth log entries to Tuner Studios tooth logger + sendToothLog(false); //Sends tooth log values as ints + break; + + case 't': // receive new Calibration info. Command structure: "t", . This is an MS2/Extra command, NOT part of MS1 spec + byte tableID; + //byte canID; + + //The first 2 bytes sent represent the canID and tableID + while (Serial.available() == 0) { } + tableID = Serial.read(); //Not currently used for anything + + receiveCalibration(tableID); //Receive new values and store in memory + writeCalibration(); //Store received values in EEPROM + + break; + + case 'V': // send VE table and constants in binary + sendPage(false); + break; + + case 'W': // receive new VE obr constant at 'W'++ + cmdPending = true; + + if (isMap) + { + if(Serial.available() >= 3) // 1 additional byte is required on the MAP pages which are larger than 255 bytes + { + byte offset1, offset2; + offset1 = Serial.read(); + offset2 = Serial.read(); + valueOffset = word(offset2, offset1); + receiveValue(valueOffset, Serial.read()); + cmdPending = false; + } + } + else + { + if(Serial.available() >= 2) + { + valueOffset = Serial.read(); + receiveValue(valueOffset, Serial.read()); + cmdPending = false; + } + } + + break; + case 'w': cmdPending = true; @@ -198,19 +254,6 @@ void command() } break; - case 't': // receive new Calibration info. Command structure: "t", . This is an MS2/Extra command, NOT part of MS1 spec - byte tableID; - //byte canID; - - //The first 2 bytes sent represent the canID and tableID - while (Serial.available() == 0) { } - tableID = Serial.read(); //Not currently used for anything - - receiveCalibration(tableID); //Receive new values and store in memory - writeCalibration(); //Store received values in EEPROM - - break; - case 'Z': //Totally non-standard testing function. Will be removed once calibration testing is completed. This function takes 1.5kb of program space! :S Serial.println(F("Coolant")); for (int x = 0; x < CALIBRATION_TABLE_SIZE; x++) @@ -243,41 +286,10 @@ void command() Serial.flush(); break; - case 'T': //Send 256 tooth log entries to Tuner Studios tooth logger - sendToothLog(false); //Sends tooth log values as ints - break; - case 'z': //Send 256 tooth log entries to a terminal emulator sendToothLog(true); //Sends tooth log values as chars break; - case 'r': //New format for the optimised OutputChannels - cmdPending = true; - byte cmd; - if (Serial.available() >= 6) - { - tsCanId = Serial.read(); //Read the $tsCanId - cmd = Serial.read(); // read the command - - uint16_t offset, length; - if(cmd == 0x30) //Send output channels command 0x30 is 48dec - { - byte tmp; - tmp = Serial.read(); - offset = word(Serial.read(), tmp); - tmp = Serial.read(); - length = word(Serial.read(), tmp); - sendValues(offset, length,cmd, 0); - } - else - { - //No other r/ commands should be called - } - cmdPending = false; - } - break; - - case '?': Serial.println (F( From 9774a60d7f14a1476af835b097e340d55160539f Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Fri, 22 Sep 2017 22:14:55 +1000 Subject: [PATCH 133/133] Updated files for v0.4.3b --- .../v0.4/gerbers/Speeduino-v0.4.3-final.zip | Bin 580646 -> 0 bytes .../v0.4/gerbers/Speeduino-v0.4.3b-final.zip | Bin 0 -> 596080 bytes .../gerbers/schematic v0.4.3_copperBottom.gbl | 2761 ++-- .../gerbers/schematic v0.4.3_copperTop.gtl | 2271 +-- .../v0.4/gerbers/schematic v0.4.3_drill.txt | 339 +- .../gerbers/schematic v0.4.3_maskBottom.gbs | 130 +- .../v0.4/gerbers/schematic v0.4.3_maskTop.gts | 119 +- .../v0.4/gerbers/schematic v0.4.3_pnp.txt | 1956 +-- .../v0.4/gerbers/schematic v0.4.3_silkTop.gto | 12395 +++++++++++----- reference/hardware/v0.4/schematic v0.4.3.fzz | Bin 226805 -> 247763 bytes 10 files changed, 12699 insertions(+), 7272 deletions(-) delete mode 100644 reference/hardware/v0.4/gerbers/Speeduino-v0.4.3-final.zip create mode 100644 reference/hardware/v0.4/gerbers/Speeduino-v0.4.3b-final.zip diff --git a/reference/hardware/v0.4/gerbers/Speeduino-v0.4.3-final.zip b/reference/hardware/v0.4/gerbers/Speeduino-v0.4.3-final.zip deleted file mode 100644 index 2855b2c823a6e6f67a8338eaf087c49475f1977b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580646 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 &G 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

    #%okCbwG%&<I-a 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 z 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%0DYxU++txl~ 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%0D||5ZZi-QZy8l{}*A_(-h889{#3B^^9f`?2R;Rrh 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

  • TG75?giH&iS+e9oaK>&yUN4H6+@SD{2Z#Dk@^9 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�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�Q&v`~%~TB!?87X04D5OR>2wF> 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 z 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 fV}ElA%!z!^j0 literal 0 HcmV?d00001 From 4f7e11c233a623e4a38cb9442cd7d3ce037ba2df Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sun, 6 Aug 2017 17:00:58 +1000 Subject: [PATCH 053/133] Fix for spark miss every ~250 revs --- reference/speeduino.ini | 1 + speeduino/speeduino.ino | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 1acfce78..460e5f39 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -2462,6 +2462,7 @@ cmdtestspk450dc = "E\x03\x0C" entry = boostDuty, "Boost Duty", int, "%d", { boostEnabled } entry = boostCutOut , "Boost cut", int, "%d" entry = idleLoad, "IAC value", int, "%d" + entry = baro, "Baro Pressure",int, "%d" #if CAN_COMMANDS entry = canin_gauge0, "CanIn CH0", int, "%d" diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 359febb0..c2550c71 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -1112,8 +1112,7 @@ void loop() //Main loop runs within this clause if (currentStatus.hasSync && (currentStatus.RPM > 0)) { - if(currentStatus.startRevolutions >= configPage2.StgCycles) { ignitionOn = true; fuelOn = true;} //Enable the fuel and ignition, assuming staging revolutions are complete - else { ignitionOn = false; fuelOn = false;} + if(currentStatus.startRevolutions >= configPage2.StgCycles) { ignitionOn = true; fuelOn = true; } //Enable the fuel and ignition, assuming staging revolutions are complete //If it is, check is we're running or cranking if(currentStatus.RPM > ((unsigned int)configPage2.crankRPM * 100)) //Crank RPM stored in byte as RPM / 100 { From be9ad6bb85f79bf31162b18cac6aacb49d15b1dc Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sun, 6 Aug 2017 17:12:57 +1000 Subject: [PATCH 054/133] Fix missing value for TPS calibration --- reference/speeduino.ini | 5 +++-- speeduino/comms.h | 2 +- speeduino/comms.ino | 2 ++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 460e5f39..b9d3fbac 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -2083,7 +2083,7 @@ cmdtestspk450dc = "E\x03\x0C" ; mapADCGauge = mapADC, "MAP ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 #matADCGauge = matADC, "MAT ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 #cltADCGauge = cltADC, "CLT ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 - ;tpsADCGauge = tpsADC, "TPS ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 + tpsADCGauge = tpsADC, "TPS ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 #batVoltGauge = batteryVoltage, "BAT V", "", 0, 255, -1, -1, 256, 256, 0, 0 accelEnrichGauge = accelEnrich, "Accel Enrich", "%", 50, 150, -1, -1, 999, 999, 0, 0 @@ -2266,7 +2266,7 @@ cmdtestspk450dc = "E\x03\x0C" deadValue = { 0 } ; Convenient unchanging value. ochGetCommand = "r\$tsCanId\x30%2o%2c" - ochBlockSize = 73 + ochBlockSize = 74 secl = scalar, U08, 0, "sec", 1.000, 0.000 squirt = scalar, U08, 1, "bits", 1.000, 0.000 @@ -2348,6 +2348,7 @@ cmdtestspk450dc = "E\x03\x0C" canin_gauge13 = scalar, U16, 67, "", 1.000, 0.000 canin_gauge14 = scalar, U16, 69, "", 1.000, 0.000 canin_gauge15 = scalar, U16, 71, "", 1.000, 0.000 + tpsADC = scalar, U08, 73, "ADC",1.000, 0.000 ; Computed output channels. See "megatuneExamples.ini" for all the ; pre-defined variables, search for "???" and you'll see them. diff --git a/speeduino/comms.h b/speeduino/comms.h index 8b191f42..132944e9 100644 --- a/speeduino/comms.h +++ b/speeduino/comms.h @@ -13,7 +13,7 @@ #define canbusPage 10//Config Page 10 #define warmupPage 11 //Config Page 11 -#define packetSize 73 +#define packetSize 74 byte currentPage = 1;//Not the same as the speeduino config page numbers bool isMap = true; diff --git a/speeduino/comms.ino b/speeduino/comms.ino index bcee111d..5d107781 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -356,6 +356,8 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte cmd, byte portNum) fullStatus[71] = lowByte(currentStatus.canin[15]); fullStatus[72] = highByte(currentStatus.canin[15]); + fullStatus[73] = currentStatus.tpsADC; + for(byte x=0; x Date: Sun, 6 Aug 2017 22:15:15 +1000 Subject: [PATCH 055/133] August dev signatures --- reference/speeduino.ini | 2 +- speeduino/comms.ino | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index b9d3fbac..9bf16c7c 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -7,7 +7,7 @@ queryCommand = "Q" ;signature = 20 - signature = "speeduino 201707" + signature = "speeduino 201708-dev" versionInfo = "S" ; Put this in the title bar. ;[TunerStudio] diff --git a/speeduino/comms.ino b/speeduino/comms.ino index 5d107781..9cc6ae5e 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -80,12 +80,12 @@ void command() break; case 'S': // send code version - Serial.print("Speeduino 2017.07"); + Serial.print("Speeduino 2017.08-dev"); currentStatus.secl = 0; //This is required in TS3 due to its stricter timings break; case 'Q': // send code version - Serial.print("speeduino 201707"); + Serial.print("speeduino 201708-dev"); break; case 'V': // send VE table and constants in binary From d4b93c2b542978674dbf113d9bd5e42fdf76db58 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Sun, 6 Aug 2017 22:40:26 +1000 Subject: [PATCH 056/133] Fixed tacho output on wasted COP mode --- speeduino/scheduledIO.ino | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/speeduino/scheduledIO.ino b/speeduino/scheduledIO.ino index 4fc28559..1539a7f4 100644 --- a/speeduino/scheduledIO.ino +++ b/speeduino/scheduledIO.ino @@ -21,9 +21,9 @@ volatile bool tachoAlt = true; //As above but for ignition (Wasted COP mode) -void beginCoil1and3Charge() { digitalWrite(pinCoil1, coilHIGH); digitalWrite(pinCoil3, coilHIGH); digitalWrite(pinTachOut, LOW); } -void endCoil1and3Charge() { digitalWrite(pinCoil1, coilLOW); digitalWrite(pinCoil3, coilLOW); } -void beginCoil2and4Charge() { digitalWrite(pinCoil2, coilHIGH); digitalWrite(pinCoil4, coilHIGH); digitalWrite(pinTachOut, LOW); } -void endCoil2and4Charge() { digitalWrite(pinCoil2, coilLOW); digitalWrite(pinCoil4, coilLOW); } +void beginCoil1and3Charge() { digitalWrite(pinCoil1, coilHIGH); digitalWrite(pinCoil3, coilHIGH); TACH_PULSE_LOW(); } +void endCoil1and3Charge() { digitalWrite(pinCoil1, coilLOW); digitalWrite(pinCoil3, coilLOW); TACH_PULSE_HIGH(); } +void beginCoil2and4Charge() { digitalWrite(pinCoil2, coilHIGH); digitalWrite(pinCoil4, coilHIGH); TACH_PULSE_LOW(); } +void endCoil2and4Charge() { digitalWrite(pinCoil2, coilLOW); digitalWrite(pinCoil4, coilLOW); TACH_PULSE_HIGH(); } void nullCallback() { return; } From 482bbfab40e4960701a6a849b94cedaf364dd887 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 7 Aug 2017 16:42:34 +1000 Subject: [PATCH 057/133] Cleanup unused variables ignXLastRev --- speeduino/scheduler.ino | 5 ----- speeduino/speeduino.ino | 8 -------- 2 files changed, 13 deletions(-) diff --git a/speeduino/scheduler.ino b/speeduino/scheduler.ino index 72d2a662..4610394d 100644 --- a/speeduino/scheduler.ino +++ b/speeduino/scheduler.ino @@ -653,7 +653,6 @@ static inline void ignitionSchedule1Interrupt() //Most ARM chips can simply call ignitionSchedule1.StartCallback(); ignitionSchedule1.Status = RUNNING; //Set the status to be in progress (ie The start callback has been called, but not the end callback) ignitionSchedule1.startTime = micros(); - ign1LastRev = currentStatus.startRevolutions; IGN1_COMPARE = ignitionSchedule1.endCompare; } else if (ignitionSchedule1.Status == RUNNING) @@ -677,7 +676,6 @@ static inline void ignitionSchedule2Interrupt() //Most ARM chips can simply call ignitionSchedule2.StartCallback(); ignitionSchedule2.Status = RUNNING; //Set the status to be in progress (ie The start callback has been called, but not the end callback) ignitionSchedule2.startTime = micros(); - ign2LastRev = currentStatus.startRevolutions; IGN2_COMPARE = ignitionSchedule2.endCompare; //OCR5B = TCNT5 + (ignitionSchedule2.duration >> 2); } else if (ignitionSchedule2.Status == RUNNING) @@ -701,7 +699,6 @@ static inline void ignitionSchedule3Interrupt() //Most ARM chips can simply call ignitionSchedule3.StartCallback(); ignitionSchedule3.Status = RUNNING; //Set the status to be in progress (ie The start callback has been called, but not the end callback) ignitionSchedule3.startTime = micros(); - ign3LastRev = currentStatus.startRevolutions; IGN3_COMPARE = ignitionSchedule3.endCompare; //OCR5C = TCNT5 + (ignitionSchedule3.duration >> 2); } else if (ignitionSchedule3.Status == RUNNING) @@ -725,7 +722,6 @@ static inline void ignitionSchedule4Interrupt() //Most ARM chips can simply call ignitionSchedule4.StartCallback(); ignitionSchedule4.Status = RUNNING; //Set the status to be in progress (ie The start callback has been called, but not the end callback) ignitionSchedule4.startTime = micros(); - ign4LastRev = currentStatus.startRevolutions; IGN4_COMPARE = ignitionSchedule4.endCompare; } else if (ignitionSchedule4.Status == RUNNING) @@ -749,7 +745,6 @@ static inline void ignitionSchedule5Interrupt() //Most ARM chips can simply call ignitionSchedule5.StartCallback(); ignitionSchedule5.Status = RUNNING; //Set the status to be in progress (ie The start callback has been called, but not the end callback) ignitionSchedule5.startTime = micros(); - ign5LastRev = currentStatus.startRevolutions; IGN5_COMPARE = ignitionSchedule5.endCompare; } else if (ignitionSchedule5.Status == RUNNING) diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index c2550c71..e377bfe6 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -58,11 +58,6 @@ struct config11 configPage11; int req_fuel_uS, inj_opentime_uS; -volatile byte ign1LastRev; -volatile byte ign2LastRev; -volatile byte ign3LastRev; -volatile byte ign4LastRev; -volatile byte ign5LastRev; bool ignitionOn = false; //The current state of the ignition system bool fuelOn = false; //The current state of the ignition system bool fuelPumpOn = false; //The current status of the fuel pump @@ -1536,7 +1531,6 @@ void loop() crankAngle = getCrankAngle(timePerDegree); //Refresh with the latest crank angle if (crankAngle > CRANK_ANGLE_MAX_IGN ) { crankAngle -= 360; } - //if (ignition1StartAngle <= crankAngle && ignition1.schedulesSet == 0) { ignition1StartAngle += CRANK_ANGLE_MAX_IGN; } if (ignition1StartAngle > crankAngle) { /* @@ -1557,8 +1551,6 @@ void loop() if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } tempStartAngle = ignition2StartAngle - channel2IgnDegrees; if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } - //if ( (tempStartAngle > tempCrankAngle) && ign2LastRev != startRevolutions) - //if ( ign2LastRev != startRevolutions ) { unsigned long ignition2StartTime = 0; if(tempStartAngle > tempCrankAngle) { ignition2StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } From 1defafb38732772eba5b3299ff6420fabfe4d838 Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Mon, 7 Aug 2017 21:40:27 -0300 Subject: [PATCH 058/133] Work on boost/vvt and timers for STM32 --- speeduino/auxiliaries.h | 5 ++++- speeduino/auxiliaries.ino | 6 +++--- speeduino/idle.h | 4 +++- speeduino/idle.ino | 4 ++-- speeduino/scheduler.ino | 11 ++++++++--- speeduino/speeduino.ino | 7 +++---- speeduino/table.ino | 4 ++-- speeduino/timers.ino | 6 ++++++ speeduino/utils.ino | 14 +++++++++----- 9 files changed, 40 insertions(+), 21 deletions(-) diff --git a/speeduino/auxiliaries.h b/speeduino/auxiliaries.h index 48ef84cb..8597db15 100644 --- a/speeduino/auxiliaries.h +++ b/speeduino/auxiliaries.h @@ -81,6 +81,9 @@ volatile bool vvt_pwm_state; unsigned int vvt_pwm_max_count; //Used for variable PWM frequency volatile unsigned int vvt_pwm_cur_value; long vvt_pwm_target_value; - +#if defined (CORE_TEENSY) || defined(CORE_STM32) + static inline void boostInterrupt(); + static inline void vvtInterrupt(); +#endif #endif diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 69deffde..e05a3a41 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -40,9 +40,9 @@ void initialiseAuxPWM() #elif defined(CORE_TEENSY) //REALLY NEED TO DO THIS! #elif defined(CORE_STM32) - Timer1.attachInterrupt(2, boostControl); - Timer1.attachInterrupt(3, vvtControl); - Timer1.resume(); + Timer1.attachInterrupt(2, boostInterrupt); + Timer1.attachInterrupt(3, vvtInterrupt); + Timer1.resume(); #endif boost_pin_port = portOutputRegister(digitalPinToPort(pinBoost)); diff --git a/speeduino/idle.h b/speeduino/idle.h index e21919bc..ffa4f22c 100644 --- a/speeduino/idle.h +++ b/speeduino/idle.h @@ -86,6 +86,8 @@ static inline void enableIdle(); static inline byte isStepperHomed(); static inline byte checkForStepping(); static inline void doStep(); -static inline void idleInterrupt(); +#if defined (CORE_TEENSY) || defined(CORE_STM32) + static inline void idleInterrupt(); +#endif #endif diff --git a/speeduino/idle.ino b/speeduino/idle.ino index 03d6d460..ec0b0d7e 100644 --- a/speeduino/idle.ino +++ b/speeduino/idle.ino @@ -79,8 +79,8 @@ void initialiseIdle() } #elif defined(CORE_STM32) - Timer1.attachInterrupt(4, idleInterrupt); - Timer1.resume(); + Timer1.attachInterrupt(4, idleInterrupt); + Timer1.resume(); #endif //Initialising comprises of setting the 2D tables with the relevant values from the config pages diff --git a/speeduino/scheduler.ino b/speeduino/scheduler.ino index e24a3e92..70f1a5c8 100644 --- a/speeduino/scheduler.ino +++ b/speeduino/scheduler.ino @@ -161,11 +161,11 @@ void initialiseSchedulers() NVIC_ENABLE_IRQ(IRQ_FTM1); #elif defined(CORE_STM32) - Timer1.setPeriod(2); //2us resolution - Timer2.setPeriod(2); //2us resolution - Timer3.setPeriod(2); //2us resolution #if defined(ARDUINO_ARCH_STM32) // STM32GENERIC core //see https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 + Timer1.setPrescaleFactor((HAL_RCC_GetHCLKFreq() * 2U)-1); //2us resolution + Timer2.setPrescaleFactor((HAL_RCC_GetHCLKFreq() * 2U)-1); //2us resolution + Timer3.setPrescaleFactor((HAL_RCC_GetHCLKFreq() * 2U)-1); //2us resolution Timer2.setMode(1, TIMER_OUTPUT_COMPARE); Timer2.setMode(2, TIMER_OUTPUT_COMPARE); Timer2.setMode(3, TIMER_OUTPUT_COMPARE); @@ -179,6 +179,11 @@ void initialiseSchedulers() #else //libmaple core aka STM32DUINO //see https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444 + //(CYCLES_PER_MICROSECOND == 72, APB2 at 72MHz, APB1 at 36MHz). + //Timer2 to 4 is on APB1, Timer1 on APB2. http://www.st.com/resource/en/datasheet/stm32f103cb.pdf sheet 12 + Timer1.setPrescaleFactor((72 * 2U)-1); //2us resolution + Timer2.setPrescaleFactor((36 * 2U)-1); //2us resolution + Timer3.setPrescaleFactor((36 * 2U)-1); //2us resolution Timer2.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE); Timer2.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE); Timer2.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE); diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 1254cb40..5fc354ce 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -157,15 +157,15 @@ void setup() doUpdates(); //Check if any data items need updating (Occurs ith firmware updates) #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - if (configPage10.enable_canbus == 1) { Serial3.begin(115200); } + if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } #elif defined(CORE_STM32) - if (configPage10.enable_canbus == 1) { Serial2.begin(115200); } + if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } else if (configPage10.enable_canbus == 2) { //enable local can interface } #elif defined(CORE_TEENSY) - if (configPage10.enable_canbus == 1) { Serial2.begin(115200); } + if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } else if (configPage10.enable_canbus == 2) { //Teensy onboard CAN not used currently @@ -1122,7 +1122,6 @@ void loop() if (currentStatus.hasSync && (currentStatus.RPM > 0)) { if(currentStatus.startRevolutions >= configPage2.StgCycles) { ignitionOn = true; fuelOn = true;} //Enable the fuel and ignition, assuming staging revolutions are complete - else { ignitionOn = false; fuelOn = false;} //If it is, check is we're running or cranking if(currentStatus.RPM > ((unsigned int)configPage2.crankRPM * 100)) //Crank RPM stored in byte as RPM / 100 { diff --git a/speeduino/table.ino b/speeduino/table.ino index 87d5e0c9..9d633630 100644 --- a/speeduino/table.ino +++ b/speeduino/table.ino @@ -503,7 +503,7 @@ float get3DTableValueF(struct table3D *fromTable, int Y, int X) } return tableResult; } -*/ + //This function pulls a value from a 3D table given a target for X and Y coordinates. //It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf int get3DTableValueS(struct table3D *fromTable, int Y, int X) @@ -605,4 +605,4 @@ int get3DTableValueS(struct table3D *fromTable, int Y, int X) } return tableResult; } - +*/ diff --git a/speeduino/timers.ino b/speeduino/timers.ino index 76095a7e..0178df71 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -47,6 +47,9 @@ void initialiseTimers() Timer4.resume(); //Start Timer #endif + #if defined(CORE_STM32) + pinMode(LED_BUILTIN, OUTPUT); + #endif dwellLimit_uS = (1000 * configPage2.dwellLimit); lastRPM_100ms = 0; } @@ -100,6 +103,9 @@ void oneMSInterval() //Most ARM chips can simply call a function { loop100ms = 0; //Reset counter BIT_SET(TIMER_mask, BIT_TIMER_10HZ); + #if defined(CORE_STM32) //debug purpose, only visal for running code + digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); + #endif currentStatus.rpmDOT = (currentStatus.RPM - lastRPM_100ms) * 10; //This is the RPM per second that the engine has accelerated/decelleratedin the last loop lastRPM_100ms = currentStatus.RPM; //Record the current RPM for next calc diff --git a/speeduino/utils.ino b/speeduino/utils.ino index 90543e8f..994c7f39 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -196,11 +196,11 @@ void setPinMapping(byte boardID) pinCoil3 = 30; pinO2 = A22; #elif defined(STM32F4) - pinInjector1 = PE11; //Output pin injector 1 is on - pinInjector2 = PE12; //Output pin injector 2 is on - pinInjector3 = PE13; //Output pin injector 3 is on - pinInjector4 = PE14; //Output pin injector 4 is on - pinInjector5 = PE15; //Output pin injector 4 is on + pinInjector1 = PE7; //Output pin injector 1 is on + pinInjector2 = PE8; //Output pin injector 2 is on + pinInjector3 = PE9; //Output pin injector 3 is on + pinInjector4 = PE10; //Output pin injector 4 is on + pinInjector5 = PE11; //Output pin injector 5 is on pinCoil1 = PB10; //Pin for coil 1 pinCoil2 = PB11; //Pin for coil 2 pinCoil3 = PB12; //Pin for coil 3 @@ -224,6 +224,8 @@ void setPinMapping(byte boardID) pinFlex = PC4; // Flex sensor (Must be external interrupt enabled) pinTrigger = PC5; //The CAS pin pinTrigger2 = PC6; //The Cam Sensor pin + pinBoost = PE0; //Boost control + pinVVT_1 = PE1; //Default VVT output #elif defined(CORE_STM32) //http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/0.0.12/hardware/maple-mini.html#master-pin-map //pins 23, 24 and 33 couldn't be used @@ -254,6 +256,8 @@ void setPinMapping(byte boardID) pinTrigger = 25; //The CAS pin pinTrigger2 = 22; //The Cam Sensor pin pinBaro = pinMAP; + pinBoost = 1; //Boost control + pinVVT_1 = 0; //Default VVT output #endif break; From bf21e87829f4e5ed317faa5ad8f5491f84d50cb1 Mon Sep 17 00:00:00 2001 From: VitorBoss Date: Mon, 7 Aug 2017 22:05:35 -0300 Subject: [PATCH 059/133] MISRA work --- speeduino/auxiliaries.ino | 3 +- speeduino/speeduino.ino | 3295 ++++++++++++++++++------------------- 2 files changed, 1649 insertions(+), 1649 deletions(-) diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index e05a3a41..d7861347 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -3,7 +3,8 @@ Speeduino - Simple engine management for the Arduino Mega 2560 platform Copyright (C) Josh Stewart A full copy of the license may be found in the projects root directory */ -//integerPID boostPID(&MAPx100, &boost_pwm_target_value, &boostTargetx100, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call +//Old PID method. Retained incase the new one has issues +//integerPID boostPID(&MAPx100, &boost_pwm_target_value, &boostTargetx100, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); integerPIDnew boostPID(¤tStatus.MAP, &boost_pwm_target_value, &boost_cl_target_boost, configPage3.boostKP, configPage3.boostKI, configPage3.boostKD, DIRECT); //This is the PID object if that algorithm is used. Needs to be global as it maintains state outside of each function call /* diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index cf69da6c..159ff6c7 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -1,1649 +1,1648 @@ -/* -Speeduino - Simple engine management for the Arduino Mega 2560 platform -Copyright (C) Josh Stewart - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful,la -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -*/ - -//************************************************************************************************** -// Config section -#define engineSquirtsPerCycle 2 //Would be 1 for a 2 stroke -//************************************************************************************************** - -//https://developer.mbed.org/handbook/C-Data-Types -#include -//************************************************ -#include "globals.h" -#include "utils.h" -#include "table.h" -#include "scheduler.h" -#include "comms.h" -#include "cancomms.h" -#include "maths.h" -#include "corrections.h" -#include "timers.h" -//#include "display.h" -#include "decoders.h" -#include "idle.h" -#include "auxiliaries.h" -#include "sensors.h" -#include "src/PID_v1/PID_v1.h" -//#include "src/DigitalWriteFast/digitalWriteFast.h" -#include "errors.h" -#include "storage.h" -#include "scheduledIO.h" -#include -#if defined (CORE_TEENSY) -#include -#endif - -struct config1 configPage1; -struct config2 configPage2; -struct config3 configPage3; -struct config4 configPage4; -struct config10 configPage10; -struct config11 configPage11; - -int req_fuel_uS, inj_opentime_uS; - -volatile byte ign1LastRev; -volatile byte ign2LastRev; -volatile byte ign3LastRev; -volatile byte ign4LastRev; -volatile byte ign5LastRev; -bool ignitionOn = false; //The current state of the ignition system -bool fuelOn = false; //The current state of the ignition system -bool fuelPumpOn = false; //The current status of the fuel pump - -void (*trigger)(); //Pointer for the trigger function (Gets pointed to the relevant decoder) -void (*triggerSecondary)(); //Pointer for the secondary trigger function (Gets pointed to the relevant decoder) -uint16_t (*getRPM)(); //Pointer to the getRPM function (Gets pointed to the relevant decoder) -int (*getCrankAngle)(int); //Pointer to the getCrank Angle function (Gets pointed to the relevant decoder) -void (*triggerSetEndTeeth)(); //Pointer to the triggerSetEndTeeth function of each decoder - -byte cltCalibrationTable[CALIBRATION_TABLE_SIZE]; -byte iatCalibrationTable[CALIBRATION_TABLE_SIZE]; -byte o2CalibrationTable[CALIBRATION_TABLE_SIZE]; - -//These variables are used for tracking the number of running sensors values that appear to be errors. Once a threshold is reached, the sensor reading will go to default value and assume the sensor is faulty -byte mapErrorCount = 0; -byte iatErrorCount = 0; -byte cltErrorCount = 0; - -unsigned long counter; -unsigned long currentLoopTime; //The time the current loop started (uS) -unsigned long previousLoopTime; //The time the previous loop started (uS) - -int CRANK_ANGLE_MAX = 720; -int CRANK_ANGLE_MAX_IGN = 360; -int CRANK_ANGLE_MAX_INJ = 360; // The number of crank degrees that the system track over. 360 for wasted / timed batch and 720 for sequential - -static byte coilHIGH = HIGH; -static byte coilLOW = LOW; -static byte fanHIGH = HIGH; // Used to invert the cooling fan output -static byte fanLOW = LOW; // Used to invert the cooling fan output - -volatile int mainLoopCount; -byte deltaToothCount = 0; //The last tooth that was used with the deltaV calc -int rpmDelta; -byte ignitionCount; -uint16_t fixedCrankingOverride = 0; -int16_t lastAdvance; //Stores the previous advance figure to track changes. -bool clutchTrigger; -bool previousClutchTrigger; - -unsigned long secCounter; //The next time to incremen 'runSecs' counter. -int channel1IgnDegrees; //The number of crank degrees until cylinder 1 is at TDC (This is obviously 0 for virtually ALL engines, but there's some weird ones) -int channel2IgnDegrees; //The number of crank degrees until cylinder 2 (and 5/6/7/8) is at TDC -int channel3IgnDegrees; //The number of crank degrees until cylinder 3 (and 5/6/7/8) is at TDC -int channel4IgnDegrees; //The number of crank degrees until cylinder 4 (and 5/6/7/8) is at TDC -int channel5IgnDegrees; //The number of crank degrees until cylinder 5 is at TDC -int channel1InjDegrees; //The number of crank degrees until cylinder 1 is at TDC (This is obviously 0 for virtually ALL engines, but there's some weird ones) -int channel2InjDegrees; //The number of crank degrees until cylinder 2 (and 5/6/7/8) is at TDC -int channel3InjDegrees; //The number of crank degrees until cylinder 3 (and 5/6/7/8) is at TDC -int channel4InjDegrees; //The number of crank degrees until cylinder 4 (and 5/6/7/8) is at TDC -int channel5InjDegrees; //The number of crank degrees until cylinder 5 is at TDC - -//These are the functions the get called to begin and end the ignition coil charging. They are required for the various spark output modes -void (*ign1StartFunction)(); -void (*ign1EndFunction)(); -void (*ign2StartFunction)(); -void (*ign2EndFunction)(); -void (*ign3StartFunction)(); -void (*ign3EndFunction)(); -void (*ign4StartFunction)(); -void (*ign4EndFunction)(); -void (*ign5StartFunction)(); -void (*ign5EndFunction)(); - -int timePerDegree; -byte degreesPerLoop; //The number of crank degrees that pass for each mainloop of the program -volatile bool fpPrimed = false; //Tracks whether or not the fuel pump priming has been completed yet -bool initialisationComplete = false; //Tracks whether the setup() functino has run completely - -void setup() -{ - - //Setup the dummy fuel and ignition tables - //dummyFuelTable(&fuelTable); - //dummyIgnitionTable(&ignitionTable); - table3D_setSize(&fuelTable, 16); - table3D_setSize(&ignitionTable, 16); - table3D_setSize(&afrTable, 16); - table3D_setSize(&boostTable, 8); - table3D_setSize(&vvtTable, 8); - table3D_setSize(&trim1Table, 6); - table3D_setSize(&trim2Table, 6); - table3D_setSize(&trim3Table, 6); - table3D_setSize(&trim4Table, 6); - Serial.begin(115200); - - #if defined(CORE_STM32) - EEPROM.init(); - #endif - loadConfig(); - doUpdates(); //Check if any data items need updating (Occurs ith firmware updates) - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } -#elif defined(CORE_STM32) - if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } - else if (configPage10.enable_canbus == 2) - { - //enable local can interface - } -#elif defined(CORE_TEENSY) - if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } - else if (configPage10.enable_canbus == 2) - { - //Teensy onboard CAN not used currently - //enable local can interface - //setup can interface to 250k - //FlexCAN CANbus0(2500000, 0); - //static CAN_message_t txmsg,rxmsg; - //CANbus0.begin(); - } -#endif - - //Repoint the 2D table structs to the config pages that were just loaded - taeTable.valueSize = SIZE_BYTE; //Set this table to use byte values - taeTable.xSize = 4; - taeTable.values = configPage2.taeValues; - taeTable.axisX = configPage2.taeBins; - WUETable.valueSize = SIZE_BYTE; //Set this table to use byte values - WUETable.xSize = 10; - WUETable.values = configPage1.wueValues; - WUETable.axisX = configPage2.wueBins; - crankingEnrichTable.valueSize = SIZE_BYTE; - crankingEnrichTable.xSize = 4; - crankingEnrichTable.values = configPage11.crankingEnrichValues; - crankingEnrichTable.axisX = configPage11.crankingEnrichBins; - - dwellVCorrectionTable.valueSize = SIZE_BYTE; - dwellVCorrectionTable.xSize = 6; - dwellVCorrectionTable.values = configPage2.dwellCorrectionValues; - dwellVCorrectionTable.axisX = configPage3.voltageCorrectionBins; - injectorVCorrectionTable.valueSize = SIZE_BYTE; - injectorVCorrectionTable.xSize = 6; - injectorVCorrectionTable.values = configPage3.injVoltageCorrectionValues; - injectorVCorrectionTable.axisX = configPage3.voltageCorrectionBins; - IATDensityCorrectionTable.valueSize = SIZE_BYTE; - IATDensityCorrectionTable.xSize = 9; - IATDensityCorrectionTable.values = configPage3.airDenRates; - IATDensityCorrectionTable.axisX = configPage3.airDenBins; - IATRetardTable.valueSize = SIZE_BYTE; - IATRetardTable.xSize = 6; - IATRetardTable.values = configPage2.iatRetValues; - IATRetardTable.axisX = configPage2.iatRetBins; - - //Setup the calibration tables - loadCalibration(); - - //Set the pin mappings - if(configPage1.pinMapping > BOARD_NR_GPIO_PINS) - { - //First time running on this board - setPinMapping(3); //Force board to v0.4 - configPage1.flexEnabled = false; //Have to disable flex. If this isn't done and the wrong flex pin is interrupt attached below, system can hang. - } - else { setPinMapping(configPage1.pinMapping); } - - //Need to check early on whether the coil charging is inverted. If this is not set straight away it can cause an unwanted spark at bootup - if(configPage2.IgInv == 1) { coilHIGH = LOW, coilLOW = HIGH; } - else { coilHIGH = HIGH, coilLOW = LOW; } - endCoil1Charge(); - endCoil2Charge(); - endCoil3Charge(); - endCoil4Charge(); - endCoil5Charge(); - - //Similar for injectors, make sure they're turned off - closeInjector1(); - closeInjector2(); - closeInjector3(); - closeInjector4(); - closeInjector5(); - - //Set the tacho output default state - digitalWrite(pinTachOut, HIGH); - - //Perform all initialisations - initialiseSchedulers(); - initialiseTimers(); - //initialiseDisplay(); - initialiseIdle(); - initialiseFan(); - initialiseAuxPWM(); - initialiseCorrections(); - initialiseADC(); - - //Lookup the current MAP reading for barometric pressure - instanteneousMAPReading(); - //barometric reading can be taken from either an external sensor if enabled, or simply by using the initial MAP value - if ( configPage3.useExtBaro != 0 ) - { - readBaro(); - EEPROM.update(EEPROM_LAST_BARO, currentStatus.baro); - } - else - { - /* - * The highest sea-level pressure on Earth occurs in Siberia, where the Siberian High often attains a sea-level pressure above 105 kPa; - * with record highs close to 108.5 kPa. - * The lowest measurable sea-level pressure is found at the centers of tropical cyclones and tornadoes, with a record low of 87 kPa; - */ - if ((currentStatus.MAP >= BARO_MIN) && (currentStatus.MAP <= BARO_MAX)) //Check if engine isn't running - { - currentStatus.baro = currentStatus.MAP; - EEPROM.update(EEPROM_LAST_BARO, currentStatus.baro); - } - else - { - //Attempt to use the last known good baro reading from EEPROM - if ((EEPROM.read(EEPROM_LAST_BARO) >= BARO_MIN) && (EEPROM.read(EEPROM_LAST_BARO) <= BARO_MAX)) //Make sure it's not invalid (Possible on first run etc) - { currentStatus.baro = EEPROM.read(EEPROM_LAST_BARO); } //last baro correction - else { currentStatus.baro = 100; } //Final fall back position. - } - } - - //Check whether the flex sensor is enabled and if so, attach an interupt for it - if(configPage1.flexEnabled) - { - attachInterrupt(digitalPinToInterrupt(pinFlex), flexPulse, RISING); - currentStatus.ethanolPct = 0; - } - - //Once the configs have been loaded, a number of one time calculations can be completed - req_fuel_uS = configPage1.reqFuel * 100; //Convert to uS and an int. This is the only variable to be used in calculations - inj_opentime_uS = configPage1.injOpen * 100; //Injector open time. Comes through as ms*10 (Eg 15.5ms = 155). - - //Begin the main crank trigger interrupt pin setup - //The interrupt numbering is a bit odd - See here for reference: http://arduino.cc/en/Reference/AttachInterrupt - //These assignments are based on the Arduino Mega AND VARY BETWEEN BOARDS. Please confirm the board you are using and update acordingly. - byte triggerInterrupt = 0; // By default, use the first interrupt - byte triggerInterrupt2 = 1; - currentStatus.RPM = 0; - currentStatus.hasSync = false; - currentStatus.runSecs = 0; - currentStatus.secl = 0; - currentStatus.startRevolutions = 0; - currentStatus.flatShiftingHard = false; - currentStatus.launchingHard = false; - triggerFilterTime = 0; //Trigger filter time is the shortest possible time (in uS) that there can be between crank teeth (ie at max RPM). Any pulses that occur faster than this time will be disgarded as noise. This is simply a default value, the actual values are set in the setup() functinos of each decoder - - #if defined(CORE_AVR) - switch (pinTrigger) { - //Arduino Mega 2560 mapping - case 2: - triggerInterrupt = 0; break; - case 3: - triggerInterrupt = 1; break; - case 18: - triggerInterrupt = 5; break; - case 19: - triggerInterrupt = 4; break; - case 20: - triggerInterrupt = 3; break; - case 21: - triggerInterrupt = 2; break; - default: - triggerInterrupt = 0; break; //This should NEVER happen - } - #else - triggerInterrupt = pinTrigger; - #endif - - #if defined(CORE_AVR) - switch (pinTrigger2) { - //Arduino Mega 2560 mapping - case 2: - triggerInterrupt2 = 0; break; - case 3: - triggerInterrupt2 = 1; break; - case 18: - triggerInterrupt2 = 5; break; - case 19: - triggerInterrupt2 = 4; break; - case 20: - triggerInterrupt2 = 3; break; - case 21: - triggerInterrupt2 = 2; break; - default: - triggerInterrupt2 = 0; break; //This should NEVER happen - } - #else - triggerInterrupt2 = pinTrigger2; - #endif - pinMode(pinTrigger, INPUT); - pinMode(pinTrigger2, INPUT); - pinMode(pinTrigger3, INPUT); - //digitalWrite(pinTrigger, HIGH); - - //Set the trigger function based on the decoder in the config - switch (configPage2.TrigPattern) - { - case 0: - //Missing tooth decoder - triggerSetup_missingTooth(); - trigger = triggerPri_missingTooth; - triggerSecondary = triggerSec_missingTooth; - getRPM = getRPM_missingTooth; - getCrankAngle = getCrankAngle_missingTooth; - triggerSetEndTeeth = triggerSetEndTeeth_missingTooth; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, RISING); } - else { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, FALLING); } - break; - - case 1: - // Basic distributor - triggerSetup_BasicDistributor(); - trigger = triggerPri_BasicDistributor; - getRPM = getRPM_BasicDistributor; - getCrankAngle = getCrankAngle_BasicDistributor; - triggerSetEndTeeth = triggerSetEndTeeth_BasicDistributor; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - break; - - case 2: - triggerSetup_DualWheel(); - trigger = triggerPri_DualWheel; - getRPM = getRPM_DualWheel; - getCrankAngle = getCrankAngle_DualWheel; - triggerSetEndTeeth = triggerSetEndTeeth_DualWheel; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, RISING); } - else { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); } - break; - - case 3: - triggerSetup_GM7X(); - trigger = triggerPri_GM7X; - getRPM = getRPM_GM7X; - getCrankAngle = getCrankAngle_GM7X; - triggerSetEndTeeth = triggerSetEndTeeth_GM7X; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - break; - - case 4: - triggerSetup_4G63(); - trigger = triggerPri_4G63; - getRPM = getRPM_4G63; - getCrankAngle = getCrankAngle_4G63; - triggerSetEndTeeth = triggerSetEndTeeth_4G63; - - //These may both need to change, not sure - if(configPage2.TrigEdge == 0) - { - attachInterrupt(triggerInterrupt, trigger, CHANGE); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - attachInterrupt(triggerInterrupt2, triggerSec_4G63, FALLING); //changed - } - else - { - attachInterrupt(triggerInterrupt, trigger, CHANGE); // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_4G63, FALLING); - } - break; - - case 5: - triggerSetup_24X(); - trigger = triggerPri_24X; - getRPM = getRPM_24X; - getCrankAngle = getCrankAngle_24X; - triggerSetEndTeeth = triggerSetEndTeeth_24X; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_24X, CHANGE); - break; - - case 6: - triggerSetup_Jeep2000(); - trigger = triggerPri_Jeep2000; - getRPM = getRPM_Jeep2000; - getCrankAngle = getCrankAngle_Jeep2000; - triggerSetEndTeeth = triggerSetEndTeeth_Jeep2000; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_Jeep2000, CHANGE); - break; - - case 7: - triggerSetup_Audi135(); - trigger = triggerPri_Audi135; - getRPM = getRPM_Audi135; - getCrankAngle = getCrankAngle_Audi135; - triggerSetEndTeeth = triggerSetEndTeeth_Audi135; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - attachInterrupt(triggerInterrupt2, triggerSec_Audi135, RISING); - break; - - case 8: - triggerSetup_HondaD17(); - trigger = triggerPri_HondaD17; - getRPM = getRPM_HondaD17; - getCrankAngle = getCrankAngle_HondaD17; - triggerSetEndTeeth = triggerSetEndTeeth_HondaD17; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_HondaD17, CHANGE); - break; - - case 9: - triggerSetup_Miata9905(); - trigger = triggerPri_Miata9905; - getRPM = getRPM_Miata9905; - getCrankAngle = getCrankAngle_Miata9905; - triggerSetEndTeeth = triggerSetEndTeeth_Miata9905; - - //These may both need to change, not sure - if(configPage2.TrigEdge == 0) - { - attachInterrupt(triggerInterrupt, trigger, RISING); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, FALLING); //changed - } - else - { - attachInterrupt(triggerInterrupt, trigger, FALLING); // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, RISING); - } - break; - - case 10: - triggerSetup_MazdaAU(); - trigger = triggerPri_MazdaAU; - getRPM = getRPM_MazdaAU; - getCrankAngle = getCrankAngle_MazdaAU; - triggerSetEndTeeth = triggerSetEndTeeth_MazdaAU; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_MazdaAU, FALLING); - break; - - case 11: - triggerSetup_non360(); - trigger = triggerPri_DualWheel; //Is identical to the dual wheel decoder, so that is used. Same goes for the secondary below - getRPM = getRPM_non360; - getCrankAngle = getCrankAngle_non360; - triggerSetEndTeeth = triggerSetEndTeeth_Non360; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); //Note the use of the Dual Wheel trigger function here. No point in having the same code in twice. - break; - - case 12: - triggerSetup_Nissan360(); - trigger = triggerPri_Nissan360; - getRPM = getRPM_Nissan360; - getCrankAngle = getCrankAngle_Nissan360; - triggerSetEndTeeth = triggerSetEndTeeth_Nissan360; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - attachInterrupt(triggerInterrupt2, triggerSec_Nissan360, CHANGE); - break; - - case 13: - triggerSetup_Subaru67(); - trigger = triggerPri_Subaru67; - getRPM = getRPM_Subaru67; - getCrankAngle = getCrankAngle_Subaru67; - triggerSetEndTeeth = triggerSetEndTeeth_Subaru67; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - attachInterrupt(triggerInterrupt2, triggerSec_Subaru67, FALLING); - break; - - case 14: - triggerSetup_Daihatsu(); - trigger = triggerPri_Daihatsu; - getRPM = getRPM_Daihatsu; - getCrankAngle = getCrankAngle_Daihatsu; - triggerSetEndTeeth = triggerSetEndTeeth_Daihatsu; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - //No secondary input required for this pattern - break; - - default: - trigger = triggerPri_missingTooth; - getRPM = getRPM_missingTooth; - getCrankAngle = getCrankAngle_missingTooth; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - break; - } - - //End crank triger interrupt attachment - - req_fuel_uS = req_fuel_uS / engineSquirtsPerCycle; //The req_fuel calculation above gives the total required fuel (At VE 100%) in the full cycle. If we're doing more than 1 squirt per cycle then we need to split the amount accordingly. (Note that in a non-sequential 4-stroke setup you cannot have less than 2 squirts as you cannot determine the stroke to make the single squirt on) - - //Initial values for loop times - previousLoopTime = 0; - currentLoopTime = micros(); - - mainLoopCount = 0; - ignitionCount = 0; - - //Calculate the number of degrees between cylinders - switch (configPage1.nCylinders) { - case 1: - channel1IgnDegrees = 0; - channel1InjDegrees = 0; - - channel1InjEnabled = true; - break; - - case 2: - channel1IgnDegrees = 0; - - if (configPage1.engineType == EVEN_FIRE ) - { - channel2IgnDegrees = 180; - } - else { channel2IgnDegrees = configPage1.oddfire2; } - - //For alternating injection, the squirt occurs at different times for each channel - if(configPage1.injLayout == INJ_SEMISEQUENTIAL) - { - channel1InjDegrees = 0; - channel2InjDegrees = channel2IgnDegrees; //Set to the same as the ignition degrees (Means there's no need for another if to check for oddfire) - } - if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = 0; } //For simultaneous, all squirts happen at the same time - - channel1InjEnabled = true; - channel2InjEnabled = true; - break; - - case 3: - channel1IgnDegrees = 0; - - if (configPage1.engineType == EVEN_FIRE ) - { - if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) - { - channel2IgnDegrees = 240; - channel3IgnDegrees = 480; - - CRANK_ANGLE_MAX_IGN = 720; - } - else - { - channel2IgnDegrees = 120; - channel3IgnDegrees = 240; - } - } - else - { - channel2IgnDegrees = configPage1.oddfire2; - channel3IgnDegrees = configPage1.oddfire3; - } - - //For alternatiing injection, the squirt occurs at different times for each channel - if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) - { - channel1InjDegrees = 0; - channel2InjDegrees = 120; - channel3InjDegrees = 240; - } - else if (configPage1.injLayout == INJ_SEQUENTIAL) - { - channel1InjDegrees = 0; - channel2InjDegrees = 240; - channel3InjDegrees = 480; - CRANK_ANGLE_MAX_INJ = 720; - req_fuel_uS = req_fuel_uS * 2; - } - if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = 0; } //For simultaneous, all squirts happen at the same time - - channel1InjEnabled = true; - channel2InjEnabled = true; - channel3InjEnabled = true; - break; - case 4: - channel1IgnDegrees = 0; - - if (configPage1.engineType == EVEN_FIRE ) - { - channel2IgnDegrees = 180; - - if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) - { - channel3IgnDegrees = 360; - channel4IgnDegrees = 540; - - CRANK_ANGLE_MAX_IGN = 720; - } - } - else - { - channel2IgnDegrees = configPage1.oddfire2; - channel3IgnDegrees = configPage1.oddfire3; - channel4IgnDegrees = configPage1.oddfire4; - } - - //For alternatiing injection, the squirt occurs at different times for each channel - if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) - { - channel1InjDegrees = 0; - channel2InjDegrees = 180; - } - else if (configPage1.injLayout == INJ_SEQUENTIAL) - { - channel1InjDegrees = 0; - channel2InjDegrees = 180; - channel3InjDegrees = 360; - channel4InjDegrees = 540; - - channel3InjEnabled = true; - channel4InjEnabled = true; - - CRANK_ANGLE_MAX_INJ = 720; - req_fuel_uS = req_fuel_uS * 2; - } - if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = 0; } //For simultaneous, all squirts happen at the same time - - channel1InjEnabled = true; - channel2InjEnabled = true; - break; - case 5: - channel1IgnDegrees = 0; - channel2IgnDegrees = 72; - channel3IgnDegrees = 144; - channel4IgnDegrees = 216; - channel5IgnDegrees = 288; - - if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) - { - channel2IgnDegrees = 144; - channel3IgnDegrees = 288; - channel4IgnDegrees = 432; - channel5IgnDegrees = 576; - - CRANK_ANGLE_MAX_IGN = 720; - } - - //For alternatiing injection, the squirt occurs at different times for each channel - if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) - { - channel1InjDegrees = 0; - channel2InjDegrees = 72; - channel3InjDegrees = 144; - channel4InjDegrees = 216; - channel5InjDegrees = 288; - } - else if (configPage1.injLayout == INJ_SEQUENTIAL) - { - channel1InjDegrees = 0; - channel2InjDegrees = 144; - channel3InjDegrees = 288; - channel4InjDegrees = 432; - channel5InjDegrees = 576; - - CRANK_ANGLE_MAX_INJ = 720; - } - if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = channel4InjDegrees = channel5InjDegrees = 0; } //For simultaneous, all squirts happen at the same time - - channel1InjEnabled = true; - channel2InjEnabled = true; - channel3InjEnabled = false; //this is disabled as injector 5 function calls 3 & 5 together - channel4InjEnabled = true; - channel5InjEnabled = true; - break; - case 6: - channel1IgnDegrees = 0; - channel1InjDegrees = 0; - channel2IgnDegrees = 120; - channel2InjDegrees = 120; - channel3IgnDegrees = 240; - channel3InjDegrees = 240; - - if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = 0; } //For simultaneous, all squirts happen at the same time - - configPage1.injLayout = 0; //This is a failsafe. We can never run semi-sequential with more than 4 cylinders - - channel1InjEnabled = true; - channel2InjEnabled = true; - channel3InjEnabled = true; - break; - case 8: - channel1IgnDegrees = channel1InjDegrees = 0; - channel2IgnDegrees = channel2InjDegrees = 90; - channel3IgnDegrees = channel3InjDegrees = 180; - channel4IgnDegrees = channel4InjDegrees = 270; - - if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = channel4InjDegrees = 0; } //For simultaneous, all squirts happen at the same time - - configPage1.injLayout = 0; //This is a failsafe. We can never run semi-sequential with more than 4 cylinders - - channel1InjEnabled = true; - channel2InjEnabled = true; - channel3InjEnabled = true; - channel4InjEnabled = true; - break; - default: //Handle this better!!! - channel1InjDegrees = 0; - channel2InjDegrees = 180; - break; - } - - switch(configPage2.sparkMode) - { - case IGN_MODE_WASTED: - //Wasted Spark (Normal mode) - ign1StartFunction = beginCoil1Charge; - ign1EndFunction = endCoil1Charge; - ign2StartFunction = beginCoil2Charge; - ign2EndFunction = endCoil2Charge; - ign3StartFunction = beginCoil3Charge; - ign3EndFunction = endCoil3Charge; - ign4StartFunction = beginCoil4Charge; - ign4EndFunction = endCoil4Charge; - ign5StartFunction = beginCoil5Charge; - ign5EndFunction = endCoil5Charge; - break; - - case IGN_MODE_SINGLE: - //Single channel mode. All ignition pulses are on channel 1 - ign1StartFunction = beginCoil1Charge; - ign1EndFunction = endCoil1Charge; - ign2StartFunction = beginCoil1Charge; - ign2EndFunction = endCoil1Charge; - ign3StartFunction = beginCoil1Charge; - ign3EndFunction = endCoil1Charge; - ign4StartFunction = beginCoil1Charge; - ign4EndFunction = endCoil1Charge; - ign5StartFunction = beginCoil1Charge; - ign5EndFunction = endCoil1Charge; - break; - - case IGN_MODE_WASTEDCOP: - //Wasted COP mode. Ignition channels 1&3 and 2&4 are paired together - //This is not a valid mode for >4 cylinders - if( configPage1.nCylinders <= 4 ) - { - ign1StartFunction = beginCoil1and3Charge; - ign1EndFunction = endCoil1and3Charge; - ign2StartFunction = beginCoil2and4Charge; - ign2EndFunction = endCoil2and4Charge; - - ign3StartFunction = nullCallback; - ign3EndFunction = nullCallback; - ign4StartFunction = nullCallback; - ign4EndFunction = nullCallback; - } - else - { - //If the person has inadvertantly selected this when running more than 4 cylinders, just use standard Wasted spark mode - ign1StartFunction = beginCoil1Charge; - ign1EndFunction = endCoil1Charge; - ign2StartFunction = beginCoil2Charge; - ign2EndFunction = endCoil2Charge; - ign3StartFunction = beginCoil3Charge; - ign3EndFunction = endCoil3Charge; - ign4StartFunction = beginCoil4Charge; - ign4EndFunction = endCoil4Charge; - ign5StartFunction = beginCoil5Charge; - ign5EndFunction = endCoil5Charge; - } - break; - - case IGN_MODE_SEQUENTIAL: - ign1StartFunction = beginCoil1Charge; - ign1EndFunction = endCoil1Charge; - ign2StartFunction = beginCoil2Charge; - ign2EndFunction = endCoil2Charge; - ign3StartFunction = beginCoil3Charge; - ign3EndFunction = endCoil3Charge; - ign4StartFunction = beginCoil4Charge; - ign4EndFunction = endCoil4Charge; - ign5StartFunction = beginCoil5Charge; - ign5EndFunction = endCoil5Charge; - break; - - default: - //Wasted spark (Shouldn't ever happen anyway) - ign1StartFunction = beginCoil1Charge; - ign1EndFunction = endCoil1Charge; - ign2StartFunction = beginCoil2Charge; - ign2EndFunction = endCoil2Charge; - ign3StartFunction = beginCoil3Charge; - ign3EndFunction = endCoil3Charge; - ign4StartFunction = beginCoil4Charge; - ign4EndFunction = endCoil4Charge; - ign5StartFunction = beginCoil5Charge; - ign5EndFunction = endCoil5Charge; - break; - } - - //Begin priming the fuel pump. This is turned off in the low resolution, 1s interrupt in timers.ino - digitalWrite(pinFuelPump, HIGH); - fuelPumpOn = true; - //Perform the priming pulses. Set these to run at an arbitrary time in the future (100us). The prime pulse value is in ms*10, so need to multiple by 100 to get to uS - setFuelSchedule1(100, (unsigned long)(configPage1.primePulse * 100)); - setFuelSchedule2(100, (unsigned long)(configPage1.primePulse * 100)); - setFuelSchedule3(100, (unsigned long)(configPage1.primePulse * 100)); - setFuelSchedule4(100, (unsigned long)(configPage1.primePulse * 100)); - - initialisationComplete = true; -} - -void loop() -{ - mainLoopCount++; - LOOP_TIMER = TIMER_mask; - //Check for any requets from serial. Serial operations are checked under 2 scenarios: - // 1) Every 64 loops (64 Is more than fast enough for TunerStudio). This function is equivalent to ((loopCount % 64) == 1) but is considerably faster due to not using the mod or division operations - // 2) If the amount of data in the serial buffer is greater than a set threhold (See globals.h). This is to avoid serial buffer overflow when large amounts of data is being sent - if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ) or (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) - { - if (Serial.available() > 0) - { - command(); - } - } - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - //if serial3 interface is enabled then check for serial3 requests. - if (configPage10.enable_canbus == 1) - { - if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) - { - if (CANSerial.available() > 0) - { - canCommand(); - } - } - } - -#elif defined(CORE_STM32) - //if can or secondary serial interface is enabled then check for requests. - if (configPage10.enable_canbus == 1) //secondary serial interface enabled - { - if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) - { - if (CANSerial.available() > 0) - { - canCommand(); - } - } - } - else if (configPage10.enable_canbus == 2) // can module enabled - { - //check local can module - } -#elif defined(CORE_TEENSY) - //if can or secondary serial interface is enabled then check for requests. - if (configPage10.enable_canbus == 1) //secondary serial interface enabled - { - if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) - { - if (CANSerial.available() > 0) - { - canCommand(); - } - } - } - else if (configPage10.enable_canbus == 2) // can module enabled - { - //check local can module - // if ( ((mainLoopCount & 31) == 1) or (CANbus0.available()) - // { - // CANbus0.read(rx_msg); - // } - } -#endif - - //Displays currently disabled - // if (configPage1.displayType && (mainLoopCount & 255) == 1) { updateDisplay();} - - previousLoopTime = currentLoopTime; - currentLoopTime = micros(); - unsigned long timeToLastTooth = (currentLoopTime - toothLastToothTime); - if ( (timeToLastTooth < MAX_STALL_TIME) || (toothLastToothTime > currentLoopTime) ) //Check how long ago the last tooth was seen compared to now. If it was more than half a second ago then the engine is probably stopped. toothLastToothTime can be greater than currentLoopTime if a pulse occurs between getting the lastest time and doing the comparison - { - currentStatus.RPM = currentStatus.longRPM = getRPM(); //Long RPM is included here - FUEL_PUMP_ON(); - fuelPumpOn = true; //Not sure if this is needed. - } - else - { - //We reach here if the time between teeth is too great. This VERY likely means the engine has stopped - currentStatus.RPM = 0; - currentStatus.PW1 = 0; - currentStatus.VE = 0; - toothLastToothTime = 0; - //toothLastMinusOneToothTime = 0; - currentStatus.hasSync = false; - currentStatus.runSecs = 0; //Reset the counter for number of seconds running. - secCounter = 0; //Reset our seconds counter. - currentStatus.startRevolutions = 0; - toothSystemCount = 0; - MAPcurRev = 0; - MAPcount = 0; - currentStatus.rpmDOT = 0; - ignitionOn = false; - fuelOn = false; - if (fpPrimed) { digitalWrite(pinFuelPump, LOW); } //Turn off the fuel pump, but only if the priming is complete - fuelPumpOn = false; - disableIdle(); //Turn off the idle PWM - BIT_CLEAR(currentStatus.engine, BIT_ENGINE_CRANK); //Clear cranking bit (Can otherwise get stuck 'on' even with 0 rpm) - BIT_CLEAR(currentStatus.engine, BIT_ENGINE_WARMUP); //Same as above except for WUE - } - - //Uncomment the following for testing - /* - currentStatus.hasSync = true; - currentStatus.RPM = 500; - */ - - //***Perform sensor reads*** - //----------------------------------------------------------------------------------------------------- - readMAP(); - - //if ((mainLoopCount & 31) == 1) //Every 32 loops - if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) - { - BIT_CLEAR(TIMER_mask, BIT_TIMER_15HZ); - readTPS(); //TPS reading to be performed every 32 loops (any faster and it can upset the TPSdot sampling time) - - //Check for launching/flat shift (clutch) can be done around here too - previousClutchTrigger = clutchTrigger; - if(configPage3.launchHiLo) { clutchTrigger = digitalRead(pinLaunch); } - else { clutchTrigger = !digitalRead(pinLaunch); } - - if(previousClutchTrigger != clutchTrigger) { currentStatus.clutchEngagedRPM = currentStatus.RPM; } - - if (configPage3.launchEnabled && clutchTrigger && (currentStatus.clutchEngagedRPM < ((unsigned int)(configPage3.flatSArm) * 100)) && (currentStatus.RPM > ((unsigned int)(configPage3.lnchHardLim) * 100)) ) { currentStatus.launchingHard = true; BIT_SET(currentStatus.spark, BIT_SPARK_HLAUNCH); } //HardCut rev limit for 2-step launch control. - else { currentStatus.launchingHard = false; BIT_CLEAR(currentStatus.spark, BIT_SPARK_HLAUNCH); } - - if(configPage3.flatSEnable && clutchTrigger && (currentStatus.RPM > ((unsigned int)(configPage3.flatSArm) * 100)) && (currentStatus.RPM > currentStatus.clutchEngagedRPM) ) { currentStatus.flatShiftingHard = true; } - else { currentStatus.flatShiftingHard = false; } - - //Boost cutoff is very similar to launchControl, but with a check against MAP rather than a switch - if(configPage3.boostCutType && currentStatus.MAP > (configPage3.boostLimit * 2) ) //The boost limit is divided by 2 to allow a limit up to 511kPa - { - switch(configPage3.boostCutType) - { - case 1: - BIT_SET(currentStatus.spark, BIT_SPARK_BOOSTCUT); - BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); - break; - case 2: - BIT_SET(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); - BIT_CLEAR(currentStatus.spark, BIT_SPARK_BOOSTCUT); - break; - case 3: - BIT_SET(currentStatus.spark, BIT_SPARK_BOOSTCUT); - BIT_SET(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); - break; - } - } - else - { - BIT_CLEAR(currentStatus.spark, BIT_SPARK_BOOSTCUT); - BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); - } - - //And check whether the tooth log buffer is ready - if(toothHistoryIndex > TOOTH_LOG_SIZE) { BIT_SET(currentStatus.squirt, BIT_SQUIRT_TOOTHLOG1READY); } - - //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough - boostControl(); - } - if(BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) //Every 64 loops - { - //Nothing here currently - BIT_CLEAR(TIMER_mask, BIT_TIMER_30HZ); - } - //The IAT and CLT readings can be done less frequently. This still runs about 4 times per second - if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_4HZ)) //Every 256 loops - { - BIT_CLEAR(TIMER_mask, BIT_TIMER_4HZ); - readCLT(); - readIAT(); - readO2(); - readBat(); -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 - //if Can interface is enabled then check for serial3 requests. - if (configPage10.enable_canbus == 1) // megas only support can via secondary serial - { - if (configPage10.enable_candata_in) - { - if (BIT_CHECK(configPage10.caninput_sel,currentStatus.current_caninchannel)) //if current input channel bit is enabled - { - sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage10.caninput_param_group[currentStatus.current_caninchannel]&2047)+256)); //send an R command for data from paramgroup[currentStatus.current_caninchannel] - } - else - { - if (currentStatus.current_caninchannel < 15) - { - currentStatus.current_caninchannel++; //step to next input channel if under 15 - } - else - { - currentStatus.current_caninchannel = 0; //reset input channel back to 1 - } - } - } - } -#elif defined(CORE_STM32) || defined(CORE_TEENSY) - //if serial3io is enabled then check for serial3 requests. - if (configPage10.enable_candata_in) - { - if (BIT_CHECK(configPage10.caninput_sel,currentStatus.current_caninchannel)) //if current input channel is enabled - { - if (configPage10.enable_canbus == 1) //can via secondary serial - { - sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage10.caninput_param_group[currentStatus.current_caninchannel]&2047)+256)); //send an R command for data from paramgroup[currentStatus.current_caninchannel] - } - else if (configPage10.enable_canbus == 2) // can via internal can module - { - sendCancommand(3,configPage10.speeduino_tsCanId,currentStatus.current_caninchannel,0,configPage10.caninput_param_group[currentStatus.current_caninchannel]); //send via localcanbus the command for data from paramgroup[currentStatus.current_caninchannel] - } - } - else - { - if (currentStatus.current_caninchannel < 15) - { - currentStatus.current_caninchannel++; //step to next input channel if under 15 - } - else - { - currentStatus.current_caninchannel = 0; //reset input channel back to 0 - } - } - } - -#endif - vvtControl(); - idleControl(); //Perform any idle related actions. Even at higher frequencies, running 4x per second is sufficient. - } - if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_1HZ)) //Every 1024 loops (Approx. 1 per second) - { - //Approx. once per second - BIT_CLEAR(TIMER_mask, BIT_TIMER_1HZ); - readBaro(); - } - - if(configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL || configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL) { idleControl(); } //Run idlecontrol every loop for stepper idle. - - //Always check for sync - //Main loop runs within this clause - if (currentStatus.hasSync && (currentStatus.RPM > 0)) - { - if(currentStatus.startRevolutions >= configPage2.StgCycles) { ignitionOn = true; fuelOn = true; } //Enable the fuel and ignition, assuming staging revolutions are complete - //If it is, check is we're running or cranking - if(currentStatus.RPM > ((unsigned int)configPage2.crankRPM * 100)) //Crank RPM stored in byte as RPM / 100 - { - BIT_SET(currentStatus.engine, BIT_ENGINE_RUN); //Sets the engine running bit - //Only need to do anything if we're transitioning from cranking to running - if( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) - { - BIT_CLEAR(currentStatus.engine, BIT_ENGINE_CRANK); //clears the engine cranking bit - if(configPage2.ignBypassEnabled) { digitalWrite(pinIgnBypass, HIGH); } - } - } - else - { //Sets the engine cranking bit, clears the engine running bit - BIT_SET(currentStatus.engine, BIT_ENGINE_CRANK); - BIT_CLEAR(currentStatus.engine, BIT_ENGINE_RUN); - currentStatus.runSecs = 0; //We're cranking (hopefully), so reset the engine run time to prompt ASE. - if(configPage2.ignBypassEnabled) { digitalWrite(pinIgnBypass, LOW); } - } - //END SETTING STATUSES - //----------------------------------------------------------------------------------------------------- - - //Begin the fuel calculation - //Calculate an injector pulsewidth from the VE - currentStatus.corrections = correctionsFuel(); - lastAdvance = currentStatus.advance; //Store the previous advance value - if (configPage1.algorithm == 0) //Check which fuelling algorithm is being used - { - //Speed Density - currentStatus.VE = get3DTableValue(&fuelTable, currentStatus.MAP, currentStatus.RPM); //Perform lookup into fuel map for RPM vs MAP value - currentStatus.PW1 = PW_SD(req_fuel_uS, currentStatus.VE, currentStatus.MAP, currentStatus.corrections, inj_opentime_uS); - currentStatus.advance = get3DTableValue(&ignitionTable, currentStatus.MAP, currentStatus.RPM) - OFFSET_IGNITION; //As above, but for ignition advance - } - else - { - //Alpha-N - currentStatus.VE = get3DTableValue(&fuelTable, currentStatus.TPS, currentStatus.RPM); //Perform lookup into fuel map for RPM vs TPS value - currentStatus.PW1 = PW_AN(req_fuel_uS, currentStatus.VE, currentStatus.TPS, currentStatus.corrections, inj_opentime_uS); //Calculate pulsewidth using the Alpha-N algorithm (in uS) - currentStatus.advance = get3DTableValue(&ignitionTable, currentStatus.TPS, currentStatus.RPM) - OFFSET_IGNITION; //As above, but for ignition advance - } - - currentStatus.advance = correctionsIgn(currentStatus.advance); - - int injector1StartAngle = 0; - int injector2StartAngle = 0; - int injector3StartAngle = 0; //Currently used for 3 cylinder only - int injector4StartAngle = 0; //Not used until sequential gets written - int injector5StartAngle = 0; //For 5 cylinder testing - int ignition1StartAngle = 0; - int ignition2StartAngle = 0; - int ignition3StartAngle = 0; //Currently used for 3 cylinder only - int ignition4StartAngle = 0; //Not used until sequential or 4+ cylinders support gets written - int ignition5StartAngle = 0; //Not used until sequential or 4+ cylinders support gets written - //These are used for comparisons on channels above 1 where the starting angle (for injectors or ignition) can be less than a single loop time - //(Don't ask why this is needed, it will break your head) - int tempCrankAngle; - int tempStartAngle; - - //******************************************************** - //How fast are we going? Need to know how long (uS) it will take to get from one tooth to the next. We then use that to estimate how far we are between the last tooth and the next one - //We use a 1st Deriv accleration prediction, but only when there is an even spacing between primary sensor teeth - //Any decoder that has uneven spacing has its triggerToothAngle set to 0 - if(secondDerivEnabled && toothHistoryIndex >= 3 && currentStatus.RPM < 2000) //toothHistoryIndex must be greater than or equal to 3 as we need the last 3 entries. Currently this mode only runs below 3000 rpm - //if(true) - { - //Only recalculate deltaV if the tooth has changed since last time (DeltaV stays the same until the next tooth) - //if (deltaToothCount != toothCurrentCount) - { - deltaToothCount = toothCurrentCount; - int angle1, angle2; //These represent the crank angles that are travelled for the last 2 pulses - if(configPage2.TrigPattern == 4) - { - //Special case for 70/110 pattern on 4g63 - angle2 = triggerToothAngle; //Angle 2 is the most recent - if (angle2 == 70) { angle1 = 110; } - else { angle1 = 70; } - } - else if(configPage2.TrigPattern == 0) - { - //Special case for missing tooth decoder where the missing tooth was one of the last 2 seen - if(toothCurrentCount == 1) { angle2 = 2*triggerToothAngle; angle1 = triggerToothAngle; } - else if(toothCurrentCount == 2) { angle1 = 2*triggerToothAngle; angle2 = triggerToothAngle; } - else { angle1 = angle2 = triggerToothAngle; } - } - else { angle1 = angle2 = triggerToothAngle; } - - long toothDeltaV = (1000000L * angle2 / toothHistory[toothHistoryIndex]) - (1000000L * angle1 / toothHistory[toothHistoryIndex-1]); - long toothDeltaT = toothHistory[toothHistoryIndex]; - //long timeToLastTooth = micros() - toothLastToothTime; - - rpmDelta = (toothDeltaV << 10) / (6 * toothDeltaT); - } - - - timePerDegree = ldiv( 166666L, (currentStatus.RPM + rpmDelta)).quot; //There is a small amount of rounding in this calculation, however it is less than 0.001 of a uS (Faster as ldiv than / ) - } - else - { - long rpm_adjust = ((long)(micros() - toothOneTime) * (long)currentStatus.rpmDOT) / 1000000; //Take into account any likely accleration that has occurred since the last full revolution completed - - //timePerDegree = DIV_ROUND_CLOSEST(166666L, (currentStatus.RPM + rpm_adjust)); - timePerDegree = ldiv( 166666L, currentStatus.RPM + rpm_adjust).quot; //There is a small amount of rounding in this calculation, however it is less than 0.001 of a uS (Faster as ldiv than / ) - } - - //Check that the duty cycle of the chosen pulsewidth isn't too high. This is disabled at cranking - if( !BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) - { - unsigned long pwLimit = percentage(configPage1.dutyLim, revolutionTime); //The pulsewidth limit is determined to be the duty cycle limit (Eg 85%) by the total time it takes to perform 1 revolution - if (CRANK_ANGLE_MAX_INJ == 720) { pwLimit = pwLimit * 2; } //For sequential, the maximum pulse time is double (2 revolutions). Wouldn't work for 2 stroke... - if (currentStatus.PW1 > pwLimit) { currentStatus.PW1 = pwLimit; } - } - - - //*********************************************************************************************** - //BEGIN INJECTION TIMING - //Determine next firing angles - currentStatus.PW2 = currentStatus.PW3 = currentStatus.PW4 = currentStatus.PW1; // Initial state is for all pulsewidths to be the same (This gets changed below) - if(!configPage1.indInjAng) {configPage1.inj4Ang = configPage1.inj3Ang = configPage1.inj2Ang = configPage1.inj1Ang;} //Forcing all injector close angles to be the same. - int PWdivTimerPerDegree = div(currentStatus.PW1, timePerDegree).quot; //How many crank degrees the calculated PW will take at the current speed - injector1StartAngle = configPage1.inj1Ang - ( PWdivTimerPerDegree ); //This is a little primitive, but is based on the idea that all fuel needs to be delivered before the inlet valve opens. See http://www.extraefi.co.uk/sequential_fuel.html for more detail - if(injector1StartAngle < 0) {injector1StartAngle += CRANK_ANGLE_MAX_INJ;} - - //Repeat the above for each cylinder - switch (configPage1.nCylinders) - { - //2 cylinders - case 2: - injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); - if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} - break; - //3 cylinders - case 3: - injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); - if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); - if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} - break; - //4 cylinders - case 4: - injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); - if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} - - if(configPage1.injLayout == INJ_SEQUENTIAL) - { - injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); - if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); - if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} - - if(configPage3.fuelTrimEnabled) - { - unsigned long pw1percent = 100 + (byte)get3DTableValue(&trim1Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; - unsigned long pw2percent = 100 + (byte)get3DTableValue(&trim2Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; - unsigned long pw3percent = 100 + (byte)get3DTableValue(&trim3Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; - unsigned long pw4percent = 100 + (byte)get3DTableValue(&trim4Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; - - if (pw1percent != 100) { currentStatus.PW1 = (pw1percent * currentStatus.PW1) / 100; } - if (pw2percent != 100) { currentStatus.PW2 = (pw2percent * currentStatus.PW2) / 100; } - if (pw3percent != 100) { currentStatus.PW3 = (pw3percent * currentStatus.PW3) / 100; } - if (pw4percent != 100) { currentStatus.PW4 = (pw4percent * currentStatus.PW4) / 100; } - } - } - break; - //5 cylinders - case 5: - injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); - if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); - if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); - if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector5StartAngle = (configPage1.inj1Ang + channel5InjDegrees - ( PWdivTimerPerDegree )); - if(injector5StartAngle > CRANK_ANGLE_MAX_INJ) {injector5StartAngle -= CRANK_ANGLE_MAX_INJ;} - break; - //6 cylinders - case 6: - injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); - if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); - if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} - break; - //8 cylinders - case 8: - injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); - if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); - if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} - injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); - if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} - break; - //Will hit the default case on 1 cylinder or >8 cylinders. Do nothing in these cases - default: - break; - } - - //*********************************************************************************************** - //| BEGIN IGNITION CALCULATIONS - BIT_CLEAR(currentStatus.spark, BIT_SPARK_HRDLIM); - if (currentStatus.RPM > ((unsigned int)(configPage2.HardRevLim) * 100) ) { BIT_SET(currentStatus.spark, BIT_SPARK_HRDLIM); } //Hardcut RPM limit - - - //Set dwell - //Dwell is stored as ms * 10. ie Dwell of 4.3ms would be 43 in configPage2. This number therefore needs to be multiplied by 100 to get dwell in uS - if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { currentStatus.dwell = (configPage2.dwellCrank * 100); } - else { currentStatus.dwell = (configPage2.dwellRun * 100); } - currentStatus.dwell = correctionsDwell(currentStatus.dwell); - - int dwellAngle = (div(currentStatus.dwell, timePerDegree).quot ); //Convert the dwell time to dwell angle based on the current engine speed - - //Calculate start angle for each channel - //1 cylinder (Everyone gets this) - ignition1EndAngle = CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition1StartAngle = ignition1EndAngle - dwellAngle; // 360 - desired advance angle - number of degrees the dwell will take - if(ignition1StartAngle < 0) {ignition1StartAngle += CRANK_ANGLE_MAX_IGN;} - - //This test for more cylinders and do the same thing - switch (configPage1.nCylinders) - { - //2 cylinders - case 2: - ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition2StartAngle = ignition2EndAngle - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - break; - //3 cylinders - case 3: - ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition2StartAngle = ignition2EndAngle - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition3StartAngle = channel3IgnDegrees + 360 - currentStatus.advance - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - break; - //4 cylinders - case 4: - ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition2StartAngle = ignition2EndAngle - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} - - if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) - { - ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition3StartAngle = ignition3EndAngle - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition4StartAngle = ignition4EndAngle - dwellAngle; - if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} - } - break; - //5 cylinders - case 5: - ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition2StartAngle = ignition2EndAngle - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} - - ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition3StartAngle = ignition3EndAngle - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition4StartAngle = ignition4EndAngle - dwellAngle; - if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition5StartAngle = channel5IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; - if(ignition5StartAngle > CRANK_ANGLE_MAX_IGN) {ignition5StartAngle -= CRANK_ANGLE_MAX_IGN;} - - break; - //6 cylinders - case 6: - ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition2StartAngle = ignition2EndAngle - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition3StartAngle = ignition3EndAngle - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - break; - //8 cylinders - case 8: - ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition2StartAngle = ignition2EndAngle - dwellAngle; - if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition3StartAngle = ignition3EndAngle - dwellAngle; - if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} - - ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; - ignition4StartAngle = ignition4EndAngle - dwellAngle; - if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} - break; - - //Will hit the default case on 1 cylinder or >8 cylinders. Do nothing in these cases - default: - break; - } - //If ignition timing is being tracked per tooth, perform the calcs to get the end teeth - //This only needs to be run if the advance figure has changed, otherwise the end teeth will still be the same - if( (configPage1.perToothIgn == true) && (lastAdvance != currentStatus.advance) ) { triggerSetEndTeeth(); } - - //*********************************************************************************************** - //| BEGIN FUEL SCHEDULES - //Finally calculate the time (uS) until we reach the firing angles and set the schedules - //We only need to set the shcedule if we're BEFORE the open angle - //This may potentially be called a number of times as we get closer and closer to the opening time - - //Determine the current crank angle - int crankAngle = getCrankAngle(timePerDegree); - if (crankAngle > CRANK_ANGLE_MAX_INJ ) { crankAngle -= 360; } - - if (fuelOn && currentStatus.PW1 > 0 && !BIT_CHECK(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT)) - { - if ( (injector1StartAngle <= crankAngle) && (fuelSchedule1.Status == RUNNING) ) { injector1StartAngle += CRANK_ANGLE_MAX_INJ; } - if (injector1StartAngle > crankAngle) - { - setFuelSchedule1( - ((unsigned long)(injector1StartAngle - crankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW1 - ); - } - - /*----------------------------------------------------------------------------------------- - | A Note on tempCrankAngle and tempStartAngle: - | The use of tempCrankAngle/tempStartAngle is described below. It is then used in the same way for channels 2, 3 and 4 on both injectors and ignition - | Essentially, these 2 variables are used to realign the current crank angle and the desired start angle around 0 degrees for the given cylinder/output - | Eg: If cylinder 2 TDC is 180 degrees after cylinder 1 (Eg a standard 4 cylidner engine), then tempCrankAngle is 180* less than the current crank angle and - | tempStartAngle is the desired open time less 180*. Thus the cylinder is being treated relative to its own TDC, regardless of its offset - | - | This is done to avoid problems with very short of very long times until tempStartAngle. - | This will very likely need to be rewritten when sequential is enabled - |------------------------------------------------------------------------------------------ - */ - if(channel2InjEnabled) - { - tempCrankAngle = crankAngle - channel2InjDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } - tempStartAngle = injector2StartAngle - channel2InjDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule2.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( tempStartAngle > tempCrankAngle ) - { - setFuelSchedule2( - ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW2 - ); - } - } - - if(channel3InjEnabled) - { - tempCrankAngle = crankAngle - channel3InjDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } - tempStartAngle = injector3StartAngle - channel3InjDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule3.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( tempStartAngle > tempCrankAngle ) - { - setFuelSchedule3( - ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW3 - ); - } - } - - if(channel4InjEnabled) - { - tempCrankAngle = crankAngle - channel4InjDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } - tempStartAngle = injector4StartAngle - channel4InjDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule4.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( tempStartAngle > tempCrankAngle ) - { - setFuelSchedule4( - ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW4 - ); - } - } - - if(channel5InjEnabled) - { - tempCrankAngle = crankAngle - channel5InjDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } - tempStartAngle = injector5StartAngle - channel5InjDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if (tempStartAngle <= tempCrankAngle && fuelSchedule5.schedulesSet == 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } - if ( tempStartAngle > tempCrankAngle ) - { - //Note the hacky use of fuel schedule 3 below - /* - setFuelSchedule3(openInjector3and5, - ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW1, - closeInjector3and5 - );*/ - setFuelSchedule3( - ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), - (unsigned long)currentStatus.PW1 - ); - } - } - } - //*********************************************************************************************** - //| BEGIN IGNITION SCHEDULES - //Likewise for the ignition - - //fixedCrankingOverride is used to extend the dwell during cranking so that the decoder can trigger the spark upon seeing a certain tooth. Currently only available on the basic distributor and 4g63 decoders. - if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) { fixedCrankingOverride = currentStatus.dwell * 2; } - else { fixedCrankingOverride = 0; } - - //Perform an initial check to see if the ignition is turned on (Ignition only turns on after a preset number of cranking revolutions and: - //Check for hard cut rev limit (If we're above the hardcut limit, we simply don't set a spark schedule) - if(ignitionOn && !currentStatus.launchingHard && !BIT_CHECK(currentStatus.spark, BIT_SPARK_BOOSTCUT) && !BIT_CHECK(currentStatus.spark, BIT_SPARK_HRDLIM) && !currentStatus.flatShiftingHard) - { - - //Refresh the current crank angle info - //ignition1StartAngle = 335; - crankAngle = getCrankAngle(timePerDegree); //Refresh with the latest crank angle - if (crankAngle > CRANK_ANGLE_MAX_IGN ) { crankAngle -= 360; } - - //if (ignition1StartAngle <= crankAngle && ignition1.schedulesSet == 0) { ignition1StartAngle += CRANK_ANGLE_MAX_IGN; } - if (ignition1StartAngle > crankAngle) - { - /* - long some_time = ((unsigned long)(ignition1StartAngle - crankAngle) * (unsigned long)timePerDegree); - long newRPM = (long)(some_time * currentStatus.rpmDOT) / 1000000L; - newRPM = currentStatus.RPM + (newRPM/2); - unsigned long timePerDegree_1 = ldiv( 166666L, newRPM).quot; - unsigned long timeout = (unsigned long)(ignition1StartAngle - crankAngle) * 282UL; - */ - setIgnitionSchedule1(ign1StartFunction, - ((unsigned long)(ignition1StartAngle - crankAngle) * (unsigned long)timePerDegree), //(timeout/10), - currentStatus.dwell + fixedCrankingOverride, //((unsigned long)((unsigned long)currentStatus.dwell* currentStatus.RPM) / newRPM) + fixedCrankingOverride, - ign1EndFunction - ); - } - - tempCrankAngle = crankAngle - channel2IgnDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } - tempStartAngle = ignition2StartAngle - channel2IgnDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } - //if ( (tempStartAngle > tempCrankAngle) && ign2LastRev != startRevolutions) - //if ( ign2LastRev != startRevolutions ) - { - unsigned long ignition2StartTime = 0; - if(tempStartAngle > tempCrankAngle) { ignition2StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } - //else if (tempStartAngle < tempCrankAngle) { ignition2StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } - else { ignition2StartTime = 0; } - - if(ignition2StartTime > 0) { - setIgnitionSchedule2(ign2StartFunction, - ignition2StartTime, - currentStatus.dwell + fixedCrankingOverride, - ign2EndFunction - ); - } - } - - tempCrankAngle = crankAngle - channel3IgnDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } - tempStartAngle = ignition3StartAngle - channel3IgnDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } - //if (tempStartAngle > tempCrankAngle) - { - long ignition3StartTime = 0; - if(tempStartAngle > tempCrankAngle) { ignition3StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } - //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } - else { ignition3StartTime = 0; } - - if(ignition3StartTime > 0) { - setIgnitionSchedule3(ign3StartFunction, - ignition3StartTime, - currentStatus.dwell + fixedCrankingOverride, - ign3EndFunction - ); - } - } - - tempCrankAngle = crankAngle - channel4IgnDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } - tempStartAngle = ignition4StartAngle - channel4IgnDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } - //if (tempStartAngle > tempCrankAngle) - { - - long ignition4StartTime = 0; - if(tempStartAngle > tempCrankAngle) { ignition4StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } - //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } - else { ignition4StartTime = 0; } - - if(ignition4StartTime > 0) { - setIgnitionSchedule4(ign4StartFunction, - ignition4StartTime, - currentStatus.dwell + fixedCrankingOverride, - ign4EndFunction - ); - } - } - - tempCrankAngle = crankAngle - channel5IgnDegrees; - if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } - tempStartAngle = ignition5StartAngle - channel5IgnDegrees; - if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } - //if (tempStartAngle > tempCrankAngle) - { - - long ignition5StartTime = 0; - if(tempStartAngle > tempCrankAngle) { ignition5StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } - //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } - else { ignition5StartTime = 0; } - - if(ignition5StartTime > 0) { - setIgnitionSchedule5(ign5StartFunction, - ignition5StartTime, - currentStatus.dwell + fixedCrankingOverride, - ign5EndFunction - ); - } - } - } //Ignition schedules on - } //Has sync and RPM +/* +Speeduino - Simple engine management for the Arduino Mega 2560 platform +Copyright (C) Josh Stewart + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful,la +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +//************************************************************************************************** +// Config section +#define engineSquirtsPerCycle 2 //Would be 1 for a 2 stroke +//************************************************************************************************** + +//https://developer.mbed.org/handbook/C-Data-Types +#include +//************************************************ +#include "globals.h" +#include "utils.h" +#include "table.h" +#include "scheduler.h" +#include "comms.h" +#include "cancomms.h" +#include "maths.h" +#include "corrections.h" +#include "timers.h" +//#include "display.h" +#include "decoders.h" +#include "idle.h" +#include "auxiliaries.h" +#include "sensors.h" +#include "src/PID_v1/PID_v1.h" +//#include "src/DigitalWriteFast/digitalWriteFast.h" +#include "errors.h" +#include "storage.h" +#include "scheduledIO.h" +#include +#if defined (CORE_TEENSY) +#include +#endif + +struct config1 configPage1; +struct config2 configPage2; +struct config3 configPage3; +struct config4 configPage4; +struct config10 configPage10; +struct config11 configPage11; + +int req_fuel_uS, inj_opentime_uS; + +volatile byte ign1LastRev; +volatile byte ign2LastRev; +volatile byte ign3LastRev; +volatile byte ign4LastRev; +volatile byte ign5LastRev; +bool ignitionOn = false; //The current state of the ignition system +bool fuelOn = false; //The current state of the ignition system +bool fuelPumpOn = false; //The current status of the fuel pump + +void (*trigger)(); //Pointer for the trigger function (Gets pointed to the relevant decoder) +void (*triggerSecondary)(); //Pointer for the secondary trigger function (Gets pointed to the relevant decoder) +uint16_t (*getRPM)(); //Pointer to the getRPM function (Gets pointed to the relevant decoder) +int (*getCrankAngle)(int); //Pointer to the getCrank Angle function (Gets pointed to the relevant decoder) +void (*triggerSetEndTeeth)(); //Pointer to the triggerSetEndTeeth function of each decoder + +byte cltCalibrationTable[CALIBRATION_TABLE_SIZE]; +byte iatCalibrationTable[CALIBRATION_TABLE_SIZE]; +byte o2CalibrationTable[CALIBRATION_TABLE_SIZE]; + +//These variables are used for tracking the number of running sensors values that appear to be errors. Once a threshold is reached, the sensor reading will go to default value and assume the sensor is faulty +byte mapErrorCount = 0; +byte iatErrorCount = 0; +byte cltErrorCount = 0; + +unsigned long counter; +unsigned long currentLoopTime; //The time the current loop started (uS) +unsigned long previousLoopTime; //The time the previous loop started (uS) + +int CRANK_ANGLE_MAX = 720; +int CRANK_ANGLE_MAX_IGN = 360; +int CRANK_ANGLE_MAX_INJ = 360; // The number of crank degrees that the system track over. 360 for wasted / timed batch and 720 for sequential + +static byte coilHIGH = HIGH; +static byte coilLOW = LOW; +static byte fanHIGH = HIGH; // Used to invert the cooling fan output +static byte fanLOW = LOW; // Used to invert the cooling fan output + +volatile int mainLoopCount; +byte deltaToothCount = 0; //The last tooth that was used with the deltaV calc +int rpmDelta; +byte ignitionCount; +uint16_t fixedCrankingOverride = 0; +int16_t lastAdvance; //Stores the previous advance figure to track changes. +bool clutchTrigger; +bool previousClutchTrigger; + +unsigned long secCounter; //The next time to incremen 'runSecs' counter. +int channel1IgnDegrees; //The number of crank degrees until cylinder 1 is at TDC (This is obviously 0 for virtually ALL engines, but there's some weird ones) +int channel2IgnDegrees; //The number of crank degrees until cylinder 2 (and 5/6/7/8) is at TDC +int channel3IgnDegrees; //The number of crank degrees until cylinder 3 (and 5/6/7/8) is at TDC +int channel4IgnDegrees; //The number of crank degrees until cylinder 4 (and 5/6/7/8) is at TDC +int channel5IgnDegrees; //The number of crank degrees until cylinder 5 is at TDC +int channel1InjDegrees; //The number of crank degrees until cylinder 1 is at TDC (This is obviously 0 for virtually ALL engines, but there's some weird ones) +int channel2InjDegrees; //The number of crank degrees until cylinder 2 (and 5/6/7/8) is at TDC +int channel3InjDegrees; //The number of crank degrees until cylinder 3 (and 5/6/7/8) is at TDC +int channel4InjDegrees; //The number of crank degrees until cylinder 4 (and 5/6/7/8) is at TDC +int channel5InjDegrees; //The number of crank degrees until cylinder 5 is at TDC + +//These are the functions the get called to begin and end the ignition coil charging. They are required for the various spark output modes +void (*ign1StartFunction)(); +void (*ign1EndFunction)(); +void (*ign2StartFunction)(); +void (*ign2EndFunction)(); +void (*ign3StartFunction)(); +void (*ign3EndFunction)(); +void (*ign4StartFunction)(); +void (*ign4EndFunction)(); +void (*ign5StartFunction)(); +void (*ign5EndFunction)(); + +int timePerDegree; +byte degreesPerLoop; //The number of crank degrees that pass for each mainloop of the program +volatile bool fpPrimed = false; //Tracks whether or not the fuel pump priming has been completed yet +bool initialisationComplete = false; //Tracks whether the setup() functino has run completely + +void setup() +{ + + //Setup the dummy fuel and ignition tables + //dummyFuelTable(&fuelTable); + //dummyIgnitionTable(&ignitionTable); + table3D_setSize(&fuelTable, 16); + table3D_setSize(&ignitionTable, 16); + table3D_setSize(&afrTable, 16); + table3D_setSize(&boostTable, 8); + table3D_setSize(&vvtTable, 8); + table3D_setSize(&trim1Table, 6); + table3D_setSize(&trim2Table, 6); + table3D_setSize(&trim3Table, 6); + table3D_setSize(&trim4Table, 6); + Serial.begin(115200); + + #if defined(CORE_STM32) + EEPROM.init(); + #endif + loadConfig(); + doUpdates(); //Check if any data items need updating (Occurs ith firmware updates) + +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 + if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } +#elif defined(CORE_STM32) + if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } + else if (configPage10.enable_canbus == 2) + { + //enable local can interface + } +#elif defined(CORE_TEENSY) + if (configPage10.enable_canbus == 1) { CANSerial.begin(115200); } + else if (configPage10.enable_canbus == 2) + { + //Teensy onboard CAN not used currently + //enable local can interface + //setup can interface to 250k + //FlexCAN CANbus0(2500000, 0); + //static CAN_message_t txmsg,rxmsg; + //CANbus0.begin(); + } +#endif + + //Repoint the 2D table structs to the config pages that were just loaded + taeTable.valueSize = SIZE_BYTE; //Set this table to use byte values + taeTable.xSize = 4; + taeTable.values = configPage2.taeValues; + taeTable.axisX = configPage2.taeBins; + WUETable.valueSize = SIZE_BYTE; //Set this table to use byte values + WUETable.xSize = 10; + WUETable.values = configPage1.wueValues; + WUETable.axisX = configPage2.wueBins; + crankingEnrichTable.valueSize = SIZE_BYTE; + crankingEnrichTable.xSize = 4; + crankingEnrichTable.values = configPage11.crankingEnrichValues; + crankingEnrichTable.axisX = configPage11.crankingEnrichBins; + + dwellVCorrectionTable.valueSize = SIZE_BYTE; + dwellVCorrectionTable.xSize = 6; + dwellVCorrectionTable.values = configPage2.dwellCorrectionValues; + dwellVCorrectionTable.axisX = configPage3.voltageCorrectionBins; + injectorVCorrectionTable.valueSize = SIZE_BYTE; + injectorVCorrectionTable.xSize = 6; + injectorVCorrectionTable.values = configPage3.injVoltageCorrectionValues; + injectorVCorrectionTable.axisX = configPage3.voltageCorrectionBins; + IATDensityCorrectionTable.valueSize = SIZE_BYTE; + IATDensityCorrectionTable.xSize = 9; + IATDensityCorrectionTable.values = configPage3.airDenRates; + IATDensityCorrectionTable.axisX = configPage3.airDenBins; + IATRetardTable.valueSize = SIZE_BYTE; + IATRetardTable.xSize = 6; + IATRetardTable.values = configPage2.iatRetValues; + IATRetardTable.axisX = configPage2.iatRetBins; + + //Setup the calibration tables + loadCalibration(); + + //Set the pin mappings + if(configPage1.pinMapping > BOARD_NR_GPIO_PINS) + { + //First time running on this board + setPinMapping(3); //Force board to v0.4 + configPage1.flexEnabled = false; //Have to disable flex. If this isn't done and the wrong flex pin is interrupt attached below, system can hang. + } + else { setPinMapping(configPage1.pinMapping); } + + //Need to check early on whether the coil charging is inverted. If this is not set straight away it can cause an unwanted spark at bootup + if(configPage2.IgInv == 1) { coilHIGH = LOW, coilLOW = HIGH; } + else { coilHIGH = HIGH, coilLOW = LOW; } + endCoil1Charge(); + endCoil2Charge(); + endCoil3Charge(); + endCoil4Charge(); + endCoil5Charge(); + + //Similar for injectors, make sure they're turned off + closeInjector1(); + closeInjector2(); + closeInjector3(); + closeInjector4(); + closeInjector5(); + + //Set the tacho output default state + digitalWrite(pinTachOut, HIGH); + + //Perform all initialisations + initialiseSchedulers(); + initialiseTimers(); + //initialiseDisplay(); + initialiseIdle(); + initialiseFan(); + initialiseAuxPWM(); + initialiseCorrections(); + initialiseADC(); + + //Lookup the current MAP reading for barometric pressure + instanteneousMAPReading(); + //barometric reading can be taken from either an external sensor if enabled, or simply by using the initial MAP value + if ( configPage3.useExtBaro != 0 ) + { + readBaro(); + EEPROM.update(EEPROM_LAST_BARO, currentStatus.baro); + } + else + { + /* + * The highest sea-level pressure on Earth occurs in Siberia, where the Siberian High often attains a sea-level pressure above 105 kPa; + * with record highs close to 108.5 kPa. + * The lowest measurable sea-level pressure is found at the centers of tropical cyclones and tornadoes, with a record low of 87 kPa; + */ + if ((currentStatus.MAP >= BARO_MIN) && (currentStatus.MAP <= BARO_MAX)) //Check if engine isn't running + { + currentStatus.baro = currentStatus.MAP; + EEPROM.update(EEPROM_LAST_BARO, currentStatus.baro); + } + else + { + //Attempt to use the last known good baro reading from EEPROM + if ((EEPROM.read(EEPROM_LAST_BARO) >= BARO_MIN) && (EEPROM.read(EEPROM_LAST_BARO) <= BARO_MAX)) //Make sure it's not invalid (Possible on first run etc) + { currentStatus.baro = EEPROM.read(EEPROM_LAST_BARO); } //last baro correction + else { currentStatus.baro = 100; } //Final fall back position. + } + } + + //Check whether the flex sensor is enabled and if so, attach an interupt for it + if(configPage1.flexEnabled) + { + attachInterrupt(digitalPinToInterrupt(pinFlex), flexPulse, RISING); + currentStatus.ethanolPct = 0; + } + + //Once the configs have been loaded, a number of one time calculations can be completed + req_fuel_uS = configPage1.reqFuel * 100; //Convert to uS and an int. This is the only variable to be used in calculations + inj_opentime_uS = configPage1.injOpen * 100; //Injector open time. Comes through as ms*10 (Eg 15.5ms = 155). + + //Begin the main crank trigger interrupt pin setup + //The interrupt numbering is a bit odd - See here for reference: http://arduino.cc/en/Reference/AttachInterrupt + //These assignments are based on the Arduino Mega AND VARY BETWEEN BOARDS. Please confirm the board you are using and update acordingly. + byte triggerInterrupt = 0; // By default, use the first interrupt + byte triggerInterrupt2 = 1; + currentStatus.RPM = 0; + currentStatus.hasSync = false; + currentStatus.runSecs = 0; + currentStatus.secl = 0; + currentStatus.startRevolutions = 0; + currentStatus.flatShiftingHard = false; + currentStatus.launchingHard = false; + triggerFilterTime = 0; //Trigger filter time is the shortest possible time (in uS) that there can be between crank teeth (ie at max RPM). Any pulses that occur faster than this time will be disgarded as noise. This is simply a default value, the actual values are set in the setup() functinos of each decoder + + #if defined(CORE_AVR) + switch (pinTrigger) { + //Arduino Mega 2560 mapping + case 2: + triggerInterrupt = 0; break; + case 3: + triggerInterrupt = 1; break; + case 18: + triggerInterrupt = 5; break; + case 19: + triggerInterrupt = 4; break; + case 20: + triggerInterrupt = 3; break; + case 21: + triggerInterrupt = 2; break; + default: + triggerInterrupt = 0; break; //This should NEVER happen + } + #else + triggerInterrupt = pinTrigger; + #endif + + #if defined(CORE_AVR) + switch (pinTrigger2) { + //Arduino Mega 2560 mapping + case 2: + triggerInterrupt2 = 0; break; + case 3: + triggerInterrupt2 = 1; break; + case 18: + triggerInterrupt2 = 5; break; + case 19: + triggerInterrupt2 = 4; break; + case 20: + triggerInterrupt2 = 3; break; + case 21: + triggerInterrupt2 = 2; break; + default: + triggerInterrupt2 = 0; break; //This should NEVER happen + } + #else + triggerInterrupt2 = pinTrigger2; + #endif + pinMode(pinTrigger, INPUT); + pinMode(pinTrigger2, INPUT); + pinMode(pinTrigger3, INPUT); + //digitalWrite(pinTrigger, HIGH); + + //Set the trigger function based on the decoder in the config + switch (configPage2.TrigPattern) + { + case 0: + //Missing tooth decoder + triggerSetup_missingTooth(); + trigger = triggerPri_missingTooth; + triggerSecondary = triggerSec_missingTooth; + getRPM = getRPM_missingTooth; + getCrankAngle = getCrankAngle_missingTooth; + triggerSetEndTeeth = triggerSetEndTeeth_missingTooth; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, RISING); } + else { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, FALLING); } + break; + + case 1: + // Basic distributor + triggerSetup_BasicDistributor(); + trigger = triggerPri_BasicDistributor; + getRPM = getRPM_BasicDistributor; + getCrankAngle = getCrankAngle_BasicDistributor; + triggerSetEndTeeth = triggerSetEndTeeth_BasicDistributor; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + break; + + case 2: + triggerSetup_DualWheel(); + trigger = triggerPri_DualWheel; + getRPM = getRPM_DualWheel; + getCrankAngle = getCrankAngle_DualWheel; + triggerSetEndTeeth = triggerSetEndTeeth_DualWheel; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, RISING); } + else { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); } + break; + + case 3: + triggerSetup_GM7X(); + trigger = triggerPri_GM7X; + getRPM = getRPM_GM7X; + getCrankAngle = getCrankAngle_GM7X; + triggerSetEndTeeth = triggerSetEndTeeth_GM7X; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + break; + + case 4: + triggerSetup_4G63(); + trigger = triggerPri_4G63; + getRPM = getRPM_4G63; + getCrankAngle = getCrankAngle_4G63; + triggerSetEndTeeth = triggerSetEndTeeth_4G63; + + //These may both need to change, not sure + if(configPage2.TrigEdge == 0) + { + attachInterrupt(triggerInterrupt, trigger, CHANGE); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + attachInterrupt(triggerInterrupt2, triggerSec_4G63, FALLING); //changed + } + else + { + attachInterrupt(triggerInterrupt, trigger, CHANGE); // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_4G63, FALLING); + } + break; + + case 5: + triggerSetup_24X(); + trigger = triggerPri_24X; + getRPM = getRPM_24X; + getCrankAngle = getCrankAngle_24X; + triggerSetEndTeeth = triggerSetEndTeeth_24X; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_24X, CHANGE); + break; + + case 6: + triggerSetup_Jeep2000(); + trigger = triggerPri_Jeep2000; + getRPM = getRPM_Jeep2000; + getCrankAngle = getCrankAngle_Jeep2000; + triggerSetEndTeeth = triggerSetEndTeeth_Jeep2000; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_Jeep2000, CHANGE); + break; + + case 7: + triggerSetup_Audi135(); + trigger = triggerPri_Audi135; + getRPM = getRPM_Audi135; + getCrankAngle = getCrankAngle_Audi135; + triggerSetEndTeeth = triggerSetEndTeeth_Audi135; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + attachInterrupt(triggerInterrupt2, triggerSec_Audi135, RISING); + break; + + case 8: + triggerSetup_HondaD17(); + trigger = triggerPri_HondaD17; + getRPM = getRPM_HondaD17; + getCrankAngle = getCrankAngle_HondaD17; + triggerSetEndTeeth = triggerSetEndTeeth_HondaD17; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_HondaD17, CHANGE); + break; + + case 9: + triggerSetup_Miata9905(); + trigger = triggerPri_Miata9905; + getRPM = getRPM_Miata9905; + getCrankAngle = getCrankAngle_Miata9905; + triggerSetEndTeeth = triggerSetEndTeeth_Miata9905; + + //These may both need to change, not sure + if(configPage2.TrigEdge == 0) + { + attachInterrupt(triggerInterrupt, trigger, RISING); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, FALLING); //changed + } + else + { + attachInterrupt(triggerInterrupt, trigger, FALLING); // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, RISING); + } + break; + + case 10: + triggerSetup_MazdaAU(); + trigger = triggerPri_MazdaAU; + getRPM = getRPM_MazdaAU; + getCrankAngle = getCrankAngle_MazdaAU; + triggerSetEndTeeth = triggerSetEndTeeth_MazdaAU; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_MazdaAU, FALLING); + break; + + case 11: + triggerSetup_non360(); + trigger = triggerPri_DualWheel; //Is identical to the dual wheel decoder, so that is used. Same goes for the secondary below + getRPM = getRPM_non360; + getCrankAngle = getCrankAngle_non360; + triggerSetEndTeeth = triggerSetEndTeeth_Non360; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); //Note the use of the Dual Wheel trigger function here. No point in having the same code in twice. + break; + + case 12: + triggerSetup_Nissan360(); + trigger = triggerPri_Nissan360; + getRPM = getRPM_Nissan360; + getCrankAngle = getCrankAngle_Nissan360; + triggerSetEndTeeth = triggerSetEndTeeth_Nissan360; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + attachInterrupt(triggerInterrupt2, triggerSec_Nissan360, CHANGE); + break; + + case 13: + triggerSetup_Subaru67(); + trigger = triggerPri_Subaru67; + getRPM = getRPM_Subaru67; + getCrankAngle = getCrankAngle_Subaru67; + triggerSetEndTeeth = triggerSetEndTeeth_Subaru67; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + attachInterrupt(triggerInterrupt2, triggerSec_Subaru67, FALLING); + break; + + case 14: + triggerSetup_Daihatsu(); + trigger = triggerPri_Daihatsu; + getRPM = getRPM_Daihatsu; + getCrankAngle = getCrankAngle_Daihatsu; + triggerSetEndTeeth = triggerSetEndTeeth_Daihatsu; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + //No secondary input required for this pattern + break; + + default: + trigger = triggerPri_missingTooth; + getRPM = getRPM_missingTooth; + getCrankAngle = getCrankAngle_missingTooth; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + break; + } + + //End crank triger interrupt attachment + + req_fuel_uS = req_fuel_uS / engineSquirtsPerCycle; //The req_fuel calculation above gives the total required fuel (At VE 100%) in the full cycle. If we're doing more than 1 squirt per cycle then we need to split the amount accordingly. (Note that in a non-sequential 4-stroke setup you cannot have less than 2 squirts as you cannot determine the stroke to make the single squirt on) + + //Initial values for loop times + previousLoopTime = 0; + currentLoopTime = micros(); + + mainLoopCount = 0; + ignitionCount = 0; + + //Calculate the number of degrees between cylinders + switch (configPage1.nCylinders) { + case 1: + channel1IgnDegrees = 0; + channel1InjDegrees = 0; + + channel1InjEnabled = true; + break; + + case 2: + channel1IgnDegrees = 0; + + if (configPage1.engineType == EVEN_FIRE ) + { + channel2IgnDegrees = 180; + } + else { channel2IgnDegrees = configPage1.oddfire2; } + + //For alternating injection, the squirt occurs at different times for each channel + if(configPage1.injLayout == INJ_SEMISEQUENTIAL) + { + channel1InjDegrees = 0; + channel2InjDegrees = channel2IgnDegrees; //Set to the same as the ignition degrees (Means there's no need for another if to check for oddfire) + } + if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = 0; } //For simultaneous, all squirts happen at the same time + + channel1InjEnabled = true; + channel2InjEnabled = true; + break; + + case 3: + channel1IgnDegrees = 0; + + if (configPage1.engineType == EVEN_FIRE ) + { + if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) + { + channel2IgnDegrees = 240; + channel3IgnDegrees = 480; + + CRANK_ANGLE_MAX_IGN = 720; + } + else + { + channel2IgnDegrees = 120; + channel3IgnDegrees = 240; + } + } + else + { + channel2IgnDegrees = configPage1.oddfire2; + channel3IgnDegrees = configPage1.oddfire3; + } + + //For alternatiing injection, the squirt occurs at different times for each channel + if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) + { + channel1InjDegrees = 0; + channel2InjDegrees = 120; + channel3InjDegrees = 240; + } + else if (configPage1.injLayout == INJ_SEQUENTIAL) + { + channel1InjDegrees = 0; + channel2InjDegrees = 240; + channel3InjDegrees = 480; + CRANK_ANGLE_MAX_INJ = 720; + req_fuel_uS = req_fuel_uS * 2; + } + if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = 0; } //For simultaneous, all squirts happen at the same time + + channel1InjEnabled = true; + channel2InjEnabled = true; + channel3InjEnabled = true; + break; + case 4: + channel1IgnDegrees = 0; + + if (configPage1.engineType == EVEN_FIRE ) + { + channel2IgnDegrees = 180; + + if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) + { + channel3IgnDegrees = 360; + channel4IgnDegrees = 540; + + CRANK_ANGLE_MAX_IGN = 720; + } + } + else + { + channel2IgnDegrees = configPage1.oddfire2; + channel3IgnDegrees = configPage1.oddfire3; + channel4IgnDegrees = configPage1.oddfire4; + } + + //For alternatiing injection, the squirt occurs at different times for each channel + if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) + { + channel1InjDegrees = 0; + channel2InjDegrees = 180; + } + else if (configPage1.injLayout == INJ_SEQUENTIAL) + { + channel1InjDegrees = 0; + channel2InjDegrees = 180; + channel3InjDegrees = 360; + channel4InjDegrees = 540; + + channel3InjEnabled = true; + channel4InjEnabled = true; + + CRANK_ANGLE_MAX_INJ = 720; + req_fuel_uS = req_fuel_uS * 2; + } + if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = 0; } //For simultaneous, all squirts happen at the same time + + channel1InjEnabled = true; + channel2InjEnabled = true; + break; + case 5: + channel1IgnDegrees = 0; + channel2IgnDegrees = 72; + channel3IgnDegrees = 144; + channel4IgnDegrees = 216; + channel5IgnDegrees = 288; + + if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) + { + channel2IgnDegrees = 144; + channel3IgnDegrees = 288; + channel4IgnDegrees = 432; + channel5IgnDegrees = 576; + + CRANK_ANGLE_MAX_IGN = 720; + } + + //For alternatiing injection, the squirt occurs at different times for each channel + if(configPage1.injLayout == INJ_SEMISEQUENTIAL || configPage1.injLayout == INJ_PAIRED) + { + channel1InjDegrees = 0; + channel2InjDegrees = 72; + channel3InjDegrees = 144; + channel4InjDegrees = 216; + channel5InjDegrees = 288; + } + else if (configPage1.injLayout == INJ_SEQUENTIAL) + { + channel1InjDegrees = 0; + channel2InjDegrees = 144; + channel3InjDegrees = 288; + channel4InjDegrees = 432; + channel5InjDegrees = 576; + + CRANK_ANGLE_MAX_INJ = 720; + } + if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = channel4InjDegrees = channel5InjDegrees = 0; } //For simultaneous, all squirts happen at the same time + + channel1InjEnabled = true; + channel2InjEnabled = true; + channel3InjEnabled = false; //this is disabled as injector 5 function calls 3 & 5 together + channel4InjEnabled = true; + channel5InjEnabled = true; + break; + case 6: + channel1IgnDegrees = 0; + channel1InjDegrees = 0; + channel2IgnDegrees = 120; + channel2InjDegrees = 120; + channel3IgnDegrees = 240; + channel3InjDegrees = 240; + + if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = 0; } //For simultaneous, all squirts happen at the same time + + configPage1.injLayout = 0; //This is a failsafe. We can never run semi-sequential with more than 4 cylinders + + channel1InjEnabled = true; + channel2InjEnabled = true; + channel3InjEnabled = true; + break; + case 8: + channel1IgnDegrees = channel1InjDegrees = 0; + channel2IgnDegrees = channel2InjDegrees = 90; + channel3IgnDegrees = channel3InjDegrees = 180; + channel4IgnDegrees = channel4InjDegrees = 270; + + if (!configPage1.injTiming) { channel1InjDegrees = channel2InjDegrees = channel3InjDegrees = channel4InjDegrees = 0; } //For simultaneous, all squirts happen at the same time + + configPage1.injLayout = 0; //This is a failsafe. We can never run semi-sequential with more than 4 cylinders + + channel1InjEnabled = true; + channel2InjEnabled = true; + channel3InjEnabled = true; + channel4InjEnabled = true; + break; + default: //Handle this better!!! + channel1InjDegrees = 0; + channel2InjDegrees = 180; + break; + } + + switch(configPage2.sparkMode) + { + case IGN_MODE_WASTED: + //Wasted Spark (Normal mode) + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil2Charge; + ign2EndFunction = endCoil2Charge; + ign3StartFunction = beginCoil3Charge; + ign3EndFunction = endCoil3Charge; + ign4StartFunction = beginCoil4Charge; + ign4EndFunction = endCoil4Charge; + ign5StartFunction = beginCoil5Charge; + ign5EndFunction = endCoil5Charge; + break; + + case IGN_MODE_SINGLE: + //Single channel mode. All ignition pulses are on channel 1 + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil1Charge; + ign2EndFunction = endCoil1Charge; + ign3StartFunction = beginCoil1Charge; + ign3EndFunction = endCoil1Charge; + ign4StartFunction = beginCoil1Charge; + ign4EndFunction = endCoil1Charge; + ign5StartFunction = beginCoil1Charge; + ign5EndFunction = endCoil1Charge; + break; + + case IGN_MODE_WASTEDCOP: + //Wasted COP mode. Ignition channels 1&3 and 2&4 are paired together + //This is not a valid mode for >4 cylinders + if( configPage1.nCylinders <= 4 ) + { + ign1StartFunction = beginCoil1and3Charge; + ign1EndFunction = endCoil1and3Charge; + ign2StartFunction = beginCoil2and4Charge; + ign2EndFunction = endCoil2and4Charge; + + ign3StartFunction = nullCallback; + ign3EndFunction = nullCallback; + ign4StartFunction = nullCallback; + ign4EndFunction = nullCallback; + } + else + { + //If the person has inadvertantly selected this when running more than 4 cylinders, just use standard Wasted spark mode + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil2Charge; + ign2EndFunction = endCoil2Charge; + ign3StartFunction = beginCoil3Charge; + ign3EndFunction = endCoil3Charge; + ign4StartFunction = beginCoil4Charge; + ign4EndFunction = endCoil4Charge; + ign5StartFunction = beginCoil5Charge; + ign5EndFunction = endCoil5Charge; + } + break; + + case IGN_MODE_SEQUENTIAL: + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil2Charge; + ign2EndFunction = endCoil2Charge; + ign3StartFunction = beginCoil3Charge; + ign3EndFunction = endCoil3Charge; + ign4StartFunction = beginCoil4Charge; + ign4EndFunction = endCoil4Charge; + ign5StartFunction = beginCoil5Charge; + ign5EndFunction = endCoil5Charge; + break; + + default: + //Wasted spark (Shouldn't ever happen anyway) + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil2Charge; + ign2EndFunction = endCoil2Charge; + ign3StartFunction = beginCoil3Charge; + ign3EndFunction = endCoil3Charge; + ign4StartFunction = beginCoil4Charge; + ign4EndFunction = endCoil4Charge; + ign5StartFunction = beginCoil5Charge; + ign5EndFunction = endCoil5Charge; + break; + } + + //Begin priming the fuel pump. This is turned off in the low resolution, 1s interrupt in timers.ino + digitalWrite(pinFuelPump, HIGH); + fuelPumpOn = true; + //Perform the priming pulses. Set these to run at an arbitrary time in the future (100us). The prime pulse value is in ms*10, so need to multiple by 100 to get to uS + setFuelSchedule1(100, (unsigned long)(configPage1.primePulse * 100)); + setFuelSchedule2(100, (unsigned long)(configPage1.primePulse * 100)); + setFuelSchedule3(100, (unsigned long)(configPage1.primePulse * 100)); + setFuelSchedule4(100, (unsigned long)(configPage1.primePulse * 100)); + + initialisationComplete = true; +} + +void loop() +{ + mainLoopCount++; + LOOP_TIMER = TIMER_mask; + //Check for any requets from serial. Serial operations are checked under 2 scenarios: + // 1) Every 64 loops (64 Is more than fast enough for TunerStudio). This function is equivalent to ((loopCount % 64) == 1) but is considerably faster due to not using the mod or division operations + // 2) If the amount of data in the serial buffer is greater than a set threhold (See globals.h). This is to avoid serial buffer overflow when large amounts of data is being sent + if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ) or (Serial.available() > SERIAL_BUFFER_THRESHOLD) ) + { + if (Serial.available() > 0) + { + command(); + } + } + +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 + //if serial3 interface is enabled then check for serial3 requests. + if (configPage10.enable_canbus == 1) + { + if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) + { + if (CANSerial.available() > 0) + { + canCommand(); + } + } + } + +#elif defined(CORE_STM32) + //if can or secondary serial interface is enabled then check for requests. + if (configPage10.enable_canbus == 1) //secondary serial interface enabled + { + if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) + { + if (CANSerial.available() > 0) + { + canCommand(); + } + } + } + else if (configPage10.enable_canbus == 2) // can module enabled + { + //check local can module + } +#elif defined(CORE_TEENSY) + //if can or secondary serial interface is enabled then check for requests. + if (configPage10.enable_canbus == 1) //secondary serial interface enabled + { + if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ) or (CANSerial.available() > SERIAL_BUFFER_THRESHOLD) ) + { + if (CANSerial.available() > 0) + { + canCommand(); + } + } + } + else if (configPage10.enable_canbus == 2) // can module enabled + { + //check local can module + // if ( ((mainLoopCount & 31) == 1) or (CANbus0.available()) + // { + // CANbus0.read(rx_msg); + // } + } +#endif + + //Displays currently disabled + // if (configPage1.displayType && (mainLoopCount & 255) == 1) { updateDisplay();} + + previousLoopTime = currentLoopTime; + currentLoopTime = micros(); + unsigned long timeToLastTooth = (currentLoopTime - toothLastToothTime); + if ( (timeToLastTooth < MAX_STALL_TIME) || (toothLastToothTime > currentLoopTime) ) //Check how long ago the last tooth was seen compared to now. If it was more than half a second ago then the engine is probably stopped. toothLastToothTime can be greater than currentLoopTime if a pulse occurs between getting the lastest time and doing the comparison + { + currentStatus.RPM = currentStatus.longRPM = getRPM(); //Long RPM is included here + FUEL_PUMP_ON(); + fuelPumpOn = true; //Not sure if this is needed. + } + else + { + //We reach here if the time between teeth is too great. This VERY likely means the engine has stopped + currentStatus.RPM = 0; + currentStatus.PW1 = 0; + currentStatus.VE = 0; + toothLastToothTime = 0; + //toothLastMinusOneToothTime = 0; + currentStatus.hasSync = false; + currentStatus.runSecs = 0; //Reset the counter for number of seconds running. + secCounter = 0; //Reset our seconds counter. + currentStatus.startRevolutions = 0; + toothSystemCount = 0; + MAPcurRev = 0; + MAPcount = 0; + currentStatus.rpmDOT = 0; + ignitionOn = false; + fuelOn = false; + if (fpPrimed) { digitalWrite(pinFuelPump, LOW); } //Turn off the fuel pump, but only if the priming is complete + fuelPumpOn = false; + disableIdle(); //Turn off the idle PWM + BIT_CLEAR(currentStatus.engine, BIT_ENGINE_CRANK); //Clear cranking bit (Can otherwise get stuck 'on' even with 0 rpm) + BIT_CLEAR(currentStatus.engine, BIT_ENGINE_WARMUP); //Same as above except for WUE + } + + //Uncomment the following for testing + /* + currentStatus.hasSync = true; + currentStatus.RPM = 500; + */ + + //***Perform sensor reads*** + //----------------------------------------------------------------------------------------------------- + readMAP(); + + if ( BIT_CHECK(LOOP_TIMER, BIT_TIMER_15HZ)) + { + BIT_CLEAR(TIMER_mask, BIT_TIMER_15HZ); + readTPS(); //TPS reading to be performed every 32 loops (any faster and it can upset the TPSdot sampling time) + + //Check for launching/flat shift (clutch) can be done around here too + previousClutchTrigger = clutchTrigger; + if(configPage3.launchHiLo) { clutchTrigger = digitalRead(pinLaunch); } + else { clutchTrigger = !digitalRead(pinLaunch); } + + if(previousClutchTrigger != clutchTrigger) { currentStatus.clutchEngagedRPM = currentStatus.RPM; } + + if (configPage3.launchEnabled && clutchTrigger && (currentStatus.clutchEngagedRPM < ((unsigned int)(configPage3.flatSArm) * 100)) && (currentStatus.RPM > ((unsigned int)(configPage3.lnchHardLim) * 100)) ) { currentStatus.launchingHard = true; BIT_SET(currentStatus.spark, BIT_SPARK_HLAUNCH); } //HardCut rev limit for 2-step launch control. + else { currentStatus.launchingHard = false; BIT_CLEAR(currentStatus.spark, BIT_SPARK_HLAUNCH); } + + if(configPage3.flatSEnable && clutchTrigger && (currentStatus.RPM > ((unsigned int)(configPage3.flatSArm) * 100)) && (currentStatus.RPM > currentStatus.clutchEngagedRPM) ) { currentStatus.flatShiftingHard = true; } + else { currentStatus.flatShiftingHard = false; } + + //Boost cutoff is very similar to launchControl, but with a check against MAP rather than a switch + if(configPage3.boostCutType && currentStatus.MAP > (configPage3.boostLimit * 2) ) //The boost limit is divided by 2 to allow a limit up to 511kPa + { + switch(configPage3.boostCutType) + { + case 1: + BIT_SET(currentStatus.spark, BIT_SPARK_BOOSTCUT); + BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); + break; + case 2: + BIT_SET(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); + BIT_CLEAR(currentStatus.spark, BIT_SPARK_BOOSTCUT); + break; + case 3: + BIT_SET(currentStatus.spark, BIT_SPARK_BOOSTCUT); + BIT_SET(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); + break; + } + } + else + { + BIT_CLEAR(currentStatus.spark, BIT_SPARK_BOOSTCUT); + BIT_CLEAR(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT); + } + + //And check whether the tooth log buffer is ready + if(toothHistoryIndex > TOOTH_LOG_SIZE) { BIT_SET(currentStatus.squirt, BIT_SQUIRT_TOOTHLOG1READY); } + + //Most boost tends to run at about 30Hz, so placing it here ensures a new target time is fetched frequently enough + boostControl(); + } + if(BIT_CHECK(LOOP_TIMER, BIT_TIMER_30HZ)) //Every 64 loops + { + //Nothing here currently + BIT_CLEAR(TIMER_mask, BIT_TIMER_30HZ); + } + //The IAT and CLT readings can be done less frequently. This still runs about 4 times per second + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_4HZ)) //Every 256 loops + { + BIT_CLEAR(TIMER_mask, BIT_TIMER_4HZ); + readCLT(); + readIAT(); + readO2(); + readBat(); +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 + //if Can interface is enabled then check for serial3 requests. + if (configPage10.enable_canbus == 1) // megas only support can via secondary serial + { + if (configPage10.enable_candata_in) + { + if (BIT_CHECK(configPage10.caninput_sel,currentStatus.current_caninchannel)) //if current input channel bit is enabled + { + sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage10.caninput_param_group[currentStatus.current_caninchannel]&2047)+256)); //send an R command for data from paramgroup[currentStatus.current_caninchannel] + } + else + { + if (currentStatus.current_caninchannel < 15) + { + currentStatus.current_caninchannel++; //step to next input channel if under 15 + } + else + { + currentStatus.current_caninchannel = 0; //reset input channel back to 1 + } + } + } + } +#elif defined(CORE_STM32) || defined(CORE_TEENSY) + //if serial3io is enabled then check for serial3 requests. + if (configPage10.enable_candata_in) + { + if (BIT_CHECK(configPage10.caninput_sel,currentStatus.current_caninchannel)) //if current input channel is enabled + { + if (configPage10.enable_canbus == 1) //can via secondary serial + { + sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage10.caninput_param_group[currentStatus.current_caninchannel]&2047)+256)); //send an R command for data from paramgroup[currentStatus.current_caninchannel] + } + else if (configPage10.enable_canbus == 2) // can via internal can module + { + sendCancommand(3,configPage10.speeduino_tsCanId,currentStatus.current_caninchannel,0,configPage10.caninput_param_group[currentStatus.current_caninchannel]); //send via localcanbus the command for data from paramgroup[currentStatus.current_caninchannel] + } + } + else + { + if (currentStatus.current_caninchannel < 15) + { + currentStatus.current_caninchannel++; //step to next input channel if under 15 + } + else + { + currentStatus.current_caninchannel = 0; //reset input channel back to 0 + } + } + } + +#endif + vvtControl(); + idleControl(); //Perform any idle related actions. Even at higher frequencies, running 4x per second is sufficient. + } + if (BIT_CHECK(LOOP_TIMER, BIT_TIMER_1HZ)) //Every 1024 loops (Approx. 1 per second) + { + //Approx. once per second + BIT_CLEAR(TIMER_mask, BIT_TIMER_1HZ); + readBaro(); + } + + if(configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_OL || configPage4.iacAlgorithm == IAC_ALGORITHM_STEP_CL) { idleControl(); } //Run idlecontrol every loop for stepper idle. + + //Always check for sync + //Main loop runs within this clause + if (currentStatus.hasSync && (currentStatus.RPM > 0)) + { + if(currentStatus.startRevolutions >= configPage2.StgCycles) { ignitionOn = true; fuelOn = true;} //Enable the fuel and ignition, assuming staging revolutions are complete + //If it is, check is we're running or cranking + if(currentStatus.RPM > ((unsigned int)configPage2.crankRPM * 100)) //Crank RPM stored in byte as RPM / 100 + { + BIT_SET(currentStatus.engine, BIT_ENGINE_RUN); //Sets the engine running bit + //Only need to do anything if we're transitioning from cranking to running + if( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) + { + BIT_CLEAR(currentStatus.engine, BIT_ENGINE_CRANK); //clears the engine cranking bit + if(configPage2.ignBypassEnabled) { digitalWrite(pinIgnBypass, HIGH); } + } + } + else + { //Sets the engine cranking bit, clears the engine running bit + BIT_SET(currentStatus.engine, BIT_ENGINE_CRANK); + BIT_CLEAR(currentStatus.engine, BIT_ENGINE_RUN); + currentStatus.runSecs = 0; //We're cranking (hopefully), so reset the engine run time to prompt ASE. + if(configPage2.ignBypassEnabled) { digitalWrite(pinIgnBypass, LOW); } + } + //END SETTING STATUSES + //----------------------------------------------------------------------------------------------------- + + //Begin the fuel calculation + //Calculate an injector pulsewidth from the VE + currentStatus.corrections = correctionsFuel(); + lastAdvance = currentStatus.advance; //Store the previous advance value + if (configPage1.algorithm == 0) //Check which fuelling algorithm is being used + { + //Speed Density + currentStatus.VE = get3DTableValue(&fuelTable, currentStatus.MAP, currentStatus.RPM); //Perform lookup into fuel map for RPM vs MAP value + currentStatus.PW1 = PW_SD(req_fuel_uS, currentStatus.VE, currentStatus.MAP, currentStatus.corrections, inj_opentime_uS); + currentStatus.advance = get3DTableValue(&ignitionTable, currentStatus.MAP, currentStatus.RPM) - OFFSET_IGNITION; //As above, but for ignition advance + } + else + { + //Alpha-N + currentStatus.VE = get3DTableValue(&fuelTable, currentStatus.TPS, currentStatus.RPM); //Perform lookup into fuel map for RPM vs TPS value + currentStatus.PW1 = PW_AN(req_fuel_uS, currentStatus.VE, currentStatus.TPS, currentStatus.corrections, inj_opentime_uS); //Calculate pulsewidth using the Alpha-N algorithm (in uS) + currentStatus.advance = get3DTableValue(&ignitionTable, currentStatus.TPS, currentStatus.RPM) - OFFSET_IGNITION; //As above, but for ignition advance + } + + currentStatus.advance = correctionsIgn(currentStatus.advance); + + int injector1StartAngle = 0; + int injector2StartAngle = 0; + int injector3StartAngle = 0; //Currently used for 3 cylinder only + int injector4StartAngle = 0; //Not used until sequential gets written + int injector5StartAngle = 0; //For 5 cylinder testing + int ignition1StartAngle = 0; + int ignition2StartAngle = 0; + int ignition3StartAngle = 0; //Currently used for 3 cylinder only + int ignition4StartAngle = 0; //Not used until sequential or 4+ cylinders support gets written + int ignition5StartAngle = 0; //Not used until sequential or 4+ cylinders support gets written + //These are used for comparisons on channels above 1 where the starting angle (for injectors or ignition) can be less than a single loop time + //(Don't ask why this is needed, it will break your head) + int tempCrankAngle; + int tempStartAngle; + + //******************************************************** + //How fast are we going? Need to know how long (uS) it will take to get from one tooth to the next. We then use that to estimate how far we are between the last tooth and the next one + //We use a 1st Deriv accleration prediction, but only when there is an even spacing between primary sensor teeth + //Any decoder that has uneven spacing has its triggerToothAngle set to 0 + if(secondDerivEnabled && toothHistoryIndex >= 3 && currentStatus.RPM < 2000) //toothHistoryIndex must be greater than or equal to 3 as we need the last 3 entries. Currently this mode only runs below 3000 rpm + //if(true) + { + //Only recalculate deltaV if the tooth has changed since last time (DeltaV stays the same until the next tooth) + //if (deltaToothCount != toothCurrentCount) + { + deltaToothCount = toothCurrentCount; + int angle1, angle2; //These represent the crank angles that are travelled for the last 2 pulses + if(configPage2.TrigPattern == 4) + { + //Special case for 70/110 pattern on 4g63 + angle2 = triggerToothAngle; //Angle 2 is the most recent + if (angle2 == 70) { angle1 = 110; } + else { angle1 = 70; } + } + else if(configPage2.TrigPattern == 0) + { + //Special case for missing tooth decoder where the missing tooth was one of the last 2 seen + if(toothCurrentCount == 1) { angle2 = 2*triggerToothAngle; angle1 = triggerToothAngle; } + else if(toothCurrentCount == 2) { angle1 = 2*triggerToothAngle; angle2 = triggerToothAngle; } + else { angle1 = angle2 = triggerToothAngle; } + } + else { angle1 = angle2 = triggerToothAngle; } + + long toothDeltaV = (1000000L * angle2 / toothHistory[toothHistoryIndex]) - (1000000L * angle1 / toothHistory[toothHistoryIndex-1]); + long toothDeltaT = toothHistory[toothHistoryIndex]; + //long timeToLastTooth = micros() - toothLastToothTime; + + rpmDelta = (toothDeltaV << 10) / (6 * toothDeltaT); + } + + + timePerDegree = ldiv( 166666L, (currentStatus.RPM + rpmDelta)).quot; //There is a small amount of rounding in this calculation, however it is less than 0.001 of a uS (Faster as ldiv than / ) + } + else + { + long rpm_adjust = ((long)(micros() - toothOneTime) * (long)currentStatus.rpmDOT) / 1000000; //Take into account any likely accleration that has occurred since the last full revolution completed + + //timePerDegree = DIV_ROUND_CLOSEST(166666L, (currentStatus.RPM + rpm_adjust)); + timePerDegree = ldiv( 166666L, currentStatus.RPM + rpm_adjust).quot; //There is a small amount of rounding in this calculation, however it is less than 0.001 of a uS (Faster as ldiv than / ) + } + + //Check that the duty cycle of the chosen pulsewidth isn't too high. This is disabled at cranking + if( !BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) + { + unsigned long pwLimit = percentage(configPage1.dutyLim, revolutionTime); //The pulsewidth limit is determined to be the duty cycle limit (Eg 85%) by the total time it takes to perform 1 revolution + if (CRANK_ANGLE_MAX_INJ == 720) { pwLimit = pwLimit * 2; } //For sequential, the maximum pulse time is double (2 revolutions). Wouldn't work for 2 stroke... + if (currentStatus.PW1 > pwLimit) { currentStatus.PW1 = pwLimit; } + } + + + //*********************************************************************************************** + //BEGIN INJECTION TIMING + //Determine next firing angles + currentStatus.PW2 = currentStatus.PW3 = currentStatus.PW4 = currentStatus.PW1; // Initial state is for all pulsewidths to be the same (This gets changed below) + if(!configPage1.indInjAng) {configPage1.inj4Ang = configPage1.inj3Ang = configPage1.inj2Ang = configPage1.inj1Ang;} //Forcing all injector close angles to be the same. + int PWdivTimerPerDegree = div(currentStatus.PW1, timePerDegree).quot; //How many crank degrees the calculated PW will take at the current speed + injector1StartAngle = configPage1.inj1Ang - ( PWdivTimerPerDegree ); //This is a little primitive, but is based on the idea that all fuel needs to be delivered before the inlet valve opens. See http://www.extraefi.co.uk/sequential_fuel.html for more detail + if(injector1StartAngle < 0) {injector1StartAngle += CRANK_ANGLE_MAX_INJ;} + + //Repeat the above for each cylinder + switch (configPage1.nCylinders) + { + //2 cylinders + case 2: + injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); + if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + break; + //3 cylinders + case 3: + injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); + if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); + if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} + break; + //4 cylinders + case 4: + injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); + if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + + if(configPage1.injLayout == INJ_SEQUENTIAL) + { + injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); + if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); + if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} + + if(configPage3.fuelTrimEnabled) + { + unsigned long pw1percent = 100 + (byte)get3DTableValue(&trim1Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; + unsigned long pw2percent = 100 + (byte)get3DTableValue(&trim2Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; + unsigned long pw3percent = 100 + (byte)get3DTableValue(&trim3Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; + unsigned long pw4percent = 100 + (byte)get3DTableValue(&trim4Table, currentStatus.MAP, currentStatus.RPM) - OFFSET_FUELTRIM; + + if (pw1percent != 100) { currentStatus.PW1 = (pw1percent * currentStatus.PW1) / 100; } + if (pw2percent != 100) { currentStatus.PW2 = (pw2percent * currentStatus.PW2) / 100; } + if (pw3percent != 100) { currentStatus.PW3 = (pw3percent * currentStatus.PW3) / 100; } + if (pw4percent != 100) { currentStatus.PW4 = (pw4percent * currentStatus.PW4) / 100; } + } + } + break; + //5 cylinders + case 5: + injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); + if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); + if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); + if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector5StartAngle = (configPage1.inj1Ang + channel5InjDegrees - ( PWdivTimerPerDegree )); + if(injector5StartAngle > CRANK_ANGLE_MAX_INJ) {injector5StartAngle -= CRANK_ANGLE_MAX_INJ;} + break; + //6 cylinders + case 6: + injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); + if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); + if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} + break; + //8 cylinders + case 8: + injector2StartAngle = (configPage1.inj2Ang + channel2InjDegrees - ( PWdivTimerPerDegree )); + if(injector2StartAngle > CRANK_ANGLE_MAX_INJ) {injector2StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector3StartAngle = (configPage1.inj3Ang + channel3InjDegrees - ( PWdivTimerPerDegree )); + if(injector3StartAngle > CRANK_ANGLE_MAX_INJ) {injector3StartAngle -= CRANK_ANGLE_MAX_INJ;} + injector4StartAngle = (configPage1.inj4Ang + channel4InjDegrees - ( PWdivTimerPerDegree )); + if(injector4StartAngle > CRANK_ANGLE_MAX_INJ) {injector4StartAngle -= CRANK_ANGLE_MAX_INJ;} + break; + //Will hit the default case on 1 cylinder or >8 cylinders. Do nothing in these cases + default: + break; + } + + //*********************************************************************************************** + //| BEGIN IGNITION CALCULATIONS + BIT_CLEAR(currentStatus.spark, BIT_SPARK_HRDLIM); + if (currentStatus.RPM > ((unsigned int)(configPage2.HardRevLim) * 100) ) { BIT_SET(currentStatus.spark, BIT_SPARK_HRDLIM); } //Hardcut RPM limit + + + //Set dwell + //Dwell is stored as ms * 10. ie Dwell of 4.3ms would be 43 in configPage2. This number therefore needs to be multiplied by 100 to get dwell in uS + if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { currentStatus.dwell = (configPage2.dwellCrank * 100); } + else { currentStatus.dwell = (configPage2.dwellRun * 100); } + currentStatus.dwell = correctionsDwell(currentStatus.dwell); + + int dwellAngle = (div(currentStatus.dwell, timePerDegree).quot ); //Convert the dwell time to dwell angle based on the current engine speed + + //Calculate start angle for each channel + //1 cylinder (Everyone gets this) + ignition1EndAngle = CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition1StartAngle = ignition1EndAngle - dwellAngle; // 360 - desired advance angle - number of degrees the dwell will take + if(ignition1StartAngle < 0) {ignition1StartAngle += CRANK_ANGLE_MAX_IGN;} + + //This test for more cylinders and do the same thing + switch (configPage1.nCylinders) + { + //2 cylinders + case 2: + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + break; + //3 cylinders + case 3: + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = channel3IgnDegrees + 360 - currentStatus.advance - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + break; + //4 cylinders + case 4: + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} + + if(configPage2.sparkMode == IGN_MODE_SEQUENTIAL) + { + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = ignition3EndAngle - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition4StartAngle = ignition4EndAngle - dwellAngle; + if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} + } + break; + //5 cylinders + case 5: + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + if(ignition2StartAngle < 0) {ignition2StartAngle += CRANK_ANGLE_MAX_IGN;} + + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = ignition3EndAngle - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition4StartAngle = ignition4EndAngle - dwellAngle; + if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition5StartAngle = channel5IgnDegrees + CRANK_ANGLE_MAX - currentStatus.advance - dwellAngle; + if(ignition5StartAngle > CRANK_ANGLE_MAX_IGN) {ignition5StartAngle -= CRANK_ANGLE_MAX_IGN;} + + break; + //6 cylinders + case 6: + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = ignition3EndAngle - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + break; + //8 cylinders + case 8: + ignition2EndAngle = channel2IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition2StartAngle = ignition2EndAngle - dwellAngle; + if(ignition2StartAngle > CRANK_ANGLE_MAX_IGN) {ignition2StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition3EndAngle = channel3IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition3StartAngle = ignition3EndAngle - dwellAngle; + if(ignition3StartAngle > CRANK_ANGLE_MAX_IGN) {ignition3StartAngle -= CRANK_ANGLE_MAX_IGN;} + + ignition4EndAngle = channel4IgnDegrees + CRANK_ANGLE_MAX_IGN - currentStatus.advance; + ignition4StartAngle = ignition4EndAngle - dwellAngle; + if(ignition4StartAngle > CRANK_ANGLE_MAX_IGN) {ignition4StartAngle -= CRANK_ANGLE_MAX_IGN;} + break; + + //Will hit the default case on 1 cylinder or >8 cylinders. Do nothing in these cases + default: + break; + } + //If ignition timing is being tracked per tooth, perform the calcs to get the end teeth + //This only needs to be run if the advance figure has changed, otherwise the end teeth will still be the same + if( (configPage1.perToothIgn == true) && (lastAdvance != currentStatus.advance) ) { triggerSetEndTeeth(); } + + //*********************************************************************************************** + //| BEGIN FUEL SCHEDULES + //Finally calculate the time (uS) until we reach the firing angles and set the schedules + //We only need to set the shcedule if we're BEFORE the open angle + //This may potentially be called a number of times as we get closer and closer to the opening time + + //Determine the current crank angle + int crankAngle = getCrankAngle(timePerDegree); + if (crankAngle > CRANK_ANGLE_MAX_INJ ) { crankAngle -= 360; } + + if (fuelOn && currentStatus.PW1 > 0 && !BIT_CHECK(currentStatus.squirt, BIT_SQUIRT_BOOSTCUT)) + { + if ( (injector1StartAngle <= crankAngle) && (fuelSchedule1.Status == RUNNING) ) { injector1StartAngle += CRANK_ANGLE_MAX_INJ; } + if (injector1StartAngle > crankAngle) + { + setFuelSchedule1( + ((unsigned long)(injector1StartAngle - crankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW1 + ); + } + + /*----------------------------------------------------------------------------------------- + | A Note on tempCrankAngle and tempStartAngle: + | The use of tempCrankAngle/tempStartAngle is described below. It is then used in the same way for channels 2, 3 and 4 on both injectors and ignition + | Essentially, these 2 variables are used to realign the current crank angle and the desired start angle around 0 degrees for the given cylinder/output + | Eg: If cylinder 2 TDC is 180 degrees after cylinder 1 (Eg a standard 4 cylidner engine), then tempCrankAngle is 180* less than the current crank angle and + | tempStartAngle is the desired open time less 180*. Thus the cylinder is being treated relative to its own TDC, regardless of its offset + | + | This is done to avoid problems with very short of very long times until tempStartAngle. + | This will very likely need to be rewritten when sequential is enabled + |------------------------------------------------------------------------------------------ + */ + if(channel2InjEnabled) + { + tempCrankAngle = crankAngle - channel2InjDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } + tempStartAngle = injector2StartAngle - channel2InjDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule2.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( tempStartAngle > tempCrankAngle ) + { + setFuelSchedule2( + ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW2 + ); + } + } + + if(channel3InjEnabled) + { + tempCrankAngle = crankAngle - channel3InjDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } + tempStartAngle = injector3StartAngle - channel3InjDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule3.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( tempStartAngle > tempCrankAngle ) + { + setFuelSchedule3( + ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW3 + ); + } + } + + if(channel4InjEnabled) + { + tempCrankAngle = crankAngle - channel4InjDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } + tempStartAngle = injector4StartAngle - channel4InjDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( (tempStartAngle <= tempCrankAngle) && (fuelSchedule4.Status == RUNNING) ) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( tempStartAngle > tempCrankAngle ) + { + setFuelSchedule4( + ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW4 + ); + } + } + + if(channel5InjEnabled) + { + tempCrankAngle = crankAngle - channel5InjDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_INJ; } + tempStartAngle = injector5StartAngle - channel5InjDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if (tempStartAngle <= tempCrankAngle && fuelSchedule5.schedulesSet == 0) { tempStartAngle += CRANK_ANGLE_MAX_INJ; } + if ( tempStartAngle > tempCrankAngle ) + { + //Note the hacky use of fuel schedule 3 below + /* + setFuelSchedule3(openInjector3and5, + ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW1, + closeInjector3and5 + );*/ + setFuelSchedule3( + ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree), + (unsigned long)currentStatus.PW1 + ); + } + } + } + //*********************************************************************************************** + //| BEGIN IGNITION SCHEDULES + //Likewise for the ignition + + //fixedCrankingOverride is used to extend the dwell during cranking so that the decoder can trigger the spark upon seeing a certain tooth. Currently only available on the basic distributor and 4g63 decoders. + if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) { fixedCrankingOverride = currentStatus.dwell * 2; } + else { fixedCrankingOverride = 0; } + + //Perform an initial check to see if the ignition is turned on (Ignition only turns on after a preset number of cranking revolutions and: + //Check for hard cut rev limit (If we're above the hardcut limit, we simply don't set a spark schedule) + if(ignitionOn && !currentStatus.launchingHard && !BIT_CHECK(currentStatus.spark, BIT_SPARK_BOOSTCUT) && !BIT_CHECK(currentStatus.spark, BIT_SPARK_HRDLIM) && !currentStatus.flatShiftingHard) + { + + //Refresh the current crank angle info + //ignition1StartAngle = 335; + crankAngle = getCrankAngle(timePerDegree); //Refresh with the latest crank angle + if (crankAngle > CRANK_ANGLE_MAX_IGN ) { crankAngle -= 360; } + + //if (ignition1StartAngle <= crankAngle && ignition1.schedulesSet == 0) { ignition1StartAngle += CRANK_ANGLE_MAX_IGN; } + if (ignition1StartAngle > crankAngle) + { + /* + long some_time = ((unsigned long)(ignition1StartAngle - crankAngle) * (unsigned long)timePerDegree); + long newRPM = (long)(some_time * currentStatus.rpmDOT) / 1000000L; + newRPM = currentStatus.RPM + (newRPM/2); + unsigned long timePerDegree_1 = ldiv( 166666L, newRPM).quot; + unsigned long timeout = (unsigned long)(ignition1StartAngle - crankAngle) * 282UL; + */ + setIgnitionSchedule1(ign1StartFunction, + ((unsigned long)(ignition1StartAngle - crankAngle) * (unsigned long)timePerDegree), //(timeout/10), + currentStatus.dwell + fixedCrankingOverride, //((unsigned long)((unsigned long)currentStatus.dwell* currentStatus.RPM) / newRPM) + fixedCrankingOverride, + ign1EndFunction + ); + } + + tempCrankAngle = crankAngle - channel2IgnDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } + tempStartAngle = ignition2StartAngle - channel2IgnDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } + //if ( (tempStartAngle > tempCrankAngle) && ign2LastRev != startRevolutions) + //if ( ign2LastRev != startRevolutions ) + { + unsigned long ignition2StartTime = 0; + if(tempStartAngle > tempCrankAngle) { ignition2StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } + //else if (tempStartAngle < tempCrankAngle) { ignition2StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } + else { ignition2StartTime = 0; } + + if(ignition2StartTime > 0) { + setIgnitionSchedule2(ign2StartFunction, + ignition2StartTime, + currentStatus.dwell + fixedCrankingOverride, + ign2EndFunction + ); + } + } + + tempCrankAngle = crankAngle - channel3IgnDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } + tempStartAngle = ignition3StartAngle - channel3IgnDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } + //if (tempStartAngle > tempCrankAngle) + { + long ignition3StartTime = 0; + if(tempStartAngle > tempCrankAngle) { ignition3StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } + //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } + else { ignition3StartTime = 0; } + + if(ignition3StartTime > 0) { + setIgnitionSchedule3(ign3StartFunction, + ignition3StartTime, + currentStatus.dwell + fixedCrankingOverride, + ign3EndFunction + ); + } + } + + tempCrankAngle = crankAngle - channel4IgnDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } + tempStartAngle = ignition4StartAngle - channel4IgnDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } + //if (tempStartAngle > tempCrankAngle) + { + + long ignition4StartTime = 0; + if(tempStartAngle > tempCrankAngle) { ignition4StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } + //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } + else { ignition4StartTime = 0; } + + if(ignition4StartTime > 0) { + setIgnitionSchedule4(ign4StartFunction, + ignition4StartTime, + currentStatus.dwell + fixedCrankingOverride, + ign4EndFunction + ); + } + } + + tempCrankAngle = crankAngle - channel5IgnDegrees; + if( tempCrankAngle < 0) { tempCrankAngle += CRANK_ANGLE_MAX_IGN; } + tempStartAngle = ignition5StartAngle - channel5IgnDegrees; + if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } + //if (tempStartAngle > tempCrankAngle) + { + + long ignition5StartTime = 0; + if(tempStartAngle > tempCrankAngle) { ignition5StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } + //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } + else { ignition5StartTime = 0; } + + if(ignition5StartTime > 0) { + setIgnitionSchedule5(ign5StartFunction, + ignition5StartTime, + currentStatus.dwell + fixedCrankingOverride, + ign5EndFunction + ); + } + } + } //Ignition schedules on + } //Has sync and RPM } //loop() From 692cb68cf18aa397317cb1aa96545246c5d9a3e5 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Wed, 9 Aug 2017 10:37:53 +1000 Subject: [PATCH 060/133] Better locked ignition timing during cranking --- speeduino/speeduino.ino | 2 +- speeduino/timers.ino | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index e377bfe6..a73bf0e2 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -1518,7 +1518,7 @@ void loop() //Likewise for the ignition //fixedCrankingOverride is used to extend the dwell during cranking so that the decoder can trigger the spark upon seeing a certain tooth. Currently only available on the basic distributor and 4g63 decoders. - if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) { fixedCrankingOverride = currentStatus.dwell * 2; } + if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) { fixedCrankingOverride = currentStatus.dwell * 3; } else { fixedCrankingOverride = 0; } //Perform an initial check to see if the ignition is turned on (Ignition only turns on after a preset number of cranking revolutions and: diff --git a/speeduino/timers.ino b/speeduino/timers.ino index f1fe1897..8bac916e 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -69,13 +69,15 @@ void oneMSInterval() //Most ARM chips can simply call a function //Overdwell check targetOverdwellTime = micros() - dwellLimit_uS; //Set a target time in the past that all coil charging must have begun after. If the coil charge began before this time, it's been running too long + //bool isCrankLocked = configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK); + bool isCrankLocked = configPage2.ignCranklock && (currentStatus.RPM < ((unsigned int)configPage2.crankRPM * 100)); //Check first whether each spark output is currently on. Only check it's dwell time if it is - if(ignitionSchedule1.Status == RUNNING) { if( (ignitionSchedule1.startTime < targetOverdwellTime) && (configPage2.useDwellLim) ) { endCoil1Charge(); } } - if(ignitionSchedule2.Status == RUNNING) { if( (ignitionSchedule2.startTime < targetOverdwellTime) && (configPage2.useDwellLim) ) { endCoil2Charge(); } } - if(ignitionSchedule3.Status == RUNNING) { if( (ignitionSchedule3.startTime < targetOverdwellTime) && (configPage2.useDwellLim) ) { endCoil3Charge(); } } - if(ignitionSchedule4.Status == RUNNING) { if( (ignitionSchedule4.startTime < targetOverdwellTime) && (configPage2.useDwellLim) ) { endCoil4Charge(); } } - if(ignitionSchedule5.Status == RUNNING) { if( (ignitionSchedule5.startTime < targetOverdwellTime) && (configPage2.useDwellLim) ) { endCoil5Charge(); } } + if(ignitionSchedule1.Status == RUNNING) { if( (ignitionSchedule1.startTime < targetOverdwellTime) && (configPage2.useDwellLim) && (isCrankLocked != true) ) { endCoil1Charge(); } } + if(ignitionSchedule2.Status == RUNNING) { if( (ignitionSchedule2.startTime < targetOverdwellTime) && (configPage2.useDwellLim) && (isCrankLocked != true) ) { endCoil2Charge(); } } + if(ignitionSchedule3.Status == RUNNING) { if( (ignitionSchedule3.startTime < targetOverdwellTime) && (configPage2.useDwellLim) && (isCrankLocked != true) ) { endCoil3Charge(); } } + if(ignitionSchedule4.Status == RUNNING) { if( (ignitionSchedule4.startTime < targetOverdwellTime) && (configPage2.useDwellLim) && (isCrankLocked != true) ) { endCoil4Charge(); } } + if(ignitionSchedule5.Status == RUNNING) { if( (ignitionSchedule5.startTime < targetOverdwellTime) && (configPage2.useDwellLim) && (isCrankLocked != true) ) { endCoil5Charge(); } } //Loop executed every 100ms loop //Anything inside this if statement will run every 100ms. @@ -104,7 +106,7 @@ void oneMSInterval() //Most ARM chips can simply call a function loopSec = 0; //Reset counter. dwellLimit_uS = (1000 * configPage2.dwellLimit); //Update uS value incase setting has changed - if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) { dwellLimit_uS = dwellLimit_uS * 3; } //Make sure the overdwell doesn't clobber the fixed ignition cranking if enabled. + //if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) { dwellLimit_uS = dwellLimit_uS * 4; } //Make sure the overdwell doesn't clobber the fixed ignition cranking if enabled. //************************************************************************************************************************************************** //This updates the runSecs variable From 83b486ef1fc93008b1d4811d1db17ee5c306c1b8 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 10 Aug 2017 11:44:32 +1000 Subject: [PATCH 061/133] Change to single calculation of the cranking RPM --- speeduino/decoders.ino | 18 +++++++++--------- speeduino/globals.h | 3 ++- speeduino/speeduino.ino | 4 ++-- speeduino/timers.ino | 4 ++-- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 43e9b7ee..1955fe5f 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -198,7 +198,7 @@ void triggerSec_missingTooth() uint16_t getRPM_missingTooth() { uint16_t tempRPM = 0; - if( (currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100)) && (toothCurrentCount != 1) ) //Can't do per tooth RPM if we're at tooth #1 as the missing tooth messes the calculation + if( (currentStatus.RPM < currentStatus.crankRPM) && (toothCurrentCount != 1) ) //Can't do per tooth RPM if we're at tooth #1 as the missing tooth messes the calculation { if(configPage2.TrigSpeed == 1) { crankingGetRPM(configPage2.triggerTeeth/2); } //Account for cam speed else { tempRPM = crankingGetRPM(configPage2.triggerTeeth); } @@ -350,7 +350,7 @@ uint16_t getRPM_DualWheel() uint16_t tempRPM = 0; if( currentStatus.hasSync == true ) { - if(currentStatus.RPM < configPage2.crankRPM) { tempRPM = crankingGetRPM(configPage2.triggerTeeth); } + if(currentStatus.RPM < currentStatus.crankRPM) { tempRPM = crankingGetRPM(configPage2.triggerTeeth); } else { tempRPM = stdGetRPM(); } } return tempRPM; @@ -486,7 +486,7 @@ void triggerSec_BasicDistributor() { return; } //Not required uint16_t getRPM_BasicDistributor() { uint16_t tempRPM; - if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) ) + if( currentStatus.RPM < currentStatus.crankRPM ) { tempRPM = crankingGetRPM(triggerActualTeeth >> 1); } //crankGetRPM uses teeth per 360 degrees. As triggerActualTeeh is total teeth in 720 degrees, we divide the tooth count by 2 else { @@ -810,7 +810,7 @@ uint16_t getRPM_4G63() //Because these signals aren't even (Alternating 110 and 70 degrees), this needs a special function if(currentStatus.hasSync == true) { - if( currentStatus.RPM < ((unsigned int)configPage2.crankRPM * 100) ) + if( currentStatus.RPM < currentStatus.crankRPM ) { int tempToothAngle; unsigned long toothTime; @@ -1378,7 +1378,7 @@ uint16_t getRPM_Miata9905() //During cranking, RPM is calculated 4 times per revolution, once for each tooth on the crank signal. //Because these signals aren't even (Alternating 110 and 70 degrees), this needs a special function uint16_t tempRPM = 0; - if(currentStatus.RPM < configPage2.crankRPM) + if(currentStatus.RPM < currentStatus.crankRPM) { int tempToothAngle; noInterrupts(); @@ -1531,7 +1531,7 @@ uint16_t getRPM_MazdaAU() { //During cranking, RPM is calculated 4 times per revolution, once for each tooth on the crank signal. //Because these signals aren't even (Alternating 108 and 72 degrees), this needs a special function - if(currentStatus.RPM < configPage2.crankRPM) + if(currentStatus.RPM < currentStatus.crankRPM) { int tempToothAngle; noInterrupts(); @@ -1612,7 +1612,7 @@ uint16_t getRPM_non360() uint16_t tempRPM = 0; if( (currentStatus.hasSync == true) && (toothCurrentCount != 0) ) { - if(currentStatus.RPM < configPage2.crankRPM) { tempRPM = crankingGetRPM(configPage2.triggerTeeth); } + if(currentStatus.RPM < currentStatus.crankRPM) { tempRPM = crankingGetRPM(configPage2.triggerTeeth); } else { tempRPM = stdGetRPM(); } } return tempRPM; @@ -1936,7 +1936,7 @@ void triggerSec_Subaru67() uint16_t getRPM_Subaru67() { - //if(currentStatus.RPM < configPage2.crankRPM) { return crankingGetRPM(configPage2.triggerTeeth); } + //if(currentStatus.RPM < currentStatus.crankRPM) { return crankingGetRPM(configPage2.triggerTeeth); } uint16_t tempRPM = 0; if(currentStatus.startRevolutions > 0) @@ -2090,7 +2090,7 @@ void triggerSec_Daihatsu() { return; } //Not required (Should never be called in uint16_t getRPM_Daihatsu() { uint16_t tempRPM = 0; - if( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) && false) //Disable special cranking processing for now + if( (currentStatus.RPM < currentStatus.crankRPM) && false) //Disable special cranking processing for now { //Cn't use standard cranking RPM functin due to extra tooth if( currentStatus.hasSync == true ) diff --git a/speeduino/globals.h b/speeduino/globals.h index 3c6c4cbc..f1c3783e 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -241,7 +241,7 @@ struct statuses { uint16_t freeRAM; unsigned int clutchEngagedRPM; bool flatShiftingHard; - volatile byte startRevolutions; //A counter for how many revolutions have been completed since sync was achieved. + volatile uint16_t startRevolutions; //A counter for how many revolutions have been completed since sync was achieved. byte boostTarget; byte testOutputs; bool testActive; @@ -249,6 +249,7 @@ struct statuses { byte idleLoad; //Either the current steps or current duty cycle for the idle control. uint16_t canin[16]; //16bit raw value of selected canin data for channel 0-15 uint8_t current_caninchannel = 0; //start off at channel 0 + uint16_t crankRPM = 400; //The actual cranking RPM limit. Saves us multiplying it everytime from the config page //Helpful bitwise operations: //Useful reference: http://playground.arduino.cc/Code/BitMath diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index a73bf0e2..e39fc0d1 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -293,6 +293,7 @@ void setup() currentStatus.startRevolutions = 0; currentStatus.flatShiftingHard = false; currentStatus.launchingHard = false; + currentStatus.crankRPM = ((unsigned int)configPage2.crankRPM * 100); //Crank RPM limit (Saves us calculating this over and over again. It's updated once per second in timers.ino) triggerFilterTime = 0; //Trigger filter time is the shortest possible time (in uS) that there can be between crank teeth (ie at max RPM). Any pulses that occur faster than this time will be disgarded as noise. This is simply a default value, the actual values are set in the setup() functinos of each decoder #if defined(CORE_AVR) @@ -556,7 +557,6 @@ void setup() } //End crank triger interrupt attachment - req_fuel_uS = req_fuel_uS / engineSquirtsPerCycle; //The req_fuel calculation above gives the total required fuel (At VE 100%) in the full cycle. If we're doing more than 1 squirt per cycle then we need to split the amount accordingly. (Note that in a non-sequential 4-stroke setup you cannot have less than 2 squirts as you cannot determine the stroke to make the single squirt on) //Initial values for loop times @@ -1109,7 +1109,7 @@ void loop() { if(currentStatus.startRevolutions >= configPage2.StgCycles) { ignitionOn = true; fuelOn = true; } //Enable the fuel and ignition, assuming staging revolutions are complete //If it is, check is we're running or cranking - if(currentStatus.RPM > ((unsigned int)configPage2.crankRPM * 100)) //Crank RPM stored in byte as RPM / 100 + if(currentStatus.RPM > currentStatus.crankRPM) //Crank RPM stored in byte as RPM / 100 { BIT_SET(currentStatus.engine, BIT_ENGINE_RUN); //Sets the engine running bit //Only need to do anything if we're transitioning from cranking to running diff --git a/speeduino/timers.ino b/speeduino/timers.ino index 8bac916e..76aaeed1 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -69,8 +69,7 @@ void oneMSInterval() //Most ARM chips can simply call a function //Overdwell check targetOverdwellTime = micros() - dwellLimit_uS; //Set a target time in the past that all coil charging must have begun after. If the coil charge began before this time, it's been running too long - //bool isCrankLocked = configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK); - bool isCrankLocked = configPage2.ignCranklock && (currentStatus.RPM < ((unsigned int)configPage2.crankRPM * 100)); + bool isCrankLocked = configPage2.ignCranklock && (currentStatus.RPM < currentStatus.crankRPM); //Dwell limiter is disabled during cranking on setups using the locked cranking timing. WE HAVE to do the RPM check here as relying on the engine cranking bit can be potentially too slow in updating //Check first whether each spark output is currently on. Only check it's dwell time if it is if(ignitionSchedule1.Status == RUNNING) { if( (ignitionSchedule1.startTime < targetOverdwellTime) && (configPage2.useDwellLim) && (isCrankLocked != true) ) { endCoil1Charge(); } } @@ -106,6 +105,7 @@ void oneMSInterval() //Most ARM chips can simply call a function loopSec = 0; //Reset counter. dwellLimit_uS = (1000 * configPage2.dwellLimit); //Update uS value incase setting has changed + currentStatus.crankRPM = ((unsigned int)configPage2.crankRPM * 100); //if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) { dwellLimit_uS = dwellLimit_uS * 4; } //Make sure the overdwell doesn't clobber the fixed ignition cranking if enabled. //************************************************************************************************************************************************** From c8f08ddcbc8cc1970e505d47c4ccf63147eff045 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 10 Aug 2017 16:49:58 +1000 Subject: [PATCH 062/133] Wiki image for Daihatsu +1 --- reference/wiki/decoders/daihatsu_3_1.png | Bin 0 -> 60262 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 reference/wiki/decoders/daihatsu_3_1.png diff --git a/reference/wiki/decoders/daihatsu_3_1.png b/reference/wiki/decoders/daihatsu_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..218e9022e018d7a1f7e021212c9ae56f887fb925 GIT binary patch literal 60262 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 q0|D%kWnD=+o-czr= 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 C+9I<6 literal 0 HcmV?d00001 From 7bb3642e14c51c99b5bee630d411aa32931cf03d Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 10 Aug 2017 17:07:46 +1000 Subject: [PATCH 063/133] Honda D17 tooth pattern --- reference/wiki/decoders/honda_D17.png | Bin 0 -> 15954 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 reference/wiki/decoders/honda_D17.png diff --git a/reference/wiki/decoders/honda_D17.png b/reference/wiki/decoders/honda_D17.png new file mode 100644 index 0000000000000000000000000000000000000000..4d90e7f9859aa52367ff30fd5b759941fe6b9b4e GIT binary patch literal 15954 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 oxFR@lt$xJbI8PuJ8N*0Dj}(T>t<8 literal 0 HcmV?d00001 From 77094a59d1f62f35fefad02b4d02dfd0622f63f8 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 17 Aug 2017 11:24:26 +1000 Subject: [PATCH 064/133] Better startup procedure and DIY watchdog --- reference/speeduino.ini | 8 +- speeduino/speeduino.ino | 274 ++-------------------------------------- speeduino/timers.h | 1 + speeduino/timers.ino | 6 +- speeduino/utils.ino | 266 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 286 insertions(+), 269 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 9bf16c7c..8ca59a88 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -10,8 +10,8 @@ signature = "speeduino 201708-dev" versionInfo = "S" ; Put this in the title bar. -;[TunerStudio] -; iniSpecVersion = 3.24 +[TunerStudio] + iniSpecVersion = 3.49 ;------------------------------------------------------------------------------- @@ -114,7 +114,7 @@ blockReadTimeout = 2000 ;tsWriteBlocks = off ;writeBlocks = off - interWriteDelay = 5 + interWriteDelay = 8 ;New for TS 3.0.08ish upwards, define lists of standard I/O options @@ -1332,7 +1332,7 @@ menuDialog = main field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 } ;Dual wheel, 4G63 and Audi 135 field = "" field = "#The below option is EXPERIMENTAL! If unsure what this is, please set to No" - field = "User per tooth ignition calculation", perToothIgn, {TrigPattern == 0 || TrigPattern == 1 || TrigPattern == 2 } ;Only works for missing tooth, distributor and dual wheel + field = "User per tooth ignition calculation", perToothIgn, {TrigPattern == 0 || TrigPattern == 1 || TrigPattern == 2 || TrigPattern == 4} ;Only works for missing tooth, distributor and dual wheel dialog = sparkSettings,"Spark Settings",4 field = "Spark output mode", sparkMode diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index e39fc0d1..f9274d09 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -90,7 +90,7 @@ static byte coilLOW = LOW; static byte fanHIGH = HIGH; // Used to invert the cooling fan output static byte fanLOW = LOW; // Used to invert the cooling fan output -volatile int mainLoopCount; +volatile uint16_t mainLoopCount; byte deltaToothCount = 0; //The last tooth that was used with the deltaV calc int rpmDelta; byte ignitionCount; @@ -130,7 +130,7 @@ bool initialisationComplete = false; //Tracks whether the setup() functino has r void setup() { - + digitalWrite(LED_BUILTIN, LOW); //Setup the dummy fuel and ignition tables //dummyFuelTable(&fuelTable); //dummyIgnitionTable(&ignitionTable); @@ -284,8 +284,6 @@ void setup() //Begin the main crank trigger interrupt pin setup //The interrupt numbering is a bit odd - See here for reference: http://arduino.cc/en/Reference/AttachInterrupt //These assignments are based on the Arduino Mega AND VARY BETWEEN BOARDS. Please confirm the board you are using and update acordingly. - byte triggerInterrupt = 0; // By default, use the first interrupt - byte triggerInterrupt2 = 1; currentStatus.RPM = 0; currentStatus.hasSync = false; currentStatus.runSecs = 0; @@ -296,265 +294,8 @@ void setup() currentStatus.crankRPM = ((unsigned int)configPage2.crankRPM * 100); //Crank RPM limit (Saves us calculating this over and over again. It's updated once per second in timers.ino) triggerFilterTime = 0; //Trigger filter time is the shortest possible time (in uS) that there can be between crank teeth (ie at max RPM). Any pulses that occur faster than this time will be disgarded as noise. This is simply a default value, the actual values are set in the setup() functinos of each decoder - #if defined(CORE_AVR) - switch (pinTrigger) { - //Arduino Mega 2560 mapping - case 2: - triggerInterrupt = 0; break; - case 3: - triggerInterrupt = 1; break; - case 18: - triggerInterrupt = 5; break; - case 19: - triggerInterrupt = 4; break; - case 20: - triggerInterrupt = 3; break; - case 21: - triggerInterrupt = 2; break; - default: - triggerInterrupt = 0; break; //This should NEVER happen - } - #else - triggerInterrupt = pinTrigger; - #endif - - #if defined(CORE_AVR) - switch (pinTrigger2) { - //Arduino Mega 2560 mapping - case 2: - triggerInterrupt2 = 0; break; - case 3: - triggerInterrupt2 = 1; break; - case 18: - triggerInterrupt2 = 5; break; - case 19: - triggerInterrupt2 = 4; break; - case 20: - triggerInterrupt2 = 3; break; - case 21: - triggerInterrupt2 = 2; break; - default: - triggerInterrupt2 = 0; break; //This should NEVER happen - } - #else - triggerInterrupt2 = pinTrigger2; - #endif - pinMode(pinTrigger, INPUT); - pinMode(pinTrigger2, INPUT); - pinMode(pinTrigger3, INPUT); - //digitalWrite(pinTrigger, HIGH); - - //Set the trigger function based on the decoder in the config - switch (configPage2.TrigPattern) - { - case 0: - //Missing tooth decoder - triggerSetup_missingTooth(); - trigger = triggerPri_missingTooth; - triggerSecondary = triggerSec_missingTooth; - getRPM = getRPM_missingTooth; - getCrankAngle = getCrankAngle_missingTooth; - triggerSetEndTeeth = triggerSetEndTeeth_missingTooth; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, RISING); } - else { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, FALLING); } - break; - - case 1: - // Basic distributor - triggerSetup_BasicDistributor(); - trigger = triggerPri_BasicDistributor; - getRPM = getRPM_BasicDistributor; - getCrankAngle = getCrankAngle_BasicDistributor; - triggerSetEndTeeth = triggerSetEndTeeth_BasicDistributor; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - break; - - case 2: - triggerSetup_DualWheel(); - trigger = triggerPri_DualWheel; - getRPM = getRPM_DualWheel; - getCrankAngle = getCrankAngle_DualWheel; - triggerSetEndTeeth = triggerSetEndTeeth_DualWheel; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, RISING); } - else { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); } - break; - - case 3: - triggerSetup_GM7X(); - trigger = triggerPri_GM7X; - getRPM = getRPM_GM7X; - getCrankAngle = getCrankAngle_GM7X; - triggerSetEndTeeth = triggerSetEndTeeth_GM7X; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - break; - - case 4: - triggerSetup_4G63(); - trigger = triggerPri_4G63; - getRPM = getRPM_4G63; - getCrankAngle = getCrankAngle_4G63; - triggerSetEndTeeth = triggerSetEndTeeth_4G63; - - //These may both need to change, not sure - if(configPage2.TrigEdge == 0) - { - attachInterrupt(triggerInterrupt, trigger, CHANGE); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - attachInterrupt(triggerInterrupt2, triggerSec_4G63, FALLING); //changed - } - else - { - attachInterrupt(triggerInterrupt, trigger, CHANGE); // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_4G63, FALLING); - } - break; - - case 5: - triggerSetup_24X(); - trigger = triggerPri_24X; - getRPM = getRPM_24X; - getCrankAngle = getCrankAngle_24X; - triggerSetEndTeeth = triggerSetEndTeeth_24X; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_24X, CHANGE); - break; - - case 6: - triggerSetup_Jeep2000(); - trigger = triggerPri_Jeep2000; - getRPM = getRPM_Jeep2000; - getCrankAngle = getCrankAngle_Jeep2000; - triggerSetEndTeeth = triggerSetEndTeeth_Jeep2000; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_Jeep2000, CHANGE); - break; - - case 7: - triggerSetup_Audi135(); - trigger = triggerPri_Audi135; - getRPM = getRPM_Audi135; - getCrankAngle = getCrankAngle_Audi135; - triggerSetEndTeeth = triggerSetEndTeeth_Audi135; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - attachInterrupt(triggerInterrupt2, triggerSec_Audi135, RISING); - break; - - case 8: - triggerSetup_HondaD17(); - trigger = triggerPri_HondaD17; - getRPM = getRPM_HondaD17; - getCrankAngle = getCrankAngle_HondaD17; - triggerSetEndTeeth = triggerSetEndTeeth_HondaD17; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_HondaD17, CHANGE); - break; - - case 9: - triggerSetup_Miata9905(); - trigger = triggerPri_Miata9905; - getRPM = getRPM_Miata9905; - getCrankAngle = getCrankAngle_Miata9905; - triggerSetEndTeeth = triggerSetEndTeeth_Miata9905; - - //These may both need to change, not sure - if(configPage2.TrigEdge == 0) - { - attachInterrupt(triggerInterrupt, trigger, RISING); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, FALLING); //changed - } - else - { - attachInterrupt(triggerInterrupt, trigger, FALLING); // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, RISING); - } - break; - - case 10: - triggerSetup_MazdaAU(); - trigger = triggerPri_MazdaAU; - getRPM = getRPM_MazdaAU; - getCrankAngle = getCrankAngle_MazdaAU; - triggerSetEndTeeth = triggerSetEndTeeth_MazdaAU; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to - attachInterrupt(triggerInterrupt2, triggerSec_MazdaAU, FALLING); - break; - - case 11: - triggerSetup_non360(); - trigger = triggerPri_DualWheel; //Is identical to the dual wheel decoder, so that is used. Same goes for the secondary below - getRPM = getRPM_non360; - getCrankAngle = getCrankAngle_non360; - triggerSetEndTeeth = triggerSetEndTeeth_Non360; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); //Note the use of the Dual Wheel trigger function here. No point in having the same code in twice. - break; - - case 12: - triggerSetup_Nissan360(); - trigger = triggerPri_Nissan360; - getRPM = getRPM_Nissan360; - getCrankAngle = getCrankAngle_Nissan360; - triggerSetEndTeeth = triggerSetEndTeeth_Nissan360; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - attachInterrupt(triggerInterrupt2, triggerSec_Nissan360, CHANGE); - break; - - case 13: - triggerSetup_Subaru67(); - trigger = triggerPri_Subaru67; - getRPM = getRPM_Subaru67; - getCrankAngle = getCrankAngle_Subaru67; - triggerSetEndTeeth = triggerSetEndTeeth_Subaru67; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - attachInterrupt(triggerInterrupt2, triggerSec_Subaru67, FALLING); - break; - - case 14: - triggerSetup_Daihatsu(); - trigger = triggerPri_Daihatsu; - getRPM = getRPM_Daihatsu; - getCrankAngle = getCrankAngle_Daihatsu; - triggerSetEndTeeth = triggerSetEndTeeth_Daihatsu; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - //No secondary input required for this pattern - break; - - default: - trigger = triggerPri_missingTooth; - getRPM = getRPM_missingTooth; - getCrankAngle = getCrankAngle_missingTooth; - - if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) - else { attachInterrupt(triggerInterrupt, trigger, FALLING); } - break; - } + noInterrupts(); + initialiseTriggers(); //End crank triger interrupt attachment req_fuel_uS = req_fuel_uS / engineSquirtsPerCycle; //The req_fuel calculation above gives the total required fuel (At VE 100%) in the full cycle. If we're doing more than 1 squirt per cycle then we need to split the amount accordingly. (Note that in a non-sequential 4-stroke setup you cannot have less than 2 squirts as you cannot determine the stroke to make the single squirt on) @@ -860,13 +601,14 @@ void setup() //Begin priming the fuel pump. This is turned off in the low resolution, 1s interrupt in timers.ino digitalWrite(pinFuelPump, HIGH); fuelPumpOn = true; + interrupts(); //Perform the priming pulses. Set these to run at an arbitrary time in the future (100us). The prime pulse value is in ms*10, so need to multiple by 100 to get to uS setFuelSchedule1(100, (unsigned long)(configPage1.primePulse * 100)); setFuelSchedule2(100, (unsigned long)(configPage1.primePulse * 100)); setFuelSchedule3(100, (unsigned long)(configPage1.primePulse * 100)); setFuelSchedule4(100, (unsigned long)(configPage1.primePulse * 100)); - initialisationComplete = true; + digitalWrite(LED_BUILTIN, HIGH); } void loop() @@ -969,6 +711,10 @@ void loop() disableIdle(); //Turn off the idle PWM BIT_CLEAR(currentStatus.engine, BIT_ENGINE_CRANK); //Clear cranking bit (Can otherwise get stuck 'on' even with 0 rpm) BIT_CLEAR(currentStatus.engine, BIT_ENGINE_WARMUP); //Same as above except for WUE + + //This is a safety check. If for some reason the interrupts have got screwed up (Leading to 0rpm), this resets them. + //It can possibly be run much less frequently. + initialiseTriggers(); } //Uncomment the following for testing diff --git a/speeduino/timers.h b/speeduino/timers.h index c0981750..1762dbfd 100644 --- a/speeduino/timers.h +++ b/speeduino/timers.h @@ -25,6 +25,7 @@ volatile int loopSec; volatile unsigned int dwellLimit_uS; volatile uint16_t lastRPM_100ms; //Need to record this for rpmDOT calculation +volatile uint16_t last250msLoopCount = 1000; //Set to effectively random number on startup. Just need this to be different to what mainLoopCount equals initially (Probably 0) #if defined (CORE_TEENSY) IntervalTimer lowResTimer; diff --git a/speeduino/timers.ino b/speeduino/timers.ino index 76aaeed1..e9634b41 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -92,10 +92,14 @@ void oneMSInterval() //Most ARM chips can simply call a function //Anything inside this if statement will run every 250ms. if (loop250ms == 250) { - loop250ms = 0; //Reset Counter. + loop250ms = 0; //Reset Counter + #if defined(CORE_AVR) //Reset watchdog timer (Not active currently) //wdt_reset(); + //DIY watchdog + if(initialisationComplete == true && last250msLoopCount == mainLoopCount) { setup(); } //This is a sign of a crash. + else { last250msLoopCount = mainLoopCount; } #endif } diff --git a/speeduino/utils.ino b/speeduino/utils.ino index d7279b91..8e88ac72 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -554,6 +554,272 @@ void setPinMapping(byte boardID) #endif } +void initialiseTriggers() +{ + byte triggerInterrupt = 0; // By default, use the first interrupt + byte triggerInterrupt2 = 1; + #if defined(CORE_AVR) + switch (pinTrigger) { + //Arduino Mega 2560 mapping + case 2: + triggerInterrupt = 0; break; + case 3: + triggerInterrupt = 1; break; + case 18: + triggerInterrupt = 5; break; + case 19: + triggerInterrupt = 4; break; + case 20: + triggerInterrupt = 3; break; + case 21: + triggerInterrupt = 2; break; + default: + triggerInterrupt = 0; break; //This should NEVER happen + } + #else + triggerInterrupt = pinTrigger; + #endif + + #if defined(CORE_AVR) + switch (pinTrigger2) { + //Arduino Mega 2560 mapping + case 2: + triggerInterrupt2 = 0; break; + case 3: + triggerInterrupt2 = 1; break; + case 18: + triggerInterrupt2 = 5; break; + case 19: + triggerInterrupt2 = 4; break; + case 20: + triggerInterrupt2 = 3; break; + case 21: + triggerInterrupt2 = 2; break; + default: + triggerInterrupt2 = 0; break; //This should NEVER happen + } + #else + triggerInterrupt2 = pinTrigger2; + #endif + pinMode(pinTrigger, INPUT); + pinMode(pinTrigger2, INPUT); + pinMode(pinTrigger3, INPUT); + //digitalWrite(pinTrigger, HIGH); + detachInterrupt(triggerInterrupt); + detachInterrupt(triggerInterrupt2); + + //Set the trigger function based on the decoder in the config + switch (configPage2.TrigPattern) + { + case 0: + //Missing tooth decoder + triggerSetup_missingTooth(); + trigger = triggerPri_missingTooth; + triggerSecondary = triggerSec_missingTooth; + getRPM = getRPM_missingTooth; + getCrankAngle = getCrankAngle_missingTooth; + triggerSetEndTeeth = triggerSetEndTeeth_missingTooth; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, RISING); } + else { attachInterrupt(triggerInterrupt2, triggerSec_missingTooth, FALLING); } + break; + + case 1: + // Basic distributor + triggerSetup_BasicDistributor(); + trigger = triggerPri_BasicDistributor; + getRPM = getRPM_BasicDistributor; + getCrankAngle = getCrankAngle_BasicDistributor; + triggerSetEndTeeth = triggerSetEndTeeth_BasicDistributor; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + break; + + case 2: + triggerSetup_DualWheel(); + trigger = triggerPri_DualWheel; + getRPM = getRPM_DualWheel; + getCrankAngle = getCrankAngle_DualWheel; + triggerSetEndTeeth = triggerSetEndTeeth_DualWheel; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, RISING); } + else { attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); } + break; + + case 3: + triggerSetup_GM7X(); + trigger = triggerPri_GM7X; + getRPM = getRPM_GM7X; + getCrankAngle = getCrankAngle_GM7X; + triggerSetEndTeeth = triggerSetEndTeeth_GM7X; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + break; + + case 4: + triggerSetup_4G63(); + trigger = triggerPri_4G63; + getRPM = getRPM_4G63; + getCrankAngle = getCrankAngle_4G63; + triggerSetEndTeeth = triggerSetEndTeeth_4G63; + + //These may both need to change, not sure + if(configPage2.TrigEdge == 0) + { + attachInterrupt(triggerInterrupt, trigger, CHANGE); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + attachInterrupt(triggerInterrupt2, triggerSec_4G63, FALLING); //changed + } + else + { + attachInterrupt(triggerInterrupt, trigger, CHANGE); // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_4G63, FALLING); + } + break; + + case 5: + triggerSetup_24X(); + trigger = triggerPri_24X; + getRPM = getRPM_24X; + getCrankAngle = getCrankAngle_24X; + triggerSetEndTeeth = triggerSetEndTeeth_24X; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_24X, CHANGE); + break; + + case 6: + triggerSetup_Jeep2000(); + trigger = triggerPri_Jeep2000; + getRPM = getRPM_Jeep2000; + getCrankAngle = getCrankAngle_Jeep2000; + triggerSetEndTeeth = triggerSetEndTeeth_Jeep2000; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_Jeep2000, CHANGE); + break; + + case 7: + triggerSetup_Audi135(); + trigger = triggerPri_Audi135; + getRPM = getRPM_Audi135; + getCrankAngle = getCrankAngle_Audi135; + triggerSetEndTeeth = triggerSetEndTeeth_Audi135; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + attachInterrupt(triggerInterrupt2, triggerSec_Audi135, RISING); + break; + + case 8: + triggerSetup_HondaD17(); + trigger = triggerPri_HondaD17; + getRPM = getRPM_HondaD17; + getCrankAngle = getCrankAngle_HondaD17; + triggerSetEndTeeth = triggerSetEndTeeth_HondaD17; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_HondaD17, CHANGE); + break; + + case 9: + triggerSetup_Miata9905(); + trigger = triggerPri_Miata9905; + getRPM = getRPM_Miata9905; + getCrankAngle = getCrankAngle_Miata9905; + triggerSetEndTeeth = triggerSetEndTeeth_Miata9905; + + //These may both need to change, not sure + if(configPage2.TrigEdge == 0) + { + attachInterrupt(triggerInterrupt, trigger, RISING); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, FALLING); //changed + } + else + { + attachInterrupt(triggerInterrupt, trigger, FALLING); // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, RISING); + } + break; + + case 10: + triggerSetup_MazdaAU(); + trigger = triggerPri_MazdaAU; + getRPM = getRPM_MazdaAU; + getCrankAngle = getCrankAngle_MazdaAU; + triggerSetEndTeeth = triggerSetEndTeeth_MazdaAU; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } // Primary trigger connects to + attachInterrupt(triggerInterrupt2, triggerSec_MazdaAU, FALLING); + break; + + case 11: + triggerSetup_non360(); + trigger = triggerPri_DualWheel; //Is identical to the dual wheel decoder, so that is used. Same goes for the secondary below + getRPM = getRPM_non360; + getCrankAngle = getCrankAngle_non360; + triggerSetEndTeeth = triggerSetEndTeeth_Non360; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + attachInterrupt(triggerInterrupt2, triggerSec_DualWheel, FALLING); //Note the use of the Dual Wheel trigger function here. No point in having the same code in twice. + break; + + case 12: + triggerSetup_Nissan360(); + trigger = triggerPri_Nissan360; + getRPM = getRPM_Nissan360; + getCrankAngle = getCrankAngle_Nissan360; + triggerSetEndTeeth = triggerSetEndTeeth_Nissan360; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + attachInterrupt(triggerInterrupt2, triggerSec_Nissan360, CHANGE); + break; + + case 13: + triggerSetup_Subaru67(); + trigger = triggerPri_Subaru67; + getRPM = getRPM_Subaru67; + getCrankAngle = getCrankAngle_Subaru67; + triggerSetEndTeeth = triggerSetEndTeeth_Subaru67; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + attachInterrupt(triggerInterrupt2, triggerSec_Subaru67, FALLING); + break; + + case 14: + triggerSetup_Daihatsu(); + trigger = triggerPri_Daihatsu; + getRPM = getRPM_Daihatsu; + getCrankAngle = getCrankAngle_Daihatsu; + triggerSetEndTeeth = triggerSetEndTeeth_Daihatsu; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + //No secondary input required for this pattern + break; + + default: + trigger = triggerPri_missingTooth; + getRPM = getRPM_missingTooth; + getCrankAngle = getCrankAngle_missingTooth; + + if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); } // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering) + else { attachInterrupt(triggerInterrupt, trigger, FALLING); } + break; + } +} /* This function retuns a pulsewidth time (in us) using a either Alpha-N or Speed Density algorithms, given the following: REQ_FUEL From afa83cfdd7c592cc555f12e733d957a0265e73b2 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 17 Aug 2017 13:51:12 +1000 Subject: [PATCH 065/133] Experimental new low res mode (Testing only) --- speeduino/decoders.h | 1 + speeduino/decoders.ino | 34 +++++++++++++++++++++++++++------- speeduino/maths.h | 3 +++ speeduino/speeduino.ino | 13 +++++++------ speeduino/timers.ino | 3 +-- 5 files changed, 39 insertions(+), 15 deletions(-) diff --git a/speeduino/decoders.h b/speeduino/decoders.h index 8d5ac583..45255f6a 100644 --- a/speeduino/decoders.h +++ b/speeduino/decoders.h @@ -61,6 +61,7 @@ unsigned int triggerSecFilterTime_duration; // The shortest valid time (in uS) p volatile int triggerToothAngle; //The number of crank degrees that elapse per tooth bool secondDerivEnabled; //The use of the 2nd derivative calculation is limited to certain decoders. This is set to either true or false in each decoders setup routine bool decoderIsSequential; //Whether or not the decoder supports sequential operation +bool decoderIsLowRes = false; //Is set true, certain extra calculations are performed for better timing accuracy byte checkSyncToothCount; //How many teeth must've been seen on this revolution before we try to confirm sync (Useful for missing tooth type decoders) int16_t ignition1EndTooth = 0; diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 1955fe5f..ecb7147e 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -641,6 +641,7 @@ void triggerSetup_4G63() decoderIsSequential = true; MAX_STALL_TIME = 366667UL; //Minimum 50rpm based on the 110 degree tooth spacing toothLastToothTime = micros(); //Set a startup value here to avoid filter errors when starting + //decoderIsLowRes = true; //Note that these angles are for every rising and falling edge if(configPage1.nCylinders == 6) @@ -750,7 +751,20 @@ void triggerPri_4G63() if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) ) { triggerToothAngle = 70; triggerFilterTime = (curGap * 11) >> 3 ; } //96.26 degrees with a target of 110 else { triggerToothAngle = 110; triggerFilterTime = (curGap * 9) >> 5; } //61.87 degrees with a target of 70 } - else { triggerFilterTime = 0; } //trigger filter is turned off. + else + { + //trigger filter is turned off. + triggerFilterTime = 0; + if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) ) { triggerToothAngle = 70; } //96.26 degrees with a target of 110 + else { triggerToothAngle = 110; } //61.87 degrees with a target of 70 + } + + //EXPERIMENTAL! + if(configPage1.perToothIgn == true) + { + uint16_t crankAngle = toothAngles[(toothCurrentCount-1)]; + doPerToothTiming(crankAngle); + } } //Has sync } //Filter time @@ -810,7 +824,7 @@ uint16_t getRPM_4G63() //Because these signals aren't even (Alternating 110 and 70 degrees), this needs a special function if(currentStatus.hasSync == true) { - if( currentStatus.RPM < currentStatus.crankRPM ) + if( (currentStatus.RPM < currentStatus.crankRPM) || (configPage1.perToothIgn == true) ) { int tempToothAngle; unsigned long toothTime; @@ -824,10 +838,14 @@ uint16_t getRPM_4G63() toothTime = toothTime * 36; tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime; revolutionTime = (10UL * toothTime) / tempToothAngle; - + MAX_STALL_TIME = revolutionTime << 3; } } - else { tempRPM = stdGetRPM(); } + else + { + tempRPM = stdGetRPM(); + MAX_STALL_TIME = revolutionTime << 1; //Set the stall time to be twice the current RPM. This is a safe figure as there should be no single revolution where this changes more than this + } } return tempRPM; @@ -851,8 +869,7 @@ int getCrankAngle_4G63(int timePerDegree) //Estimate the number of degrees travelled since the last tooth} unsigned long elapsedTime = micros() - tempToothLastToothTime; - if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime - else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; } + crankAngle += uSToDegrees(elapsedTime); if (crankAngle >= 720) { crankAngle -= 720; } if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } @@ -863,7 +880,10 @@ int getCrankAngle_4G63(int timePerDegree) void triggerSetEndTeeth_4G63() { - + if((ignition1EndAngle - configPage2.triggerAngle) > 355) { ignition1EndTooth = 1; } + else { ignition1EndTooth = 4; } + //ignition1EndTooth = 1; + //ignition1EndTooth = ( (ignition1EndAngle - configPage2.triggerAngle) / } /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/speeduino/maths.h b/speeduino/maths.h index 55e154b9..6fa4ae6e 100644 --- a/speeduino/maths.h +++ b/speeduino/maths.h @@ -4,4 +4,7 @@ int fastMap1023toX(int, int); unsigned long percentage(byte, unsigned long); +#define degreesToUS(degrees) (decoderIsLowRes == true ) ? ((degrees * 166666UL) / currentStatus.RPM) : degrees * (unsigned long)timePerDegree +#define uSToDegrees(time) (((unsigned long)time * currentStatus.RPM) / 166666) + #endif diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index f9274d09..fcc41cfa 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -1060,7 +1060,7 @@ void loop() else { currentStatus.dwell = (configPage2.dwellRun * 100); } currentStatus.dwell = correctionsDwell(currentStatus.dwell); - int dwellAngle = (div(currentStatus.dwell, timePerDegree).quot ); //Convert the dwell time to dwell angle based on the current engine speed + int dwellAngle = uSToDegrees(currentStatus.dwell); //Convert the dwell time to dwell angle based on the current engine speed //Calculate start angle for each channel //1 cylinder (Everyone gets this) @@ -1287,7 +1287,8 @@ void loop() unsigned long timeout = (unsigned long)(ignition1StartAngle - crankAngle) * 282UL; */ setIgnitionSchedule1(ign1StartFunction, - ((unsigned long)(ignition1StartAngle - crankAngle) * (unsigned long)timePerDegree), //(timeout/10), + //((unsigned long)(ignition1StartAngle - crankAngle) * (unsigned long)timePerDegree), + degreesToUS((ignition1StartAngle - crankAngle)), currentStatus.dwell + fixedCrankingOverride, //((unsigned long)((unsigned long)currentStatus.dwell* currentStatus.RPM) / newRPM) + fixedCrankingOverride, ign1EndFunction ); @@ -1299,7 +1300,7 @@ void loop() if ( tempStartAngle < 0) { tempStartAngle += CRANK_ANGLE_MAX_IGN; } { unsigned long ignition2StartTime = 0; - if(tempStartAngle > tempCrankAngle) { ignition2StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } + if(tempStartAngle > tempCrankAngle) { ignition2StartTime = degreesToUS((tempStartAngle - tempCrankAngle)); } //else if (tempStartAngle < tempCrankAngle) { ignition2StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } else { ignition2StartTime = 0; } @@ -1319,7 +1320,7 @@ void loop() //if (tempStartAngle > tempCrankAngle) { long ignition3StartTime = 0; - if(tempStartAngle > tempCrankAngle) { ignition3StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } + if(tempStartAngle > tempCrankAngle) { ignition3StartTime = degreesToUS((tempStartAngle - tempCrankAngle)); } //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } else { ignition3StartTime = 0; } @@ -1340,7 +1341,7 @@ void loop() { long ignition4StartTime = 0; - if(tempStartAngle > tempCrankAngle) { ignition4StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } + if(tempStartAngle > tempCrankAngle) { ignition4StartTime = degreesToUS((tempStartAngle - tempCrankAngle)); } //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } else { ignition4StartTime = 0; } @@ -1361,7 +1362,7 @@ void loop() { long ignition5StartTime = 0; - if(tempStartAngle > tempCrankAngle) { ignition5StartTime = ((unsigned long)(tempStartAngle - tempCrankAngle) * (unsigned long)timePerDegree); } + if(tempStartAngle > tempCrankAngle) { ignition5StartTime = degreesToUS((tempStartAngle - tempCrankAngle)); } //else if (tempStartAngle < tempCrankAngle) { ignition4StartTime = ((long)(360 - tempCrankAngle + tempStartAngle) * (long)timePerDegree); } else { ignition5StartTime = 0; } diff --git a/speeduino/timers.ino b/speeduino/timers.ino index e9634b41..4b1483b0 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -98,7 +98,7 @@ void oneMSInterval() //Most ARM chips can simply call a function //Reset watchdog timer (Not active currently) //wdt_reset(); //DIY watchdog - if(initialisationComplete == true && last250msLoopCount == mainLoopCount) { setup(); } //This is a sign of a crash. + if( (initialisationComplete == true) && (last250msLoopCount == mainLoopCount) ) { setup(); } //This is a sign of a crash. else { last250msLoopCount = mainLoopCount; } #endif } @@ -110,7 +110,6 @@ void oneMSInterval() //Most ARM chips can simply call a function dwellLimit_uS = (1000 * configPage2.dwellLimit); //Update uS value incase setting has changed currentStatus.crankRPM = ((unsigned int)configPage2.crankRPM * 100); - //if ( configPage2.ignCranklock && BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) { dwellLimit_uS = dwellLimit_uS * 4; } //Make sure the overdwell doesn't clobber the fixed ignition cranking if enabled. //************************************************************************************************************************************************** //This updates the runSecs variable From c791302a0e03ac287e05aebb786299ae6b1315c9 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Thu, 17 Aug 2017 14:17:21 +1000 Subject: [PATCH 066/133] Harley EVO decoder (courtesy of @bitwise17) Closes #93 Slightly changed to fix bugs and be MISRA compliant --- reference/speeduino.ini | 2 +- speeduino/decoders.ino | 140 ++++++++++++++++++++++++++++++++++++++++ speeduino/utils.ino | 11 ++++ 3 files changed, 152 insertions(+), 1 deletion(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 8ca59a88..89186c02 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -274,7 +274,7 @@ page = 4 TrigSpeed = bits, U08, 5,[1:1], "Crank Speed", "Cam Speed" IgInv = bits, U08, 5,[2:2], "Going Low", "Going High" oddfire = bits, U08, 5,[3:3], "No", "Yes" - TrigPattern= bits, U08, 5,[4:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata / 3000GT", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "Nissan 360", "Subaru 6/7", "Daihatsu +1", "INVALID" + TrigPattern= bits, U08, 5,[4:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata / 3000GT", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "Nissan 360", "Subaru 6/7", "Daihatsu +1", "Harley EVO" TrigEdgeSec= bits, U08, 6,[0:0], "Leading", "Trailing" fuelPumpPin= bits , U08, 6,[1:6], "Board Default", "INVALID", "INVALID", "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" useResync = bits, U08, 6,[7:7], "No", "Yes" diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index ecb7147e..bea0c870 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -2163,3 +2163,143 @@ void triggerSetEndTeeth_Daihatsu() { } + +/* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Code for decoder.ino + Name: Harley + Desc: 2 uneven Spaced Tooth + Note: Within the code below, the sync tooth is referred to as tooth #1. + Derived from GMX7 and adapted for Harley + Only rising Edge is used for simplisity.The second input is ignored, as it does not help to desolve cam position +*/ +void triggerSetup_Harley() +{ + triggerToothAngle = 0; // The number of degrees that passes from tooth to tooth, ev. 0. It alternates uneven + secondDerivEnabled = false; + decoderIsSequential = false; + MAX_STALL_TIME = (3333UL * 60); //Minimum 50rpm. (3333uS is the time per degree at 50rpm) + toothLastToothTime = micros(); + triggerFilterTime = 1500; +} + +void triggerPri_Harley() +{ + lastGap = curGap; + curTime = micros(); + curGap = curTime - toothLastToothTime; + setFilter(curGap); // Filtering adjusted according to setting + if (curGap > triggerFilterTime) + { + if ( READ_PRI_TRIGGER() == HIGH) // Has to be the same as in main() trigger-attach, for readability we do it this way. + { + addToothLogEntry(curGap); + targetGap = lastGap ; //Gap is the Time to next toothtrigger, so we know where we are + toothCurrentCount++; + if (curGap > targetGap) + { + toothCurrentCount = 1; + triggerToothAngle = 0;// Has to be equal to Angle Routine + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.hasSync = true; + } + else + { + toothCurrentCount = 2; + triggerToothAngle = 157; + // toothOneMinusOneTime = toothOneTime; + // toothOneTime = curTime; + } + toothLastMinusOneToothTime = toothLastToothTime; + toothLastToothTime = curTime; + currentStatus.startRevolutions++; //Counter + } + else + { + currentStatus.hasSync = false; + toothCurrentCount = 0; + } //Primary trigger high + } //Trigger filter +} + + +void triggerSec_Harley() +// Needs to be enabled in main() +{ + return;// No need for now. The only thing it could help to sync more quikly or confirm position. +} // End Sec Trigger + + +uint16_t getRPM_Harley() +{ + uint16_t tempRPM = 0; + if (currentStatus.hasSync == true) + { + if ( currentStatus.RPM < (unsigned int)(configPage2.crankRPM * 100) ) + { + // Kein Unterschied mit dieser Option + int tempToothAngle; + unsigned long toothTime; + if ( (toothLastToothTime == 0) || (toothLastMinusOneToothTime == 0) ) { tempRPM = 0; } + else + { + noInterrupts(); + tempToothAngle = triggerToothAngle; + /* High-res mode + if(toothCurrentCount == 1) { tempToothAngle = 129; } + else { tempToothAngle = toothAngles[toothCurrentCount-1] - toothAngles[toothCurrentCount-2]; } + */ + revolutionTime = (toothOneTime - toothOneMinusOneTime); //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) + toothTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 129 and 332 depending on the last tooth that was seen + interrupts(); + toothTime = toothTime * 36; + tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime; + } + } + else { + tempRPM = stdGetRPM(); + } + } + return tempRPM; +} + + +int getCrankAngle_Harley(int timePerDegree) +{ + //This is the current angle ATDC the engine is at. This is the last known position based on what tooth was last 'seen'. It is only accurate to the resolution of the trigger wheel (Eg 36-1 is 10 degrees) + unsigned long tempToothLastToothTime; + int tempToothCurrentCount; + //Grab some variables that are used in the trigger code and assign them to temp variables. + noInterrupts(); + tempToothCurrentCount = toothCurrentCount; + tempToothLastToothTime = toothLastToothTime; + interrupts(); + + //Check if the last tooth seen was the reference tooth (Number 3). All others can be calculated, but tooth 3 has a unique angle + int crankAngle; + if ( (tempToothCurrentCount == 1) || (tempToothCurrentCount == 3) ) + { + crankAngle = 0 + configPage2.triggerAngle; //Number of teeth that have passed since tooth 1, multiplied by the angle each tooth represents, plus the angle that tooth 1 is ATDC. This gives accuracy only to the nearest tooth. + } + else { + crankAngle = 157 + configPage2.triggerAngle; + } + + //Estimate the number of degrees travelled since the last tooth} + long elapsedTime = micros() - tempToothLastToothTime; + if (elapsedTime < SHRT_MAX ) { + crankAngle += div((int)elapsedTime, timePerDegree).quot; //This option is much faster, but only available for smaller values of elapsedTime + } + else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; } + + if (crankAngle >= 720) { crankAngle -= 720; } + if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; } + if (crankAngle < 0) { crankAngle += 360; } + + return crankAngle; +} + +void triggerSetEndTeeth_Harley() +{ + +} diff --git a/speeduino/utils.ino b/speeduino/utils.ino index 8e88ac72..e49c7e36 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -810,6 +810,17 @@ void initialiseTriggers() //No secondary input required for this pattern break; + case 15: + triggerSetup_Harley(); + trigger = triggerPri_Harley; + //triggerSecondary = triggerSec_Harley; + getRPM = getRPM_Harley; + getCrankAngle = getCrankAngle_Harley; + triggerSetEndTeeth = triggerSetEndTeeth_Harley; + attachInterrupt(triggerInterrupt, trigger, RISING); + // attachInterrupt(triggerInterrupt2, triggerSec_Harley, FALLING); + break; + default: trigger = triggerPri_missingTooth; getRPM = getRPM_missingTooth; From 90b4f5f62fd42a2af7c1c5d047785bcdc47ad9e4 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Fri, 18 Aug 2017 08:50:39 +1000 Subject: [PATCH 067/133] Minor Subaru 6/7 decoder tweak --- speeduino/decoders.ino | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index bea0c870..92c1fa6e 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -1914,7 +1914,9 @@ void triggerPri_Subaru67() break; default: - //Almost certainly due to noise + //Almost certainly due to noise or cranking stop/start + currentStatus.hasSync = false; + secondaryToothCount = 0; break; } From 4340e58fa399017b6bdde49411d43a86bc0fdce3 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 21 Aug 2017 11:50:50 +1000 Subject: [PATCH 068/133] Add very lite filter to the cycle average MAP sampling --- speeduino/sensors.ino | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/speeduino/sensors.ino b/speeduino/sensors.ino index 7eee44d2..a4e60f06 100644 --- a/speeduino/sensors.ino +++ b/speeduino/sensors.ino @@ -98,7 +98,9 @@ void readMAP() //Error check if( (tempReading < VALID_MAP_MAX) && (tempReading > VALID_MAP_MIN) ) { - MAPrunningValue = MAPrunningValue + (unsigned long)tempReading; //Add the current reading onto the total + currentStatus.mapADC = ADC_FILTER(tempReading, ADCFILTER_MAP, currentStatus.mapADC); + MAPrunningValue += currentStatus.mapADC; //Add the current reading onto the total + //MAPrunningValue = MAPrunningValue + (unsigned long)tempReading; //Add the current reading onto the total MAPcount++; } else { mapErrorCount += 1; } @@ -111,6 +113,7 @@ void readMAP() { currentStatus.mapADC = ldiv(MAPrunningValue, MAPcount).quot; currentStatus.MAP = fastMap10Bit(currentStatus.mapADC, configPage1.mapMin, configPage1.mapMax); //Get the current MAP value + //currentStatus.MAP = fastMap1023toX(currentStatus.mapADC, configPage1.mapMax); if(currentStatus.MAP < 0) { currentStatus.MAP = 0; } //Sanity check MAPcurRev = currentStatus.startRevolutions; //Reset the current rev count MAPrunningValue = 0; From b71c59947ec27fd6bbdb08dea12d47846746ab89 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 21 Aug 2017 11:51:05 +1000 Subject: [PATCH 069/133] Cleanup #defines in maths.x --- speeduino/maths.h | 7 +++++++ speeduino/maths.ino | 10 ---------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/speeduino/maths.h b/speeduino/maths.h index 6fa4ae6e..a1796e86 100644 --- a/speeduino/maths.h +++ b/speeduino/maths.h @@ -6,5 +6,12 @@ unsigned long percentage(byte, unsigned long); #define degreesToUS(degrees) (decoderIsLowRes == true ) ? ((degrees * 166666UL) / currentStatus.RPM) : degrees * (unsigned long)timePerDegree #define uSToDegrees(time) (((unsigned long)time * currentStatus.RPM) / 166666) +#define DIV_ROUND_CLOSEST(n, d) ((((n) < 0) ^ ((d) < 0)) ? (((n) - (d)/2)/(d)) : (((n) + (d)/2)/(d))) + +//This is a dedicated function that specifically handles the case of mapping 0-1023 values into a 0 to X range +//This is a common case because it means converting from a standard 10-bit analog input to a byte or 10-bit analog into 0-511 (Eg the temperature readings) +#define fastMap1023toX(x, out_max) ( ((unsigned long)x * out_max) >> 10) +//This is a new version that allows for out_min +#define fastMap10Bit(x, out_min, out_max) ( ( ((unsigned long)x * (out_max-out_min)) >> 10 ) + out_min) #endif diff --git a/speeduino/maths.ino b/speeduino/maths.ino index 6a1033ec..75ca0fe2 100644 --- a/speeduino/maths.ino +++ b/speeduino/maths.ino @@ -1,7 +1,5 @@ #include "maths.h" -#define DIV_ROUND_CLOSEST(n, d) ((((n) < 0) ^ ((d) < 0)) ? (((n) - (d)/2)/(d)) : (((n) + (d)/2)/(d))) - //Replace the standard arduino map() function to use the div function instead int fastMap(unsigned long x, int in_min, int in_max, int out_min, int out_max) { @@ -14,14 +12,6 @@ int fastMap(unsigned long x, int in_min, int in_max, int out_min, int out_max) //return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } -//This is a dedicated function that specifically handles the case of mapping 0-1023 values into a 0 to X range -//This is a common case because it means converting from a standard 10-bit analog input to a byte or 10-bit analog into 0-511 (Eg the temperature readings) -//int fastMap1023toX(unsigned long x, int in_min, int in_max, int out_min, int out_max) -//removed ununsed variables, in_min and out_min is aways 0, in_max is aways 1023 -#define fastMap1023toX(x, out_max) ( ((unsigned long)x * out_max) >> 10) -//This is a new version that allows for out_min -#define fastMap10Bit(x, out_min, out_max) ( ( ((unsigned long)x * (out_max-out_min)) >> 10 ) + out_min) - /* The following are all fast versions of specific divisions Ref: http://www.hackersdelight.org/divcMore.pdf From 13e3b1f37b5404e393812b292c43376c18c4bc71 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Mon, 21 Aug 2017 11:52:12 +1000 Subject: [PATCH 070/133] Starting improvements on the 4g63 pattern --- speeduino/decoders.ino | 17 +++++++++++++---- speeduino/speeduino.ino | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 92c1fa6e..0b13a98c 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -708,7 +708,7 @@ void triggerPri_4G63() if (currentStatus.hasSync == true) { - if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) && configPage2.ignCranklock) + if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) && configPage2.ignCranklock && (currentStatus.startRevolutions >= configPage2.StgCycles)) { if( toothCurrentCount == 1 ) { endCoil1Charge(); } else if( toothCurrentCount == 3 ) { endCoil2Charge(); } @@ -784,7 +784,7 @@ void triggerSec_4G63() curTime2 = micros(); curGap2 = curTime2 - toothLastSecToothTime; - if ( (curGap2 >= triggerSecFilterTime) || (currentStatus.startRevolutions == 0) ) + if ( (curGap2 >= triggerSecFilterTime) )//|| (currentStatus.startRevolutions == 0) ) { toothLastSecToothTime = curTime2; @@ -797,6 +797,7 @@ void triggerSec_4G63() if(BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) || (currentStatus.hasSync == false) ) { + triggerFilterTime = 1500; //If this is removed, can have trouble getting sync again after the engine is turned off (but ECU not reset). if(READ_PRI_TRIGGER() == true)// && (crankState == digitalRead(pinTrigger))) { @@ -810,7 +811,15 @@ void triggerSec_4G63() triggerSecFilterTime_duration = (micros() - secondaryLastToothTime1) >> 1; if(READ_PRI_TRIGGER() == true)// && (crankState == digitalRead(pinTrigger))) { - toothCurrentCount = 4; //If the crank trigger is currently HIGH, it means we're on tooth #1 + if( (currentStatus.RPM < currentStatus.crankRPM) && (currentStatus.hasSync == true) ) + { + + //Whilst we're cranking and have sync, we need to watch for noise pulses. + if(toothCurrentCount != 4) { currentStatus.hasSync = false; } // This should never be true, except when there's noise + else { toothCurrentCount = 4; } + } + else { toothCurrentCount = 4; } //If the crank trigger is currently HIGH, it means we're on tooth #1 + } } // Use resync } //Trigger filter @@ -838,7 +847,7 @@ uint16_t getRPM_4G63() toothTime = toothTime * 36; tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime; revolutionTime = (10UL * toothTime) / tempToothAngle; - MAX_STALL_TIME = revolutionTime << 3; + //MAX_STALL_TIME = revolutionTime << 3; } } else diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index fcc41cfa..15c0ac38 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -695,6 +695,7 @@ void loop() currentStatus.PW1 = 0; currentStatus.VE = 0; toothLastToothTime = 0; + toothLastSecToothTime = 0; //toothLastMinusOneToothTime = 0; currentStatus.hasSync = false; currentStatus.runSecs = 0; //Reset the counter for number of seconds running. From cf6beeb53c841d1104a7472f02cf50163db6d3bf Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 22 Aug 2017 19:57:45 +1000 Subject: [PATCH 071/133] Disable VVT and Boost control timers when engine is off --- speeduino/speeduino.ino | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index 15c0ac38..eedfbeae 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -716,6 +716,11 @@ void loop() //This is a safety check. If for some reason the interrupts have got screwed up (Leading to 0rpm), this resets them. //It can possibly be run much less frequently. initialiseTriggers(); + + VVT_PIN_LOW(); + DISABLE_VVT_TIMER(); + DISABLE_BOOST_TIMER(); //Turn off timer + BOOST_PIN_LOW(); } //Uncomment the following for testing From 539618c583cab961c7c9a67d605c87bd01da932f Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Wed, 23 Aug 2017 08:14:11 +1000 Subject: [PATCH 072/133] Initial interface work on rotary ignition modes --- reference/speeduino.ini | 38 ++++++++++++++++++++++++++++++++++---- speeduino/globals.h | 6 +++--- speeduino/speeduino.ino | 7 +++++++ 3 files changed, 44 insertions(+), 7 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 89186c02..785b24c1 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -216,7 +216,7 @@ page = 2 baroCorr = bits, U08, 38, [3:3], "Off", "On" injLayout = bits, U08, 38, [4:5], "Paired", "Semi-Sequential", "INVALID", "Sequential" perToothIgn= bits, U08, 38, [6:6], "No", "Yes" - unused2-38h= bits, U08, 38, [7:7], "No", "Yes" + dfcoEnabled= bits, U08, 38, [7:7], "Off", "On" primePulse = scalar, U08, 39, "ms", 0.1, 0.0, 0.0, 25.5, 1 dutyLim = scalar, U08, 40, "%", 1.0, 0.0, 0.0, 100.0, 0 @@ -293,8 +293,7 @@ page = 4 ;Dwell control dwellcont = bits, U08, 12, [0:0], "INVALID", "Dwell control" useDwellLim= bits, U08, 12, [1:1], "Off", "On" - sparkMode = bits, U08, 12, [2:3], "Wasted Spark", "Single Channel", "Wasted COP", "Sequential" - dfcoEnabled= bits, U08, 12, [4:4], "Off", "On" + sparkMode = bits, U08, 12, [2:4], "Wasted Spark", "Single Channel", "Wasted COP", "Sequential", "Rotary", INVALID, INVALID, INVALID TrigFilter = bits, U08, 12, [5:6], "Off", "Weak", "Medium", "Aggressive" ignCranklock=bits, U08, 12, [7:7], "Off", "On" dwellcrank = scalar, U08, 13, "ms", 0.1, 0, 0, 25, 1 @@ -700,7 +699,21 @@ page = 11 #endif crankingEnrichValues= array, U08, 4, [4], "%", 1.0, 0.0, 0, 255, 0 ; Values for the cranking enrichment curve - unused11_8_192 = array, U08, 8,[184], "RPM", 100.0, 0.0, 100, 25500, 0 + rotaryType = bits , U08, 8, [0:1], "FC", "FD", "RX8", "INVALID" + unused11-8c = bits , U08, 8, [2:2], "Off","On" + unused11-8d = bits , U08, 8, [3:3], "Off","On" + unused11-8e = bits , U08, 8, [4:4], "Off","On" + unused11-8f = bits , U08, 8, [5:5], "Off","On" + unused11-8g = bits , U08, 8, [6:6], "Off","On" + unused11-8h = bits , U08, 8, [7:7], "Off","On" + + rotarySplitValues = array, U08, 9, [8], "degrees", 1.0, 0.0, 0.0, 40, 0 +#if SPEED_DENSITY + rotarySplitBins = array, U08, 17, [8], "kPa", 2.0, 0.0, 0.0, 511.0, 0 +#elif ALPHA_N + rotarySplitBins = array, U08, 17, [8], "TPS", 2.0, 0.0, 0.0, 100.0, 0 +#endif + unused11_8_192 = array, U08, 25,[167], "RPM", 100.0, 0.0, 100, 25500, 0 ;------------------------------------------------------------------------------- @@ -843,6 +856,7 @@ menuDialog = main subMenu = dwellSettings, "Dwell settings" subMenu = dwell_correction_curve, "Dwell Compensation" subMenu = iat_retard_curve, "&IAT Retard" + subMenu = rotary_ignition, "Rotary Ignition", { sparkMode == 4 } ;subMenu = wheelsim, "Stim for wheel" ;subMenu = oddwheel, "Oddfire Wheel settings", 7, { wheelon && oddfire } @@ -1362,6 +1376,10 @@ menuDialog = main field = "Note: Set the maximum dwell time at least 3ms above" field = "your desired dwell time (Including cranking)" + dialog = rotary_ignition, "Rotary Ignition", 4 + field = "Ignition Configuration", rotaryType + panel = rotaryTrailing_curve + dialog = RevLimiterS, "Rev Limiter", 4 topicHelp = "http://speeduino.com/wiki/index.php/Rev_Limits" field = "Rev Limiter" @@ -1902,6 +1920,18 @@ cmdtestspk450dc = "E\x03\x0C" xBins = iacBins, coolant yBins = iacCLValues + curve = rotaryTrailing_curve, "Rotary Trailing Split" + columnLabel = "Engine load", "Split" + yAxis = 0, 40, 4 +#if SPEED_DENSITY + xBins = rotarySplitBins, map + xAxis = 0, 250, 5 +#else + xBins = rotarySplitBins, throttle + xAxis = 0, 100, 5 +#endif + yBins = rotarySplitValues + ; Warmup enrichment curve curve = warmup_curve, "Warmup Enrichment (WUE) Curve" ;topicHelp = "file://$getProjectsDirPath()/docs/xxx.pdf#wue" diff --git a/speeduino/globals.h b/speeduino/globals.h index f1c3783e..7f66dea5 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -83,6 +83,7 @@ #define IGN_MODE_SINGLE 1 #define IGN_MODE_WASTEDCOP 2 #define IGN_MODE_SEQUENTIAL 3 +#define IGN_MODE_ROTARY 4 #define SIZE_BYTE 8 #define SIZE_INT 16 @@ -322,7 +323,7 @@ struct config1 { byte baroCorr : 1; byte injLayout : 2; byte perToothIgn : 1; - byte unused2_38h : 1; + byte dfcoEnabled : 1; //Whether or not DFCO is turned on byte primePulse; byte dutyLim; @@ -381,8 +382,7 @@ struct config2 { byte dwellCont : 1; //Fixed duty dwell control byte useDwellLim : 1; //Whether the dwell limiter is off or on - byte sparkMode : 2; //Spark output mode (Eg Wasted spark, single channel or Wasted COP) - byte dfcoEnabled : 1; //Whether or not DFCO is turned on + byte sparkMode : 3; //Spark output mode (Eg Wasted spark, single channel or Wasted COP) byte triggerFilter : 2; //The mode of trigger filter being used (0=Off, 1=Light (Not currently used), 2=Normal, 3=Aggressive) byte ignCranklock : 1; //Whether or not the ignition timing during cranking is locked to a CAS pulse. Only currently valid for Basic distributor and 4G63. diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index eedfbeae..188849cd 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -583,6 +583,13 @@ void setup() ign5EndFunction = endCoil5Charge; break; + case IGN_MODE_ROTARY: + ign1StartFunction = beginCoil1Charge; + ign1EndFunction = endCoil1Charge; + ign2StartFunction = beginCoil1Charge; + ign2EndFunction = endCoil1Charge; + + default: //Wasted spark (Shouldn't ever happen anyway) ign1StartFunction = beginCoil1Charge; From f9609afeb94e8416d6935b6355f02b43e3e5b3ba Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Wed, 23 Aug 2017 08:46:06 +1000 Subject: [PATCH 073/133] Correct wrong resistor value on v0.4.3 schematic (BOM was correct) --- reference/hardware/v0.4/schematic v0.4.3.fzz | Bin 226868 -> 226805 bytes .../hardware/v0.4/schematic v0.4.3_schem.png | Bin 1654918 -> 1656158 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/reference/hardware/v0.4/schematic v0.4.3.fzz b/reference/hardware/v0.4/schematic v0.4.3.fzz index 1d99758ee95161efc1a32a1128ba21c927d566bb..4e2f2bff03ee18c6e56f672be2306a24d7c54118 100644 GIT binary patch literal 226805 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