Custom Web Dashboard with the roboRIO


I’ve seen quite a few teams with custom web dashboard for their robots. I am interested in making one of these, what should I use to make them?


As far as I know, nobody has been able to do a custom “dashboard” for their RoboRIO. I’ve seen custom NetworkTables clients to display data as a custom dashboard, but all that I’ve seen use FRCDashboard:

Configuring and writing a custom front for FRC Dashboard is likely your best bet.

Fight me

We used a custom dashboard in 2015/6.

In 2015, it was a custom dashboard written in Java Swing running on the DS. It was nothing special.

In 2016 we used Spark for Java and the Milligram CSS library. We switched to a WebUI and used Web Sockets to forward outputs from our vision library to the DS to view, rendered with HTML5 canvas. We also used the WebUI to view robot logs in realtime, configure defenses, read sensors and train our shooter flywheel. The biggest part, though, was the ability to reconfigure and reload the robot’s configuration file at any point, allowing us to adjust the PID controller, motor ports, and just about anything without restarting code in a matter of seconds. We also used this to adjust the timings of our autonomous.

Jaci, does it count as a dashboard if you change the firmware image on the RIO? :stuck_out_tongue:

Ah well, still cool either way. And a DS Dashboard is still easier than what you did.

That makes it MORE custom, right?!

Clearly you haven’t been paying attention, lots of people have done many different variations of this over the last few years.

However, you’re right that many that use a custom web dashboard choose to host it on the driver station instead of on the roborio – which I think makes sense on the field, because you don’t have to worry about additional field bandwidth considerations.

FRCDashboard is one project to make creating a web dashboard easier. If you want something even more customized, the underlying transport for FRCDashboard is pynetworktables2js, which allows you to access NetworkTables from javascript.

6325used FRCDashboard as a base/starting point to create our own custom one. We completely changed the UI and used angular for our modules. It’s now a lot different than FRCDashboard.

Thanks for all the replies,
I’m thinking about just coding a custom UI for the driver station and then just use UDP to connect it to the RIO.

I’ll probably want to code the UI in python on C++, any particular UI API’s I should use? I would like to eventually get my openCV frames to be sent to the dashboard.

We came close to the UDP solution for 2017 - we set up Jetty on the roboRIO to serve up a set of web pages, which would do a socket connection back to the roboRIO and stream data back and forth.

See the code, web source, and docs.

We have made some improvements/bug-fixes over the 2017 season, hopefully those will be released soon…

I should note this whole setup was heavily based on work 254 did a few years back (2015? I think?). Thanks 254!

For sending video, I would recommend mjpg streamer, it’s the easiest thing I’ve found to work with on both ends (rather than trying to transmit the bytes and unpack properly at the other end).