Noob question about isolators

Hi, I have some prior experience with electronics, but only low-power arduino devices (i.e nothing involving external power supplies), so I’m struggling to understand exactly how ground loops work. The docs make it pretty clear that I need a USB isolator between the computer and odrive when initially calibrating it, and I’m sure many questions have been asked on this topic, but I haven’t found one with my particular setup so I’d just like to be sure I don’t fry anything.

My final setup will look something like this:

     USB serial                 UART
PC <------------> Arduino <--------------> Odrive S1 <--------------> BLDC motor
                                                ^
                                                |
                                                v
                                          Power supply

I see the UART example connects the arduino directly to the odrive, so does that mean I still only need a single isolator (between the PC and arduino)? Or should the arduino be isolated from Odrive and can then be connected directly to computer?

Thanks

Hi! Apologies for the delay in my response.

In many situations where it’s just a PC <-> ODrive <-> Power Supply, a ground loop actually won’t be formed. However, since it would be very easy to create a ground loop with minimal modification to this system (e.g. an Arduino is connected to the PC and grounded to the power supply), it’s much simpler and safer for all involved to necessitate a USB isolator whenever the ODrive is controlled over USB and used with DC power – there’s no downsides to using an isolator, and the upside is that it’s much harder to damage the ODrive or your PC’s USB ports.

The ODrive S1 has an isolated UART interface, though, so as long as the Arduino is only connected to the S1’s ISO_VDD/RX/TX/ISO_GND ports and not connected to the power supply DC-, both the PC and Arduino will not share a ground domain with the ODrive.

To explain ground loops a bit more – typically in lower-power systems, all devices share a ground, and that ground is all at the same 0V voltage. However, when you get to motor control, the motor controllers pull very sharp amounts of power from the supply. Even a very thick, pure copper cable isn’t a “perfect” conductor, and when power is suddenly drawn by the motor controller, the ground voltage at that motor controller may spike higher or lower than the ground voltage at the power supply, or at other connected devices. So if a PC and an ODrive are communicating over a USB (on the same ground domain, without an isolator), and the ODrive draws that “burst” of power from the power supply, then the ODrive communication voltages may suddenly be much higher or lower than the PC’s – to the point of causing catastrophic damage to either device.

Quick diagram of a common situation where someone may blow an ODrive with ground loops:

Please let me know if my handwriting is indecipherable or if I can explain this any better :slight_smile: In the above diagram, USB isolators between the PC and each ODrive (well, really even just between the PC and a single ODrive, but we always say to use one per ODrive) would “translate” across the ground differentials and protect all devices involved. The above is also a best case scenario for device damage – you can damage your PC’s USB ICs or blow an internal fuse.

Generally we recommend CAN communications, which is designed to operate across rapidly-changing ground differentials, but the UART isolator in the S1 means that UART can be just fine too (and of course USB is too, with an external isolator).

So, tldr, no isolator needed in your setup, but make sure that nothing else gets connected between the Arduino and power supply / ODrive ground – e.g. no sensors or other boards or anything.

Thanks, that clears it all up. I feel a bit silly now for express-posting an isolator but I guess its better safe than sorry :slight_smile:

Hey no worries! Agreed, better safe than sorry. Even in our internal test racks, we have banks and banks of USB isolators, haha.