// Section 01

Pneumatics in VRC 💨

What pneumatics are, whether your team should use them, and the difference between the new V5 kit and the legacy system.
⚡ Engineer · Beginner–Advanced 🏎 Driver · Know the budget 📊 Strategist · Game decision
VRC Pneumatics system flow Bike Pump Schrader valve TANK 100 PSI max max 2 per robot Pressure Regulator Solenoid 3-wire ADI port V5 Brain signal Cylinder 25/50/75mm linear motion Mechanism moves air flows: pump → tank → regulator → solenoid → cylinder → mechanism

Should Your Team Use Pneumatics?

✓ Use pneumatics when
  • You need fast two-position motion (open/close, up/down)
  • You are out of motors and need actuation
  • Mechanism only fires 5–15 times per match
  • Speed of actuation matters more than force control
  • PTO — sharing motors between drive and hang
✗ Avoid pneumatics when
  • You need variable position (not just two endpoints)
  • You fire more than ~30 times per match
  • Your build quality cannot guarantee leak-free joints
  • You have not budgeted the air cost
  • A motor would do the same job

New V5 Kit (276-8750) vs Legacy

Feature V5 Kit 276-8750 (2023+) Legacy (pre-2023)
Tank size 200mL aluminum 1.5" × 4" legacy tank
Cylinders included 25mm / 50mm / 75mm 200mm stroke only
Solenoid type Double-acting only Single OR double-acting
Tubing cutter ✓ Included Not included
SMC equivalents legal? ✗ No SMC equivalents ✓ SMC equivalents legal
Mix kits on same robot? ✓ Yes — interchangeable per game manual
Known issues Schrader valve leak (see Leak Diagnosis tab) Older solenoids wear out

Game Manual Rules (R22)

■ Max 2 reservoirs per robot. Both new 200mL tank and legacy tank are legal.
■ Max 100 PSI. Cannot exceed — inspectors will check.
■ No limit on number of cylinders — only on reservoirs.
Cannot use extra tubing/cylinders solely for air storage — violation of R22 spirit.
No modifications to pneumatic components. Hand-tighten only — tools damage O-rings.

Video Resources

🎦
VEX Library — Understanding the V5 Pneumatics Kit
Official component breakdown with diagrams. Best starting point for the new kit. VEX Robotics.
🎦
VEX Library — Example System Configurations
One-cylinder and two-cylinder setup guides with wiring. Follow after reading component overview.
🎓
Purdue SigBots Wiki — Pneumatics
Community-written breakdown of all three subsystems (Air Storage, Air Control, Cylinders) with PROS programming notes.
💻
VEX Library — Coding the V5 Pneumatics Kit
Official guide: configuring solenoid as Digital Out, Blocks + Python + C++ examples. Read after build is done.
// Section 02
Build Practices That Save Air
The biggest air losses in VRC robots are not from activations — they are from slow leaks in the tubing, connections, and fittings. A robot that loses 10 PSI overnight has a leak. Find it before competition day.

Tubing Best Practices

✅ Do This
Cut tubing with a sharp, clean cut perpendicular to the tube — use a razor blade or dedicated tube cutter. An angled or crushed cut does not seat properly and leaks.
Push tubing fully into fittings until it stops. You should feel resistance and hear a slight click. Pull gently to confirm it is locked.
Route tubing with gentle curves. Kinks restrict flow and stress the tube wall at the bend.
Use zip ties or cable clips to secure tubing to the frame at regular intervals. An unsecured tube can be snagged and disconnected mid-match.
Keep tubing as short as possible — every inch of tube between the solenoid and the piston is dead volume that must be pressurized on each activation.
❌ Never Do This
Cut tubing at an angle or with scissors that crush the tube — creates a leak point that is invisible until pressure is applied.
Reconnect tubing to a fitting more than 2–3 times. The push-to-connect mechanism wears and loses grip. Replace the fitting if it has been reconnected many times.
Route tubing across sharp metal edges without protection. The tube will abrade and eventually develop a slow leak.
Leave excess tubing loose and coiled. Coils add dead volume and create snag points.
Use more tubing length than necessary “just in case” — this adds dead volume that costs air on every cycle.

Leak Detection

Fill the system to working pressure and listen carefully — you can often hear a slow hiss. For small leaks that are not audible, apply a small amount of soapy water to each fitting and connection. Bubbles indicate a leak. Fix the source before any competition.

