Two control methods#
Motor controllers can be commanded two ways, and the choice affects wiring, capability, and debugging.
PWM (Pulse Width Modulation)#
With PWM, the roboRIO sends a single pulse signal to each controller over a 3-wire cable plugged into one of the roboRIO's PWM ports (0-9). The pulse width (typically 1.0-2.0 ms) tells the controller how fast and which direction to drive.
Pros:
- Simple and easy to understand.
- Easy to troubleshoot - one controller per port.
- No device IDs to configure.
Cons:
- One wire run per controller (lots of wires).
- No feedback data comes back to the roboRIO over PWM.
- Limited to 10 controllers (the number of PWM ports).
WPILib recommends PWM as a starting point because it is less complex and easier to debug.
CAN (Controller Area Network)#
CAN is a digital network that daisy-chains many devices on just two wires (CANH and CANL). The roboRIO, the PD, and every CAN motor controller share the same bus.
Pros:
- Far less wiring - one bus serves dozens of devices.
- Rich two-way data: the controller reports velocity, position, current, temperature, and faults.
- Advanced features: closed-loop control, motion profiling, current limiting, follower mode.
- Easier configuration through vendor tools.
Cons:
- Each device needs a unique CAN ID (set with Phoenix Tuner X for CTR, REV Hardware Client for REV).
- A single broken connection can take down everything downstream on the bus.
Which to choose?#
Most competitive teams use CAN for motor controllers to unlock current limiting and telemetry, while sometimes using PWM for a simple device like an LED blinker driver. Beginners often start with PWM and migrate to CAN as they get comfortable.
Sources#
the part worth keeping
Key takeaways
- PWM sends one pulse signal per controller over a 3-wire cable to roboRIO ports 0-9 - simple but no feedback.
- CAN is a two-wire digital bus that daisy-chains many devices and returns rich telemetry.
- CAN unlocks current limiting, closed-loop control, follower mode, and far less wiring.
- Each CAN device needs a unique ID (set via Phoenix Tuner X or REV Hardware Client).
Electrical & WiringMotor Controllers and the CAN Buslesson 2 of 3
Keep going
Take the quiz+10 XP with an accountMore in Motor Controllers and the CAN Bus
where this came from
Sources and corrections
This lesson is AI-assisted: drafted from primary sources, then reviewed and edited by hand. Errors still get through. When one is reported we fix it and write down what changed, in public, in the corrections log.
sources and further reading
- docs.wpilib.orgWPILib Introduction to FRC Robot Wiring
clipped to this lesson
Articles that go further on this
The lesson gets you through the topic. These go wider on it, and they read in one sitting.
- 8 min readThe FRC Control System Explained: roboRIO, PDH, Radio, and Everything BetweenThe FRC control system explained: how the roboRIO, REV PDH, radio, motor controllers, and CAN bus connect to make your robot drive — a plain-English electronics board tour./blogread it
- 7 min readFRC LED Lights: Wiring, Power Budgeting, and the WPILib AddressableLED APIHow to wire addressable LEDs off the PDH's switchable channel, budget their current draw, and use WPILib's AddressableLED API to signal robot state./blogread it
- 12 min readSystemCore: FRC's New 2027 Control System ExplainedSystemCore replaces the roboRIO for FRC 2027: verified specs, ports, wiring changes, WPILib code updates, and what your team should do before kickoff./blogread it
answer sheet
Lesson quiz
All 3 right completes the lesson. Miss one and only that question comes back, anything you already answered correctly stays banked.
0 of 3 answered
01What is a key advantage of CAN control over PWM control for FRC motor controllers?
02How does CAN wiring typically differ from PWM wiring on an FRC robot?
03What does a PWM (Pulse Width Modulation) signal do in a basic FRC motor controller?
Answer every question to submit.
All 35 lessons in Electrical & Wiringopenclose
01 / prerequisites
02 / control-system-components
03 / power-battery-breakers
04 / motor-controllers-can-bus
05 / connections-rules-troubleshooting
06 / worked-examples-mini-projects
- Not read yet:Mini-Project 1: A Single-Motor Test Stand from Battery to Spin
- Not read yet:Mini-Project 2: Current-Limited Drivetrain (CTRE and REV)
- Not read yet:Mini-Project 3: A Live Power-Monitoring Dashboard
- Not read yet:Mini-Project 4: A Switchable Channel for Lights and Vision
- Not read yet:Mini-Project 5: CAN Device Bring-Up with Tuner X and the Hardware Client
07 / common-mistakes-troubleshooting
08 / advanced-techniques-case-studies