SmartDashboard vs Shuffleboard

So my question is this. Do you prefer SmartDashboard or shuffleboard and why?

My team used SmartDashboard this year and it was ok, but just wondering if we should be using shuffleboard instead. Programing with java

2 Likes

We use Shuffleboard, mostly because of inertia. Shuffleboard makes it easy to manipulate the widgets and have multiple tabs (which we’d like to learn to manage in software), while SmartDashboard always seems to want to pile things on top of each other.

Another thing to look into is Glass, though that’s mostly for the programming team at this point rather than a driver station thing.

SmartDashboard is not recommended for use at all. Use Shuffleboard instead.

3 Likes

My team switched to ShuffleBoard in 2020 and so far we like it more than SmartDashboard. We mostly just like that it looks cleaner. In Java you can use it the same way as SmartDashboard, so there is almost no barrier to entry. I suggest you try it out and see which one you think looks better.

Our programming team uses a mix of smartdashboard and glass because the data blocks in shuffleboard a bit large for complicated debug outputs. However, our drive team uses shuffleboard, and between the dark mode, field widget, intuitive displays for booleans and meters, and ability to display data coming from other NetworkTables sources, it’s been awesome so far. We have a debug tab and a driving tab, and everyone’s happy.

1 Like

Our team used SmartDashboard in 2019 and switched to Shuffleboard in 2020, and found Shuffleboard has nicer features.

However, throughout the 2022 build season we were experiencing unexplained packet loss between our driver station and our robot. Then we found this thread: Shuffleboard causing high CPU usage, packet loss - Technical / Control System - Chief Delphi

We decided to switch back to SmartDashboard and indeed, the CPU usage went way down, and the packet loss went away.

That said, SmartDashboard has a bug where if you put a SendableChooser on the SmartDashboard (in order to select the auto routine, for instance) and you save that layout, and then open it again in SmartDashboard, the choices won’t display. We figured out a work-around for this, but it wasn’t pretty.

In the off season we intend to look into Glass.

1 Like

We found that long strings in the option names caused this issue. After we shortened the strings it once again consistently appeared for us.

A really bizarre issue.

2 Likes

To manage multiple tabs in code you can use the following:

ShuffleboardTab tab = Shuffleboard.getTab("Tab Name");
tab.add("Auton Chooser", autonChooser);
tab.addNumber("PSI", () -> this.getPressure());

If the Tab Name you give has not yet been created then it was create it for you.
Here’s a link to docs shuffleboard tab docs
Hope this helps.

2 Likes

I recently added documentation to each of the pages for:
ShuffleBoard
SmartDashboard
Glass
LV Dashboard

To add some pro/cons for each of them. They each have a purpose and tradeoffs.

1 Like

I have also observed high shuffleboard time usage on the robot side. See Profiling JVM languages on the roboRIO

1 Like

Nice analysis. Have you seen Brendan Gregg’s work on Flamegraphs? It’s a great way to visualize that data to find hotspots.

I am aware of flamegraphs, but I don’t think the profiler I used renders them. It was a couple years ago though, so I could be wrong.