Hello Realdash Support/Moderators,
I apologize using Gemini for a clear enough question about an issue I faced up when I was trying to map the signals of my car. So I am not a technician neither a programmer and it was the best way of reporting my problem. Below starts the gemini’s text:
I am reporting a reproducible bug in the CAN bus data parsing that affects the Odometer reading on my Opel Astra H (Z16LET, 2008).
The issue causes the Odometer value to roll over or freeze immediately upon reaching a specific distance, indicating a 24-bit integer overflow error within the Realdash parsing logic.
1. The Problem Details
Vehicle: Opel Astra H (Z16LET, 2008)
Bus: SW-CAN (33.3 Kbps)
Signal: Odometer (Located in CAN ID 0x190, Bytes 4-7, 32-bit field).
Failure Point: The Odometer value stops counting or resets exactly at 262,144 km.
2. Technical Evidence of 24-Bit Overflow
The raw signal value associated with 262,144 km provides definitive proof of a 24-bit interpretation error:
The signal uses a division factor of 64 (i.e., Odometer=64Raw Value) for conversion.
The raw value corresponding to 262,144 km is:
262,144 km×64=16,777,216
The number 16,777,216 is precisely 224.
Conclusion: When the raw 32-bit field reaches the value 224, your parser is interpreting the signal as a 24-bit unsigned integer, causing a catastrophic overflow/rollover at this specific point. The parser is only reading the first three bytes of the 32-bit field.
3. What to Ask (Required Fix)
The requested fix is on the Realdash application side:
Please modify the CAN bus parsing logic for this 32-bit Odometer signal to ensure the entire 32-bit field is read as an Unsigned Integer BEFORE the division factor (scaling) of 64 is applied.
This will prevent the overflow at 224 and allow the Odometer to correctly read up to its maximum 32-bit limit.
Yes I Know cause I ve already bitcount=32 as you see in the xml value form. Before the last update was perfeclty working... At first I was blaming myself that I did sthing wrong, since I dont have the experiece in those things....that's why I "asked" gemini! The gemini replied that " Based on the provided frame definition and the issue you're experiencing (odometer stuck at 262144 km), the **problem lies in the arithmetic conversion formula** and the resulting **integer overflow** when the value is interpreted as a 32-bit unsigned integer before the final division."
It s still in experimental stage. I am still confirming the signals. Imagine I have v9 of my this draft. You can have it …it’s nice helping each other CAN_TEST_SBv9_SBGTC_Gemini.xml (23.5 KB)
PS: I am quit sure that opel astra’s models are using different protocols and structure from 2007… Also the fuel linear (dont know the exact term in English) is different That’s why I keep change the conversions to xml. Keep in mind that from 2007 Opel uses SW-CAN (33.3 Kbps), MS-CAN (96.5Kbps) and HS-CAN (11/500) as well
I told you the xml file is experimental. You need to find the right signal in it. Is all there. You gonna need triggering option as well. Some signal are reading as bit unit but some as raw. Eg i had an issuue with sport mode indicator. The signal is appearing to 0x145 and to 0x305 4th and 5th byte (values are 3a and 51, normal mode 10 50)I had to change the xml command structure to raw and apply trigger optrions as for turning on the indicator of sport mode. I abandoned the id 145 cause it didnt work at all as an indicator. 3 weeks i was torturing myself with that. Some other signals are shown up with a click but they values return back to the initial state. So avoid using those signals since you can find them in another id (in which values are on and stay on with) another puzzle is when a particular byte of an id contains 2 or 3 or more signals and different values. You have to deep analyze the bits… when i finish the job i will abstact any xml command in my file that is not fiited or working with real dash.
OBDLink MX+ 33.3 kbps
Speed
RPM
Handbrake
Reverse (R)
Parking Lights
Low Beam
High Beam
Front Fog
Rear Fog
Temperature Checker
Manual Gear Shifting 1-2-3-4-5-6 R
Oil Pressure
Engine Coolant Level
Windshield Washer Fluid Level
Cruise Control
Air Conditioning
Window Resistor
Brake Pedal
Clutch Pedal
Right Turn Signal
Left Turn Signal
Hazard Lights
Fuel Level
Steering Wheel Buttons
These all work flawlessly.
WOW! Good job! Hope I helped! Though I preferred HS-CAN for Speed and RPM, it s more accurate and direct! How did you check and confirm oil pressure (red indicator)?
A help for 1. Reverse (R) 2. Parking Lights and 3.Fuel Level would be precious and welcome
The file I sent has 1-2 minor errors, but everything else works perfectly.
The speedometer shows a bit too high, around 100-105 km/h.
That’s why the odometer shows less; only the ratio needs to be adjusted correctly.
Oil pressure is fine.
Oil level might not be accurate.
Fuel level…
My formula is simpler and shows more accurately, but the vehicle deviates while driving due to the momentary value caused by the tank shaking. If you want, you can upload the XML file and check it.
If you provide the data in the format I wrote, I can write it correctly. I think there are some missing parts.
It’s far more tidy than mine. I am impressed you used innovated targetids. I hesitated go through this, cause I came up with the mess when I was re-constructing over and over again my xml, till i found the right format or syntax… So I preferred the ECU SPECIFIC section! Anyway I will try it out. My little knowledge doesnt allow me to have an opinion, but some ids contain different or slightly different signals than mine (discovered by reverse engineering) especially can ids 0x305, 0x350 & 0x360. Also you left out the warning signals coming out from UEC or REC. I also didnt touch them yet…but I have the xml form of them in my xml file, till I found the courage to get involved with.Surprisingly you suggest another conversion for fuel level (as you mentioned above) …it’s the first thing I will test!
AS for HS-CAN ids you asked … unfortunately there is nothing across forums mainly for our type of vehicle. Though GM has some docs indicating the structure of the PIDs, but it’s totally out of my -even the restricted- knowledge and I cant or I dont have the time or the age to study them as tutorial!
I will send you back my results! Thanks
The XML works, you’ll see when you try it, but you’ll need to make some settings on the display and add some things for it to work.
Example: The left and right turn signals will stay on constantly. You can do this on the display (edit-view-custom-edit level-critical-set the blinking speed to 350ms).
You can add icons for the missing ones, and you’ll edit the coding there again - you’ll code the icon corresponding to the input values. That’s it.
If I remember correctly, in the file I sent, the seatbelt warning should be coded for the climate control; the seatbelt icon will light up when you turn on the climate control.
You also need to enter data from the vehicle such as tire sizes, engine, transmission, fuel tank capacity, and mileage.
If you have any CANID data that you’ve analyzed in the XML format I sent, I can add those as well.
I didn’t work with some data (like remote control, ignition).