Electrical & Electronics Guide

Learn to wire and configure your FRC robot's electrical system safely and correctly

Step 1

FRC Electrical Components

Understanding the main electrical components is crucial. These are the core parts of every FRC robot.

Essential Components:

🔋 12V Battery

  • 18Ah sealed lead-acid battery (SLA)
  • Powers entire robot
  • Must be secured in robot with approved battery backer
  • Charge fully before each match!

⚡ Power Distribution Hub (PDH)

  • REV Robotics PDH (current standard)
  • Distributes power from battery to all components
  • Multiple power channels with different current limits
  • Built-in current monitoring
  • CAN bus connectivity

🤖 roboRIO 2.0

  • Main robot controller (brain)
  • Runs your robot code
  • Connects to Driver Station via WiFi or Ethernet
  • Has PWM, DIO, Analog, I2C, SPI ports
  • Power: 12V, 2A max from PDH

📡 Radio (OpenMesh OM5P-AN or AC)

  • Wireless communication between robot and Driver Station
  • Must be programmed with your team number
  • Powered by Voltage Regulator Module (VRM) or POE injector

🔌 Voltage Regulator Module (VRM)

  • Converts 12V to 12V/2A and 5V/2A
  • Powers Radio, cameras, LEDs
  • Critical for stable radio connection

⚠️ Safety First!

  • ALWAYS disconnect battery before wiring
  • Check polarity - red (+) and black (-)
  • Use proper wire gauges for current loads
  • No exposed wire - use heat shrink or electrical tape
Step 2

Power Distribution Setup

The PDH is the heart of your electrical system. All power flows through it.

PDH Channel Types:

  • High Current Channels (40A) - Channels 0-9, 12-21 - Use for motors
  • Low Current Channels (15A) - Channels 10-11, 22-23 - Use for PCM, VRM, etc.

Wiring Steps:

  1. Mount PDH Securely

    Use 4 screws to mount PDH to robot frame. Keep it accessible but protected!

  2. Connect Battery

    Use 6 AWG red (+) and black (-) wire. Connect to main power terminals on PDH.

    • Strip 20mm of wire insulation
    • Insert into Wago connector and close lever
    • Tug test - wire should not pull out!
  3. Install 120A Circuit Breaker

    REQUIRED for safety! Goes between battery and PDH. Protects against short circuits.

  4. Connect roboRIO Power

    Use a dedicated channel (typically channel 22 or 23). Use 18 AWG wire, strip 12mm.

  5. Label Everything!

    Use label maker or tape. Note which channel powers which device. This saves hours of troubleshooting!

🔌 Wire Gauge Guide

  • 6 AWG - Battery to PDH (main power)
  • 10 AWG - High current motors (30-40A)
  • 12 AWG - Medium motors (20-30A)
  • 18 AWG - Light loads, roboRIO, VRM
  • 22 AWG - Signal wires, sensors
Step 3

RoboRIO & Control System

The roboRIO is your robot's brain. It runs your code and coordinates all systems.

roboRIO Connections:

  1. Power Connection

    Connect 12V from PDH to roboRIO power input. Use proper polarity!

    • Red wire to V+ terminal
    • Black wire to ground (GND) terminal
  2. Radio Connection (Ethernet)

    Connect roboRIO to radio using CAT5e/CAT6 Ethernet cable. This enables wireless programming and control.

  3. CAN Bus Connection

    Yellow and Green twisted pair connects roboRIO to PDH and motor controllers.

  4. Image the roboRIO

    Before first use, image roboRIO with latest firmware using roboRIO Imaging Tool (Windows only).

    roboRIO Imaging Guide

🔍 roboRIO Ports Overview

  • PWM (0-9) - Motor controllers (non-CAN), servos
  • DIO (0-25) - Digital sensors (limit switches, encoders)
  • Analog In (0-3) - Analog sensors (potentiometers, ultrasonic)
  • CAN - SPARK MAX, Talon FX, PDH, PCM
  • I2C, SPI - Advanced sensors (gyros, cameras)
Step 4

CAN Bus Wiring

CAN (Controller Area Network) allows devices to communicate digitally. It's how motor controllers send data back to roboRIO!

CAN Bus Basics:

What is CAN Bus?

  • Two-wire communication (Yellow + Green twisted pair)
  • Bi-directional - devices can send AND receive data
  • Daisy-chain topology (one device to next)
  • Requires 120Ω termination resistors at BOTH ends

Wiring CAN Bus:

  1. Start at roboRIO

    roboRIO has built-in 120Ω termination. This is one end of your CAN bus.

  2. Daisy-Chain to PDH

    Connect roboRIO CAN to PDH CAN port. Use yellow to yellow, green to green.

  3. Connect Motor Controllers

    From PDH, daisy-chain to each SPARK MAX or other CAN motor controller.

    • Order doesn't matter on CAN bus
    • Keep wires short and organized
  4. Terminate at Last Device

    PDH has built-in termination if it's the last device. Otherwise, add 120Ω termination resistor!

