Announcement

Collapse
No announcement yet.

Need BMW e30 diagnostic protocol information

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Need BMW e30 diagnostic protocol information

    I'm looking for any and all information on interfacing with the 20 pin diagnostic plug. I have searched around online and found limited information. So literally anything is helpful thanks.

    #2
    What all are you trying to do, exactly? The version of the KW71 protocol used in these cars is quite old and not super well documented.

    The only remotely accurate info that I have found in terms of actually communicating and pulling data is here:
    AUDI BMW RENAULT CITROEN MERCEDES PEUGEOT VOLKSWAGEN HONDA NISSAN OPEL SEAT DACIA SKODA TOYOTA VOLVO FIAT MITSUBISHI Alfa Romeo FORD Land Rover PORSCHE KIA HYUNDAI Ferrari DAF VOLVO Harley Davidson Yamaha Diagnostic Tool VAS PP PPS 2000 LPG Proxia Clip can sonde cansonde PPI AutoData BrainBee Hella Carsoft OP-Com opelscanner Tech 2 GT1 Modic EOBD OBD OBD2 PWM VPW canbus can adapter VCDS vag-com Truck Motorcycle OPPS OPS Modic DIS VCT2000 INPA Select Monitor Consult DAF WDS IDS VCM DAF DAVIE XD PTT Mack GFS Light Formidable Examiner Arbritus ETOS DAS WIS wisnet sim manuals download free pictures system DTC information LPG tuning APP Yamaha MUT Vidia TIS PIWIS Durametric M-MDS


    I think that it is a not-so-great translation from another language, so a lot of it reads incorrectly but you can figure it out. I made an Arduino program to pull all of the internal ROM from the 8051 microcontroller, and you can also request RAM values in real time to get stuff like RPM, fuel injection, etc. But I have not really bothered with doing that.

    Interfacing with it involves 2 wires: the L-Line and the K-Line. The L-Line is only used for wake-up and initiating communication, and this is described in the link above. Once you do that, you do some handshaking with the K-Line and then you can make a program to request data, if you know what you want. You will need to buy a KW71 level shifter though sine these operate on 12V and are bi-directional. I opted to bypass a bunch of circuitry and have my Arduino communicate directly with the microcontroller's UART/serial lines at 5V.

    Transaction Feedback: LINK

    Comment


      #3
      "Speed 9600 bauds, 8 data bits, no parity, 1 stop bit. "

      That's your key to start playing with it. To be honest, I've never hooked a scope up to it. Anyone?????

      I have somewhere a document that says what it spits out. And IRC it's not much. It's maybe injector pulse width, and a few other timing things - but nothing analog. I could be wrong. It's been 10 years since I looked into getting data out of that port.
      Originally posted by Matt-B
      hey does anyone know anyone who gets upset and makes electronics?

      Comment


        #4
        You can pull a tremendous amount out of it, but it requires you to know what RAM address stores which run-time variable. This is helped somewhat if you know what the axis descriptors are for the various maps in the ECU. It turns out that the axis descriptors are actually pointers, so in the case of an RPM axis which uses descriptor 0x3B, it really means that the current RPM value is stored there (0x3B:3C I think, since it is a 16b value). Load being 0x40 is the same story...the currently calculated load value is in that RAM location. All running variables are in RAM, so if you know what is where, you can read it all.

        Other things you can do are dump the MCU's internal ROM and the EPROM, get serial and version numbers, and even overwrite RAM. I think you can also program the EPROM, although it requires externally supplied VPP and a blank chip. 9600 baud is really slow, so it is obviously pretty limited in terms of what sort of real-time info you can pull.

        Transaction Feedback: LINK

        Comment


          #5
          Originally posted by bmwman91 View Post
          9600 baud is really slow
          Understatement of the year. :devil:
          Originally posted by Matt-B
          hey does anyone know anyone who gets upset and makes electronics?

          Comment


            #6
            I had this dumb idea to replace the control panel with a little 5" touchscreen connected to my raspi maybe I should Fina another way to pull data maybe.




            Originally posted by bmwman91 View Post
            You can pull a tremendous amount out of it, but it requires you to know what RAM address stores which run-time variable. This is helped somewhat if you know what the axis descriptors are for the various maps in the ECU. It turns out that the axis descriptors are actually pointers, so in the case of an RPM axis which uses descriptor 0x3B, it really means that the current RPM value is stored there (0x3B:3C I think, since it is a 16b value). Load being 0x40 is the same story...the currently calculated load value is in that RAM location. All running variables are in RAM, so if you know what is where, you can read it all.

            Other things you can do are dump the MCU's internal ROM and the EPROM, get serial and version numbers, and even overwrite RAM. I think you can also program the EPROM, although it requires externally supplied VPP and a blank chip. 9600 baud is really slow, so it is obviously pretty limited in terms of what sort of real-time info you can pull.

            Comment


              #7
              Originally posted by bmwman91 View Post
              I made an Arduino program to pull all of the internal ROM from the 8051 microcontroller, and you can also request RAM values in real time to get stuff like RPM, fuel injection, etc. But I have not really bothered with doing that.
              bmwman91 Would you mind sharing the details of your arduino project? I'm interested in having an Arduino fetch live data, so any help you could provide would be greatly appreciated!
              thanks!

              Comment


                #8
                What do you need? Something like this: Description Protocol KW-71; Getting started. Wake-Up - procedure. Do you need this or a device that can make a good diagnostic for your car? I am using thinkdiag for some months in my car service and it is a perfect one. It shows all the errors and all were correct and I checked it on many cars. Moreover, it is easy to use and I think that every driver should have it in their garage because he can find quickly the problem. You can find it on thinkdiag.co.uk.
                Last edited by DanteALG; 03-11-2021, 07:01 AM.

                Comment

                Working...
                X