Universal Patcher CAN logger

They go by many names, P01, P10, P12, P59, E38, VPW, '0411 etc.
kur4o
Posts: 1044
Joined: Sun Apr 10, 2016 9:20 pm

Universal Patcher CAN logger

Post by kur4o »

Latest version on github have a beta version of GM high speed CAN logger using j2534 device.
Goto-> setting in logger ->check CAN logging and select a j2534 device, than connect button.
On profile tab select pids and start logging. Since pis list is for vpw some pids might not work in CAN, pids 0000-0040 should work for sure.

Minimum testing was done other than with mdi and vcx, it will be great to test more devices, and real live data other than bench setup.

Any found bugs are welcomed.

Testing with different response mode will be also appreciated.
CAN_connect.jpg
CAN_cPIDselect.jpg
CAN_cPIDlog.jpg
kur4o
Posts: 1044
Joined: Sun Apr 10, 2016 9:20 pm

Re: Universal Patcher CAN logger

Post by kur4o »

It turned out most pids uses same formatting between CAN and VPW and can be readily used. However CAN have way too many newer PIDs.

Anyone have a good list with CAN specific PIDs?

It will be likely that some basic logging with obdlink devices will be possible, Need to do some configuration tests for avt-852, to confirm will it be able to support some specific data logging.
User avatar
antus
Site Admin
Posts: 9045
Joined: Sat Feb 28, 2009 8:34 pm
cars: TX Gemini 2L Twincam
TX Gemini SR20 18psi
Datsun 1200 Ute
Subaru Blitzen '06 EZ30 4th gen, 3.0R Spec B
Contact:

Re: Universal Patcher CAN logger

Post by antus »

Dont forget that its all OBD2. The differences are at the hardware protocol layer, and because of that in the addressing. The extra pids are proprietary, not specifically CAN its just that the cars tend to be newer and have/provide more data on the bus to operate.

Tried the GMLAN Bible? https://docs.google.com/spreadsheets/d/ ... edit#gid=1
Have you read the FAQ? For lots of information and links to significant threads see here: http://pcmhacking.net/forums/viewtopic.php?f=7&t=1396
User avatar
Gatecrasher
Posts: 353
Joined: Sat Apr 25, 2020 6:09 am

Re: Universal Patcher CAN logger

Post by Gatecrasher »

I tried using the CAN logger on my car a few nights ago. It didn't work. 22.06 connected and pulled data, but just about everything was a 0 value. I think it was everything that had a math function applied to it. The only value that came out was a barometer value that was just read as a raw value. 5 OBD2 standard PIDs and 2 GM proprietary PIDs.

22.07 didn't work at all. It said it connected to my Tactrix OP2, but then gave a PID setup error. Had to roll back to 22.06, and that's when I found the data errors.

If you're interested in looking at it, let me know which files or settings you need and I'll get them posted up. I've got an MDI I can test with as well, if you think that might be a factor.
kur4o
Posts: 1044
Joined: Sun Apr 10, 2016 9:20 pm

Re: Universal Patcher CAN logger

Post by kur4o »

Gatecrasher wrote:I tried using the CAN logger on my car a few nights ago. It didn't work. 22.06 connected and pulled data, but just about everything was a 0 value. I think it was everything that had a math function applied to it. The only value that came out was a barometer value that was just read as a raw value. 5 OBD2 standard PIDs and 2 GM proprietary PIDs.

22.07 didn't work at all. It said it connected to my Tactrix OP2, but then gave a PID setup error. Had to roll back to 22.06, and that's when I found the data errors.

If you're interested in looking at it, let me know which files or settings you need and I'll get them posted up. I've got an MDI I can test with as well, if you think that might be a factor.
Try latest with mdi. At least it have been tested with vcx and mdi and works flawless on bench. Than we can debug tactrix to see why it fails.
kur4o
Posts: 1044
Joined: Sun Apr 10, 2016 9:20 pm

Re: Universal Patcher CAN logger

Post by kur4o »

Make sure you have the CANModules.xml in xml folder

You can also test with different timings.
Settings tab->timeout button->set TimeoutJ2534Write to 0 save and reconnect.

With mdi if it is >0 gives some errors.
User avatar
Gatecrasher
Posts: 353
Joined: Sat Apr 25, 2020 6:09 am

Re: Universal Patcher CAN logger

Post by Gatecrasher »

I'll run some tests this weekend and get back to you.

I'm super impressed with what you've done with this. I had been kind of ignoring it because I thought it was just for LS1-era stuff. But it's been pretty helpful with some of the newer stuff I've been working on.
kur4o
Posts: 1044
Joined: Sun Apr 10, 2016 9:20 pm

