Can't see any values on dashboard

I can download code, and it runs no problem, but I cannot get the dashboard to show any response what so every. The PWM values don’t change when the motors are running, the gyro I hooked up showed no change on the analogue bumper. Is there something I have to do beyond feeding watchdog and checking the module?

You didn’t mention the compass, so you appear to have the preloaded dashboard, not the updated one. The Driver Station update doesn’t do a good job of replacing some files, and the dashboard is one of them.

Run the Driver Station update twice. The first time, tell it to uninstall. The second time, install normally. Then things should work as intended.

If you are using C++, the default Dashboard that comes on the Classmate driver station does not get updated automatically. Your program has to specifically prepare and send data to it.

See the example 2010 Vision Demo program, and study in particular how the dashboard data is packed into data “clusters” and sent to the driver’s station for display on the dashboard. It sends data in two clusters: vision data, and I/O data. With some more work, you can modify the structure of these data clusters and the dashboard program in order to display your own set of custom data.

HTH.

We also had this problem and learned the hard way that the code in the Dashboard examples has the code commented out that will update the dashboard with the cRIO data. You will need to uncomment that code before you get any data after you take the advice from the post above.

Hello, I am also having a hard time getting our Dashboard to display this data, even adding the code that supposedly does this. I am pretty new to programming for in C++ and for FRC, although I am somewhat familiar with programing practices in general, such and calling classes and the like.
We want to return PWM values but also Sensor values such as encoders and others. The only data that the dashboard returns for us is the battery voltage.

The battery voltage is not a good indicator to use for judging successful operation since it is included in the protocol explicitly. It does not use the data structures that you are supposed to use for sensors.

Are you modifying the Dashboard application? Have you removed all of the unused data fields and added the ones you are interested in? Remember that the data format must match on the robot and in the dashboard or the dashboard will fail to unflatten the string.

We have not, nor do we plan on, modifying the dashboard in any way. Are you talking about the DashboardDataExample.cpp file with all the things commented out? If so, I really do not know what to replace and where to put it. Again, sorry , but I am pretty new to this. The sensor values I want to return are pluged into the digital Sidecar opposite side from where the PWM’s to the Jaguars go (I assume these are called “Digital I/O Ports”, but there is no label on the Sidecar so i cannot be certain) and the values I want to display are those of the Quadrature Encoders we have on Channels (1,2) and (3,4).
I am working with the default code SimpleTemplate except that it has been switched for Tank Drive, the amount of time moving forward in Autonomous has been changed, and I have declared and initalized the Encoders and #include “DashboardDataFormat.h” . There has been no change to the DashboardDataFormat.h or .cpp, and yes I have copied them into the directory of the project. Also, I just mentioned the battery voltage because I have read posts about teams not receiving this reading.

I recommend that you do modify it. You should customize it to show exactly what you want it to.

That’s the file I’m talking about. All the commented out sections are examples. You don’t need them once you remove the corresponding variable on the dashboard side.

Those are digital inputs… it sounds like you’ve set up the encoder correctly.

Sounds straightforward. Now you just change the data type to the dashboard.

Start simple. Remove everything from the dashboard data on both the robot and on the dashboard. Add one INT32 to the robot code and to the dashboard… make sure that works, then add in any other data you want to display on the dashboard.

And how do you go about modifying it?

Are you talking about modifying the robot program or the dashboard?

Where is the dashboard code? is this the dashboard class?

The dashboard application is a LabVIEW program that runs on the classmate (or some other machine, and you can write a new one from scratch in any language you prefer). From the LabVIEW getting started screen, one of the options under New is to create a “FRC Dashboard Project”. This will create a new project that has all the framework you need to implement the dashboard. On the left side of the diagram, it has a “cluster” defined (same as a struct in C) with all the data that it will parse… one for high priority and one for low priority. You will notice that this set of data matches that in the DashboardDataFormat.cpp.

Both. You should change the format of the structure to include the data that you are interested in displaying. The structure has to be the same on the dashboard and the robot code.

Thank You!! Everyone kept saying MODIFY THE DASHBOARD!! but I am having enough trouble figuring out the encoders right now, and we have more sensors we want to set up. Where is the diagram though, I see the project explorer and it lets me open of the GUI. Other than figuring that out, I have never used labview. Since you have been so helpful, would you mind me asking you about an Encoder Example, maybe even one that sends it to the dashboard? If you could point me to something that would be very helpful. WPI documentation seems to be very lacking in the encoder area.

Here’s some code for unit testing the Encoder class:


	double position4x, position2x, position1x;
	DigitalInput qA(5); // Digital I/O 5 on slot 4
	DigitalInput qB(6); // Digital I/O 6 on slot 4
	Encoder encoder4X(qA, qB, true);
	Encoder encoder2X(qA, qB, true, Encoder::k2X);
	Encoder encoder1X(qA, qB, true, Encoder::k1X);
	// 6 inch wheel (pi*d) is 18.85 inch circumference; 24:40 tooth sprockets; 250 pulses per rev.
	encoder4X.SetDistancePerPulse(18.85 * 0.6 / 250.0);
	encoder2X.SetDistancePerPulse(18.85 * 0.6 / 250.0);
	encoder1X.SetDistancePerPulse(18.85 * 0.6 / 250.0);
	Jaguar rightMotor(2);
	rightMotor.Set(-1.0);
	Wait(2.0); // wait for motor to get up to speed
	encoder4X.Reset();
	encoder2X.Reset();
	encoder1X.Reset();
	encoder4X.Start(); // start counting
	encoder2X.Start();
	encoder1X.Start();
	Wait(5.0); // wait for some distance to be covered
	position4x = encoder4X.GetDistance(); // get position in inches
	position2x = encoder2X.GetDistance();
	position1x = encoder1X.GetDistance();

This code is only interested in position, not speed. Hope this helps.

-Joe