Bad Ports

One of the VEX Cortex modules we ordered about a month ago is not working normally now. Up to this point it has functioned perfectly, and then this past week all of a sudden a couple of the ports started to behave abnormally. They still function, just not in the correct manner. When a different Cortex is substituted, everything functions as it’s supposed to. It’s firmware was fully updated as well. Motor Ports 2&3 seem to be the only ports that don’t function normally at this time.

First, Port 2 would work normally with two of three channels controlling the motor. We poured over the code for an hour trying MANY different iterations of the code. We tried three different motors, and three different speed controllers.

Then, we went back to our vanilla code and switched to Port 9. Everything worked perfectly for that motor. However, as soon as that started to function on Port 9, Port 3 did the exact same thing as Port 2 did, two of three channels worked. So, we left everything the same except moved it to Port 8, and walla, a perfectly working robot.

So, then to make sure, we kept everything the same and put them both back to their original ports and we got the same abnormalities. We then pulled everything and put on a new cortex without changing any code and it work flawlessly again.

Any suggestions?

How are they behaving?

What does “two of three channels” mean?

A 2-wire motor plugged directly into a 3-wire port can damage that port, you are using MC29s I assume.

First off, thanks for your reply and willingness to help troubleshoot.

Yes, I’m using the motor controllers on all the motors. Running 393’s with the MC29’s.

They are not doing exactly what the program is telling them to do all of the time. Some of the time, yes, but not all of the time. For example when running my mecanum program, forward/back and rotate left/right work normally, when straffing the motor turns the same direction as the motor in Port 3.

When I refer to they, I mean the ports on that specific cortex. I created two identical setups and used the exact same program with different results. The only difference is the Port 2/3 on (let’s call it) Cortex X. The setup with Cortex Y is nominal where all ports are working as supposed to and motors are functioning normally.

When I said 2 of 3 channels, it’s because I was using mecanum controls and the motors would work fine when using channels 1 and 3 (rotate L/R and Forward/Back) but when channel 4 (straff side/side) was used the port 2 would clone port 3.

I feel like just explaining the problem is tricky…

Well just avoid any errors in set up and code can you try code to run just motors forward.
motor[port1]=127;

If you run this for every port do some of the ports act differently or do some of them run intermittently?

Also have you verified that none of the motor controllers are inverted. As in the wiring is not set up for red to go into red and black go into black.

Griffin is correct, setup some simple code to test each port in turn. For example,

task main()
{
    while(1)
        {
        motor port2 ] = vexRT Ch2 ];

        wait1Msec(25);
        }
}

then change port2 to port3, etc.

Thanks again for your help in advance.

Here’s the code I ran:

task main()
{
startMotor(port2, 127);
startMotor(Port3, 127);
wait(3);

stopMotor(Port2);
stopMotor(Port3);
}

This worked as expected on both the cortex X and Y I tested. HOWEVER, on Cortex X, when I go to -127 on Port 2, both Ports continue in the positive direction. If I go to -127 on Port 3, again both ports continue in the positive direction. If I do -127 on BOTH Port 2 and 3, only then will they both go in the negative direction. I also tried this at a power of +/-50 with same results except for the first .5 seconds, the motor in reverse stutters and then smooths out.

I replicated each and every step on Cortex Y with results as you would normally expect when the motors are reversed individually and combined.

I stump anyone yet??

Check firmware versions and then reload the firmware on the “bad” cortex.

What version of ROBOTC/master firmware etc. are you using?

I’m using RobotC 4.26 with RobotC firmware v.1026 and CPU firmware V4_22. Reloaded program on both Cortex’s with no see-able changes.