Controlling position of linear actuator

I was just investigating that. I may have to go that route. I guess I am a bit stubborn. I don't see how they are using PWM in the original application since the motor signals are all connected to latches. I almost wonder if they are actually just sending pulse widths (not PWM) directly (meaning turning the motors on for a certain length of time, then off.) When I was first experimenting with these, I found there was actually a pretty good correlation between pulse widths and position. For example, I was moving the head to one limit switch, then moving it to center with a 400ms pulse and it would land in the center every time. That would mean that they are using the position information to determine the direction to move and a pulse width based on how far off it is.

Honestly, for this application, it really doesn't need to 'hold' the position, because there is no load on the motors when they are not moving, with the exception of the mouth and eyebrows which spring back when power is removed. However, these both move from a centered position. I think they were just meant to spring one way or the other quickly and let it return to nuetral on it's own.

However, doing it this way is a hack and makes my ultimate code much less useful for other projects.