Learn

Inside an FRC robot

Every robot comes from three subteams working at once. Here are the real tools, parts, wiring and code we use, so you know exactly what you’d be doing on the team.

Robot weight
115 lb
Frame perimeter
110 in
Starting height
30 in
Battery
12 V

Limits from the 2026 game manual. FIRST updates them every season at kickoff.

An FRC field set up in a gym, with robots, game pieces and the driver stations
A district event field, ready for the next match
01 · Mechanical

Design it, build it, break it, fix it

Mechanical turns the game into a machine: a drivetrain to move, mechanisms to score, and a frame that survives full-speed hits.

A colour-coded CAD model of a robot assembly in Onshape
A robot assembly modeled in CAD
CAD first

Every part exists on screen before it’s cut

We design in Onshape, professional CAD that runs in a browser and is free for FIRST teams. Everyone can work on the same robot at once, and every change is saved in its history.

You sketch a part in 2D, extrude it into 3D, then put parts together in an assembly to check clearances and motion. Plates export straight to the CNC router; tube gets a drawing with every hole marked.

Other teams use SolidWorks or Fusion. The skills transfer: it’s the same ideas of sketches, features and assemblies.

  1. 01

    Strategy

    Read the manual and decide what the robot must do, and what it will skip.

  2. 02

    Sketch

    Whiteboard ideas, then rough geometry: reach, heights, angles.

  3. 03

    Prototype

    Wood, polycarb and drills. Prove a mechanism works before it’s pretty.

  4. 04

    CAD

    Model every part and the whole robot so it all fits before anything is cut.

  5. 05

    Manufacture

    Cut, drill, CNC and 3D print parts from the CAD, then assemble.

  6. 06

    Test & iterate

    Drive it, break it, find out why, and make version two.

Drivetrain

Swerve: every wheel steers on its own

Most competitive robots now use swerve drive. Each corner has a module with two motors: one spins the wheel, the other turns it. The robot can drive any direction while facing any other direction.

Teams buy modules off the shelf from vendors like Swerve Drive Specialties, West Coast Products or REV, then build the frame around them. A simpler tank drive (wheels on each side, like a tank) is a great first drivetrain and much easier to program.

A square swerve drive chassis with a module at each corner and the electronics on a board in the middle
A swerve chassis: one module in each corner

What a robot is made of

Frame & structure

6061 aluminum box tube, usually 2×1 in with 1/16 or 1/8 in walls. Light, stiff and easy to drill.

Plates & guards

Aluminum plate for gussets and gearbox plates, polycarbonate where parts need to flex or be seen through.

Power transmission

1/2 in hex shafts, bearings, gears, belts and chain. Gear ratios trade speed for torque.

Fasteners

#10-32 bolts with nylon-insert lock nuts, and 3/16 in aluminum rivets for frames that stay put.

3D printed parts

PETG, nylon and carbon-fiber nylon for spacers, brackets and custom shapes that would take hours to machine.

Motors

Brushless motors such as the Kraken X60 and NEO Vortex, each driven by its own motor controller.

Do the math

How fast will it drive?

Gear ratios are where mechanical meets physics. A motor spins about 6,000 RPM with no load, far too fast for a wheel, so a gearbox slows it down and multiplies the torque.

  1. Motor free speed6,000 RPM
  2. ÷ 6.75 : 1 gear ratio889 RPM at the wheel
  3. × 4 in wheel (π × 4 = 12.6 in per turn)≈ 15.5 ft/s
  4. Real world, with friction and weight≈ 12–13 ft/s
An FRC robot with blue bumpers showing its team number, on the field during a match
Bumpers in alliance colour, with the team number
Mechanisms

The parts that actually play the game

  • Drivetrain. Swerve or tank. Moves the robot and takes every hit.
  • Intake. Rollers with soft, grippy wheels pull game pieces off the floor.
  • Elevator. Stages on bearings, lifted by belts or rope, to reach high goals.
  • Arm / pivot. A heavily geared joint that swings a scorer into position.
  • Shooter. Flywheels spun to an exact speed so every shot lands the same way.
  • Climber. Hooks and winches that lift the robot at the end of a match.
  • Bumpers. Required padding of pool noodles on a plywood backing, covered in red or blue fabric, so robots can hit each other safely.
