Servo Motor Encoder Types: Incremental vs Absolute
Introduction
A motor encoder is a sensor that measures the position, and often the speed, of a motor shaft, then feeds that value back to the controller. It is what turns an open loop drive into a closed loop system that knows exactly where the rotor is. Encoders come in many types and accuracies, from simple incremental units to high resolution absolute encoders.
In any control system you can only control what you can measure. In motion control, where the goal is to hold or move to a position, that measured quantity is shaft angle, and the encoder is the part that provides it. If you want the wider context, see our guide on servo motors.
In order to integrate an encoder to a control system, There are multiple absolute position encoder standards. Some of them use RS485 or RS422 based serial digital interfaces with, like Biss or EnDat 2.2. Some others use ethernet-based protocols like PROFIBUS, PROFINET or CAN.
Types of Motor Encoders
Motor encoders can be grouped along two simple axes: what they output (incremental or absolute position) and how they sense motion (optical, magnetic, or inductive). Getting these two choices right is usually enough to narrow down the encoder you need.
| Grouping | By output | By sensing | By signal |
|---|---|---|---|
| Options | Incremental, AbsoluteHigh speed | Optical, Magnetic, Inductive | Digital (BiSS-C, SSI, EnDat), Analog (resolver, Hall, sin/cos) |
| In short | Incremental counts change from a reference point, absolute reports a unique position at power up | Optical is high resolution, magnetic is robust to dirt and vibration | Digital travels better over long cables and can carry CRC checks |
The sections below look at each of these in turn.
Digital Encoder
Incremental vs Absolute Encoders
| Output | Needs homing?By signal | Typical use | Cost / complexity | On power loss | |
|---|---|---|---|---|---|
| Incremental encoder | Pulses on change of position | Yes, after every power cycle | Speed control, simple positioning | Generally lower | Position reference is lost |
| Absolute encoder | Unique position code, valid at power up | No, position is known immediately | Safety, robotics, precise position hold | Generally higher | Position is retained |
As a rule, choose incremental when a homing move at startup is acceptable and cost matters, and absolute when the machine must know its position the instant it powers on.
There are two main types of encoders which are incremental and absolute encoders. Incremental encoders can measure only the change in angular position. They output the angular displacement using pulses. Another type of encoder is absolute encoders. These encoders can output the position as soon as they power up and don’t need a change in position.
In Order to understand how incremental and absolute encoders work, let’s take a look at their internal structure.

Optical encoders have a round disc. They use optic sender and receiver to detect obstacles. In an incremental encoder there is an optic sender on one side and an optic receiver on the other side of the disc. The optic sensor detects the crossing of the obstacles in front of it and generates a pulse each time it detects one. By counting the number of pulses, we can calculate the amount of angular displacement of the encoder.
In an absolute position encoder, on the other hand, there are more rows of obstacles. In every position there is a specific pattern of obstacles. In the picture above, there are three rows of obstacles, so there can be eight different patterns around the disc distinguishing a specific section of the disc. Every one of these sections has its own three bit data value. In other words we can say, the absolute encoder encodes every section with three bit data. More rows of obstacles lead to more precise data values.
Another way to increase the precision of the encoder data, is to couple the disk by a gearbox to the shaft.
One of the most common sensors used for encoders is optic sensors. Using them we can detect the presence of an obstacle. Using this technique, encoders can measure position or displacement.
Absolute encoders data streams to send the position. There are some protocols that are used to send data out of encoders.
Using digital interfaces has significant advantages compared to sending pulses, especially over long distances. Usually, raw pulses of an encoder are not trimmed well and over large distances can cause voltage spikes due to the series inductance. In addition, they can provide verification like CRC to show whether the signal has been read correctly or not. And last but not last don’t contain specific methods to consider the propagation delay and which can be so slippery. So it’s strongly recommended to use a digital interface to communicate with an encoder even when you don’t need the absolute position.
Here we get to know some of the most common digital interfaces to communicate to a digital encoder.
Biss Interface
BiSS is a synchronous serial interface widely used in encoder products. It’s an open source protocol introduced by iC-Haus GmbH.
This protocol is mostly used in point to point configuration, when reading an encoder value. This configuration is based on two signals which are MA and SL. Every signal consists of two differential signals which are MA+, MA- and SL+, SL-. MA is the clock signal and also is used to synchronise the data transfer between master and the slave. The SL signal is used to transfer data from the sensor (slave) to the controller (master). Since this is an isochronous protocol, the gap between data frames is controllable and is determined by the MA signal. The data frame is illustrated in the following image

