This might be a long one but I want to give as much detail as possible.
Problem:
I’m having an issue with where my Odrive gets kicked every time a sabertooth-driven actuator bottoms out. I have 3 2X25 sabertooths that drive 5 actuators and an Odrive connected in parallel to a lithium-ion battery that’s giving everyone 25V. All of the USB components are connected to an Intel NUC 10 and are operated in a containerized ROS2 system. Anytime one of the actuators bottoms out they create a short to auto stop themselves, causing some sort of back feed event through the Odrive’s ground causing it to disconnect from the NUC until the system is reset. I thought this is probably a ground loop problem so here are the things I’ve tried.
Tried:
Put a USB isolator on the Odrive’s connection to the NUC.
I wasn’t able to operate the Odrive with the isolator, and it kicked out anyway when I bottomed out the actuator.
I set the Odrive’s overvoltage trip level up from 25 to 27 to 29.
I got the same result for all of these. it didn’t make a difference that I could tell.
Bottomed out the actuators at a slower speed.
Cause a kick out as well.
Bottoming out the actuator without load.
This was the only thing that did not kick out the Odrive but for the robot to work obviously they have to have a load on there.
Powered the actuators from an alkaline battery. Because I was thinking that the battery would be able to sink the sabertooth back-feed better than lithium-ion. I hooked up the alkaline battery in parallel to the lithium to give it some sort of protection.
Once the sabertooth’s ground was reconnected to the circuit the Odrive would reboot.
Question: How do I properly isolate the Odrive or the Sabertooths without using a completely separate power source? Is there any configuration that would make the Odrive less sensitive to these events?
First off, please try using the ferrite rings. I’d actually advise to get some extra ferrites, so that you can put ferrites on the motors driven by the sabertooth controllers too.
Also, for brushed DC motors (which is what I assume you’re using with the sabertooths) it’s not uncommon to put one, two or sometimes three capacitors on each motor to snub out the RF noise caused by arcing of the mechanical commutators. One capacitor would go across the terminals, two would go from each terminal to the grounded metal case, and three would do both. Normally these would be 10-100nF.
I think with ferrites on the ODrive motors and ferrites plus caps on the brushed motors, you shouldn’t need isolated supplies. (and even if you did use isolated supplies, I think the above measures could still be needed)
Thank you for the reply towen! Just to confirm, you’re saying I should add capacitors between the positive and negative terminals of the sabertooth, and one between each ground terminal and the chassis ground? The sabertooths are powering 20:1 linear actuators
No, you should add (small valued ceramic or polyfilm) capacitors at the very end of the wire, soldered to the motor terminals itself, assuming it is a brushed DC motor.
Like this:
You can also twist the wires, and run them through ferrites.
There are two things going on here:
PWM switching edges can transmit RF noise up the wire, which radiates from the motor i.e. the whole motor and its wiring acts as a transmitter antenna. This can be effectively prevented with ferrite rings at the drive end.. Twisting the wires also helps here - it reduces the magnetic field generated by the loop of wire, and so effectively reduces the wire’s inductance. It prevents the wiring from inductively coupling noise onto to other wires running alongside it, such as encoders. If you have 5x small DC motors, there’s no reason why you can’t pass multiple motors through the same ferrite, if there is still room to get two turns. The wires must all go through the ferrite in the same direction (treat them all as one cable)
Arcing from brushed DC motors can transmit noise /down/ the wire. This can be effectively prevented by placing capacitors at the motor end, which short out the very high frequencies. They should not be placed at the drive end, and they are not needed at all for brushless motors.
So I checked the actuator and it does have internal capacitors at the motor leads and I don’t think I mentioned it before but the odrive is driving two 24V brush less motors. The problem only happens when there’s a high amperage surge. I read on the actuator website that under load they can spike to about 7A. Is there any configuration on the odrive to improve its resilience?