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.
the part worth keeping
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.
Electrical & WiringAdvanced Techniques & Case Studieslesson 5 of 5
That is the end of this track
Take the quiz+10 XP with an accountwhere 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: CAN Wiring Basics
- docs.wpilib.orgWPILib: Wiring Best Practices
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.
- 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
- 20 min readREV Robotics for FRC: NEO Motors, Spark MAX/Flex, PDH & MAXSwerveA 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./blogread it
- 17 min readFRC Sensors Explained: Encoders, Gyros, Beam Breaks, and Limit SwitchesA practical FRC guide to encoders (quadrature, absolute, CANcoder, through-bore), gyros (NavX2, Pigeon 2.0), limit switches, beam breaks, and current sensing./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
01A brushed motor (like a window-motor intake) is disrupting a nearby sensor with commutation noise. What should you do?
02Why are CAN wires run as a twisted pair (CAN-High/yellow and CAN-Low/green) in an FRC robot?
03How should subsystems be grounded to avoid ground loops on a robot?
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