Initial VSS dialog

This commit is contained in:
Josh Stewart 2020-04-20 23:43:02 +10:00
parent fae78b95f7
commit 5366695f96
3 changed files with 109 additions and 41 deletions

View File

@ -1221,6 +1221,22 @@ page = 11
defaultValue = fuelLoadMax, 511
defaultValue = ignLoadMax, 511
;VSS related settings
defaultValue = vssRatio1, 10.0
defaultValue = vssRatio2, 16.0
defaultValue = vssRatio3, 22.0
defaultValue = vssRatio4, 28.0
defaultValue = vssRatio5, 34.0
defaultValue = vssRatio6, 40.0
controllerPriority = vssRatio1
controllerPriority = vssRatio2
controllerPriority = vssRatio3
controllerPriority = vssRatio4
controllerPriority = vssRatio5
controllerPriority = vssRatio6
defaultValue = vssPulsesPerKm, 3000
defaultValue = vssSmoothing, 128
;pinLayout = bits, U08, 15, [0:7], "Speeduino v0.1", "Speeduino v0.2", "Speeduino v0.3", "Speeduino v0.4", "INVALID", "INVALID", "01-05 MX5 PNP", "INVALID", "96-97 MX5 PNP", "NA6 MX5 PNP", "Turtana PCB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Plazomat I/O 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Daz V6 Shield 0.1", "BMW PnP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NO2C", "UA4C", "INVALID", "INVALID", "INVALID", "DIY-EFI CORE4 v1.0", "INVALID", "INVALID", "INVALID", "INVALID", "dvjcodec Teensy RevA", "dvjcodec Teensy RevB", "INVALID", "INVALID", "INVALID", "DropBear", "INVALID", "INVALID", "INVALID", "INVALID", "Black STM32F407VET6 V0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
defaultValue = boardFuelOutputs, 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 6 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
defaultValue = boardIgnOutputs, 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 6 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
@ -1347,6 +1363,7 @@ menuDialog = main
subMenu = LaunchControl, "Launch Control / Flat Shift"
subMenu = fuelpump, "Fuel Pump"
subMenu = NitrousControl, "Nitrous"
subMenu = vssSettings, "VSS and Gear detection"
subMenu = std_separator
subMenu = boostSettings, "Boost Control"
subMenu = boostLoad, "Boost Targets/Load", 8, { boostEnabled }
@ -1548,7 +1565,7 @@ menuDialog = main
caninput_sel14a = "This Enables local analog/digital on input channel 14 "
caninput_sel15a = "This Enables local analog/digital on input channel 15 "
caninput_sel0b = "This Enables External CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 0 "
caninput_sel0b = "This Enables External CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 0 "
caninput_sel1b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 1 "
caninput_sel2b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 2 "
caninput_sel3b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 3 "
@ -1556,7 +1573,7 @@ menuDialog = main
caninput_sel5b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 5 "
caninput_sel6b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 6 "
caninput_sel7b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 7 "
caninput_sel8b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 8 "
caninput_sel8b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 8 "
caninput_sel9b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 9 "
caninput_sel10b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 10 "
caninput_sel11b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 11 "
@ -1762,8 +1779,48 @@ menuDialog = main
topicHelp = "http://speeduino.com/wiki/index.php/Knock"
panel = knock_settings_top, North
panel = knock_windows, South
dialog = vss_gear_1, "", xAxis
field = "Speed ratio 1", vssRatio1
commandButton = "Set Gear 1", cmdVSSratio1, {vssEnable}
dialog = vss_gear_2, "", xAxis
field = "Speed ratio 2", vssRatio2
commandButton = "Set Gear 2", cmdVSSratio2, {vssEnable}
dialog = vss_gear_3, "", xAxis
field = "Speed ratio 3", vssRatio3
commandButton = "Set Gear 3", cmdVSSratio3, {vssEnable}
dialog = vss_gear_4, "", xAxis
field = "Speed ratio 4", vssRatio4
commandButton = "Set Gear 4", cmdVSSratio4, {vssEnable}
dialog = vss_gear_5, "", xAxis
field = "Speed ratio 5", vssRatio5
commandButton = "Set Gear 5", cmdVSSratio5, {vssEnable}
dialog = vss_gear_6, "", xAxis
field = "Speed ratio 6", vssRatio6
commandButton = "Set Gear 6", cmdVSSratio1, {vssEnable}
dialog = vss_gear_detection, "Gear Detection", yAxis
field = "After setting 'Pulses per km/mile' above"
field = "Drive in each gear (any speed) and press appropriate button"
panel = vss_gear_1
panel = vss_gear_2
panel = vss_gear_3
panel = vss_gear_4
panel = vss_gear_5
panel = vss_gear_6
dialog = vss_calibration, "VSS Calibration"
field = "Pulses Per KM", vssPulsesPerKm, {vssEnable}
commandButton = "50km/h auto-calibrate", cmdVSS50kmh, {vssEnable}
field = "Smoothing Factor", vssSmoothing, {vssEnable}
dialog = vssSettings, "", yAxis
field = "VSS Enabled", vssEnable
field = "VSS Pin", vssPin, {vssEnable}
field = "Use Pullup", vssPullup, {vssEnable}
panel = vss_calibration
panel = vss_gear_detection
dialog = tacho, "Tacho"
field = "Output pin", tachoPin
@ -2940,46 +2997,53 @@ menuDialog = main
; and may create error messages.
; It is expected that these commands would not typically alter any ram mapped to a Constant.
cmdStopTestMode = "E\x01\x00"
cmdStopTestMode = "E\x01\x00"
cmdEnableTestMode = "E\x01\x01"
cmdtestinj1on = "E\x02\x01"
cmdtestinj1off = "E\x02\x02"
cmdtestinj150dc = "E\x02\x03"
cmdtestinj2on = "E\x02\x04"
cmdtestinj2off = "E\x02\x05"
cmdtestinj250dc = "E\x02\x06"
cmdtestinj3on = "E\x02\x07"
cmdtestinj3off = "E\x02\x08"
cmdtestinj350dc = "E\x02\x09"
cmdtestinj4on = "E\x02\x0A"
cmdtestinj4off = "E\x02\x0B"
cmdtestinj450dc = "E\x02\x0C"
cmdtestinj5on = "E\x02\x0D"
cmdtestinj5off = "E\x02\x0E"
cmdtestinj550dc = "E\x02\x0F"
cmdtestinj6on = "E\x02\x10"
cmdtestinj6off = "E\x02\x11"
cmdtestinj650dc = "E\x02\x12"
cmdtestinj7on = "E\x02\x13"
cmdtestinj7off = "E\x02\x14"
cmdtestinj750dc = "E\x02\x15"
cmdtestinj8on = "E\x02\x16"
cmdtestinj8off = "E\x02\x17"
cmdtestinj850dc = "E\x02\x18"
cmdtestinj1on = "E\x02\x01"
cmdtestinj1off = "E\x02\x02"
cmdtestinj150dc = "E\x02\x03"
cmdtestinj2on = "E\x02\x04"
cmdtestinj2off = "E\x02\x05"
cmdtestinj250dc = "E\x02\x06"
cmdtestinj3on = "E\x02\x07"
cmdtestinj3off = "E\x02\x08"
cmdtestinj350dc = "E\x02\x09"
cmdtestinj4on = "E\x02\x0A"
cmdtestinj4off = "E\x02\x0B"
cmdtestinj450dc = "E\x02\x0C"
cmdtestinj5on = "E\x02\x0D"
cmdtestinj5off = "E\x02\x0E"
cmdtestinj550dc = "E\x02\x0F"
cmdtestinj6on = "E\x02\x10"
cmdtestinj6off = "E\x02\x11"
cmdtestinj650dc = "E\x02\x12"
cmdtestinj7on = "E\x02\x13"
cmdtestinj7off = "E\x02\x14"
cmdtestinj750dc = "E\x02\x15"
cmdtestinj8on = "E\x02\x16"
cmdtestinj8off = "E\x02\x17"
cmdtestinj850dc = "E\x02\x18"
cmdtestspk1on = "E\x03\x01"
cmdtestspk1off = "E\x03\x02"
cmdtestspk150dc = "E\x03\x03"
cmdtestspk2on = "E\x03\x04"
cmdtestspk2off = "E\x03\x05"
cmdtestspk250dc = "E\x03\x06"
cmdtestspk3on = "E\x03\x07"
cmdtestspk3off = "E\x03\x08"
cmdtestspk350dc = "E\x03\x09"
cmdtestspk4on = "E\x03\x0A"
cmdtestspk4off = "E\x03\x0B"
cmdtestspk450dc = "E\x03\x0C"
cmdtestspk1on = "E\x03\x01"
cmdtestspk1off = "E\x03\x02"
cmdtestspk150dc = "E\x03\x03"
cmdtestspk2on = "E\x03\x04"
cmdtestspk2off = "E\x03\x05"
cmdtestspk250dc = "E\x03\x06"
cmdtestspk3on = "E\x03\x07"
cmdtestspk3off = "E\x03\x08"
cmdtestspk350dc = "E\x03\x09"
cmdtestspk4on = "E\x03\x0A"
cmdtestspk4off = "E\x03\x0B"
cmdtestspk450dc = "E\x03\x0C"
cmdVSSratio1 = "E\x99\x01"
cmdVSSratio2 = "E\x99\x02"
cmdVSSratio3 = "E\x99\x03"
cmdVSSratio4 = "E\x99\x04"
cmdVSSratio5 = "E\x99\x05"
cmdVSSratio6 = "E\x99\x06"
; -------------------------------------------------------------
; Help down here

View File

@ -651,7 +651,7 @@ struct config2 {
byte vssPullup : 1;
uint16_t vssPulsesPerKm;
byte vssSpare;
byte vssSmoothing;
uint16_t vssRatio1;
uint16_t vssRatio2;
byte vssRatio3;

View File

@ -21,6 +21,8 @@
#define KNOCK_MODE_DIGITAL 1
#define KNOCK_MODE_ANALOG 2
#define VSS_GEAR_HYSTERESIS 2
/*
#if defined(CORE_AVR)
#define ANALOG_ISR
@ -42,6 +44,8 @@ unsigned long TPSlast_time; //The time the previous TPS sample was taken
byte MAPlast; /**< The previous MAP reading */
unsigned long MAP_time; //The time the MAP sample was taken
unsigned long MAPlast_time; //The time the previous MAP sample was taken
unsigned long vssLastPulseTime; /**< The times of the last VSS_NUM_SAMPLES pulses of the VSS are stored in this array */
unsigned long vssLastMinusOnePulseTime; /**< The times of the last VSS_NUM_SAMPLES pulses of the VSS are stored in this array */
//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;