CAN BUS trouble

Hi. I’m a huge fan of odrive and Hope you to enjoy odrive long time.
I was decided to graduate my odrive with USB, 20 days ago.
I was trying to connect four motors using CAN BUS. The system consists of two Odrives.

I am having trouble connecting to CAN bus.
I have already burned several ODrives.

The equipments I use to connect are below.
1 Jetson AGX Xavier
2 SN65HVD230 CAN transceiver
3 Odrive 3.6 56v * 2
4 AC220v-DC19v inverter
5 24v battery The agx is powered by an AC 220V-dc 19V adapter.

The Odrive is powered by a DC 28V battery.
I referred to the site in the link below, and a CAN Transceiver was connected for CAN bus communication with agx.

The CAN transceiver has a built-in 120Ω terminating resistor.
So I turned off the terminating resistor of one of the two Odrives, and then connected it to the circuit.
(When I measured the CAN resistance, 60Ω was measured.)

The motor operates normally when one ODrive and AGX are connected.

When the motor was driven with two Odrive and transceiver connected, the Odrive with the resistor on burned out.

I have tested both of the Odrives with the terminating resistor turned on.

At that time, both Odrives burned down. The CAN chipset area was burned.

I don’t want to burn Odrive anymore.

I need help. Thank you in advance for anyone who will help me.

picture 1. the circuit.

picture 2. odrive holocaust tower

picture 3. one of the chipset

picture 4. one of the odrive

:scream:

How did you manage to blow up so many ODrives :cry:
That must have been one hell of a ground loop. Perhaps the negative supply wire got disconnected and your CAN bus became the high current path for all the ODrives?
I’m surprised it blew the CAN chip though - maybe you didn’t connect the ground for CAN?

So, if the negative terminal fell off of the battery (or you just had some crazy voltage drop / inductive ripple on the cable) then the only return path for the current would have been the CANH/CANL signal wires.
Please see Ground Loops | ODrive

Please always make sure that you connect the negative battery wire BEFORE the positive battery wire, and disconnect the positive before the negative (some connectors e.g. “XT-90 S” will do this for you, or use a switch in the positive wire and leave the negative permanently connected)

Wire the power lines as a ‘bus’ rather than a ‘star’ - this reduces the potential for ground loops, and make sure you use ferrites on each motor. Also, I would recommend the 56V version in all cases. (I see at least one of your dead ODrives is a 24V version)

Also, you can get an isolated CAN adapter for the controller end e.g. this one https://www.inno-maker.com/product/usb-can/ is really good, I recommend it.

But OMG, that is a lot of dead ODrives. :exploding_head:
Have you tried replacing the CAN chip and/or the STM32 chip and reviving them?
Or you could probably send them in for repair

Did they all fail in the same way? (smoke from U1)?

Is your Jetson OK?

2 Likes

Can you annotate carefully with how GND / DC- / “ground” of every kind is wired?

I’m so sorry you have so many dead ODrives. After we figure out the root cause, we can confirm if there is a good path to repair.

I thank you for replying.

I am living a fun life because of your device, which is suitable for beginners.

I am very grateful to you for this.

I’ve been configuring my system with a USB connection for the past few months.

My system was working fine until I encountered the noise.

I’ve been solving the USB’s ground loop problem with an isolator.

I haven’t been able to use the USB isolator since I started using Jetson’s built-in CANbus.

I have a different kind of can analyzer than what you recommended.

Now I will try the device you recommended.

Problems occur in the following cases:

1.In case of increasing the motor speed while power is supplied

  1. When replacing only the encoder while power is supplied

  2. When replacing the CAN cable while power is applied

  3. When operating the power switch

I haven’t tried to fix the odrive yet.

When an Odrive malfunctions, the status is as follows.

  1. As the chipset burns, one or two holes are created.

  2. USB cannot be recognized.(Jetson is fine)

I think the problem is as below.

  1. I thought CAN connection could be Plug&Play.
  2. Reversed the battery connection order.
  3. Isolator is not used.
  4. It is not possible to determine with certainty when a ground loop occurs.

Based on your answers, I think this is the solution.

  1. Purchasing a CANbus Isolator

  2. Connecting power in order -+, ±

  3. I will draw a connection diagram with annotations.

In fact, my biggest problem right now is that I don’t have a spare Odrive.
I am wondering when I will be able to purchase the odrive in the shop.

I’ll give you feedback again after trying out the advice you gave me.

I want to quit the Odrive slayer.

Thank you.

actually 2 odrive can be identified seemingly.(1 of 3 devices is not from the shop.)

I’m not sure what you mean by this…?

I did every operations those like connect, disconnect for every CAN wire and spi wiring and power line wiring things, while all system have turned on.


This is the wiring for entire my driving system with every single line.
I thing that cannot made a ground-loop so.
But it’s huge trouble maker now.
would you check this please?
thank you.

