Using the RoboRio for non FRC Applications

I was wondering if the RoboRio can be used with the WPI plugins without having to actually use the FRC base station to enable/disable the robot. If anyone has any insight to whether or not this can be done, all is appreciated.

Thanks!

We’ve been running a web-server from our roboRIO this past year - users can connect to the roboRIO, view a webpage from another machine, send inputs, and receive outputs. We don’t have it running super fast, but in theory you could send/receive control signals in this manner. There’s a bunch of other ways to do this too, both Ethernet and non-Ethernet related… SPI, Serial, I2C are all ways of getting data onto and off of the roboRIO without going through the driver station. Of course, all these methods require you writing your own software to handle the communication over non-driver-station avenues.

What I definitely don’t know about is the secret sauce behind what the RIO does when an “enable” packet is received from the driver station. From what I’ve seen I think there’s some extra interaction needed to activate the FPGA which drives the outputs to the motors & solenoids, but I’m really not sure. It is all “just software”, so I’m sure it’s theoretically possible to do this by alternate means (just send the right bits to the right place), but how feasible is it? not certain… I am interested to learn if anyone knows!

All this being said, the roboRIO is a feature rich platform, but fairly expensive as well - Presuming you aren’t looking to use labview, there might be better options for your application! I’d be happy to try to offer alternatives if you’re willing to consider other options!

RoboRIO outputs are locked by the FPGA based on the Driver Station state as received by the FRCNetComm daemon process. There are a few ways to get around this for driver-stationless control.

  1. Send fake control packets to the RoboRIO. The DS protocol is actually quite well documented thanks to the dedicated people at QDriverStation.

  2. Rewrite the FPGA to match your needs (the RoboRIO FPGA Toolkit is included with your KOP labview installation). Note that this is more difficult than it first appears, but entirely possible.