Nissan CAN bus data help

Hi everyone, I own a Nissan X-Trail T31 2008 2.0 DCI. I managed to set up my Realdash using an obdlink mx+ in CAN mode with an.xml file. I’m only missing 3 parameters (RPM, AI, boost in bar).

for example:

in source : GitHub - balrog-kun/nissan-qashqai-can-info: CAN frame decoding on a Nissan Qashqai.

Frame : 285 Position in frame: E.8-1 Meaning: Vehicle absolute speed Format: 8-bit unsigned integer Unit:km/h

convert to readash:
<frame id="0x285">	
       <value targetId="64" units="km/h" offset="4" length="1" conversion="v" ></value>	  <!-- Vehicle Speed-->    
		
   </frame>

how to do a calculation this for (rpm)

Frame : 180

Position in frame:A.8-B.2

Meaning: Engine speed / revolutions

Format: 15-bit unsigned integer

Unit: 0.25 RPM / LSB (service manual page MWI-27 says 8191.875 is displayed in case of malfunction, implying that the whole 16-bit value of A.8-B.1 – hypothetically 0xffff in that case – is simply divided by 8 to get the RPMs)

just help me with one example :pray:

Reading the documentation you linked, my best guess would be:

<frame id="0x180" endianness="big">	
    <value targetId="37" offset="0" length="2" conversion="(V &amp; 0x7FFF) / 4" </value>  <!-- RPM -->    
</frame>

Of course I’m unable to test this on actual vehicle, but with any luck this should be close.

Edit: documents actually say that multibyte data is big endian, so I fixed the frame with endianness attribute.

1 Like

I’d appreciate if you could share your XML file once its ready. We’d be happy to include it built-in into RealDash.

1 Like

Thanks for your help but unfortunately the result of the rpm with fake velvet more than 6000

yes of course with pleasure just I have to finish the missing value

uuu.xml (2.4 KB)

0x180 and 0x625 doesn’t work

There is no way to calculate this information :

how to do a calculation this for (rpm)

Frame : 180

Position in frame:A.8-B.2

Meaning: Engine speed / revolutions

Format: 15-bit unsigned integer

Unit: 0.25 RPM / LSB (service manual page MWI-27 says 8191.875 is displayed in case of malfunction, implying that the whole 16-bit value of A.8-B.1 – hypothetically 0xffff in that case – is simply divided by 8 to get the RPMs)

source : GitHub - balrog-kun/nissan-qashqai-can-info: CAN frame decoding on a Nissan Qashqai.

another question please how to calculate this

Frame : 5c5

Position in frame: B.8-D.1

Meaning: Car odometer absolute value (mileage)

Format: 24-bit unsigned integer

Unit: km / LSB

<frame id="0x5c5" size="8">
		<value targetId="310" units="km" startbit="??" bitcount="??" conversion="??"  ></value>   <!-- Odometer-->
	</frame>

Is this a question or a statement?

Lets try to work on one thing at the time.

  • While connected and engine running, go to your CAN connection settings.
  • Open CAN monitor
  • Enter 180 into the filter to see CAN frame 0x0000 0180 only.
  • Highlight first two bytes on the data and inspect the value.
  • Keep RPM at around 1000 and inspect the highlighted value of first two bytes if they correlate to your RPM
  • There is an option to switch between big and little endian, use that if value seems too high.

What we are trying to find is two sequential bytes which value is maybe 4000 or 8000 etc when you keep steady RPM of 1000.

1 Like

I am extremely grateful for your valuable help.
Yes, this is a question to perform the calculation of the formula.
Here is the test you asked me to perform.

Are the first two bytes (1e 50 on your screenshot) changing with RPM? Try:

  • Highlight the first two bytes
  • Raise RPM to 1000
  • Take a screenshot while RPM is 1000 and we’ll take another look.

Hello, here is the requested task. The second byte (50) does not remain stable in all rpms.

Video Link : Watch Screen_Recording_20250120_095340_RealDash | Streamable

Bytes do not seem to match the description on the github page you linked.

Lets try one more thing:

  • With engine running, go to CAN Monitor
  • Let engine idle
  • Press ‘Record’ button on bottom of the CAN monitor screen.
  • Raise RPM to 1000 for a couple of seconds and then let it fall back to idle.
  • Do the above couple of times and then press record button again to stop recording.
  • Exit the CAN Monitor to the dashboard and go to ‘Settings->Application->Datalogging’
  • Use the ‘Export Files’ button to export the latest rdcan_DATE.csv file
  • Send that file to me for analysis.

We have a CAN simulator that is able to play back the datalog recorded from the CAN Monitor. That we we have a better chance to find the missing RPM for you.

Okay, perfect. Thank you again for your valuable help.

link csv :

Got the file, thank you. I will analyse this later this week.

OK thanks I ran a test today with version 2.4.6. The RPM works perfectly with the same.xml file, but the engine temperature does not work. With older versions of Realdash 1.9.x, the RPM does not work, but the engine temperature is operational. I don’t understand why

frame id=“0x551” value targetId=“14” units=“C” offset=“8” length=“1” conversion=“v-40”>

xtrailf.xml (2.6 KB)

Video link : Watch unnamed | Streamable

Furthermore, I found other addresses with version 2.4.6. I had difficulty setting the battery voltage (0x6f6).

value targetId=“12” units=“v” offset=“8” length=“1” conversion=“v/10”/>

The offset=“8” is not correct, that would indicate 9th byte of the CAN frame and frame has only 8 bytes. I don’t believe those issues are because of the update.

If your highlighted byte is the right one, that is on offset=“0”

1 Like

Could you also upload your latest XML file for the analysis?

In general, everything is going well now. All that remains is to find:
Throttle Position
Intake Air Temperature
Boost (Bar/Psi)
Average Fuel Consumption
Fuel Level
I will try to identify with can monitor I would be delighted if you could help me make the task easier

nissan x-trail t31 m9r.xml (3.1 KB)

Hello friend, how are you? I have a Nissan Tiida C11. How did you identify the odometer?