= FRC Robot Electrical Overview = * Prerequisite: [wiki:ElectricalIntroduction Electricity Overview] * Summary: Overview of the major electrical components that are used in FRC robots * References: see: [http://wpilib.screenstepslive.com/s/4485/m/24166/l/144968-2017-frc-control-system-hardware-overview ScreenStepsLive overview] and [http://www.team358.org/files/programming/ControlSystem2015-2019/ team 358's overview] [[Image(http://wiki.team2537.com/raw-attachment/wiki/ElectricalFrcIntroduction/Electrical_Layout.jpg,50%)]] == Battery == [[Image(https://images-na.ssl-images-amazon.com/images/I/61DFZIOtE5L._SL1000_.jpg,left,20%,nolink)]] FRC robots use a [https://www.interstatebatteries.com/content/resources/links/Specification_Sheet/SLA1116.pdf SLA1116] 12 volt 18Ah sealed lead acid rechargeable battery. These are large, powerful batteries capable of supplying up to 250A in bursts and 80A continuous power. That's a ''lot'' of power. 12v * 250A = 3000W. This is enough power to launch a 120lb robot into the air or to melt steel; these batteries must be treated with respect. Car batteries are a little larger, but watch how a battery can easily [https://www.youtube.com/watch?v=xESCXFz8ZQE vaporize a steel nail] to get an idea of how much power we're talking about (DON'T TRY THIS!). These batteries are full of lead and are very heavy, so be careful not to drop them on anything either. [[Image(https://cdn3.volusion.com/vyfsn.knvgw/v/vspfiles/photos/am-0009-2T.jpg?1442240393,right,nolink)]] To carry all of that power to the robot, FRC batteries have heavy metal terminals that connect to 1-foot long, very thick (6-Gauge) wires using a nut and bolt (preferably a split washer and lock nut). The wires end in a heavy-duty [http://www.andymark.com/anderson-sb-50a-connector-red-p/am-0546.htm SB-50A connector] capable of carrying 50 Amps of continuous current. The connectors allow the battery to be plugged into the battery or charger easily. ''DO NOT CARRY THE BATTERY BY THE WIRES OR CONNECTOR '' It's important that all of the connections to battery remain tight (this is true for your car battery too for the same reasons): a loose connection provides resistance to the flow of electricity and as you know, resistors convert electrical current into heat energy. A loose connection to your battery can result in enough heat to start a fire. The reason we don't carry the battery by its wires or connector is that the weight of the battery will loosen those connections. The FRC batteries are rechargeable. A lead-acid battery charger must be used; this pushes electrical current back through the battery, causing the spent chemicals to reverse their reactions, restoring the battery to its original state (almost). Reversing the chemical reactions must be done slowly and so charge current is limited to 5A. The state of charge of a battery can be checked with a special tester. Team 2537 uses a tester called a [http://www.andymark.com/battery-beak-p/am-batterybeak.htm battery beak] that plugs onto the battery connector and has a digital readout that describes the battery's condition including an overall assessment of how fully charged it is. * Exercise: Check state of charge of a battery * Materials required: Battery with cable attached, Battery beak, senior student or mentor * Activity: * Lift battery (from the body, not the wires) to get a feel for its weight * Plug the battery beak into the connector * Press the beak button and observe the measurements (ask a senior student or mentor for explanation) * Unplug the battery beak, holding the battery connector and the beak (don't pull by the wires) * What happened: you learned to handle a battery and measure its readiness for use in competition Here is some advice from Andy Mark about [http://www.andymark.com/battery-tips-s/615.htm. batteries] == Motors == FIRST has a long [https://firstfrc.blob.core.windows.net/frc2017/2017-motor-information.pdf list of motors] that are legal to use in FRC Robots. The list includes loads of detail and many different kinds of motors. Some of the most commonly used motors are the RS775, CIM, and mini-CIM motors. All of the FRC-legal motors operate on 12VDC. Different motors offer different sizes, weights, speeds, and torque (turning strength). The more force a motor generates, the more electrical current it will consume. When designing a robot it's important to choose the right motor for the task and it's important to make sure all of the motors that may be operating at the same time won't overload the battery or electrical wiring. [[Image(CIM_Motor.jpg,20%,nolink,title="CIM Motor")]] [[Image(RS_775_Motor.jpg,20%,nolink,title="RS775 Motor")]] Most FRC motors were designed for other commercial purposes (wheelchairs, snowblowers, power tools, car windows or seats, etc.) so they are widely available and relatively inexpensive. The most powerful legal motor is the CIM motor (CIM is an acronym for CCL Industrial Motors - the manufacturer of the motor). CIM motors are capable of [http://files.andymark.com/CIM-motor-curve.pdf generating 300W of force] and were designed for motorized wheelchairs. FRC rules usually allow a maximum of 6 CIM motors per robot and 4 usually power the drive system (wheels/treads) where the robot needs both speed and power. FRC rules usually do not limit the number of smaller motors (mini-CIM, micro-CIM (aka Bag), RS775, etc.) that can be used. [http://www.banebots.com/product/M7-RS775-12.html RS775 motors] are commonly used in power tools (e.g. cordless drills) and radio-control vehicles; they can provide up to 150W of force and very high speeds. [http://www.andymark.com/Motor-p/am-2235.htm snowblower motors] are used in electric snow throwers and can provide up to 20W of force. Some things to note: * Gear boxes trade speed for torque (strength). For example, the snow blower motor is fairly small but has a built-in gear-box that reduces its speed and increases its torque. The maximum geared-down speed of the motor is 100 rotations-per-minute (RPM), but the maximum torque is 70-ft-lbs (1-ft-lb means the force applied by a 1-lb weight at the end of a 1-foot rod mounted perpendicular to the motor shaft). * The speed of a motor usually varies with the amount of force it must apply, so a motor with nothing attached to it may spin very fast, but if the motor encounters resistance (e.g. if it is trying to turn the wheels carrying a heavy robot), the motor will slow down. When so much resistance is encountered that the motor can no longer turn even when applying its maximum force (e.g. if that robot runs into a wall), the motor stops turning and is ''stalled''. * The electrical current drawn by a motor varies with the amount of force it is applying. When there is no load on the motor, its idle current is much lower than when it is applying full force. For example, a snow-blower motor draws 5A when idle but up to 24A when stalled. * It is important not to apply power to a stalled motor for very long or the motor will burn up and may even catch fire. Consider that when a small motor like a snow-blower motor is stalled, it is drawing 24A at 12V (nearly 300W) and since it can't convert that electrical energy to motion, the energy is converted to heat. Motors are usually mounted to the robot with special [http://www.andymark.com/product-p/am-2374.htm motor mounts] and their shafts are connected to wheels and axles using [http://www.andymark.com/product-p/am-pgseries.htm gears] which trade reduced speed for increased torque. * Exercise: Identify and test various FRC-legal motors * Materials required: [http://www.andymark.com/CIM-Motor-p/am-0255.htm CIM motor], [https://www.vexrobotics.com/217-3371.html mini-CIM] or baby-CIM, [http://www.andymark.com/Motor-p/am-2194.htm RS-775], RS-775 with [http://cdn3.volusion.com/vyfsn.knvgw/v/vspfiles/photos/am-pgseries-2.jpg?1496901653 PG-775] gearbox or [http://www.andymark.com/Motor-p/am-2235.htm snowblower motor], motor mounts, PP45 connectors, motor test box (aka "Johnson" or "Saunders" box - named after the mentors who created them) * Activity: * Examine motors and mounts * With power off, plug a motor into the motor test box * Turn on the motor test box and gradually increase/decrease the motor speed * Try (carefully) to stall (stop) the motor with your hand - if you succeed, don't keep it stopped for long or the motor will burn up. * Try different motors to get a feel for different speeds and torques * Try a motor with a gearbox (PG-775 or Snowblower) to get a feel for what gearing does * What happened: you learned how to identify several FRC-legal motors, to connect/disconnect and run them using a test box, and developed a feeling for the speed/torque trade-offs of different motors and the impact of gearing. == Safety == [[Image(https://d2gg9evh47fn9z.cloudfront.net/thumb_COLOURBOX6978543.jpg,25%,nolink,left,margin=20,)]] FRC robots use powerful batteries and motors, powerful enough to injure or kill someone. Safety is a '''crucial''' aspect of FRC robotics and for your own safety and the safety of your team-mates, learning to handle the robot and its components properly is essential. Repeated safety violations are among the few things that ''will'' cause you to be cut from the team. FIRST provides a detailed [https://www.firstinspires.org/sites/default/files/uploads/resource_library/frc/team-resources/safety/2017/2017-safety-manual.pdf safety manual] and every member of the team is responsible for building and encouraging a culture of safety, from small things like always wearing safety glasses when in the shop or working with robots and tools to critical electrical safety such as: * FRC robots must have a visible [https://wpilib.screenstepslive.com/s/4485/m/24166/l/144972-status-light-quick-reference Robot Status Light] (aka RSL) that is either on solid or blinking when the robot is powered up. * Long hair must be tied back and no loose clothing when working with motors * Wear sturdy shoes that cover your feet entirely - if you or someone else drops a battery on it, your foot will break (not the battery) * Always wear safety glasses when working with tools or the robot. Power tools often throw off sharp pieces of metal and a short circuit will cause flying pieces of molten metal; on your arm, those will cause a minor injury, but in your eye, you may gain a permanent disability. * Wires and connections must be insulated (covered with non-conducting materials) to ensure no accidental electrical contact. Exposed wires create both a shock hazard and a burn/short circuit hazard. Electrical tape, heat-shrink tubing insulation, and non-conductive barriers should ensure no people and no metal can accidentally contact a live electrical wire or terminal. If you see exposed wires, turn off power and add insulation. * Treat batteries, wires, and motors with respect. A lot of power is involved in an FRC robot and things get '''hot'''. * Lead-acid batteries contain acid (who would have guessed). This is not citric acid like a lemon, it's sulphuric acid, like burn through your clothes and skin. If a battery breaks or explodes (it happens): * Don't panic, it [https://www.youtube.com/watch?v=sEY5bSM3OyQ takes several seconds for sulphuric acid to do much damage to skin] (don't do this!), but it is particularly dangerous for your eyes. Either way, wash it off any affected areas ''immediately'' with lots of water. * Do not touch the electrolyte * Have several boxes of baking soda on hand to neutralize the battery acid (see [https://www.youtube.com/watch?v=sEY5bSM3OyQ this video) made by another FRC team for how to clean up a battery acid spill. * Use appropriate thickness wire (more on this below) * All circuits must include a fuse or circuit breaker to open the circuit (disconnect power) if it is drawing too much current * Before turning the robot on, shout (yes shout) "Robot Active" * Read the FIRST FRC safety manual: [https://www.firstinspires.org/sites/default/files/uploads/resource_library/frc/team-resources/safety/2017/2017-safety-manual.pdf here] == Wiring and Insulation == [[Image(https://sc01.alicdn.com/kf/HTB1RAToHpXXXXbUaXXXq6xXFXXXq/201786922/HTB1RAToHpXXXXbUaXXXq6xXFXXXq.jpg,25%,nolink,left)]] Wires are used to carry electricity from its source (e.g. battery) to the load (e.g. a motor) and any other parts of the circuit. Wire is made of metal (usually copper) because it has weakly bonded electrons that present a low resistance to the flow of electrical current. Wire is generally covered with a non-conducting material such as PVC plastic or silicone rubber that has tightly bonded electrons and presents a very high resistance to the flow of electrical current. Insulation prevents the wire from accidentally conducting the electricity somewhere other than where we want it to go, preventing short circuits and shock hazards. When making wire connections, the wire is typically cut to length using [https://images-na.ssl-images-amazon.com/images/I/71vitsNoLOL._SL1500_.jpg wire cutters] and then the insulation at the ends of the wire is removed (stripped) to access and make a connection to the wire inside. Wire comes in two varieties: solid and [https://www.jytopcable.com/uploads/product_pic/electric-wire/2491X/1.jpg stranded]; solid wire can carry more current but it is less flexible; stranded wire consists of many thin wires braided together; the thin wires are much more flexible, however the space between the thin wires (even if tightly braided) makes its conductive cross section smaller so it can't carry as much current (for the same diameter). This is important for reasons described next. While wire has low resistance to the flow of current, that resistance is not zero. The thicker the wire, the lower the resistance. Wire thickness is referred to by gauge (in America, usually in American Wire Gauge or AWG). You can look up the resistance of various wire thicknesses (gauges) [https://www.powerstream.com/Wire_Size.htm here]. Consider a thin 28 AWG wire which has a resistance of 64.9 ohms per 1000 feet. 5 feet of that wire would have a resistance of .3245 ohms; if you used that wire to deliver 20A to a motor, we can use Ohms law (V=IR) to calculate that the voltage lost through the wire would be 20 * 0.3245 = 6.49 volts. So of the 12 volts that enters the wire from the battery, 6.49 would be lost and the motor would receive only 5.51 volts. However, as we know, current passing through resistance transforms some of the energy to heat; if a lot of current is flowing, it can generate a lot of heat. The 6.49 volts are not really lost, they are converted to heat! 6.49 volts * 20 amperes = 129.8 Watts of heat which would be more than sufficient to burn you, to melt the insulation on the wire creating a short circuit hazard, and probably melt the wire itself. For this reason, FRC has rules (see R57 of the [https://team3482.com/wp-content/uploads/2016/11/2017FRCGameSeasonManual.pdf 2017 game manual] about what minimum thickness of wire must be used for each part of the robot based on how much current the wire must carry; students wiring the robot must be aware of and follow the rules in the game manual carefully. For example, FRC rules require motors to be wired using 12 AWG (minimum) wire which has a resistance of 1.588 ohms per thousand feet. A 5' length of 12 gauge wire has only 0.00794 ohms of resistance and when passing 20A will drop only 20*0.00794=0.1588 volts. This means the motor will receive nearly the full voltage and the heating of the wire will only be 3.176 Watts; enough to get warm, but nothing more. Note that using thicker wire (10AWG) would reduce the loss and heat even more. * Exercise: strip some wire * Materials: Wire stripper, thin and thick wire * Activity: * Use the wire cutter/stripper to cut a small length (~9") of wire * Use the wire stripper to remove 1/2" of insulation from either end of the wire * Exercise: overheat some wire * Materials: 12v battery, 28 or 30AWG wire, heavier gauge alligator clip jumper wires * Activity: * Cut a few inches of 30AWG wire and strip the ends * Connect an alligator clip wire to each battery terminal * Connect one clip to one end of the 30 AWG wire * Touch the other clip to the other end of the wire * Watch the wire get red hot! * What happened: the resistance presented by the thin wire and the heavy current going through it (a short circuit takes all the current the battery can supply) resulted in lots of heat being generated. == Fuses and Breakers == [[Image(FRC_120A_Breaker.jpg,15%,left,nolink,margin=20)]] [[Image(Automotive_Fuses.jpg,15%,left,nolink,margin=20)]] Fuses and circuit breakers are devices designed to protect against overheating caused by over-current conditions (more current than the circuit/wiring is designed to handle). Fuses are just thin pieces of wire (usually encased in glass or plastic) that you include in your circuit to protect the rest of the circuit. If too much current flows through the circuit, the fuse wire melts and opens (disconnects) the circuit). The fuse wire fails safely inside its housing at a known current level to prevent catastrophic failures (melting insulation, fires, etc.) in the rest of the circuit. A circuit breaker is often called a resettable fuse; it is an electro-mechanical device that is also designed to be included in a circuit and open if too much current flows through it. Breakers usually are spring-loaded and use two dissimilar metals that deform differently as they get hotter (due to current passing through them). If they deform enough, they snap apart and open the circuit. FRC robots include a master [http://www.andymark.com/120-amp-robot-main-circuit-breaker-p/am-0282.htm 120A circuit breaker] that connects/disconnects the battery from the rest of the robot. This breaker includes a button to manually trip the breaker and is often used as the on/off switch for the robot. Each major circuit (e.g. motor) in the robot has its own additional fuse or breaker appropriate for the wiring and amount of current the circuit should carry. For example, motor circuits are often protected with a [http://www.andymark.com/40-Amp-Snap-Action-Breaker-p/am-0288.htm 40A snap breaker] that opens when it heats up with more than 40A of current and closes when it cools down again. This helps prevent motors and motor wires from burning up if the motor stalls but remains powered. * Exercise: blow a fuse * Materials needed: battery, alligator jumper wires, 5x20mm glass fuse * Activity: * Observe the fuse wire through the glass * Connect the battery to either end of the fuse (short circuit) using the jumper wires * Observe the blown fuse through the glass * What happened: the battery supplied a large amount of current through the fuse which caused the fuse wire to heat and melt, opening the circuit * Exercise: try a breaker * Materials needed: Robot with battery connected (peanut or competition robot) * Activity: * Use the 120A master breaker to turn power on and off to a robot == Connecting Wires == At many points on the robot, wires must connect to other wires; for example, connecting a motor to a motor controller or a servo motor to a roboRIO. This is done using a variety of styles of [https://learn.sparkfun.com/tutorials/connector-basics connectors] which consist of metal tabs and clips that can be inserted and removed to conduct electricity; they usually have plastic shells to insulate them and to ensure that the connections are made properly (e.g. the proper wires connected). The metal tabs and clips must be attached to the wires carrying the electricity and this is usually done by one of several methods: * Stripping and soldering: a tool is used to remove some insulation from the wire, the metal portion of the connector is then soldered to the wire using a very hot soldering and solder (a metal that melts at relatively low temperatures). * Stripping and crimping: insulation is removed from the wire and a specially made metal connector is compressed onto the wires using a tool; if done properly, the connection is extremely tight and reliable. * Insulation displacement: some connectors include sharp pins or blades that are simply pressed into the wire and puncture the insulation making the electrical contact. These can be secure but are generally only used for low current applications. * Stripping and securing: insulation is removed from the wire and the wire is secured using a screw or a [https://www.youtube.com/watch?v=n8gLG6c-iKc lever]. Commonly used connectors for robotics include: * [https://www.andersonpower.com/_global-assets/downloads/pdf/ds-sb50.pdf Anderson SB50A] connectors are used for the highest-current (up to 120A) connections (usually the battery) with 6-8 gauge wires. See [https://www.youtube.com/watch?v=RQTjvsnyiDY here]for how to attach the connectors to wires. * [https://www.andersonpower.com/us/en/products/powerpole/index.aspx Anderson Powerpole] PP15, PP30, PP45 connectors used for high-current (up to 15A, 30A, or 45A) connections (usually motors) with 10-12 gauge wires. See [https://www.youtube.com/watch?v=QzLvdR6X81k here]for how to attach the connectors to wires; you'll need a good [https://powerwerx.com/tricrimp-powerpole-connector-crimping-tool crimping tool] made for these connectors. It's usually a good idea to use [https://powerwerx.com/powerpole-connector-retention-clip retention clips] to prevent connections from coming loose during competitions. * For low current connections used to carry signals and data (but not to power heavy loads), thinner wires such as 22-26AWG is used; there are many connector choices, but connectors with a [https://www.allelectronics.com/item/con-340/3-conductor-locking-connectors-w/leads/1.html locking]feature are essential for robotics. Without a locking feature, connections '''''will '''''work their way loose due to the vibration and impact involved in robotics competitions. Many industries have developed appropriate connector solutions including the automotive and telecommunications industries. * Telecommunications connections usually use the [https://en.wikipedia.org/wiki/Modular_connector modular plug] (e.g. for telephone and Ethernet) and flat wire (often called [https://www.monoprice.com/product?c_id=102&cp_id=10222&cs_id=1022205&p_id=952&seq=1&format=2 silver satin]). These connectors are very inexpensive, lock securely, and are quick and easy to install. They are available for 2, 4, 6, and 8 wires. See [https://www.youtube.com/watch?v=k4aL62ixJVc here]for how to attach a modular plug. Cable solutions can be made using inexpensive [https://www.newegg.com/Product/Product.aspx?Item=9SIA6705VG0350 extension connectors] or [https://www.showmecables.com/rj11-inline-coupler-straight F-F couplers] so that all wired connections use the easy-to-install male plugs. * Automotive industries have a wide variety of connectors designed to be robust in high temperature, high vibration environments. See 3-conductor, [https://www.allelectronics.com/item/con-440/4-conductor-locking-connectors-w/leads/1.html 4-conductor], other [https://www.allelectronics.com/item/con-104/4-conductor-multi-pin-connector-round-pins/1.html 4-conductor], [https://www.allelectronics.com/item/con-540/5-conductor-locking-connector-w/leads/1.html 5-conductor], etc. connectors * For wires that will not be stressed, [https://www.aliexpress.com/store/product/10x-2p-Spring-Connector-wire-with-no-welding-no-screws-Quick-Connector-cable-clamp-Terminal-Block/1612007_32321415301.html lever action] connectors that can be secured to the robot chassis offer another good choice. See [https://www.youtube.com/watch?v=UcOv1a2rK2g this video] for how to attach all sorts of commonly used FRC connectors. == Power Distribution == [[Image(FRC_PDP.jpg, 15%, right)]] Power from the battery goes through the master breaker and into a Power Distribution Panel (PDP). The PDP distributes the battery power to the various circuits in the robot. The PDP monitors the current flowing through it so the robot computer can monitor the current drawn by each circuit. Each circuit leading from the PDP to the robot loads should be provided with a [https://www.andymark.com/40-Amp-Snap-Action-Breaker-p/am-0288.htm snap breaker] that is appropriately sized (5, 10, 20, 30, or 40A) for protecting the circuit it will be powering. For example, FRC rules specify that the smallest gauge (thinnest) wire you can use for powering motors is 12AWG which is limited to 41A so a 40A breaker might be used to protect it (you should also probably use thicker wire to provide some margin for error). Snap breakers use two metals that bend at different rates when heated; the metals are arranged to touch securely and conduct electricity when cool, but when heated, will deform and snap apart, opening the circuit and protecting the wiring from overheating. The PDP uses several types of connectors including: * WAGO connectors for wiring to high current loads (motors). These connectors are opened to insert wire using a small flat-head screwdriver. * Weidmuller connectors for wiring low-current signals (e.g. to the roboRIO). These connectors are opened to insert wire using a pen or fingertip. Consult the [http://ctr-electronics.com/PDP%20User's%20Guide.pdf PDP user manual] for more information. Note: the connectors on the PDP aren't the best choice for robots: they aren't locking connectors and so wires can work their way loose with vibration. The connections are also close together and it's easy for small strands (''whiskers'') of stranded wire to accidentally make contact creating a short circuit. The robot pit crew must inspect these connections regularly during competition. * Exercise: Make connections using the WAGO and Weidmuller connectors * Materials: PDP, Wire stripper, small flat-head screwdriver, thin (~18AWG) and thick (~12AWG) wire * Activity: * Use the wire cutter/stripper to cut a small length (~9") of wire * Use the wire stripper to remove 1/2" of insulation from one end of the wire * Use a small flat-head screwdriver to open the WAGO connector and insert the thick wire * Use a pen or your finger to open a Weidmuller connector and insert the thin wire. == Voltage Regulation == [[Image(FRC_VRM.jpg, 15%)]] Many devices on the robot require voltage other than the 12v supplied by the battery and/or must not be exposed to the voltage fluctuations that occur when the battery is placed under heavy load. The voltage regulator module (VR or VRM) contains circuitry that takes the battery voltage (which varies according to how much current is being drawn at any given moment) and generates well controlled 12V and 5V outputs. These outputs are used to power sensitive electronic devices such as computers and radios whose voltage must remain stable at all times. The regulator uses a [https://en.wikipedia.org/wiki/Single-ended_primary-inductor_converter SEPIC] switching circuit to step up the voltage if it is below the target (5v or 12v) and step down the voltage if it is above the target. The step up/down function takes place so quickly that any variations in the battery voltage are not seen by the output device. == Motor Controllers == [[Image(SparkMAX.png,15%,left)]] Motor controllers allow the robot computer to control the speed and direction of each motor. There are several popular models including: * [http://www.andymark.com/Talon-SRX-p/am-2854.htm Talon SRX] intelligent, CAN or PWM ($90) * [https://www.andymark.com/Talon-p/am-talon-discontinued.htm Talon SR] PWM only, discontinued * [http://www.andymark.com/Victor-SP-p/am-2855.htm Victor SP] PWM only ($60) * [http://www.revrobotics.com/spark/ Spark] PWM only ($45) * [http://www.revrobotics.com/rev-11-2158/ Spark MAX] Brushless and Brushed DC motors, CAN or PWM ($75) The Talon SRX and Spark MAX are the most powerful (and most expensive) controllers and include their own microprocessors that can offload many duties from the robot computer. This allows the robot computer to instruct the SRX or MAX to perform high level functions such as "run the motor at 100rpm" and the controller will automatically adjust power to the motor as the load varies to keep it spinning at 100rpm. The robot computer communicates with the controller over a two-way CAN communications bus that is particularly easy to wire, requiring only two wires for all of the motor controllers. The robot computer can issue commands to these CAN controllers and request status. The other motor controllers (SR, SP, Spark) are simpler devices that require the robot computer to perform the higher level functions. The robot computer uses PWM to communicate with each motor controller; the PWM signal specifies speed and direction but is one-way only (robot computer to motor controller).