⚠️
Fill your system and let it sit for 30 minutes. Check the pressure gauge before and after. Any measurable pressure drop means there is a leak. A perfect system holds pressure indefinitely when no solenoids are commanded.

Choosing Piston Bore and Stroke

Select the smallest piston that provides sufficient force for the mechanism. Many teams default to larger pistons unnecessarily:

  • Claw or latch mechanisms — typically need very little force. A 1/2" bore piston is usually sufficient. Using a 3/4" bore here wastes significant air per cycle.
  • End-game climbers — often need substantial force. Use a 1" or 1.5" bore, but since it only fires once, air consumption is not the limiting concern.
  • Intake deploy — moderate force, one activation. Either bore size works — choose based on available space.
  • Stroke length — use the minimum stroke that accomplishes the mechanism’s range of motion. A 3" stroke piston uses 50% more air per cycle than a 2" stroke piston of the same bore.

Mechanical Efficiency — Reduce Air Required per Action

  • Use lower operating pressure where possible. If the mechanism works at 60 PSI, setting the regulator to 60 PSI instead of 80 PSI means the same reservoir volume produces more activations. Test the minimum pressure at which the mechanism functions reliably, then add 10–15 PSI margin.
  • Spring-assist the retract. A single-acting piston with a physical return spring uses air only to extend. If the mechanism has enough inherent spring or gravity to retract, single-acting is significantly more air-efficient than double-acting.
  • Hard-stop the mechanism. A piston that extends to a hard mechanical stop does not need to be held at pressure — the structure holds position. This allows the solenoid to de-energize after actuation, stopping any slow solenoid leak.
// Section 03
Leak Diagnosis 🔎
Finding and fixing air leaks. The most common reason teams run out of air mid-match — including the known Schrader valve issue on the new kit.
⚡ Engineer · All Levels
⚠️
We lost a match because of an air leak. Air leaks are always preventable. Every leak has a location and a cause. This section finds it and fixes it.
Common air leak locations common leak locations — check these in order Tank Schrader valve 1 Tubing cut angle or depth 2 Fitting not fully inserted 3 Solenoid damaged O-ring 4 Cylinder exhaust port open 5 Code always firing 6 start at #1 every time — most leaks are in the first 3 locations

Leak #1 — Known Schrader Valve Issue (New Kit)

⚠️ Known issue — V5 Kit 276-8750

There is a known problem with the Schrader valve on the new 200mL tank itself leaking. Symptoms: robot loses pressure overnight, or cannot hold pressure after removing the pump. If your robot holds fine while the pump is connected but drops immediately after disconnecting, this is likely the issue.

Fix: The stem inside the Schrader valve may be bent or stuck. Try depressing the stem gently with a pen tip and releasing. If the valve is broken, attach a Shut Off Valve Fitting before the tank outlet and close it during transport — this isolates the tank and prevents bleed-off from the valve.

The VEX Forum Leak Protocol

Community-tested order of operations from VEX Forum. Follow exactly — do not skip to step 3 if you have not done step 1.

1
Cut the tube straight — perpendicular only

An angled cut is the most common leak cause. The end of the tube makes the seal inside the fitting. If it is cut at an angle, one side of the tube does not contact the fitting bottom and air escapes. Use the included tubing cutter (new kit) or a razor blade. Even 1–2mm of re-cut fixes most leaks.

2
Push tube all the way to the bottom of the fitting

Half-inserted tubing is a very common beginner mistake. The tube must touch the very bottom of the fitting — you will feel a slight resistance when it seats. If it only goes in halfway, air leaks between the tube end and the fitting interior.

3
Finger-tighten fittings only — never use pliers

O-rings on the fittings create the seal. Over-tightening with tools crushes the O-ring and causes a bigger, unfixable leak. Hand-tight is correct. If it still leaks after hand-tightening, the O-ring is missing or damaged — not a tightening problem.

4
Listen and feel — isolate the section

Pressurize to 100 PSI. Listen for hissing. Feel joints with your hand — a leak will create a noticeable airflow. Isolate by section: disconnect tubing after the tank, then after the regulator, then after the solenoid, until the leak disappears. The last section you disconnected contains the leak.

5
Check the solenoid exhaust ports

If the solenoid exhaust ports (labeled R) are blocked by zip ties, the cylinder cannot move and air bleeds constantly. Reposition any zip ties that cover the exhaust. Never tape over exhaust ports.

6
Check your code — rising-edge detection required

If your code polls get_digital() in a loop without edge detection and a double-acting cylinder fires continuously while the button is held, you will drain the tank in seconds. See the Programming tab.

