PCM Throwing CAN errors & stopped functioning

Hi all, my team is doing a summer build that includes pneumatics. I have worked with the PCM and solenoids multiple times before, but we are encountering a strange issue. I programmed a command that would fire our solenoids and when the button was let go the solenoid would return to its original state. However, recently, the PCM has been throwing unending CAN errors to the driver station, the onboard compressor has stopped running, and the solenoids are no longer powered/triggerable.

I will paste the error we get in the Driver Station logs below:

  1. ERROR -44087 CAN: Message not found frc.robot.Main.main(Main.java:23)

  2. [9:25 PM]

8:03:30.864 PM edu.wpi.first.wpilibj.Solenoid.get(Solenoid.java:86) edu.wpi.first.wpilibj.PneumaticsControlModule.getSolenoids(PneumaticsControlModule.java:135) edu.wpi.first.hal.CTREPCMJNI.getSolenoids(Native Method) Error at frc.robot.Main.main(Main.java:23): CAN: Message not found ERROR -44087 CAN: Message not found frc.robot.Main.main(Main.java:23)

We are using a CANivore for some of our TalonFX’s to take some load off the CAN bus, and the driver station lighting bolt tab shows a max can % of around 75%. It doesn’t go above that. The status light on the PCM is blinking a normal speed of off and green.

Any ideas?

Is the wifi radio anywhere near it?

If it is an old PCM, and you have another laying around, I suggest doing a swap. We’ve had them just magically stop working in the past.

Since the software is pointing to the same place in your code repeatedly, it may be that the CAN ID for different devices are the same? Never used CANivore myself, but we’ve had students swap in things without reprogramming CAD IDs and all hell breaks loose.

2 Likes

Check the CAN wiring for the non-CANivore bus. Make sure you have two CAN busses, of course – this is required when using CANivore, and you should keep PCM on the non-CANivore bus…

Try plugging into the PM with USB and see if that is normal?

I figured it out guys, posting here in case anyone has a similar issue. The PCM by default needs to be ID 0 on the CAN bus. We had ours at ID 19. If you want a different number you need to specify what the can ID is in the constructor of the solenoids.

2 Likes