The MA and SL signals are HIGH when they are in idle state. To start data transmission, the MA signal strats clocking. The first rising edge of the MA signal syncs the encoder which is the slave. At the second rising edge of the MA signal, the encoder issues an ACK by lowering the SLO signal. Then the encoder generates the start bit. Next is the CDS bit which is wether generated by the slave device or is set according to the rules by the controller. The next step is the data section. The slave send the position data with the most significant bits. This section is followed by two bits which are error bit (nE) and warning bit (nW). At the last section the encoder sends the cyclic redundancy check with the most significant bit first. So the data transmission is ended and the
The frequency of the MA signal can have different values and is somehow restricted by the cable length of the device. The following table depicts recommended values of the clock frequency for different cable lengths.
| Cable Length | Up to 10 m | Up to 25 m | Up to 60 m | Up to 100 m | Up to 200 m | Up to 500 m | Up to 1000 m |
|---|---|---|---|---|---|---|---|
| BiSS MA frequency | 10 MHz | 5 MHz | 2 MHz | 1 MHz | 500 kHz | 200 kHz | 100 kHz |
SOLO offers a ready to use BiSS-C absolute encoder designed to pair with its controllers, so you get a high resolution digital feedback loop without wiring an interface from scratch. See the SOLO Absolute Encoder (BiSS-C).
SOLO offers a ready to use BiSS-C absolute encoder designed to pair with its controllers, so you get a high resolution digital feedback loop without wiring an interface from scratch. See the SOLO Absolute Encoder (BiSS-C).
SSI
SSI is an acronym which stands for Synchronous Serial Interface. It’s unidirectional data transfer protocol over RS422 and is widely used for transferring data by encoders.
The clock is generated by the master and can be in the range of 80 kHz to 2 MHz. This protocol does not support propagation delay.
This protocol has a relatively simple data frame. In idle state the clock signal is kept high. The data transfer starts with the first clock. With the first falling edge of the clock, the encoder stores the position to be sent. Then with the first rising edge, the encoder shifts the data out. It sends the most significant bit, MSB, first. After sending all the data, the encoder goes into the idle state again.
EnDat 2.2
EnDat 2.2 is another type of serial data standard used by encoders. Like other serial communication we have discussed, This interface uses differential signals to transmit data. Two differential signals, CLOCK+ and CLOCK- to transmit clock and two others ,DATA+ and DATA-, to transmit data.

Clock is always generated by the master and data is bidirectional. The data line is bidirectional half-duplex. The data on the data signal changes at the falling edges of the clock signal. You can see the data frame of this protocol in the following image.

In idle state the clock signal is high. With the first falling edge of the signal, the encoder saves the position value. Then after two clocks, master sends the command to slave and request for transmistion of the position value. The slave first send three bits which are as follows:
S1: Start bit
F1: Error 1
F2: Error 2
After sending these bits, the encoder sends the position data with the LSB first. And the last section is the CRC value which has five bits, the ENDAT technology is offered by HEIDENHAIN.
HIPERFACE DSL
HIPERFACE DSL is another digital protocol for absolute position encoders introduced by Sick. The main feature of this protocol compared to the other mentioned earlier, is its strong robustness which makes it possible to integrate power and signal cables. This feature makes wiring simpler and more neat. Some other features and characteristics of this protocol are listed below:
– The data can be sent using RS485 standard
– Half duplex communication to encoder is available
– The two differential signals are sent on encoder power lines which makes cabling simple. All the wires can be of one cable.
– The cable length can be up to 100 meters.

This protocol can be used in two or four wire configurations. When used in two wire configurations, some considerations on the frequency driver side are made. First a signal transformer is implemented to increase common mode rejection ratio. In addition a pair of inductors are used two couple the dc power to the signal lines and a couple of capacitors to decouple this power the dc voltage from the transformer. In the following image you can see the circuitry and component values recommended by HIPERFACE DSL.
Comparison table
Let’s have an overview on the Absolute encoder digital interfaces
| Interface | BiSS-C | SSI | EnDat 2.2 | HIPERFACE DSL |
|---|---|---|---|---|
| Signaling | Differential, clock + data | Over RS422, clocked | Differential clock + data | Over RS485 |
| Direction | Master reads slave | Unidirectional | Bidirectional, half duplex | Half duplex |
| Notable trait | Open source, point to point, CRC check | Simple frame, no propagation delay handling | Commands plus position, CRC | Power and signal on one cable, long cable runs |
Optical vs Magnetic Encoders
Beyond the output type, encoders differ in how they sense motion. The two most common technologies are optical and magnetic.
| Sensing | Resolution | Robustness | Best fit | |
|---|---|---|---|---|
| Optical encoder | Light through a slotted or coded disc | Generally very high | Sensitive to dust, oil, condensation | Clean, high precision setups |
| Magnetic encoder | Magnetic field over a magnetized track | Good, typically lower than optical | Tolerant of dirt, vibration, wide temperature | Harsh industrial and mobile environments |
In general, reach for optical when you need the highest resolution in a clean environment, and magnetic when the encoder has to survive dust, vibration, or temperature swings.
Analog Encoder
Along with the digital interfaces discussed in the previous chapter, there are some other types of encoders that generate an analog signal in their output. In this chapter we are going to study some of the convenient analog rotary position sensors.
Resolver
Resolvers are used to measure position and angular displacement of motors. They somehow are like electric motors and have windings. They have two main parts which are the stator and rotor. These devices,like encoders, connect to the shaft of a motor and to rotate.
– Rotor: Is the rotating part of the resolver. It has a winding that is fed by a high frequency sinusoidal signal. The winding is also called the excitation winding.
– Stator: It is the fixed part of the resolver. It has two windings which have a 90 degree displacement to each other.
Resolvers are multipole, meaning they can have multiple pairs of these poles. If a resolver has 2p number of these poles, its winding waveform cycles p time in every rotation of the shaft.
In the following picture, you can see a schematic of windings of a resolver.

