Hi Priit:
Right now I'm writing a VB6 software to retrieve the fault codes on my 1997328i using the DS2 protocol (1996-1999), I partially achieved the goal because I have problems only with the AirBag ECU. My idea is to have a stuff that works from 1987 to 1999. As I understand, the protocol you are talking about is named KWP71. Really I don't have any info about it, I only have the well known Russian "Scanner.exe" that works well with the engine ECU (DME) in models from 1987 to 1995, I tested it on a friends '94 325i and performed well for the DME. It's the only one information source for this slow init protocol.
I'll be very pleased if you or anybody help me with this protocol information (KWP71?) in order to beggin adding a module to my project.
By the way: all I'm doing is for sharing, so if anybody is interested just let me know to send the exe and source code. Remember all I have is for 1996-1999 BMW.
Thanks folks!
Gustavo
Colombia
Priit Varik <priit.varik@...> wrote:
> serial stream) I tried pulsing DTR and RTS lines giving 200ms of
> delay (1000ms/5bps = 200ms right?) and tried sending the 0x01(engine)
I do the same on my PalmOS and there the RTS is the only software controllable otput that can be used to drive the L-line.
> address using the 1 start, 7 data, odd parity 1 stop settings (that's
This sounds correct.
> a 1-0000001-1-1 ?). Can't initiate the ECU. I hope it's not Vb's lame
Can't be the VB problem. Are you sure the ECU adrress is correct? On my 1992 BMW 530i I get ECU response from address 0x10 and ABS from 0x1A.
Actually, I wrote the wake-up routine so, that I can input the device address and it outputs this using 5-baud protocol over the RTS. But this way I get responses only from addresses 0x10 and 0x1A.
smth like this:
#define BIT_TIME 200 // bit time for 5 baud addressing
/***********************************************************************\
|| ||
|| FUNCTION: requestController ||
|| DESCRIPTION: Request the controller by outputting the 5 baud ||
|| address on the L-line (5bps 7-O-1) ||
|| PARAMETERS: address of the controller in range 0x01..0x7F ||
|| RETURNED: none ||
|| REVISION HISTORY: ||
|| ||
\***********************************************************************/
void requestController(Uint8 address)
{
Uint8 i,
out_bit = 0x00, // this is the bit we're outputting
parity_bit = 0x01; // here we XOR the odd parity bit
address = address << 1; // eliminate 8th bit and prepare for right shift
setRTS(true); // ensure line is in idle state (RTS high)
delay(BIT_TIME);
setRTS(false); // output start bit (RTS low)
delay(BIT_TIME);
for(i = 0; i < 7; i++) // shift out 7 bits of the address
{
address = address >> 1;
out_bit = address & 0x01; // get the LSB
parity_bit ^= out_bit;
setRTS(out_bit); // set RTS according to address bit
delay(BIT_TIME);
}
setRTS(parity_bit & 0x01); // set RTS according to parity bit
delay(BIT_TIME);
setRTS(true); // output stop bit (RTS high)
delay(BIT_TIME);
}
Regards,
Priit
-- Everyday.com --
Tasuta, mugav ja kiire E-post Everyday.com-ist!
[Non-text portions of this message have been removed]
Yahoo! Groups Sponsor
To unsubscribe from this group, send an email to:
opendiag-unsubscribe@egroups.com
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
---------------------------------
Do You Yahoo!?
Todo lo que quieres saber de Estados Unidos, América Latina y el resto del Mundo.
Visíta Yahoo! Noticias.
[Non-text portions of this message have been removed]
Received on Tue Sep 16 05:43:35 2003
This archive was generated by hypermail 2.1.8 : Wed Jan 02 2008 - 00:56:01 CET