Skip to content
martinl edited this page Dec 12, 2022 · 21 revisions

Openpilot signals

Global platform Gen2

  • Outback/Legacy 2020
    • can0 and can1 are swapped on eyesight connector (Subaru B car harness)
    • CruiseControl, Wheel_Speeds, ES_Brake, ES_Status, ES_Distance and Brake_Status messages have moved to CAN1
    • ["Brake_Pedal"]['Brake_Pedal'] signal is used to disengage ACC for brake and gas press

Global platform Hybrid

  • Crosstrek 2020 Hybrid
    • can0 and can1 are swapped on eyesight connector (Subaru B car harness)
    • CruiseControl, Transmission, ES_Status and ES_Distance messages are missing
    • ["Throttle"]['Throttle_Pedal'] is replaced with ["Throttle_Hybrid"]['Throttle_Pedal'] on can1
    • ["Transmission"]['Gear'] is Hybrid specific and on can1
    • ES_DashStatus is used instead of CruiseControl for Cruise_On and Cruise_Activated signals (FIXME: Find ES_Status Cruise_Activated equivalent)
    • ["Brake_Hybrid"]['Brake'] on can1 is used instead of ["Brake_Status"]['Brake']
    • ["Brake_Pedal"]['Brake_Pedal'] signal is used to disengage ACC for brake and gas press

subaru_global_2020_hybrid_generated.dbc

