Merge pull request #188 from cmjdev/testing

Option to only run FAN when ENGINE ON
This commit is contained in:
Josh Stewart 2019-01-17 17:01:33 +11:00 committed by GitHub
commit c431caeafa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 6 deletions

View File

@ -304,7 +304,11 @@ page = 2
baroMax = scalar, U16, 65, "kpa", 1.0, 0.0, 0.0, 25500, 0 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 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 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
;-------------------------------------------------- ;--------------------------------------------------
@ -547,7 +551,6 @@ page = 6
fanPWMBins = array, U08, 124, [4], "F", 1.8, -22.23, -40, 215, 0 fanPWMBins = array, U08, 124, [4], "F", 1.8, -22.23, -40, 215, 0
#endif #endif
;-------------------------------------------------- ;--------------------------------------------------
;Boost and vvt maps (Page 7) ;Boost and vvt maps (Page 7)
;-------------------------------------------------- ;--------------------------------------------------
@ -1708,6 +1711,7 @@ menuDialog = main
dialog = fanSettings,"Fan Settings",7 dialog = fanSettings,"Fan Settings",7
field = "Fan Mode", fanEnable field = "Fan Mode", fanEnable
field = "Fan when off", fanWhenOff, { fanEnable }
field = "Fan output pin", fanPin, { fanEnable } field = "Fan output pin", fanPin, { fanEnable }
field = "Fan Output Inverted", fanInv , { fanEnable } field = "Fan Output Inverted", fanInv , { fanEnable }
field = "Fan temperature SP", fanSP, { fanEnable } field = "Fan temperature SP", fanSP, { fanEnable }

View File

@ -32,15 +32,19 @@ void fanControl()
{ {
int onTemp = (int)configPage6.fanSP - CALIBRATION_TEMPERATURE_OFFSET; int onTemp = (int)configPage6.fanSP - CALIBRATION_TEMPERATURE_OFFSET;
int offTemp = onTemp - configPage6.fanHyster; int offTemp = onTemp - configPage6.fanHyster;
bool fanPermit = false;
if ( currentStatus.coolant >= onTemp ) if ( configPage2.fanWhenOff ) { fanPermit = true; }
else { fanPermit = BIT_CHECK(currentStatus.engine, BIT_ENGINE_RUN); }
if ( currentStatus.coolant >= onTemp && fanPermit )
{ {
//Fan needs to be turned on. Checked for normal or inverted fan signal //Fan needs to be turned on. Checked for normal or inverted fan signal
if( configPage6.fanInv == 0 ) { FAN_PIN_HIGH(); } if( configPage6.fanInv == 0 ) { FAN_PIN_HIGH(); }
else { FAN_PIN_LOW(); } else { FAN_PIN_LOW(); }
currentStatus.fanOn = true; 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 //Fan needs to be turned off. Checked for normal or inverted fan signal
if( configPage6.fanInv == 0 ) { FAN_PIN_LOW(); } if( configPage6.fanInv == 0 ) { FAN_PIN_LOW(); }

View File

@ -522,7 +522,11 @@ struct config2 {
int8_t EMAPMin; //Must be signed int8_t EMAPMin; //Must be signed
uint16_t EMAPMax; 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) #if defined(CORE_AVR)
}; };
@ -692,6 +696,7 @@ struct config6 {
byte fanHyster; // Fan hysteresis byte fanHyster; // Fan hysteresis
byte fanFreq; // Fan PWM frequency byte fanFreq; // Fan PWM frequency
byte fanPWMBins[4]; //Temperature Bins for the PWM fan control byte fanPWMBins[4]; //Temperature Bins for the PWM fan control
#if defined(CORE_AVR) #if defined(CORE_AVR)
}; };
#else #else