CAN Firmware Update Mandatory?

Our team is trying to run a compressor with one solenoid, and both are wired into the PCM. However, we can’t get it to run. Our compressor is wired as it should be, but our compressor isn’t doing anything.

The Status light on the PCM is strobing red, which according to’s%20Guide.pdf
means that the problem is that there is no CAN communication.

We are not planning to implement CAN at all this year, but I have been seeing some things about updating the PCM firmware. Do we need to update the PCM firmware to be able to run our compressor, even though we have no plans of implementing CAN?

You need the PCM firmware update if you use pneumatics.
However, you won’t be able to update the firmware unless you first fix your CAN wiring so the PCM can be talked to.
The PCM receives all it’s commands via CAN.

For development the PCM will operate out of the box with the firmware that it came with, so the update isn’t immediately necessary to get it to stop strobing red.

The PCM communicates over CAN. How were you planning on controlling it?

PCM wiring is in this doc:

Firmware update is here:

Code depends on language.

The rules also require the PDP CAN to be attached to the roboRIO.

The PCM is a CAN device, you have to wire it to the RIO CAN bus. see PDP also should be wired since it has the termination resistor.

Now that the PMC firmware is updated, the Status light is flashing green. We have a solenoid being successfully activated by a button push on the controller.

But our compressor won’t turn on. We’ve followed all the instructions as far as wiring goes, with the only deviance being that we used regular black and red wires instead of the green and yellow “CAN” wires.

We tested the Compressor Out ports on the PCM and we don’t get any voltage back, even though the rest of the PCM seems to be working without a problem.

I am at a loss as to what the issue is. So, does anybody have any ideas?

You have a pressure switch wired in alongside the compressor outputs on the PCM?
The PCM won’t try to power the compressor unless it can detect a pressure switch connection.

We do have a pressure switch wired in.

Is the CAN ID of the PCM set to 0?

I can’t say for sure, because other programmers were the ones who upgraded the firmware. How would I be able to check?

Use a web browser and go to roboRIO-3160.local
You’ll see PCM on the left, click on it and the CAN ID will be at the top of the resulting page.

I tried going to this address but only ended up doing a google search and not getting me anywhere.


I realized I should probably have my roboRIO on. I turned it on and made it to the page. Yes, the CAN ID is 0.

You can also verify firmware versions on the diagnostics tab of the driver station.

Do you have code that starts a compressor? In Java, you would construct a Compressor object in some initialization code and then call start() on that object in your autonomous or teleop code.

That’s not needed in 2015. Just construct a solenoid on the PCM and you should be all set code wise.

There is a separate Compressor class that can be used if there are no Solenoid objects created in code.