The operating parameters of the controller can be observed real time at the run tab of the Roborun+ Utility. This is a great tool for monitoring the motor performance, but it has some limitations. The relatively low logging frequency of the chart might lead to some important events going unnoticed. These can be: 

  • Momentary Undervoltage - Overvoltage errors 

  • Momentary active amp limiting that degrades motor performance 

  • Short duration current – feedback spikes 

  • Momentary digital inputs activation due to electrical noise 

  • Other transient events 

Thankfully the Roborun+ Utility give the ability to get logs with sampling frequency up to 1 KHz. This can be achieved in two ways: 

  • With stream command, at firmware version 2.0 or later 

  • By scripting, at all firmware versions 


Parameters that can be logged 


All the supported controller parameters can be found at the Roboteq Controller User Manual. The most common parameters used for debugging can be found at the following categories: 


Controller Status: 

FF: Controller fault flags. Reports all the fault conditions of the controller like undervoltage, overvoltage, short circuit, overheat etc. 

FM: Runtime Status Flags. The status of the controller can be: Amp limiting active, limit switch triggered, Safety stop active, motor is stalled, etc. 

FS: Status flags like analog mode, pulse mode, script is running, motor sensor tuning mode, etc. 


Operating Parameters: 

M: The given motor command 

RMP or TR: The actual set point by following the acceleration/deceleration ramp 

F: The measured feedback  


P: The supplied power 

A: The motor current. This is RMS average current of three motor phases 

PHA: The instant phase current 

MA: The FOC torque and Flux amps 


IO values: 

DI: Digital input state 

DO: Digital output state 

AI: Analog input voltage 

ASI: Sin/Cos or SSI sensor input 

HS: Hall status 

V: Battery, controller and 5 volt output voltage 

T: Controller temperature 


Using Stream 


The advantage of using stream is that it does not interfere with the script execution and the script does not need to be modified. 

 The stream command has the following syntax: 

# c_/?Par1 cc_?Par2 cc_Par3 cc_# t 

Where Par1, Par2, Par3… is the command name, cc is the channel and t is the logging time in ms. 

For example, the following stream can be used to record the Motor command, motor current and motor power for both controller channels: 

# c_/?M 1_?M 2_?P 1_?P 2_A 1_?A 2_# 1 

The # 1 is the logging period and its units are ms. Various logging periods can be used. Please have in mind that if the logging data exceed 10000, then the logging values will start being overwritten. That means that by using a logging period of 1ms the data will start to being overwritten after 10 sec. That is why it is very important to stop the logging execution as soon as the error has been captured. 



How to capture the logs with stream 

  1. Go at console tab and paste the stream command on a command box 



  1. Click the Clear Log button to clear the console 




  1. Click the send button 



  1. Drive the motor to reproduce the problem. If there is not an alternative device to send the motor commands, these can be sent trough another command box. Have a look at the Roboteq Controllers User Manual to find how to issue a serial commands. The watchdog timer needs to be disabled otherwise the motor command will be zero once the timer expires 


  1. ShapeClick Stop and save logs as soon as the problem has been reproduced.

The log is a text file that can be simply pasted into excel. Since the parameters are separated with tabs, they will nicely fall into separate columns. From there it is easy to create graphs and perform analysis.