Upcoming Events:
Error 406 - Not Acceptable
Generally a 406 error is caused because a request has been blocked by Mod Security. If you believe that your request has been blocked by mistake please contact the web site owner.
Full event list
Error 406 - Not Acceptable
Generally a 406 error is caused because a request has been blocked by Mod Security. If you believe that your request has been blocked by mistake please contact the web site owner.
FIRST® Robotics Competition (FRC®)
2015 roboRIO Control System
Control System 2015-2021
Shortcuts
- Beta Testing
Development Milestones | FRC 358 Beta Photo Gallery | Other Beta Blogs | Changes of Note | Power Management Testing | Short Circuit Testing |
Beta Testing the New 2015 Control System
This 2015 FRC control system has been under development by NI and CTRE for the past couple of years, and is currently in Beta testing, so the information released thus far should be considered preliminary, since the software and documentation will change depending on Beta reports and results. Some of the notes that follow may need revision when we get our collective hands on the final product.
The system has completed Alpha testing, and is currently in the middle of Beta testing by 90 FRC teams of which 358 is one.
A little background (and future) on the development:
-
January 3, 2015: Teams Get It!
- Kickoff 2015 - 2015 Control System arrives in every team KOP and software is released
- Control System components available for purchase for December 2014 release (not software though)
- 2015 Control System Beta Test Teams
- Map of Beta Test Teams
- Motor Controller Options for 2015 , Specs, Chiefdelphi Thread
- National Instruments (NI) - roboRIO
- Cross the Road Electronics (CTRE) - Power Distribution Panel (PDP), Pneumatics Control Module (PCM), Voltage Regulator Module (VRM)
August 2014-December 2014: Beta Testing
October 2013-August 2014: Alpha Testing
August 8, 2013: Official Reveal
April 25, 2013: Partners Public Announcement
December 28, 2012: Supplier/Partners Final Selection
August 29, 2012: FIRST Request for Proposal
FRC 358 Beta Testing photo gallery:
These are the main meetings, at least those we remember to bring a camera to. These don't record the multitude of little tests, demos of the control system, visits to off-seasons that occur outside the formal Beta meetings.- Mtg 1 roboRIO control system fresh out of the box
- Mtg 2 photos of components
- Mtg 3 photos - creating a benchtop test system
- Mtg 4 photos - Software tests on the Benchtop System
- Mtg 5 photos - Installing on 2003 robot
- Mtg 6 photos - Driving 2003 robot
- Mtg 7 photos - Mostly Custom Wiring for I2C/SPI/RS232/TTL
- Mtg 8 photos - Setting Up CAN Jaguar Test Board
- Mtg 9 photos - Brownout testing
- Mtg 10 photos - Electrical stress testing
- Mtg 11 photos - Prep for Workshops
- Mtg 12 photos - VRM stress Testing
- troubleshooting a PDP CAN issue
- VRM stress testing
- Victor SP
Beta Testing Videos
Other Beta Team Postings:
- Chiefdelphi Beta Discussion Thread
- FIRST 2015 Beta Test Forum
- FRC 11
- FRC 1718
- FRC 116
- FRC 1114
- FRC 111
2015 Changes of Note
Random Beta notes about things that will be different or important that we be aware of.- The new 2015 components are:
- roboRIO - the controller with PWM/Digital IO/ Analog inputs/Relay outputs/lots of communications choices
- Power Distribution Panel (PDP) - main power distribution for motors and devices
- Pneumatic Control Module (PCM) - handles any compressor and solenoids
- Voltage Regulator Module (VRM) - provides protected 5v and 12v power for the robot radio, camera, sensors, and custom circuits
Here are equivalent setups of the cRIO components that are replaced by roboRIO components (note that the cRIO setup's 120a breaker is missing from this photo). The cRIO setup required up to three breaker circuits be dedicated to powering the Analog Breakout, Solenoid Breakout, and Digital Sidecar, while the roboRIO either doesn't have the power requirement or has special power outputs dedicated to the same purpose. The roboRIO on the other hand has four fewer breaker circuits, a net loss of one (1).
- Coverage Area: the 2015 control system covers 72.5 in2, while the old system covered 106.25 in2, for a net benefit of 33.625 in2. For height, the roboRIO will need clearance of 3.5" over where the USB cable connects, where the old cRIO needed 5.75" clearance for the Analog/Solenoid Breakouts.
- Network: A big change is the elimination of static IP addresses for the Driver Station (now set to DHCP or "Obtain an IP address automatically"), and the roboRIO (now uses a mDNS address of the form roboRIO-TEAM.local where TEAM has no leading zeros, e.g., roboRIO-358.local). For home use, our DLink robot radios will serve the DHCP addresses needed by the Driver Station and the roboRIO Ethernet port (as well as any other DHCP computers you may want to connect). An Axis IP camera is being given an mDNS of axis-camera.local
- USB Connection:The Ethernet connection remains the same, but in addition we can also use a direct USB connection (USB A/B cable) automatically usable with the mDNS address or through a fixed IP of 172.22.11.2
- Error Status: Some of the components described below (PDP & PCM) will maintain error statuses called sticky faults. This means persistent yellow warning lights on the devices rather than green.
These will have to be cleared manually, possibly on a regular basis, using a browser interface, or manually/automatically through user created calls to the WPIlib, maybe a Dashboard interface to report of sticky faults and a button to clear them.
- Compressor: pressure switch/compressor interactions will be handled automatically by the PCM, eliminating the need for user code to call a compressor loop. The compressor is now automatically instantiated if any solenoid is created. The user only needs to declare a compressor if you want to check the status in your code.
The compressor will also NOT use a Spike to power it, but will be driven directly from the PCM (see below).
- Jaguar CAN: will be handled through the built-in PDP/PCM/roboRIO CAN bus rather than through the RS232 interface of the old system.
- C++ and Java: have been switched to using Eclipse rather than Wind River or NetBeans
- Java: running Java 8 SE embedded (e.g., no video support included, since the roboRIO has no video out)
- Changing Languages: To change the roboRIO user programming language used, just download the new project. We no longer have to use any secondary utility to specify the language. The automatic script used to start the user code and insure only one user program is running on boot or download is: /usr/local/frc/bin/frcKillRobot.sh -t -r
- Index 0: joysticks, PWM ports, DIO/Analog, etc. ports are all now named and indexed starting from 0 rather than 1. So for instance the second PWM port is PWM1.
- Joystick Mapping: The indexing for Axis & Buttons begin at 0, so the numbered buttons on an Attack 3 are off by 1. Some Axes have shifted position and value ranges, e.g., game controller right triggers are now Axis 4 and return a value between 0 & 1. Button 12 on the Attack 3 joystick is not available. Hat buttons are available as a special unsigned integer output and values are degrees clockwise starting from the noon position: 0,45,90,135,180,225,270,315, and -1 for the center rest position.
- 2014 vs 2015 Driver Station Joystick Mapping: The 2014 Driver Station used Microsoft DirectInput (now discontinued) to retrieve joystick inputs. The 2015 Driver Station uses the replacement XInput API. So the joystick mapping will differ between the two generations of Driver Station, as well as having the indexes be zero based under the 2015 convention.
- Solenoid Update Rate: The response speed of solenoids will be constrained by the CAN update rate set for the PCM (probably 20ms). This isn't noticeable under most normal operations, just for a few teams that might want exact shutoff timing <20ms.
- Wiring: The old small Wago connectors on the previous system (Radio/camera) and some of the large Wagos (old solenoid breakout) have been replaced by Weidmuller LSF-SMT series push-in connectors. CAN uses the Weidmuller's, so no special tools are needed for the basic system wiring. For using Jaguars, a new (simpler) adaptor cable, two bare wires on one end and an 6P6C or 6P4C modular plug on the other, is necessary for adding the first Jaguar in a CAN chain to the built-in control system CAN network. The other Jaguars would connect in a chain as was done in the past. The DSC is gone along with it's ribbon cable. As mentioned above, the compressor no longer requires a Spike to drive it.
- Whiskers: we anticipate that the greatest issue teams will run into with the new Weidmuller terminals are short circuits from wire "whiskers." The terminals are very close together and stranded wire tends to bunch up wire strands around the top where they can easily short to both terminals to the sides which are always the opposite polarity.
- Main Power: the main power connection to the Power Distribution Panel (PDP) requires a certain size lug to fit in the cavity and under the protective cover. The old screw-type will NOT fit. A crimp lug cannot be too large either (0.44" wide), so measure before buying. The pre-made cables at AndyMark and Cross-the-Road Electronics will fit.
- Thumb Drives: these plug right into the two roboRIO host usb ports and are automatically mounted as U & u for one slot and V & v for the second slot at the root directory. When thumb drives are added or changed if the root folder is already open somewhere we may have to back out and go back in to get the updated folders. We can treat them and their contents as we would any other folder. ssh (e.g., PuTTY ) can be used to start programs, etc. ftp can be used to explore the files.
- FTP: use anonymous ftp login. The normal roboRIO user accounts of admin or lvuser are not valid for ftp. If files are transferred to the roboRIO, followup using ssh to set the access privileges properly. SFTP can be used with the lvuser account to insure that files created or transferred to the roboRIO have the correct privileges to be accessed properly by the user robot code. Beware of introducing Windows line endings to files transferred to the roboRIO vs the required Unix line endings.
- Tools: the system makes use of a formatting/imaging tool, ssh, sftp, webdav and a browser webpage for viewing and modifying roboRIO settings.
- VRM: the 5v rail has barely enough peak power to accomodate both the DLink (725ma peak) and one Axis M1011 camera (1.3a peak) for a combined 2.025a peak. The 2a outputs are rated for 2a peak. So, if attaching both a Dlink wireless and one Axis camera to the VRM, you should not connect anything else to the 5v/500ma outputs. While operating normally the combination draws much less power (~.5a continuous).
- PWM Connections: while snug, these do not have any built-in retention system, so loose PWM connections are a strong possibility unless we develop our own cable retention system, e.g., tie-downs or clips alongside the roboRIO pins.
- Encoders: Changed to add 4 more 4x quad encoders - (8) 4x dedicated encoders and Counters can be used for more 1x or 2x
- Interrupts: 8 interrupts are available to be allocated by the user code
- MXP DIO pins: if configured as outputs, they will be Disabled if they are pins shared with PWM. Whenever the robot is Disabled, these DO pins will stop working. So plan accordingly if you think to attach sensors here, because if they require a Digital Output, that output will not work until Autonomous or Teleop are active (and they will shut off momentarily between Auto and Teleop). If the pins are being used for PWM or Digital Output, they will be disabled. Pins configured as a Digital Input will not be disabled.
- Backward Compatibility: WPILib for C++ and Java are not going to be supported at all for the cRIO in 2015. Only LabVIEW is keeping support and only for the 4-slot cRIO-FRC II.
There are incompatibilities due to hardware differences that the code may need to work around if it is intended to work on both systems, but for cRIO only code what we've been able to do in the past should work.
To use the 2015 LabVIEW software on a cRIO, the cRIO must be reformatted to v54 or later, using a new FRC CRIO Imaging Tool found at C://Project Files/National Instruments/LabVIEW 2014/project/CRIO Tool
- PDP Monitoring: the PDP monitoring can be dynamically retrieved by user code or queried through a web interface. Faults are sticky and retained through powerdown until cleared by the user. Monitoring includes:
The current outputs of each (16) of the high power draw wago connectors
Short circuits detected on each of the (16) wago connectors (sticky)
The incoming battery voltage (sticky for under voltage)
The internal PDP temperature (sticky for over temp)
Any over-temperature fault
Status back to the roboRIO is updated at a 25ms rate
- PCM Monitoring: the PCM monitoring can be dynamically retrieved by user code or queried through a web interface. Faults are sticky and retained through powerdown until cleared by the user. Monitoring includes:
Whether each solenoid is on or off
Identifies any solenoid short circuit (also identified by the number of red status light blinks)
Compressor over-current (sticky)
Compressor short circuit (sticky)
Battery voltage
Solenoid voltage setting (12v or 24v)
Compressor current
Status back to the roboRIO is updated at a 25ms rate
- I2C Voltage:The I2C port supplies 3.3v, but it can use 5v as well. I2C devices that require 5v can be wired to take it from a DIO 5v power pin, the MXP 5v pin, the SPI 5v pin, or even the VRM if you like.
- Rumble on Game Controller: for game controllers that support xinput, i.e., xBocx controllers, user code can activate the rumble feedback function. Note that the default Dashboard has rumble indicator bars, but these are for testing purposes only and will not change based on the user code rumble output.
- Power on roboRIO: Note that at no load the 6v output will read a little lower than 6v on a multimeter, but as soon as a load is applied, the voltage climbs to 6V.
This is an artifact of the back-drive protection on this supply. The current path passes through a diode when the load is low. When the current is detected to be enough greater than 0, a FET is switched on and the diode is bypassed.
- VRM Max Voltage: The VRM has a 2amp rating printed on each of the two power rails (5v & 12v), but this is a maximum only! The nominal rating is a lower 1.5amp total for the sum of the 2a + 500ma output terminals. This is 1.5amps for the 5v rail and another 1.5amps for the 12v power rail.
- No Driver Station Cypress Board Support: the old Cypress board has been discontinued and will not be supported by the new 2015 Driver Station. Users can still do their own interface to the Cypress board of course. There will possibly be a new Cypress board available to be used on the robot as a custom circuit, but not as an I/O interface on the Driver Station.
FIRST is still experimenting with replacements, but no word yet on if they will incorporate or recommend any specific alternate board. the 2a + 500ma output terminals. This is 1.5amps for the 5v rail and another 1.5amps for the 12v power rail.
- No Desktop/Start Menu Shortcuts: The NI installations will not automatically create shortcuts to common utilities and tools as it has in past years. Users can create shortcuts for their own convenience, but may have to track down some of the tools. If LabVIEW is your programming language of choice, then from the Getting Started screen Utilities tab all the tools are available:
- roboRIO Imaging Tool 2015
- Setup AXIS Camera Tool
- Bridge Configuration Utility
- Net Console for cRIO (for LV-only backwards compatibility)
- BDC-Comm (for updating Jaguar firmware)
- cRIO Imaging Tool 2015 (for LV-only backwards compatibility the old cRIO needs a 2015 image update)
- roboRIO Internal Clock: roboRIO does not have a battery backup, meaning a loss in power will reset the clock, so date/time stamps are affected. Initial date/time when roboRIO is booted seems to be 2/17/1970, 12:40am. When the Driver Station connects, the time on the roboRIO will get sync'ed to the DS. So timestamps may vary accordingly if time is taken before/after the DS connection is established or files are written/created before/after the DS connects after a roboRIO boot.
- Update Rates:
- PWM Victor SP(new), Jaguar, Talon SR(old), Talon SRX(new) = 5ms
- PWM Victor 888(old) = 10ms
- PWM Servo = 20ms
- CAN Talon SRX = 10ms
- CAN Jaguar = 20ms
- PCM C++/Java= 20ms, LabVIEW=75ms (may change to 20ms)
- PDP = 25ms
- Internal PID on Jaguar & Talon SRX = 1ms
- Sealed enclosure
- 60a continuous/100a surge
- (2) CAN/PWM connectors-2nd is for CAN chain
- (1) Quad Encoder connection
- (2) Limit Switch connections-forward/reverse
- (1) Analog Input (for 3.3v)
- 3.3v/5v available to power for example an encoder or potentiometer
- LED indicators blink proportionately to output speed and in various colors (yellow blink=Disabled, green=forward, red=backwards)
Power Management
The 2015 Control System has implemented a power brownout management scheme.When power dips low enough to start threatening a roboRIO reboot, the initial responses at 7v is to Disable the robot cutting off all large power drains.
Very sharp sudden power draws in combination with bad battery cells may force the battery low enough to cause other systems to brownout faster than the roboRIO can prevent it.
User feedback systems will need to incorporate WPIlib calls to detect when brownout conditions interrupt normal operations to avoid incorrect Integral windup and ignoring input or the lack thereof from sensors that may have shutdown.
The various transition points are:
- Low voltage protection (note: this is what it was for Beta testing. Responses may be changed.)
- (video) @7v roboIO self-Disabled (Watchdog message on DS), roboRIO Power LED turns amber and as with any Disable motors shutdown, single solenoids return to home position.
- (video) @6.5v PDP status/comm LEDs turn yellow (these stay latched at yellow until the sticky voltage fault is turned off through the user web interface, so you can see after stopping that the battery voltage dropped real low even with the self-Disable that already occurred at 7v.)
- (video) @6.47v the 6v rail shuts down (PWM servo output power)
- (video) @6.20v the 3.3v power supply drop out (sensors and I2C/SPI/Serial communications using 3.3v will lose power)
- (video) @5v PDP status/comm LEDs turn red
- (video) @3.79v roboRIO reboots, PCM status blinks red. 5v rail lasts the longest and goes when the roboRIO does (DIO, sensors and I2C/SPI/Serial communications using 5v lose power, but then there isn't anybody listening by that time anyway)
- @3.4v VRM 5v status begins flickering, 12v remains solid green, but by this time it's the only thing left running (the wireless radio reboots)
Protection Tests-Short Circuits/Reverse Polarity/Overcurrent
The individual components of the 2015 control system have a lot of new protection built-in against short circuits and reverse polarity on most connections.Beta teams have been testing these by shorting things with purpose. The following are things we took note of during our tests.
- roboRIO - a short circuit on the primary 3.3v/5v/6v power rails disable that power, but recovers without damage when the short is removed.
- reverse polarity on the main power input doesn't do any damage.
- 3.3v rail shorted - all 3.3v power is out, 6v power dims but isn't completely gone, 5v retains full power, Allen Bradley RSL dims, and RSL stops blinking if it was Enabled, roboRIO power light goes amber
- 5v rail shorted - 3.3v retains full power, 6v out, 5v out, DIO signal retains full power, Allen Bradley RSL dims, and RSL stops blinking if it was Enabled, roboRIO power light goes amber
- 6v rail shorted - 3.3v retains full power, 6v out, PWM signal out, 5v retains full power, Allen Bradley RSL dims, and RSL stops blinking if it was Enabled, roboRIO power light goes amber
- roboRIO Power: the new roboRIO is rated for a max of 16v, while the old PDB outputs 24v, but the roboRIO is still not damaged by plugging it into an old PDB 24v output.
- PCM - tests were run for short circuits, high current draw, and normal operation using both a Thomas model 405ADC38/12 and a ViAir 90C and included long runs to fill up large storage, short runs to fill up a single storage tank, as well as, repetitive on/off cycles a few seconds apart replicating a leaky air system.
- Solenoid output short circuits (protected by a 500mA circuit breaker to limit solenoid current)
PCM status light will flash red for the # solenoid (starting at 1 for zero) for the lowest # solenoid that has been shorted. So if solenoid output 6 is shorted, then we will see the PCM status light flash 7 times, then if solenoid 7 is shorted the status light still blinks for #6, but if solenoid 2 is shorted, then the status blinks change to 3.
Red to red is okay whether both are active or one is inactive and do not cause any shorts or issues. Red to black shorts shows a short on whichever solenoid the ground is associated with.
Once dead short faults are detected, the PCM will leave them alone until those faults are cleared by the user. So noting connected to that particular output will receive any power until the user clears the PCM faults. - Compressor output
a ~40a constant draw (as opposed to a momentary 40a that a compressor might draw just starting with a locked rotor) caused a compressor over-current error. PCM will keep trying the compressor once a second or so. When the overcurrent load is removed the compressor picks right up.
Straight dead shorts caused a short fault and as with the solenoids the PCM doesn't keep trying. A short fault must be cleared by the user (or via user code) before the compressor will work again.
A compressor that pulls higher continuous current in excess of say 17 amps will cause the over current protection to kick in. The PCM easily handled constantly running as well as repeated cycling on/off of both an old KOP Thomas and a ViAir. Both were tested and the currents of these were easily handled. - Pressure Switch
If no pressure sensor is connected to the PCM then the compressor will not try to start. Only when a pressure switch is connected and signaling low pressure will the compressor kick in. - Reversed/shorted CAN wiring
The PCM status light blinks red fast when it detects the fault.
- Solenoid output short circuits (protected by a 500mA circuit breaker to limit solenoid current)
- VRM - The labeling on the power output ports can be misleading. There are two power rails 5v & 12v. Each rail provides two types of continuous output- 500ma (labeled 500ma) and 1.5amp (labeled 2a instead for it's max peak momentary current of 2a).
There are two sets of output terminals for each of these types, but it is the combined output of a set that together are limited to 500ma or 1.5amps.
In addition, the 500ma is also subordinate and cumulative to the 1.5a output, so if 500ma is being drawn from the 500ma outputs, then only a max continuous of 1a can be supplied by the 1.5amp type (labeled 2a).
- 500ma outputs - short circuits or over-currents here do not also take out the 1.5a outputs. A short on one set of 5v/500ma output terminals shuts down the second 5v/500ma output terminals as well, since they are common. Power is restored as soon as the short or overload is removed.
- 1.5a outputs (labeled 2a) - these might actually source less than 1.5a, because the 500ma outputs also take from this current limit. So, nominally 1.5a are available from the outputs (labeled 2a).
Actually enough for instance to regularly run both a DLink and an AXIS camera off the 5v/1.5a outputs. Those are rated for a combined peak of 2.025a which the VRM can handle. Then under continuous use they pull a steady ~.5a. More strenuous wireless conditions or more intense camera operations might push it higher.
Just speculation but in competition the rules might only allow us to power the DLink off the 5v rail, just to be sure that the radio keeps a secure power supply. - Under stress testing the 5v rail can actually for a short time source up to a peak of 2.8a before it cuts off. This max current still translates to only .635a at 12v from the battery, so it really isn't very much. As it heats up though it's top peak current drops rapidly back to the 2a limit. It handles over current like this quite well by cutting the power.
- The 12v outputs allow a steady pull of 1.5a from the battery. However, the 12v side does not handle over current quite as well as the 5v rail does. If cool, it can cut over current power, but when warm a steady 2a draw from the 12v rail runs the risk of blowing a VRM internal fuse, so keep it under 1.5a.
- PDP -
- Reversed/shorted CAN wiring - The PDP status light blinks red fast when it detects the fault.
- Initial compressor surge currents are handled easily