# General Data

## Gearing Options

<table><thead><tr><th width="266">Gearing Option</th><th width="150">35:1</th><th width="150">63:1</th><th>150:1</th></tr></thead><tbody><tr><td>Peak Power Point</td><td>50N @16mm/s</td><td>75N @10mm/s</td><td>175N @4mm/s</td></tr><tr><td>Peak Efficiency Point</td><td>24N @24mm/s</td><td>38N @15mm/s</td><td>75N @7mm/s</td></tr><tr><td>Max Speed (no load)</td><td>32mm/s</td><td>20mm/s</td><td>8mm/s</td></tr><tr><td>Max Force (lifted)</td><td>50N</td><td>100N</td><td>200N</td></tr><tr><td>Back Drive Force</td><td>31N</td><td>46N</td><td>102N</td></tr></tbody></table>

## Stroke Options

<table><thead><tr><th width="268">Stroke Option</th><th width="150">50mm </th><th width="149">100mm </th><th>140mm</th></tr></thead><tbody><tr><td>Mass</td><td>56g</td><td>74g</td><td>84g</td></tr><tr><td>Max Side Load (extended)</td><td>40N</td><td>30N</td><td>20N</td></tr><tr><td>Closed Length (hole to hole)</td><td>118mm</td><td>168mm</td><td>208mm</td></tr><tr><td>Feedback Potentiometer</td><td>6kΩ+-50%</td><td>11kΩ+-50%</td><td>16kΩ+-50%</td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="270"></th><th align="center"></th></tr></thead><tbody><tr><td>Feedback Linearity</td><td align="center">Less than 2.00%</td></tr><tr><td>Input Voltage</td><td align="center">6VDC</td></tr><tr><td>Stall Current</td><td align="center">650mA @ 12V</td></tr><tr><td>Operating Temperature</td><td align="center">-10C to 50C</td></tr><tr><td>Audible Noise</td><td align="center">60dB @ 45cm</td></tr><tr><td>Ingress Protection</td><td align="center">IP-54</td></tr><tr><td>Mechanical Backlash</td><td align="center">0.25mm</td></tr><tr><td>Maximum Static Force</td><td align="center">250N</td></tr><tr><td>Maximum Duty Cycle</td><td align="center">20%</td></tr></tbody></table>

## Sample Code

Sample code provided by FRC team 4414. The provided code is to control the position of the L16-R Miniature Linear Servo Actuators.

<details>

<summary>Sample Code</summary>

{% code overflow="wrap" lineNumbers="true" fullWidth="true" %}

```javascript
import edu.wpi.first.wpilibj.Servo;
import edu.wpi.first.wpilibj.Timer;
import edu.wpi.first.wpiutil.math.MathUtil;
public class LinearServo extends Servo{
 double m_speed;
 double m_length;
 double setPos;
 double curPos;
 /**
 * Parameters for L16-R Actuonix Linear Actuators
 *
 * @param channel PWM channel used to control the servo
 * @param length max length of the servo [mm]
 * @param speed max speed of the servo [mm/second]
 */
 public LinearServo(int channel, int length, int speed) {
 super(channel);
 setBounds(2.0, 1.8, 1.5, 1.2, 1.0);
 m_length = length;
 m_speed = speed;
 }
 /**
 * Run this method in any periodic function to update the position estimation of your
servo
 *
 * @param setpoint the target position of the servo [mm]
 */
 public void setPosition(double setpoint){
 setPos = MathUtil.clamp(setpoint, 0, m_length);
 setSpeed( (setPos/m_length *2)-1);
 }
 double lastTime = 0;
 /**
 * Run this method in any periodic function to update the position estimation of your
servo
 */
 public void updateCurPos(){
 double dt = Timer.getFPGATimestamp() - lastTime;
 if (curPos > setPos + m_speed *dt){
 curPos -= m_speed *dt;
 } else if(curPos < setPos - m_speed *dt){
 curPos += m_speed *dt;
 }else{
 curPos = setPos;
 }
 }
 /**
 * Current position of the servo, must be calling {@link #updateCurPos()
updateCurPos()} periodically
 *
 * @return Servo Position [mm]
 */
 public double getPosition(){
 return curPos;
 }
 /**
 * Checks if the servo is at its target position, must be calling {@link #updateCurPos()
updateCurPos()} periodically
 * @return true when servo is at its target
 */
 public boolean isFinished(){
 return curPos == setPos;
 }
}
```

{% endcode %}

</details>

## Graphs

{% tabs %}
{% tab title="Load Curve" %}

<figure><img src="/files/2jkoQm7JafckSrvXDWVe" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Current Curves" %}

<figure><img src="/files/KOUGwt5RYY9vqnrZ3avV" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wcproducts.com/welcome/electronics/miniature-linear-servo-actuators/general-info/general-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
