RAV4 2020 Hybrid Sniffing

Subject of the issue

Describe your issue here.

Your environment

  • 2020.10.05

RAV4 2020 Hybrid Sniffing

Trying to sniff can bus for RAV4 2020 Hybrid. Unsuccessful to get any data from the PI. It fails every time. Auto detected bus details: [6] ISO 15765-4 (CAN 11/500), 500000

Tried a variety of alternate settings with no luck.

I am getting basic OBD2 messages from the vehicle - just nothing interesting.

Expected behaviour

Sniff packets to allow reverse engineering of some messages to allow integration with AutoPI

Actual behaviour

In the gui, I see “No connection to the device - No response” in a red popup. When I try in terminal, I see:

autopi1@Toyota RAV 4 $ obd.dump protocol=6 baudrate=500000 duration=1 CAN sending or receiving failed

I got a different message another time - something about RS232 buffer full…

Output of power.status command

rpi:
uptime:
users: 1
seconds: 368
since_t: 1604560381
days: 0
since_iso: ‘2020-11-05T07:13:01.909639’
time: ‘0:6’
stn:
battery:
state: charging
voltage: 14.2
level: 100
last_trigger:
sleep: NONE
wake: NONE
trigger_config:
vl_wake: ’ >13.20V FOR 3 s’
vchg_wake: ’ +0.50V IN 1000 ms’
uart_sleep: ’ 900 s’
vl_sleep: ’ <12.20V FOR 240 s’
ext_sleep: ’ LOW FOR 3000 ms’
ext_wake: ’ HIGH FOR 500 ms’
spm:
last_state:
down: hibernating
up: ‘on’
sleep_interval: 0
version: ‘2.1’
current_state: ‘on’
last_trigger:
down: stn
up: stn

Do’s & dont’s

  • Do not write your unit-id anywhere.

Hello Greg,

To continue troubleshooting this issue, I would like you to do these steps:

  1. What output do you get when you run obd.commands in the terminal?
  2. Was the car running when you tried the commands?
  3. What output do you get when you run “obd.dump protocol=6 duration=0.1”
  1. What output do you get when you run obd.commands in the terminal?

