Unable to set sidecar output values?

Has anyone else had issues with getting programs to set output values of the digital sidecar?

Our team has tried the example SimpleRobotTemplate, as well as several other programs from last year, but none of them are able to set values on the sidecar. Our motor controllers show they are getting a deadband signal when enabled, but we are unable to send anything else to them.

We have tried a different cRIO, a different sidecar, a different digital module in the cRIO, as well as even switching to Java, and running the example programs from there as well. None of these produced any change.

We also tried going back through the installation guide, and redoing all the patches to make sure. This didn’t help either.

Has anyone else been able to change the outputs of the sidecar? If so, any other suggestions as to solutions for this issue?

EDIT: The bottom comment on this page has the solution, thank you to everyone who helped!

Which PWM outputs are you using to connect to the motor controllers?

Are you using Victors, Talons, or Jaguars?

What cable are you using to connect the cRIO’s Digital I/O module to the Digital Sidecar?

What is the Robot Signal Light doing, both when the robot is disabled and when it is enabled?

We went through all of the output channels, all of them produced the same result, deadband response when enabled, no signal while disabled.

We have the outputs hooked up to brand new Talons, but we did try Victors as well, just to make sure. The Victors had the same response as the Talons.

Our current cable is a standard DB-37 cable, that did work successfully on last years robot.

The signal light is flashing the standard patterns while enabled and disabled.

How do you know you’re setting the PWM output to something besides neutral?

These are snippets from our code files, using an iterative robot template from last year. The talon channel (7) is the last channel we tested.

The class definition:

class FRC2410Robot : public IterativeRobot {
	Talon* talonTest;
	void RobotInit();
	void TeleopContinuous();

The robot setup:

void FRC2410Robot::RobotInit()
	talonTest = new Talon(7);

The Teleop code:

void FRC2410Robot::TeleopContinuous()

Is that a typo?

Yes it is, my apologies, I renamed it here so it would make more sense, and missed that one. They are all named the same in the code version that we are testing.

You’re using a project from last year? That might be your problem. If you’ve reimaged the cRIO so that it’s using this year’s FPGA, you should be using a code base that matches.

Start with a new robot project and see if it works the way you expect it to.

The project itself was generated with the newest installation of windriver, only the code is copied from last year. I opened a new example project after installing the IDE, then copied in the basic code sections from earlier this thread. Also, running the example SimpleRobotTemplate project from this year without any changes at all has the exact same result. All controllers show deadband signals, and no input change has any effect.

Did you install the new cRIO image?

Everything we found in the installation guide, and from googling to find if we had the most recent image said that when the LabView update was applied, that would get the most recent version.

I could not find any site that had a download link for a cRIO image.

You need to reimage the cRIO with the V47 image that is supplied with the language distribution. If you run the 2013 Imaging tool, you should see last years image on your cRIO and the option to upgrade to V47. This will only work if you’ve installed the 2013 development tools and updates for the language you have selected in the Imaging Tool.


We did image the cRIO first thing after installing all the updates. I checked again to make sure, and it shows the current version is R47.

At our meeting tonight I’m going to try another computer, both for compiling and downloading code, and for running the driver station, just to make sure.

Thank you all for the help so far

After trying another computer with all the updates and patches applied, we got the same result.

I also tried running the DriverStationLCD example, and that will show the text line on the DS once, but not update after that (I’m not sure exactly what its supposed to do).

That could be your problem… The continuous method have been removed from the IterativeTemplate in the library so your Set method is never being called.

Source: 1)The template code 2) 2 under the second paragraph of Changes for C++ and Java here: 2014 Software Changelog and Known Issues | Getting Started With the 2014 Control System | 2014 FRC Control System

Thank you so much! That fixes everything! I really appreciate the help! :]