Git Product home page Git Product logo

acyrman / keyword-protocol-2000 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aster94/keyword-protocol-2000

0.0 0.0 0.0 3.57 MB

The KWP2000 is a communications protocol used for on-board vehicle diagnostics systems (OBD) by Suzuki (SDS), Kawasaki (KDS), Yamaha (YDS), Honda (HDS) and possibly more. It is standardized by ISO 14230

License: GNU General Public License v3.0

C++ 83.40% C 7.01% Python 9.59%

keyword-protocol-2000's Introduction

Keyword Protocol 2000

The KWP2000 is a communications protocol used for on-board vehicle diagnostics systems (OBD) by Suzuki (SDS), Kawasaki (KDS), Yamaha (YDS), Honda (HDS) and more. It is standardized by the ISO 14230 and it is compatible with the ISO 9141. Both uses a single line called the K-line through it we send some Parameter IDs, knowns as PIDs, to the Electronic Control Unit (ECU). This way we have total control on the motorbike: we are able to ask for sensors data (such as rpm, gear, speed, temperatures, etc.), see error codes and clear them, upload/download and more.

If you want to read more about this protocol and OBD-II you can see the protocol explained.

Supported Hardware

Any microcontroller (MCU) that uses the Arduino framework could be used.

The K-line works at 12V so you need an integrated circuit (IC) as interface, for example:

  • L9637
  • MC33660
  • MC33199

Or, you can also use operational amplifiers/level shifter/transistors.

List of Vehicles

The library would work on Suzuki and Kawasaki motorbikes. I didn't had the possibility to test on Yamaha and Honda bikes but I am willing to do, if you own any one of the two open an issue and I will write some code for it.

This is a list of motorcycles that have been successfully tested:

Motorbike Year Tested
GSX-R600 2011 ✔️
Versys 650 2012 ✔️

If your motorbike is not in this list open an issue and tell me if the library worked 😁

Installation

Simply search for KWP2000 in the Arduino/PlatformIO Library Manager or download this repository and add it to your library folder

Usage

Hardware

You have to find the K-line of your bike. Usually it's under the rider's seat. You just need to connect the K-line, VCC and GND to the driver IC you bought

Example of the wiring for the L9636:

Alt text

Dealer Mode - Only for Suzuki:

If you wish also to be able to enter easily into this mode add an optocoupler with a ~330omh resistor between the MCU and the dealer pin

Alt text

Software

Go to PIDs.h and de-comment (delete the // symbols) your motorbike, then upload the basic_working example.

Development

I made a ECU Emulator written in python for the development of new functions and tests.

Documentation

Generally the functions return true if everything went fine, a negative number if there where any error, false if nothing changed

This documentation has been automatically generated with doxygen + doxylite, an automatic documentation generator, I will make the formatting nicer later.

See it here documentation

Disclaimer

I do not assume and hereby disclaim any liability to any party for any damage to propriety or person

Influence:

keyword-protocol-2000's People

Contributors

aster94 avatar per1234 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.