Jump to content

Custom CAN stream for MXS 1.2 Strada (Link product) with G4+ VR4


Dan P

Recommended Posts

I need some other than the default 40 parameters so I'm trying to build a CAN stream but I'm encountering many difficulties, mostly because I'm going on almost no documentation and not having much luck.  If I could see how the provided CAN stream is structured in PClink(Link AIM MXS Strada Dash template) and RS3(CAN_BUS_BASE_LCC - I don't have the calibration the unit shipped with from link) I could do a good job of copying it and adding parameters but neither of those files show me the stream details so I can replicate it under the Streams tab in PCLink and the CAN Protocol builder in RS3.  

Custom Can Stream for AIM MXG Dash - G4+ - Link Engine Management

I ran into this thread that had the exact issue I'm having and there was mention of a help file and maybe a video?  Has there been any progress?  I realize you can do the stream for me but I would like to learn so I don't have to come here every time I need a change made and there will probably be quite a few.

I looked at the modified files in that thread, so I can see the PClink custom stream (still many questions) but on the RS3 end I can't see how its built.  Anytime I try to import a CAN protocol from its install folders it doesn't want to open it, nor does the zconfig file show it.  Most of my difficulty is on the RS3 end.  Please help!!

Link to comment
Share on other sites

I never got around to doing that video sorry.  There are a couple of good Motec webinars that will be worth watching just to learn the basic fundamentals of CAN.  I will give a bit of info here to try to help make sense of it.  Post any questions you have after having a go.

First, the old Link "generic dash stream" and the new Link AIM MXS strada dash stream are basically identical, the only change made was the scaling of the Lambda channel - this was changed to allow the dash to work out of the box with both G4+ and older G4/G3 ecus without a config change.  So if you want to see how the message is formatted, look up the Generic dash stream in the help file.  

Most commonly in OEM applications CAN messages are simple single frame messages, what that means is every frame is sent with a unique ID.  A frame is usually 8 bytes of data.  In motorsports it is more common however to use what is called sequential or compound messages so you can send multiple frames with just 1 ID.  The Generic dash/MXS stream uses the compound message technique.  In this stream, there are 13 frames of data sent using just 1 ID.  To allow the receiving device to know which frame is which once it gets to the other end, you use one of the data bytes in each frame as an index or identifier. 

To confuse matters many manufacturers also use different terminolgy to name all these parts - the formats, ID's and even how bits and bytes are numbed, etc so it often can be a bit of a challenge to understand for a noob at first glance but it is actually quite an easy communication technology once you know the basics.  Most good software nowadays has some kind of visual representation of the message which makes things easier. 

Some examples of the differences I will show below.  AIM call a compound message "enable row counter", some manufacturers call it a multiplexed message.  AIM call the identifier/index byte a row counter.  You will also see in the pic below their bit numbering is done differently to Link's too. 

fgfVMJi.png

 

I have attached a configurable version of the AIM stream for the ECU and the dash.  To see this in the dash you import it into the "CAN Builder" which is the seventh button from the top left in RS3.  

Edit, added later:  I forgot to mention byte ordering.  A byte can represent a decimal number from 0-255.  Stuff like ECT for instance that only goes from 0-120C can use just 1 byte.   If you need to transmit a number bigger than that then you need to spread it over more than one byte.  2 Bytes allows 0-65535 so is enough for most automotive stuff.   When you have more than 1 byte then there are two ways you can place those bytes into the frame, you can have the big byte first (called Most Significant first, Big endian, or Motorola format) or you can have it last, which is refered to as Least Significant first, Little endian or Intel format.  The Link MXS stream uses LSB, you can see on the left side of my screenshot above, AIM call this "Low to High".

 

LINK_Generic Custom_@20170524_021339_007952.xc1 Configurable Generic Stream MXS.lcs

Link to comment
Share on other sites

  • 2 weeks later...

Thank you for this, I think I got a hold of the situation! You cleared up most of my questions.  I was really pulling my hair out when figuring out the units and scaling the G4+ sends over. I'm in Canada so I have it set for mostly Imperial units on my laptop, but that doesn't mean it was using Imperial for the stream, even though it says it does under the "test calculator" tab. My solution to see the raw numbers it was sending was to set up Racestudio as a Number value to be displayed not any specific parameter with a unit because it wouldn't display anything ( - - -) or it would place the decimal wrong. From there I did some math and figured that it was using C, kpa, kph, and for lambda it was a 4 digit number that had to be divided by 1000. Also, for some parameters the ECU uses offsets which I didn't catch onto at first which have to be accounted for on the Racestudio end. 

Before I read your reply I started using MS byte and all seems to be ok, is there a downside to this? Should I change to LS? 

Any idea why the CAN Devices tab doesn't find the dash? It's clearly connected and working. I think it would help to see the raw numbers it's sending over?

