PSA: Cortex Problems

https://content.vexrobotics.com/docs/VEX_Robot_Troubleshooting_Flowchart_0811.pdf

This flowchart is very useful for troubleshooting problems, however I have run into a few obscure problems that are not covered in this flowchart. I am going to be going through two of them, and explaining the problem and what I did to fix it.

Both of these problems are related to USB port on the cortex.

Problem #1
The first problem was very odd. While doing some autonomous programming wirelessly, the usb port seemed to suddenly stop functioning. Problems from this include, vex net communication seizing and inabilty to download programs. The error message achieved when attempting to do so was:

“Failed to verify that the serial link is connected to a Robot Controller.
Cannot communicate with VEX Cortex SlaveCPU. Master CPU communication is working.”

Solution: The solution for this was very simple, simply reflashing the firmware did the trick for me.

Problem #2
Before explaining this problem, I would like to preface it with a video.
This is what cortex LEDs, should look like when being turned on under normal circumstances:

Now let me explain the problem. This time the usb port was unable to do anything. No vexnet connection, and when trying to connect the cortex directly to a computer(Windows 10), I was greeted with this lovely message:

“The last USB device you connected to this computer malfunctioned, and Windows does not recognize it”

Not only was I getting this error, but the LEDs on the cortex were also out of wack:

Reflashing the firmware was not possible in this situation as Windows was not able to communicate with the cortex.

Solution: This solution is a bit odd, but bear with me. On the cortex next to the backup battery port there is a hole that says config. Within this hole is a button, I know this is obvious but I am trying to be detailed. Press this button and hold it with something thin, I used a allen key. The cortex will precede to cycle through a bunch of light patterns, but it eventually settles on the correct pattern (all green). After this turn off the cortex, power cycle, and it should be back to normal.

Hopefully this thread will help someone; feel free to add you own tips/solutions, and please point out if I have done something wrong or taken the hardest route.

Not wrong at all. The config route is always the last resort, particularly if the cortex is not communicating with the computer at all. Once you do the config, it is then a good idea to re-flash the firmware before proceeding. I ask my students to reflash their firmware every one to two weeks. And I have saved several Cortexes by running the config operation.

I had that first problem right before a competition. Luckily we had a spare cortex. I used the solution you did once I had time to sit down and do it.

If I ever had that second problem, I might just curl up in a ball in the corner!

Encountered the 2nd situation at the State Championship. I just redownloaded the driver and then used the Cortex in boot mode to reflash it.

Hate when it happens.

We’ve been fighting the SlaveCPU error for quite a while now. It happens around 1 in 5 downloads, and 4 out of 5 times we get a MasterCPU error when flashing new firmware after getting the SlaveCPU error. Another issue we face is getting the “failure to flash” error, which we get almost every time we try to download code. I’m not sure why we get these issues so often; our sister teams almost never have these issues. We’ve replaced the cortex with a brand new one, joystick, are using newly written code, vexnets, pretty much anything we can think of. It’s a big issue for us since it slows us down considerably when we are working on autonomous or programming skills routines. Does anyone ( @jpearman ) have any solutions?

@Mystical Pie, thank you for the PSA.

We have had to do the full Cortex reset three times just in the last month and a half. I don’t recall resorting to doing anything like that for a few years prior to that.

First, I thought we had a bad USB connector and touched up its attachment points with the soldering iron.

When it happened second time we reinstalled RobotC and all VEX drivers.

After the third time - we assumed that our 4 year old Cortex has some bad flash memory blocks and needs to be replaced. All three times it was dying during the unsuccessful code uploads.

However, now that you are describing similar issues, I suspect it could be a result of the latest Windows updates interacting with the VEX drivers or RobotC. In two instances Windows couldn’t recognize Cortex USB device, but the error went away after rebooting the computer.

We are running latest RobotC (v4.55) on a small Dell laptop with Windows 10 with all Microsoft and Dell updates automatically installed.

If anyone else had experienced Cortex issues that needed full firmware reset (using Config switch) , could you, please, post when it started happening and how frequently, as well as any supporting information like Cortex age and software versions?

Edit: here is a quote from the RobotC thread with similar Cortex reset instructions: ROBOTC

You can download the Firmware utility from here: Firmware - Products - Cortex - VEX Robotics