Our robot uses double solenoids to open and close and arm, and also to extend and retract the arm. During autonomous, we want to extend, then open the arm.
We’re using a sequential command for autonomous, and we call it in RobotContainer. The AutoHomingPosition, AutoHumanStation, and ArmExtend commands work as intended, but ArmOpen command refuses to work, and absolutely nothing happens.
ArmOpen and ArmExtend work as intended when we are in teleop, ArmExtend works during autonomous, but ArmOpen does not.
Does the ArmOpen command even run? I would try printing out some random string in the armOpen method in your arm subsystem, just to make sure it is even running. Do you build up enough air before you run autonomous? Do you use these methods at all during teleop? Double solenoids are also off by default, don’t know if that is an issue here, I don’t think that it is though.
The ArmOpen command is never being run. I don’t see any reason why this would be the case, especially if ArmExtend is running, but a logging statement in initialize will rule this out.
ArmOpen is running but not doing the right thing. I see no obvious reason why this would not work equally well in both autonomous and teleop. If you run in practice mode, does it have the same auto/teleop behaviour?
ArmOpen is running, but the pneumatics are not responding. Maybe there’s something about calling it immediately after ArmExtend that makes it unreliable, such as low pressure. You could test this by commenting out the ArmExtend in the auto command. Are you able to observe the status lights on the PCM while this is happening?
ArmOpen is running correctly, but something else is immediately countermanding it. I don’t see any obvious way for that to happen. In particular, you seem to be using distinct solenoid channel numbers.