openpilot signal formula dbc signal
gas ["Throttle_Hybrid"]['Throttle_Pedal'] / 255. SG_ Throttle_Pedal : 32|8@1+ (1,0) [0|255] "" XXX
gasPressed gas > 1e-5
brakePressed ["Brake_Hybrid"]['Brake'] SG_ Brake_Pedal : 24|8@1+ (1,0) [0|1] "" XXX
brakeLights ret.brakePressed
wheelSpeeds.fl ["Wheel_Speeds"]['FL'] * CV.KPH_TO_MS SG_ FL : 51|13@1+ (0.057,0) [0|255] "kph" XXX
wheelSpeeds.fr ["Wheel_Speeds"]['FR'] * CV.KPH_TO_MS SG_ FR : 12|13@1+ (0.057,0) [0|255] "kph" XXX
wheelSpeeds.rl ["Wheel_Speeds"]['RL'] * CV.KPH_TO_MS SG_ RL : 38|13@1+ (0.057,0) [0|255] "kph" XXX
wheelSpeeds.rr ["Wheel_Speeds"]['RR'] * CV.KPH_TO_MS SG_ RR : 25|13@1+ (0.057,0) [0|255] "kph" XXX
leftBlinker ["Dashlights"]['LEFT_BLINKER'] SG_ LEFT_BLINKER : 50|1@1+ (1,0) [0|3] "" XXX
rightBlinker ["Dashlights"]['RIGHT_BLINKER'] SG_ RIGHT_BLINKER : 51|1@1+ (1,0) [0|1] "" XXX
leftBlindspot ["BSD_RCTA"]['L_ADJACENT'] == 1 SG_ L_ADJACENT : 49|1@1+ (1,0) [0|1] "" XXX
leftBlindspot ["BSD_RCTA"]['L_APPROACHING'] == 1 SG_ L_APPROACHING : 59|1@1+ (1,0) [0|1] "" XXX
rightBlindspot ["BSD_RCTA"]['R_ADJACENT'] == 1 SG_ R_ADJACENT : 48|1@1+ (1,0) [0|1] "" XXX
rightBlindspot ["BSD_RCTA"]['R_APPROACHING'] == 1 SG_ R_APPROACHING : 58|1@1+ (1,0) [0|1] "" XXX
can_gear ["Transmission"]['Gear'] SG_ Gear : 44|4@1+ (1,0) [0|15] "" XXX
steeringAngle ["Steering_Torque"]['Steering_Angle'] SG_ Steering_Angle : 32|16@1- (-0.0217,0) [0|255] "" X
steeringTorque ["Steering_Torque"]['Steer_Torque_Sensor'] SG_ Steer_Torque_Sensor : 16|11@1- (-1,0) [0|3] "" XXX
steeringTorqueEPS ["Steering_Torque"]['Steer_Torque_Output'] SG_ Steer_Torque_Output : 48|11@1- (-1,0) [-1000|1000] "" XXX
steeringPressed abs(ret.steeringTorque) > STEER_THRESHOLD[self.car_fingerprint]
cruiseState.enabled ["ES_DashStatus"]['Cruise_Activated'] != 0 SG_ Cruise_Activated : 36|1@1+ (1,0) [0|1] "" XXX
cruiseState.available ["ES_DashStatus"]['Cruise_On'] != 0 SG_ Cruise_On : 49|1@1+ (1,0) [0|1] "" XXX
cruiseState.speed ["ES_DashStatus"]['Cruise_Set_Speed'] * CV.KPH_TO_MS SG_ Cruise_Set_Speed : 40|8@1+ (1,0) [0|255] "" XXX
self.Units ["Dash_State"]['Units'] SG_ Units : 29|3@1+ (1,0) [0|7] "" XXX
seatbeltUnlatched ["Dashlights"]['SEATBELT_FL'] == 1 SG_ SEATBELT_FL : 48|1@1+ (1,0) [0|1] "" XXX
doorOpen ["BodyInfo"]['DOOR_OPEN_RR'] SG_ DOOR_OPEN_RR : 35|1@1+ (1,0) [0|1] "" XXX
doorOpen ["BodyInfo"]['DOOR_OPEN_RL'] SG_ DOOR_OPEN_RL : 34|1@1+ (1,0) [0|1] "" XXX
doorOpen ["BodyInfo"]['DOOR_OPEN_FR'] SG_ DOOR_OPEN_FR : 33|1@1+ (1,0) [0|3] "" XXX
doorOpen ["BodyInfo"]['DOOR_OPEN_FL'] SG_ DOOR_OPEN_FL : 32|1@1+ (1,0) [0|255] "" XXX
steerError ["Steering_Torque"]['Steer_Error_1'] == 1 SG_ Steer_Error_1 : 12|1@0+ (1,0) [0|1] "" XXX
steerWarning ["Steering_Torque"]['Steer_Warning'] == 1 SG_ Steer_Warning : 29|1@1+ (1,0) [0|1] "" XXX
self.es_lkas_msg copy(["ES_LKAS_State"]) BO_ 802 ES_LKAS_State: 8 XXX
self.brake_msg copy(["Brake_Pedal"]) BO_ 313 Brake_Pedal: 8 XXX

Global platform

subaru_global_2017_generated.dbc

