Compressor will not turn on

Just take one piece of wire, strip both ends, and insert each end into each port of the pressure switch. This simulates the switch reading < 120psi so it should start compressor.

by eahc port of the pressure switch do you mean the ports on the pressure switch it self or the ones it connects to on the pcm? we did it to where the wires connect to the pressure switch and nothing happened.

The ones in the pcm itself

We just had this problem yesterday, fixed the can IDs then it worked. Obviously check mechanical/electrical for starters

so i jumped the switch and the compressor came on. so does that mean there is a problem in my programming?

what was wrong with yall’s IDS?

If you jump the switch and your compressor runs, your code is good. That means you have a bad pressure switch. Replace it.

ok we are going to order a new pressure switch

i appreciate the help from you guys!

PCM (Device ID 0) | CAN ID is 0

PCM IS NOT ENABLED! If robot is enabled maybe the ID is wrong?
Close-Looping is ON, but PCM is DISABLED.
Comp Is Off
Pressure is not full

i forget to send you that from phoenix tuner.

No problem, You’ve been busy :slight_smile:
The jumper test told us what the problem and fix is.

So I am a first year programmer for our team and I am having some trouble with the pneumatics in our system. We program using FRC vscode and I have written the code using resources available to me and my limited knowledge of coding. Problem: Our pcm status light is on but the compressor will never kick on. I declared a double solenoid in our programming and declared the right can ports (0,1).

Robotmap:

 public static final int THEARM_PITCH_SOLENOID_DEPLOY = 0;
  public static final int THEARM_PITCH_SOLENOID_RETRACT =1;

My subsystem named “Thearm”

  DoubleSolenoid pitchsolenoid = null;

  public Thearm() {
    pitchsolenoid = new DoubleSolenoid(RobotMap.THEARM_PITCH_SOLENOID_DEPLOY, RobotMap.THEARM_PITCH_SOLENOID_RETRACT);
  }

  public void pitchup() {
    pitchsolenoid.set(Value.kForward);
  }

  public void pitchdown() {
    pitchsolenoid.set(Value.kForward);
  }

  public void shiftlow() {
    pitchsolenoid.set(Value.kReverse);
  }  

Armdown command:

public class armdown extends InstantCommand {
  
  public armdown() {
    super();
   

    requires(Robot.m_Thearm);
  }

  
  @Override
  protected void initialize() {
    Robot.m_Thearm.pitchdown();
  }

}

armup command:

public class armup extends InstantCommand {
  
  public armup() {
    super();
   

    requires(Robot.m_Thearm);
  }

  @Override
  protected void initialize() {
    Robot.m_Thearm.pitchup();

and then I mapped the commands to my joystick:

 public OI() {
    D1.whenPressed(new armup());
    D2.whenPressed(new armdown());
   }

I also declared my subsystem here:

 @Override
  public void robotInit() {
    
    m_Thearm = new Thearm();
    m_oi = new OI();

If you guys have and advice as to what the problem is please let me know. Any help is greatly appreciated.

pitchup and pitchdown are both calling

pitchSolenoid.set(Value.kForward);

one of them should be set to

pitchSolenoid.set(Value.kReverse);

Do you have a Compressor c and call c.start() somewhere?

I’m not familiar with command based, but the above code looks okay with the above proposed change.

As of 2019, simply declaring any type of solenoid ought to enable the compressor in closed loop mode. My experience with 2020 software is that that behavior did not change.

OP, what is the state of the Compressor LED?

From the manual:

image

If it is green, it implies bad wiring between the PCM and the compressor itself, or the compressor itself has failed. If it is dark, the problem lies elsewhere.

Note the compressor pressure switch switch wiring is designed for safety - if unplugged or not wired, the PCM assumes top-pressure has been reached, and will not attempt to enable the compressor.

there is no compressor light on

ok i changed that the compressor still isnt kicking on. should the compressor just come on automatically or do i need to press the buttons for it to come on?

If there is a solenoid object in the code it should just start as soon as the code is enabled. If there pressure switch detects that the system is not >120psi.

It should turn on automatically. However, unlike what most people are saying I have never been able to get the compressor to start on its own. Make sure the pressure switch is wired correctly and as is the compressor. It could possibly be the compressor is broken, we had this during off season and the electricians had to take it apart.

No compressor light means it’s either the pressure switch or wiring to it, or code.

To rule out the pressure switch and it’s wiring, you can short the 2 pressure switch pins on the PCM (just don’t bend them). If the light turns on, it’s the wiring or switch. You can repeat the process by shorting the screw terminals on the switch together (after plugging the wires back into the PCM). If it works there, it’s the switch. Alternatively, you can check resistance/continuity end-to-end on the switch wires.

Assuming the light still doesn’t turn on, we can look further into code. I would recommend opening up the Phoenix Tuner application while connected to the robot and run a self-test for the PCM. If you get to this point, please post the output.