The FRC Control System is usuallycomprised of 7 or more components.
The essential components include:
- Power Distribution Panel (PDP)
- Voltage Regulator Module (VRM)
- Pneumatic Control Module (PCM)
- 12V Battery
- 120 Amp Breaker
Other components that are important include:
- Motor Controllers (Talon SRXs, Victor SPs, Jaguars, etc.)
- Relays (Spikes) (Discontinued product but you can still buy them)
- "Custom Circuits" (Arduinos, LEDs, etc.)
- Sensors (Gyros, Accelerometers, Ultrasonic Sensor, etc.)
How the System Works (Generally)
This will be a rundown of how all of the components interact. If you have further questions after reading this, please feel free to contact me or find me in person.
- The first thing:
- On the PDP are several breakers. These will disrupt the flow of electricity to the components if the components draw too much power. This helps prevent fires and other issues. Different ports have different breakers. The larger ports have up to 40 Amp breakers. The smaller ports have up to 30 Amp Breakers. (Usually they have 5 Amp, 20 Amp, and 30 Amp breakers installed). The small ports on the side have 5 Amp and 10 Amp automotive breakers installed. These ports are used for components such as the roboRIO[/], [i]Voltage Regulator Module, and Pneumatic Control Module.
- The roboRIO receives power via the Vbat Controller PWR port on the PDP. When power reaches the roboRIO, it will turn on. If it is receiving an incorrect voltage, it will flash an error code in it's signal light. It uses this power to run and to do things such as send communication signals through it's various communication ports.
The roboRIO's various ports include:
- PWM ports
- Analog Input ports
- Relay Control ports
- Robot Signal Light port
- Digital Input-Output (DIO) ports
- RS232 port
- I2C ("I Squared C") port
- CAN port
- MXP Custom Electronics port (Can be used to make custom circuits or to add extra communication ports [PWM, etc.])
- USB Female Type B port
- USB Host port
- Ethernet port
- SPI port
- Motor Controllers receive power via the 40 Amp ports on the PDP. When they receive this power, their LEDs will likely flash. Sometimes they will flash an error code if there is an incorrect voltage being applied. See their documentation for information as motor controllers vary.
- The motor controller then sends a controlled amount of electricity through the motor to have the motor spin at some percentage of its capacity. The motor controller is told how much power to send through via its communication port or wire.
MAKE SURE EVERYTHING IS WIRED WITH THE CORRECT POLARITY. POSITIVE TO POSITIVE, NEGATIVE TO NEGATIVE (AKA Ground to Ground)
Doing otherwise will possibly kill electronic components.
All of the electricity comes from the main 12V Battery on the robot. It can be converted into other voltages such as 5V, 3.3V, and 24V, but everything starts as 12V. The battery is connected to the main 120 Amp Breaker which prevents the robot from drawing too much load from the battery at one time. Drawing too much power can cause catastrophic failures such as fire.
We then move into the Power Distribution Panel. This component, as the name suggests, distributes the power to different components as needed. Different components connect to different ports depending on power draw. Some components require specific ports.
After the electricity passes through the PDP, it will go to various components. Let's go over the roboRIO and Motor Controllers.
- There are a few types of communication protocols that we can use in the FRC Control System. I will go over how they are wired but I will not be going over how the communication protocols actually work. That's a programming topic and I may add a link later if a guide is written on communication protocols.
- PWM(Pulse Width Modulation)
- RS 232
- I2C ("I Squared C")
- First, let's talk about PWM. With PWM, there will be a single cable going from the roboRIO to each motor controller. A PWM cable consists of 3 different wires. One carries power, one carries a signal, and one is ground. These cables are red, white, and black respectively.You can have multiple devices receive the same PWM signal at the same time through the use of a "Splitter" cable. However, this is illegal in FRC.
- Next, let's go over CAN. With CAN, all of the components are connected in sequence and terminated with a 100Ω resistor. This is called a CAN "daisy chain". The CAN cable consists of two wires, usually spiraled around each other (the spiral reduces interference which is a topic that I don't want to get into). One carries a "high" signal and the other carries the "low" signal. These are usually yellow and green respectively.
- One of the nice things about the 2015 FRC Control System is the fact that the 100Ω resistor is built right into the PDP and the PDP has electronics which allow monitoring of power information. This feature can be enabled or disabled by changing the position of a jumper from "on" to "off" or vice-versa on the PDP. (If you turn the termination resistor feature off, you can still have the PDP be part of the CAN daisy chain, it just won't be at the end of the chain.)
- One of the downsides of CAN is that it requires for all components to be in series. This means that if one component is incorrectly connected, the entire loop does not function. The wires must be connected "high" to "high" and "low" to "low" from one component to another otherwise the entire loop is nonfunctional.
- Sensors and other components that are not covered here connect to the roboRIO or motor controllers or other components through their various included wires or required size wire.
- Ethernet: It connects from the router to the roboRIO. This allows the robot to communicate wirelessly with the field or the driver station.
A few include:
- The rules dictated by FIRST include rules on what wires can be used for which applications. These are safety regulations to ensure that a thin wire is not carrying too high of a load as that may cause a fire.
- The 120 Amp load requires 6 AWG wire. This is only ever used in the connection between the Battery and the PDP.
- 31-40 Amp loads require 12AWG wire or thicker.
- 21-30 Amp loads require 14AWG wire or thicker.
- 6-20 Amp loads require 18 AWG wire or thicker.
- The wiring between the dedicated PDP terminals for the VRM and PCM and the Compressor output from the PCM requires 18 AWG wire or thicker.
- The wiring between the dedicated PDP terminals and the roboRIO, VRM 2 Amp circuits, and circuits ≤5 Amps requires 22 AWG wire or thicker.
- roboRIO PWM port outputs required 26 AWG wire or thicker.
- Signal Level circuits (i.e. circuits which draw ≤ 1 Amp continuous and have a source incapable of delivering > 1 Amp, including but not limited to roboRIO and non-PWM outputs, CAN signals, PCM Solenoid outputs, VRM 500mA outputs and Arduino outputs) require 28 AWG wire or thicker.
- Be aware that if you use a thicker wire than required, it may not fit into the appropriate port.
- FIRST specifies that if the wire gauge that comes with a component is smaller than the required minimum size, it can still be used as it is rated for the current draw of the component.
Let's have a quick rundown of how wire gauges work.
- Wire gauges are a scale to measure the thickness of wire. As a wire gauge goes up (Ex: 12 gauge to 18 gauge), the wire thickness gets smaller. This is because the wire gauge standard system of measurement (American Wire Gauge [AWG, read "gauge"]) is based on how many times the wire needs to pass through a machine to get to the desired thickness.
Here's a diagram that goes over what I just talked about. It isn't perfectly accurate as it does have some small differences like the radio connection but it is a pretty good illustration of most things.
Screws and nuts
- This post will not cover how screw sizes work. It's just a reference for electronics components. That thread is here
- roboRIO: 4-40
- Power Distribution Panel (PDP): 10-24 or 10-32 and appropriate nut (Any size 10 screw works.)(4)
- Voltage Regulator Module (VRM): 6-32 or 6-40 and appropriate nut (Any size 6 screw works.)(4)
- Pneumatic Control Module (PCM): 6-32 or 6-40 and appropriate nut (Any size 6 screw works.)(4)
- 120 Amp Breaker: 1/4"-20 or 1/4"-28 (Any size 1/4" screw works.)(2)
- Talon SRX and Victor SP: 8-32 or 8-36 and normal nut as the motor controllers have integrated nut pockets (Any size 8 screw works.)(2)
- Jaguar, Victor 888/Victor 884, and Talon SR Motor Controllers: 6-32 or 6-40 and appropriate nut (Any size 6 screw works.)(2)
- NOTE: The roboRIO, Talon SRX, and Victor SP have integrated Zip-Tie mounting slots/channels on them. They do not require screws to be mounted but screws are more precise and clean looking.
- Power Distribution Panel (PDP) Wire lug connecting screw: M6 X 1, 10mm Bolt and 6mm Split Lock Washer (2)
- Power Distribution Panel (PDP) Wire lug cover: 6-32 1/2" Length Flat-Head Socket Head Screw (2)
- 120 Amp Breaker Terminal size: 1/4"-28 Nut (These nuts fit M6 screws but M6 nuts are slightly smaller than 1/4"-28 nuts. Don't try to use an M6 nut on a 1/4"-28 screw. You'll damage the threads.)(2)
- Jaguar, Victor 888/Victor 884, and Talon SR Motor Controllers: 6-32 3/16" Screw
This part will simply cover the various screw thicknesses and thread counts that are used. Mounting screws will not include lengths because they depend on the thickness of the material to which the component is being mounted. Check the appropriate product pages for design drawings.