Hi, I am an automotive technician. Sometimes I have a CAN networking related problem where one module does not react to a message that another module is supposed to have sent.
Often there is data that can be accessed with a scantool that shows these types of things but sometimes there is not. I end up in a place where I have to pick either the sending module or the receiving module as having failed with some hundreds of dollars at stake.
I have thought of a solution that may potentially work. I can put a resistor in series with the CAN wires to a module I am suspicious is not sending the message. As long as the resistance value is low enough that it won't terribly affect the network.
The idea is that current flow changes direction when communication is going TO the module and when it is coming FROM the module, so a voltage drop across the resistor would change its polarity and this could be seen with an oscilloscope and used to indicate whether the module is sending or receiving.
What can be done then is to operate something, let's say press a window down switch, and look for a change on the scope at the same time. If there is no change, nothing is being sent.
To make this even easier, all non essential modules can be removed from the CAN network reducing traffic.
If the system is working a second scope channel can show the circuit that activates the window motor.
For extreme cases, the actual bitwise signature of a specific message could be saved as an image.
Will it work? What resistor to use? I would have to come up with a way to attach the resistor inline but this can be done with the aid of a scrap harness. Identifying the module connector at the CAN distributor splice is not that hard either.
Often there is data that can be accessed with a scantool that shows these types of things but sometimes there is not. I end up in a place where I have to pick either the sending module or the receiving module as having failed with some hundreds of dollars at stake.
I have thought of a solution that may potentially work. I can put a resistor in series with the CAN wires to a module I am suspicious is not sending the message. As long as the resistance value is low enough that it won't terribly affect the network.
The idea is that current flow changes direction when communication is going TO the module and when it is coming FROM the module, so a voltage drop across the resistor would change its polarity and this could be seen with an oscilloscope and used to indicate whether the module is sending or receiving.
What can be done then is to operate something, let's say press a window down switch, and look for a change on the scope at the same time. If there is no change, nothing is being sent.
To make this even easier, all non essential modules can be removed from the CAN network reducing traffic.
If the system is working a second scope channel can show the circuit that activates the window motor.
For extreme cases, the actual bitwise signature of a specific message could be saved as an image.
Will it work? What resistor to use? I would have to come up with a way to attach the resistor inline but this can be done with the aid of a scrap harness. Identifying the module connector at the CAN distributor splice is not that hard either.