Spyder Monkey
New member
So I managed to sweet talk a former employer into borrowing a $700 CAN bus adapter that lets my laptop see the CAN bus traffic over USB. Last night I finally sat down and played with the system to see what I could learn. This is going to be a somewhat long and technical post so bear with me, I'm basically going to type up my notes so I can get feedback and ideas from the technical folks.
I have a 2008 SM5 GS, so what I see on the CAN bus is less than what you would see on a SE5 because I don't have that shifting subsystem. Also I believe the RT has a few more sensors as well.
The basics:
The system talks at 500Kbits per second and uses the basic "11 bit mode" for addressing (not the extended 29 bit mode)
With the key in the on position and engine off, I get 13 unique CAN message identifiers that update at a rate of either 10 or 20 milliseconds. Most of the data is unchanging (because the bike is just sitting there) but a few of the data bytes are bouncing around. One appears to be a timer / sequence number counting up but I can't make heads or tails of most of the "changing data while sitting still" so far.
Here's what I have learned / tried so far. I'm using the software nerd convention of zero based numbering for the data bytes. Each CAN message has up to 8 bytes of data containing in a message, numbered D0 through D7. Some bytes are combined into a 2 byte integer. If you have no idea what I am talking about, don't worry about it. Read on, you can still help and I value your opinions. Numbers given are all in decimal, not hex.
So here is what I learned / partially decoded
Message ID 786 has 8 bytes. The last two bytes are throttle position. They are combined to make a 16 bit unsigned short. Throttle closed is 0, throttle WFO is 116 and 250 for the last 2 bytes. Appears to be linear over the range. Don't know what the other 6 bytes are yet.
Message ID 512 is also 8 bytes Byte D4 might be a current sensor value, it seemed to go up as I turned things on. Byte D5 is the gear sensor but it is numbered oddly. 1st gear=17, 2nd gear = 18, all the way through 5th. Neutral is 23. But strangely enough, No change when I put it in reverse. I could not see any data change when I dropped it in reverse.
Message ID 560 is also 8 bytes. D0 through D3 are the 4 wheel speed sensors. D0 is left front wheel speed in "sensor pickup ticks per second". D1 is right front. D2 and D3 are rear. The computer gets really mad at you when the wheels are turning in opposite directions with the engine off. Had to turn it off and back on to get out of an error state.
Message ID 195 is only 5 bytes. First two bytes are steering angle sensor data.
The rest of the message ID's are unknown at this time. I get lots of rapidly changing data when I start the engine and I think I know what coolant temp is. But I ran out of time for this particular session.
Some things I tried I really expected to see in the data stream but did not (or at least I missed it):
No change in the data I saw when I changed the kill switch, high beam switch, parking brake, or had my boy sit on the passenger seat switch.
Ok, time for a break and breakfast. This is all the raw data from last night... back in a few minutes with the rest of the story.
I have a 2008 SM5 GS, so what I see on the CAN bus is less than what you would see on a SE5 because I don't have that shifting subsystem. Also I believe the RT has a few more sensors as well.
The basics:
The system talks at 500Kbits per second and uses the basic "11 bit mode" for addressing (not the extended 29 bit mode)
With the key in the on position and engine off, I get 13 unique CAN message identifiers that update at a rate of either 10 or 20 milliseconds. Most of the data is unchanging (because the bike is just sitting there) but a few of the data bytes are bouncing around. One appears to be a timer / sequence number counting up but I can't make heads or tails of most of the "changing data while sitting still" so far.
Here's what I have learned / tried so far. I'm using the software nerd convention of zero based numbering for the data bytes. Each CAN message has up to 8 bytes of data containing in a message, numbered D0 through D7. Some bytes are combined into a 2 byte integer. If you have no idea what I am talking about, don't worry about it. Read on, you can still help and I value your opinions. Numbers given are all in decimal, not hex.
So here is what I learned / partially decoded
Message ID 786 has 8 bytes. The last two bytes are throttle position. They are combined to make a 16 bit unsigned short. Throttle closed is 0, throttle WFO is 116 and 250 for the last 2 bytes. Appears to be linear over the range. Don't know what the other 6 bytes are yet.
Message ID 512 is also 8 bytes Byte D4 might be a current sensor value, it seemed to go up as I turned things on. Byte D5 is the gear sensor but it is numbered oddly. 1st gear=17, 2nd gear = 18, all the way through 5th. Neutral is 23. But strangely enough, No change when I put it in reverse. I could not see any data change when I dropped it in reverse.
Message ID 560 is also 8 bytes. D0 through D3 are the 4 wheel speed sensors. D0 is left front wheel speed in "sensor pickup ticks per second". D1 is right front. D2 and D3 are rear. The computer gets really mad at you when the wheels are turning in opposite directions with the engine off. Had to turn it off and back on to get out of an error state.
Message ID 195 is only 5 bytes. First two bytes are steering angle sensor data.
The rest of the message ID's are unknown at this time. I get lots of rapidly changing data when I start the engine and I think I know what coolant temp is. But I ran out of time for this particular session.
Some things I tried I really expected to see in the data stream but did not (or at least I missed it):
No change in the data I saw when I changed the kill switch, high beam switch, parking brake, or had my boy sit on the passenger seat switch.
Ok, time for a break and breakfast. This is all the raw data from last night... back in a few minutes with the rest of the story.