A competition robot is an electrically hostile environment: hundreds of amps switching through motor controllers, brushed-motor commutation noise, and constant vibration and impact. Advanced teams design their wiring so sensors stay accurate and CAN stays reliable despite it.
Twist your differential pairs. CAN is a differential signal (CANH yellow, CANL green); twisting the pair makes induced noise common-mode so the transceiver rejects it. Untwisted CAN run alongside motor power is a classic source of intermittent bus errors. Keep CAN physically separated from high-current motor leads where you can, and cross them at right angles rather than running parallel.
Suppress brushed-motor noise. Brushed motors (e.g. a window-motor intake or a CIM-class mechanism) generate commutation noise that can disrupt nearby sensors and CAN. Many FRC brushed motors ship with or accept small ceramic capacitors across the terminals (and terminal-to-case) to suppress this; keep them installed. Brushless motors (NEO, Kraken), commutated electronically by their controllers, are far quieter, which is one more reason modern drivetrains are cleaner electrically.
Grounding discipline. FRC robots use a single 12V system with the PD as the central distribution point; every subsystem returns to PD negative. Avoid creating ground loops by daisy-chaining grounds between subsystems instead of returning each to the PD. The roboRIO's user rails (6V/5V/3.3V) are current-limited; a short on a user rail drives the roboRIO Power LED red, so keep sensor wiring tidy and strain-relieved so a vibrating wire cannot short.
Strain relief and service loops. Vibration is the enemy of every connection. Secure cables close to their connection points but leave a small service loop of slack so motion and impact pull on the slack, not on the terminal. This is exactly why WPILib recommends securing cables near connectors with adequate slack, and why spring terminals fail when wire is tinned: the combination of a stiff tinned conductor and vibration backs it out.
Use port savers / pigtails on high-cycle connectors. Connectors you plug and unplug often (the roboRIO Ethernet, USB) wear out the device port. A short 'port saver' pigtail takes the wear instead of the expensive device port.
Verify under load and vibration. Bench tests can mislead because they are static. Run the robot, drive it into bump tests, and watch sensor values and CAN error counters (getStatus() error counters, the DS fault count). A sensor that jumps or a CAN error count that climbs only under hard driving is a noise/connection problem, not a code bug, fix it with twisting, separation, suppression, and strain relief.
These practices are invisible when they work and catastrophic when ignored. They are what separates a robot that posts identical sensor readings in match 1 and match 12 from one that mysteriously misbehaves after a hard hit.
Key takeaways
- Twist CANH/CANL and keep CAN separated from motor power to reject induced noise; cross at right angles, not parallel.
- Keep noise-suppression capacitors on brushed motors; brushless (NEO/Kraken) is inherently quieter.
- Ground each subsystem back to the PD to avoid ground loops, strain-relieve with service loops, and verify CAN error counters under load and vibration.
You've reached the end of this track
Take the quiz · +10 XP with an accountSources & 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 — publicly, in the corrections log.
Sources and further reading
Read next
Articles on this, for competition day
The lesson covers how it works. These cover what to do when it breaks.
- 7 min read
FRC LED Lights: Wiring, Power Budgeting, and the WPILib AddressableLED API
How to wire addressable LEDs off the PDH's switchable channel, budget their current draw, and use WPILib's AddressableLED API to signal robot state.
Read - 20 min read
REV Robotics for FRC: NEO Motors, Spark MAX/Flex, PDH & MAXSwerve
A practical guide to the REV Robotics FRC ecosystem: NEO, NEO Vortex and NEO 550 motors, Spark MAX and Spark Flex controllers, the PDH, and MAXSwerve.
Read - 17 min read
FRC Sensors Explained: Encoders, Gyros, Beam Breaks, and Limit Switches
A practical FRC guide to encoders (quadrature, absolute, CANcoder, through-bore), gyros (NavX2, Pigeon 2.0), limit switches, beam breaks, and current sensing.
Read
Lesson quiz
RequiredAll 3 right completes the lesson. Miss one and only that question comes back — anything you already answered correctly stays banked.
0 of 3 answered
01.A brushed motor (like a window-motor intake) is disrupting a nearby sensor with commutation noise. What should you do?
02.Why are CAN wires run as a twisted pair (CAN-High/yellow and CAN-Low/green) in an FRC robot?
03.How should subsystems be grounded to avoid ground loops on a robot?
Answer every question to submit.
All 35 lessons in Electrical & Wiring
- Not started:Mini-Project 1: A Single-Motor Test Stand from Battery to Spin
- Not started:Mini-Project 2: Current-Limited Drivetrain (CTRE and REV)
- Not started:Mini-Project 3: A Live Power-Monitoring Dashboard
- Not started:Mini-Project 4: A Switchable Channel for Lights and Vision
- Not started:Mini-Project 5: CAN Device Bring-Up with Tuner X and the Hardware Client