openpilot signal formula dbc signal
gas ["Throttle"]['Throttle_Pedal'] / 255. SG_ Throttle_Pedal : 32|8@1+ (1,0) [0|255] "" XXX
gasPressed gas > 1e-5
brakePressed ["Brake_Status"]['Brake'] SG_ Brake : 62|1@1+ (1,0) [0|1] "" XXX
brakeLights ret.brakePressed
wheelSpeeds.fl ["Wheel_Speeds"]['FL'] * CV.KPH_TO_MS SG_ FL : 51|13@1+ (0.057,0) [0|255] "kph" XXX
wheelSpeeds.fr ["Wheel_Speeds"]['FR'] * CV.KPH_TO_MS SG_ FR : 12|13@1+ (0.057,0) [0|255] "kph" XXX
wheelSpeeds.rl ["Wheel_Speeds"]['RL'] * CV.KPH_TO_MS SG_ RL : 38|13@1+ (0.057,0) [0|255] "kph" XXX
wheelSpeeds.rr ["Wheel_Speeds"]['RR'] * CV.KPH_TO_MS SG_ RR : 25|13@1+ (0.057,0) [0|255] "kph" XXX
leftBlinker ["Dashlights"]['LEFT_BLINKER'] SG_ LEFT_BLINKER : 50|1@1+ (1,0) [0|3] "" XXX
rightBlinker ["Dashlights"]['RIGHT_BLINKER'] SG_ RIGHT_BLINKER : 51|1@1+ (1,0) [0|1] "" XXX
leftBlindspot ["BSD_RCTA"]['L_ADJACENT'] == 1 SG_ L_ADJACENT : 49|1@1+ (1,0) [0|1] "" XXX
leftBlindspot ["BSD_RCTA"]['L_APPROACHING'] == 1 SG_ L_APPROACHING : 59|1@1+ (1,0) [0|1] "" XXX
rightBlindspot ["BSD_RCTA"]['R_ADJACENT'] == 1 SG_ R_ADJACENT : 48|1@1+ (1,0) [0|1] "" XXX
rightBlindspot ["BSD_RCTA"]['R_APPROACHING'] == 1 SG_ R_APPROACHING : 58|1@1+ (1,0) [0|1] "" XXX
can_gear ["Transmission"]['Gear'] SG_ Gear : 24|8@1+ (1,0) [0|255] "" XXX
steeringAngle ["Steering_Torque"]['Steering_Angle'] SG_ Steering_Angle : 32|16@1- (-0.0217,0) [0|255] "" X
steeringTorque ["Steering_Torque"]['Steer_Torque_Sensor'] SG_ Steer_Torque_Sensor : 16|11@1- (-1,0) [0|3] "" XXX
steeringTorqueEPS ["Steering_Torque"]['Steer_Torque_Output'] SG_ Steer_Torque_Output : 48|11@1- (-1,0) [-1000|1000] "" XXX
steeringPressed abs(ret.steeringTorque) > STEER_THRESHOLD[self.car_fingerprint]
cruiseState.enabled ["CruiseControl"]['Cruise_Activated'] != 0 SG_ Cruise_Activated : 41|1@1+ (1,0) [0|3] "" XXX
cruiseState.available ["CruiseControl"]['Cruise_On'] != 0 SG_ Cruise_On : 40|1@1+ (1,0) [0|3] "" XXX
cruiseState.speed ["ES_DashStatus"]['Cruise_Set_Speed'] * CV.KPH_TO_MS SG_ Cruise_Set_Speed : 40|8@1+ (1,0) [0|255] "" XXX
self.Units ["Dash_State"]['Units'] SG_ Units : 29|3@1+ (1,0) [0|7] "" XXX
seatbeltUnlatched ["Dashlights"]['SEATBELT_FL'] == 1 SG_ SEATBELT_FL : 48|1@1+ (1,0) [0|1] "" XXX
doorOpen ["BodyInfo"]['DOOR_OPEN_RR'] SG_ DOOR_OPEN_RR : 35|1@1+ (1,0) [0|1] "" XXX
doorOpen ["BodyInfo"]['DOOR_OPEN_RL'] SG_ DOOR_OPEN_RL : 34|1@1+ (1,0) [0|1] "" XXX
doorOpen ["BodyInfo"]['DOOR_OPEN_FR'] SG_ DOOR_OPEN_FR : 33|1@1+ (1,0) [0|3] "" XXX
doorOpen ["BodyInfo"]['DOOR_OPEN_FL'] SG_ DOOR_OPEN_FL : 32|1@1+ (1,0) [0|255] "" XXX
steerError ["Steering_Torque"]['Steer_Error_1'] == 1 SG_ Steer_Error_1 : 12|1@0+ (1,0) [0|1] "" XXX
steerWarning ["Steering_Torque"]['Steer_Warning'] == 1 SG_ Steer_Warning : 29|1@1+ (1,0) [0|1] "" XXX
self.es_distance_msg copy(["ES_Distance"]) BO_ 545 ES_Distance: 8 XXX
self.es_lkas_msg copy(["ES_LKAS_State"]) BO_ 802 ES_LKAS_State: 8 XXX

Preglobal platform

subaru_outback_2015_generated.dbc

