iwanders / OBD9141

A class to read an ISO 9141-2 port found in car diagnostic OBD-II ports.
MIT License
243 stars 72 forks source link

One ERRORR #60

Open toprakb66 opened 3 weeks ago

toprakb66 commented 3 weeks ago

My friend, unfortunately, I couldn't get this to work on an Arduino Uno. It shows init 0. To be honest, I haven't seen a working example where someone reads data from the serial monitor using Arduino Uno. There are always tutorials on how it should be done, but I haven't seen a successful implementation with actual readings on the serial monitor. I've been working on this project for a month without any results. Can you help me?

iwanders commented 3 weeks ago

To be honest, I haven't seen a working example where someone reads data from the serial monitor using Arduino Uno.

I'm sorry you weren't there in the winter of 2015 when I tested this library on an UNO, you could've witnessed it first hand. I understand your frustration, but this statement doesn't help with soliciting support from anyone.

Are you sure the ECU you are trying to communicate to talks OBD9141-2?

The uno only has one hardware serial port and that's used to communicate to the USB serial port. You must use the softserial example on an UNO, please check the softserial instructions for specifics for the UNO board, I think there's only a few pins you can use, you MUST use those pins.

To get more information try uncommenting this to get the debug prints. That's the first step, provide those prints as a bare minimum. It's hard to provide guidance with just the information that it doesn't work. Ideally, you hook up a logic analyser to see what is actually happening on the data line, that's the best way to see which part isn't working. Take a look at https://github.com/iwanders/OBD9141/issues/3, there's some info there on how to approach things when it doesn't work, as well as links to other issues that may help figure out what you are running into.

toprakb66 commented 3 weeks ago

L9637D Hello my friend, thank you for your response. I am testing your code with the L9637D chip. My connection is like this. I have tried many codes and received the following response from the ECU: C1 33 F1 81 66. This is an error message, and I can't figure out why it is being generated. I've been working on this project for a month.

iwanders commented 3 weeks ago

Did you try to google C1 33 F1 81 66, or search in the issues here?

A quick google finds me:

That sequence - in fact - is part of the initKWP handshake, it is not an error message, that sequence should be sent by the tester, to the ECU.

Is there another tester on the same bus? if so remove it.

If there's no other device, it could be that (for some reason) you aren't properly reading the echo from your own transmissions in this function, I've never seen that problem though, so I'd be surprised if that's the case. The debug prints may tell us whether this echo is seen in this requestKWP call.

Please read the links, in particular the issue I linked and enable debug prints as I already stated in my first reply.

toprakb66 commented 3 weeks ago

gelnyiro Why is no information appearing on the serial monitor?

toprakb66 commented 3 weeks ago

369188174-912b2af9-6e70-43c4-9f41-c0489da73444 Buddy, I’m encountering this kind of error in another code. What do you think could be causing it?

iwanders commented 3 weeks ago

Why is no information appearing on the serial monitor?

I don't know, I haven't used the Arduino application in years, I'm sure there could be many reasons.

Buddy, I’m encountering this kind of error in another code. What do you think could be causing it?

That should be the data you are sending to the ECU, like I said in this comment, please read comments carefully and follow the links provided.

The code in that screenshot doesn't look like it's my library, so I can't really help with that. That looks like this one. You also made an issue in that repo in https://github.com/muki01/OBD2_K-line_Reader/issues/7 where @muki01 has been very patiently helping you out. In this comment you obtained an Init Success!!, which I guess means things are working and you can correctly retrieved data?

If you got it working with one library, you can use a logic analyzer or second Arduino to record what happens on the K-line bus when it works, and compare to what happens on the bus for the library that doesn't work.

But if I were you I'd just go with the library that works, if you got it working with @muki01's library, that's great, I recommend sticking to using what works for you, especially if you are new to all this.

muki01 commented 3 weeks ago

Hello. It gets such data because in my code I don't remove the codes that the microcontroller sends. I know they are supposed to be deleted but it was slowing down the data receiving a bit and I decided not to delete them for now. His problem is that after making the pattern and getting 55 08 08 and sending the reverse KW2 he doesn't get a response from the car. Maybe my code has a problem but I have tested with several cars with the same protocol and it works fine for me.

toprakb66 commented 3 weeks ago

I think I'm using the ISO14230 protocol; when I connected the Wi-Fi OBD2 device to the vehicle, it communicated directly using this protocol. @muki01