How to add cool widgets to SmartDashboard and add things like gyro angle display?

How do some teams have such elaborate smart dashboards with things like a moving compass style gyro output and stylized sensor outputs? We can’t find any sources on this online and we would love to find some base code for it. Thank you.

By the way, if the image link isn’t working, try this

Also how do people get two cameras in the smartdashboard?

I know a few teams code their own Dashboard, so that may be how some of the more cool things are created. SmartDashboard does have customization abilities that are pretty self-explanatory within the menu options.

The dashboard you linked a picture appears to be custom (I just googled ZomB dashboard).

Thank you! That’s very interesting. Although it does seem a bit outdated. How common is having a custom dashboard and how useful is it do you think?

Not many teams write their own dashboard application. Most use the default dashboard, SmartDashboard, or Shuffleboard. They’re able to show most data and are flexible enough to satisfy most teams’ needs.

1 Like

I wouldn’t recommend switching to a different dashboard this late in the season. Only a small minority of teams use a custom dashboard, and the gains of a custom dashboard are very minimal.

Hey, author of that photo, that dashboard, and that dashboard creation system here.

Wow, that is a blast from the past! That was our game-time dashboard in 2011!

ZomB was originally written as a custom dashboard in 2009 and actually predated SmartDashboard as a system that you could drag and drop custom controls on to do almost anything. I maintained it through 2012, at which point I left highschool for WPI and no longer had a windows machine to develop ZomB on (It’s a WPF C# application), and it’s been dormant ever since.

If you can actually get it to install (last tested on XP :disappointed_relieved:) it should require no dashboard side coding and take at most 5 minuets to drag, drop, and configure the dashboard to work exactly the same as from the first picture. The Robot-side code would take some actual coding, obviously, as the networktables protocol has changed since 2012, so you would have to use the included ZomB protocol (2012-era C++ and Java included, iirc).

After I went to WPI, I tried to improve SmartDashboard to surpass ZomB’s capabilities, but the fact that ZomB used WPF whereas SmartDashboard needed to be Java & JavaFX severely hampered that attempt. Still actually call ZomB my most successful GUI primarly due to WPF

I’ll see if I can dig up one of the last installers as the original project home was nuked in 2014 if you are interested. Oh and I mostly agree with what everyone else has said about custom dashboards, though the graticule on the left camera (black vertical lines) was indispensable on that dashboard for that year, and made custom well worth it for us that year.

And yes, if I recall, ZomB supports as many cameras as you can fit on the screen.

Shuffleboard already supports gyros. You can simply add one to the dashboard. All gyros that are subclasses of GyroBase will work out of the box. Otherwise, it’s not too hard to look at the source of GyroBase and see how to create your own Sendable that represents a gyro. The other stuff on there is pretty standard like the cameras are pretty easy to get on Shuffleboard.

You can mostly use these things if you learn how to use network tables in your code… too interact with shuffleboard.
Check out this link
https://wpilib.screenstepslive.com/s/currentCS/m/shuffleboard

Thank you so much for that source! That helps so much. I just encountered the issue getting the error message “shuffleboard/smartdashboard doesn’t exist”, but I’m currently updating and hopefully it’ll patch and fix over it.