Hall Effect Sensor
Another type of sensor to measure rotary position is the hall effect sensor. This type of sensor uses hall effect to measure rotation.
Let’s see what the hall effect is. Consider a plate which is part of a circuit and a current is flowing through it. If there is a magnetic field near to the conductor, positive and negative charges rearrange due to the magnetic force to the opposite slides of the plate. So there is a tiny amount of voltage different across the plate now. The amount of the voltage difference is dependent on the amount of the current and the magnetic field. So the hall effect sensor creates a voltage signal in presence of a magnetic field.
A hall effect sensor can be used to measure rotary position. To the task, there are magnets around the rotary part of the encoder and a hall effect sensor on the stationary part. As the rotary part rotates, the hall sensor detects magnets that pass. By coupling the encoder to the motor shaft, the position and velocity of the shaft can be measured.

Image references wikipedia.
Sin/Cos Encoder
Sin/Cos encoder is another type of encoder that uses analogue signals to transfer data. IT generates two sinusoidal waveforms that have 90 degrees phase shift compared to each other. So one of them is called sin and the other is called cos output. It can provide much higher resolutions of position, which makes it suitable for precise motion control tasks done by servos. Since the output is an analogue sinusoidal waveform, the amplitude could be read in the controller side using high speed ADCs. This makes higher resolution measurement possible. But in an incremental digital encoder, we are limited to the number of pulses it can produce in each rotation. Sin/Cos encoders use differential signals in order to decrease noise effects along the transition.
Tachometer
These devices call Tachometer are frequently used in industry to measure speed. A tachometer is a device that its output is dependent on the speed of the motor it is connected to and can not be used to measure position of a shaft. There are two main types of tachometers. A tachometer with infrared input uses a plus coming or reflecting from the shaft of the motor to measure its rotation speed. Devices using this technique are mostly portable and don’t need a mechanical cou;ling to the motor. Another type of tachometer, which is also called tachometer generator, generates a dc voltage in the output. These devices are kind of small dc motors that are used as a generator. In these motors, the output voltage is proportional to the velocity. Therefore by coupling this tachometer to a motor shaft, it generates output voltage which increases by velocity almost linearly. So by measuring the voltage the velocity is measured.
Comparison table
Let’s have an overview on the analogue encoders
| Type | Resolver | Hall effect | Sin/Cos | Tachometer |
|---|---|---|---|---|
| Measures | Position and angle | Position and speed | Position | Speed only |
| Signal | Sinusoidal, excitation winding | Voltage from magnetic field | Two sinusoids, 90 degrees apart | DC voltage or pulses |
| Notable trait | Very robust, good for harsh environments | Simple, low cost, moderate resolution | High resolution via ADC interpolation | Cannot report shaft position |
Do You Always Need an Encoder?
Not always. An encoder gives the most accurate and repeatable position and speed feedback, which is why it is the default for precise position control, safety, and demanding robotics. But it adds cost, wiring, and a part that can fail.
For many speed control and general purpose drives, sensorless control estimates rotor position from the motor own electrical signals, with no encoder at all. It is cheaper and simpler, at the price of lower accuracy at very low speed. As a rule, use an encoder when you need exact position or motion at standstill, and consider sensorless when speed control is enough. See our guides on sensor vs sensorless and sensorless control, and on torque, speed and position control to pick the right feedback for your application.
Building a closed loop motor system? SOLO controllers accept encoder feedback for accurate position control. Pair them with the SOLO Absolute Encoder (BiSS-C) and a controller such as the SOLO Uno or the SOLO Mega, or browse the full controller range. See it in action: Position Control with Encoder and DC Motor Encoder Setup.
Products in this article



Related articles

Python on Raspberry Pi: Production Motor Control Tips with SOLO
Production tips for Python motor control on Raspberry Pi with SOLO: SoloPy setup, robust serial/CAN, threading, error recovery and reliable deployment.

EtherCAT Motor Control with the SOLO SOM
How EtherCAT motor control works with the SOLO SOM: CoE and CiA 402, distributed clocks, cyclic synchronous modes and wiring a deterministic servo network.

Cogging Torque vs Torque Ripple: What Is the Difference
Cogging torque vs torque ripple explained: what causes cogging, how it differs from torque ripple, when each matters, and how FOC and design reduce them.