obd.commands
_stamp: ‘2020-11-09T03:31:33.607855’
supported:
ELM_VOLTAGE: Voltage detected by OBD-II adapter
RUN_TIME_MIL: Time run with MIL on
MONITOR_CATALYST_B1: Catalyst Monitor Bank 1
MONITOR_MISFIRE_CYLINDER_2: Misfire Cylinder 2 Data
ABSOLUTE_LOAD: Absolute load value
LONG_O2_TRIM_B1: Long term secondary O2 trim - Bank 1
DTC_TIMING_ADVANCE: DTC Timing Advance
DTC_STATUS: DTC Status since DTCs cleared
MIDS_B: ‘Supported MIDs [21-40]’
MIDS_C: ‘Supported MIDs [41-60]’
INTAKE_TEMP: Intake Air Temp
MIDS_A: ‘Supported MIDs [01-20]’
MIDS_F: ‘Supported MIDs [A1-C0]’
MIDS_D: ‘Supported MIDs [61-80]’
MIDS_E: ‘Supported MIDs [81-A0]’
DISTANCE_SINCE_DTC_CLEAR: Distance traveled since codes cleared
O2_SENSORS: O2 Sensors Present
DTC_LONG_O2_TRIM_B1: DTC Long term secondary O2 trim - Bank 1
TIMING_ADVANCE: Timing Advance
SHORT_FUEL_TRIM_1: Short Term Fuel Trim - Bank 1
ELM_VERSION: ELM327 version string
DTC_SPEED: DTC Vehicle Speed
BAROMETRIC_PRESSURE: Barometric Pressure
MONITOR_EGR_B1: EGR Monitor Bank 1
MONITOR_VVT_B1: VVT Monitor Bank 1
DTC_O2_S1_WR_CURRENT: DTC 02 Sensor 1 WR Lambda Current
LONG_FUEL_TRIM_1: Long Term Fuel Trim - Bank 1
THROTTLE_POS_B: Absolute throttle position B
CLEAR_DTC: Clear DTCs and Freeze data
DTC_RPM: DTC Engine RPM
MAF: Air Flow Rate (MAF)
CATALYST_TEMP_B1S1: ‘Catalyst Temperature: Bank 1 - Sensor 1’
OIL_TEMP: Engine oil temperature
AMBIANT_AIR_TEMP: Ambient air temperature
CATALYST_TEMP_B1S2: ‘Catalyst Temperature: Bank 1 - Sensor 2’
ENGINE_LOAD: Calculated Engine Load
DTC_THROTTLE_POS: DTC Throttle Position
DTC_COMMANDED_EQUIV_RATIO: DTC Commanded equivalence ratio
DTC_ABSOLUTE_LOAD: DTC Absolute load value
DTC_DISTANCE_W_MIL: DTC Distance Traveled with MIL on
EVAPORATIVE_PURGE: Commanded Evaporative Purge
DTC_LONG_FUEL_TRIM_1: DTC Long Term Fuel Trim - Bank 1
DTC_TIME_SINCE_DTC_CLEARED: DTC Time since trouble codes cleared
DTC_EVAPORATIVE_PURGE: DTC Commanded Evaporative Purge
GET_DTC: Get DTCs
DTC_COOLANT_TEMP: DTC Engine Coolant Temperature
MONITOR_MISFIRE_GENERAL: Misfire Monitor General Data
TIME_SINCE_DTC_CLEARED: Time since trouble codes cleared
DTC_O2_SENSORS: DTC O2 Sensors Present
DTC_ENGINE_LOAD: DTC Calculated Engine Load
COMMANDED_EQUIV_RATIO: Commanded equivalence ratio
DTC_OIL_TEMP: DTC Engine oil temperature
OBD_COMPLIANCE: OBD Standards Compliance
DTC_AMBIANT_AIR_TEMP: DTC Ambient air temperature
COOLANT_TEMP: Engine Coolant Temperature
GET_CURRENT_DTC: Get DTCs from the current/last driving cycle
DTC_SHORT_FUEL_TRIM_1: DTC Short Term Fuel Trim - Bank 1
DTC_SHORT_O2_TRIM_B1: DTC Short term secondary O2 trim - Bank 1
FUEL_STATUS: Fuel System Status
DTC_O2_S2_WR_CURRENT: DTC 02 Sensor 2 WR Lambda Current
DTC_CONTROL_MODULE_VOLTAGE: DTC Control module voltage
DTC_BAROMETRIC_PRESSURE: DTC Barometric Pressure
DTC_DISTANCE_SINCE_DTC_CLEAR: DTC Distance traveled since codes cleared
WARMUPS_SINCE_DTC_CLEAR: Number of warm-ups since codes cleared
DTC_OBD_COMPLIANCE: DTC OBD Standards Compliance
MONITOR_MISFIRE_CYLINDER_4: Misfire Cylinder 4 Data
MONITOR_MISFIRE_CYLINDER_1: Misfire Cylinder 1 Data
DISTANCE_W_MIL: Distance Traveled with MIL on
MONITOR_MISFIRE_CYLINDER_3: Misfire Cylinder 3 Data
DTC_INTAKE_TEMP: DTC Intake Air Temp
THROTTLE_POS: Throttle Position
DTC_MAF: DTC Air Flow Rate (MAF)
DTC_FUEL_TYPE: DTC Fuel Type
CONTROL_MODULE_VOLTAGE: Control module voltage
DTC_RUN_TIME_MIL: DTC Time run with MIL on
THROTTLE_ACTUATOR: Commanded throttle actuator
SPEED: Vehicle Speed
DTC_THROTTLE_POS_B: DTC Absolute throttle position B
PIDS_A: ‘Supported PIDs [01-20]’
PIDS_C: ‘Supported PIDs [41-60]’
PIDS_B: ‘Supported PIDs [21-40]’
DTC_FUEL_STATUS: DTC Fuel System Status
O2_S1_WR_CURRENT: 02 Sensor 1 WR Lambda Current
FUEL_TYPE: Fuel Type
MONITOR_O2_B1S1: O2 Sensor Monitor Bank 1 - Sensor 1
MONITOR_O2_B1S2: O2 Sensor Monitor Bank 1 - Sensor 2
DTC_RELATIVE_THROTTLE_POS: DTC Relative throttle position
RUN_TIME: Engine Run Time
RPM: Engine RPM
STATUS: Status since DTCs cleared
RELATIVE_THROTTLE_POS: Relative throttle position
DTC_CATALYST_TEMP_B1S2: ‘DTC Catalyst Temperature: Bank 1 - Sensor 2’
DTC_CATALYST_TEMP_B1S1: ‘DTC Catalyst Temperature: Bank 1 - Sensor 1’
DTC_THROTTLE_ACTUATOR: DTC Commanded throttle actuator
DTC_RUN_TIME: DTC Engine Run Time
DTC_PIDS_C: ‘DTC Supported PIDs [41-60]’
DTC_PIDS_B: ‘DTC Supported PIDs [21-40]’
SHORT_O2_TRIM_B1: Short term secondary O2 trim - Bank 1
DTC_WARMUPS_SINCE_DTC_CLEAR: DTC Number of warm-ups since codes cleared
O2_S2_WR_CURRENT: 02 Sensor 2 WR Lambda Current
protocol:
baudrate: 500000
ecus:
- 2
- 1
- 1
id: ‘6’
name: ISO 15765-4 (CAN 11/500)
autodetected: true

Yes

$ obd.dump protocol=6 duration=0.1
Unknown format code ‘d’ for object of type ‘float’

GK

Hello,

It seems that you are able to get information from the vehicle.

Try running the command obd.query RPM with the engine running to see what results you get.


Some manufacturers create a “firewall” of sorts that blocks outside sources from listening to internal car system data. This means that if you are experiencing an issue of not being able to sniff any data, it might be the case that you can’t listen at all and you’ll have to instead query for that data.

Regards,
Alexandru

Two results: One with engine on - but hybrid battery, and one with the engine spinning (not using battery). Worked fine as expected.

autopi1@Toyota RAV 4 $ obd.query RPM
value: 0
_stamp: '2020-12-02T00:08:35.591645'
_type: rpm
unit: revolutions_per_minute

autopi1@Toyota RAV 4 $ obd.query RPM
value: 1291.25
_stamp: '2020-12-02T00:09:03.654955'
_type: rpm
unit: revolutions_per_minute

Let’s assume this is the problem. Does anyone else have a 2020 RAV4 hybrid that can confirm? Are there workarounds that will allow sniffing data?

GK

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.

Hi @gregk

Looking at the responses that you’ve received, it may very well be the case that the RAV4 uses PIDs instead of CAN Messages and CAN Signals. What this means is that the vehicle is waiting for requests of information instead of broadcasting that information all the time.

This means that you will be able to get information about your vehicle by using the obd.query command. The way that you executed the command is a perfect example for a pre-defined query:

obd.query RPM

If you’d like to execute a more specific query, you can do it like this:

obd.query SOME_ARBITRARY_NAME mode=01 pid=0C header=7DF protocol=6 baudrate=500000

Bear in mind however that it might be the case that information for the internal combustion engine uses one protocol and the electric information is on another protocol. What I can suggest if you would like to find more information on this is to browse forums for your specific vehicle.

Best,
Nikola

1 Like