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 :)

So to bring this back from a year ago, I got this going enough to make my car work (06 s2000 with bmw dct transmission all controlled by maxx) I'm now working on a pnp harness for maxxecu to 06+ s2000 and trying to get all 4 wheel speeds to work.

David asked about dividing to shift things down, at the time I thought the mask was doing that, but now I'm not so sure. I setup all 4 inputs as 32 bit and masked out the bits I dont want. The math to get an actual usable number is different on them all. I "think" that they should all be the same, but I'm not sure.

Anyone have any ideas or is this expected

This is what i've been using for the rear, they all require different math to get the correct numbers.


This is what i've been using for the rear, they all require different math to get the correct numbers.


What are you using for byte offset and mask for the other wheels?

What are you using for byte offset and mask for the other wheels?

This is what I have for all 4.

Attached Files

Sorry for the slow reply, none of those look correct to me.

I come up with numbers more like this:

LF: Offset 0, mask 131071

RF: Offset 1, mask 4261413887

LR: Offset 3, mask 16515079

RR: Offset 5, mask 16252943

I tried all of those, the LF works (I have only tested up to ~100mph) but the rest dont work at all.

Yeah I suspected they might not like masking from both ends over several bytes like that. You will have to send my pic to your ecu manufacturer and ask them if/how it can be supported.

We usually reply within 12hrs (often sooner)

Need Help?

Need help choosing a course?

Experiencing website difficulties?

Or need to contact us for any other reason?