You can only do what you have done (connect only the CANH and CANL wires) IF you are using an isolated CAN transceiver. Non-isolated CAN is only able to cope with a difference of 4V or so between CANH/CANL and GND. So if there’s no ground reference, you’re in trouble.
If using a non-isolated transceiver you should connect the negative side of the battery to the negative of the power supply, and/or connect the GND of the ODrive to the GND of your transceiver. But if you use the isolated one I posted, it should work as you have drawn it.

That said, it shouldn’t have been so severe as to destroy the ODrive though, so I wonder if something else is going on… :thinking:
Are you using ferrites on the motors?

Thanks for making the fully annotated diagram, it is now clear what the problem is. You did a good job avoiding a ground loop, but you must still have a shared ground reference or you will get significant issues, as you have seen. My recommendation is to join the ground of the two halves of the system in a single point only to avoid loops. Like the blank link shown here:

I assumed here you are using the “KNACRO SN65HVD230 CAN Bus Module” that is in the guide you followed which is non-isolated. If you use an isolated CAN tranceiver, then your original wiring is correct.

Also I would strongly suggest to have power turned off when doing any wiring at all.

My guess is that only the U1 chip is broken, and you may be able to repair your ODrives by replacing just that chip. It is a SN65HVD232 also actually, so if you have some extra of those KNACRO boards you can try it quickly by taking one there. You can also order them online, check here and here.

3 Likes

Thank you for your kind reply. I will build and test the circuit, as your commentary. I’ll post again immediately after I’ve sorted out the things around. It’s great news about the ‘resurrection’. Two type of CAN chipset has been ordered right after read this. Thank you again and Have a good day!

1 Like

Thank you for the reply.
Actually I cannot understood whole things.

Thanks to you, I can confirm the grounding by looking at the documentation of the community dozens of times, and it seems that I have been able to understand the things that were not clear while studying the case of the community.

First, I will try to configure the circuit for isolated and non-isolated transceivers respectively.
I think it will work fine.

There is one more problem I’ve come across. It’s just that I wasn’t positing the concept of ground reference correctly.

Of the two power sources, The 19v thought that the terminal should not be grounded because I thought it was AC.

The problem was caused by increasing the motor speed or manipulating the encoder line and motor power line while the motor CAN communication was operating normally.

And, I’m sorry that I may have surprised you through the photos.
Actually, There are 5 Odrives lost in the process of performing CAN communication operation.
The rest of the Odrives have blown up for 8 months.
I hope you guys are’nt too surprised.

I am a beginner. So, I can’t figure out what caused the problem with odrive because of what I did. and
I can’t remember exactly one case at a time for the phenomenon.

I use toroids and ferrite cores for the motor, but I didn’t use them when trying the CAN connection in this attempt.
I was running 4 motors stably and well. And in this test, the ferrite core was omitted. The reason was my perception that the amount of current flowing through the motor was small.

I’ll build and test the circuit as you advised, then put it back together and post the diagram soon.

Thank you very much!

1 Like

The ferrite core doesn’t “care” about the current flowing through the motor (because the current in the three motor wires sum to zero and cancel out) - it is designed to dampen any very high frequency (MHz-GHz) currents that are flowing into and back out of the motor’s parasitic capacitance to Ground. It’s called a “common mode choke” - look it up :slight_smile:
With nothing to dampen these oscillations, I suppose the only thing tying the board to ground potential was the poor CAN bus transceiver. :frowning:

Thanks for your help.

I will look into more about common mode chokes.

Now I am going to wire the system as shown.

Please let me know if this will work.

The CAN transceiver in this system will be replaced by another isolated one.

Looks fine, except that (the way you have drawn it) the ground path between the two ODrives looks quite long.
I would advise to keep it as short as you can (which is why I suggested wiring them as a ‘bus’ earlier) i.e. take two wires to the first ODrive, and take two more wires from the first ODrive to the second ODrive.

Also, don’t forget that these wires need to be kept together as a pair - ideally, twist them if you have a vice and an electric drill handy. (stretch the wire before you release it to retain its twisted shape)

Yes this looks good.

Hi towen, madcowswe.
Thanks to you guys.
I’m trying to go there and I’ve encountered a situation that"2 more odrives"
I think that The bad Transceiver is Guilty.
I have to wait till to get The part you recommend and more odrives
I think almost there.
Thank you again.

Wtf? You blew another two? :sob:
There is something seriously wrong with what you are doing, but I don’t know what it is… :fearful:

Maybe some pictures of your setup will help

1 Like

Thanks for your concern.
I’ve made success by your advise in test system actually.
It was perfect and controllable.
system and protocol are fine.
After then, I’ve Tried to apply for real system.
But the real system has a difference about power diagram.
It contains 5v inverter from 24v battery.
Absolutely I’ve made an earth for its negative line.
I thought that will not be bad but in vain.
So, I think that the bad transceiver not isolated thing is the only factor for this situation.
Fortunately, the Isolated thing that you recommended has been delivered yesterday.
I have only 1 odrive now that couldn’t be a scream goat.
So I’m waiting Odrives for redundancy now.
Everything will be fine.
If my disaster will not have ending, I’ll ask here for that.
I really appreciate your help.

1 Like

It’s arrived yesterday!!