Analog In

Analog sensors usually output a voltage or a resistance that can be interpreted by the node. When the output is a voltage, the signal can be directly read by the analog input, if it’s a resistance, a voltage divider must be used to generate a voltage equivalent to the resistance.


If your servo node does not incorporate a voltage divider itself, you must attach one separately.

Our servo nodes come with a default configuration for the analog inouts that can be alternated on request.

Please refer to our servo node’s analog in configuration for details.

Using differential I/Os for single-ended sensors

If you want to attach a single-ended encoder but the voltage range fits only to the differential ports, you may connect the signal to the + pin of the Analog In and the Ground to the - pin.


In this case you will lose half of your analog input range.

External scaled measurement

The analog input value is converted into digital tics from 0 (representing U_min of the selected input, e.g. -5V) to 4095 (representing U_min of the selected input, e.g. +5V). It is often not practical to have a digital value for an analog sensor since these values must be computed by a separate unit.

This feature allows to do a nonlinear conversion of an analog voltage using a 5th order polynomial function and read the value directly without any other processing unit.

It’s also possible to describe a voltage divider connected to the analog input for sensors that output a resistance as measurement value. Our upcoming Servo Node Circulo features such a voltage divider internally.

Applications include converting the output of a temperature sensor directly into degrees celsius, fahrenheit or any other unit desired by the user.

The converted value will be reflected in Subitem 0x2038:1


  • The hardware must support at least one analog input


A 5th order polynomial function with or without voltage-divider is supported.

If R:=0 (no internal voltage divider)

\[y(u_k) = a_5 * u_k^5 + a_4 * u_k^4 + a_3 * u_k^3 + a_2 * u_k^2 + a_1 * u_k + a_0\]

If R>0 (user specified pull-up resistor for voltage divider)

\[y(u_k) = a_5 * R_{th}^5 + a_4 * R_{th}^4 + a_3 * R_{th}^3 + a_2 * R_{th}^2 + a_1 * R_{th} + a_0\]


\[R_{th} = \frac {u_k} {4096} \frac {R} {1- \frac {u_k} {4096}}\]

The values are specified in object 0x2038, subitems 2-9

  • Analog input selection k (0x2038:2): Select the scaled measurement source. Values:

    • 1 = Analog Input 1
    • 2 = Analog Input 2
    • 3 = Analog Input 3
    • 4 = Analog Input 4
    • 5 = Internal ADC (if supported, for example Servo Node Circulo 700/1800)
  • Resistance R (0x2038:3): Select the pull-up resistor connected to the selected analog input. Value is given in Ohm.

  • Constant a0 (0x2038:4): Constant a0 of the polynomial (Offset).

  • Constant a1 (0x2038:5): Constant a1 of the polynomial (1st order coefficient)

  • Constant a2 (0x2038:6): Constant a2 of the polynomial (2nd order coefficient)

  • Constant a3 (0x2038:7): Constant a3 of the polynomial (3rd order coefficient)

  • Constant a4 (0x2038:8): Constant a4 of the polynomial (4th order coefficient)

  • Constant a5 (0x2038:9): Constant a5 of the polynomial (5th order coefficient)

Transforms an analog input to an output by a 5th order polynomial,