Curious Motor Behaviour

Hello everyone.

I’m experiencing a problem with our robot’s drive train which I can’t pin down.

Our drive functions normally most of the time, but under certain conditions, such as a hard contact with the field perimeter or another robot, ceases to function properly. Instead of “burning out” in the traditional sense, that is, ceasing to move at all, our robot rather jitters in the desired direction.

During this jittering process, the lights on the microcontroller do not change, and we’re not losing our VEXnet connection. When unpowered our drive moves smoothly and without much effort required.

Our drive motors are on a power expander and are Y-cabled between the power expander and the microcontroller. I tested the Y cables individually to ensure they were functioning properly. Likewise I have individually tested each of our drive motors and have also switched from using power expander to directly wiring to the microcontroller, but the problem persists.

For context, our robot has a four-motor drive, geared 1.6:1 internally, and we are light enough to high hang with a 7:1, four motor lift.

Thanks for your consideration,


It sounds like a microcontroller issue, I think.

Either that, or something is not plugged in well, and when the bot changes direction quickly, it jiggles it.

Do you have these inserted?

What do you mean by this?

Why are you using Y cables?

Normal setup would be

CORTEX – three wire extension --> POWER EXP —> Motor controller 29 —> Motor

We are using clips, and all of our wires are very secure. I don’t believe it’s an issue with individual motors losing power, as both sides of the drive stop at the same time, there is no spinning action that one would commonly see when one side of the drive comes partially unplugged.

We use Y cables to make programming our drive a little simpler.

Our setup goes : CORTEX --> Y-cable --> POWER EXP --> Motor controller 29 --> motor

By using the Y cables between the power expander and the microcontroller we don’t split the voltage received by each motor from the power expander. The process is done merely to make programming the drive a two-port rather than a four-port operation.

Can we see your code?
RobotC or EasyC?

Easy C

I don’t have the code on me, but I wrote a simple two-motor arcade today to test a microcontroller we slaved on to see if the problem followed. Unfortunately it did.