⚠️ Common CAN Bus Mistakes

  • No termination resistors - causes communication errors
  • Swapped yellow/green wires - won't work!
  • Star topology instead of daisy-chain - unreliable
  • Loose connections - causes intermittent failures

💡 CAN Device IDs

Remember: Each CAN device needs a unique ID (1-62). You set these in REV Hardware Client or Phoenix Tuner!

Step 5

Motor Controllers & PWM

Motor controllers regulate power to motors. Modern controllers use CAN, but PWM is still used for some devices.

Common Motor Controllers:

⚡ SPARK MAX (REV Robotics)

  • CAN or PWM control
  • Controls NEO brushless or brushed motors
  • Built-in encoder support
  • Data port for USB configuration

🦅 Talon FX (CTRE)

  • CAN bus only
  • Integrated with Falcon 500 motor
  • High-performance for drivetrains

Connection Methods:

  1. CAN Connection (Recommended)

    Connect motor controller to CAN bus as described in Step 4. This allows:

    • Reading encoder values
    • Current monitoring
    • Temperature sensing
    • Advanced control modes (PID, Motion Profiling)
  2. PWM Connection (Legacy)

    Connect 3-pin PWM cable from motor controller to roboRIO PWM port (0-9).

    • Simpler but limited - no feedback!
    • Good for servos, simple motors
  3. Power Connection

    ALL motor controllers get power from PDH channels. Match wire gauge to motor current draw!

🎨 Color Coding

Standard wire colors for motor controllers:

  • Red - Positive (+) power
  • Black - Ground (-)
  • Yellow - CAN High
  • Green - CAN Low
Step 6

Pneumatics System

Pneumatics use compressed air for fast, powerful linear motion. Great for grippers, shifters, and extending mechanisms!

Pneumatic Components:

💨 Compressor

  • Fills air tanks to 120 PSI max
  • Powered by Spike relay or motor controller
  • Controlled by Pneumatic Control Module (PCM)

🗜️ Air Tanks

  • Store compressed air
  • Typically 2 tanks (0.5L each)
  • Must be securely mounted

🎛️ Pneumatic Control Module (PCM)

  • Controls solenoid valves
  • Connects via CAN bus
  • 8 solenoid channels
  • Automatically manages compressor

🔧 Solenoid Valves

  • Single solenoid - one direction control
  • Double solenoid - both directions controlled
  • Electronically switches air flow to cylinders

Pneumatics Setup:

  1. Install Pressure Relief Valve

    REQUIRED for safety! Set to 125 PSI. Prevents over-pressurization.

  2. Connect Air Tanks

    Use approved pneumatic tubing. Connect tanks in parallel for more capacity.

  3. Mount PCM and Connect to CAN

    PCM gets power from PDH and data via CAN bus. Set unique CAN ID!

  4. Wire Compressor

    Compressor connects to PCM compressor output. PCM automatically turns on/off to maintain pressure.

  5. Connect Solenoids and Cylinders

    Solenoids plug into PCM (0-7). Pneumatic tubing connects solenoids to cylinders.

⚠️ Pneumatics Safety

  • NEVER exceed 120 PSI
  • Always install pressure relief valve
  • Check for air leaks regularly
  • Secure all tubing with zip ties
  • Wear safety glasses when working with pressurized air
Step 7

Testing & Troubleshooting

Before driving your robot, systematically test all electrical systems. Methodical testing prevents damage and competition failures!

Pre-Power Checklist:

  1. Visual Inspection
    • All wires secured (no loose connections)
    • No exposed wire or damaged insulation
    • Correct polarity on all connections
    • Battery securely mounted
  2. Continuity Testing

    Use multimeter to check for short circuits BEFORE connecting battery!

Power-On Testing:

  1. Connect Battery (Circuit Breaker OFF)

    Connect battery with circuit breaker in OFF position. Nothing should power on yet!

  2. Flip Circuit Breaker ON

    Watch for:

    • PDH LED - should be solid green
    • roboRIO - 3 LEDs (power, status, radio)
    • Radio - should boot and show lights
    • NO smoke, sparks, or burning smells!
  3. Check Driver Station Connection

    Open FRC Driver Station. Connect laptop to robot WiFi network. Should see green communications indicator!

  4. Test Motors (Wheels OFF Ground!)

    CRITICAL: Put robot on blocks or have team members hold it up. Enable robot and test each motor at LOW speed first!

Common Problems & Solutions:

🔴 roboRIO Won't Boot

  • Check 12V power to roboRIO
  • Verify correct polarity (red to +, black to -)
  • Try re-imaging roboRIO

📡 No Robot Communication

  • Check radio power and Ethernet connections
  • Verify robot is on correct WiFi network
  • Re-program radio with team number
  • Check firewall settings on laptop

⚙️ Motor Not Working

  • Check motor controller power (LEDs on controller)
  • Verify CAN or PWM connection to roboRIO
  • Check CAN ID is unique and matches code
  • Test motor controller with REV Hardware Client

🎉 Electrical System Complete!

Congratulations! You've learned the fundamentals of FRC electrical systems. Remember: good electrical practices prevent 90% of robot failures. Keep wires organized, label everything, and test thoroughly!

Additional Resources