If CAN-bus functionality is used, limit switch jumpers may be removed from a Jaguar speed controller and a custom limit switch circuit may be substituted (so that the cRIO-FRC may read the status of the limit switches).
I know that when using PWM to control the Victors, the Limit Switche inputs automatically stop the motors in either direction when the a switch is tripped (discovered by accident). This seems like a GREAT safety feature.
But these jaguar -connected switches are only permitted when using CAN.
The rule “looks” like it’s permitting the use of limit switches with CAN ONLY to enable the cRIO to read them. Does this mean that when using CAN, the switches don’t actually stop the motors automatically?
If they do stop the motors, it seems like permitting their use with PWM would also make sense.
When using Servo PWM or CAN to control a Jaguar, the Limit Switch inputs always stop their corresponding direction when the circuit it open.
It is my understanding* that the reasoning for this rule is that you cannot read the state of the limit switch inputs with the cRIO when using PWM. Not having the ability to know the state of the limit switches could potentially lead to undesired behavior.
When using CAN, the cRIO can request the state of the limit switches so it knows what is going on with a particular Jaguar.
*My understanding does not represent the intent of the GDC. So to get an official answer to this question, you should ask the GDC on the Q&A.
One reason that I haven’t asked GDC yet is that I don’t think they usually like “why” questions… If they opened the gates for these they would be flooded with questions.
For me… Limit switches have three usefull purposes:
To tell you when a motion is complete in autonomous:
To stop a heavy handed student from braking something because they couldn’t tell what was hapenning on the robot in teleop.
They protect the hardware while still developing the software.
Your thoughts make perfect sense for 1), but if all we want to do is prevent accidents on manual motions (like in 2), or during S/W development (like in 3) being able to wire the limit switches directly into the Jaguar even when using PWM provides the best protection.
Since you have verified that the limts do work automatically in both control modes if makes me feel more justified in asking GDC the question.
Phil,
Under CAN the state of the limit switch must be read by the Crio and then a motor command is issued if the FMS is still allowing active motion. The limit switch in PWM mode controls the Jaguar directly, independent of the the Crio, and therefore, will continue to run the motor without interaction with FMS. Motion must stop under control of the FMS for either match play or safety disablement.
The limit switch in PWM mode controls the Jaguar directly only in the sense that it can override a cRIO command and STOP the motor. The limit switch has authority only to stop the motor. It can’t cause a motor to be powered if the cRIO isn’t commanding power. If FMS shuts down the cRIO PWM outputs, the motor will stop regardless of the limit switch position.
When using PWM, the only action of the N/C limit switch is to STOP the currently commanded PWM action if the limit circuit goes open. If the limit circuit is closed, the normal PWM command is in effect. This PWM is still fully under cRIO and FMS control. All the normal watchdog, comms, FMS safety protocols are still in full effect.
We know this because the two Jag jumpers that are normally installed just act as limit switches that never go open.
How can connecting N/C switches to these (which can only STOP the motors) create safety issues?
There’s no rule preventing you from doing this to protect the hardware during software development. Just make sure you remove it after the software is developed and before showing up for competition.
That’s not how it works. When a NC limit switch opens the circuit, the Jaguar shuts off the motor, regardless of the commands being sent to it.
When the limit switch closes the circuit (or the jumpers are in place), the Jaguar responds to commands. When the FMS sends a disable command, the cRIO shuts off the PWM signal going to the Jaguar. The Jaguar needs to see a signal every 100ms or else it shuts off and goes into a no-signal safe state. Therefore, when the cRIO shuts off PWM at the request of the FMS, the Jaguar shuts off within 100ms.
You can think of the same thing happening with CAN, however it is implemented differently.
As a beta tester I don’t remember having have CAN bus back in 2009, and I’m pretty sure direct connect Limit Switches were outlawed all together in 2010, regardless of the interface used.
So this is a new twist that seems only half baked.
Phil,
The limit switch rule was in place in 2009 not CAN bus use.
From 2009 Inspection Checklist
Custom Circuits, Sensors and Additional Electronics - cannot be attached to the cRIO’s serial port or Ethernet port 2 (except for the Axis 206 camera), cannot attach to Jaguar CAN or limit switch ports,…
No wonder we’re confused by what you’re saying. That’s not the rule we’re talking about here. This year’s <R55> J does permit limit switches when using CAN control.
Allow me to restate my question now that we have a few more facts.
(I am having our team leader post this on the Q&A… but just let me clarify)
We’ve established that regardless of the control method you are using with the Jaguars (CAN or PWM), the Limit switch inputs perform the same control function… that is: they stop the motor running a specific direction if that limit switch circuit goes open-circuit.
This in no way compromises any safety/watchdog/loss-of-comms/FCS shutdown action. It actually adds a level of safety.
The only difference between the two interfaces is that CAN ALSO lets the cRIO read the state of the switches, in case it wants to take some other action (since the motor is already shut down)
So my question is: Why can we connect limit switches to the Jaguar if we are using CAN bus, but not if we are using PWM. The automatic limit control action is the same. Please let us use it!!!
Just because CAN can read the inputs, there is no requirment to do so, but having the automated limit switch is a COOL feature to provide a faster response AND it frees up DSC I/Os for other uses (my other reason for wanting this).
I currently see no downside - safety or otherwise - in allowing direct limit switch use with the Jaguars in PWM mode. Particularly if they’ve already been allowed in CAN mode.