Linear servo programming

I own an L16-140-35-6-R Actuonix linear Servo. It has a 14mm stroke. However, I have yet found any information on its servo (control angle, angular position to linear distance, etc). Code that works for a normal servo does not seem to work on the L16 either. Where can I find information on how to control it via programming?

Right here in the data sheet: radio control models. The –R actuators or ‘linear servos’
are a direct replacement for regular radio controlled
hobby servos. The desired actuator position is input to
the actuator on lead 1 as a positive 5 Volt pulse width
signal. A 1.0 ms pulse commands the controller to fully
retract the actuator, and a 2.0 ms pulse signals it to fully
extend. If the motion of the actuator, or of other servos
in your system, seems erratic, place a 1–4Ω resistor in
series with the actuator’s red V+ lead wire.
L16 –R Linear Servos are the only 6 volt models.

So what ever you do for a radio control servo, you do for this servo.

Paul

Paul_KD7HB:
Right here in the data sheet: radio control models. The –R actuators or ‘linear servos’
are a direct replacement for regular radio controlled
hobby servos. The desired actuator position is input to
the actuator on lead 1 as a positive 5 Volt pulse width
signal. A 1.0 ms pulse commands the controller to fully
retract the actuator, and a 2.0 ms pulse signals it to fully
extend. If the motion of the actuator, or of other servos
in your system, seems erratic, place a 1–4Ω resistor in
series with the actuator’s red V+ lead wire.
L16 –R Linear Servos are the only 6 volt models.

So what ever you do for a radio control servo, you do for this servo.

Paul

It is, however, acting very strangely... It refuses to move with servo.write(0). servo.write(45) moves the piston all the way back, and servo.write(180) moves the piston only half way up... I am supplying 6v of power.

So what timing of a pulse do you think you get with servowrite(0)?

Paul

"It is, however, acting very strangely... It refuses to move with servo.write(0). servo.write(45) moves the piston all the way back, and servo.write(180) moves the piston only half way up... I am supplying 6v of power."

I think RC servos are usually designed to take position control for 45 deg to 135 deg (the rest of the motion is probably a bonus for hobby types). Anything greater than 135 deg and less than 45 deg may cause the actuator to hit its internal stops. If you get the full range of motion between 45 and 135, then it may be working as designed.

Try this simple test sketch (for UNO, Nano, ProMini) with actuator signal wire on pin 9 and a jumper wire from actuator power supply - (NEG) to Arduino GND.

/*
 Try this test sketch with the Servo library to see how your
 ESC responds to different settings, type a speed (1000 - 2000)
 in the top of serial monitor and hit [ENTER], start at 1500
 and work your way toward 1000 50 micros at a time, then toward
 2000. 
*/
#include <Servo.h>
Servo esc;

void setup() {
  // initialize serial:
  Serial.begin(9600); //set serial monitor baud rate to match
  esc.writeMicroseconds(1500);
  esc.attach(9);
  prntIt();
}

void loop() {
  // if there's any serial available, read it:
  while (Serial.available() > 0) {

    // look for the next valid integer in the incoming serial stream:
    int speed = Serial.parseInt();
    speed = constrain(speed, 1000, 2000);
    esc.writeMicroseconds(speed);
    prntIt();
  }
}
void prntIt()
{
  Serial.print("microseconds =  ");
  Serial.println(speed);
}