Using CAN-Bus shield with motorcycle

Hey folks. I am new at the forum, I've already read the "getting the best out of this forum" section so I hope this is the right place to ask my question.

Anyways, I have a project with my 2019 Yamaha MT-25. I need to get the rpm information but it would be cool if I get pressure, oil temperature, etc.

I did some research and eventually got arduino uno and canbus shield(with mcp2515).


The bike has a 4 pin socket. +12V, gnd, can-h and can-l. I've connected bikes CAN outs with shield's CAN inlets.

I used "can read demo" example from SparkFun library. But I had no answers from my bike. I guess it works for cars protocol. Then I did more research and got that bikes have different protocols such as yds, sds... I see some people can reach raw CAN-Bus messages from their motorcycles. I want to do it with CAN-Bus shield.

Long story short I think I need a proper code to ask for information from bike. Any help would be greatly appreciated.

Thank you,
Onur

@TriB maybe you can help me with your precious information :pray:

Oh, good question!
First of all, I just have some basic knowledge about CAN-Bus.
Most bikes have the predecessor system, based on a K-Line (Like KDS or SDS for Kawasaki or Suzuki), which I am familiar with.

Since EURO5 (Starting at about 2020), OBD2 came to be mandatory on all bikes, by law.
Exceptions were BMW, which were using CAN-Bus and OBD since years, due to their closeness with cars. And, as far as I know, Yamaha started with CAN on their R1, since the data recording on the track became more and more important.
Many Yamahas from then on, also got the CAN stuff. As I found, the MT07 also has it, for example.

Enough history lesson!
Nowadays, it seems like there are two systems around:

  • K-Line based bikes, which are still communicating analog with their sensors. To fit in the EURO5 requirements, the just attached some kind of a CAN Shield and handle exclusively OBD2 requests.
  • Real CAN-Bus Bikes, where all the communications between sensors, dash, ABS, IMU and ECU happens on that bus.

For the first option, you can only submit OBD2 specified requests. The second would allow to listen to the bus, filter data and see what happens on the bike, between all control units.

Due to the fact, that I do not know your bike, I´d just make an educational guess:
Try to submit OBD2 requests and see what happens then :muscle:t3:

Please find more informations about CAN on seeedstudio.
And for a bit of more understanding, the especially chapter "CAN BUS vs OBD2".

Thanks for the reply @TriB .

I see the difference between OBD2 and CAN-Bus. The part that it says: "CAN is like a phone and OBD is like us talking".

I actually tried seeed studio examples too. But I got nothing other than some strange symbols. On the other hand, I can see that people can connect to 2019 MT-25 via ELM27 with this connector:

I can't say that my bike has CAN-Bus for sure. I just think that it's a 2019 model bike and got a digital diagnostic screen that looks like that(sorry for commercial and so much "that":D):

So it would have CAN-Bus support. I can't ask to an authorized service because they don't know if it has or not.

Anyways I really don't know how to ask for some data to my bike since it's not answering in the examples' PID questions. Bullone has reached the information from his bike but I can't contact him :confused:

Is it OK to connect the Can-h pin to K-line pin on DB9 connector(CAN-Bus shield)?
I want to give it a try.

I will continue to search about how can I do that.

This confirms, that you can make it work with the CAN-Shield!
Maybe just with OBD II commands, but it should work!

Having just "weird" characters, seems like you have a wrong baud rate selected?!

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.