diff --git a/firmware/controllers/can/can_dash.cpp b/firmware/controllers/can/can_dash.cpp index 1732d108c0..1728457dba 100644 --- a/firmware/controllers/can/can_dash.cpp +++ b/firmware/controllers/can/can_dash.cpp @@ -1103,17 +1103,20 @@ void canDashboardHaltech(CanCycle cycle) { } } +//Based on AIM can protocol +//https://www.aimtechnologies.com/support/racingecu/AiM_CAN_101_eng.pdf + struct Aim5f0 { scaled_channel Rpm; - scaled_channel Tps; - scaled_channel Pps; + scaled_channel Tps; + scaled_channel Pps; scaled_channel Vss; }; static void populateFrame(Aim5f0& msg) { msg.Rpm = Sensor::getOrZero(SensorType::Rpm); - msg.Tps = 10 * Sensor::getOrZero(SensorType::Tps1); - msg.Pps = 10 * Sensor::getOrZero(SensorType::AcceleratorPedal); + msg.Tps = Sensor::getOrZero(SensorType::Tps1); + msg.Pps = Sensor::getOrZero(SensorType::AcceleratorPedal); msg.Vss = Sensor::getOrZero(SensorType::VehicleSpeed); } @@ -1133,17 +1136,17 @@ static void populateFrame(Aim5f1& msg) { } struct Aim5f2 { - scaled_channel Iat; - scaled_channel Ect; - scaled_channel FuelT; - scaled_channel OilT; + scaled_channel Iat; + scaled_channel Ect; + scaled_channel FuelT; + scaled_channel OilT; }; static void populateFrame(Aim5f2& msg) { - msg.Iat = (10 * Sensor::getOrZero(SensorType::Iat)) + 450; - msg.Ect = (10 * Sensor::getOrZero(SensorType::Clt)) + 450; - msg.FuelT = (10 * Sensor::getOrZero(SensorType::AuxTemp1)) + 450; - msg.OilT = (10 * Sensor::getOrZero(SensorType::AuxTemp2)) + 450; + msg.Iat = Sensor::getOrZero(SensorType::Iat) + 45; + msg.Ect = Sensor::getOrZero(SensorType::Clt) + 45; + msg.FuelT = Sensor::getOrZero(SensorType::AuxTemp1) + 45; + msg.OilT = Sensor::getOrZero(SensorType::AuxTemp2) + 45; } struct Aim5f3 { @@ -1165,7 +1168,7 @@ static void populateFrame(Aim5f3& msg) { struct Aim5f4 { scaled_channel Boost; - scaled_channel Vbat; + scaled_channel Vbat; scaled_channel FuelUse; scaled_channel Gear; }; @@ -1176,7 +1179,7 @@ static void populateFrame(Aim5f4& msg) { float boostBar = deltaKpa / 100; msg.Boost = boostBar; - msg.Vbat = 100 * Sensor::getOrZero(SensorType::BatteryVoltage); + msg.Vbat = Sensor::getOrZero(SensorType::BatteryVoltage); msg.FuelUse = 0; msg.Gear = 0; }