Can I run multiple compressors off the one output on the PCM

Does anyone know if the PCM can handle multiple compressors? I know this wouldn’t be legal for a comp bot but for our t-shirt launcher we want two or three on the robot to lessen refill times will they still be able to handle the 120psi total fill or will they overdraw?

Our alternative is powering them off a second battery and setting the release valve to 120 and having them run continuously while we have it out any other suggestions that may work?

This would be a parallel circuit and could pull over the max limit for the fuse for the PCM (each compressor pulling about 11 amps).
Unless you stick the PCM on a 30amp breaker in the WAGO connectors in the PDP, then more than one is NOT good. Even then, though, two would be max.

Personally I wouldn’t try, instead I would up your storage side to epic proportions, and pressurize using an offboard compressor to speed things up. You also might wire two batteries in parallel to increase the life of your robot

Ok thanks for the suggestions I saw another thread saying take the state of the switch in the code and power a second one on a talon so I’ll look into that

@GraveFurball I would up the capacity but this project is one with zero budget so we are limited to the three tanks we already have I’ll look into the battery idea too thanks

Also if you have an Spike relays on hand you should be able to plug as many as you have spikes, just takes some extra code to manually tell the compressor to turn on/off. Could be done at pressures by the use of a pressure sensor (or the pressure switch for less fine control) or just have it be connected to a button on a controller


For a non- competition setting, I would put multiple compressors of relays, each powered by a separate breaker. You run the pressure switch into a DIO port and do the code to turn them all on/off appropriately. Do not rely on the blow off valve for normal pressure regulation - it should really only be used for emergency over-pressurization situations.


Any time, if you need a picture to help you wire it, I can hook you up

Do you have any examples of that kinda code I could use as an example? I’m not our teams normal coder so figuring this out as the project goes on

I have this “idea(?)” of what the code should be but am getting errors I assume this isn’t fully correct but am I in anyway close?

  Relay CompressorSwitch = new Relay(1);



  if (public boolean getPressureSwitchValue(true)) {
  } else {

Do you define getPressureSwitchValue?

if you wanted to do that you’d need

DigitalInput getPressureSwitchValue = new DigitalInput(ChannelNumber); and then your if statement should read

if(getPressureSwitchValue == true){

ok thanks the Digital inputs are the ones on the RIO correct.

Also this is assuming you have any relays on hand, they stopped producing them a few years ago, so you may have none.

And yes, the DIO slots on the RoboRIO

I know we have some spikes lying around just need to dig them out

ok another question I’m now getting errors with the DigitalInput creation whats the library I need to import to go with that?

Should be just import edu.wpi.first.wpilibj.DigitalInput;

Ok thanks I got that in and have the code as below:

DigitalInput getPressureSwitchValue = new DigitalInput(2);
  Relay CompressorSwitch = new Relay(1);




  if(getPressureSwitchValue == true) {
  } else {

But am getting this error:

if(getPressureSwitchValue == true) {
first type: DigitalInput
second type: boolean

What is the issue with that?

Ah sorry about that, it should read:

if(getPressureSwitchValue.get() == true)

Build succesful now thanks a bunch I’ll be able to actually test this later today

Run the compressors off a regular 12V relays powered from breakers on the PDB. Each compressor on a different circuit. Switch the relays from the PCM compressor output. Obvously an offseason thing. Or Just get a compressor sized for what you need.

1 Like

Why are you toggling the relay on and then off every iteration? I don’t know what the code before the if statement accomplishes at all.