We have been having a lot trouble with our robot lately. We were running our practice robot, and it was driving perfectly, when all of the systems died very suddenly. When enabled, the jaguars would not receive any signal (flashing yellow LED). The first thing we did was to write a new code, and when we define and run one motor at a time, that motor will work perfectly. This can be done with any of our 7 motors. When we tried to run more motors, we can define up to four jaguars, and all of them will run. As soon as we define a fifth jaguar however, even if we do not set the speed, none of the jaguars will receive a signal when enabled. Does anyone know what might cause this?
No, it doesn’t sound normal. Do you mind posting the code that doesn’t work?
The kids will post the code later today when they get to school. They were practicing driving, running the bot hard, when it stopped and wouldn’t restart, so we suspected a burned out motor (CIM) or Jag. After determining with a simple test prgm that each Jag (using PWM)/motor worked individually, we tried building up a simple drive program using the IterativeRobot project. We are using a mecanum drive, so the prgm defines 2 Joysticks and 4 Jags (ie, Jaguar LFmotor = new Jaguar(1,1); and repeat for ports 2-4. We pasted code from the competition prgm to calc speed outputs for each motor, limited +/- 1.0, and simply call LFmotor.set( speed ) for each Jag inside the teleopPeriodic() method. With this code the bot runs fine. When the prgm is started, the Jags flash yellow while disabled and go solid yellow when enabled. If we simply add a 5th motor (ie, Jaguar shooterMotor = new Jaguar(1,5); ), without even further referencing the object elsewhere in the code, then after we enable, the Jags continue to flash yellow. We know that the teleopPeriodic function is being called. We have tried various combinations of our 7 Jag PWM ports and the results are always the same; works with four jags, not with 5+. Calling Jaguar isAlive() method returns true, even when the Jags don’t see the signal. We tried Watchdog.feed(), even though we don’t explicitly enable safety. We tried swapping the 9403 digital i/o module, and ribbon cable, no change. We will try swapping the DSC tonight. This has got us stumped. Thank you all for any suggestions you might be able to offer.
Not running more then 4 speed controllers is a classic symptom of the digital sidecar not receiving 12v power. Are all 3 power LEDs brightly lit?
Have you try to reset them? If it not that them check your pwm cables for a bad one or one not plugged it. hope it helped
This really does sound like an electrical issue, not a programming issue - everything works one second, and doesn’t the next with no changes in between. Since you know the Jags aren’t getting a signal, odds are the root cause is located where that signal is coming from - the Digital Sidecar. Double and triple check it: Is it getting full power (all 3 status LED’s next to the power port should be on - Batt, 5V, and 6V)? Is the RSL still working? Can you try swapping it out for a spare?
At LSR last weekend, our robot died on the field. The FMS showed a good connection, the radio and cRio were still up, and we were getting the battery voltage sent through correctly. When we got back to the pit to diagnose the issue, we saw that the speed controllers weren’t getting any signal. Tracing this back to the one point of commonality they all share (besides the PDB, since they all had power), we saw the 5V LED on the DSC wasn’t lit. The students quickly and efficiently swapped it out for one of the spares we brought, and everything worked fine after that! Testing the one that broke is on our to-do list… I’m hoping there were just some metal shavings that shorted the 5V rail and the thing is still fine, once we get it cleaned out!
Thanks, Changed the DSC and all is well. Running like a champ once again.
See you on the field.
Joe Ross nailed it. The DSC was the problem. Next time we will mount it so that the LEDs are more visible. Thanks to all who took the time to read and respond. We are a little smarter today than yesterday.