PROGRAMMING I
Hardware Overview
HOW FRC WORKS
New game released in January
2 months to build a robot
Compete at district events, provincials and
worlds
3 phases in each game -> auto, tele-op,
endgame
Timeline
SEPTEMBER OCTOBER NOVEMBER JANUARY
REEFSCAPE Kickoff
Recruitment Continue training Finish training
Work with design to
Start training Overtime Sunday Continue tuning
start writing code
swerve
FEBRUARY MARCH APRIL MAY
Code finished Finish testing code Provincials 2025 Off-season
Tune drivetrain Comps begin Worlds⁉️
Centennial
Humber
SUBSYSTEMS
DRIVETRAIN - TANK
Parallel wheels, controlled
separately
One side moves slower to turn
DRIVETRAIN - SWERVE
Square chassis
Wheels on each corner
2 motors per wheel, 8 motors total
Wheels can rotate in place as well
as spin
Field-oriented control (FOC)
TANK SWERVE
+ 🤑 + Faster
+ Easier to program & build + Better maneuverability
+ Easier to drive
INTAKE
Used to pick up game
pieces
Over-bumper or under-
bumper
SHOOTERS
Fixed angle, angled,
turret
HANG/CLIMBER
Motored, Pneumatic,
Single stage or multi-
stage
ARM ELEVATOR
ELECTRONICS
ROBORIO
Robot brain
Everything is wired to it
COPROCESSOR
Separate microcomputers such as
Raspberry Pis and Orange Pis are
used for vision processing
Interface with roboRIO using
ethernet
APRIL TAGS
Easily identified by vision
systems
Placed around the field
Help robot calculate its
position
POWER DISTRIBUTION HUB
Battery -> PDH -> Everything
else
RADIO
Main way to connect to robot
Connect to network or
ethernet
Ethernet only at comps
ROBOT SIGNAL LIGHT
Indicates robot state
Off: No power, RIO off, RSL not
wired
Solid: Robot on & disabled
Blinking: Robot on & enabled
GYROSCOPE
Tells us the angle of the robot
Pigeon, NavX, etc.
Must be centred on the robot
Sometimes have accelerometers to
measure distance --> UNRELIABLE
READING MOTOR CURVES
Stall Current: Max current that a motor can
draw, usually when it can’t move
Stall Torque: Max rotational force a motor can
exert, usually when it can’t move
Peak Power: Best performance without stalling
MOTORS MUST BE CURRENT-LIMITED
DRAWING STALL CURRENT CAN BURN OUT THE
MOTOR OR BROWNOUT THE ROBOT
CURRENT LIMITING
1. Look at peak power
2. Note the associated current
3. Limit current to current @ peak power, or less to
keep the motor running for longer
Current limit: ~40A
CIM/MINI-CIM
Brushed Heavy
Can take abuse Inefficient
Cheap Slow
Useful for low-to-mid
power mechanisms
BRUSHLESS MOTORS
+ Fast
+ Light
+ Efficient
- Cannot take as much abuse
- $$$$$
NEO LINE
Better than CIMs
Compact
Neo 550 < Neo 1.1 < Neo Vortex
1.1s are the most common
Magnet can fall out
Low current limit (20-40A)
Useful for most mechanisms
FALCON 500
Better than all the Neos
Used for high-power mechanisms &
drivetrains
KRAKEN X60
Best FRC motor by far
Robust
Expensive
MOTOR CONTROLLERS
Allow us to communicate with motors
Some motors only work with specific
motor controllers
Some motors have built-in controllers
SPARK MAX: runs CIMs, Victor SPX & Talon SRX:
Mini CIMs, Neo 550s & 1.1s runs CIMs & Mini CIMs
TalonFX: Built into
Krakens & Falcons
ENCODERS
Measure rotational movement
Can be used to measure distance
travelled, angle, etc.
3 main types: built-in, on-shaft,
magnetic
ENCODERS
Relative/Quadrature Encoders Absolute/Duty-Cycle Encoders
Measure number of shaft Measures angle of shaft
rotations Keeps angle through power cycle
Calculate distance, velocity
Automatically set to 0 when
robot boots
ENCODERS
All brushless motors need encoders
May or may not be reliable depending on
the motor
Neo encoders -> not good
Kraken, Falcon encoders -> pretty good
ENCODERS
Need to consider gear ratios for encoders
Big gear to small gear -> increases speed
Small gear to big gear -> increase torque
If the encoder is on the input shaft -> apply
gear ratio
CANBUS
Helps connect devices to roboRIO
All devices are assigned an ID
Devices connected in a chain --> if one
device is disconnected, the whole chain
goes down
LEARN JAVA
HOMEWORK
(Optional) Work on CodeHS
Test week 3
Review hardware slides
Install required software before
next class