Page 1 of 3

CAN Data

Posted: Wed Apr 12, 2017 5:35 pm
by BK
Hello All,

I have slowly been working on getting my new RaceCapture/Pro MK3 installed and setup and I'm now at a point where I have no clue how to get the additional data I want to log via my ECU can bus.

My wiring is via the RJ45 jack with a shielded Cat6 cable to a DB9 connection to the ECU. I tried to add the RPM data via the OBII section of Setup in the newest version of the PC App with no success.

I have the attached information from the ECU manufacturer as well. I'd like to add RPM, Oil Pressure, Engine Temp, Throttle Position, and AFR.

Now what?

Thanks in advance for your assistance.

Brad

Posted: Fri Apr 14, 2017 5:06 pm
by brentp
Hi BK,

Thanks. We've updated our CAN bus integration guide here, which has specific information about how to map channels using the direct CAN mapping technique. Take a look and see if you can map one of the channels coming from your ECU:

https://wiki.autosportlabs.com/CAN_Bus_Integration

We'll watch this thread for updates. Thanks!

Posted: Sat Apr 15, 2017 1:18 pm
by BK
Thanks for the reply Brent.

I have still had no luck. With the previously attached document from the ECU manufacturer, my limited knowledge of CAN protocol, and a considerable amount of time I'm still at a loss. The CAN light is lit so I'm assuming I'm getting the data transfer. However, I tried numerous different variations to get the TPS setup with no avail. The document from the manufacturer doesn't specifically have all of the same information you refer to so I may be making some poor assumptions on the setup.

Any help, at this point, would be greatly appreciated. I'm headed to a 3 day track event next week and would benefit from the additional channels to log.

Thanks again Brent,
Brad

Posted: Sat Apr 15, 2017 7:00 pm
by brentp
Hi BK,

OK - let's take this one step at a time.

First, let's go through the troubleshooting steps, in particular, the CAN bus logger we provide:
https://wiki.autosportlabs.com/CAN_Bus_ ... leshooting

Please go through the steps on the CAN bus logger guide, and paste the a bit of the output (no more than 100 lines) here as a thread reply.

The purpose of this exercise is to show if you are actually getting CAN data (LED is a great indicator, so that's good!) and also the ability to see what the raw data looks like.

I'll watch for a reply on this and we'll go to the next step from there. Thanks for your patience and your willingness to play along. I'm sure others will find this process beneficial. :)

Posted: Sat Apr 15, 2017 7:06 pm
by brentp
Also, I moved this to our shiny new CAN mapping sub-section of the forum, since there will be much to discuss on these topics!

Posted: Sat Apr 15, 2017 9:32 pm
by jlwall
BK, can you post your current RCP setup? I have pretty extensive CAN experience, part of my day to day....

Do you have any other tools to help you confirm you are connected onto the correct bus? and these messages exist.

Also, please ensure you got the right ID's it looks like these are 11-bits in HEX space. RCP using Decimal space for CAN Id's right now.

So the first message, 0x300, would be 768 in RCP setup

In the RCP setup file, for the new can_mapping feature in 2.11.0 I would do something like this for the first signals in the first message
"channels": [
{
"nm": "RPM","ut": "rpm","min": 0,"max": 8000,"prec": 0,"sr": 50,"bm": 0,"type": 0,"bus": 0,"id_mask": 0,
"id": 768,"offset": 0,"len": 2,"mult": 1,"div": 0,"add": 0,"bigEndian": 1,"filt_id": 0
},
{
"nm": "TPS","ut": "%","min": 0,"max": 100,"prec": 1,"sr": 50,"bm": 0,"type": 0,"bus": 0,"id_mask": 0,
"id": 768,"offset": 2,"len": 1,"mult": 1,"div": 2.55,"add": 0,"bigEndian": 1,"filt_id": 0
},
{
"nm": "KFuelMap","ut": "%","min": 0,"max": 400,"prec": 1,"sr": 50,"bm": 0,"type": 0,"bus": 0,"id_mask": 0,
"id": 768,"offset": 3,"len": 1,"mult": 1,"div": 1,"add": 0,"bigEndian": 1,"filt_id": 0
},
{
"nm": "Map","ut": "mbar","min": -2000,"max": 2000,"prec": 0,"sr": 50,"bm": 0,"type": 1,"bus": 0,"id_mask": 0,
"id": 768,"offset": 4,"len": 2,"mult": 1,"div": 1,"add": 0,"bigEndian": 1,"filt_id": 0
},
{
"nm": "IdleLearn","ut": "%","min": 0,"max": 100,"prec": 0,"sr": 50,"bm": 0,"type": 0,"bus": 0,"id_mask": 0,
"id": 768,"offset": 6,"len": 2,"mult": 0.00038696,"div": 1,"add": 0,"bigEndian": 1,"filt_id": 0
}
]

Posted: Sat Apr 15, 2017 9:40 pm
by brentp
Thanks, jlwall for helping :)

