All RoboteQ Controllers have the ability, to operate with quadrature encoders. These sensors are cost-effective while they usually have very high resolution and they are easy to mount externally to the motor. 

Quadrature incremental encoders vary a lot in the resolution, with the ones with the highest resolutions being better at accurately indicating the current position or speed of the motor, which is critical for applications requiring high precision. The lower resolution ones being cheaper and less demanding from the controller. 

Typical lower resolution values for commercial quadrature encoders can be 120 PPR and they can go up to 4096 PPR, and in some cases even higher. According to the Pulses per revolution, the controller will read the equivalent Counts per revolution. The Counts per revolution are 4 times the number of Pulses per revolution according to the equation.



Before acquiring an encoder for an application, it is highly advised to take into consideration factors like, maximum speed, accuracy required for the application and the resolution of the encoder. This is due to the higher cost when acquiring higher resolution encoders, as well as some limitations of the Roboteq controllers according to the MCU version.

Supported RPM according to PPR

The maximum supported frequency for the encoder input in F3 and G4 controllers is 200 KHz. According to that, there is a limitation of how many counts per second or RPM the controller is able, to read and process. Let us use for example a typical 1024 PPR encoder and calculate the maximum RPM the controller is able to handle when using such a sensor.

The formula to compute the counts per seconSd is:

CPS = (RPM/60) * PPR * 4 that will be transformed to RPM*PPR*4 = CPS*60 in order, to calculate the RPM

Example: For an F3 controller and an encoder of 1024 resolution.

200000 * 60 = RPM * 1024, this will give us a result of RPM=~ 11718 RPM. This means that the maximum RPM an F3 controller is able, to handle with a 1024 PPR encoder, is 11718 RPM.

This RPM is quite high, and the limit is hard to reach but for example a 4096 PPR encoder will reduce this RPM limit to:

200000 * 60 = RPM *4096 . this will give a result of RPM=~2929, that is a quite common RPM value for an application.

How to connect – What signals are supported

To use an incremental encoder with our controllers a simple connection has to be done as shown below in the schematic. All the connections can be found in the respective I/O connector of each controller. To find out which pins correspond to the connections, please refer to the appropriate datasheet of each controller.

Any quadrature incremental encoder is supported, as long, as:

  • It includes two quadrature outputs Channel A and Channel B with digital quadrature signals. 
  • It has a 3.0V minimum swing between 0 level and 1 level on the output of the signals.
  • 5Vdc operation, with 50mA or less consumption per encoder.

According to the most common configuration two encoders can be used simultaneously for two different motors.

Encoders with lap, index or more advanced features can be used but these extra features will not be used by the controllers.  


How to setup – Roborun+ Configuration

In order, to setup incremental encoders to work with Roboteq controllers, there are a few simple steps we need to follow in the Roborun configuration.

    1. First, in the sinusoidal settings menu, the Sinusoidal Angle Sensor must be set to either Encoder or Hall+Encoder depending on the preferred commutation method. 

    2. Then we will need to set the correct resolution on the encoder. The resolution should be set according to the Pulses Per Revolution of the encoder, not to be mistaken with the Counts per Revolution of the encoder. Additionally we will need to set the encoder as a feedback if we intent to use it as a closed loop feedback sensor.

Above is an example of setting a 1024 PPR encoder to work as feedback on motor 1.

    3. Following the above and taking into account we are using sinusoidal mode, we will need to go to the diagnostics tab and do the motor/sensor setup to "align" the encoder with the controller. It is an automatic process that does not require any further actions and will produce the required values for the sensor alignment.

Above is an example of a motor/sensor setup procedure with a hall+Encoder commutation setup. 


Note that HSAT-Hall Sensor Angle Table is created. The BADJ or the zero reference is set and the SWD or Swap Windings is set, this indicates whether the windings will be swapped by the controller in order, to have a proper commutation.


    4. An additional step to use the Encoder as a closed loop feedback device, the Closed loop feedback sensor should also be changed to “Other”.

After completing the steps above the motors should be ready to run in either open loop or closed loop modes.