Studied, planned, and built an FRC Control System that increased robot reliability from 70% to 98% from the previous year contributing to qualification in World Championships, and implemented numerous sound electrical practices for subsequent seasons.
In the 2024 FRC season, 8/26 of matches included a major electrical failure*, which means the robot ran as intended 70% of matches. The following failures were common culprits.
CAN wires coming loose from terminals (causing full all motor controllers to fail)
Robot running in a match with a low battery (causing failure in multiple components)
Use of low-quality battery - high internal resistance/low maximum capacity (causing sensor inconsistency)
Spark MAX Encoder cable coming loose (causing motor controller failure)
RoboRio PWM connections coming loose (causing sensor failures)
In addition, the following practices negatively impacted the electrical system's effectiveness.
Repeated connection and disconnection of wires on WAGO connectors caused strands to break off, making the connection weaker as time went on
An unorganized "birds nest" of wires made it difficult to trace wires and diagnose electrical failures (which was especially damaging because CAN wires were small and frequently disconnected)
Uneven battery of different batteries caused some batteries to degrade at different rates than others
Electronics were never considered in the initial design process, so components were often placed in poor positions
Electronics were not given enough time in the project timeline, causing a rushed and messy job
Electronics were uncovered and exposed to game pieces, causing fragments of the pieces to be stuck inside the connector ports
Electronics were not verified to be working before the matches
Because of the continuous electronic failures during the previous season, I decided to take charge of electrical in the following season despite only having experience in mechanical.
*I define a major electrical failure is characterized as one that results in the robot being fully disabled or unable to pick up and score game pieces
Eliminate electrical failures during competition
Significantly improve CAN wire reliability
Implement a system to ensure a fully charged and good-condition battery is used during matches
Reduce failure points and improve the security of all connections
Research and educate myself and others on the best electrical practices
Consider electronics in the initial design process
Organize wires to be traceable and able to be iterated.
Minimize failure points
I think that treating the electrical system as an afterthought is a critical oversight. Why?
A small inaccuracy can and will result in a catastrophic failure. One incorrectly inserted wire can come loose and shut the whole robot down.
Lack of proper planning and organization of the electrical system saves minutes of initial setup time but wastes hours of time debugging and figuring out issues.
Time at competition should not be spent fixing the robot to make it functional, it should be spent scouting, strategizing, planning, and building connections with other teams.
Robot reliability should be emphasized over highest scoring potential, a robot that consistently performs is easier to drive, strategize around, and prove worthy of alliance selection.
A well-planned electronics system is easily scalable and iterated around, while a poorly planned electronics system inhibits any change.
Using poor practices on a robot sets a bad example for future team members, and perpetuates the cycle of electronic inconsistency and poor performance, while a well designed electrical system will serve as an example future students use to maintain consistent standards.
CAN wiring failures have been extremely common in the past, so making a robust CAN bus was the top priority. Since CAN wires are of such a small diameter, they easily slip out of connectors, and since the CAN loop used a daisy-chain implementation, all devices would lose connection after one disconnection. Due to this, I looked into alternatives for CAN topologies and connectors.
The Daisy Chain implementation is the most common configuration for CAN in FRC. All devices are connected in series, meaning that the connection goes from one motor controller to the next.
Pros
Simple and easy to wire
Well documented
Recommended for FRC
Our team has done it in the past
Cons
One disconnection means the whole CAN loop is disconnected
Has proved to be unreliable in the team's history (even though other teams have been able to run it with no problem)
A Star implementation is less commonly seen in FRC. Devices branch off of a central "CAN hub," and are not arranged in a loop, but in a star or tree shape.
Pros
One disconnection means only one device is disconnected
Robot can still run in the case of a disconnection
In the case of an arm/elevator motor disconnecting, the robot would be able to drive fully and play defense
Wire organization is easier
CAN wires can be routed with power wires to PDH/RoboRio
Cons
Not recommended in FRC (in some Chief Delphi posts)
Requires additional planning (keeping stub lengths under 1ft)
Our team has not done it in the past
May reduce signal integrity from reflections
After experimenting with each architecture and determining that the Star Topology was viable and worked within our control system, we ultimately decided to go with the Star Topology instead of the Daisy Chain Topology. Although a Daisy Chain Topology would be faster to wire and has a predictable behavior, the benefit of removing a detrimental single point of failure was more valuable given our team's history with CAN failures. Additionally, building a competition-ready robot with the Star Topology would give us first-hand experience with the method's benefits and issues. During testing, if signal reflections caused unpredictable motor behaviors, we would have known it might be due to the CAN configuration and switch to the Daisy Chain Topology. However, we could not have known that the Daisy Chain architecture could work smoothly and reliably without using it.
Pros
Prevents chance of reverse polarity
Very solid connection
Clean and inline
Cons
Requires proprietary crimpers
Most expensive
Not easy to crimp
Pros
Very solid connection
Easy and intuitive to use
Standard crimpers
Cons
Is not 90 degrees (makes wiring less clean)
Takes time to crimp
Pros
What we did the previous year
Easy and intuitive to use
Cons
Wire strands break after time
Not solid after multiple connections/disconnections
Pros
Most solid connection when done properly
Cons
Requires cutting and resoldering every time it's changed
Takes time to learn and understand how to solder properly
Takes time to connect any wires
After analyzing all the available options, the Lever Wagos with Ferrules were chosen. In previous years, just using the compact wago proved to be unreliable, and soldering was more time-consuming than it was worth. That left the decision between the molex connectors and lever wagos with ferrules. The two options provided significant improvements over the previous connection system, and both would work well in competition. So, the Lever Wagos with Ferrules were chosen because it was easier to wire.
flight readyness
scouting other teams
As seen in past years, throwing
Below, I have linked some additional information that influenced design decisions and practices. This list is far from complete, but future members might get some value out of reading these.
Wiring Practices: https://www.chiefdelphi.com/t/favorite-tools-materials-and-techniques-for-frc-wiring/353212
CAN Topology: https://www.chiefdelphi.com/t/can-bus-topology/423564/8
CAN Star Topology Connectors: https://www.chiefdelphi.com/t/connectors-for-star-topology-can/395356/13
2025 CAN Hub: https://www.amazon.com/dp/B07DWBSWW6
How to Solder XT60: https://www.youtube.com/watch?v=1PfBK4rFYT8