CAN Data

Discussions on CAN mapping for ECUs, sensors, PDMs, and more.
BK
Posts: 37
Joined: Thu Mar 30, 2017 2:42 pm

CAN Data

Post 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
Attachments
SCS Petrol CAN Export Data.pdf
(16.29 KiB) Downloaded 270 times

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post 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!
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

BK
Posts: 37
Joined: Thu Mar 30, 2017 2:42 pm

Post 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

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post 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. :)
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post 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!
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

jlwall
Posts: 5
Joined: Sat Apr 15, 2017 9:19 pm
Location: San Jose, CA

Post 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
}
]

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post 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.
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

BK
Posts: 37
Joined: Thu Mar 30, 2017 2:42 pm

Post 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.

BK
Posts: 37
Joined: Thu Mar 30, 2017 2:42 pm

Post 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

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post 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!
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

BK
Posts: 37
Joined: Thu Mar 30, 2017 2:42 pm

Post 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

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post 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!
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

BK
Posts: 37
Joined: Thu Mar 30, 2017 2:42 pm

Post 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

brentp
Site Admin
Posts: 6282
Joined: Wed Jan 24, 2007 6:36 am

Post 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!
Brent Picasso
CEO and Founder, Autosport Labs
Facebook | Twitter

BK
Posts: 37
Joined: Thu Mar 30, 2017 2:42 pm

Post 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

Post Reply