I“d say, with this information you can easily realize that. The Honda data tables.pdf will show you which value is what and how it has to be calculated.
The schematic can be made easier using an L9637D.
It will convert the single K-Line to serial Rx & Tx. No need for two separate converter.
You can take OSi“s work as a base. It fits better then mine, which is optimized to respond with a single value, not a data table.
Alright! I've ordered some L9637Ds and will start looking for a solution when they arrive. I'll post again, either if I need some help or if I get it working.
I“d say, with this information you can easily realize that. The Honda data tables.pdf will show you which value is what and how it has to be calculated.
The schematic can be made easier using an L9637D.
It will convert the single K-Line to serial Rx & Tx. No need for two separate converter.
You can take OSi“s work as a base. It fits better then mine, which is optimized to respond with a single value, not a data table.
So the chip arrived today. Wasnt aware that its smd, dont have a board for it so I soldered some cables to the pins. Doesnt look nice but works I guess, at least for testing. Ill check to get some kind of pcb made or so when Im done.
@Trib: I've just noticed you list a Ceramic-Capacitor 10 nF 50 V/DC. I only have an electrolytic 3.3 uf 50v as the smallest size. Would it be ok to use that one instead?
What I really want is the gear, so I thought maybe starting with your code and working my way from there. I've pulled it but it seems to be in 4 different .ino files. Im a bit confused, do I need to merge them or something? Sorry for all the novice questions.
CapFirepants: @Trib: I've just noticed you list a Ceramic-Capacitor 10 nF 50 V/DC. I only have an electrolytic 3.3 uf 50v as the smallest size. Would it be ok to use that one instead?
What I really want is the gear, so I thought maybe starting with your code and working my way from there. I've pulled it but it seems to be in 4 different .ino files. Im a bit confused, do I need to merge them or something? Sorry for all the novice questions.
Oh yes, it is really tiny! There are some SOIC boards, to make the implementation easier.
I didn“t calculate if you would still fit into the specification of L9637D. The costs are small and a capacitor is sent within a day. So I would go for sure and get a 10nF.
The *.ino files are belonging together. If you copy all of them into the same folder, just open one of them and the others will be opened in the Arduino IDE in seperate Tabs.
The IDE handle them internally as one code file.
Hello, awese work! I have Honda VFR 1200 X and wanna to rewrite flash ECU. Is it generaly k-line interface enough for that and what kind of software should i use(ecuflash)?
gsustek:
I have Honda VFR 1200 X and wanna to rewrite flash ECU. Is it generaly k-line interface enough for that and what kind of software should i use(ecuflash)?
Theoretically it would be possible to rewrite the mapping through K-Line.
Practically, there are some security layer, which will prevent you from doing that!
Also I don“t expect any expensive software to work with a self created adapter. The ecuflash-guys spent weeks or even years of work into their flashing tool and for sure, they won“t give it away for free.
For Suzuki there is a big community, which disassembled the ECU code and created an open source software, where you can easily flash the mapping or the whole software.
Kawasaki secured their ECU with an unique seller-code, which has to be purchase as an official seller.
I guess that Honda did something similar, due to the fact, they also use Denso Ecu“s.
Even owning a Suzuki and some self created adapters, I wont mess up my ECU without deep knowledge of mapping and stuff!
I am veeery near to finish a project which i have worked since some times: a library to make the communication with motorbikes which uses the keyword protocol 2000 easy for everyone, in the last months i gained quite a good knowledge about this protocol and obviously i am ready to share it
this is my almost finished attempt:
I was wondering if someone would like to contribute with the kawasaki/honda/yamaha part, i know almost nothing about these bikes but they should be using the same protocol and all the code is already settled for them
Right now i am testing this on a suzuki GSX-R 600 L1 (2011) but it doesn't respond to the start sequence. I am not sure which is the problem but i guess some echo or maybe suzuki stopped using the KWP before 2011
EDIT: be aware that the documentation on github is not up to date
nice to see how far you got!
I just throw an eye on you code and it will not be able to cover Suzuki and Kawasaki.
What you called PID, is the place of a specific value within the response data. Because Suzuki gives you all information in a single request. But in OBD II and KDS, the PID is per request.
Give me RPM out->0x0C in<-2500rpm.
That is hard to combine and you more or less double the code with two different approaches. I“m somewhere on half way there. It works, but SDS is quite slow, due to the fact I does not store the values right now.
aster94:
Right now i am testing this on a suzuki GSX-R 600 L1 (2011) but it doesn't respond to the start sequence. I am not sure which is the problem but i guess some echo or maybe suzuki stopped using the KWP before 2011
Me also got everything running and then, from one day to the other my ECU did not respond to the init protocol anymore.
In my case, it was my datalogger. It sends all outgoing and incoming data to a second arduino, which does all the SD-stuff. Sending a single request took 0,012 secs. But it seems to be enough, that my Suzuki GSX-R600 K6 does not respond anymore. Deactivating that, instantly made it work again. Try it with you debugging-mode.
I know that kawasaki needs to ask for every single sensor
this is the reason for a couple of defines in my code: see here and then this
This way calling just one function which is requestSensorsData on both suzuki and kawasaki on suzuki will send just one request (0x21, 0x08) while in kawasaki it will send a group of request
Hi guys,
thanks for all the great informations!
I have an Yamaha Tracer 900 2018 and I suppose my bike is using CAN bus on the diagnostic connector... can you help me to implement an Arduino based board to read some data (TPS, RPM...) via CAN? Is it possible?
what makes you think that Yamaha uses CAN-Bus?
They are still on K-Line as Suzuki and Kawasaki.
But what changed due to the 2018 EURO6 is, that it is OBD2 compatible.
These are two different things!
CAN-Bus is the way data is sent between ECU, sensors / actuators and diagnostic plug.
K-Line is the way how the diagnostic plug sends and receives data via single line. Sensors and stuff is just communicating by it“s voltage/resistance.
OBD2 is only the language how it speaks to you.
What you can do is to connect a stock ELM327 OBD2 Plug to you diagnostic Plug. Since OBD2 is compatible, you can use it right from the start, like in a car.
No value calculations, no PID translations, ect.
You only need to know which wire is the K-Line, Ground and Voltage, to connect it equivalent to the ELM327 Dongle.
what makes you think that Yamaha uses CAN-Bus?
They are still on K-Line as Suzuki and Kawasaki.
But what changed due to the 2018 EURO6 is, that it is OBD2 compatible.
These are two different things!
CAN-Bus is the way data is sent between ECU, sensors / actuators and diagnostic plug.
K-Line is the way how the diagnostic plug sends and receives data via single line. Sensors and stuff is just communicating by it“s voltage/resistance.
OBD2 is only the language how it speaks to you.
What you can do is to connect a stock ELM327 OBD2 Plug to you diagnostic Plug. Since OBD2 is compatible, you can use it right from the start, like in a car.
No value calculations, no PID translations, ect.
You only need to know which wire is the K-Line, Ground and Voltage, to connect it equivalent to the ELM327 Dongle.
Good luck
Wow! Thanks for the info!
I was supposed that on the DLC connector of the recent bike I have to "read" CAN bus data.... have you ever work on Yamaha DLC? I'd liek to do an Arduino board to read TPS, RPM and ECT from the DLC
And here is how to connect it onto your bike. There are several online-shops which sell a connector (for a lot of money). But you can do it by yourself for testing purpose.
Then install Torque, Car Scan or a simple Bluetooth Terminal on your phone, to test the connection.
Thank you so much!
Looking on the link you post it make me back confused.... the diagnostic connector has 4 pins: +12V, GND, CAN HI and CAN LOW.... also on the OBDII connector the pin6 and 14 are related to the CAN bus. That means that the diagnostic use CAN instead of k-line?
This is from 2010, as you can see. It also uses K-Line to communicate with the diagnostic interface, like we do here.
As you have said, the new bike from 2018 uses CAN. So how should that help?
And why you don“t follow my idea with an OBD2 dongle?
OBD2 dongles support several communication types (As K-Line and CAN).
Get your bikes diagnostic plug-pinout and combine it with my wiki-link to the ELM327 (OBD2 dongle) pinout.
That“s it!
The ELM327 makes everything for you. You won“t see if it uses K-Line or CAN.