From eb30daebf50b407617c7baabd3b1ad18d76ec702 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 14 Jan 2019 15:28:13 -0500 Subject: [PATCH 1/7] add fanWhenOff option --- reference/speeduino.ini | 6 ++++-- speeduino/auxiliaries.ino | 5 +++-- speeduino/globals.h | 4 +++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 16a8a7c6..ecd5c524 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -151,7 +151,7 @@ endianness = little nPages = 10 - pageSize = 288, 128, 288, 128, 288, 128, 240, 192, 192, 192 + pageSize = 288, 128, 288, 128, 288, 136, 240, 192, 192, 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" @@ -532,7 +532,8 @@ page = 6 ; Begin fan control vairables 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", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "INVALID" + 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", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "INVALID" + fanWhenOff = bits, U08, 128, [0:0], "No", "Yes" #if CELSIUS 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 @@ -1708,6 +1709,7 @@ menuDialog = main dialog = fanSettings,"Fan Settings",7 field = "Fan Mode", fanEnable + field = "Fan when off", fanWhenOff, { fanEnable } field = "Fan output pin", fanPin, { fanEnable } field = "Fan Output Inverted", fanInv , { fanEnable } field = "Fan temperature SP", fanSP, { fanEnable } diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index e578f16a..35b2a24c 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -32,15 +32,16 @@ void fanControl() { int onTemp = (int)configPage6.fanSP - CALIBRATION_TEMPERATURE_OFFSET; int offTemp = onTemp - configPage6.fanHyster; + bool fanPermit = fanWhenOff ? true : BIT_CHECK(currentStatus.engine, BIT_ENGINE_RUN) - if ( currentStatus.coolant >= onTemp ) + if ( currentStatus.coolant >= onTemp && fanPermit ) { //Fan needs to be turned on. Checked for normal or inverted fan signal if( configPage6.fanInv == 0 ) { FAN_PIN_HIGH(); } else { FAN_PIN_LOW(); } currentStatus.fanOn = true; } - else if ( currentStatus.coolant <= offTemp ) + else if ( currentStatus.coolant <= offTemp || !fanPermit ) { //Fan needs to be turned off. Checked for normal or inverted fan signal if( configPage6.fanInv == 0 ) { FAN_PIN_LOW(); } diff --git a/speeduino/globals.h b/speeduino/globals.h index 8ffea6ea..8aadf8ec 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -208,7 +208,7 @@ const char TSfirmwareVersion[] PROGMEM = "Speeduino"; const byte data_structure_version = 2; //This identifies the data structure when reading / writing. //const byte page_size = 64; -const int16_t npage_size[11] PROGMEM = {0,288,128,288,128,288,128,240,192,192,192}; +const int16_t npage_size[11] PROGMEM = {0,288,128,288,128,288,136,240,192,192,192}; //const byte page11_size = 128; #define MAP_PAGE_SIZE 288 @@ -692,6 +692,8 @@ struct config6 { byte fanHyster; // Fan hysteresis byte fanFreq; // Fan PWM frequency byte fanPWMBins[4]; //Temperature Bins for the PWM fan control + byte fanWhenOff : 1; // Only run fan when engine is running + #if defined(CORE_AVR) }; #else From e6f9ee07b588bcbdc48f09c46a7c65647b5373a3 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 14 Jan 2019 15:53:46 -0500 Subject: [PATCH 2/7] fixed scope issue with fanWhenOff --- reference/speeduino.ini | 6 +++--- speeduino/auxiliaries.ino | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index ecd5c524..7d9fdbb0 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -533,7 +533,6 @@ page = 6 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", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "INVALID" - fanWhenOff = bits, U08, 128, [0:0], "No", "Yes" #if CELSIUS 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 @@ -547,8 +546,9 @@ page = 6 #else fanPWMBins = array, U08, 124, [4], "F", 1.8, -22.23, -40, 215, 0 #endif - - + fanWhenOff = bits, U08, 128, [0:0], "No", "Yes" + unused_fan_bits = bits, U08, 128,[1:7] + unused_129_135 = array, U08, 129,[7] ;-------------------------------------------------- ;Boost and vvt maps (Page 7) ;-------------------------------------------------- diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 35b2a24c..913737b5 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -32,7 +32,7 @@ void fanControl() { int onTemp = (int)configPage6.fanSP - CALIBRATION_TEMPERATURE_OFFSET; int offTemp = onTemp - configPage6.fanHyster; - bool fanPermit = fanWhenOff ? true : BIT_CHECK(currentStatus.engine, BIT_ENGINE_RUN) + bool fanPermit = configPage6.fanWhenOff ? true : BIT_CHECK(currentStatus.engine, BIT_ENGINE_RUN); if ( currentStatus.coolant >= onTemp && fanPermit ) { From bcc675f278534c11f2a8a6c04d31e3ff312a5812 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 14 Jan 2019 16:01:03 -0500 Subject: [PATCH 3/7] update struct padding --- reference/speeduino.ini | 2 +- speeduino/globals.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 7d9fdbb0..02274a87 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -548,7 +548,7 @@ page = 6 #endif fanWhenOff = bits, U08, 128, [0:0], "No", "Yes" unused_fan_bits = bits, U08, 128,[1:7] - unused_129_135 = array, U08, 129,[7] + unused6_129_135 = array, U08, 129,[7] ;-------------------------------------------------- ;Boost and vvt maps (Page 7) ;-------------------------------------------------- diff --git a/speeduino/globals.h b/speeduino/globals.h index 8aadf8ec..88e9c90b 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -692,7 +692,11 @@ struct config6 { byte fanHyster; // Fan hysteresis byte fanFreq; // Fan PWM frequency byte fanPWMBins[4]; //Temperature Bins for the PWM fan control + byte fanWhenOff : 1; // Only run fan when engine is running + byte fanUnused : 7; + + byte unused6_129_135[7]; #if defined(CORE_AVR) }; From 1a7750b2a2b738353fd8196eabb1743e58ea9087 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 15 Jan 2019 08:52:39 -0500 Subject: [PATCH 4/7] ternary to if/else --- speeduino/auxiliaries.ino | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index 913737b5..d1fcb3e7 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -32,7 +32,10 @@ void fanControl() { int onTemp = (int)configPage6.fanSP - CALIBRATION_TEMPERATURE_OFFSET; int offTemp = onTemp - configPage6.fanHyster; - bool fanPermit = configPage6.fanWhenOff ? true : BIT_CHECK(currentStatus.engine, BIT_ENGINE_RUN); + bool fanPermit = false; + + if ( configPage6.fanWhenOff ) { fanPermit = true; } + else { fanPermit = BIT_CHECK(currentStatus.engine, BIT_ENGINE_RUN); } if ( currentStatus.coolant >= onTemp && fanPermit ) { From ff766c3293d6c1cd13a37cd5e90abb07ca6bb950 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 16 Jan 2019 07:55:04 -0500 Subject: [PATCH 5/7] changed memory location --- reference/speeduino.ini | 10 ++++++---- speeduino/auxiliaries.ino | 2 +- speeduino/globals.h | 11 +++++------ 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 02274a87..8861a390 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -304,7 +304,11 @@ page = 2 baroMax = scalar, U16, 65, "kpa", 1.0, 0.0, 0.0, 25500, 0 EMAPMin = scalar, S08, 67, "kpa", 1.0, 0.0, -100, 127.0, 0 EMAPMax = scalar, U16, 68, "kpa", 1.0, 0.0, 0.0, 25500, 0 - unused2-67 = array, U08, 70, [57], "%", 1.0, 0.0, 0.0, 255, 0 + + fanWhenOff = bits, U08, 70, [0:0], "No", "Yes" + unused_fan_bits = bits, U08, 70,[1:7] + + unused2-67 = array, U08, 71, [56], "%", 1.0, 0.0, 0.0, 255, 0 ;-------------------------------------------------- @@ -546,9 +550,7 @@ page = 6 #else fanPWMBins = array, U08, 124, [4], "F", 1.8, -22.23, -40, 215, 0 #endif - fanWhenOff = bits, U08, 128, [0:0], "No", "Yes" - unused_fan_bits = bits, U08, 128,[1:7] - unused6_129_135 = array, U08, 129,[7] + ;-------------------------------------------------- ;Boost and vvt maps (Page 7) ;-------------------------------------------------- diff --git a/speeduino/auxiliaries.ino b/speeduino/auxiliaries.ino index d1fcb3e7..2b48c08e 100644 --- a/speeduino/auxiliaries.ino +++ b/speeduino/auxiliaries.ino @@ -34,7 +34,7 @@ void fanControl() int offTemp = onTemp - configPage6.fanHyster; bool fanPermit = false; - if ( configPage6.fanWhenOff ) { fanPermit = true; } + if ( configPage2.fanWhenOff ) { fanPermit = true; } else { fanPermit = BIT_CHECK(currentStatus.engine, BIT_ENGINE_RUN); } if ( currentStatus.coolant >= onTemp && fanPermit ) diff --git a/speeduino/globals.h b/speeduino/globals.h index 88e9c90b..156957b1 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -522,7 +522,11 @@ struct config2 { int8_t EMAPMin; //Must be signed uint16_t EMAPMax; - byte unused1_70[58]; + + byte fanWhenOff : 1; // Only run fan when engine is running + byte fanUnused : 7; + + byte unused1_70[57]; #if defined(CORE_AVR) }; @@ -693,11 +697,6 @@ struct config6 { byte fanFreq; // Fan PWM frequency byte fanPWMBins[4]; //Temperature Bins for the PWM fan control - byte fanWhenOff : 1; // Only run fan when engine is running - byte fanUnused : 7; - - byte unused6_129_135[7]; - #if defined(CORE_AVR) }; #else From b91a66288f7509f73ae2a2d4559ba09b582e0ab1 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 16 Jan 2019 08:01:09 -0500 Subject: [PATCH 6/7] fixed speedy.ini --- reference/speeduino.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 8861a390..05cfa6c1 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -151,7 +151,7 @@ endianness = little nPages = 10 - pageSize = 288, 128, 288, 128, 288, 136, 240, 192, 192, 192 + pageSize = 288, 128, 288, 128, 288, 128, 240, 192, 192, 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" From 8e67aa229903cf27dd7cec88c3c951333011c9c2 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 16 Jan 2019 08:03:22 -0500 Subject: [PATCH 7/7] revert globals.h config6 back to 128b --- speeduino/globals.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/speeduino/globals.h b/speeduino/globals.h index 156957b1..5962f1a5 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -208,7 +208,7 @@ const char TSfirmwareVersion[] PROGMEM = "Speeduino"; const byte data_structure_version = 2; //This identifies the data structure when reading / writing. //const byte page_size = 64; -const int16_t npage_size[11] PROGMEM = {0,288,128,288,128,288,136,240,192,192,192}; +const int16_t npage_size[11] PROGMEM = {0,288,128,288,128,288,128,240,192,192,192}; //const byte page11_size = 128; #define MAP_PAGE_SIZE 288