We are having a strange issue. After we disable the bot the linear servos on the hood seem to move at random times. The 2 servos will move independently and sometimes up and sometimes down some back and forth. They don’t seem to move to the extremes of the actuator like this thread talks about.
We are using 2 140mm L-16 linear servos for the hood. We are running signal from a single PWM port (we want the servos ‘linked’) that we Y to 2 ports on Rev servo power module Those ports are then connected to the linear servos
Right now we are controlling them with the dpad just to figure our shooting angles. The code is pretty simple. WE made our own convenience LinearServo class it is called from convenience methods in our turret class and those convenience methods and are calling it through commands on a button. That part seems to work fine during testing. the up button raises the servo 10mm and the down button lowers it 10mm.
The strangeness is when we disable. It doesn’t immediately react and stays where we left it. But then it will start moving seeming randomly. Again not together even though they are fed from the same pwm signal. They both seem to move at random times. Not always toward the last set point. Very strange. It should also be noted that the servo’s position reported on Shuffleboard don’t show as changed when the ghost movement happened.
My instinct is that is it is the servo power module reacting to some signal noise on the pwm and amplifying. Not sure why they would be behaving independently though.
Doesn’t look like you have a good solution set either. Problems are slightly different. I am not calling the servo disable and i am not incrementing the height. But I had seen that thread. Also mine will be at the setpoint when i disable. Then I will see odd jumps way outside what it was set at.
I’ve experienced a very similar problem with other servos. It ended up being a Neo motor that had one of its phases shorted to the case, and another device that had a grounded case that was not isolated from our frame. Not easy to diagnose at all. So, the Neo was putting electrical noise onto the frame, which was ending up on the ground bus, which was affecting all the servos, and oddly nothing else. My recommendation is to meter between your frame and your negative terminal on the SB50 on the robot.
We also found glitchy servo behavior with low quality PWM cables.
I think that is also a test for inspection. If it is, and is the cause, your bot may not pass. Nothing should be shorted to the chassis. I do agree that this would be difficult to identify.
R625 […] a resistor may be used as a shunt load for the PWM control signal feeding a
servo
It sounds as though your servos are reacting to noise on the PWM line. In addition to checking the wiring, and looking for ground (and also power) shorts, you may need to add such a resistor. The text is somewhat vague, but my reading is that it would allow putting a resistor between the PWM signal and ground (or possibly, between the PWM signal and +6V). I’d try a 10k resistor here, just to see if it helps. The idea is that when the robot disables, the PWM line is going into a high-impedance state, where it is easy for noise to drive it high or low. The resistor should help to prevent this. Given that you have the Y thing going on, I’d put the resistor on the REV servo module end. You could also ask REV for a recommendation here.
Leave all existing wires as they are. You are adding the resistor between the signal and ground pins on the PWM cable. Which side of the REV module is a good question, but the rule suggests you have to do it on the servo side of the REV module (but on the REV module end of the cable, since there are two servo ends).
If you anticipate any questions at inspection, ask a Q&A. But first, see if it works! Getting an opinion from REV wouldn’t be a bad idea either.