diff --git a/firmware/console/binary/tunerstudio_outputs.h b/firmware/console/binary/tunerstudio_outputs.h index 9a1194ee4d..b01548a12c 100644 --- a/firmware/console/binary/tunerstudio_outputs.h +++ b/firmware/console/binary/tunerstudio_outputs.h @@ -78,6 +78,7 @@ typedef struct { unsigned int isPedalError : 1; // bit 26 unsigned int isKnockChipOk : 1; // bit 27 unsigned int launchTriggered : 1; // bit 28 + unsigned int isTps2Error : 1; // bit 29 // RPM, vss scaled_channel rpm; // 4 diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index 2fa2a3fd1f..74e7c0db1d 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -491,6 +491,8 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_ SensorResult tps2 = Sensor::get(SensorType::Tps2); tsOutputChannels->throttle2Position = tps2.Value; + // If we don't have a TPS2 at all, don't turn on the failure light + tsOutputChannels->isTps2Error = !tps2.Valid && Sensor::hasSensor(SensorType::Tps2); SensorResult pedal = Sensor::get(SensorType::AcceleratorPedal); tsOutputChannels->pedalPosition = pedal.Value; diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index 7b694e8636..a21df51f53 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -204,6 +204,7 @@ enable2ndByteCanID = false ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; ; RPM, vss RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 @@ -1143,6 +1144,7 @@ gaugeCategory = DynoView ; error codes indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black