Electrical Help

I am looking to learn how to create electrical boards on FRC Robots. If anyone can share some helpful links or tips on the components to an electrical board and pneumatics that’d be great.

A little more info on what specifically you are interested would be helpful.

If you are completely new and want a general overview (where everything gas to plug in etc) https://wpilib.screenstepslive.com/s/4485/m/24166/c/86642

That has pneumatics and electronics. Here is a TL;DR of what everything is (not wiring)

Battery: stores power. Needs to have 6 gauge or larger wire (smaller number) coming off it.

Main breaker: black with a red button. The on/off switch of the robot. Click the black hinge to turn on. Red button for off.

PDP: long red/black alternating. Power distribution panel. This is where all of the battery power gets split between all the components (distributed)

roboRIO: Gray square. Main brain of the robot. This is where most or all the processing hhappens.

VRM: Small red and black square. Voltage regulator module. For some components that are particular about what voltage they get (see radio). It regulates the ~11-13V of the battery to 12V and 5V.

Radio/router/bridge: white. Communication between driver station and robot

PCM: Pneumatics control module

Motor Controllers: TalonSRX (smart), Spark, VictorSP, TalonSR, others.

I guess that was long too… If you have questions let me know. That was just a very quick overview.

This page from Team 358. The still have pages going back a few generations of hardware if you’re interested.

https://www.gitbook.com/book/mililanirobotics/frc-electrical-bible/details

This link too. It’s a work in progress but it’s got some good info.

I have a question about the motor controllers. When would you use a TalonSRX and when would you use a victor?

The more important sensors are in using the motor, and the tighter the loop you need, the more likely that you’d want to use the SRX. Setting up encoder PID, current limiting, and the like is much more straightforward with an SRX, and less prone to programmer error.

The Victor is less expensive, so you’re more likely to use it for open-loop control, or when using the built-in sensor inputs of an SRX do not meet your needs. For example, we had three sensors to detect a gear in our pocket this year. Any of them being triggered would indicate that we should move our hanger to a different position to hold it more securely. The SRX was not very helpful for this, and as we had a limited number of SRXs on hand, we used a Talon SR. If we’d have had enough SRXs to use them everywhere, there wouldn’t be a reason NOT to use them. Over the course of the next few years, we will probably move towards all SRXs (or a similar CAN solution if it becomes available) on our competition robot and move the PWM controllers to our arduino-controlled projects, as arduino supports PWM natively but not CAN.

Another difference between the SRX and the PWM motor controllers is where you would best put them. With PWM controllers, we typically try to place them close to the RIO to keep the PWM cables short. With CAN controllers, we typically try to place them close to the sensor, to keep those wires short. In both cases, you always want to keep the power + motor wire length to a minimum, but that often gives you the option of putting the controller anywhere along the path from PDP to motor. This year, we had the SRXs for the drive train down in the belly pan between the gearboxes, but the SRs for the gear hanger and climber were on the side mounted control board, next to the RIO.

Adding to GeeTwo’s suggestions:

If money/availability isn’t an issue, use the SRX, mainly for simplicity both in wiring and software. If the motor is using an encoder or limit switches, SRX hands down. A PWM controller can be used with encoder (encoder is wired to the RoBoRio), it just easier and cleaner with an SRX. Same story with the limit switches. SRX is also really good if using an absolute encoder, same reason as above. A scenario where it doesn’t matter what you use is if you’re just driving a motor open loop. A plain Jane tank drive with no speed control is a good example.

GeeTwo gave an example of a PWM controller with limit switches being read by the RoBoRio which works well. Keep in mind An SRX can read limit switches, act upon their state. You can also ask the SRX the status of any of it’s inputs (via the RoBoRio) An example of this is we had a gear sensor whose sole purpose was to turn on a green indicator on the driver dashboard. There was a an SRX really close to the sensor so we wired to one of the limit switch inputs and had the RoBoRio poll the SRX what the status of the limit switches were. Tada! saved a couple of feet of wire. No big deal, just kinda slick.

I suggest you make a “system on board” (SOB), pronounced SAAB. A SOB consists of a RoBoRio, PDU, VRM, motor controllers etc. Basically the stuff that goes on a robot all mounted to a board. We use them for educational and experimental purposes. You can learn a lot about the different motor controllers this way along with how to wire a robot.