Many motorcyclists love the idea of simplicity. But simplicity can mean many things: fewer parts, fewer wires, fewer hoses, or fewer things that can go wrong.
A CAN bus system is one of those things where more technology is introduced for the purpose of more simplicity. It sounds contradictory, but in a nutshell: A CAN bus system means fewer wires and less complex logic.
For even longer than I’ve been around motorcycles, I’ve been around data and information systems. My dad was an electrical engineer, and his way of bonding with me was teaching me electronics. I ended up getting a degree in it (which I never used… until today!).
But luckily for me and anyone else who cares, this education means I have a superficial understanding of things like a data “bus”, including how a CAN bus system is intended to work in a motorcycle. So I thought I’d put together this explainer for what the CAN bus is.
Are you obsessed with motorcycles?
Well, I am. That’s why I created this site — as an outlet. I love learning and sharing what others might find useful. If you like what you read here, and you’re a fraction as obsessed as I am, you might like to know when I’ve published more. (Check the latest for an idea of what you’ll see.)
What does CAN bus mean?
A word/acronym that I started noticing becoming very prominent in the mid 2010s (though it has been around longer) is “CAN bus”.
I recently was mucking around with my motorcycle’s electronic system installing a cruise control unit, and I had some CAN bus-related errors.
As I started diagnosing these problems, I learned more about the CAN bus and its purpose and how it intends to achieve that end.
Firstly, CAN bus is written like that — “CAN bus”. See this Wikipedia article for example. “CAN” is an acronym, and “bus” is a noun. So, it’s not “CANBUS” or “CAN-BUS” or some other variation, but just “CAN bus” (or “CAN Bus” if you’re capitalising it, like in a title).
The CAN bus is the digital spinal cord for the vehicle. It can receive or transmit information from anywhere to anywhere.
Physically, the CAN bus system is a bunch of wires, sockets, and plugs. Digitally, it’s a protocol, which means that every bit of information has its own coding.
Let’s ignore the technical definition until later. Acronyms and words sometimes get in the way of understanding things. Rather, let’s consider what the CAN bus does.
The CAN bus is the system that
- Transmits information from the clutch microswitch, the gear position sensor, the tip-over sensor, the alarm/security system, the kickstand microswitch, the key barrel, the key security system, and the ignition button to the computer, to let the computer decide if you’re allowed to start the motorcycle.
- Transmits when the brake light, throttle position sensor, or crankshaft position sensor is faulty so that computer knows to show an error code.
- Takes the speedometer reading from the wheel, and transmits it to the computer and then to the speedometer display, as well as for other logical functions.
- Receives pitch and lean angle information from the IMU (if you have one), and communicates it to the computer, so the computer knows when the speed is zero and the motorcycle is pitched backwards, to apply the brakes at launch until the speed picks up. That’s how hill hold works!
The CAN bus isn’t the logic that makes those decisions. The computer makes the decision based on logic programmed into it.
The CAN bus, just like any bus in real life, carries (“or “buses”) that information around the motorcycle. As motorcycles get more advanced and get more and more sensors, the CAN bus system carries more of it.
So that’s what the CAN bus system does — carry information around the bike.
As for the technical name… CAN bus means Common Area Network bus. The word “bus” is often used in digital system when talking about data transfer (see here, the Techopedia definition of “bus”). For example, USB stands for Universal Serial Bus.
(So yeah, they could have called it CANB, but that’s a bit unwieldy…)
If you’re curious about etymology, the origin of the word “bus” in technology is the Latin word omnibus, unrelated to the common use of “bus” in English. In Latin it’s the dative plural of omnis, and just means “for all”. The bus is for everyone! This is not helpful information. It’s more helpful and relevant to think of the CAN bus like being any kind of bus in computer systems architecture, used for carrying data.
Why use a CAN bus system?
The best way to understand why we use a CAN bus is to know what it replaces — lots of wires, each of which breaking can lead to big problems, and complex logic to get the wires to play together.
Rather than wires going everywhere in a circuit, nodes in a CAN system are connected to each other through a two wire bus, an ordinary twisted pair of wire.
Even though the CAN bus seems mysterious, it actually helps simplify the increasingly complex world of motorcycles. There’s only one set of wires moving around anywhere, and you can have fewer wires.
You can have fewer wires in a CAN bus system as information is carried as digital codes rather than as other signals.
It’s a bit like how email is a more efficient communication system than letters in the post.
In older bikes (before about 2010, definitely before 2005), every single unit on the bike delivered information by power. Turning on meant a 12v signal, turn off meant 0v or ground.
If you’ve ever had a wiring loom problem on an old bike, you know how this can be a problem. Wires break over time due to heat, friction, and my own grey-bearded nemesis, time. As those things gang up on a tiny wire, it breaks. When it’s the wrong one, the bike doesn’t start, and we have a less fun weekend ahead of us.
Faulty wires weren’t as big a problem back when motorcycles had barely any equipment. But as bikes got more complex equipment, the number of wires went up — which meant the risk of some piece of wire failing increased exponentially.
An example of this I read about (on a website that’s now down) is things that stop you from firing the ignition.
It’s different on different bikes, but say for example you want to be able to start your bike when the bike is in neutral OR the clutch is pulled in. To do this, you run the ground wire for the starter relay through the neutral switch or the clutch microswitch, so either switch being closed means you can start the bike.
But running the ground line for the starter relay through the neutral switch or clutch microswitch means that when you pull the clutch in, the circuit for the neutral light would close… which means the neutral light would come on. Weird. So you fix this with a diode.
The diode works. But this is just the beginning of complexity.
If you want to add more elements into the equation, like a side stand switch or tip-over sensor, you get more complexity, and more sometimes illogical and difficult to understand behaviour.
The result of adding complexity is firstly, wires everywhere, and secondly, more points of failure.
An example of illogical behaviour is that most motorcycles kill the engine when one of three things happen: the side stand goes down, the kill switch is tripped, or the tip-over sensor is activated.
But when the engine has been killed, depending on what happened, the starter can still run. So there are lots of older bikes where you can crank the motor but it won’t fire. And it’s impossible to know why unless you have the wiring diagram in your pocket (or your head).
Another outcome of the complexity is that it’s hard to trace a fault. Go on the forum for any old bike and someone will say “my bike won’t start” and people will start saying things like: check your clutch microswitches, you side stand microswitch, etc. You have to test everything.
This is what a CAN bus system simplifies: every sensor or switch on the bike has its analogue signal converted to a digital code, which is sent to the computer, which then decides what to do with the combination of codes.
While we think of a motorcycle or car as having one ECU, in reality, they have several (or even many, on very modern vehicles). An ECU — or “electronic control unit” — can describe any computer subsystem in a vehicle. They can do a range of things, but in this context, it’s conversion between digital and analogue units, via logic, and to transmit the digital signal along the CAN bus.
The CAN bus way of thinking means you can program all kinds of complex logical systems like “kill the engine with the kickstand down unless it’s in neutral” or “don’t start OR run the motor if the bike’s in gear and the clutch isn’t pulled in”.
Every part of the bike sends a signal to the computer, which then decides what to do with the information.
And if you want to change the logic, for example when modifying it for different markets, manufacturers just have to program it into the computer. For example, in some markets, the headlight has to always be on, but not in others. This can be programmed in at the computer level if needed.
Finally, you’ve probably noticed that as time has gone on, more and more bits have been added to motorcycles. These days, even middleweight bikes commonly come with ride aids like quick shifters, cruise control, cornering ABS and traction control, hill hold, easy start, and linked braking.
In the past, adding a new feature with electrical components would have meant exponentially adding to a wiring system. But with CAN bus, you just need to connect that new bit of gear to the computer, and let the computer figure out the logic.
So the CAN bus means
- Fewer wires, thus fewer points of failure
- More coherent behaviour (like the bike will never crank but not start; it’ll just not crank at all)
- It’s easier to add new tech features without exponentially increasing wiring
- It’s easier to configure features for various markets, like “Always have the headlights on when the motorcycle is running”
- It’s easier to diagnose faults (if you have the right equipment), as the computer can tell you “This part is not sending coherent signals”
Are CAN Bus systems reliable?
Basically, this is a two-part question. Firstly it’s “Are ECUs reliable?” and “Is a wiring system reliable?”
(An ECU is the central management system, the “Engine Control Unit” of the bike. See here for other motorcycle acronyms starting to become ubiquitous.)
On ECUs, one it’s reasonable to = be worried that your motorcycle or car’s computer is going to crash.
Those of us who grew up before Twenty-Tiktok remember the “blue screen of death” on old Windows computers. Heck, these days we still see 404 pages on the internet (or more severe website problems), and other stuff like apps on our phones crashing. Technology fails.
But this is something you have to worry about less with automotive systems. How many times have you been stranded because your car’s computer crashed, for example? It does happen (just as the old joke goes), but it’s extremely rare compared to how often a computer or app crashes.
Automotive computers are extremely hardy, relatively simple, and robustly built and tested microcontroller systems. They aren’t running Microsoft Windows 95 in there — it’s much simpler than that.
So rather than compare the logic of your motorcycle to that of a phone or laptop, compare it to something like that of a Casio G-Shock digital watch, or a microwave oven. Yes, those things fail, but the vast majority of the time it’s because they’re really old or have been subjected to a lot of abuse.
Similarly, yes, your ECU on your older motorcycle might fail. But usually that’s after it has lived a good life, and probably put through a lot of enjoyable abuse.
You might get ECU errors telling you to get your motorcycle serviced, of course. But usually that’s because a sensor has failed or is reporting a serious trouble code. This also may have happened in the past, prior to CAN bus systems — we just may not have realised anything was wrong.
As for the wiring system — wires in any system are equally likely to fail. If you pinch, flex, or otherwise damage them, they’ll fail.
But on a CAN bus system there are two advantages.
Firstly, a CAN bus system has many points of failure that don’t block the bike from going. “Many” sounds bad, but it’s a good thing, because they’re not “single point of failure” systems.
For example, if an oil pressure sensor fails, your bike will display an error and may go into “limp” mode but let you keep riding the motorcycle. Limp mode will help you not destroy the bike, on the off chance you’re actually out of oil. But you can keep going.
Secondly, a CAN bus system gives you way more information about what’s wrong. You might get an error on the dash that says “light failure” or even “brake light failure”. This is much better than making you check everything every time there’s a weird behaviour.
The part that’s frustrating about a CAN bus is that it can feel like it’s nannying you. In the past, if some sensor failed in the engine, you could use your brain and think “It’s the sensor that’s broken, not the bike”, and take your sweet time replacing that part or taking it to the mechanic. In the meantime, you’d have a functioning bike.
With a CAN bus system, when the bike goes into limp mode or even if it just displays a nagging error, you have to get the problem fixed. This can be annoying to some.
What can go wrong with a CAN bus system?
Even though a CAN bus system is digital in nature, it’s still designed by humans. So sometimes things can go wrong with it that are hard to diagnose if you don’t have the right tools.
The first time I experienced something going wrong was when I had a broken speedometer on a Triumph Scrambler I was restoring. It had been crashed. I knew I needed a new speedometer, but was putting it off as they cost US$330 if I recall correctly. Quite spicy! I thought about getting some aftermarket unit if I could find one that looked good.
But the motorcycle wouldn’t turn over at all. I could force it to by jumping the start relay, but then it still wouldn’t fire.
It turned out that the ECU wouldn’t let the motorcycle start or fire if the speedometer wasn’t working. Why, I don’t know. Maybe it was a safety feature. But the Triumph engineers who designed the bike decided that this was a good idea.
If a sensor is not present, is out of spec, or a wire is broken, it’s possible for a CAN bus system to not understand the error message at all, and report something like “implausible signal” when you look up the error codes.
Since CAN bus systems rely on digital information being sent through them, they’re susceptible to electrical field interference. So if you run off-spec high-tension leads, for example, you can cause the CAN bus system to fail.
Finally, and this is a common one but isn’t a “fault” of the motorcycle, you can easily trigger a CAN bus system fault by modifying the motorcycle. If you put on lights, for example, that draw too much power, then the ECU might read “Hey, this device is drawing too much current… maybe it has shorted out!” and thus report an error. No bueno.
How the CAN Bus System Works (Technically)
The CAN bus protocol is a way for different parts of a motorcycle, like the engine, transmission, and brakes (plus their ancillary controllers) to communicate with each other.
The protocol is designed so that in theory, any device can speak up and their messages prioritised. It’s like a group of people talking to each other in a busy room, but with a specific set of rules to make sure everyone can be heard and understood, depending on how important any person is.
Each message sent on the CAN bus has a priority level. So if two messages are sent at the same time, the one with the higher priority wins and is sent first. This way, important messages, like “Stop the bike!” take priority over less important messages, like “Turn on the lights”.
The messages sent on the CAN bus are like short notes that have a specific format. This format makes sure that everyone understands what the message is about and what should be done with it.
The actual data sent in the CAN system is organised into bits, packets, and frames. It’s a little boringly technical to describe the whole protocol here, but you can read about it more on the Bosch website (they invented the protocol and hold all the licenses for it).
The CAN bus uses a twisted pair of wires called CAN high (CAN-H) and CAN low (CAN-L) to send the data frames, although other types of wiring like coaxial cables or fibre optics can be used as well.
Diagnosing Motorcycle Problems — Trouble codes
One blessing of the CAN bus is that when something goes wrong with the bike, the ECU knows, and it “throws a code”. This is known as a DTC, or “Diagnostic Trouble Code”.
Generally, these codes are things like a sensor is working, but it’s reporting a dangerous condition, or a sensor has failed as it’s reporting a condition that’s out of bounds.
The BEST way of reading DTCs — which unfortunately isn’t always an option — is to read them directly on the motorcycle.
On some motorcycles — I don’t know a rule of thumb — you can use a combination of buttons on the handlebars for DTCs to come up on the display. Then you can go online and look them up and figure out what’s going on.
Check your manual first to see if you have that option.
The second-best way of checking fault codes is via an OBD (On Board Diagnostics) device.
In short, the best way to diagnose CAN bus problems is with either an OBD-II device (if you have a compatible motorcycle), or with an official or unofficial tool.
The most common way is to use an OBD-II reader that connects via a USB cable or Bluetooth to your phone. You can then use that device to read whatever’s going on in the ECU. It’s almost worth checking before you buy a motorcycle if it has an OBD-II plug in it.
Some motorcycles have custom connectors. BMW is an example here.
For example, BMW owners love using the GS-911 diagnostic tool.
With a GS-911 and any smartphone or laptop, you can quickly figure Out what’s going wrong with your bike.
The GS-911 tool is expensive up-front, but will save you so much time later.
Diagnosing motorcycle issues vs CAN bus issues
One thing to note is that these are methods of diagnosing motorcycle problems, not CAN bus problems.
If you want to diagnose CAN bus problems, you need an oscilloscope, a ~$300+ bit of kit that will also cost you an education in electronics to understand what it’s saying. Or you need a decoder that can understand CAN data packets
In the old days (or current days, with still old-tech motorcycles), you could read whether something was working or not by reading a voltage or a resistance. You can still do that on individual units, but you can’t do it on a CAN line and make head or tail of it.
The reason for this is that a CAN signal is a digital signal. You’d be reading the average of high and low voltage (within a very low range), which wouldn’t be very useful. (It goes many hundreds of thousands of times a second, so you wouldn’t see the signal.)
The only thing you could determine with a multimeter is that the cable itself isn’t broken.
If you have any further questions about the CAN bus and how it affects your motorcycle, leave a comment or write in.