Why Can We Not Use CIM motors with Relays? (R52)

Is there any reason for the FRC 2013 season manual to disallow CIM motors being controlled by relays?

The spike relays are not capable of the current that a CIM motor draws. A fuse is mandated to prevent permanent damage to the Spike Relay. The CIM will blow this fuse very quickly, and bypassing/disabling the fusing mechanism will cause some other element of the Spike to become a fuse by releasing smoke.

Ah, well that makes sense. Thank you for explaining.

In addition to the safety aspect, from a practical standpoint spikes aren’t very useful for many things you would use a CIM for as they are not capable of speed control. They’re just on or off.

It’s not that hard to program a speed controller to be a relay either.

The current specs on the Spike are 20 amps continuous while the CIM motor stall current is 133 amps. As one of my professors was want to say (paraphrased), “There will be a flash of light, a puff of smoke and hole in the air where your Spike used to be.”

Just to show how easy it is, here’s Java (and maybe C++, I don’t know) code to turn a Victor object victor into a relay based on Joystick object joystick buttons 8 for forward and 7 for reverse (the left buttons on the base of the Attack 3).


if (joystick.getRawButton(8))
    {victor.set(1.0);}
else if (joystick.getRawButton(7))
    {victor.set(-1.0);}
else
    {victor.set(0.0);}

I’m at home, so I haven’t tested this code, but it should be enough to get you started.

Since you’re still using a speed controller, you can have it ramp up over a period of time, so you don’t have as much of a current rush. You can also have your rate be less than full, or even different rates between forward and backward.