I built a prototype interface because I got fed up with the test arrangement I was using. I had a microcontroller demo board, a PSU for that a serial USB converter and the associated cables. All my testing has been done in the car. I did all the bits for a test box about four months ago, I am finally building it now. I originally designed a PCB so that would fit into the OBD2 backshell but I am going to redo that now to give a bit more space for other features and to allow different adapters for OBD2 and for OBD.
I will make a MK2 prototype in a few weeks, if you PM me your address then I'll send you one for you to try. There are some new USB processors being launched that are currently only available as engineering samples. Price will be less than a dollar each in quantity. They would make a very cheap basic interface. The software is not far off complete, I used it for the ECU that I designed a few years ago. The message decoding part is missing but I will redo that when I know a bit more about the mapping. I now back up everything important to the web server.
My prototype is a bit messy because it was just built from the parts bin. Currently it uses an FTDI chip, these are pretty much the industry standard now and have the advantage of providing both 3v3 for the processor and a 6MHz clock. Disadvantage is cost and its a TSSOP package which is tricky to hand solder, hence the use of a module for the prototype.
your not kidding that is tricky soldering, fine pitch smd.
that is some great work there, super !
here is my ECU hacking progress page. (changing daily)
OK from my notes.
09 = possible WTS so I'll take that as confirmed. However it is a modified value not raw from A/D
05/06 is RPM/4 - 16bits
0A = possible ATS, again thats confirmed.
10/11 = 16 bits, something to do with MAP?
Registers that appear to contain flags:
L0079 = 1E
L0093 = 08
L0095 = 1D
L00D8 = 15
There is a fair bit of concurrence there which is good.
Values that are zero are likely to be learned values. My ECU has been powered down so I get the same results. Anything 80h is likely to be a signed number. During initialisation RAM is mainly set to either 00h or 80h.
The FT232R supports all standard baud rates and non-standard baud rates from 300 Baud up to 3 Megabaud?
that is a really flexible chip !
windoz,Linux and Mac, wow.
and royality free drivers, to boot.
nice end to end solution.
rs232 , to TTL232 bidirectional serial comms. Nice ! and a virtual port driver !
so any appl. can find it.
FT232R. I think its the L, its the SSOP package anyway. I have used these a fair few times. They just need a couple of external parts, crystal is built in and they can power external circuitry at 3v3 from the built-in regulator. USB couldn't be easier. We also have a couple of dozen RS422/USB converters at work from various manufacturers that use the earlier BM chip. Install driver, plug them in and they just work.
yes, i put one me my MSquirt so i could use USB full time.
cmd 06 , i played with it,
itis very agressive, rolls many times as I increase rpm, but my CAS simulator is too agressive too, will conv. my cas rpm to 06 command and see the ratio.
but I think 06 is RPM raw.
cmd 05 i get , 00 at engine of, idle i get 01, and max rpm (over Redline) 0E max and it never rolls over.
going to play with binary flags next.
__________________ http://carfix.stufftoread.com/
click me.
91'-8v,2dr,4wd,Conv. Market#E03
My server has Engine Repair proc/data. Check it out.
0E (L005A) is likely to be MAF. Addresses L0054 - 5B are the registers that the A/D results are stored in. 56,57 and 5A are not used in the 8V code. 5A is the only one that appears in the OBD lookup table.
I need to finish my test box so I can get Chris' ECU tested and returned to him. Then I will go back through the code with the new data.
yes, i put one me my MSquirt so i could use USB full time.
cmd 06 , i played with it,
itis very agressive, rolls many times as I increase rpm, but my CAS simulator is too agressive too, will conv. my cas rpm to 06 command and see the ratio.
but I think 06 is RPM raw.
cmd 05 i get , 00 at engine of, idle i get 01, and max rpm (over Redline) 0E max and it never rolls over.
going to play with binary flags next.
From earlier notes:
05/06 is definately RPM and is 16bits (from code). I have logged this from the bus with the LA. RPM values approx. from revcounter
0F is L00AF and is 8-bits. Logged from bus I get
idle = 97
1500rpm = 60
2000rpm = 4F
The value is also store at L00A2. L00AF is L00A2 + L00B2. When I get a chance I can log these values using my extended diagnostics table. I can modify it to read any address so I can pull values that aren't placed on the external bus.
Power steering, oil pressure, ebrake and the diagnostic switches all come in to an ASIC 'port expander'. On my EPROM ECU this has 6 lines to a conventional port expander. I have just bought a 44pin PLCC test clip to reverse engineer this chip. If you can find any of these it will be a big help.