Log in

View Full Version : Viktor Speed Controllers and CIM Motors


Asymons
14-02-2014, 15:12
Hi,

We were having a problem where 2/4 CIM motors on our robot would decelerate after we would stop moving the joystick instead of immediately stopping like the other 2 CIM motors. We've checked the gears twice, counted them, and resolved that it may be the speed controller. The two working ones are Viktor 884 Speed Controllers and the 2 others that aren't working are 883 and 884. We were thinking it may be that they aren't all the same speed controller.

Thanks for the help :).

Bob Steele
14-02-2014, 15:15
You need to set all of the victors to brake...
It is a jumper on the speed controller.

By the way the 883 is not a legal speed controller...for your competition robot

Hope this helps

Asymons
14-02-2014, 15:31
Thanks for the reply back. We switched out the 883, kept everything 884. We tried it out again. When we move backwards it stops immediately. When we move forwards it doesn't stop immediately. The code that we're using for the drive train is:

myRobot.ArcadeDrive(stickD); // drive with arcade style (use right stick)
Wait(0.005); // wait for a motor update time

Bob Steele
14-02-2014, 15:53
Are all of the jumpers on all of the speed controllers set to brake?

Here is a link to the manual for the 888 (almost the same as the 884) it shows the brake/coast jumper position

http://content.vexrobotics.com/vexpro/pdf/217-2769-Victor888UserManual_20130118.pdf

see if they are set to coast or to brake...
You also need to calibrate your speed controllers (individually) The instructions for doing that are in the pdf above.

good luck

Asymons
14-02-2014, 16:02
Thanks we'll try it out tomorrow, we didn't realize that was apart of a speed controller haha.

gpetilli
14-02-2014, 16:05
Thanks for the reply back. We switched out the 883, kept everything 884. We tried it out again. When we move backwards it stops immediately. When we move forwards it doesn't stop immediately. The code that we're using for the drive train is:

myRobot.ArcadeDrive(stickD); // drive with arcade style (use right stick)
Wait(0.005); // wait for a motor update time

Im not a software expert, but I dont think you want the Wait() statement. The ArcadeDrive should be in teleopPeriodic which runs when you get joystick updates (20ms).

But that is not this problem. Check your break/coast jumpers as already suggested. Calibrate the Victors - are they solid yellow (indicates commanded to zero velocity) when they are coasting?

Joe Ross
14-02-2014, 16:38
Im not a software expert, but I dont think you want the Wait() statement. The ArcadeDrive should be in teleopPeriodic which runs when you get joystick updates (20ms).

it depends on whether they are using SimpleRobot or IterativeRobot. If SimpleRobot, then a wait is required. If IterativeRobot, no wait should be used.