Ground loop affects amplifier

I am currently working on a system that involves ODrive, roboRIO, teensy and multiple other sensors. ODrive is powered by 12S lipo battery while roboRIO and teensy are powered by a 4S lipo battery. ODrive is communicating with roboRIO using CAN (ground between ODrive and roboRIO is connected), while teensy communicates with roboRIO using UART (Tx, Rx, GND). Here is a simple schematic of the system

What I have been noticing is that whenever the ODrive puts the motor in the closed-loop control mode, it creates a large dc offset and high noise on the load cell readings that are amplified from teensy side. I think this is definitely a ground loop issue. I was wondering if using a USB isolator for the roboRIO-teensy communication would be helpful for my problem.

To further eliminate this ground loop, should I consider adding a CAN isolator? I found most of the CAN isolators not suitable for roboRIO-ODrive communication since CAN transceivers are already embedded in the roboRIO and ODrive. The closest thing that I can find is CAN repeater similar to this

Any thoughts would be appreciated!



Are you using the ferrite rings on the ODrives?
They make a big difference. :slight_smile:

Hi towen, thanks for getting back to me.

I was wondering if the issue is from EMI or ground loop, or are they the same problem?

In my previous investigation, I disconnected the ground between ODrive and RoboRIO, and I found the load cell reading no longer had the dc offset, and the noise was much lower even with the motor running.

In my current setup, I added a USB isolator indicated in the first figure, the dc offset and noise were smaller, but still significantly affected the load cell reading.

I will definitely try to ferrite ring, but please feel free to let me know if there is anything else that I should look into. In addition, I am curious about whether the power ground (V-) and the logic ground (GND) are isolated for ODrive.