Kit #3 cant connect on a 2008 Honda Jazz (CAN 29 bit/ 500k))

Inquiry and support for Freematics products
Post Reply
marill
Posts: 2
Joined: Wed Dec 03, 2014 5:37 am

Kit #3 cant connect on a 2008 Honda Jazz (CAN 29 bit/ 500k))

Post by marill »

I have purchased a kit #3 and when I connect it to a Honda Jazz 2008, the screen gets stuck on the
OBD X (toggles between UART and I2C)
ACC v
GPS v

The OBD adapter flashes blue with a few seconds delay and flashes blue again in the same pattern.

I've connected kit #3 to the OBD emulator and it works, however it doesn't work when I connect it to the Honda Jazz 2008.

I can confirm that the Honda Jazz protocol is CAN 500Kbps/29bit, when I use another bluetooth ELM327 OBD adapter and issue it AT commands via a terminal, I can confirm that the protocol is CAN 500Kbps/29bit.

I do this in series
ATZ, ATSP7, 0100 and I am able to get valid data from it. (ATSP7 sets the protocol to CAN 500Kbps/29 bit)

when I do this
ATZ, ATSP 3, 0100 I get an error, BUS INIT . . .ERROR (ATSP3 sets the protocal to iSO 9141-2)

So this confirms the car is using CAN 500Kbps/29 bit which the OBD-II adapter supports.

However, it doesn't work, the screen gets stick with a red X at OBD and it toggles between UART and I2C.

Connecting it to the emulator with the same protocol works.

Any ideas? Thank you very much!
stanley
Site Admin
Posts: 1018
Joined: Sat Mar 01, 2014 3:15 am

Re: Kit #3 cant connect on a 2008 Honda Jazz (CAN 29 bit/ 50

Post by stanley »

Can you try adding some code in the mega logger by setting the protocol to CAN 29bit/500k as you did in your test?
marill
Posts: 2
Joined: Wed Dec 03, 2014 5:37 am

Re: Kit #3 cant connect on a 2008 Honda Jazz (CAN 29 bit/ 50

Post by marill »

Hi stanley,

this is what worked for me:

1. i modified the COBDI2C::init() to not call the pre-determined sendCommand(CMD_QUERY_STATUS) as I assume you have your OBD adapter listing to CMD_QUERY_STATUS to perform the AT commands to set the protocol to auto. Instead I implemented the same setup steps as COBD:init() by manually sending the AT commands via COBDI2C::write() since that tells the adapter to send AT commands.

2. now, instead of sending ATSP0 to set to to auto protocol, I specifically do ATSP7 to set it to CAN 29/b500kbps.

3. after that, i send command 0100 to the ECU so that on the first command, it will setup the protocol and I can get a valid message back that is not ERROR.

4. another step I did was to wait 500 msec (instead of 50 msec) i am guessing timing is an issue as well.

after this, it all works.

May I know what does sendCommand(CMD_QUERY_STATUS) do on the OBD adapter side?

I would like to change the code such that we don't do ATSP0, but rather, we manually test the protocols by sending ATSP1-7 and testing with 0100 and reading the result, until one of them is correct, and then proceed with the intialization. this should be more roboust.

Also, this problem is reproducable on the OBD Emulator. Just set the protocol to CAN 29b/500k, start the ignition ON, connect the Kit #3 and you'll see the same error. And with my changes, it now works on kit#3 and my car.
stanley
Site Admin
Posts: 1018
Joined: Sat Mar 01, 2014 3:15 am

Re: Kit #3 cant connect on a 2008 Honda Jazz (CAN 29 bit/ 50

Post by stanley »

That's good findings.When query command was received, the adapter will query for PID 0100 0120 0140 0160 to get the available PIDa and return to the host.
I will add the steps for manually trying protocols in the library.
stanley
Site Admin
Posts: 1018
Joined: Sat Mar 01, 2014 3:15 am

Re: Kit #3 cant connect on a 2008 Honda Jazz (CAN 29 bit/ 50

Post by stanley »

Here is the updated OBD library which forces to different protocols when automatic identifying is not working. Please try it and let me know if it works well before I will commit it to github.
lawleo
Posts: 3
Joined: Thu Jan 29, 2015 8:22 pm

Re: Kit #3 cant connect on a 2008 Honda Jazz (CAN 29 bit/ 50

Post by lawleo »

I just brought model B a few days ago, seem I am out of luck, it won't work with my Honda Jazz 2009 too.

The MPU6050 was detected but cannot connect to the ODB... just keep connecting....

I also try the newer version u posted in previous post but still no luck.

is my car also using CAN 29bit / 500k too? can I hardcode this in the init method in the library?

any suggest for me?

thx.
lawleo
Posts: 3
Joined: Thu Jan 29, 2015 8:22 pm

Re: Kit #3 cant connect on a 2008 Honda Jazz (CAN 29 bit/ 50

Post by lawleo »

I finally able to "connect" to the obd, but still not able to ready any useful information and the interval between each read is very long... any reason for that?

Code: Select all

/*************************************************************************
* Sample sketch based on OBD-II library for Arduino
* Distributed under GPL v2.0
* Visit http://freematics.com for more information
* (C)2012-2014 Stanley Huang <stanleyhuangyc@gmail.com>
*************************************************************************/

#include <Arduino.h>
#include <Wire.h>
#include <OBD.h>
#include <SPI.h>
#define CON Serial

COBDI2C obd;

bool conn;

void setup()
{
   CON.begin(115200);
   CON.println("OBD TESTER");

   // start communication with OBD-II UART adapter
   obd.begin();

   conn=obd.init();
   if (!conn) {
      for (int i=0; i<4; i++) { 
         if (i==0) obd.setProtocol(PROTO_CAN_11B_500K);
         else if (i==1) obd.setProtocol(PROTO_CAN_11B_250K);
         else if (i==2) obd.setProtocol(PROTO_CAN_29B_250K);
         else if (i==3) obd.setProtocol(PROTO_CAN_29B_500K);
         conn=obd.init();
         if (conn) break;
      }
   }
   CON.println("Connected");
}

void loop()
{
    int value;

    CON.print('[');
    CON.print(millis());
    CON.print(']');
   
    if (obd.read(PID_RPM, value)) {
        CON.print(" RPM:");
        CON.print(value);
    }

    CON.println("");
}


output

Code: Select all

OBD TESTER
MPU6050 detected


Connected
[36280]
[43616]
[50951]
[58287]
[65618]
[72953]
[80288]
[87624]
...
Post Reply