CIM Motor Interference with PWM and CAN?

Hello!

I am planning on moving my roboRIO to the center of my bot. However it will be surrounded by four CIM motors. All of my PWM wires and CAN bus wires will have to get 1.5in close to the CIM motors. Is this a safe move or do the CIM motors create a lot of interference?

Thanks,
Alek

The strongest magnetic field in a motor is just that, inside, and it is much weaker outside and the farther you go.
Reference image: https://cdn.miniphysics.com/wp-content/uploads/2012/07/solenoid-magnetic-field.jpg

Our team hasn’t had issues even when having the wires right on the motor (you may want to watch out for heat issues though, possibly), so you should be fine.

We’ve had a similar set up in 2013 (though it was cRIO) with no difficulties. If there is any interference, I would expect it to be from the wires and controller rather than the motor itself, as CIMs are pretty well shielded. Also, the motor controller switching speeds are below 20kHz, so a foot or two of wire isn’t going to make a very good antenna, especially if you keep the black and red wires close to each other (or better yet, twist them).

I don’t recall reading or hearing about this being a problem.

Tin foil. Cover everything in tin foil. Protect your RoboRIO from the aliens.

I kid… you should be fine running it pretty close. I’d be more worried about heat than signal degradation but you don’t really need to worry about that too much for most FRC applications.

Thanks for all the help!

Recommended for spotlight.

We have had wires in similar proximity without any issues.

So what you’re saying is that when the robots take over it’s actually aliens?

As others have mentioned, you’ll be hardpressed to find any sort of interference issues short of wrapping your CIM with a coil of signal wire.

For CAN, the twisted pair is designed specifically to cancel out any outside interference, since the signal is equal but opposite in the pair of wires. Ethernet uses the same twisted pair mechanism.

For PWM, the logic level is between 0-5V, with the trigger level being between 0-0.25V for low and 4.75-5.25V for high. The kind of interference you’ll find near CIM motors won’t be enough to trigger a change here. You can find these details in the RoboRIO Specifications document. http://www.ni.com/pdf/manuals/374661a.pdf

Finally, be aware that there are still some issues with interference. On page 3 of the RoboRIO User Manual (http://www.ni.com/pdf/manuals/374474a.pdf), it explicitly states: “[the roborio] product is intended for use in industrial locations. However, harmful interference may occur in some installations”. It warns that PWM, CAN and other signal lines should be kept under 2m of length. It’s not a hard limit, but it is what the roborio is rated for.

I heard from one team whose power cable (the one that runs into the PDP, I mean) got moved out of place after a fall and ended up close to their Talon SRX’s CAN. When trying to accelerate fast from standstill the wire’s electromagnetic field killed the CAN. The cable was re-secured and they had no more issues.

Other than that, I would agree with what everybody else has said above… uh, not the tinfoil stuff. :smiley:

Aluminum foil is more available. Works almost as well.

Doesn’t protect from the aliens though… only the g-men.

The practice of twisting wires - pairs, triplets, or quads - will minimize both susceptibility as well as radiation.

Note that if you have wires with silicone insulation - e.g. new talons or victors - do not tightly twist the wires; the wires will cut through the insulation!

If you are concerned about susceptibility on PWM cables, you might try making your own twisted PWM cables.

I suspect the improvement was because of tightening a loose connection, not because of interference.

Twisted pairs only work for equal but opposite signals. Twisting PWM cables won’t do anything notable.

You might be accurate to state that twisting PWM lines will not provide a significant result. Twisting wires minimizes the loop area between the conductors. Since these conductors are normally run in parallel, there is a loop formed between the conductors. For the PWM lines the concern is susceptability. Twisting the lines will minimize the loop area. In addition, both supply lines form an AC ground; by twisting the lines the supply and return lines form a coarse shield for the PWM command line.

OK,
Starting with twisted pairs…
The twist exposes the conductors to opposite fields such that induced currents from outside of the wire will cancel out at the receiver end of the wire. Without the twist, noise currents end up in phase with the signal currents. It also works in reverse, twisting the CIM motor wiring will tend to reduce the induced currents in adjacent signal wiring.
Shielding the twisted wires does nothing if the shield is not bonded to a ground or common path to draw the induced currents away from the signal destination. Without the return path, the noise current ends up inducing currents in the wiring inside the shield.
Balanced signal wiring tends to cancel out common mode induced currents at the receive end. The CAN buss is designed to minimize this noise by using balanced transmission line techniques while not truly balanced. Terminations at both ends of the buss are essential for maximum noise immunity.
In motors, the majority of noise is generated by the sparks that occur in brushed motors. In the CIM motors, the case tends to shield the noise but some still escapes along the motor wiring. Keeping a short distance from motor controller to motor will also reduce induced noise.
Noise can also migrate along power supply wiring. Best practice is to keep any wiring that is attached to the RoboRio separated from all motor wiring. Also avoid running signal wiring parallel to motor wires. Noise is significantly reduced if wires cross at right angles. Over the years, the greatest noise issues have occurred on the PWM signal wiring and in particular the PWM wiring feeding servos. Robot rules allow a resistor to be added to servo wiring and also a capacitor noise filters to be added to motor leads. (see 2017 R60 and R61)

Pfttt… 1 μF… you call that a capacitor!

I’m curious if any teams actually perform this operation and if they have measured to see how much it helps.

Running the signal wires parallel to the noisy power wires (any wires between the PDP, motor controllers and the motors) for more than a few inches can cause coupling of noise into the signal wires. If the signal wires need to cross the power wires, make them perpendicular to minimize the coupling.

The twisting causes the noise to roughly cancel on the two wires. If the coupling is strong enough, common-mode noise, induced into both wires (twisted or not) can cause problems but this is not likely at the power levels of most FRC robots.

If one is going to use a shield, it would be easier to purchase shielded cable that has an insulating jacket over the shield rather than putting aluminum/tin foil over your wires. You would have to terminate the shield at one end only (say the Roborio) for it to be effective.

Some household appliances that use brushed DC motors have these. 1 uF is pretty big for a noise killer cap. They are usually in the range of 1 - 10 nF to get lower impedance at high frequencies.

To correctly measure the effect of these noise killer caps requires equipment and facilities that most FRC teams will not have access to.

The digital signals you are using have a non-linear response to noise. As long as the noise remains below the threshold of sensitivity of your system, you will not notice any effect, even if you increase the noise level dramatically. When it approaches the threshold, you will get intermittent failures. Once you are above the threshold, your system will fail to work and doubling the noise level will not necessarily make it work twice as badly.