Turns out the EFI bikes along with the '04 and above carb bikes use an on-board diagnostics systems similar to a car. I have been doing some testing to see if I could communicate with the bike to get live engine data, and trouble codes. (same data a scanilyzer or Twin Tec adapter would give you)
I have been successful in connecting to my '04 sportster and "listening" to the serial bus on the bike and reading info about RPM and speed on the bus. It is identical to the type and style of data you would find on a car.
Now I'm trying to locate a list of commands (PIDs) I can send to the ECU and get information back. I have been unsuccessful in locating any type of printed list of commands, and I have tried all the commands that are "standard" under OBDII. I'm not looking to make changes to the ECU just read it for engine diagnostics purposes.
I'm really looking for places to look. I don't know where I should start to find this info. The same info for a car is freely available all over the web. My guess is Harley is going to be tight lipped about this. (Which is unfortunate) Any idea of resources I could check out?
My guess is Harley is going to be tight lipped about this.
you've got that right I'm sure! I doubt that they will release anykind of API for it...I would say that you will either have to reverse engineer it (disassemble it to some extent) or wait for someone else to do it...to date I haven't heard of anyone else doing it though I would be very interested in what you have found...maybe those of us with a hardware/software background can pool our information and figure it out.
Democracy is two wolves and a lamb voting on what to have for lunch. Liberty is a well armed lamb contesting the vote.
I can communicate with the buss so the hardware and basic software are worked out at this point. (using a terminal app for the time being)
What I need to know is the modes, and PIDs that talk to the ECU. I can give you an example.
On a car, to get RPM data you would issue a command of 01 0C (hex). The reply is 41 0C xx xx (xx xx = 2 data bytes). None of the valid car commands work on the bike which tells me they picked higher manufacturer specific modes.
Short of getting a printed list the only other option would be to monitor the serial output of a scanilyzer or Twin tec adapter.
BTW much of the info I have was due in large part to the folks on the V-rod forum.
you could try either sniffing a scanilyzer like you said or you could write a routine to send it a bunch of codes via bruit force, see which ones send unique returns, and try to see what the returns are refering to, another way to do it would be to see who created the ECUs who created the chips IN the ECUs etc and see if you can get some white papers for other stuff they make..most likely the way they do things will be very similar to other systems that they have designed in the past...just a few places to start....the first place I would look would be the maker of the ECU/chips/processor
ECU is manufactured by Delphi. Delphi determines communications protocol (which if VPW) but not the data traveling down the line. That info is up to the company using the ECU, IE Harley. So no luck in that department.
I would like to sniff the serial line of a twin tec or scanlyzer but don't have access to either.
hmm so HD didn't have another contractor (between Delphi and HD) actually create the ECU that you know of? no luck that way if that's the case...what about just a simple brute force technique like I mentioned above...not elegant by any means but it could get you some good info...just send a large range of requests, sit back for a while and take a look at the results??
you don't need to know much visual basic to get you where you need to be...if you can do pic processors then vb is an easy jump...try doing a search and you will find tons of serial controllers written in vb...an hour (if that) and you can have a button that will try all the code ranges you can think of....reading the output in the end is a different thing but at least you'll know what codes it's accepting!