Compressor Not Activating

We programmed a Compressor on our robot for aerial assist. It worked originally but stopped working recently. Has anyone had this issue and how were you able to fix it? We are programming with windriver C++. Please Help!

You’ll have to do some looking at the robot to figure out where the problem is.

First, look at the pressure switch. Pull the PWM cable from the digital side car and measure the resistance between the ground and signal wires that lead to the pressure switch - you should read 0 ohms, or something very close to it. If not, then the switch or the wiring to it might have a problem.

Next, look at the Digital Side Car. There’s a row of LED’s next to the relay outputs - one of those (the one next to the port you plugged the compressor relay into) should turn on when you expect the compressor to turn on. If that’s happening, then everything looks OK in the code. If not, you’ll have to dig into the code.

If the DSC light is going on like you expect, take a look at the relay next. The LED on the relay should change from orange to green when the LED on the DSC comes on. If it doesn’t, then you have an issue with the wiring somewhere - check to make sure the PWM cable is plugged in all the way and hasn’t worked itself loose.

You did replace the fuse in the relay with a circuit breaker, right?

The first thing you are going to want to do is confirm that it is not a hardware issue. My team had the problem that it was not turning on but it might also apply for your scenario. Check the wiring on your switch and check that the PWM cable is still firmly connected.

Hope this helps.

Unless you have changed your code, it is very unlikely to be the software… especially since the C++ code for this only involves creating the Compressor object and calling the Start function, the rest of it is controlled by the WPILib code.

We have seen this several times over the years and it has always been either: (1) that the spike is not plugged into the correct relay number or (2) the pressure switch is not plugged into the proper digital number or (3) one of those devices is not functioning properly or (4) one of the cables connected to those devices are bad or plugged in backwards.

I suggest double checking the digital and relay port numbers being used and then swapping out each of the devices and cables. I know that we have also done a quick test before by shorting across the terminals of the pressure switch to try to get the pump to start.

This season, I added some logic to our code to help debug compressor issues; basically, whenever I call Compressor.Start/Stop (relay channel 1) I also activate relay channel 8 (which isn’t connected to anything), with this, you can get a lot of info quickly about compressor issues from the LEDs on the DSC and Spike (we lost Galileo semi-finals due to a sudden compressor failure, which turned out to be the Digital Side Car relay section failing)

If neither relay 1 or 8 LEDs lights up, you have a software issue or the relay section of the DSC has failed.
If only relay 8 lights up, you have a problem with the pressure switch (or you are at full pressure)
If both 1 and 8 light up, then your problem is in the connection to the spike, the spike itself, or the compressor. You can check the LED on the spike (should be green when DSC led is lit) to confirm the connection is good.

We had the same issue on our practice robot last Sunday. After wasting an hour checking everything, the problem was solved by placing the DSC in an Arbor press. Once the DSC was replaced with a new unit, everything worked properly. We have slow motion video of the process.

We had this exact problem at Centerline. We ended up having to switch the cRIO, but it could be the spike, spike fuse, the DSC, the cRIO, or possibly the PWMs. We tried all of those, with the cRIO last, and it finally worked.