Is Shuffleboard less reliable than SmartDashboard, in your experience?

I’ve had consistent problems with Shuffleboard being unstable and overall unreliable when used with a robot. Usually, when I open it, the widgets do not update their respective Network Table values when I edit them. I usually have to open up the Outline Viewer and edit each value manually once, to get the widgets to sync up.

This is not to mention that I’ve had problems with some widgets being “linked” to others without reason. Pseudocode example:


init() {
	// create a TARGET widget to be used in code later
	SmartDashboard.putNumber("TARGET", m_target);
}

periodic() {
	m_motor.set(SmartDashboard.getNumber("TARGET", m_default));
	SmartDashboard.putNumber("RPM", m_encoder.getRPM());
}

But when I opened Shuffleboard, the “TARGET” widget would have the same reading as the “RPM” block even though I was not calling putNumber(“TARGET”) outside of an init().

When I tried going to legacy SmartDashboard (this is my first year using both), I did not have any problems with widgets not syncing up, or taking in the values of other widgets. Sure, it looks worse, but I found it exceedingly more stable.

Does anyone with more experience in the Java/C++ dashboards have any advice regarding the stability of dashboards?

Shuffleboard is brand spanking new this year. Some teams have done off-season work with it in the past few months, but no one has taken it through competition season yet.

SmartDashboard has several seasons under its belt, but I’ve seen funky glitches in it as well. However, those have been reduced in number and scope each year.

I have had several problems with SmartDashboard throughout the year. That being said for the most part it works. Shuffleboard is new this year and it’s been buggy. That being said it’s much better designed so I am sure it will improve a good deal in reliability as time goes along. Personally if you rely on the dashboard I would stick with SmartDashboard.

I haven’t seen this behavior before. Can you share or link to your code?

Shuffleboard is new this year and it’s been buggy.

Buggy in what ways? There are some UI idiosyncrasies that I’m working on fixing, but the current release (1.1.1) is functionally stable as far as I’ve been able to test.

We had problems with some of the widgets creating null pointer exceptions which would crash the program when clicking on command widgets. This was before 1.1.1 came out so maybe it’s been fixed.

I have been playing around with shuffleboard and haven’t been able to get it to save a layout. Any layout save file I try to create is just an empty file. At least smart dashboard let’s me save a layout .

What does shuffleboard do in this situation? Can you share the log file at ~/Shuffleboard/shuffleboard.log?

I haven’t used SmartDashboard a lot, but Shuffleboard has been really 50/50 for me. Half the time I use it it’s incredible and works perfectly, but a good chunk of the time nothing syncs up, bunch of stuff turns grey/inactive, and I have to restart Shuffleboard like 4 times and re-drag out variables to get things to sync up.

For example, I have a bunch of commands that I put on Shuffleboard when the robot starts. It feels like every other time I upload code or reboot the robot all but one of them get greyed out, and I’m forced to restart it/reboot robot code.

Whenever I have a variable in a command that I have displaying as a slider, it works maybe 20-30% of the time? I have to turn the command on and off, redrag, and restart robot code/shuffleboard 3-4 times before it starts to work again. YMMV, maybe I’m just doing something wrong…

For the graying out thing, I think that’s caused by a race condition. I only see it once in a few dozen startups, though. I’ve submitted a PR (wpilibsuite/shuffleboard/386) to fix it; hopefully it’s the same problem you’ve been experiencing. You can check out that branch and build it, see if it fixes the problem. Race conditions are tricky to track down and fix, so I’d be happy if you could confirm the fix

Will do! Should be able to test sometime tomorrow