dashboard2: Extensible HTML/JS/Python dashboard

Over the past few weeks I’ve been developing a web dashboard to replace SmartDashboard. It runs a small web server on the RIO, and communicates using Server-Side Events and XHR.
Implemented so far:

  • Charts
  • Indicators
  • MJPG stream
  • Choosers
  • Extensions (Including a virtual tank-drive robot)
    Not implemented yet:
  • Text fields and inputs

Examples and pictures are on Github.

Curious, why not use pynetworktables2js?

Not really any particular reason. I wanted something integrated into the robot code, definitely not a separate application running on the driver station.

Note that this is called dashboard2. I had a previous one that never got past initial testing that did use pynetworktables2js. I don’t remember what I didn’t like about it then, but I did cast around awhile before settling on this. Maybe I broke it somehow, and decided I didn’t trust it anymore (not that I don’t trust you!)

Well, pynetworktables2js is a python package, so if you install it on the robot (using the RobotPy installer) you can just do an ‘import pynetworktables2js’ and then set up the server as the example code shows, it’ll just work.

I generally don’t recommend people installing dashboard software on the RoboRIO because of potential bandwidth issues during competition, but it will work.

Note that this is called dashboard2. I had a previous one that never got past initial testing that did use pynetworktables2js. I don’t remember what I didn’t like about it then, but I did cast around awhile before settling on this. Maybe I broke it somehow, and decided I didn’t trust it anymore (not that I don’t trust you!)

Sure, I’m not offended. Just curious as to why you duplicated the work. I’m sure you learned a lot creating this though! :slight_smile: