No compressor control

We connected the compressor vis in LabView, connecting the Open vi to module 4, DIO 2, and relay 1. The Pressure limit switch plugs into DIO2. A spike relay plugs into relay 1. On power on, the spike lights red, and the compressor does not turn on. The spike is OK - I connected a battery to the control inputs, and the relay lights green, and the compressor starts. The Open vi connects to a Run vi, which connects to the Close vi. The Run vi is in a while loop that runs every 100 msec.

I expect the spike to close, show a green LED, and start the compressor when I run the program. What am I doing wrong?

Found the problem - cockpit problem. The Driver Station had been set inadvertently to disabled.

pardon my ignorance here, what is “module 4”?

I think that he meant “slot 4” or, in other words, the 4th slot in the cRIO chassis starting with the slot nearest the Ethernet/power jacks.


so…He’s really just plugging the pwm cables to the digital side car? In the open Vi, is there a “module 4,” or is he making his connections in the labview program to the digital inputs and relays?
In the past we have always wired the black and white wires of the pwm to the pressure switch. Should this still work?

It will work perfectly well. It will also be illegal. <R61> is most applicable:

<R61> Every speed controller, relay module, and servo shall be connected via PWM cable to the Digital Sidecar, and be controlled by signals provided from the Mobile Device Controller via the Digital Sidecar. They shall not be controlled by signals from any other source.
To the best of my knowledge, it has always been thus. I’m surprised you’ve been passed through inspection with that setup on your robot in years prior. I’m also surprised no one noticed your robot merrily pumping away on the compressor while it was disabled…

EDIT:Also, to Peter H,
If you’ve updated to the lastest version of the WPI libraries, you shouldn’t have a “Run” vi for the compressor. There should be a “Start” vi. You only have to execute this vi ONCE. The “Open” vi spawns a completely separate process that runs in its own loop. The “Start” vi instructs this process to start running the compressor whenever it sees the pressure switch close. The “Stop” vi similarly tells this process to stop running the compressor. And the “Close” vi both stops the compressor and kills this process.

You’re not hurting anything if you’re executing the “Start” vi in every loop… but you’re wasting some small amount of processor cycles that you don’t need to.

What’s wrong with his wiring? Isn’t he just connecting the Nason pressure switch to a digital input on the Digital Sidecar? I thought that he meant “black and wire wires of the pwm CABLE to the pressure switch”.


Apologies. I read it as connecting the black and white wires of a PWM directly to a relay. In hindsight, this wouldn’t work anyways, as the spikes expect a 5V signal there, not a simple contact closure. Your interpretation is probably the correct one. I suppose the root of the problem is that we often use “PWM” cables for darn near all the signal wiring on the robot. So just talking about a PWM cable provides zero context as to where it might be connected.

How do I update to the latest version of the WPI libraries for Labview? We weren’t able to find an existing compressor program so we just wrote our own (unsuccessfully of course). When I go to the WPILib website I see this Current version with Vex and FRC 2004-2007 support.

Your one stop shop for most things about the control system:
FRC Control System Page

The labview update is linked as “FRC Labview Update” If you haven’t done so, you’ll also need to follow the procedure for the Driver Station update.

We ran the update but it was the 2.0 version. We’ll re update to the 3.0 and see what we get. Thanks