I recently set up the 2019 CTRE program (phoenix tuner) for the TalonSRX motor controllers used with our swerve drive, and after updating firmware, etc, I ran my code and all four modules received signals and successfully moved the modules. The next day, I get back to the robotics room, boot up the robot and run the code, and the motor controllers won’t enable (note that no changes were made to the electronics or code).
I’ve spent two days with the electrical team trying to troubleshoot this, and found that the blink command from the phoenix tuner does cause the LED’s to blink rapidly as they should (all motor controllers appear fully functional from the tuner), but when I try to send them a value to move the motor, either from labVIEW or the tuner, the LED’s remain blinking orange, indicating disabled/inactive controllers. We connected a VictorSPX as well, to see if the problem was unique to the Talons, but it had the same results.
This sounds like your code is fine and that it’s a wiring issue. I’d take a second to check and make sure your PWM or CAN wires are in the correct orientation. You should be looking for the problem in between where the signal is sent from the rio and received at the SRX.
Even if no changes were made to the electronics it’s worth a second look. If everything is okay here then I’d try a very simple program and work backwards from there. You can also try sending your code to the rio again (maybe the persistent memory failed?)
It should not have taken that long. It really sounds like someone is skipping steps in the hardware bringup. Or perhaps they flashed the wrong firmware in the Talon.
NonFRC
I had one team accidentally flash 11.11 (the last and final non-FRC Talon firmware for HERO robot controller).
The tell-tale symptom there is that you can control motor output with Tuner when you press the nonFRC enable button only.
This is why we combined FRC and nonFRC into one crf (4.11), so that would not happen anymore.
general diagnostics
Did anyone get a self-test report from Tuner while it was misbehaving? This will confirm if the MC was not enabled despite robot being enabled.
Did anyone check the DS for API warnings. We have several runtime checks for your benefit.
Including if you didn’t enter the right-device ID or have the correct firmware.
FRC Unlocking is used to allow for nonFRC control (Tuner’s nonFRC enable if don’t want to use DS, or enabling robot from RaspPI, Linux-desktop,etc).
If you are controlling your robot from roboRIO (ds-connected) that your devices are definitely FRC-Locked (self-test will confirm this), which is normal, expected, and okay.
I suspect something else occurred in your process, and that’s why you are up and running.