From de21db9c1616c0f784e25e78b3085d1af2ec2029 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Sun, 2 Aug 2026 20:33:36 -0400 Subject: [PATCH 01/36] AWG section in intro --- docs/Pneumatics.md | 1 + docs/intro.md | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/docs/Pneumatics.md b/docs/Pneumatics.md index 14e2355..d207649 100644 --- a/docs/Pneumatics.md +++ b/docs/Pneumatics.md @@ -15,6 +15,7 @@ This is the general FRC Pneumatics Layout you need to learn: ![FRC Pneumatics System](assets/FRC%20Pneumatics%20Layout.png) Here are the FRC Pneumatic Components Explained: + * Compressor: Charges air for components on the robot, like a battery that provides electricity to components, and the compressor provides air. * Pressure Switch: Works with a controller to tell the compressor when to shut off. diff --git a/docs/intro.md b/docs/intro.md index b38cd53..e9248c5 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -38,6 +38,13 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele === "Power Wiring" ![Power-Wire](/assets/FRC-Control-System/Power-Wire.png){ width="50%" } +### AWG (American Wire Gauge) +- AWG is a standard for measuring wire gauge in the United States. +- The lower the AWG number, the thicker the wire. +- Thicker wires can carry more current and have less resistance. +- In FRC, your thickest wire is somewhere between 2-6 AWG. This is typically used for battery connections. +- For smaller components, you'll typically see 22 AWG wires. + ### Parallel vs Series #### Parallel - Negative to Negative and Positive to Positive From 1ac20820bef9dc13ea1bb1b599dd1d4d22b90069 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Sun, 2 Aug 2026 20:36:23 -0400 Subject: [PATCH 02/36] added examples --- docs/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro.md b/docs/intro.md index 6647ddc..e360f43 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -43,7 +43,7 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - The lower the AWG number, the thicker the wire. - Thicker wires can carry more current and have less resistance. - In FRC, your thickest wire is somewhere between 2-6 AWG. This is typically used for battery connections. -- For smaller components, you'll typically see 22 AWG wires. +- For smaller components, you'll typically see 22 AWG wires (CAN, PWM, etc) ### Parallel vs Series #### Parallel From a83bbbcb5a1c7a6ca0b6e81d6bfc500fa50f2035 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Sun, 2 Aug 2026 23:56:34 -0400 Subject: [PATCH 03/36] added safety reasonings --- docs/intro.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/intro.md b/docs/intro.md index e360f43..9f09814 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -8,12 +8,12 @@ title: Intro to FRC Electrical ## Safety This may come as a shock, but electronics are dangerous. A single mistake could lead to serious injury, and it is vital to learn how to follow proper procedure when handling electronics. -- When a battery spills, cover it with baking soda. This neutralizes the battery acid and it becomes less harmful -- Never hold batteries from the wires. Always hold them from the body. -- Always wear PPE when handling electronics. This includes at the bare minimum safety glasses. +- When a battery spills, cover it with baking soda. This neutralizes the battery acid and it becomes less harmful. A battery spilling is dangerous for everyone because it can cause chemical burns and eye damage if untreated +- Never hold batteries from the wires. Always hold them from the body. By holding batteries from their wires, you are wearing down the connection between the wire and the battery which can be detrimental for performance. +- Always wear PPE when handling electronics. This includes at the bare minimum safety glasses. You don't want to get shocked or have a wire snap and hit you in the eye. - Don’t touch the metals of opposite polarity wires together, especially for batteries as it can cause sparks and flame. -- Don’t allow metal shavings to get into components: Electrical tape open holes. -- Keep wires away from things that can break them like motor splines or the insides of swerve modules. +- Don’t allow metal shavings to get into components: Use electrical tape to cover open holes in components. This prevents short circuits and damage to sensitive parts. +- Keep wires away from things that can break them like motor splines or the insides of swerve modules. This prevents damage to the wires and potential short circuits. ## Electrical Theory While electrical isn’t overly complex and the theory is rarely used in FRC electrical, a basic understanding is good to know. From 3c7444e1a1d561e6ef0f9b40cb1121f1bdb638e8 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Sun, 2 Aug 2026 23:58:37 -0400 Subject: [PATCH 04/36] strain relief explanation --- docs/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro.md b/docs/intro.md index 9f09814..7a45a5b 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -28,7 +28,7 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - CAN Wire can be any two colors, but they are most commonly green and yellow. This color scheme can be changed to most anything to differentiate between different CAN buses. CAN is essentially the robot's information system. If the power wires are the blood vessels, CAN is the nervous system. - Differential Buses: CAN is a differential bus. This means that it essentially transfers information by measuring the voltage difference between two wires in a pair (CAN High (Yellow) and CAN Low (Green)). This makes it more resistant to noise, or electromagnetic interference (EMI), which is prevalent in FRC. However, some measures need to be taken for this noise resistance to be most effective: - Twist the wire pairs: We do this because it allows any external vibrations and EMI to affect both wires rather than one, keeping the measurements on each wire consistent with each other. - - Strain relief: This is important in any system, whether power or CAN, but it is especially important for CAN wires to reduce noise and vibrations. + - Strain relief: Strain relief is when you give wiring room to "breathe". Allowing it not to be stressed and potentially rip out connections in wiring. This is important in any system, whether power or CAN, but it is especially important for CAN wires to reduce noise and vibrations. - PWM: "Pulse-Width Modulation" - simple unidirectional signaling to send any value between 0-100% - Ports for this type of connection can be found on the RoboRIO From 8975525880e13c459c749b610672f2507e060194 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 3 Aug 2026 00:00:40 -0400 Subject: [PATCH 05/36] parallel series explanation --- docs/intro.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/intro.md b/docs/intro.md index 7a45a5b..8364ea7 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -47,10 +47,11 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele ### Parallel vs Series #### Parallel -- Negative to Negative and Positive to Positive +- Negative to Negative and Positive to Positive. This allows for multiple paths for current to flow, increasing the total current capacity and decreasing susceptability to failure. If one path fails, the others can still carry current. #### Series -- Components are chained together from positive to negative to positive, etc. +- Components are chained together from positive to negative to positive, etc. The flow of electricity is the same through all components, but the voltage is divided among them. If one component fails, the entire circuit breaks. + * In FRC, this is commonly referred to as a Daisy Chain. ![Parallel-Series-Circuit](/assets/Intro to FRC Electrical/Parallel-Series-Circuit-Light.png#only-light) ![Parallel-Series-Circuit](/assets/Intro to FRC Electrical/Parallel-Series-Circuit-Dark.png#only-dark) From dbdddf6a05f9aba3ac666ec05a655a953df53b33 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 3 Aug 2026 00:02:58 -0400 Subject: [PATCH 06/36] I2C --- docs/intro.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/intro.md b/docs/intro.md index 8364ea7..f12d0b3 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -23,13 +23,15 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - Current, in this analogy, would be the rate at which water flows through the pipe. It is the flow of electrons going through the wire measured in Amps (A). - Resistance can be thought of as blockages in this pipe or as points where it gets narrow. It is the resistance of the flow of electrons measured in Ohms (Ω) that slows the electrons from getting from point A to point B. -### Power vs. CAN vs. PWM +### Power vs. CAN vs. PWM vs. I2C - Power wire is red (for positive terminals) and black (for negative and ground terminals). FRC power wires MUST be color-coded separately, as they can be dangerous when not indicated. Red and black are the most common ways to do so. They can be thought of as the blood vessels that deliver power to every part of the robot. - CAN Wire can be any two colors, but they are most commonly green and yellow. This color scheme can be changed to most anything to differentiate between different CAN buses. CAN is essentially the robot's information system. If the power wires are the blood vessels, CAN is the nervous system. - Differential Buses: CAN is a differential bus. This means that it essentially transfers information by measuring the voltage difference between two wires in a pair (CAN High (Yellow) and CAN Low (Green)). This makes it more resistant to noise, or electromagnetic interference (EMI), which is prevalent in FRC. However, some measures need to be taken for this noise resistance to be most effective: - Twist the wire pairs: We do this because it allows any external vibrations and EMI to affect both wires rather than one, keeping the measurements on each wire consistent with each other. - Strain relief: Strain relief is when you give wiring room to "breathe". Allowing it not to be stressed and potentially rip out connections in wiring. This is important in any system, whether power or CAN, but it is especially important for CAN wires to reduce noise and vibrations. -- PWM: "Pulse-Width Modulation" - simple unidirectional signaling to send any value between 0-100% +- PWM: "Pulse-Width Modulation" - one-wire signaling to send any value between 0-100% + - Ports for this type of connection can be found on the RoboRIO +- I2C: "Inter-Integrated Circuit" - two-wire signaling to send any value between 0-100% - Ports for this type of connection can be found on the RoboRIO From 6c350423408ec2de22e83adebd0b8478b5222fde Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 3 Aug 2026 00:30:42 -0400 Subject: [PATCH 07/36] soldering update ty banks --- docs/Making-Connections.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Making-Connections.md b/docs/Making-Connections.md index 87445d3..8374767 100644 --- a/docs/Making-Connections.md +++ b/docs/Making-Connections.md @@ -85,13 +85,13 @@ This page covers everything needed for you to make successful connections in the ### Why Soldering is Not Recommended * They are more prone to failure under vibration and stress * Repairing solder joints is more time-consuming and difficult in competition stress -* Solder can be poor conductor which can be brittle when done improperly +* Solder can be poor conductor which can be a brittle connection. * Similarly, for newer teams, it requires more of a learning curve and practice to get right. -* Low gauge wire should not be soldered as it is usually a failure point on the robot. Refrain from soldering battery wire. +* Large gauge wire should not be soldered as it is typically a failure point on the robot. Refrain from soldering battery wire as it is incredibly hard to apply enough heat to create a proper joint. - **Solder Sleeves**: Solder sleeves are not recommended for FRC robots. - They use low-melting-point solder and rely on heat to both solder the wire and shrink the tubing, making it difficult to achieve a consistent, reliable connection. - If not heated correctly, they can create weak electrical or mechanical joints that may fail under the vibration and impacts experienced during competition. -- Properly crimped connectors are the preferred solution, while hand-soldered splices with heat shrink should only be used when a crimped connection is not practical. +- Properly crimped connectors are the preferred solution. ### When Soldering Might Be Acceptable * For temporary connections From 6b0e35ab2181df6420c381b59f0b9976feda5bc8 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 3 Aug 2026 11:19:33 -0400 Subject: [PATCH 08/36] tim suggestions --- docs/Making-Connections.md | 5 +++-- docs/intro.md | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/docs/Making-Connections.md b/docs/Making-Connections.md index 8374767..09f86a9 100644 --- a/docs/Making-Connections.md +++ b/docs/Making-Connections.md @@ -85,9 +85,10 @@ This page covers everything needed for you to make successful connections in the ### Why Soldering is Not Recommended * They are more prone to failure under vibration and stress * Repairing solder joints is more time-consuming and difficult in competition stress -* Solder can be poor conductor which can be a brittle connection. +* Solder can be a good conductor, however, brittle connections can lead to failure that crimped connections do not have. * Similarly, for newer teams, it requires more of a learning curve and practice to get right. -* Large gauge wire should not be soldered as it is typically a failure point on the robot. Refrain from soldering battery wire as it is incredibly hard to apply enough heat to create a proper joint. +* Large gauge wire should not be soldered as it is typically a failure point on the robot. + - This is a failure point as it is incredibly hard to apply enough heat to create a proper joint. This can lead to a brittle connection that can fail. - **Solder Sleeves**: Solder sleeves are not recommended for FRC robots. - They use low-melting-point solder and rely on heat to both solder the wire and shrink the tubing, making it difficult to achieve a consistent, reliable connection. - If not heated correctly, they can create weak electrical or mechanical joints that may fail under the vibration and impacts experienced during competition. diff --git a/docs/intro.md b/docs/intro.md index f12d0b3..5aafc5c 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -8,7 +8,7 @@ title: Intro to FRC Electrical ## Safety This may come as a shock, but electronics are dangerous. A single mistake could lead to serious injury, and it is vital to learn how to follow proper procedure when handling electronics. -- When a battery spills, cover it with baking soda. This neutralizes the battery acid and it becomes less harmful. A battery spilling is dangerous for everyone because it can cause chemical burns and eye damage if untreated +- A battery spilling is dangerous for everyone because it can cause chemical burns and damage if untreated. When a battery spills, cover it with baking soda. This neutralizes the battery acid and it becomes less harmful. - Never hold batteries from the wires. Always hold them from the body. By holding batteries from their wires, you are wearing down the connection between the wire and the battery which can be detrimental for performance. - Always wear PPE when handling electronics. This includes at the bare minimum safety glasses. You don't want to get shocked or have a wire snap and hit you in the eye. - Don’t touch the metals of opposite polarity wires together, especially for batteries as it can cause sparks and flame. @@ -31,8 +31,10 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - Strain relief: Strain relief is when you give wiring room to "breathe". Allowing it not to be stressed and potentially rip out connections in wiring. This is important in any system, whether power or CAN, but it is especially important for CAN wires to reduce noise and vibrations. - PWM: "Pulse-Width Modulation" - one-wire signaling to send any value between 0-100% - Ports for this type of connection can be found on the RoboRIO + - Note that the RoboRIO is not in use as of the 2027 FRC season. Systemcore is the new FRC Control System Hub - I2C: "Inter-Integrated Circuit" - two-wire signaling to send any value between 0-100% - Ports for this type of connection can be found on the RoboRIO + - Note that the RoboRIO is not in use as of the 2027 FRC season. Systemcore is the new FRC Control System Hub === "CAN Wiring" @@ -44,16 +46,20 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - AWG is a standard for measuring wire gauge in the United States. - The lower the AWG number, the thicker the wire. - Thicker wires can carry more current and have less resistance. -- In FRC, your thickest wire is somewhere between 2-6 AWG. This is typically used for battery connections. -- For smaller components, you'll typically see 22 AWG wires (CAN, PWM, etc) +- When choosing wire gauge, consider the current capacity and voltage drop and ensure that the wire you choose follows the guidelines depending on the application + - In FRC, your thickest wire is somewhere between 2-6 AWG. This is typically used for battery connections. + - These wires carry high current and need to be thick to handle the load. + - For smaller components, you'll typically see 22 AWG wires (CAN, PWM, etc) + - These wires carry lower current and can be thinner. + - Other components, like motors, will typically bear 10-12 AWG wires. ### Parallel vs Series #### Parallel -- Negative to Negative and Positive to Positive. This allows for multiple paths for current to flow, increasing the total current capacity and decreasing susceptability to failure. If one path fails, the others can still carry current. +- Negative to Negative and Positive to Positive. This allows for multiple paths for current to flow, increasing the total current capacity. #### Series -- Components are chained together from positive to negative to positive, etc. The flow of electricity is the same through all components, but the voltage is divided among them. If one component fails, the entire circuit breaks. - * In FRC, this is commonly referred to as a Daisy Chain. +- Components are chained together from positive to negative to positive, etc. The flow of electricity is the same through all components, but the voltage is divided among them. + ![Parallel-Series-Circuit](/assets/Intro to FRC Electrical/Parallel-Series-Circuit-Light.png#only-light) ![Parallel-Series-Circuit](/assets/Intro to FRC Electrical/Parallel-Series-Circuit-Dark.png#only-dark) From f4b8e5a59b642e260134dcd0eeb376f5fbe9baa0 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 3 Aug 2026 11:23:00 -0400 Subject: [PATCH 09/36] ohms law --- docs/intro.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/intro.md b/docs/intro.md index 5aafc5c..0a1a7f9 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -22,6 +22,7 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - The standard definition is the difference in electric potential between two points. However, this is hard to imagine visually. Think of a wire as a pipe, and the electrons flowing through it as water. Voltage would be the water pressure. It is measured in Volts (V), where a higher voltage means more pressure/potential. - Current, in this analogy, would be the rate at which water flows through the pipe. It is the flow of electrons going through the wire measured in Amps (A). - Resistance can be thought of as blockages in this pipe or as points where it gets narrow. It is the resistance of the flow of electrons measured in Ohms (Ω) that slows the electrons from getting from point A to point B. +- Ohm's Law: V = I * R where V is voltage, I is current, and R is resistance. ### Power vs. CAN vs. PWM vs. I2C - Power wire is red (for positive terminals) and black (for negative and ground terminals). FRC power wires MUST be color-coded separately, as they can be dangerous when not indicated. Red and black are the most common ways to do so. They can be thought of as the blood vessels that deliver power to every part of the robot. From 63592219278b756b0a8d9fc225dc689d4a3d5bf4 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 3 Aug 2026 14:06:28 -0400 Subject: [PATCH 10/36] short circuit --- docs/intro.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/intro.md b/docs/intro.md index 0a1a7f9..83dd6eb 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -13,6 +13,7 @@ This may come as a shock, but electronics are dangerous. A single mistake could - Always wear PPE when handling electronics. This includes at the bare minimum safety glasses. You don't want to get shocked or have a wire snap and hit you in the eye. - Don’t touch the metals of opposite polarity wires together, especially for batteries as it can cause sparks and flame. - Don’t allow metal shavings to get into components: Use electrical tape to cover open holes in components. This prevents short circuits and damage to sensitive parts. + - A short circuit, typically known as a blow or short, is when two wires with different polarities have contact, causing a large current to flow and potentially causing fire or damage to components. - Keep wires away from things that can break them like motor splines or the insides of swerve modules. This prevents damage to the wires and potential short circuits. ## Electrical Theory From 4ad6c8e601944673e229551e2495f0beae64e6c3 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Wed, 5 Aug 2026 16:03:00 -0400 Subject: [PATCH 11/36] add 18 gauge wire for smaller components --- docs/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro.md b/docs/intro.md index 83dd6eb..37bff6b 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -51,7 +51,7 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - When choosing wire gauge, consider the current capacity and voltage drop and ensure that the wire you choose follows the guidelines depending on the application - In FRC, your thickest wire is somewhere between 2-6 AWG. This is typically used for battery connections. - These wires carry high current and need to be thick to handle the load. - - For smaller components, you'll typically see 22 AWG wires (CAN, PWM, etc) + - For smaller components, you'll typically see 18-22 AWG wires (CAN, PWM, etc) - These wires carry lower current and can be thinner. - Other components, like motors, will typically bear 10-12 AWG wires. From 3878a086e407e44ef4f3043f063851d5d2da701f Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Wed, 5 Aug 2026 16:04:07 -0400 Subject: [PATCH 12/36] reference systemcore smart io --- docs/intro.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/intro.md b/docs/intro.md index 37bff6b..ba06304 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -33,9 +33,12 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - Strain relief: Strain relief is when you give wiring room to "breathe". Allowing it not to be stressed and potentially rip out connections in wiring. This is important in any system, whether power or CAN, but it is especially important for CAN wires to reduce noise and vibrations. - PWM: "Pulse-Width Modulation" - one-wire signaling to send any value between 0-100% - Ports for this type of connection can be found on the RoboRIO + - The functionality for this, however, can be found in the Smart I/O ports on the Systemcore + - Note that the RoboRIO is not in use as of the 2027 FRC season. Systemcore is the new FRC Control System Hub - I2C: "Inter-Integrated Circuit" - two-wire signaling to send any value between 0-100% - Ports for this type of connection can be found on the RoboRIO + - The functionality for this, however, can be found in the Smart I/O ports on the Systemcore - Note that the RoboRIO is not in use as of the 2027 FRC season. Systemcore is the new FRC Control System Hub From 29fd695c32b501000b813741f05191f0b5824a3b Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 13:30:36 -0400 Subject: [PATCH 13/36] safety and ohms law --- docs/intro.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/intro.md b/docs/intro.md index ba06304..1f8f172 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -8,8 +8,8 @@ title: Intro to FRC Electrical ## Safety This may come as a shock, but electronics are dangerous. A single mistake could lead to serious injury, and it is vital to learn how to follow proper procedure when handling electronics. -- A battery spilling is dangerous for everyone because it can cause chemical burns and damage if untreated. When a battery spills, cover it with baking soda. This neutralizes the battery acid and it becomes less harmful. -- Never hold batteries from the wires. Always hold them from the body. By holding batteries from their wires, you are wearing down the connection between the wire and the battery which can be detrimental for performance. +- A battery spilling is dangerous for everyone because it can cause chemical burns and damage if you touch it. When a battery spills, cover it with baking soda. This neutralizes the battery acid and it becomes less harmful. Do **not** touch your eyes until after washing your hands. +- Never hold batteries from the wires. Always hold them from the body. By holding batteries from their wires, you are wearing down the connection between the wire and the battery which can be detrimental for performance. This can also lead to a snap in the batteries terminal, which can drop the battery if you're holding it. - Always wear PPE when handling electronics. This includes at the bare minimum safety glasses. You don't want to get shocked or have a wire snap and hit you in the eye. - Don’t touch the metals of opposite polarity wires together, especially for batteries as it can cause sparks and flame. - Don’t allow metal shavings to get into components: Use electrical tape to cover open holes in components. This prevents short circuits and damage to sensitive parts. @@ -23,7 +23,7 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - The standard definition is the difference in electric potential between two points. However, this is hard to imagine visually. Think of a wire as a pipe, and the electrons flowing through it as water. Voltage would be the water pressure. It is measured in Volts (V), where a higher voltage means more pressure/potential. - Current, in this analogy, would be the rate at which water flows through the pipe. It is the flow of electrons going through the wire measured in Amps (A). - Resistance can be thought of as blockages in this pipe or as points where it gets narrow. It is the resistance of the flow of electrons measured in Ohms (Ω) that slows the electrons from getting from point A to point B. -- Ohm's Law: V = I * R where V is voltage, I is current, and R is resistance. +- Ohm's Law: $V = I \cdot R$ where $V$ is voltage, $I$ is current, and $R$ is resistance. ### Power vs. CAN vs. PWM vs. I2C - Power wire is red (for positive terminals) and black (for negative and ground terminals). FRC power wires MUST be color-coded separately, as they can be dangerous when not indicated. Red and black are the most common ways to do so. They can be thought of as the blood vessels that deliver power to every part of the robot. From 0da98f25b32449b81542e5b1fa6471ad1ad19633 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 13:32:05 -0400 Subject: [PATCH 14/36] accuracy on short circuits --- docs/intro.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/intro.md b/docs/intro.md index 1f8f172..ff60351 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -13,7 +13,7 @@ This may come as a shock, but electronics are dangerous. A single mistake could - Always wear PPE when handling electronics. This includes at the bare minimum safety glasses. You don't want to get shocked or have a wire snap and hit you in the eye. - Don’t touch the metals of opposite polarity wires together, especially for batteries as it can cause sparks and flame. - Don’t allow metal shavings to get into components: Use electrical tape to cover open holes in components. This prevents short circuits and damage to sensitive parts. - - A short circuit, typically known as a blow or short, is when two wires with different polarities have contact, causing a large current to flow and potentially causing fire or damage to components. + - A short circuit is when two wires with different polarities have contact, causing a large current to flow and potentially causing fire or damage to components. - Keep wires away from things that can break them like motor splines or the insides of swerve modules. This prevents damage to the wires and potential short circuits. ## Electrical Theory @@ -56,7 +56,7 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - These wires carry high current and need to be thick to handle the load. - For smaller components, you'll typically see 18-22 AWG wires (CAN, PWM, etc) - These wires carry lower current and can be thinner. - - Other components, like motors, will typically bear 10-12 AWG wires. + - Other components, like motors, will typically bear 8-12 AWG wires. ### Parallel vs Series #### Parallel From 3a3ea77b4cb5eb184efbf0b085158ead1096ede0 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 13:32:27 -0400 Subject: [PATCH 15/36] exposed wire --- docs/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro.md b/docs/intro.md index ff60351..db2291e 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -14,7 +14,7 @@ This may come as a shock, but electronics are dangerous. A single mistake could - Don’t touch the metals of opposite polarity wires together, especially for batteries as it can cause sparks and flame. - Don’t allow metal shavings to get into components: Use electrical tape to cover open holes in components. This prevents short circuits and damage to sensitive parts. - A short circuit is when two wires with different polarities have contact, causing a large current to flow and potentially causing fire or damage to components. -- Keep wires away from things that can break them like motor splines or the insides of swerve modules. This prevents damage to the wires and potential short circuits. +- Keep exposed wires away from things that can break them like motor splines or the insides of swerve modules. This prevents damage to the wires and potential short circuits. ## Electrical Theory While electrical isn’t overly complex and the theory is rarely used in FRC electrical, a basic understanding is good to know. From 11f93517ac50f8f67fee3a19373415f00b1202af Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 13:45:22 -0400 Subject: [PATCH 16/36] eriks suggestions --- docs/FRC-Control-System.md | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/docs/FRC-Control-System.md b/docs/FRC-Control-System.md index 442a3c7..5ee52d2 100644 --- a/docs/FRC-Control-System.md +++ b/docs/FRC-Control-System.md @@ -8,13 +8,38 @@ title: FRC Control System ## Control System Basics * Battery supplies Power to the Robot -* Power originates with a distribution hub or panel (PDH/PDP/AMPD) -* Swerve encoders can be spliced from a single wire. - * Soldering is a way that teams have done this. You’ll learn later why soldering is considered bad for an FRC environment, but for now, just understand it is a worse solution than others. - * A 5-port [Wago](https://www.amazon.com/LEPEVNEY-Electrical-Connectors-Retardant-Connector/dp/B0GCJGNR1R/ref=sr_1_4?crid=3S5XVPL2BYERF&dib=eyJ2IjoiMSJ9.fnqoyr8S4BoE6gGHz4zoKNKmHKklMrr4b2weTcpcWDTtgCFb9RqDgBQ5F-tbMFAbu-gasv3x3za6PIa3aqW2dUvf2vMRlnPKnQA48KHO2SYTRiV69c_SfiG7Uk7fiULECS2MLTP-yaaymRvp14ij9Mud3-jhJY4C9Ki-CUEiCTAhYIK6Oak4YNHcirDnV_LF4RVtLIb8UO6KggrtqmTMvYdDPQzeTNgsVz_f8BBDDcQ.zFwnjvta4aXVr957XsFxWN2hmtDJTrVbEffRnxRYKV0&dib_tag=se&keywords=Wago%2B2%2BPort%2B(10)%2B3%2BPort%2B(10)%2B5%2BPort%2B(4)%2BLever-Nut%2BAssortment%2BPack%2BConductor%2BCompact%2BConnector%2BTerminal%2BBlock%2BWire%2BPush%2BCable%2BConnector%2B12-28%2BAWG%2C%2B32A%3A%2BAutomotiveor%2BCompact%2BConnector%2BTerminal%2BBlock%2BWire%2BPush%2BCable%2BConnector%2B12-28%2BAWG%2C%2B32A%3A%2BAutomotive&nsdOptOutParam=true&qid=1780958682&sprefix=wago%2B2%2Bport%2B10%2B3%2Bport%2B10%2B5%2Bport%2B4%2Blever-nut%2Bassortment%2Bpack%2Bconductor%2Bcompact%2Bconnector%2Bterminal%2Bblock%2Bwire%2Bpush%2Bcable%2Bconnector%2B12-28%2Bawg%2C%2B32a%2Bautomotiveor%2Bcompact%2Bconnector%2Bterminal%2Bblock%2Bwire%2Bpush%2Bcable%2Bconnector%2B12-28%2Bawg%2C%2B32a%2Bautomotive%2Caps%2C183&sr=8-4&th=1) is the most common correct way to accomplish a 4-way splice for encoder wires. +* The battery connects to a Main Breaker and then a Power Distribution (PD) device +* Every other component that receives power from the battery is connected to one slot on the PD +* This covers almost everything on your robot. The only exceptions are for cameras or coprocessors (other computing devices in addition to the Systemcore) that come with built-in batteries or take small USB battery packs. +* Every port on the PD that you use must be protected by a Breaker or a Fuse. You will use breakers to protect most devices. The minimum gauge of wire that you are allowed to use in each port is determined by which breaker or fuse is connected to that port—larger breakers/fuses require larger wires. +* Each port on the PD may only connect to one pair of wires. Most of your use cases, like powering motors, will involve connecting only one device per port, so only one pair of power wires is necessary. +* However, some small devices, like the four encoders on a swerve drive, can easily be powered together by a single PD port. To power multiple devices from one PD port, you can connect a smaller power distribution device, like a REV Mini Power Module, or splice multiple wires together by soldering them or using a terminal block. + * This [5-port Wago-style connector](https://www.amazon.com/LEPEVNEY-Electrical-Connectors-Retardant-Connector/dp/B0GCJGNR1R/ref=sr_1_4?crid=3S5XVPL2BYERF&dib=eyJ2IjoiMSJ9.fnqoyr8S4BoE6gGHz4zoKNKmHKklMrr4b2weTcpcWDTtgCFb9RqDgBQ5F-tbMFAbu-gasv3x3za6PIa3aqW2dUvf2vMRlnPKnQA48KHO2SYTRiV69c_SfiG7Uk7fiULECS2MLTP-yaaymRvp14ij9Mud3-jhJY4C9Ki-CUEiCTAhYIK6Oak4YNHcirDnV_LF4RVtLIb8UO6KggrtqmTMvYdDPQzeTNgsVz_f8BBDDcQ.zFwnjvta4aXVr957XsFxWN2hmtDJTrVbEffRnxRYKV0&dib_tag=se&keywords=Wago%2B2%2BPort%2B(10)%2B3%2BPort%2B(10)%2B5%2BPort%2B(4)%2BLever-Nut%2BAssortment%2BPack%2BConductor%2BCompact%2BConnector%2BTerminal%2BBlock%2BWire%2BPush%2BCable%2BConnector%2B12-28%2BAWG%2C%2B32A%3A%2BAutomotiveor%2BCompact%2BConnector%2BTerminal%2BBlock%2BWire%2BPush%2BCable%2BConnector%2B12-28%2BAWG%2C%2B32A%3A%2BAutomotive&nsdOptOutParam=true&qid=1780958682&sprefix=wago%2B2%2Bport%2B10%2B3%2Bport%2B10%2B5%2Bport%2B4%2Blever-nut%2Bassortment%2Bpack%2Bconductor%2Bcompact%2Bconnector%2Bterminal%2Bblock%2Bwire%2Bpush%2Bcable%2Bconnector%2B12-28%2Bawg%2C%2B32a%2Bautomotiveor%2Bcompact%2Bconnector%2Bterminal%2Bblock%2Bwire%2Bpush%2Bcable%2Bconnector%2B12-28%2Bawg%2C%2B32a%2Bautomotive%2Caps%2C183&sr=8-4&th=1) is our preferred way to make a four-way splice. Soldering, especially with power wires 18 AWG or larger, is not recommended. + +!!! warning + Some components, like the Radio, have specific rules regarding how they must be powered. Be sure to read the power distribution rules fully and ensure that you are powering every device in a legal way. ![5Wago](/assets/FRC-Control-System/5Wago.png) +## Control System Communications & Signal Basics + +The previous section only covered how to make the devices on your robot turn on. To make things move, you’ll need signals too. The next few sections will build on top of this one, to cover more on how to manage your robot. +* Almost all outside communication with the robot starts with the Robot Radio. The radio communicates with other devices on the robot through Ethernet cables. The radio has 4 Ethernet ports—1 for the Systemcore, 2 for other devices (such as cameras), and 1 to connect a computer for when you need to use a wired connection to the robot (commonly referred to as “tethering”), like in the pits at a competition. + * While the radio will function if you connect devices on the robot to all 4 ports, this is not recommended because it would require removing a device to tether. This makes it possible to forget to plug the device back in, and it means that the robot system will be different while tethered than it is on the field. + * If you need additional ports on the radio, you can connect one port to an Ethernet switch and your additional devices to that. +* The Systemcore controls all the motors on your robot and can also read many types of sensors. Nearly all your motor controllers will communicate with the Systemcore through CAN. The Systemcore has ports for up to 5 CAN buses. + * While you can theoretically put as many devices as you want on the same CAN bus, trying to connect everything on your robot to a single bus can cause problems. If there are too many devices on one bus, you can exceed the bus’s utilization limit. This means there isn’t enough time for all the devices to send all the messages they are trying to. While you can adjust settings in software to reduce this problem, it is safest to spread your devices across multiple buses to keep the utilization on all of them low. +* The Systemcore has 4 USB ports. You can also create a CAN bus by connecting a [CTRE CANivore](https://store.ctr-electronics.com/products/canivore) to the Systemcore through one of its USB ports. + * It is also useful to use a USB port for a flash drive to store robot data log files. After each match at a competition, you can unplug it to quickly view the logs on your computer without needing to keep the robot powered on. +* Many types of sensors, like [CTRE’s CANcoder](https://store.ctr-electronics.com/products/cancoder), communicate over CAN, so you can wire them into your CAN buses just like motors +* Some other sensors, like [TTB’s Thrifty Absolute Magnetic Encoder](https://www.thethriftybot.com/products/thrifty-absolute-magnetic-encoder), can connect directly to the motor controller of the relevant motor +* For any other sensors, or for cases where you do not want to connect a sensor to its motor controller, the Systemcore also contains 6 Smart I/O ports. While these ports can be used in multiple ways, the most common is to read the outputs of digital or analog sensors. +* These ports can also function as Pulse Width Modulation (PWM) outputs or digital outputs. + * PWM is another way to command a motor controller, but it is far inferior to CAN because it does not allow the motor controller to communicate at all with any other devices. A Smart I/O port set to PWM output can only control one motor controller, compared to the dozen or more devices you can connect to a single CAN bus. + * Digital outputs can be used to control pneumatic solenoids +* The last key port on the Systemcore is the Robot Signal Light (RSL) port. This is the only place you need to wire the RSL to. + + ## CAN (Controller Area Network) * CAN can be wired in two different ways: * Daisy-chained: this is the way that CAN is meant to be wired, and it is the most common way that FRC components are wired. CAN wires originate at the Systemcore in one of the CAN bus ports. The wires then go to each component in order, ending at the terminating resistor. One full loop, as mentioned previously, is called a CAN bus. From 6097f24658dc110ab39e0b90d070c09b4c0359f9 Mon Sep 17 00:00:00 2001 From: Mukesh Ramanathan <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:07:43 -0400 Subject: [PATCH 17/36] Update docs/FRC-Control-System.md Co-authored-by: Tim Winters --- docs/FRC-Control-System.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FRC-Control-System.md b/docs/FRC-Control-System.md index 5ee52d2..66819f7 100644 --- a/docs/FRC-Control-System.md +++ b/docs/FRC-Control-System.md @@ -9,7 +9,7 @@ title: FRC Control System * Battery supplies Power to the Robot * The battery connects to a Main Breaker and then a Power Distribution (PD) device -* Every other component that receives power from the battery is connected to one slot on the PD +* Every other component that receives power from the battery is connected to a PD circuit, either directly or indirectly. * This covers almost everything on your robot. The only exceptions are for cameras or coprocessors (other computing devices in addition to the Systemcore) that come with built-in batteries or take small USB battery packs. * Every port on the PD that you use must be protected by a Breaker or a Fuse. You will use breakers to protect most devices. The minimum gauge of wire that you are allowed to use in each port is determined by which breaker or fuse is connected to that port—larger breakers/fuses require larger wires. * Each port on the PD may only connect to one pair of wires. Most of your use cases, like powering motors, will involve connecting only one device per port, so only one pair of power wires is necessary. From ab5e5a96749f02fa52d84e6034593230efdd2130 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:09:02 -0400 Subject: [PATCH 18/36] proper wording --- docs/FRC-Control-System.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FRC-Control-System.md b/docs/FRC-Control-System.md index 5ee52d2..d3e2ddf 100644 --- a/docs/FRC-Control-System.md +++ b/docs/FRC-Control-System.md @@ -10,7 +10,7 @@ title: FRC Control System * Battery supplies Power to the Robot * The battery connects to a Main Breaker and then a Power Distribution (PD) device * Every other component that receives power from the battery is connected to one slot on the PD -* This covers almost everything on your robot. The only exceptions are for cameras or coprocessors (other computing devices in addition to the Systemcore) that come with built-in batteries or take small USB battery packs. +* This covers almost everything on your robot. Cameras or coprocessors (other computing devices in addition to the Systemcore) can come with built-in batteries or can take small USB battery packs. * Every port on the PD that you use must be protected by a Breaker or a Fuse. You will use breakers to protect most devices. The minimum gauge of wire that you are allowed to use in each port is determined by which breaker or fuse is connected to that port—larger breakers/fuses require larger wires. * Each port on the PD may only connect to one pair of wires. Most of your use cases, like powering motors, will involve connecting only one device per port, so only one pair of power wires is necessary. * However, some small devices, like the four encoders on a swerve drive, can easily be powered together by a single PD port. To power multiple devices from one PD port, you can connect a smaller power distribution device, like a REV Mini Power Module, or splice multiple wires together by soldering them or using a terminal block. From cc732ddccb05588cc17e1a2d286d0a622ca34415 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:10:33 -0400 Subject: [PATCH 19/36] refine link --- docs/FRC-Control-System.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FRC-Control-System.md b/docs/FRC-Control-System.md index d3e2ddf..1198dca 100644 --- a/docs/FRC-Control-System.md +++ b/docs/FRC-Control-System.md @@ -14,7 +14,7 @@ title: FRC Control System * Every port on the PD that you use must be protected by a Breaker or a Fuse. You will use breakers to protect most devices. The minimum gauge of wire that you are allowed to use in each port is determined by which breaker or fuse is connected to that port—larger breakers/fuses require larger wires. * Each port on the PD may only connect to one pair of wires. Most of your use cases, like powering motors, will involve connecting only one device per port, so only one pair of power wires is necessary. * However, some small devices, like the four encoders on a swerve drive, can easily be powered together by a single PD port. To power multiple devices from one PD port, you can connect a smaller power distribution device, like a REV Mini Power Module, or splice multiple wires together by soldering them or using a terminal block. - * This [5-port Wago-style connector](https://www.amazon.com/LEPEVNEY-Electrical-Connectors-Retardant-Connector/dp/B0GCJGNR1R/ref=sr_1_4?crid=3S5XVPL2BYERF&dib=eyJ2IjoiMSJ9.fnqoyr8S4BoE6gGHz4zoKNKmHKklMrr4b2weTcpcWDTtgCFb9RqDgBQ5F-tbMFAbu-gasv3x3za6PIa3aqW2dUvf2vMRlnPKnQA48KHO2SYTRiV69c_SfiG7Uk7fiULECS2MLTP-yaaymRvp14ij9Mud3-jhJY4C9Ki-CUEiCTAhYIK6Oak4YNHcirDnV_LF4RVtLIb8UO6KggrtqmTMvYdDPQzeTNgsVz_f8BBDDcQ.zFwnjvta4aXVr957XsFxWN2hmtDJTrVbEffRnxRYKV0&dib_tag=se&keywords=Wago%2B2%2BPort%2B(10)%2B3%2BPort%2B(10)%2B5%2BPort%2B(4)%2BLever-Nut%2BAssortment%2BPack%2BConductor%2BCompact%2BConnector%2BTerminal%2BBlock%2BWire%2BPush%2BCable%2BConnector%2B12-28%2BAWG%2C%2B32A%3A%2BAutomotiveor%2BCompact%2BConnector%2BTerminal%2BBlock%2BWire%2BPush%2BCable%2BConnector%2B12-28%2BAWG%2C%2B32A%3A%2BAutomotive&nsdOptOutParam=true&qid=1780958682&sprefix=wago%2B2%2Bport%2B10%2B3%2Bport%2B10%2B5%2Bport%2B4%2Blever-nut%2Bassortment%2Bpack%2Bconductor%2Bcompact%2Bconnector%2Bterminal%2Bblock%2Bwire%2Bpush%2Bcable%2Bconnector%2B12-28%2Bawg%2C%2B32a%2Bautomotiveor%2Bcompact%2Bconnector%2Bterminal%2Bblock%2Bwire%2Bpush%2Bcable%2Bconnector%2B12-28%2Bawg%2C%2B32a%2Bautomotive%2Caps%2C183&sr=8-4&th=1) is our preferred way to make a four-way splice. Soldering, especially with power wires 18 AWG or larger, is not recommended. + * This [5-port Wago-style connector](https://www.amazon.com/LEPEVNEY-Electrical-Connectors-Retardant-Connector/dp/B0GCJGNR1R/ref=sr_1_4?) is our preferred way to make a four-way splice. Soldering, especially with power wires 18 AWG or larger, is not recommended. !!! warning Some components, like the Radio, have specific rules regarding how they must be powered. Be sure to read the power distribution rules fully and ensure that you are powering every device in a legal way. From 70d242c576e8a3afade13bc82cb128faa1751866 Mon Sep 17 00:00:00 2001 From: Mukesh Ramanathan <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:10:41 -0400 Subject: [PATCH 20/36] Update docs/FRC-Control-System.md Co-authored-by: Tim Winters --- docs/FRC-Control-System.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FRC-Control-System.md b/docs/FRC-Control-System.md index 66819f7..dd89f14 100644 --- a/docs/FRC-Control-System.md +++ b/docs/FRC-Control-System.md @@ -23,7 +23,7 @@ title: FRC Control System ## Control System Communications & Signal Basics -The previous section only covered how to make the devices on your robot turn on. To make things move, you’ll need signals too. The next few sections will build on top of this one, to cover more on how to manage your robot. +The previous section only covered how to power your control system. This section will cover communication with your control system devices. * Almost all outside communication with the robot starts with the Robot Radio. The radio communicates with other devices on the robot through Ethernet cables. The radio has 4 Ethernet ports—1 for the Systemcore, 2 for other devices (such as cameras), and 1 to connect a computer for when you need to use a wired connection to the robot (commonly referred to as “tethering”), like in the pits at a competition. * While the radio will function if you connect devices on the robot to all 4 ports, this is not recommended because it would require removing a device to tether. This makes it possible to forget to plug the device back in, and it means that the robot system will be different while tethered than it is on the field. * If you need additional ports on the radio, you can connect one port to an Ethernet switch and your additional devices to that. From 466b6a6eafe1a29dcac5c0b135a652e0efc9f218 Mon Sep 17 00:00:00 2001 From: Mukesh Ramanathan <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:11:14 -0400 Subject: [PATCH 21/36] Communication wording Co-authored-by: Tim Winters --- docs/FRC-Control-System.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FRC-Control-System.md b/docs/FRC-Control-System.md index dd89f14..814604d 100644 --- a/docs/FRC-Control-System.md +++ b/docs/FRC-Control-System.md @@ -24,7 +24,7 @@ title: FRC Control System ## Control System Communications & Signal Basics The previous section only covered how to power your control system. This section will cover communication with your control system devices. -* Almost all outside communication with the robot starts with the Robot Radio. The radio communicates with other devices on the robot through Ethernet cables. The radio has 4 Ethernet ports—1 for the Systemcore, 2 for other devices (such as cameras), and 1 to connect a computer for when you need to use a wired connection to the robot (commonly referred to as “tethering”), like in the pits at a competition. +* The robot radio allows the Driver Station to communicate with the robot, and connects onboard devices with the robot controller. The radio communicates with other devices on the robot through Ethernet cables. The radio has 4 Ethernet ports—1 for the Systemcore, 2 for other devices (such as cameras), and 1 to connect direction to the Driver Station or other computer. * While the radio will function if you connect devices on the robot to all 4 ports, this is not recommended because it would require removing a device to tether. This makes it possible to forget to plug the device back in, and it means that the robot system will be different while tethered than it is on the field. * If you need additional ports on the radio, you can connect one port to an Ethernet switch and your additional devices to that. * The Systemcore controls all the motors on your robot and can also read many types of sensors. Nearly all your motor controllers will communicate with the Systemcore through CAN. The Systemcore has ports for up to 5 CAN buses. From b627ef4c3d63e0bef94ce85ff98d2a9682d46550 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:12:44 -0400 Subject: [PATCH 22/36] enunciating i2c --- docs/intro.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/docs/intro.md b/docs/intro.md index db2291e..8270bcc 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -32,14 +32,10 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - Twist the wire pairs: We do this because it allows any external vibrations and EMI to affect both wires rather than one, keeping the measurements on each wire consistent with each other. - Strain relief: Strain relief is when you give wiring room to "breathe". Allowing it not to be stressed and potentially rip out connections in wiring. This is important in any system, whether power or CAN, but it is especially important for CAN wires to reduce noise and vibrations. - PWM: "Pulse-Width Modulation" - one-wire signaling to send any value between 0-100% - - Ports for this type of connection can be found on the RoboRIO - - The functionality for this, however, can be found in the Smart I/O ports on the Systemcore + - The functionality for this can be found in the Smart I/O ports on the Systemcore - - Note that the RoboRIO is not in use as of the 2027 FRC season. Systemcore is the new FRC Control System Hub -- I2C: "Inter-Integrated Circuit" - two-wire signaling to send any value between 0-100% - - Ports for this type of connection can be found on the RoboRIO - - The functionality for this, however, can be found in the Smart I/O ports on the Systemcore - - Note that the RoboRIO is not in use as of the 2027 FRC season. Systemcore is the new FRC Control System Hub +- I2C (pronounced eye-squared-see or eye-two-see): "Inter-Integrated Circuit" - two-wire signaling to send any value between 0-100% + - The functionality for this can be found in the Smart I/O ports on the Systemcore === "CAN Wiring" From cc7547faefadd019686d5fafdf3a6e314635c2b3 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:13:55 -0400 Subject: [PATCH 23/36] wording --- docs/intro.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/intro.md b/docs/intro.md index 8270bcc..77c7189 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -31,9 +31,8 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - Differential Buses: CAN is a differential bus. This means that it essentially transfers information by measuring the voltage difference between two wires in a pair (CAN High (Yellow) and CAN Low (Green)). This makes it more resistant to noise, or electromagnetic interference (EMI), which is prevalent in FRC. However, some measures need to be taken for this noise resistance to be most effective: - Twist the wire pairs: We do this because it allows any external vibrations and EMI to affect both wires rather than one, keeping the measurements on each wire consistent with each other. - Strain relief: Strain relief is when you give wiring room to "breathe". Allowing it not to be stressed and potentially rip out connections in wiring. This is important in any system, whether power or CAN, but it is especially important for CAN wires to reduce noise and vibrations. -- PWM: "Pulse-Width Modulation" - one-wire signaling to send any value between 0-100% +- PWM (pronounced pee-vee-em): "Pulse-Width Modulation" - one-wire signaling to send any value between 0-100% - The functionality for this can be found in the Smart I/O ports on the Systemcore - - I2C (pronounced eye-squared-see or eye-two-see): "Inter-Integrated Circuit" - two-wire signaling to send any value between 0-100% - The functionality for this can be found in the Smart I/O ports on the Systemcore @@ -52,7 +51,7 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - These wires carry high current and need to be thick to handle the load. - For smaller components, you'll typically see 18-22 AWG wires (CAN, PWM, etc) - These wires carry lower current and can be thinner. - - Other components, like motors, will typically bear 8-12 AWG wires. + - Other components, like motors, will typically have 8-12 AWG wires. ### Parallel vs Series #### Parallel From 3917e2fbab626c9e027389a09f221b4aa75540cc Mon Sep 17 00:00:00 2001 From: Mukesh Ramanathan <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:16:33 -0400 Subject: [PATCH 24/36] Update docs/FRC-Control-System.md Co-authored-by: Tim Winters --- docs/FRC-Control-System.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FRC-Control-System.md b/docs/FRC-Control-System.md index cd080ba..3ba2e9f 100644 --- a/docs/FRC-Control-System.md +++ b/docs/FRC-Control-System.md @@ -25,7 +25,7 @@ title: FRC Control System The previous section only covered how to power your control system. This section will cover communication with your control system devices. * The robot radio allows the Driver Station to communicate with the robot, and connects onboard devices with the robot controller. The radio communicates with other devices on the robot through Ethernet cables. The radio has 4 Ethernet ports—1 for the Systemcore, 2 for other devices (such as cameras), and 1 to connect direction to the Driver Station or other computer. - * While the radio will function if you connect devices on the robot to all 4 ports, this is not recommended because it would require removing a device to tether. This makes it possible to forget to plug the device back in, and it means that the robot system will be different while tethered than it is on the field. + * Avoid using the Driver Station port for onboard devices. Instead, you can use a dedicated network switch to provide more ports than the radio alone provides. * If you need additional ports on the radio, you can connect one port to an Ethernet switch and your additional devices to that. * The Systemcore controls all the motors on your robot and can also read many types of sensors. Nearly all your motor controllers will communicate with the Systemcore through CAN. The Systemcore has ports for up to 5 CAN buses. * While you can theoretically put as many devices as you want on the same CAN bus, trying to connect everything on your robot to a single bus can cause problems. If there are too many devices on one bus, you can exceed the bus’s utilization limit. This means there isn’t enough time for all the devices to send all the messages they are trying to. While you can adjust settings in software to reduce this problem, it is safest to spread your devices across multiple buses to keep the utilization on all of them low. From 411be84c6539141428981def2cb74d3696e46240 Mon Sep 17 00:00:00 2001 From: Mukesh Ramanathan <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:16:50 -0400 Subject: [PATCH 25/36] Update docs/FRC-Control-System.md Co-authored-by: Tim Winters --- docs/FRC-Control-System.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FRC-Control-System.md b/docs/FRC-Control-System.md index 3ba2e9f..ba26e74 100644 --- a/docs/FRC-Control-System.md +++ b/docs/FRC-Control-System.md @@ -27,7 +27,7 @@ The previous section only covered how to power your control system. This section * The robot radio allows the Driver Station to communicate with the robot, and connects onboard devices with the robot controller. The radio communicates with other devices on the robot through Ethernet cables. The radio has 4 Ethernet ports—1 for the Systemcore, 2 for other devices (such as cameras), and 1 to connect direction to the Driver Station or other computer. * Avoid using the Driver Station port for onboard devices. Instead, you can use a dedicated network switch to provide more ports than the radio alone provides. * If you need additional ports on the radio, you can connect one port to an Ethernet switch and your additional devices to that. -* The Systemcore controls all the motors on your robot and can also read many types of sensors. Nearly all your motor controllers will communicate with the Systemcore through CAN. The Systemcore has ports for up to 5 CAN buses. +* The Systemcore can control motors via its PWM or CAN interfaces. Modern FRC motor controllers support both protocols, though CAN provides bidirectional communication, and more advanced control. The Systemcore supports 5 native CAN buses, as well as external CAN Busses such as the CTRE Canivore. * While you can theoretically put as many devices as you want on the same CAN bus, trying to connect everything on your robot to a single bus can cause problems. If there are too many devices on one bus, you can exceed the bus’s utilization limit. This means there isn’t enough time for all the devices to send all the messages they are trying to. While you can adjust settings in software to reduce this problem, it is safest to spread your devices across multiple buses to keep the utilization on all of them low. * The Systemcore has 4 USB ports. You can also create a CAN bus by connecting a [CTRE CANivore](https://store.ctr-electronics.com/products/canivore) to the Systemcore through one of its USB ports. * It is also useful to use a USB port for a flash drive to store robot data log files. After each match at a competition, you can unplug it to quickly view the logs on your computer without needing to keep the robot powered on. From e994fea48db2d55e13c91f3ac3c97a6e55bb6ab8 Mon Sep 17 00:00:00 2001 From: Mukesh Ramanathan <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:17:23 -0400 Subject: [PATCH 26/36] CAN specs Co-authored-by: Tim Winters --- docs/FRC-Control-System.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FRC-Control-System.md b/docs/FRC-Control-System.md index ba26e74..8d43713 100644 --- a/docs/FRC-Control-System.md +++ b/docs/FRC-Control-System.md @@ -28,7 +28,7 @@ The previous section only covered how to power your control system. This section * Avoid using the Driver Station port for onboard devices. Instead, you can use a dedicated network switch to provide more ports than the radio alone provides. * If you need additional ports on the radio, you can connect one port to an Ethernet switch and your additional devices to that. * The Systemcore can control motors via its PWM or CAN interfaces. Modern FRC motor controllers support both protocols, though CAN provides bidirectional communication, and more advanced control. The Systemcore supports 5 native CAN buses, as well as external CAN Busses such as the CTRE Canivore. - * While you can theoretically put as many devices as you want on the same CAN bus, trying to connect everything on your robot to a single bus can cause problems. If there are too many devices on one bus, you can exceed the bus’s utilization limit. This means there isn’t enough time for all the devices to send all the messages they are trying to. While you can adjust settings in software to reduce this problem, it is safest to spread your devices across multiple buses to keep the utilization on all of them low. + * CAN Busses have a bandwidth limit that should not be exceeded. Consider splitting devices across multiple busses to keep individual bus utilization lower. Devices that are on separate busses will not be able to communicate with each other. Be sure to keep sensors on the same bus as the motors that utilize them, such as your swerve motors and encoders. * The Systemcore has 4 USB ports. You can also create a CAN bus by connecting a [CTRE CANivore](https://store.ctr-electronics.com/products/canivore) to the Systemcore through one of its USB ports. * It is also useful to use a USB port for a flash drive to store robot data log files. After each match at a competition, you can unplug it to quickly view the logs on your computer without needing to keep the robot powered on. * Many types of sensors, like [CTRE’s CANcoder](https://store.ctr-electronics.com/products/cancoder), communicate over CAN, so you can wire them into your CAN buses just like motors From 988ccfb9af5f268eb065b93950390f15660605f7 Mon Sep 17 00:00:00 2001 From: Mukesh Ramanathan <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:18:05 -0400 Subject: [PATCH 27/36] shorten rsl wording Co-authored-by: Tim Winters --- docs/FRC-Control-System.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FRC-Control-System.md b/docs/FRC-Control-System.md index 8d43713..ee937f6 100644 --- a/docs/FRC-Control-System.md +++ b/docs/FRC-Control-System.md @@ -37,7 +37,7 @@ The previous section only covered how to power your control system. This section * These ports can also function as Pulse Width Modulation (PWM) outputs or digital outputs. * PWM is another way to command a motor controller, but it is far inferior to CAN because it does not allow the motor controller to communicate at all with any other devices. A Smart I/O port set to PWM output can only control one motor controller, compared to the dozen or more devices you can connect to a single CAN bus. * Digital outputs can be used to control pneumatic solenoids -* The last key port on the Systemcore is the Robot Signal Light (RSL) port. This is the only place you need to wire the RSL to. +* The Systemcore also contains an RSL port ## CAN (Controller Area Network) From 3b8a7eecdff1cbd88b546eceb480374bfb83211a Mon Sep 17 00:00:00 2001 From: Mukesh Ramanathan <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:18:42 -0400 Subject: [PATCH 28/36] Update docs/intro.md Co-authored-by: Tim Winters --- docs/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro.md b/docs/intro.md index 77c7189..e525caf 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -10,7 +10,7 @@ This may come as a shock, but electronics are dangerous. A single mistake could - A battery spilling is dangerous for everyone because it can cause chemical burns and damage if you touch it. When a battery spills, cover it with baking soda. This neutralizes the battery acid and it becomes less harmful. Do **not** touch your eyes until after washing your hands. - Never hold batteries from the wires. Always hold them from the body. By holding batteries from their wires, you are wearing down the connection between the wire and the battery which can be detrimental for performance. This can also lead to a snap in the batteries terminal, which can drop the battery if you're holding it. -- Always wear PPE when handling electronics. This includes at the bare minimum safety glasses. You don't want to get shocked or have a wire snap and hit you in the eye. +- Always wear PPE when handling electronics. This includes at the bare minimum safety glasses. - Don’t touch the metals of opposite polarity wires together, especially for batteries as it can cause sparks and flame. - Don’t allow metal shavings to get into components: Use electrical tape to cover open holes in components. This prevents short circuits and damage to sensitive parts. - A short circuit is when two wires with different polarities have contact, causing a large current to flow and potentially causing fire or damage to components. From 3623a2e007be6695a7ed46c12c4c39ecc9fc38dd Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:19:42 -0400 Subject: [PATCH 29/36] specify wire touches --- docs/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro.md b/docs/intro.md index 77c7189..810b47a 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -11,7 +11,7 @@ This may come as a shock, but electronics are dangerous. A single mistake could - A battery spilling is dangerous for everyone because it can cause chemical burns and damage if you touch it. When a battery spills, cover it with baking soda. This neutralizes the battery acid and it becomes less harmful. Do **not** touch your eyes until after washing your hands. - Never hold batteries from the wires. Always hold them from the body. By holding batteries from their wires, you are wearing down the connection between the wire and the battery which can be detrimental for performance. This can also lead to a snap in the batteries terminal, which can drop the battery if you're holding it. - Always wear PPE when handling electronics. This includes at the bare minimum safety glasses. You don't want to get shocked or have a wire snap and hit you in the eye. -- Don’t touch the metals of opposite polarity wires together, especially for batteries as it can cause sparks and flame. +- Don’t touch the metals that have unintended bridges in connections together, especially for batteries as it can cause sparks and flame. - Don’t allow metal shavings to get into components: Use electrical tape to cover open holes in components. This prevents short circuits and damage to sensitive parts. - A short circuit is when two wires with different polarities have contact, causing a large current to flow and potentially causing fire or damage to components. - Keep exposed wires away from things that can break them like motor splines or the insides of swerve modules. This prevents damage to the wires and potential short circuits. From 4223a3f87f37f144055d597705c1bff5f4a793db Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:20:38 -0400 Subject: [PATCH 30/36] exposed wire wording --- docs/intro.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/intro.md b/docs/intro.md index 810b47a..f1290cd 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -15,6 +15,7 @@ This may come as a shock, but electronics are dangerous. A single mistake could - Don’t allow metal shavings to get into components: Use electrical tape to cover open holes in components. This prevents short circuits and damage to sensitive parts. - A short circuit is when two wires with different polarities have contact, causing a large current to flow and potentially causing fire or damage to components. - Keep exposed wires away from things that can break them like motor splines or the insides of swerve modules. This prevents damage to the wires and potential short circuits. + - Always try and keep your wiring mounted on the robot and away from the motion of your and other robots. ## Electrical Theory While electrical isn’t overly complex and the theory is rarely used in FRC electrical, a basic understanding is good to know. From aa924d0d5a171d3ca5bdd69b25fb2a46d8c17adf Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:23:03 -0400 Subject: [PATCH 31/36] strain relief touch up --- docs/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro.md b/docs/intro.md index f1290cd..0a83c4b 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -31,7 +31,7 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - CAN Wire can be any two colors, but they are most commonly green and yellow. This color scheme can be changed to most anything to differentiate between different CAN buses. CAN is essentially the robot's information system. If the power wires are the blood vessels, CAN is the nervous system. - Differential Buses: CAN is a differential bus. This means that it essentially transfers information by measuring the voltage difference between two wires in a pair (CAN High (Yellow) and CAN Low (Green)). This makes it more resistant to noise, or electromagnetic interference (EMI), which is prevalent in FRC. However, some measures need to be taken for this noise resistance to be most effective: - Twist the wire pairs: We do this because it allows any external vibrations and EMI to affect both wires rather than one, keeping the measurements on each wire consistent with each other. - - Strain relief: Strain relief is when you give wiring room to "breathe". Allowing it not to be stressed and potentially rip out connections in wiring. This is important in any system, whether power or CAN, but it is especially important for CAN wires to reduce noise and vibrations. + - Strain relief: Strain relief is when you give wiring to a strong component that eliminates the potential of a stronger, unintended force, from pulling on the wire. This way, the strain is pulling on the component instead of the wire's connector. This is important in any system, whether power or CAN. - PWM (pronounced pee-vee-em): "Pulse-Width Modulation" - one-wire signaling to send any value between 0-100% - The functionality for this can be found in the Smart I/O ports on the Systemcore - I2C (pronounced eye-squared-see or eye-two-see): "Inter-Integrated Circuit" - two-wire signaling to send any value between 0-100% From e83b9452f39bbfdb17d645500d39dd447712a6e1 Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Mon, 10 Aug 2026 17:25:07 -0400 Subject: [PATCH 32/36] smart i/o wording redundancy fixes --- docs/intro.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/intro.md b/docs/intro.md index 0a83c4b..e176031 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -33,10 +33,9 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - Twist the wire pairs: We do this because it allows any external vibrations and EMI to affect both wires rather than one, keeping the measurements on each wire consistent with each other. - Strain relief: Strain relief is when you give wiring to a strong component that eliminates the potential of a stronger, unintended force, from pulling on the wire. This way, the strain is pulling on the component instead of the wire's connector. This is important in any system, whether power or CAN. - PWM (pronounced pee-vee-em): "Pulse-Width Modulation" - one-wire signaling to send any value between 0-100% - - The functionality for this can be found in the Smart I/O ports on the Systemcore + - Systemcore contains 6 PWM ports via Smart I/O - I2C (pronounced eye-squared-see or eye-two-see): "Inter-Integrated Circuit" - two-wire signaling to send any value between 0-100% - - The functionality for this can be found in the Smart I/O ports on the Systemcore - + - Systemcore contains 6 PWM ports via Smart I/O === "CAN Wiring" ![CAN-Wiring](/assets/FRC-Control-System/CAN-Wiring.png){ width="50%" } From f7bbdb2ad851029e8b1eeb5c086d2f38feb220de Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Tue, 11 Aug 2026 12:56:25 -0400 Subject: [PATCH 33/36] add erik to contributors --- docs/contributions/Contribution.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/contributions/Contribution.md b/docs/contributions/Contribution.md index 62d5220..941b92f 100644 --- a/docs/contributions/Contribution.md +++ b/docs/contributions/Contribution.md @@ -30,7 +30,8 @@ title: Contribution Alex - FRC 6238A / CSA Banks - FRC 2974M Bhanu - FRC 3506 -Laukik - FRC503 +Erik - FRC 1648M +Laukik - FRC 503 Nick - FRC 2851A Yoyo - FRC 100 From c6ae008c3b02973b3bdb6a6f734a91147713de7f Mon Sep 17 00:00:00 2001 From: Mukiewukie <16mukeshr@gmail.com> Date: Tue, 11 Aug 2026 14:49:21 -0400 Subject: [PATCH 34/36] no pronounciation :sob --- docs/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro.md b/docs/intro.md index 005e932..c8b0be7 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -32,7 +32,7 @@ While electrical isn’t overly complex and the theory is rarely used in FRC ele - Differential Buses: CAN is a differential bus. This means that it essentially transfers information by measuring the voltage difference between two wires in a pair (CAN High (Yellow) and CAN Low (Green)). This makes it more resistant to noise, or electromagnetic interference (EMI), which is prevalent in FRC. However, some measures need to be taken for this noise resistance to be most effective: - Twist the wire pairs: We do this because it allows any external vibrations and EMI to affect both wires rather than one, keeping the measurements on each wire consistent with each other. - Strain relief: Strain relief is when you give wiring to a strong component that eliminates the potential of a stronger, unintended force, from pulling on the wire. This way, the strain is pulling on the component instead of the wire's connector. This is important in any system, whether power or CAN. -- PWM (pronounced pee-vee-em): "Pulse-Width Modulation" - one-wire signaling to send any value between 0-100% +- PWM: "Pulse-Width Modulation" - one-wire signaling to send any value between 0-100% - Systemcore contains 6 PWM ports via Smart I/O - I2C (pronounced eye-squared-see or eye-two-see): "Inter-Integrated Circuit" - two-wire signaling to send any value between 0-100% - Systemcore contains 6 PWM ports via Smart I/O From e19135945683a4763d77ba2fae178c5dc3d13142 Mon Sep 17 00:00:00 2001 From: Jimmy McCosker Date: Tue, 11 Aug 2026 15:35:25 -0400 Subject: [PATCH 35/36] various formatting fixes --- docs/FRC-Control-System.md | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/docs/FRC-Control-System.md b/docs/FRC-Control-System.md index ee937f6..d7be124 100644 --- a/docs/FRC-Control-System.md +++ b/docs/FRC-Control-System.md @@ -24,39 +24,41 @@ title: FRC Control System ## Control System Communications & Signal Basics The previous section only covered how to power your control system. This section will cover communication with your control system devices. + * The robot radio allows the Driver Station to communicate with the robot, and connects onboard devices with the robot controller. The radio communicates with other devices on the robot through Ethernet cables. The radio has 4 Ethernet ports—1 for the Systemcore, 2 for other devices (such as cameras), and 1 to connect direction to the Driver Station or other computer. - * Avoid using the Driver Station port for onboard devices. Instead, you can use a dedicated network switch to provide more ports than the radio alone provides. - * If you need additional ports on the radio, you can connect one port to an Ethernet switch and your additional devices to that. + * Avoid using the Driver Station port for onboard devices. Instead, you can use a dedicated network switch to provide more ports than the radio alone provides. + * If you need additional ports on the radio, you can connect one port to an Ethernet switch and your additional devices to that. * The Systemcore can control motors via its PWM or CAN interfaces. Modern FRC motor controllers support both protocols, though CAN provides bidirectional communication, and more advanced control. The Systemcore supports 5 native CAN buses, as well as external CAN Busses such as the CTRE Canivore. - * CAN Busses have a bandwidth limit that should not be exceeded. Consider splitting devices across multiple busses to keep individual bus utilization lower. Devices that are on separate busses will not be able to communicate with each other. Be sure to keep sensors on the same bus as the motors that utilize them, such as your swerve motors and encoders. + * CAN Busses have a bandwidth limit that should not be exceeded. Consider splitting devices across multiple busses to keep individual bus utilization lower. Devices that are on separate busses will not be able to communicate with each other. Be sure to keep sensors on the same bus as the motors that utilize them, such as your swerve motors and encoders. * The Systemcore has 4 USB ports. You can also create a CAN bus by connecting a [CTRE CANivore](https://store.ctr-electronics.com/products/canivore) to the Systemcore through one of its USB ports. - * It is also useful to use a USB port for a flash drive to store robot data log files. After each match at a competition, you can unplug it to quickly view the logs on your computer without needing to keep the robot powered on. + * It is also useful to use a USB port for a flash drive to store robot data log files. After each match at a competition, you can unplug it to quickly view the logs on your computer without needing to keep the robot powered on. * Many types of sensors, like [CTRE’s CANcoder](https://store.ctr-electronics.com/products/cancoder), communicate over CAN, so you can wire them into your CAN buses just like motors * Some other sensors, like [TTB’s Thrifty Absolute Magnetic Encoder](https://www.thethriftybot.com/products/thrifty-absolute-magnetic-encoder), can connect directly to the motor controller of the relevant motor * For any other sensors, or for cases where you do not want to connect a sensor to its motor controller, the Systemcore also contains 6 Smart I/O ports. While these ports can be used in multiple ways, the most common is to read the outputs of digital or analog sensors. * These ports can also function as Pulse Width Modulation (PWM) outputs or digital outputs. - * PWM is another way to command a motor controller, but it is far inferior to CAN because it does not allow the motor controller to communicate at all with any other devices. A Smart I/O port set to PWM output can only control one motor controller, compared to the dozen or more devices you can connect to a single CAN bus. - * Digital outputs can be used to control pneumatic solenoids + * PWM is another way to command a motor controller, but it is far inferior to CAN because it does not allow the motor controller to communicate at all with any other devices. A Smart I/O port set to PWM output can only control one motor controller, compared to the dozen or more devices you can connect to a single CAN bus. + * Digital outputs can be used to control pneumatic solenoids * The Systemcore also contains an RSL port ## CAN (Controller Area Network) * CAN can be wired in two different ways: - * Daisy-chained: this is the way that CAN is meant to be wired, and it is the most common way that FRC components are wired. CAN wires originate at the Systemcore in one of the CAN bus ports. The wires then go to each component in order, ending at the terminating resistor. One full loop, as mentioned previously, is called a CAN bus. - * Star topology (not recommended): This is the method used to branch the CAN bus by each individual component. This is used by some teams because in a normal CAN bus, if one component loses a connection, they all do. - * With a Star topology, each component has its own individual “CAN bus”. This is not recommended at all in modern FRC, as the introduction of SystemCore allows you to split up CAN buses much further than originally. - * Additionally, a star topology presents many issues as it is NOT AT ALL how CAN is meant to be wired. - * Always place the resistor at the end of each loop. This will be a 120 OHM resistor in a WAGO, or if terminating at a motor with a powerpole adapter board, the Weidmuller connectors may be used. + * Daisy-chained: this is the way that CAN is meant to be wired, and it is the most common way that FRC components are wired. CAN wires originate at the Systemcore in one of the CAN bus ports. The wires then go to each component in order, ending at the terminating resistor. One full loop, as mentioned previously, is called a CAN bus. + * Star topology (not recommended): This is the method used to branch the CAN bus by each individual component. This is used by some teams because in a normal CAN bus, if one component loses a connection, they all do. + * With a Star topology, each component has its own individual “CAN bus”. This is not recommended at all in modern FRC, as the introduction of SystemCore allows you to split up CAN buses much further than originally. + * Additionally, a star topology presents many issues as it is NOT AT ALL how CAN is meant to be wired. + * Always place the resistor at the end of each loop. This will be a 120 OHM resistor in a WAGO, or if terminating at a motor with a powerpole adapter board, the Weidmuller connectors may be used. ![CAN-Wiring](/assets/FRC-Control-System/CAN-Wiring.png) ### Terminating Resistors There are many ways to terminate a CAN bus, but the most common ways are: + * Using a 120 OHM resistor in a WAGO * Using the Weidmuller connectors on a motor with a powerpole adapter board * Soldering a 120 OHM resistor * Using a 120 OHM resistor in a Power Distribution Panel (PDP) or Power Distribution Hub (PDH) -* Using the [Swyft](https://swyftrobotics.com/electrical/swyft-canender) CANender +* Using the [SWYFT](https://swyftrobotics.com/electrical/swyft-canender) CANender !!! info "Terminating a CAN Bus" When terminating a CAN bus, it is important to ensure that the resistor is placed at the end of the loop. This will prevent any signal reflection and ensure that the CAN bus is properly terminated. @@ -126,7 +128,7 @@ These are the devices that control the motors and help direct power and signals === "CTRE's Talon FX" - ![TalonFX](/assets/FRC-Control-System/Talon-FX.png) + ![TalonFX](/assets/FRC-Control-System/Talon-FX.png){ width="75%" } * This is the controller that is integrated into the Kraken’s (both X60 and X44). Talon FX acts as an integrated motor controller, meaning that an external controller that is separately wired is not needed. * For Kraken X60/X44s, wiring is relatively simple because the controller is integrated in the motor itself. CAN and power directly stem from the motor and can be connected to their appropriate locations. From c8d74661479fd68763ffb581c99efee0a36ff519 Mon Sep 17 00:00:00 2001 From: Jimmy McCosker Date: Tue, 11 Aug 2026 15:36:45 -0400 Subject: [PATCH 36/36] credit Tim - 78M --- docs/contributions/Contribution.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contributions/Contribution.md b/docs/contributions/Contribution.md index 941b92f..e3ecc34 100644 --- a/docs/contributions/Contribution.md +++ b/docs/contributions/Contribution.md @@ -33,6 +33,7 @@ title: Contribution Erik - FRC 1648M Laukik - FRC 503 Nick - FRC 2851A +Tim - FRC 78M Yoyo - FRC 100