Overnight Leak Test

✓ Standard Practice — Do This Weekly

Fill to 100 PSI at end of practice. Record the pressure on the gauge. Check again next day. If you lost more than 5 PSI overnight — you have a slow leak. Find it before competition week.

A robot that loses 10 PSI overnight has a significant leak. At competition, that robot will run out of air by match 3.

// Section 03
Electronics and Wiring
Pneumatic solenoids are controlled by the V5 Brain through the 3-wire ADI ports. Getting the wiring right prevents the solenoid from staying open and draining your reservoir.

The Solenoid’s Role

A solenoid is an electrically-controlled valve. When powered, it opens and allows air to flow to the piston. When un-powered, it closes (or switches direction for double-acting). The solenoid itself does not store pressure — it is a gate.

  • Normally-closed (NC) solenoids — air is blocked when un-powered. The piston stays in its spring-return position by default. This is what VEX solenoids are. When the Brain is off, the piston retracts.
  • Normally-open (NO) solenoids — air flows when un-powered. Less common in VRC.
ℹ️
VEX solenoids are normally-closed. This means when you cut power (set the ADI pin to false) the solenoid closes and the piston spring-retracts. The system is safe by default — a brain crash or power cut does not leave pistons extended in an unsafe position.

ADI Port Wiring

VEX solenoids use the same 3-wire connector as other ADI sensors. Wiring is straightforward:

  • Plug the solenoid wire into any ADI port (A–H) on the V5 Brain or 3-wire expander
  • The wire has three conductors — power, ground, and signal. The connector is keyed so it cannot be inserted incorrectly
  • Polarity matters for solenoid operation — if the piston behavior seems inverted from expected, check that the connector is fully seated

Using the 3-Wire Expander

The V5 Brain only has 8 ADI ports (A–H). If you need more than 8 pneumatic or 3-wire sensor connections, use the V5 3-Wire Expander, which adds 8 more ADI ports via one smart port. Solenoid code is nearly identical — just specify the smart port in the constructor:

src/robot-config.cpp — solenoid on expander
// Solenoid on the 3-wire expander at smart port 8, ADI port A pros::ADIDigitalOut solenoid({{8, 'A'}}); // Works exactly the same as a direct Brain connection: solenoid.set_value(true); // extend solenoid.set_value(false); // retract

Solenoid Current Draw and Heat

VEX solenoids draw current continuously when energized. This is called a latching vs holding solenoid distinction:

  • Holding solenoids (VEX standard) — require continuous current to stay open. This is fine for the typical VRC use case where solenoids are toggled briefly, but avoid leaving a solenoid continuously energized for minutes — it generates heat and draws battery current unnecessarily.
  • Practical implication for programming: for double-acting pistons, send a brief pulse to actuate then cut power. The piston physically locks in position due to air pressure and the closed solenoid — no need to hold the signal high. This saves battery and reduces solenoid heat. The code pattern for this is shown in the Programming section.

Cable Management for Pneumatics

  • Route solenoid cables and pneumatic tubing together — they run the same path. Zip-tie them together to keep the system tidy.
  • Leave a service loop of tubing at any moving joint — if the piston moves relative to the solenoid (e.g. a piston on a rotating arm), the tubing needs slack to accommodate the motion.
  • Mount the solenoid close to the piston — minimizes dead volume in the tubing between them.
  • Mount the reservoir in a protected location — the reservoir is the most mechanically vulnerable component. It should not be able to take a direct hit from another robot or the field perimeter.
// Section 04
Programming for Efficiency
Good pneumatics code prevents accidental activations, eliminates solenoid current waste, tracks your air budget in real time, and handles autonomous sequences cleanly.

Pattern 1 — Rising-Edge Toggle (No Repeated Firing)

The most common mistake: polling get_digital() in a loop without edge detection. If the button is held for 5 control loops (50ms), the piston fires 5 times. This wastes air and wears solenoids.

src/pneumatics.cpp — correct rising-edge toggle
// get_digital_new_press() only returns true on the FIRST frame the button is pressed // It will not re-trigger if the button is held if (master.get_digital_new_press(DIGITAL_B)) { pistonExtended = !pistonExtended; solenoid.set_value(pistonExtended); } // WRONG — fires on every loop frame the button is held: if (master.get_digital(DIGITAL_B)) { // ← don't do this for toggle pistonExtended = !pistonExtended; solenoid.set_value(pistonExtended); }

Pattern 2 — Brief Pulse for Double-Acting Pistons

