So during testing we are having major issues with Jags dropping out and not responding to inputs during the middle of our runs. We are using the CAN Bus for communication with speed control using the encoders on our four drive Jags. We have two others for a roller claw, and one more on the arm. We are seeing the Jaguars initially working then after a large load is applied (and a voltage drop is seen) to them they fault (we are seeing fault 4 - low voltage fault) they stop responding even though the jaguar shows it is still connected (solid yellow light).
This is even happening with Jags controlling low current motors (on our roller claw). We have seen it with 6 out of 7 jaguars on our robot.
We are getting pretty frustrated with them, anyone seen similar issues?? We are close to trying to find enough victors to replace the Jags.
if your inferences are correct, then the jags just aren’t getting proper input voltage. what is the battery voltage with a) no load and b) heavy load? If either of them are too low, switch out the battery to a fully charged one
seen this before! … we had the same problem last year while using a CAN bus and a Jag for position control on a swerve drive. You need to find a way to flatten the voltage spikes. What worked for us was to apply a 20msec rate limit to the position request to the Jag. As a back-up we came up with a function (tied to a joystick button) to save the encoder readings, disable the Jags, and re-enable them.
At what rate are you making the speed requests? The older IFI controllers ran at something close to 26msec.
Thanks for your suggestions we are going to try the button to disable and re-enable. We just slowed down our requests by 4 times and are still seeing issues.
We see these issues on fresh batteries almost instantly some times, our drivetrain setup is pretty standard and wouldn’t be drawing an abnormal amount of current. Our arm is also balanced with a gas spring so it’s motor doesn’t have to work hard. I would say that we are not drawing an abnormally large amount of current, thus probably not dropping our voltage that low.
A shot in the dark here, but we saw a similar issue this year…
Turned out it was a wire that wasn’t stripped enough in the power distribution board. When it was put into the WAGO connector on the PDB, the WAGO connector didn’t make solid contact with the wire. Instead, it pinched the insulation.
Strangely, enough juice still got through to power the Jag, and barely move the motor, but once you got it going, the voltage would drop too low, and the Jag would undervolt.
Running it in a slower loop won’t necessarily flatten out the spike. I see other teams talking about “ramping their Jag inputs”. That is more like what I am suggesting. I dug up an older example of doing just that with an analog joystick and Vic. It should be pretty easy to adapt it to the digital flightsticks and a Jag. Also, I re-checked last years code base. We rate-limited the swerve position to 20hz…not 20msec. So, more like 50msec. …sorry 'bout that
// a joy stick rate limiter for an IFI controller
// joy is the current joystick reading
// LPjoy is the last pass joystick reading
// RateLimit is the allowed change in joystick value / pass
// set LPjoy to joy after calling this
unsigned char RateLImitJoyStick(unsigned char* joy,
unsigned char* LPjoy,
int speed ;
unsigned char limited = 0;
speed = (int)joy - (int)LPjoy ;
if(speed > RateLimit)
speed = RateLimit;
joy = speed + (int)LPjoy ;
limited = 1 ;
else if(speed < -RateLimit)
speed = -RateLimit;
joy = speed + (int)LPjoy ;
limited = 1 ;
We ran into this last year in competition, There was a firmware update wich CAUSED this problem, i will assume (but just guessing here) that the latest firmware update has fixed this, If you are using Jags from last year. or even from this year, i would suggest trying a firmware update first.
We are having what seemings like a very similar issue. Early yesterday we had a robot that ran around the field great. Then after about 15 minutes of practice, the drive train jags started going yellow one by one and we kept getting a time out exception error on our java code. It didn’t really make sense because the error popped up always a little ways into teleop enablement and it was always on the fourth iteration of a loop assigning jags 2-5 in our CAN bus to a speed.