Sale ends todayGet 30% off any course (excluding packages)

Ends in --- --- ---

Can bus value too high/resetting?

CANBus Communications Decoded

Forum Posts



Tech Articles

Discussion and questions related to the course CAN Bus Communications Decoded

= Resolved threads


I'm work with an 06+ Honda S2000. Specifically trying to get all 4 wheel speed's from the abs module into the ecu.

The weirdness here is they all require different conversion factors and both rear wheel speed "reset" and start climbing again when I hit a certain speed.

Front wheel speed works as unsigned 16 bit big endian

The addresses I've found are

Id 448

D1 & D2 =Speed Front left

D3 & D4 = Speed Front right

D5 & D6 = Speed Rear left

D7 & D8 = Speed Rear right

If you see a climb/reset, that usually indicates you aren't looking at all the bytes. So you might be only looking at D8, and not combining that with the value from D7 that would increment when D8 rolls over. The same thing will happen if you try to store a 16-bit value into an 8-bit variable.

Hope that's enough hints to find the problem. If we knew what ECU you were using, or you posted screen shots of the CAN configuration software we might be able to provide more help.

Wheelspeed on most Hondas are 15bit so arent nicely aligned into bytes and the last 4 bits in the last byte is a checksum. Example below from a civic, this was on ID 0x1D0 or dec464 in this case.

Well, that makes perfect sense. Thanks for sharing Adam!


Using maxxecu.

The front wheel works fine. rear wheel is whats acting weird. This is just running the car in the garage with the wheels off the ground.

I'm almost thinking I've got bad sensors, but both rear wheel speed's are doing the same thing.. and it does it at the same speed every time. It's hard to keep accelerating because I'm using a bmw dct transmission and it goes haywire when the wheel speed drops like that

As above, they are likely not 16bits. From your pic above it looks like Maxx only allows you to assign a full 16bits aligned neatly into bytes and doesn't have a bitmask feature for analog signals, so it is not possible to make it work.


what year was the civic that's from?

There is an option for a mask, but I'm honestly not sure how to use it. I'll mess with it tomorrow

Why don't you try setting the Byte Offset for the Left Rear Speed to 3, and the mask to 3 to agree with Adam's format for other Honda CAN data? What are the other choices (besides unsigned 16) for "Type" in the pull-down menu?

I would also try setting the Byte Offset to 3, and the mask to 0x3FF8 (which is 16376 decimal), (or maybe 0x3FF80 / 262016) since that would mask the 15 bits starting with the offset byte.

You might try sending Adam's picture to Maxx and ask how you would setup to read that.

the other options are 8 bit signed and unsigned, 16 bit signed and unsigned, 32bit signed and unsigned.

I sent the picture to maxx already. hopefully they come up with something. I was just writing everything out to try what you suggested. thanks for the assistance. This is the first ecu I've used with a configurable can bus so the help is greatly appreciated.

Im thinking similar to David, except I think for at least the last 3 wheels you will possibly need to use type 32bit U since they are each spanning across 3 bytes. For RR wheel for example I would try type 32bit U, offset 4, mask 0x7FFF0.


Thanks, that worked perfectly.. I was heading down that road but the mask wasnt clear to me, after seeing how you came up with that it all make since now. I was able to get all 4 wheel speed's into the ecu.

Thanks again.

Did you have to use divide parameters to shift the values down, or did it handle that automatically from the mask bits?

It did everything automatically from the mask bits.

That's not one I've seen before Adam, thanks for the heads up, bloody interesting read :-).

just WOW :)