Hardware/Software Sidecar Issue

Symptoms: No Labview Code on the CRIO can communicate via the sidecar. All the power lights are on on both sidecars we tried, and both my custom code, and the stock code say they’re outputting values to the motors via PWM. Our code works in the simulation, but cannot communicate with any motors.

I have installed all the FIRST updates for 2013.

Attempted Fixes: Changed Sidecar, Changed Ribbon Cable, Changed Motor Controller, Tried using relays, used stock Arcade Drive code (no sim), used Motor Control Example Code, re-imaged CRIO several times (2013 v47), tried both 4 slot and 8 slot CRIO, changed PWM cables, using a Windows 7 Laptop instead of a Windows 8 Laptop to build and deploy, and changed IO Module.

We have no idea if it’s software or electrical, but we assume it’s hardware based on the simulator working.

First, “software issues” can either be failing to deploy the code properly (including mistakes like not reimaging the cRIO to the right version etc), failing to send the right value to the motor/component (which is not the problem according to you), or calling the wrong devref in Teleop. When everything’s defined properly and you send the right value to the motor but nothing actually works, it’s probably an electrical problem, though it doesn’t mean programmers shouldn’t know how to solve them…

I’m gonna echo a bunch of stupid mistakes/solutions we’ve been experiencing/using before;
*Did you connect your PWMs the right way? Follow this PDF, on page 2, you’ll see which side is the signal and which is the Ground. You can see the right order for the sidecar’s end on the sidecar itself.
If, say, the red wire is “signal” on the jaguar’s side, it should be “signal” on the sidecar’s side too. Don’t follow any other guidelines about that matter.

*Does the victor/jaguar get ANY input? AKA, when you enable your code, does it change its indicator led from slow flash to constant light? Does the led seem to respond to your input despite the fact that the motor wouldn’t? Do you get a slow, flashing RED light at any point?

*Have you tried following an FRC example for controlling and testing a motor? When things don’t work, always go to an example first as they are properly defined right from the get go, and they usually have a little chart showing you how to connect your component right.

*Have you connected fuses?

*Have you made sure your digital sidecar module is connected to the 2nd slot in the cRIO?

*Are any sensors/spikes working?

Digital Module in slot 2 of the cRIO?

Inspect the pins that the module plugs into for bent pins.

Driver Station communicating and Enabled?

Other status light values:

  • Motor controllers?
  • RSL?
    *]Relay red/green indicators (when you tried them)?

Did you check the PWM cables? S means signal, G means ground.

Never mind. Cable was in backwards.

And just FYI for all teams, 1 backwards PWM, and the whole board’s down.
I face-palmed when someone told me.

Well, back to programming, where I actually know what I’m doing.

…________
…,.-’"…~., .............................,.-"..................................."-., .........................,/...............................................":, .....................,?......................................................, .................../...........................................................,} ................./......................................................,:`^`..} .............../...................................................,:"........./ ..............?.....__.........................................:`.........../ ............./__.(....."~-,_..............................,:`........../ .........../(_...."~,_........"~,_....................,:`........_/ ..........{.._$;_......"=,_......."-,_.......,.-~-,},.~";/....} ...........((.....*~_......."=-._......";,,./`..../"............../ ...,,,___.`~,......"~.,....................`.....}............../ ............(....`=-,,.......`........................(......;_,,-" ............/.`~,......`-...................................../ .............`~.*-,.....................................|,./.....,__ ,,_..........}.>-._...................................|..............`=~-, .....`=~-,__......`,................................. ...................`=~-,,.,............................... ................................`:,,...........................`..............__ .....................................`=-,...................,%`>--==
,-%…`
…,

(Face Palm)

In the future, it may be useful to resolve SW or HW issues by putting the robot into Test Mode.

You do this by putting the DS into test mode either enabled or disabled, depending on what you want to test. In the dashboard, you flip to the test tab on the right side. It should show all I/O that you opened and registered along with info about how it was opened.

This should help see if the PWMs SW is talking to match the electrical wiring. Then you can click on the Output ** line, change the slider, and enable to move the motor via the Test code. This should be a relatively trustworthy signal from SW to help determine if LEDs are coming on, motors turning, etc. This is also useful for testing sensors, where you may want to keep the robot disabled if you need to put your hand in front of a light sensor, etc.

Greg McKaskle