openpilot signal formula dbc signal
gas ["Throttle"]['Throttle_Pedal'] / 255. SG_ Throttle_Pedal : 0|8@1+ (0.392157,0) [0|255] "" XXX
gasPressed gas > 1e-5
brakePressed ["Brake_Pedal"]['Brake_Pedal'] > 2 SG_ Brake_Pedal : 16|8@1+ (1,0) [0|255] "" XXX
brakeLights ret.brakePressed
wheelSpeeds.fl ["Wheel_Speeds"]['FL'] * CV.KPH_TO_MS SG_ FL : 0|16@1+ (0.0592,0) [0|255] "KPH" XXX
wheelSpeeds.fr ["Wheel_Speeds"]['FR'] * CV.KPH_TO_MS SG_ FR : 16|16@1+ (0.0592,0) [0|255] "KPH" XXX
wheelSpeeds.rl ["Wheel_Speeds"]['RL'] * CV.KPH_TO_MS SG_ RL : 32|16@1+ (0.0592,0) [0|255] "KPH" XXX
wheelSpeeds.rr ["Wheel_Speeds"]['RR'] * CV.KPH_TO_MS SG_ RR : 48|16@1+ (0.0592,0) [0|255] "KPH" XXX
leftBlinker ["Dashlights"]['LEFT_BLINKER'] SG_ LEFT_BLINKER : 44|1@1+ (1,0) [0|1] "" XXX
rightBlinker ["Dashlights"]['RIGHT_BLINKER'] SG_ RIGHT_BLINKER : 45|1@1+ (1,0) [0|1] "" XXX
leftBlindspot ["BSD_RCTA"]['L_ADJACENT'] SG_ L_ADJACENT : 33|1@1+ (1,0) [0|1] "" XXX
leftBlindspot ["BSD_RCTA"]['L_APPROACHING'] SG_ L_APPROACHING : 43|1@1+ (1,0) [0|1] "" XXX
rightBlindspot ["BSD_RCTA"]['R_ADJACENT'] SG_ R_ADJACENT : 32|1@1+ (1,0) [0|1] "" XXX
rightBlindspot ["BSD_RCTA"]['R_APPROACHING'] SG_ R_APPROACHING : 42|1@1+ (1,0) [0|1] "" XXX
can_gear ["Transmission"]['Gear'] SG_ Gear : 48|4@1+ (1,0) [0|15] "" XXX
steeringAngle ["Steering_Torque"]['Steering_Angle'] SG_ Steering_Angle : 40|16@1- (-0.033,0) [-600|600] "" XXX
steeringTorque ["Steering_Torque"]['Steer_Torque_Sensor'] SG_ Steer_Torque_Sensor : 29|11@1- (1,0) [-1000|1000] "" XXX
steeringTorqueEPS ["Steering_Torque"]['Steer_Torque_Output'] SG_ Steer_Torque_Output : 48|11@1- (-1,0) [-1000|1000] "" XXX
steeringPressed abs(ret.steeringTorque) > STEER_THRESHOLD[self.car_fingerprint]
cruiseState.enabled ["CruiseControl"]['Cruise_Activated'] != 0 SG_ Cruise_Activated : 49|1@1+ (1,0) [0|1] "" XXX
cruiseState.available ["CruiseControl"]['Cruise_On'] != 0 SG_ Cruise_On : 48|1@1+ (1,0) [0|1] "" XXX
cruiseState.speed ["ES_DashStatus"]['Cruise_Set_Speed'] * CV.KPH_TO_MS SG_ Cruise_Set_Speed : 24|8@1+ (1,0) [0|255] "" XXX
speedUnits ["Dash_State"]['Units'] SG_ Units : 15|1@1+ (1,0) [0|1] "" XXX
seatbeltUnlatched ["Dashlights"]['SEATBELT_FL'] == 1 SG_ SEATBELT_FL : 40|1@1+ (1,0) [0|1] "" XXX
doorOpen ["BodyInfo"]['DOOR_OPEN_RR'] SG_ DOOR_OPEN_RR : 27|1@1+ (1,0) [0|1] "" XXX
doorOpen ["BodyInfo"]['DOOR_OPEN_RL'] SG_ DOOR_OPEN_RL : 26|1@1+ (1,0) [0|1] "" XXX
doorOpen ["BodyInfo"]['DOOR_OPEN_FR'] SG_ DOOR_OPEN_FR : 24|1@1+ (1,0) [0|1] "" XXX
doorOpen ["BodyInfo"]['DOOR_OPEN_FL'] SG_ DOOR_OPEN_FL : 25|1@1+ (1,0) [0|1] "" XXX
steerError ["Steering_Torque"]["Steer_Error_1"] == 1 SG_ Steer_Error_1 : 27|1@1+ (1,0) [0|1] "" XXX
self.cruise_button ["ES_CruiseThrottle"]["Cruise_Button"] SG_ Cruise_Button : 48|3@1+ (1,0) [0|7] "" XXX
self.ready not ["ES_DashStatus"]["Not_Ready_Startup"] SG_ Not_Ready_Startup : 0|3@1+ (1,0) [0|7] "" XXX
self.es_accel_msg copy(["ES_CruiseThrottle"]) BO_ 353 ES_CruiseThrottle: 8 XXX