Re: Universal Patcher CAN logger

Post by kur4o »

CAN is still very basic setup, with logging only with j-device. Some test were done with AVT and obdlink device, and is likely they will work on future versions with some limitations.

Currently when you connect you can monitor data being send and received in vpw console, and send custom commands there, giving less headache with configuring filters.

Next on the list is to make a chart of all modules on bus, on low speed and high speed pins, and a dropdown menu which one to connect.
On dtc tab it can connect on any module listed and read dtcs, but in latest version something is broken and is not working.

Some testing will be highly appreciated.
User avatar
Gatecrasher
Posts: 353
Joined: Sat Apr 25, 2020 6:09 am

Re: Universal Patcher CAN logger

Post by Gatecrasher »

I finally found some time to circle back on this. It looks like UP is getting the data, but not processing it correctly.

I'm testing with UP 22.8, and an up to date, legit MDI. I added the following parameter to Parameters.Standard.XML. I also set the write timeout to zero like you suggested.

<Parameter
id="13B5"
name="Engine off time"
description=""
storageType="uint16"
bitMapped="False">
<Conversion units="Seconds" expression="x" format="0" />
</Parameter>

I picked this because it's a value that increments on the bench. The ECM doesn't need any other stimulus for this to work. I set up a log profile that only asks for this single value.

This is a sample from the UP CSV log.

Time,Elapsed time,Engine off time
14:27:44.3398,00:00:00.4093071,11
14:27:44.3627,00:00:00.4093071,11
14:27:44.3878,00:00:00.4093071,11
14:27:44.4124,00:00:00.4093071,11
14:27:44.4387,00:00:00.4093071,11
14:27:44.6124,00:00:00.5170783,11
14:27:44.6387,00:00:00.5170783,11
14:27:44.6625,00:00:00.5170783,11
14:27:44.6877,00:00:00.5170783,11
14:27:44.7124,00:00:00.5170783,11
14:27:44.7625,00:00:00.6272856,11
14:27:44.7877,00:00:00.6272856,11
14:27:44.8124,00:00:00.6272856,11
14:27:44.8398,00:00:00.7383328,11
14:27:44.8632,00:00:00.7383328,11
14:27:44.8878,00:00:00.8472817,11
14:27:44.9124,00:00:00.8472817,11
14:27:44.9387,00:00:00.8472817,11
14:27:44.9625,00:00:00.8472817,11
14:27:44.9877,00:00:00.8472817,11
14:27:45.0387,00:00:00.9609704,11
14:27:45.0625,00:00:00.9609704,11
14:27:45.0881,00:00:00.9609704,11
14:27:45.1124,00:00:00.9609704,11
14:27:45.1387,00:00:00.9609704,11
14:27:45.1877,00:00:01.0639734,11
14:27:45.2124,00:00:01.0639734,11
14:27:45.2387,00:00:01.0639734,11
14:27:45.2625,00:00:01.0639734,11
14:27:45.2878,00:00:01.0639734,11
14:27:45.3124,00:00:01.2869298,11
14:27:45.3398,00:00:01.2870999,11
14:27:45.3627,00:00:01.2870999,11
14:27:45.3878,00:00:01.2870999,11
14:27:45.4124,00:00:01.2870999,11
14:27:45.4387,00:00:01.3965245,11
14:27:45.4625,00:00:01.3965245,11
14:27:45.4878,00:00:01.3965245,11
14:27:45.5124,00:00:01.3965245,11
14:27:45.5387,00:00:01.3965245,11
14:27:45.5625,00:00:01.5057120,11
14:27:45.5881,00:00:01.5057120,11
14:27:45.6124,00:00:01.5057120,11
14:27:45.6387,00:00:01.5057120,11

The Engine off time never changes, regardless of how long I let it run.

This is what it should look like. This log is the raw log from my DrewTech J-software. I set it to ask for the PID once per second.

