we’ve run into a problem where we’ve run out of ports on our PCM and were wondering if we could use a motor controller(Talon SRX) in order to control a single solenoid. We think that it would work fine if we current-limit in the Talon SRX’s configuration to under 5 amps, so we don’t push too much to a solenoid. Other than that, the solenoids use 12v, just as a Talon outputs, so we think it’ll work, but the problem is legality. Looking through the game manual, we couldn’t be sure because of the ambiguous wording on page 83 of the game manual (footnote 1). Anyone know the legality of this? Thanks!
You can also use a second PCM connected to a PDP channel, which would give you 8 extra solenoids.
A second PCM is the most likely way, but another possibility is a spike or automation direct relay module (See R29 b for the list of legal relays).
A team old as yours has a box of Spikes https://docs.wpilib.org/en/latest/docs/getting-started/getting-started-frc-control-system/control-system-hardware.html => Spike H-bridge Relay. Two control systems ago these were the only way of controlling solenoids.
Okay, we’ve decided to not use any spikes, but what is the procedure in C++ to use two PCMs?
You’ll need to set the CAN id of the second PCM to something other than 0 (the default). Then you pass that CAN id to the solenoid constructor.