In the shop

Tools you’ll learn to use

  • Bandsaw and miter saw for cutting tube to length
  • Drill press and hand drills for holes, rivets and bolts
  • CNC router for aluminum and polycarbonate plates from CAD
  • 3D printers for brackets, spacers and prototypes
  • Lathe and mill for shafts, spacers and precision parts
  • Safety glasses on, every time, for everyone in the shop
02 · Electrical

Power, protection and a lot of wire

Electrical takes one 12 V battery and safely feeds a dozen or more motors, a computer, a radio and sensors, through wiring that has to survive a full season of hits.

MMMMBattery12 V · 18 Ah+−SB50Main breaker120 APower DistributionHub404040401010CAN terminator onMotor controllerCAN ID 1Motor controllerCAN ID 2Motor controllerCAN ID 3Motor controllerCAN ID 4SystemcoreRobot controllerRadioTo the field6 AWG main powerCAN bus12 AWG · 40 A each18 AWG · 10 AEthernetPositiveNegativeCAN high / low
How a 2027 robot is wired. Power flows left to right through the main breaker and the Power Distribution Hub; the CAN bus links the controller to every motor controller.

The parts on every robot

Every FRC robot has the same core control system, so these are the first parts you’ll learn.

12 V battery

One sealed lead-acid battery, 17–18.2 Ah and about 13 lb. Teams bring a cart of them, charged between matches.

120 A main breaker

The robot’s master switch and its biggest fuse. It must be easy to reach from outside the robot.

Power Distribution Hub

Splits battery power into protected channels, each with its own breaker, and reports current over CAN.

Systemcore

The new robot controller for 2027, replacing the roboRIO. A Raspberry Pi CM5 with five CAN buses, Smart I/O, USB and Ethernet.

SPARK MAX

A REV motor controller. It turns small CAN messages into the high current that spins a NEO motor.

Talon FX

CTR Electronics’ motor controller, built right into motors like the Kraken X60. Power and CAN wire straight to the motor.

Robot radio

Links the robot to the field and the Driver Station over Wi-Fi. Powered from its own protected PD channel.

Robot Signal Light

Required orange light. Solid means powered and disabled; flashing means the robot is enabled and can move.

Wire gauge

Thicker wire for bigger current

The breaker on a circuit decides the smallest wire you’re allowed to use. Too thin and it heats up under a stalled motor. AWG numbers run backwards: smaller numbers are thicker wire.

CircuitProtected byMinimum wire
Main power path120 A main breaker6 AWG
Drive and mechanism motors31–40 A breaker12 AWG
Smaller motors21–30 A breaker14 AWG
Controller, radio, sensors6–20 A breaker18 AWG
CAN and signal wiringSignal level28 AWG (22 typical)

From the 2026 robot rules (R609 and R622). Always check the current season’s manual.

An electronics board with the main breaker, a REV Power Distribution Hub, four SPARK MAX motor controllers, a roboRIO and a radio, all wired
A practice board. In 2027, Systemcore takes the roboRIO’s place

What wiring actually looks like

The steps you’ll do yourself, from bare wire to a board that’s ready for inspection.

1

Crimp, then bolt

Big 6 AWG wires get crimped copper lugs that bolt onto the main breaker. Tight, then check again.

2

Cover every terminal

Heat shrink and rubber boots over the breaker studs, so a loose bolt can’t short against the frame.

3

Strip and lever in

Strip about 1/2 in of insulation, open the PDH lever, push the wire home and close it. Tug to check.

4

One breaker per channel

Each motor channel gets a 40 A breaker. If a mechanism jams, its breaker trips, not the whole robot.

5

Chain the CAN bus

Yellow and green CAN wires daisy-chain from device to device, with a terminator at each end of the chain.

6

Tie it down

Zip-tie runs to the board, keep wires away from moving parts, and leave slack so hits don’t pull them out.