For double-acting pistons, you only need a brief pulse to move the piston. Once it has traveled, the air pressure in the closed chamber holds it there without continuous solenoid power. This saves battery and prevents solenoid heat.

src/pneumatics.cpp — pulse pattern for double-acting
static bool isExtended = false; void setPiston(bool extend) { isExtended = extend; if (extend) { piston_extend.set_value(true); pros::delay(50); // 50ms pulse — piston travels fully piston_extend.set_value(false); // cut power — piston holds via air } else { piston_retract.set_value(true); pros::delay(50); piston_retract.set_value(false); } } // In opcontrol(): if (master.get_digital_new_press(DIGITAL_B)) { setPiston(!isExtended); // toggle on each press — one pulse per press }
⚠️
The 50ms pulse blocks the control loop. For driver control code, call setPiston() only when needed (on button press, not every loop). If you need the control loop to keep running during the pulse, use a PROS Task for the piston — shown in Pattern 4 below.

Pattern 3 — Air Budget Tracker on Controller Screen

Display the activation count on the V5 controller screen so the driver can see remaining air budget during the match:

src/pneumatics.cpp — activation counter with display
static int activationCount = 0; const int MAX_ACTIVATIONS = 12; // your tested safe limit void firePiston(bool extend) { if (activationCount >= MAX_ACTIVATIONS) { // Out of budget — warn driver, do not fire master.rumble("---"); // triple buzz = out of air return; } activationCount++; setPiston(extend); // Update controller screen master.print(2, 0, "Air: %d/%d ", activationCount, MAX_ACTIVATIONS); } // Reset counter at the start of each run in initialize() activationCount = 0;

Pattern 4 — Non-Blocking Piston Task

For autonomous sequences where you need the drive to continue while a piston fires, use a PROS Task:

src/autons.cpp — piston fires without blocking drive
void pulsePistonTask(void* param) { piston_extend.set_value(true); pros::delay(50); piston_extend.set_value(false); } // In autonomous — piston fires while drive continues: pros::Task(pulsePistonTask); // fire piston on background thread chassis.pid_drive_set(-8, 80); // drive back simultaneously chassis.pid_wait();

Pattern 5 — Deploy-Once at Match Start

The most air-efficient pattern of all. Deploy the mechanism once at the start of driver control, and it never fires again:

src/main.cpp — deploy intake on first driver control frame
static bool deployed = false; void opcontrol() { while (true) { // Deploy intake on the very first loop of driver control if (!deployed) { intake_deploy.set_value(true); // extends and stays extended deployed = true; } // ... rest of driver control code chassis.opcontrol_tank(); pros::delay(ez::E_TASK_DELAY); } }
Single-acting + deploy-once is the gold standard for intakes. One reservoir, one activation, mechanism stays deployed the entire match. You have used 1 of your ~15–25 available activations and your intake is always ready. No air anxiety for the rest of the match.
// Section 01
Understanding Your Air Budget
Every pneumatic system on a VRC robot starts each match with a fixed volume of compressed air. You cannot refill during the match. Every activation costs air. Running dry means your mechanism becomes dead weight.
🚫
Running out of air mid-match is a design failure, not bad luck. Teams that run dry almost always know they are close to the limit during testing but assume it will be fine at competition. It will not be fine. Design for 20–30% margin above your tested activation count.

What Determines Air Capacity

  • Number of reservoirs — VRC allows up to two air reservoirs per robot. Each adds to your total volume. Most teams run two for maximum capacity.
  • Fill pressure — reservoirs are filled to 100 PSI before each match via the fill valve. This is the maximum allowed and the starting pressure inspectors verify.
  • Piston bore and stroke — larger bore pistons (more area) consume more air per cycle. Longer stroke pistons consume more volume per cycle. A 3/4" bore piston uses significantly more air than a 1/2" bore piston.
  • Operating pressure — the pressure regulator limits the working pressure delivered to the solenoid. Lower operating pressure = more activations from the same reservoir volume. Typical VRC operating pressures are 60–80 PSI.

Estimate Your Air Budget

⚙️ Air Budget Estimator
Number of reservoirs: tank(s)
Piston bore size:
Piston stroke length: inches
Number of pistons: piston(s)
Safety margin: %
Enter values above

Air Budget by Mechanism Type

MechanismTypical Activations / MatchAir Risk
End-game climber / hang1–2 totalVery Low — set and forget
One-shot game element release1–3 totalLow — designed to be minimal
Pneumatic claw (toggle-open/close)4–10 per matchMedium — count carefully
Rapid-fire launcher / indexer10–30+ per matchHigh — requires two reservoirs, minimal bore
Intake deploy / unfold1–2 (deploy once, stays open)Low if single-acting
🏆
The most air-efficient design is one that deploys once. An intake that pneumatically unfolds at the start of driver control and stays open for the entire match uses almost no air. A claw that toggles open/closed ten times per match uses ten times more. Design your pneumatics to fire as few times as necessary to accomplish the mechanism’s purpose.
// Section 07
By Role 🏎🧰📊
What each role needs to know about the pneumatic system — before, during, and after a match.
🧰
Engineer
Builds & Maintains
Before competition week
  • ✓ Leak test overnight (lose <5 PSI)
  • ✓ All tubing secured, no pinch points
  • ✓ Solenoid exhaust ports clear
  • ✓ Know your activation count
At competition
  • ✓ Fill to 100 PSI at pit
  • ✓ Bring your own pump
  • ✓ Spare tubing in pit box
  • ✓ Know which port is which solenoid
If a leak appears at competition: Re-cut the tube end (1–2mm), re-insert to bottom of fitting. Do not use tape or glue — both are illegal modifications. If the solenoid is leaking, swap with a spare solenoid from the pit box.
🏎
Driver
Uses & Conserves

You control when pneumatics fire. The engineer calculated the budget — your job is to stay inside it. Each activation costs real air that does not come back.

Know your budget
  • ● Ask: how many activations per match?
  • ● Count every press during practice
  • ● Know when you are near the limit
  • ● Single tank: ~20–40 actuations max
At :30 seconds
  • ● Is there enough air for endgame?
  • ● Do not use endgame air for scoring
  • ● Tell your caller if air is low
  • ● Confirm mechanism extends before queue
If mechanism stops responding mid-match: You are likely out of air. Switch to backup strategy immediately. Tell your engineer so the pit fill is the first priority after the match.
📊
Strategist
Decides When to Use It

Pneumatics is a strategic resource. Some mechanisms only justify using air in certain match situations. The strategist needs to understand the air budget and call accordingly.

Scouting other teams
  • ● Does the opponent use pneumatics?
  • ● What mechanism does it power?
  • ● Do they run out mid-match?
  • ● Can we exploit their air budget?
Match planning
  • ● Reserve air for endgame — always
  • ● Is pneumatic mechanism worth the activation?
  • ● Call time at :30 to protect endgame air
  • ● Alliance partner: do they have pneumatics too?
// Section 08
Checklist & Notebook ✅
Pre-match pneumatics checklist, notebook entry guide, and what judges want to see about your pneumatic system.
⚡ Engineer · Build 🏎 Driver · Competition day 📝 All · Notebook

Pre-Match Pneumatics Checklist

Run through every item before queue. Pneumatic failures at competition are almost always preventable.

Notebook Documentation Guide

Judges expect to see your pneumatic design decisions documented. Here is what strong notebook entries include at each phase.

Kickoff / Design Phase
  • ● Why pneumatics over a motor? What tradeoffs did you consider?
  • ● Which mechanism does it power and why is two-position actuation sufficient?
  • ● Decision matrix comparing pneumatics vs motor solution
  • ● New V5 kit or legacy? Why?
Build Phase
  • ● System diagram (can use the SVG diagram above as reference)
  • ● Air budget calculation — how many actuations per match at what PSI?
  • ● Single vs double acting — which did you choose and why?
  • ● Mounting approach — how is the cylinder secured to the chassis?
  • ● Tubing routing — how does it avoid pinch points and moving joints?
Testing & Iteration
  • ● Overnight leak test results with dates
  • ● Actual activation count vs budgeted count
  • ● Any leaks found — where, how fixed, and date
  • ● Code iteration — what edge cases did you have to handle?
Competition Reflection
  • ● Did the system work as expected?
  • ● If you had a failure — what was the root cause and what did you change?
  • ● Would you use pneumatics again next robot? Why or why not?
// Section 09
Interview Quiz 🎓
Practice answers for judge interviews. Know the why behind every pneumatics decision your team made.
📊 Strategist · Notebook writer · All

Judges will ask about your pneumatic system if it is visible on the robot. These are the most common questions. Practice answering them in 30 seconds or less.

💡
Tip: The best interview answers connect the technical decision to the design process. Do not just say what you chose — say why you chose it, what you considered, and what you learned. Judges score the reasoning, not the answer.
← ALL GUIDES