OBD-II CAN Bus GPS Development Kit

Hello,

I ordered an OBD-II CAN Bus GPS Development Kit from Seeedstudio.

Firstly, it does not have the reset button as described on your web site.

Why does mine NOT have the reset button?

  1. Secondly, I plugged mine in using a good USB-C connector and ran Putty on the port. Nothing comes up. My expectation is to see GPS data as described in your documentation.

Who do I NOT see any GPS data?

  1. I cannot find any example code to enable the GPS and to log it. Please assist me in enabling the GPS and logging it to the SD card.

Please assist me in getting this device up and running.

Thank You,

Hi @cliftonkerr
The info@longan-labs.cc already answered your question.
Post the answer here so that other customers with the same problem can see it.

  1. The description on our website doesn’t have the reset button, it is in the Longan’s website.
    The reset button had been cancel in the latest version, but the Longan hasn’t updated the images on their website.
  2. I plugged my unit into my computer using a good USB-C connector and ran Putty on the port. Nothing comes up. My expectation is to see GPS data as described in your documentation.
    Why do I NOT see any GPS data?

Longan: The kit is a dev board, there’s no firmware in the MCU inside, you have to write the code yourself to make it work, we provide the Arduino library already: https://github.com/Longan-Labs/CAN_BUS_Shield
and there’s a demo as well: https://www.instructables.com/id/An-Easy-Way-to-Get-Data-From-Your-Vehicle/

3 Also, I was NOT able to find any example code that initialized the GPS. I was not able to find any code that prints the GPS or any code that saves the GPS.
Please assist me in getting the GPS and CAN working.

Longan: If you want to print the GPS, please try below code:
void setup()
{
pinMode(A2, OUTPUT);
digitalWrite(A2, HIGH); // power on

Serial.begin(9600);
Serial1.begin(9600);

}

void loop()
{
while(Serial1.available())
{
Serial.write(Serial1.read());
}
}

I tried the sample code and it still doesn’t work.
I had a much more detailed response, but this input box wouldn’t accept it; therefore, I’ve reduced the text.
The bottom line is that it still doesn’t work.

Hi @cliftonkerr
I’m sorry that you spent so much time searching so much information to obtain GPS data and Can data but did not get the results.
This product is from our supplier, and the guidance documents are also from the supplier.
I have reported the lack of detailed documentation to the supplier, and they will immediately modify the documentation to meet your needs.

Besides, the code I send to you before having something wrong, please check the below code.

void setup()
{
pinMode(A3, OUTPUT);
digitalWrite(A3, HIGH); // power on

Serial.begin(9600);
Serial1.begin(9600);

}

void loop()
{
while(Serial1.available())
{
Serial.write(Serial1.read());
}
}

Thanks for your time and patience.

This new sample is A3 rather than A2.
I’ll try it and report back.

The A3 works!!!
This new sample code works!

The previous sample you gave used A2, which didn’t work.
Please explain what pinMode(A3, OUTPUT) is doing?
Is it turning on power to the GPS module?
This is extremely discouraging because it has taken me many many days to get this simple sample up and running.

Yesterday, I tried just enabling the CAN bus without GPS and the CAN data acquisition didn’t work. Do you have a simple sample to get the CAN bus working?

Hi @cliftonkerr
This means that the analog pin A3 is used as the output, and A3 is the corresponding correct pin.
The A3 pin controls a MOSFET to control the power of the system, including the power of the GPS. Pulling it high can make the MOSFET turn-on. If the GPS and other peripherals do not need to work, you can pull A3 low to save power.

Use this demo to read car data.

That is interesting.
I looked at the schematics and nothing is connected to the A3 line of the Atmega32U4.
The GPS is connected to different lines.

Hello,

I used your demo to generate CAN frames.
In my automobile, your demo didn’t work until I modified it.
I did the following modifications:

  1. I removed this line from from the setup() function:
    while(!Serial);

With the line in there, it seems like it was just waiting forever for me to connect a serial console to the USB port.

  1. I removed the CAN filter line:
    //set_mask_filt();

With the filter removed I was able to get all of the CAN data from both my car and my truck.

Therefore, I’m now able to get both GPS data and CAN data from the device.
I successfully modified the CAN code to log CAN data to the SD card.

Thank you!
It seems that this device is finally working.

Proper code examples and documentation would have saved me many, many, many days of trouble trying to get this working.

Sincerely,
Clifton