Go Down

Topic: Bike interface OBD (Read 41122 times) previous topic - next topic

TriB

There is a Sender and Receiver in the messages.
If you are the sender, ignore the response.

ECU: 0x11
You: 0xF1

cyclegadget

Using the l9637 i am facing some bouncing problems, some of you have had similar problems? I send a request and i receive the eco of my request with the answer from the ecu
How did you resolvered?
My answer was to Serial.read() the eco without saving any of it, until I read everything that I sent. I checked for my last byte of my message. You can use "if" statements to watch for any combination you want. Then, I knew the next bytes were from the ECU.

Good links: Eagle tutorial= http://www.youtube.com/playlist?list=PLDE1858BD83D19C70
General Arduion tutorials = http://tronixstuff.wordpress.com
http://www.gammon.com.au/forum/bbshowpost.php?bbtopic_id=123

Markino76

Hi guys,
I'm working on similar project: I'm using an Arduino Nano V3 to get info from the k-line (OBD1) of my Honda motorbike.
I'd like to use the HW Serial to dump on the Serial Monitor of my PC what I'm getting from the ECU and I'd like to use SoftwareSerial to communicate with the ECU.
I'm also using an opto-circuit to de-couple the 0-5V of the Arduino signals from the 012V of the bike.

To make the story short... I can't find a way to use SoftwareSerial library with a baud of 10400.
I've connected, for test, two Arduino Nano with SoftwareSerial ports and I'm able to dump on the HW Serial Monitor of the second Arduino all I sent from the first but can't patch the SoftwareSerial code to add 10400 baud option.
Can you please help me?

PS: I saw that SoftwareSerial library works on my Arduino Nanos only till 38400baud, if I configure it at 57600 it doesn't works fine, is it normal?

o5i_

Hi, softsearial doesent work, i had the same issues on seeduino. You can fix it by using the other timers in the internal setup, i dont remember where to find them.. but there is a fix... But i recomend you to use the hardware serial for the transmission, works much better...

mehran135

I want to read my car ECU coolant Temp. with using this circuit , please help me to write program .
https://forum.arduino.cc/index.php?action=dlattach;topic=455232.0;attach=210665

songotag

#110
May 31, 2017, 04:58 pm Last Edit: May 31, 2017, 06:11 pm by songotag
Hello o5i_,

I noticed that when the connection is lost, the microcontroller can not reset the connection unless I switch off the circuit supply.

I think the problem comes from :

if (! Tr_3) {


Can you tell me how to make the connection reset (fast init sequence) without turning off the circuit?

thank you !

songotag

Hello o5i_,

I noticed that when the connection is lost, the microcontroller can not reset the connection unless I switch off the circuit supply.

I think the problem comes from :

if (! Tr_3) {


Can you tell me how to make the connection reset (fast init sequence) without turning off the circuit?

thank you !

o5i_

#112
Jun 01, 2017, 09:57 am Last Edit: Jun 01, 2017, 10:04 am by o5i_
Hello o5i_,

I noticed that when the connection is lost, the microcontroller can not reset the connection unless I switch off the circuit supply.

I think the problem comes from :

if (! Tr_3) {


Can you tell me how to make the connection reset (fast init sequence) without turning off the circuit?

thank you !
Hi, i dont know whats the problem.. for me it works.. on every error or timeout it resets the communication and does a fast init.. i use the opamp circuit.. maybee u need to increase the timings?

Scissor

Hello o5i_,

I noticed that when the connection is lost, the microcontroller can not reset the connection unless I switch off the circuit supply.

I think the problem comes from :

if (! Tr_3) {


Can you tell me how to make the connection reset (fast init sequence) without turning off the circuit?

thank you !
I found out that it is necessary to wait for 5000 ms after a communication error (wrong request, timeout etc.) occurs, at least for my Kawasaki Z750 2004. This means that you really have to halt communcation this long, and not try to reconnect inbetween.

songotag

#114
Jun 02, 2017, 05:37 pm Last Edit: Jun 04, 2017, 09:14 am by songotag
EDIT : I found the solution :

I have to add this line :
Code: [Select]
pinMode(TX, OUTPUT);   after 
Code: [Select]
if (time > tr_2 + t_03) {   in the Timeout function ;)

io_5, you can add my name to your code if you whant for the 0.7.1 revision ;-)

Scissor

I use my own library for communication. And whenever I lose communication (for instance due to a wrong request that results in a timeout) I reinitiate the entire communication, also the fast init. You can find my library here: https://github.com/Eztys/SimpleKDS

Go Up