roboRIO Notes

The roboRIO is the onboard robot computer that is responsible for reading the sensors and controling the robot.  Here are some notes on how to work with the roboRIO.

Documentation

  • The WPI FIRST FRC Control System pages contain the primary documentation for working with the roboRIO and the rest of the FRC control system.

Troubleshooting

Every so often I have trouble with a roboRIO not responding correctly.  I have not figured out what causes this nore have I taken good enough notes to know if it is the same roboRIO or different ones that are giving me issues.  It could also be that the students or mentors are downloading something that is messing them up.  In short, I can't tell if these are hardware problems or software problems.  I have found that reflashing the robozRIO returns the roboRIO to useful working state for long enough (many months) that I have only recently decided to keep better notes on the issues that I encounter.  Here are some links that address troubleshooting roboRIO recovery problems.  I collected them back in Feb 2018 and added a few more since then.

  • Recovering a roboRIO using Safe Mode - WPI page that tells how to boot the roboRIO in safe mode. "In Safe Mode, the roboRIO boots a separate copy of the operating system into a RAM Disk. This allows you to recover the roboRIO even if the normal copy of the OS is corrupted."  The roboRIO can be reimaged from safe mode.
  • Imaging the roboRIO and Common Troubleshooting Techniques - National Instruments white paper
  • In this NI Forums Recovering RoboRIO post, a FRC team member showes the different ways he tried to unsucessfully reimage the roboRIO and then links to a NI RoboRIO Imaging Error posting that ends with these two posts:
    • Please give us a call at 866-511-6285 when you have access to your roboRIO. This is the NI help hotline for FRC. We will help you troubleshoot this issue and we can authorize a replacement if the Applciations Engineer decides that the roboRIO needs replacing.   Try to update the firmware again but in Safemode. To get into Safemode hold down the Reset button for approximately 10 seconds. You will know you are in Safemode when the Status light begins flashing three times. If updating Firmware in Safemode does not work then please give us a call.  Brian H. -- Electronics & Measurements Product Marketing Manager
    • I tried safemode and the status LED blinked continuosly (unrecoverable error). I called NI tech support at the number listed and they resolved my issue. They had me create a bootable flash drive for the RoboRIO. After running a recovery from the flash drive, I was able to image the RoboRIO from the imaging tool. Then I was able to update the firmware to the latest version.  I will not be sharing the instructions to create the recovery flash drive. You'll want to contact NI support if you need to go that route.  Thanks again to NI for the awesome support!
  • WPI Status Light Quick Reference page detailing the meaning of the FRC Control System indicator lights.  The roboRIO section if this page has:
    • Power
      • Green - Power is good
      • Amber - Brownout protection tripped, outputs disabled
      • Red - Power fault, check user rails for short circuit
    • Status
      • On while the controller is booting, then should turn off
      • 2 blinks - Software error, reimage roboRIO
      • 3 blinks - Safe Mode, restart roboRIO, reimage if not resolved
      • 4 blinks - Software crashed twice without rebooting, reboot roboRIO, reimage if not resolved
      • Constant flash or stays solid on - Unrecoverable error
    • Comm
      • Off - No Communication
      • Red Solid - Communication with DS, but no user code
      • Red Blinking - E-stop
      • Green Solid - Good communication with DS
    • Mode
      • Off - Outputs disabled (robot in Disabled, brown-out, etc.)
      • Amber/Orange - Autonomous Enabled
      • Green - Teleop Enabled
      • Red - Test Enabled

I called NI at 866-511-6285 and spoke with Marina, an NI Applications Engineer, on January 14, 2019.  She was very helpful.  I was impressed with the level of service and help she provided.  Marina gave me these steps to take the next time I have an issue.

Here are some steps to try first before recovering safe mode. 

  1. Try powering the roboRIO into Safe Mode.
  2. Try other power supply (make sure we are getting enough power to the device).
  3. Make sure everything is disconnected from the device when powering it up (maybe something is causing a crash).
  4. If the device is recognized in NI MAX, try formatting it.
  5. Use the recovery.cfg file to recover the roboRIO’s safe mode. 

Here are some links for the cRIO driver and how to operate NI-MAX.  NI CompactRIO 18.5

Upgrading Firmware on my NI Linux Real-Time Device:

We also spoke on the phone about the unrecoverable error on your roboRIO. I've included a link below where you can download a zip file called 'Team_971.zip'. You can then use the steps below to reformat the roboRIO.  I have a copy of this file in robotics.mvla.net:/home/michael/roboRIO_USB_flash_image/Team_971_roboRIO_flash_image_do_not_redistribute.zip.  It is only available to a few people on the 971 team.  The zip file contains recovery.cfg.  This is a 32 Mbyte file dated 19-Jan-14 14:44 which is roughly the time it was created for me.

Follow these steps to reconfigure your roboRIO:

  1. Find a flash drive, remove everything from it, and reformat it as a FAT32 drive by right-clicking on the flash drive and selecting Format.. from the list.
  2. Download the specified file. Unzip it and place only the .cfg file on the flash drive.
  3. Turn off your roboRIO.
  4. Plug in the FAT32 formatted flash drive with only the CFG file on it into one of the two USB ports on the roboRIO.
  5. While holding down the Reset button, turn on the roboRIO
  6. Let go of the Reset button after the STATUS LED has turned on and remains solid.
  7. Please try this with more than one USB flash drive, since the roboRIO requires a fast response and not all devices can provide it.
  8. I also recommend using an externally-powered USB hub between the roboRIO and the USB flash drive if the previous steps do not work.