R63 and mixed CAN-PWM designs

1350 has some questions pertaining to CAN operation and R63:


<R63> Each Jaguar speed controller must be controlled with signal inputs
sourced from the cRIO- FRC and passed via either a connected PWM cable
or a CAN-bus connection.
A. The Jaguar must receive signals via either a PWM cable -OR- a
CAN-bus connection. Both cannot be used simultaneously.

C. CAN-bus configuration: If the Jaguar speed controller is controlled via
CAN-bus communications, then each Jaguar speed controller must be
connected to either the cRIO-FRC or another CAN-bus device with a
CAN-bus cable.

I may be reading too far into this, but the wording is a bit confusing here. Are we allowed to use a mixed CAN-PWM design, where some of the Jaguars are controlled via PWM, with a specific subsystem controlled via CAN bus?


B. PWM configuration: If the Jaguar speed controller is controlled via
PWM communications, the PWM port on the Jaguar speed controller must
be connected directly to a PWM port on the Digital Sidecar with a PWM
cable. No other devices may be connected to these PWM ports. No other
devices may be connected to any other ports on the Jaguar speed controller.

Does this imply that using the limit switch inputs is not allowed when using PWM control? I understand why the closed-loop position control must be used with CAN, but not the limit switch control.

It says each Jaguar, meaning you treat each one individually. You can have one jaguar controlled by PWM and one jaguar controlled by CAN. You can’t have the same Jaguar controlled with both.

That’s the way I read it. If your team would like to use the limit switches with PSM, your team should ask if that is what is intended in the official Q/A.

I believe the reason for this rule is that the robot control code running on cRIO must know (or be capable of knowing) the state of the motor controller. Your control code can read the state of the limit switches over CAN, but if using PWM there is no way to know that the limit switch was pressed and the Jaguar output disabled.