36:17.124868,CAN,0x00000000,00 00 07 E0 03 22 13 B5
36:17.129012,CAN,0x00000000,00 00 07 E8 05 62 13 B5 0D 0C AA AA
36:18.124876,CAN,0x00000000,00 00 07 E0 03 22 13 B5
36:18.129012,CAN,0x00000000,00 00 07 E8 05 62 13 B5 0D 0D AA AA
36:19.124867,CAN,0x00000000,00 00 07 E0 03 22 13 B5
36:19.129013,CAN,0x00000000,00 00 07 E8 05 62 13 B5 0D 0E AA AA
36:20.124884,CAN,0x00000000,00 00 07 E0 03 22 13 B5
36:20.129031,CAN,0x00000000,00 00 07 E8 05 62 13 B5 0D 0F AA AA
36:21.124874,CAN,0x00000000,00 00 07 E0 03 22 13 B5
36:21.129028,CAN,0x00000000,00 00 07 E8 05 62 13 B5 0D 10 AA AA
36:22.124877,CAN,0x00000000,00 00 07 E0 03 22 13 B5
36:22.129036,CAN,0x00000000,00 00 07 E8 05 62 13 B5 0D 11 AA AA
36:23.124880,CAN,0x00000000,00 00 07 E0 03 22 13 B5
36:23.129038,CAN,0x00000000,00 00 07 E8 05 62 13 B5 0D 12 AA AA
36:24.124886,CAN,0x00000000,00 00 07 E0 03 22 13 B5
36:24.129044,CAN,0x00000000,00 00 07 E8 05 62 13 B5 0D 13 AA AA
36:25.124880,CAN,0x00000000,00 00 07 E0 03 22 13 B5
36:25.129044,CAN,0x00000000,00 00 07 E8 05 62 13 B5 0D 14 AA AA

I hooked up a Y cable, set up UP to log with the MDI, and then I used the DrewTech software and my Tactrix to passively listen to the UP+MDI+E92 conversation. This is the result. The UP VPW console shows the same data.

52:28.264085,CAN,0x00000000,00 00 07 E0 04 2C FE 13 B5
52:28.266083,CAN,0x00000000,00 00 07 E8 02 6C FE AA AA AA AA AA
52:28.289857,CAN,0x00000000,00 00 07 E0 07 AA 01 FE FE FE FE FE
52:28.304916,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.329568,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.356937,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.379892,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.404964,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.595947,CAN,0x00000000,00 00 07 E0 07 AA 01 FE FE FE FE FE
52:28.605342,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.629562,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.655900,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.679652,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.704932,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.717746,CAN,0x00000000,00 00 07 E0 07 AA 01 FE FE FE FE FE
52:28.729590,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.755848,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.779687,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.804920,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.829574,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.842370,CAN,0x00000000,00 00 07 E0 07 AA 01 FE FE FE FE FE
52:28.856972,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.880349,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.904960,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.929575,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.955856,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:28.967724,CAN,0x00000000,00 00 07 E0 07 AA 01 FE FE FE FE FE
52:28.979690,CAN,0x00000000,00 00 05 E8 FE 10 D7 00 00 00 00 00
52:29.004924,CAN,0x00000000,00 00 05 E8 FE 10 D8 00 00 00 00 00
52:29.029623,CAN,0x00000000,00 00 05 E8 FE 10 D8 00 00 00 00 00
52:29.055864,CAN,0x00000000,00 00 05 E8 FE 10 D8 00 00 00 00 00
52:29.079654,CAN,0x00000000,00 00 05 E8 FE 10 D8 00 00 00 00 00
52:29.096987,CAN,0x00000000,00 00 07 E0 07 AA 01 FE FE FE FE FE
52:29.105341,CAN,0x00000000,00 00 05 E8 FE 10 D8 00 00 00 00 00
52:29.129574,CAN,0x00000000,00 00 05 E8 FE 10 D8 00 00 00 00 00
52:29.155899,CAN,0x00000000,00 00 05 E8 FE 10 D8 00 00 00 00 00
52:29.179656,CAN,0x00000000,00 00 05 E8 FE 10 D8 00 00 00 00 00
52:29.204927,CAN,0x00000000,00 00 05 E8 FE 10 D8 00 00 00 00 00
52:29.223234,CAN,0x00000000,00 00 07 E0 07 AA 01 FE FE FE FE FE

It looks like UP is getting the right data, although I have concerns about how the mode AA message is formatted. I believe it should be 0x7E0 03 AA 01 FE for this limited test. But either way, that data isn't making it into the live display in the logger window, or the resulting CSV log. The live logger window just shows "engine off time: 17 seconds". It never changes, as reflected in the CSV log.

Let me know if there's anything else I can provide to help. It's a very easy test to set up now that I have a good example that works with a bench ECM.
kur4o
Posts: 1044
Joined: Sun Apr 10, 2016 9:20 pm

Re: Universal Patcher CAN logger

Post by kur4o »

I suspect that you are using sendOnce mode in settings->response mode

You can set it to sendfast. It is likely there is bug for parsing data in sendonce mode. Will do some test to see if I can replicate it.
Post Reply