Openpilot output messages

Global Platform Gen2 / Hybrid

Cancel on gas and brake press message (ES_Distance) is replaced with Brake_Pedal

BO_ 313 Brake_Pedal: 8 XXX
 SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
 SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
 SG_ Signal1 : 12|4@1+ (1,0) [0|15] "" XXX
 SG_ Speed : 16|12@1+ (0.05625,0) [0|255] "kph" XXX
 SG_ Signal2 : 28|6@1+ (1,0) [0|63] "" XXX
 SG_ Brake_Lights : 34|1@1+ (1,0) [0|1] "" XXX
 SG_ Signal3 : 35|1@1+ (1,0) [0|1] "" XXX
 SG_ Brake_Pedal : 36|12@1+ (1,0) [0|4095] "" XXX
 SG_ Signal4 : 48|16@1+ (1,0) [0|65535] "" XXX

Global Platform

BO_ 290 ES_LKAS: 8 XXX
 SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
 SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
 SG_ SET_1 : 12|1@0+ (1,0) [0|3] "" XXX
 SG_ LKAS_Output : 16|13@1- (-1,0) [0|3] "" XXX
 SG_ LKAS_Request : 29|1@0+ (1,0) [0|3] "" XXX

BO_ 802 ES_LKAS_State: 8 XXX
 SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
 SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
 SG_ Keep_Hands_On_Wheel : 12|1@1+ (1,0) [0|1] "" XXX
 SG_ Empty_Box : 13|1@1+ (1,0) [0|1] "" XXX
 SG_ Signal1 : 14|3@1+ (1,0) [0|7] "" XXX
 SG_ LKAS_ACTIVE : 17|1@1+ (1,0) [0|1] "" XXX
 SG_ Signal2 : 18|5@1+ (1,0) [0|31] "" XXX
 SG_ Backward_Speed_Limit_Menu : 23|1@1+ (1,0) [0|1] "" XXX
 SG_ LKAS_ENABLE_3 : 24|1@1+ (1,0) [0|1] "" XXX
 SG_ LKAS_Left_Line_Light_Blink : 25|1@1+ (1,0) [0|1] "" XXX
 SG_ LKAS_ENABLE_2 : 26|1@1+ (1,0) [0|1] "" XXX
 SG_ LKAS_Right_Line_Light_Blink : 27|1@1+ (1,0) [0|1] "" XXX
 SG_ LKAS_Left_Line_Visible : 28|1@1+ (1,0) [0|1] "" XXX
 SG_ LKAS_Left_Line_Green : 29|1@1+ (1,0) [0|1] "" XXX
 SG_ LKAS_Right_Line_Visible : 30|1@1+ (1,0) [0|1] "" XXX
 SG_ LKAS_Right_Line_Green : 31|1@1+ (1,0) [0|1] "" XXX
 SG_ LKAS_Alert : 32|4@1+ (1,0) [0|15] "" XXX
 SG_ Signal3 : 36|28@1+ (1,0) [0|1] "" XXX

