From 57f2a08e2620f4dac674edb7632466a5272ad93d Mon Sep 17 00:00:00 2001 From: ConnerMcLaughlin Date: Sun, 25 Sep 2016 13:32:12 -0500 Subject: [PATCH 1/5] Added support for both NO and NC clutch switch on launch In many car designs a NC clutch switch acts as NO switch because the pressure plate is forcing the switch open when clutch is released and vise versa for a NO clutch switch. But in almost all designs I've seen they are always grounding. A hot switching option may be added later for exceptions to that design standard. --- utils.ino | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/utils.ino b/utils.ino index ed08fbe..1221b78 100644 --- a/utils.ino +++ b/utils.ino @@ -362,8 +362,9 @@ void setPinMapping(byte boardID) pinMode(pinTrigger2, INPUT); pinMode(pinTrigger3, INPUT); pinMode(pinFlex, INPUT_PULLUP); //Standard GM / Continental flex sensor requires pullup - if (configPage3.launchHiLo) { pinMode(pinLaunch, INPUT); } - else { pinMode(pinLaunch, INPUT_PULLUP); } //If launch triggers on LOW signal, then set a pull up as the default + pinMode(pinLaunch, INPUT_PULLUP); //This should work for both NO and NC grounding switches +// if (configPage3.launchHiLo) { pinMode(pinLaunch, INPUT); } +// else { pinMode(pinLaunch, INPUT_PULLUP); } //If launch triggers on LOW signal, then set a pull up as the default //Set default values digitalWrite(pinMAP, HIGH); From 389afa1e25f572a91fcc0196b5fb9af0ee458c4a Mon Sep 17 00:00:00 2001 From: ConnerMcLaughlin Date: Mon, 26 Sep 2016 11:19:04 -0500 Subject: [PATCH 2/5] Adding variable for launch control pullup resistor option --- globals.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/globals.h b/globals.h index 2f5600a..64888e6 100644 --- a/globals.h +++ b/globals.h @@ -346,7 +346,9 @@ struct config3 { byte boostKP; byte boostKI; byte boostKD; - byte unused60; + + byte lnchPullRes :2; + byte unused60 : 6; byte unused61; byte unused62; byte unused63; From 83347aabf6402544eba0ff32b6672793b52bef2f Mon Sep 17 00:00:00 2001 From: ConnerMcLaughlin Date: Mon, 26 Sep 2016 11:50:04 -0500 Subject: [PATCH 3/5] Added TS setting for launch control pullup option --- reference/speeduino.ini | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 969c48b..b122e40 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -335,9 +335,9 @@ page = 6 egoKI = scalar, U08, 2, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) egoKD = scalar, U08, 3, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) #if CELSIUS - egoTemp = scalar, U08, 4, "°C", 1.0, -40, -40, 102.0, 0 + egoTemp = scalar, U08, 4, "°C", 1.0, -40, -40, 102.0, 0 #else - egoTemp = scalar, U08, 4, "°F", 1.8, -22.23, -40, 215.0, 0 + egoTemp = scalar, U08, 4, "°F", 1.8, -22.23, -40, 215.0, 0 #endif egoCount = scalar, U08, 5, "", 4.0, 0.0, 4.0, 255.0, 0 ; * ( 1 byte) egoDelta = scalar, U08, 6, "%", 1.0, 0.0, 0.0, 255.0, 0 ; * ( 1 byte) @@ -380,7 +380,9 @@ page = 6 boostKP = scalar, U08, 57, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) boostKI = scalar, U08, 58, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) boostKD = scalar, U08, 59, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) - unused6-60 = scalar, U08, 60, "RPM", 100.0, 0.0, 100, 25500, 0 + + lnchPullRes = bits, U08, 60 [0:1], "Float" , "Pullup", "INVALID", "INVALID" + unused6-60 = bits, U08, 60, [2:7], "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" unused6-61 = scalar, U08, 61, "RPM", 100.0, 0.0, 100, 25500, 0 unused6-62 = scalar, U08, 62, "RPM", 100.0, 0.0, 100, 25500, 0 unused6-63 = scalar, U08, 63, "RPM", 100.0, 0.0, 100, 25500, 0 @@ -428,11 +430,11 @@ page = 7 unused7-55e = bits, U08, 56, [6:6], "No", "Yes" unused7-55f = bits, U08, 56, [7:7], "No", "Yes" #if CELSIUS - fanSP = scalar, U08, 57, "°C", 1.0, -40, -40, 215.0, 0 - fanHyster = scalar, U08, 58, "°C", 1.0, -40, -40, 215.0, 0 + fanSP = scalar, U08, 57, "°C", 1.0, -40, -40, 215.0, 0 + fanHyster = scalar, U08, 58, "°C", 1.0, -40, -40, 215.0, 0 #else - fanSP = scalar, U08, 57, "°F", 1.8, -22.23, -40, 215.0, 0 - fanHyster = scalar, U08, 58, "°F", 1.8, -22.23, -40, 215.0, 0 + fanSP = scalar, U08, 57, "°F", 1.8, -22.23, -40, 215.0, 0 + fanHyster = scalar, U08, 58, "°F", 1.8, -22.23, -40, 215.0, 0 #endif fanFreq = scalar, U08 , 59, "Hz", 2.0, 0.0, 10, 511, 0 #if CELSIUS @@ -882,6 +884,7 @@ menuDialog = main field = "Enable Launch", launchEnable field = "Launch Input Pin", launchPin, { launchEnable } field = "Launch enabled when signal is",launchHiLo, { launchEnable } + field = "Launch Pullup Resistor", lnchPullRes, { launchEnable } field = "Soft rev limit", lnchSoftLim, { launchEnable } field = "Soft limit absolute timing", lnchRetard, { launchEnable } field = "Hard rev limit", lnchHardLim, { launchEnable } @@ -1329,8 +1332,8 @@ menuDialog = main 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 + 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 From 621e963c9a6b438cf3dd5e8bece9c3bd6d2b0adc Mon Sep 17 00:00:00 2001 From: ConnerMcLaughlin Date: Mon, 26 Sep 2016 12:01:52 -0500 Subject: [PATCH 4/5] Launch control pull resistor implementation. --- utils.ino | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utils.ino b/utils.ino index 1221b78..b0c07fc 100644 --- a/utils.ino +++ b/utils.ino @@ -362,9 +362,9 @@ 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.launchHiLo) { pinMode(pinLaunch, INPUT); } -// else { pinMode(pinLaunch, INPUT_PULLUP); } //If launch triggers on LOW signal, then set a pull up as the default +// pinMode(pinLaunch, INPUT_PULLUP); //This should work for both NO and NC grounding switches + if (configPage3.lnchPullRes) { pinMode(pinLaunch, INPUT_PULLUP); } + else { pinMode(pinLaunch, INPUT); } //If Launch Pull Resistor is not set make input float. //Set default values digitalWrite(pinMAP, HIGH); From e247f0193c044f1c80386e678a883edae20ac32c Mon Sep 17 00:00:00 2001 From: ConnerMcLaughlin Date: Mon, 26 Sep 2016 22:36:47 -0500 Subject: [PATCH 5/5] fixed a bug that bugged a TS bug not enough valids --- reference/speeduino.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index b122e40..b1b9934 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -382,7 +382,7 @@ page = 6 boostKD = scalar, U08, 59, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) lnchPullRes = bits, U08, 60 [0:1], "Float" , "Pullup", "INVALID", "INVALID" - unused6-60 = bits, U08, 60, [2:7], "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + unused6-60 = bits, U08, 60, [2:7], "ONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" unused6-61 = scalar, U08, 61, "RPM", 100.0, 0.0, 100, 25500, 0 unused6-62 = scalar, U08, 62, "RPM", 100.0, 0.0, 100, 25500, 0 unused6-63 = scalar, U08, 63, "RPM", 100.0, 0.0, 100, 25500, 0