Rules of thumb

Wiring that passes inspection

  • Red is positive and black is negative, everywhere, no exceptions.
  • Only one wire goes into each PD terminal. Splice before the terminal if you need more.
  • The frame must never carry current. Inspectors check for more than 120 Ω between power and frame.
  • Label both ends of every wire with the device and CAN ID.
  • Pull-test every crimp and every lever connection.
  • Leave a service loop, so a part can come out without rewiring.
03 · Programming

Code that makes it all move

Programming connects the driver to the motors, and makes the robot drive itself during the autonomous period at the start of every match.

  1. Driver

    Xbox-style controllers

  2. Driver Station

    Laptop app: enable, modes, logs

  3. Radio

    Field Wi-Fi to the robot

  4. Systemcore

    Runs our robot code

  5. CAN bus

    Commands out, sensor data back

  6. Motors

    Controllers drive the motors

Visual Studio Code with the WPILib command menu open
VS Code with the WPILib extension
The toolkit

Java, WPILib and VS Code

FRC robots are programmed with WPILib, the official library that handles controllers, motors, sensors and math. It installs a ready-to-go copy of VS Code with commands to build, deploy to the robot and simulate.

We write Java, the most common language in FRC. WPILib also supports C++ and Python. Motor vendors add their own libraries: REVLib for SPARK controllers and Phoenix 6 for Talon FX.

Real robot code, simplified

Most teams use WPILib’s command-based style. A subsystem owns the hardware; a command says what to do with it; the RobotContainer ties buttons to commands.

subsystems/Intake.java
public class Intake extends SubsystemBase {
  // "Motor" stands in for your vendor's class, e.g. SparkMax or TalonFX
  private final Motor roller = new Motor(5); // CAN ID 5

  /** Spin the rollers while the command runs, stop when it ends. */
  public Command run() {
    return startEnd(() -> roller.set(0.8), () -> roller.set(0));
  }
}
RobotContainer.java
public class RobotContainer {
  private final CommandXboxController driver = new CommandXboxController(0);
  private final Intake intake = new Intake();

  public RobotContainer() {
    // Hold the right trigger to intake; let go to stop
    driver.rightTrigger().whileTrue(intake.run());
  }
}

Subsystems and commands

Each mechanism is a subsystem that owns its motors. Commands are actions (“intake”, “raise to high”) that use subsystems, and only one command can control a subsystem at a time.

Vision with AprilTags

The field has printed AprilTags at known spots. A camera that sees one tells the robot exactly where it is on the field.

Logging and replay

AdvantageScope plays back every match log: what each swerve module was told to do and what it actually did.

Control loops

Getting an arm to exactly 90°

Telling a motor “go” isn’t enough. A PID controller compares where the arm is with where it should be, every 20 ms, and pushes harder the further off it is. A feedforward term adds the push needed just to hold the arm up against gravity.

Arm control
PIDController pid = new PIDController(0.08, 0, 0.002);

// Every 20 ms: how far are we from the target, and how hard should we push?
double output = pid.calculate(arm.getAngleDegrees(), 90);
arm.setVoltage(output + feedforward);

The robot loop

Robot code runs about every 20 ms: read sensors, decide, set motor outputs, repeat.

PID + feedforward

Control loops that move an arm to an exact angle and hold it there under load.

Odometry

Wheel encoders and a gyro track the robot’s position as it drives.

Autonomous paths

PathPlanner or Choreo draw a path; the robot follows it with no driver at all.

Simulation

Run the robot code on a laptop with a simulated robot before hardware exists.

Git & code review

Every change goes through GitHub, so nobody breaks the robot the night before an event.

The FIRST Driver Station app, showing OpModes, the enable and disable buttons, and battery and connection graphs
The 2027 Driver Station: pick a mode, enable, watch battery and connection live
Keep learning

Where we learn from

The same free resources every FRC team uses. Start anywhere.

No experience needed

Want to learn this for real?

We teach all of it from the ground up, on a real robot, with mentors who do it for a living.