This article will explain how short circuit protection works in firmware version 2.1a+.


Short Error detection operation 


All the Roboteq controllers are equipped with current sensors that are contiuously measuring the motor current. The firmware is reading these current sensors 16000 times per second (every 62.5 us). If the measured current gets higher than 120% of the controller's peak curret, the short error detection will be triggered.


When the error is triggered, the controller disables its power stage. The MOSFETs stop switching immediately, so no more current will be supplied to the motor. If there is not any short circuit between the motor poles, the motor current will immediately start droping after the protection is triggered, so it cannot reach harmful levels for the controller. 


Detection levels


By default, the the short circuit protection is configured to strict. That means that at worst case the MOSFETs will stop switching 62.5 us after the high current event.


There is also one other option, to enable what is called "float recovery mechanism" and prevent the error occuring on the first current spike. The float recovery mechanism works by disabling the controller MOSFETs for a short amount of time (5 ms), so the controller cannot get damaged and enabling again the power stage after that time. If the current is still high, the MOFETS will be again disabled and the same process will be repeated for a configurable amount of times. If the current is still high, the controller finally will disable permanently the MOSFETs. In any other case, the normal operation will be continued. The high current event may feel like a very short gap in the rotation of the motor.


In the below example the short circuit detection is configured to the lowest sensitivity so it will permanently disable its power stage after 7 seqentially high current events. 



The number of times that the controller will go in float condition can be configured with the THLD command as follows:


^THLD nn, where nn is the sensitivity level and takes values from 0 to 2.


  • If set as High Sensitivity (0, default), then it works as an over-current threshold detector. The current threshold is defined at each product’s datasheet. So if current goes above that threshold the short fault is triggered.
  • If set as Medium Sensitivity (1) then when the current goes beyond the current threshold, the controller deactivates the MOSFETs for 5ms and then recovers. If that happens more than 3 times in a 128ms period then short fault is triggered.
  • If set as Low Sensitivity (2) then when the current goes beyond the current threshold, the controller deactivates the MOSFETs for 5ms and then recovers. If that happens more than 7 times in a 128ms period then short fault is triggered.


After sensig the THLD command don't ommit to save the configurations to the controller as follows: 


%EESAV 321654987


Reset the controller and see if the protection level has changed by sending the following query: 


~THLD


Note that this implementation exists only in 2.1a + firmware version and the THLD should not be changed by command in previous versions. Doing so will permanently disable the short circuit protection and will lead to controller damage. Disabling the short circuit protection will void the warranty of the product. 


The short error fault can be cleared by giving a zero motor command.