Our robot has a dual flywheel that uses 4 speed motors, 2 on each side of the flywheel. The flywheel motors for the right side are connected directly to 2 adjacent ports on the Cortex. The other 2 flywheel motors on the left side use a y-cable that goes through the power expander (ports A and D).
Recently, we noticed something really strange happening. When we run the flywheel (we use a PI control loop), the right side of the flywheel runs nice and smooth without oscillation (but still correcting). However, the left side of the flywheel quickly goes to a state of uncontrollable oscillations, basically 0 to 127 repeatedly. Interestingly, on another robot we have, one side of the identical flywheel on that robot exhibited the oscillatory behavior when controlled by y-cable (over the power expander) but not when using 2 Cortex ports.
We would like to connect the left flywheel motors to the power expander but use two separate ports on the Cortex. However, since we use 12 motors, we can’t do this without using the y-cable directly on a Cortex port. But in our experience, just plugging the y-cable into a Cortex port didn’t work; however, the y-cable does “work” when we use the power expander.
Based on this, we have a few questions:
Is it possible that the y-cable is causing these problems? If so, is this a problem with just this y-cable or a limitation of y-cables in general?
Could the power expander be causing these issues?
How do we properly use a y-cable by plugging it directly into a Cortex port, without using a power expander? Are there different types of y-cables (such as regular vs. extension) that can do this, or is there just a certain way you have to connect the wires?
Here’s the relevant code, although we don’t think that this is a code problem since the right side works fine: PI controller Robot code
A Y-cable shouldn’t be causing issues like this, there might be a chance that the extra motor on the circuit results in too much power being pulled, but I highly doubt it.
There really isn’t much to using a Y-cable, and there only is one type (aside from the one for LCDs). You just plug it into the cortex or power expander, plug 2 MC29s into the other two ends, and plug motors into those. Have you made sure that all of your wiring is the right way around, and that both of the motors controlled by the Y-cable are spinning in the same direction? If one of the two motors is spinning in the opposite direction you will have to flip the 2-wire connection of that motor.
1.I think it is the Y-Cables that are causing the problems, and I think that you just set the Y-Cables up wrong.
2.I don’t think the expander should be causing the issues, all it really does it that it grabs the motor signal from the cortex, then powers the motor with the expanders’ own battery.
3.There is a specific way to hooking up the Y-Cables, here are some things to make sure you got it right:
a. Since there are 3 ports on a Y-Cable, make sure to connect the port that has both the first and second female ports meeting to, on the cortex port.
b. Make sure that you use a motor controller between the motor and Y-Cable.
c. For the plugs between the controller and Y-Cable, make sure that the side that has copper showing on the controller is the same side copper is showing on the female ports.
d. Make sure BOTH of the motors connected are the same, and make sure the programming is towards that type of motor being used.
@Kevin Boenisch and @1815Delta - thanks for the suggestions. We fixed the issues by making sure the wires were connected properly. For others who might have this problem in the future, I took a picture showing the way the y-cables should be connected to the motor controllers: https://goo.gl/photos/dCk3H4d7r3CoMve6A