There's a simple CAN logger script BK can use that outputs everything to the log output as indicated in my last reply. This will quickly identify whether he's receiving data on that CAN bus.

https://wiki.autosportlabs.com/CAN_Bus_logger

Recommend running this script and replying here with that output so we can see what data is being received by the ECU.

Posted: Mon Apr 17, 2017 5:46 pm
by BK
Thank you both for replying. I have yet to have any time to sit down with the RCP again. Easter, and now I'm prepping the car to leave Wednesday night. I'll do my best to try to log the data stream before I leave for the event.

Thanks again Gentlemen.

Posted: Tue Apr 18, 2017 2:58 pm
by BK
I'm definitely receiving data. I tried to copy/paste the log in notepad but it's just symbols.

It appears 'jlwall' is on to something with regards to the ID.

https://goo.gl/photos/pUkQSmBD9vifxipe6


Brad

Posted: Tue Apr 18, 2017 3:13 pm
by brentp
You look close! according to the doc, mapping RPM you'd just need to specify the decimal equivalent, as jlwall indicated.

ID 768

Then set your source type to 'unsigned', offset to 0, length of 2 and and Endian to "Big" since the MSB appears first in the data stream according to the SCS doc.

The default formula should work (X 1.0 / 1.0 + 0)

Keep us posted!

Posted: Wed Apr 19, 2017 2:24 am
by BK
Success! I was able to get RPM, TPS, and AFR(Lambda) all mapped and functioning. Having some problems with Oil pressure but I'll worry about that later.

Thanks for the patience and the assistance. I would have never figured out the decimal versus hex value CAN ID.

Off to UMC (aka Miller Motorsports)........

Brad

Posted: Wed Apr 19, 2017 3:12 am
by brentp
Awesome! good job. When we get the CAN presets feature worked in, would be great to get this ECU into the library of preset configurations.

Let us know how it goes!

Posted: Tue May 09, 2017 12:49 pm
by BK
The first track weekend went extremely well with regards to the RCP. I'm very happy with the product and the data.

I am continuing to fail with setting up the additional channels I'd like mapped. I really want my wideband closed loop correction data and oil pressure and I've tried dozens of different configurations and the values returned are always very long numbers that don't change.

Closed Loop: 773, offset 4, length 2, signed, big, range -100 to 100, formula x.05 (ECU mapping attached above)

Some guidance would be appreciated.

Brad

Posted: Wed May 10, 2017 7:57 pm
by brentp
Hi,

According to the doc it *should* be:

CAN ID 773
offset 4
length 2
big endian
signed data type

If that's what you've programmed in and you still get invalid data, ask the ECU manufacturer what standard the signed data conforms to. Is it:

* two's compliment
* sign-magnitude
* or something else?

You can also change it to 'unsigned' and log some data, providing you can force it to go between + and - values for that channel. Once logged, we can peer at the data and perhaps infer how the sign is encoded.

Will watch for updates!

Posted: Wed May 10, 2017 8:02 pm
by BK
Thanks for the reply Brent. I've been testing different methods and a weird thing happens. The data is fine when the closed loop value is a positive value, but when the value goes negative the returned value is something like 354678.00. I then check the mapping and it appears to resort back to an unsigned value, even though I changed it to signed.

Is there a certain method of updating the mapping and writing it to the RCP? I have been doing it with the phone app while the car is running.

Brad