Discussion and questions related to the course CAN Bus Communications Decoded
I would like to connect my MXS 1.2 CAN2 channel to my BMW's K-CAN bus. Unfortunately that bus runs at 100 kpbs and AiM's CAN Driver Builder indicates that it only works at 125, 250, 500 or 1000 kbps. Sadly none of the MXS documentation identifies this limitation.
Is 100 kpbs that rare a configuration?
Anyone got a work-around?
The MXS CAN1 channel is connected to the 500 kbps PT-CAN channel via AiM's BMW PT6 protocol and works fine. Perhaps the data I am looking for is also broadcast on PT-CAN (I haven't checked that yet) and I can get it there, assuming I can connect both CAN1 and CAN2 to the same bus.
As you've determined, assuming your data on both busses, the correct solution is to connect the Aim CAN1 and CAN2 to the same bus running at 500 kbps. Works fine.
Yes, 100 kbps is an odd CAN bus speed.
are you sure your bitrate is 100 kbps AND it is CAN?
I could build you a bridge for the information to the AiM dash if this is indeed true.
I have tried connecting CAN1 and CAN2 to the same bus and that works, as suggested by David.
Most of the channels I am interested in are here on the PT-BUS, so this essentially solves my problem. I will do some more sniffing but I may have to give up on a couple of nice-to-haves that don't make it there.
When you say K-CAN, do you mean the K-LINE protocol perchance?
Zac, the E82 BMW has three CAN busses: PT-CAN (powertrain), K-CAN (body) and F-CAN (chassis). There is substantial commonality of data transmitted on PT- and K- as they both pass through the Junction Box and Footwell Module, which perform gateway functions. PT- operates at 500 kbps and K- operates at 100 kbps. There is also a K-Line protocol, but that of courses is one wire and a totally different subject.
I have had another issue arise from a couple of the data streams that are reported at low rates. For example PID containing fuel tank volume is transmitted at 0.1 Hz and DSC status is transmitted once every 7 seconds. My logger forgets a signal after 5 seconds of inactivity, meaning my fuel gauge is on for 5 seconds and blank for 5 seconds. The DSC status light I have set is on for 5 seconds and off for 2 seconds for the same reason.
My AiM MXS logger has provision for transmitting onto the vehicle CAN busses. I am assuming that if I can transmit a request (Remote Frame?) for fuel tank volume and DSC status at 1 Hz, the status will alway be refreshed in time to get rid of the blinking.
Can you offer any guidance on doing this?
As you can likely tell, I've not delved into the world of BMW CAN applications, no familiar with those names for them, so cheers for the heads up :-).
It sounds like connecting to the K-CAN line is going to be a no-go, as it's running at a bus speed the AIM MXS is not compatible with.
Are you using a pre-defined CAN configuration for your AIM MXS, or is it one you've built yourself with their CAN Driver Builder? (https://www.aimsports.jp/application/files/5814/8481/2382/CANDriverBuilder_100_eng.pdf)
If the minimum frequency available for a parameter update rate in the software is faster than it's actually being transmitted at, then you might be a bit stuck on that as well. I'd contact AIM about that, as it should be a pretty simple software update to add in slower rates.
On many CAN devices, when you setup an incoming parameter, you can specify whether it is a constantly updated value, or an irregular update of a state (like a button press, where there is only a message transmitted when the button changes state). If this second option if available in the AIM software, you might be able to setup the fuel level as this type of parameter? Then it should keep its value in between messages.
The system will be OBD2 compliant, so you should be able to transmit a remote request for fuel level data to be put on the bus, but you'll need to get into the weeds with the OBD2 standard here to design the message that needs to be sent. Do the AIM devices have any pre-made ODB2 support?