BO_ 545 ES_Distance: 8 XXX
 SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
 SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
 SG_ Signal1 : 12|3@1+ (1,0) [0|7] "" XXX
 SG_ Cruise_Fault : 15|1@1+ (1,0) [0|1] "" XXX
 SG_ Cruise_Throttle : 16|12@1+ (1,0) [0|4095] "" XXX
 SG_ Signal2 : 28|4@1+ (1,0) [0|15] "" XXX
 SG_ Car_Follow : 32|1@1+ (1,0) [0|1] "" XXX
 SG_ Signal3 : 33|3@1+ (1,0) [0|1] "" XXX
 SG_ Cruise_Brake_Active : 36|1@1+ (1,0) [0|1] "" XXX
 SG_ Distance_Swap : 37|1@1+ (1,0) [0|1] "" XXX
 SG_ Cruise_EPB : 38|1@1+ (1,0) [0|1] "" XXX
 SG_ Signal4 : 39|1@0+ (1,0) [0|1] "" XXX
 SG_ Close_Distance : 40|8@1+ (1,0) [0|1] "" XXX
 SG_ Signal5 : 48|8@1+ (1,0) [0|1] "" XXX
 SG_ Cruise_Cancel : 56|1@1+ (1,0) [0|1] "" XXX
 SG_ Cruise_Set : 57|1@1+ (1,0) [0|1] "" XXX
 SG_ Cruise_Resume : 58|1@1+ (1,0) [0|1] "" XXX
 SG_ Signal6 : 59|5@1+ (1,0) [0|1] "" XXX

Preglobal platform

BO_ 356 ES_LKAS: 8 XXX
 SG_ Counter : 0|3@1+ (1,0) [0|7] "" XXX
 SG_ LKAS_Command : 8|13@1- (-1,0) [-4096|4096] "" XXX
 SG_ LKAS_Active : 24|1@1+ (1,0) [0|1] "" XXX
 SG_ Checksum : 56|8@1+ (1,0) [0|255] "" XXX

BO_ 353 ES_CruiseThrottle: 8 XXX
 SG_ Throttle_Cruise : 0|12@1+ (1,0) [0|4095] "" XXX
 SG_ Signal1 : 12|4@1+ (1,0) [0|15] "" XXX
 SG_ Cruise_Activated : 16|1@1+ (1,0) [0|1] "" XXX
 SG_ Signal2 : 17|3@1+ (1,0) [0|7] "" XXX
 SG_ Brake_On : 20|1@1+ (1,0) [0|1] "" XXX
 SG_ Distance_Swap : 21|1@1+ (1,0) [0|1] "" XXX
 SG_ Standstill : 22|1@1+ (1,0) [0|1] "" XXX
 SG_ Signal3 : 23|1@1+ (1,0) [0|1] "" XXX
 SG_ Close_Distance : 24|8@1+ (0.0196,0) [0|255] "m" XXX
 SG_ Signal4 : 32|9@1+ (1,0) [0|255] "" XXX
 SG_ Standstill_2 : 41|1@1+ (1,0) [0|1] "" XXX
 SG_ Cruise_Fault : 42|1@1+ (1,0) [0|1] "" XXX
 SG_ Signal5 : 43|1@1+ (1,0) [0|1] "" XXX
 SG_ Counter : 44|3@1+ (1,0) [0|7] "" XXX
 SG_ Signal6 : 47|1@1+ (1,0) [0|1] "" XXX
 SG_ Cruise_Button : 48|3@1+ (1,0) [0|7] "" XXX
 SG_ Signal7 : 51|5@1+ (1,0) [0|31] "" XXX
 SG_ Checksum : 56|8@1+ (1,0) [0|255] "" XXX