Electron CAN bus issue

Hi Guys

I hit the problem when I try to use the CAN bus with Particle Electron.

I follow the official document of the CAN bus with Waveshare SN65HVD230 CAN Board for CAN tranciever.
I also use kvaser CAN-to-USB to monitor the CAN bus.
However I never received or able to transmit any messages through this configuration.
Even I were using oscilloscope, I did not get anything, there is nothing out from the Electron’s CAN_TX, CAN_RX.

I also read some of the related topic in this forum.
As far as I know, the CAN library should be ready long time ago.

Currently, I had updated my System firmware to 0.6.0.
Is there any known issue for the CAN bus library?
I also notice that there are some solution related to Carloop.

Many thanks
Andrew

@Andrew_Chen,

I recommend you check out www.carloop.io more closely.

It is a Particle-based product that interfaces with cars through the CANbus.
Some of the carloop people also work for Particle.
All the carloop hardware and code are open-source and available on GitHub.

What that means is the CAN interface was built into the Particle devices a long time ago as you stated, and there are no known issues. It seems to be working quite well. Carloop does use a different CAN transceiver than what you are using, but I would first look at the code. See how Carloop did it and base your code on theirs.

Let us know here (or at carloop) if you need further help!

@cyclin_al

Thanks for your kindly advise.

After debug process, I found the CAN transceiver is malfunction.

When it is malfunction and connected to particle, I will not get any signal even I use Oscilloscope.
(Very similar to short circuit to ground)

Here is my debug process:

  1. Connect all of the circuit and probe the CAN_Tx & CAN_Rx from particle.
    Result: No signal.

  2. Probe the CAN_H & CAN_L output from Transceiver.
    Result: No signal.

  3. Disconnect CAN transceiver circuit from the particle and probe the CAN_Tx & CAN_Rx from particle.
    Result: Both have signal.

After replace the malfunction CAN transceiver, I can see the message from Kvaser USN to CAN module.

Many thanks guys.

1 Like

@Andrew_Chen, Glad you figured it out. I assume now the failed transceiver was holding the CAN_TX & CAN_RX lines either high or low, resulting in no signal. Definitely not my first guess to the problem; good work on figuring it out and solving it!

hint: you can mark this thread as solved.

2 Likes