Thanks for all your help sir! 

Link to comment
Share on other sites

The find can devices is only geared to identify Link ECU product (CANLambda) it wont work on other 3rdparty products. 

You can customise the pages of the dash via the AIM software but you are limited to the set layouts they provide.

 

Link to comment
Share on other sites

Note CAN parameters are always sent in native metric units.  The AIM is smart enough to take care of the unit conversion on its own.  You would normally set up the dash to receive the data in the native metric unit, then just change the "unit of measure" to whatever you want later on the channels screen.

5dmkwbR.png

Link to comment
Share on other sites

15 hours ago, Simon said:

The find can devices is only geared to identify Link ECU product (CANLambda) it wont work on other 3rdparty products. 

You can customise the pages of the dash via the AIM software but you are limited to the set layouts they provide.

 

That's a little bit dissapointing on both statements. If your name is all over the box and product (LINK) then it should be 100% compatible with your ecosystem no? I could've bought a better dash from a different manufacturer but I didn't want to run into compatibility and lack of documentation to my G4+ yet here I am. I do appreciate all the help though.

I am going to be honest, and others I have talked to agree, without the ability to customize the layouts this display will not be in my car for long. There either need to be many many more layouts provided to suit the different motorsports that exist or simply let the customer decide what they want to see through customization software. 

Thanks for all your help. 

Link to comment
Share on other sites

I'm actually in process of switching to the ECUmaster ADU5 because the screens are very customizable.

I had the v1 AIM MXS and was very frustrated because they did not support multiplexed custom CAN configuration. Took them over a year to fix the issue (while it was already functional with the v1.2 that Link distributes)

I will say the ECUmaster does have some of its own issues though. The pages are so customizable that it requires you to spend a decent amount of time setting them up. They have some templates but I didn't love them.

They also require a CAN-USB adapter and those usually run about $250.

Link to comment
Share on other sites

  • 8 months later...
On 8/4/2019 at 8:52 PM, Adamw said:

I never got around to doing that video sorry.  There are a couple of good Motec webinars that will be worth watching just to learn the basic fundamentals of CAN.  I will give a bit of info here to try to help make sense of it.  Post any questions you have after having a go.

First, the old Link "generic dash stream" and the new Link AIM MXS strada dash stream are basically identical, the only change made was the scaling of the Lambda channel - this was changed to allow the dash to work out of the box with both G4+ and older G4/G3 ecus without a config change.  So if you want to see how the message is formatted, look up the Generic dash stream in the help file.  

Most commonly in OEM applications CAN messages are simple single frame messages, what that means is every frame is sent with a unique ID.  A frame is usually 8 bytes of data.  In motorsports it is more common however to use what is called sequential or compound messages so you can send multiple frames with just 1 ID.  The Generic dash/MXS stream uses the compound message technique.  In this stream, there are 13 frames of data sent using just 1 ID.  To allow the receiving device to know which frame is which once it gets to the other end, you use one of the data bytes in each frame as an index or identifier. 

To confuse matters many manufacturers also use different terminolgy to name all these parts - the formats, ID's and even how bits and bytes are numbed, etc so it often can be a bit of a challenge to understand for a noob at first glance but it is actually quite an easy communication technology once you know the basics.  Most good software nowadays has some kind of visual representation of the message which makes things easier. 

Some examples of the differences I will show below.  AIM call a compound message "enable row counter", some manufacturers call it a multiplexed message.  AIM call the identifier/index byte a row counter.  You will also see in the pic below their bit numbering is done differently to Link's too. 

fgfVMJi.png

 

I have attached a configurable version of the AIM stream for the ECU and the dash.  To see this in the dash you import it into the "CAN Builder" which is the seventh button from the top left in RS3.  

Edit, added later:  I forgot to mention byte ordering.  A byte can represent a decimal number from 0-255.  Stuff like ECT for instance that only goes from 0-120C can use just 1 byte.   If you need to transmit a number bigger than that then you need to spread it over more than one byte.  2 Bytes allows 0-65535 so is enough for most automotive stuff.   When you have more than 1 byte then there are two ways you can place those bytes into the frame, you can have the big byte first (called Most Significant first, Big endian, or Motorola format) or you can have it last, which is refered to as Least Significant first, Little endian or Intel format.  The Link MXS stream uses LSB, you can see on the left side of my screenshot above, AIM call this "Low to High".

 

LINK_Generic Custom_@20170524_021339_007952.xc1 188.41 kB · 33 downloads Configurable Generic Stream MXS.lcs 5.77 kB · 24 downloads

Hi,

Im looking to add more than the current 40 CAN channels my Link MXS Strada 1.2 dash can see from the ECU (Link G4+ Extreme)

Im assuming this configurable file would allow that but its unavaialble?

Am i able to get a copy please?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...