Wanted: SavvyCAN HowTo

yes I did, since the M2RET is installed it gets connected in the connection screen. But no data in the main screen. The off the shelf dongles received data easily. I need to check the pin connections if the match with the OBD2 port on my Mercedes GLE, maybe that is the problem.

If your cheap dongles are working then it is likely a software configuration issue with your system. The ports should line up the same as those cheap dongles do. While SavvyCAN and M2RET only work with canbus this shouldn’t be an issue.

Try grabbing the November Firmware and SavvyCAN version from http://www.savvycan.com/ and use those. If you still have issues Collin will have to help you out as he wrote both. The firmware there I know works as I have used it on my vehicle.

Hi redheadedrod,
I had M2RET already on the M2. Now I checked it on a Mercedes C-class, there the data are coming without any problem. So the device is working well. That nothing is coming on my GLE must be another problem. The documentation from the dealer says that the pins for CAN high and low are the same as other devices. It could be then only the protocol or the CAN speed. But I have no clue in which direction I should search now.
Any idea to help me out?

Regards
Michael

Hi CollinK,

I have an issue with the Savvycan, on my Mercedes GLE 350 Diesel. On the C-Class I can read out all data, Savvycan does a good job there. ON the GLE nothing is coming through. The pins I checked they are standard and the Chinese cheap dongles are working. I suspect it is with the protocol or the CAN Bus speed, but I tried different speed already and were not successful.
Any idea what I could do?

Your help would be appreciated.

Regards
Michael

Others have had similar issues due to the vehicle having a simple security system engaged. Basically you may have to tie into the databus somewhere else within the car in order to “sniff” data passively.

What others have mentioned is some newer vehicles do a better job of isolating the diagnostic port. It still works for diagnostics but doesn’t have a steady stream of data. It only responds with data as requested.

So to use the M2, or any other sniffing tool, you either have to tap into the “unprotected” active bus or figure out the codes you have to use to go through the diagnostic connector. If you can get a factory schematic of the databus layout you can see the best location to tap into.

As the companies get up to speed on vehicle security it should become harder and harder to “sniff the bus”.

On the chinese dongle what are you doing? Using something like Torque on Android where it connects to the OBDII adapter and reads things like RPM and engine temperature? The reason I ask relates very closely to what RedheadedRod is talking about. You see, on newer vehicles (particularly European vehicles) the auto designers have segmented the OBDII port away from the normal CAN traffic in the car. You just plain can’t see it anymore. Instead the OBDII port runs on a separate bus straight to the ECU. You can still query the ECU for info. If you ask it for engine temperature or RPM or the current vehicle speed it’ll respond back. But it might not send anything unless you ask. The cheap chinese adapters are specifically meant to ask. M2RET does not ask anything by default, it just listens. On the forum here I posted an Android sketch that acts must more like the chinese adapters where it will connect and try to ask for various info. But, it might still fail for you since nothing is being sent until you ask and that sketch tries to automatically determine the speed which won’t work if there is no traffic. But, that sketch defaults to 500k speed if there wasn’t any traffic so it still ought to work. If you get a response from that sketch then your problem is that the car has a segmented away diagnostics bus with no traffic to sniff.

Thanks for the good explanation, it looks like the CAN is protected in my case in the GLE vehicles. The Chinese adapter I just bought to see if there is a mistake by me using the M2. But it sounds logic to me that the Chinese stuff is asking the ECU and the M2 just waits that something passes by. That is why on the C-Class I could sniff something and on the GLE not as well I tried yesterday the GLA from Mercedes and there also was nothing found on the CAN it looks the GL-Series is protected. I will try with other cars to so what is going on there. Thanks a lot.

Hi CollinK is possible to know the address of your sketch? Thanks

The best version that exists right now:

https://github.com/sergiomiracco/OBD2Scan/tree/dev

May I ask why this should be the best version?
Are there any other version/branch?

I wrote the initial version but Sergio was nice enough to flesh out the messages better so instead of just getting the number of each PID that is supported you can get a textual description of each PID. So, I’d use that one. I never merged his changes back in.

1 Like

Very clear. Thank you.

Hi Collin
I’ve dowloaded ODB2Scan and I’ve compiled it but there are some errors
in include…
I’ve dowloaded libs like iso-tp.h and mcp_can.h from
GitHub but compilation crasches with these errors

“Arduino:1.8.5 (Windows 10), Scheda:“Macchina M2”
OBD2Scan:18: error: no matching function for call to ‘IsoTp::IsoTp(CANRaw*)’
IsoTp isotp0(&Can0);”

I’m not sure to have dowloaded the right libraries…

Can you suggest me what and where find the right libraries.?

Thanks



Yeah now runs well I’ll test it

'm always sorry!
I’ve compiled OBD2Scan and uploaded it to M2.
I’ve connected M2 to ODB2 port of my Mercedes GLC car (X253)
A 16GB sd was inserrted. But nothing happens.
Then I’ve also connected the PC to the USB port of M2 but I receive no message via serial monitor.
Nothing makes me understand if the program runs
Do I have to give a start command?
I tried to start the program with the reset button but nothing happens.
At the end I’ve opened the sd card with PC but it is empty.
What can I do to understand if the program is working?
Thanks

Sergio’s sketch provides a lot of output so you should be seeing something. The easiest way to ensure that you see the output is to flash the sketch to the M2 while you’ve got the Serial Monitor (in the Arduino IDE) open. Then as soon as the sketch is flashed you’ll be able to see the results on the serial monitor. It might have some trouble finding the proper CAN bus speed for your car. Some vehicles do not transmit any data until you ask them something. In that case the bus has no traffic and the auto speed detector will come up blank. It will try to guess a proper rate if it couldn’t auto detect but it might be wrong.

The reset button on the M2 is deceptive. There’s a little issue with the serial output from the processor on board. On that chip the USB is built in and so when you push reset it resets the USB as well. But, your PC side doesn’t reset so what happens is that the serial port disappears on the PC side and then comes back but the PC is still connected to the phantom port and so you end up not looking at the proper serial port and you see nothing. You really don’t want to push the reset button except in very specific circumstances. Your best bet is physically unplugging / plugging back in or recompiling and reuploading the sketch in order to force a reset. The sketch itself has a 4 second wait before it starts operating so if you’re quick you can plug in and bring up the serial console before it starts to output anything. It’s easier to just compile again and upload and then 4 seconds after the upload you should get text on the serial monitor.

I want to add this information:
I’ve flashed M2 with M2RET from DOS.
When I insert the M2 into Car ODB2 connector the led light on
With savvycan I can sniff the data traffic of the canbus
I have identified some addresses that change when I press the windows command
and when I open and close the roof, but I cannot understand and find
what is the signal that changes when I open and close the doors with the remote of key this seems to remain hidden. For this reason I would like to use OBD2Scan.
Surely something remains hidden for speed or for some code.
I will try your suggestion to change the speed parameters.
Perhaps savvyCan should help me to discover the right speed to discover data.

Ciao

Hello Collin,
I am experiencing the same issue that Merlot_Prosecco was in regards to the no matching function error when compiling the obd2scan sketch. I have downloaded and re downloaded all of the library files you posted below to no avail. I have successfully used M2RET but unfortunately my ECU does not seem to be displaying everything without the device sending a query to it in order to find out more info "RPM and some other engine/transmission parameters. Any assistance you could provide me with would be appreciated.
-Daniel

It’s important to have all up to date libraries. Recently some libraries changed. You need the iso-tp library from my repo (https://github.com/collin80/iso-tp) as well as the CAN libraries from my repos: