Release note Software version 3.3.x.x

Release notes for Universal Robots Software 3.3.x.x

The first release note is placed at botton of this article and describes the most important improvements from 3.2.xxxxx to 3.3.x.x

The latest software version is in the top of this article.


  • UR Software:
  • Manual: 3.3.4
  • URCap Software Platform: 1.0.1-8

Bug fixes


  • The state of digital outputs configured with an IO action will no longer be affected when using the move tab to jog the robot or to put it in freedrive.
  • Improved feedback to users when the robot is unable to power on due to joint communication issues - e.g. if cables are not connected properly after replacing a joint.


  • Fixed problem with the Edit Pose screen that could corrupt the pose values of a waypoint.
  • Fixed issue with the assignment of variables in the Japanese version of PolyScope.
  • Fixed problems that affected the behavior of adding and defining waypoints when running PolyScope in certain languages such as Polish or Russian.


  • Updated the Safety Control Board startup sequence in the service manual.
  • Added description of error code C71A12 in the service manual.
  • Fixed various typographical errors in the manuals and PolyScope.
  • Improved documentation of default program settings in the software manual.

URCap Software Platform:

  • The installation script now asks whether it should attempt to install the native tool chain.




  • UR Software:
  • Safety A firmware: [URSafetyA 504]
  • Safety B firmware: [URSafetyB 256]
  • Manual: 3.3.3

Bug fixes


  • Fixed problem with unexpected error C155A0 when entering the safeguard safety mode with a heavy payload.


  • Fixed problem with programs being undefined when using installation variables assigned with pose values in scientific notation (e.g. p[0.2,0.3,5E-4,0,3.14,0]).
  • Fixed problem with circular conveyor tracking when center point is not variable.
  • Fixed problem with the move tab that caused the freedrive button and the manual robot movement buttons to continue their action despite being released. The problem could occur if a popup was raised (e.g. by the dashboard server) while one of the buttons was pressed.
  • Fixed issues with broken characters and incorrect translations in the Korean and Japanese versions of PolyScope.


  • A runtime exception will now  be generated when the parameter "qnear" in get_inverse_kin() is not provided as a list of joint positions.

Script Manual:

  • Corrected the default values in the signature of the get_inverse_kin() function.
  • Corrected spelling mistakes.
  • Removed references to the deprecated C-API.

Safety Control Board:

  • Reduced startup delay between paired configurable outputs when an external I/O power supply is used. From seconds to less than 8 milliseconds.
  • Fixed issue that could cause a safety violation (C191A24) when a safety plane is configured to trigger Reduced Mode and update a configurable output.

User Manual:

  • Fixed table formatting in the Japanese version.
  • Fixed minor typographical and phrasing errors.




  • UR Software:
  • Safety A firmware: [URSafetyA 489]
  • Safety B firmware: [URSafetyA 239]

Bug fixes


  • Improved precision of SpeedJ for very small time intervals.
  • Fixed issue causing an accumulating position error when tracking a linear conveyor.
  • Fixed issue that could cause unexpected behavior when tracking a circular conveyor with reduced program speed.
  • Fixed issue that could cause temporary unexpected behavior when stopping, pausing or resuming conveyor tracking.


  • Fixed problem with degrading performance when using the dashboard server to continuously load and play new programs. The fix involves no longer showing the popup progress bar when loading or playing a program via the dashboard server. 
  • Fixed problem where a program node for calling a newly created sub program would forget its configuration.
  • The correct unit for tool acceleration is now being shown in the user interface for MoveL.
  • Improved German translation of error codes C193 and C194.
  • Fixed the graphical layout of the run screen. It now handles switching between languages much better.


  • Implementation of anti-vibration.


  • UR Software:
  • Safety A firmware: [URSafetyA 489]
  • Safety B firmware: [URSafetyA 239]

Bug fixes


  • Fixed issue with the speedj() script function, so that it now will only run the acceleration phase when no time parameter is specified.
  • Fixed issue that could cause program errors when XML-RPC functions with different number of parameters are concurrently called from different threads.


  • Variables, functions and threads may no longer share the same name in the same scope. 

Ethernet/IP & Profinet:

  • The digital outputs in the tool can now be set through the Profinet and Ethernet/IP interfaces. It works similar to the functionality for setting standard and configurable digital outputs. The "tool digital output mask" and "tool digital output register" has been added to a reserved area of the existing package formats for full compatibility with previous versions.


  • Fixed issue where loading a program containing a Sub Program node, which is accessing the same installation variable as the main program and has the "Keep SubProgram File Updated with this Program" option selected, would result in a dialog asking if the variable should be renamed.
  • Fixed issue regarding French translation in the Command tab when a Move program node was selected. In the drop-down box in the top right corner, where the movement type is selected, the text "Déplacement J" has been replaced with "Déplacement A".
  • It is now possible to auto start the Default Program using an input I/O when the 3-Position Switch is enabled and Operational Mode is configured and set to "running mode".
  • Fixed issue in the Pose Editor screen, where using the "+" or "-" button to add or subtract an amount from the current value would add or subtract the entered value twice. 
  • Fixed issue where the Dashboard server command "programstate" would falsely report the current program state as "PAUSED" instead the correct "STOPPED" after loading a new program through the "load" command, if the previously loaded program was paused.
  • When a program is loaded using the Dashboard server, it is now ensured that the robot arm stops moving immediately.
  • Fixed issue that prevented certain programs created in SW 3.1 from being loaded.
  • Fixed the problem that the screens for setting or editing a waypoint could update the waypoint even if the user clicked cancel.
  • Fixed problem when loading a program file in several Sub Program nodes where file names are longer than 10 characters and "similar". The file loading would cause name clashes between the Sub Program nodes, which would result in a "the subprogram is already loaded" error message, an unhandled exception and "freezing" of the Command tab.
  • Fixed copy and paste of Sub Program and Thread program nodes, so that the pasted node now gets a different name.
  • Changed the automatically assigned default node name from "Sousxprogramme" to "Sous_Prog" when adding a new Sub Program node to a program and using French language.
  • Fixed issue where applying a safety configuration could result in the "C203A0: PolyScope detected a mismatch between the shown and (to be) applied safety parameters" fault in some situations.
  • Now a Cancel button is always shown on the Move tab when setting a point during teaching of the TCP position or orientation in the "TCP Configuration" in the Installation tab. Furthermore, a point is no longer unintentionally set when the Cancel button is clicked in the Move tab.
  • Now the save icon on the "Load/Save" tab in the Installation is enabled when removing a TCP in the "TCP Configuration" screen which is not set as default.
  • A Sub Program call within suppressed nodes is no longer lost if saving and reloading the program.
  • Fixed issue causing the stopping condition "Stop when" in the Direction node, inside the Seek wizard, to work with opposite logic, e.g. "x=5" would actually mean "x!=5". This fix could lead to unexpected behavior in existing programs using this stopping condition. Therefore, customers are advised to go to the Direction node inside the stack or destack operation and reverse the logical expression in "Stop when".
  • The "infinite loop" error message has been improved (only in English).
    Runtime Error
  • Fixed issue causing a unhandled Java exception when changing values for Modbus output registers.

Dual Arm Calibration:

  • In Dual Arm Calibration, a SW 3.3 master robot can now calibrate a SW 3.2 slave robot.
  • Fixed issue regarding the manual verification of the alignment of the two robot tools, where the plastic "Go" and "No Go" tools are inserted between the two tools. This verification step was using a tool pose in the "vertical" axis, which has now been corrected to be in the "horizontal" axis, as it was in previous software versions.

Script Manual:

  • The Modbus script function modbus_get_signal_status() was not working as described. The misleading passage, "For all signals: -1 for inactive signal, check then the signal name, addresses and connections", has been removed.

Safety Control Board:

  • Fixed issue that could occasionally trigger a false safety fault "C192A11: TCP orientation disagreement".




  • UR Software:
  • Safety A: [URSafetyA 486]
  • Safety B: [URSafetyB 223]
  • Joint firmware:
  • Screenboard firmware:
  • Euromap67 firmware:
  • Manual: 3.3.0
  • URCap Software Platform:

Please note, that PolyScope and the controller is using a new versioning scheme consisting of four segments (e.g., where the segments are, respectively. Bugfix means that one or more bugs have been fixed and no new features have been added when comparing to a similar major.minor version. The bugfix segments are consecutive numbers (e.g. bugfix 1 is followed by bugfix 2). Build number is added automatically and is used by Universal Robots for internal referencing.


Key features

  • Profinet IO Device functionality
  • Program Correction for automatic correction of waypoints in existing programs.
  • URCap Software Platform to seamlessly extend any Universal Robot with 3rd party customized functionality to be used by end users.


  • IO Device functionality for synchronization with IO Controllers:
    • Robot -> IO controller: Seven pluggable modules for reading robot state data
    • IO controller -> Robot: Three pluggable modules for setting robot outputs and writing to general purpose registers
  • Script functions for synchronizing your program with a PLC (identical with EtherNetIP), e.g. 'write_output_float_register()' and 'read_input_integer_register()' .
  • GSD file (.udt and .AWL files for easy generation of data formats in Siemens software)
  • From the Installation tab in PolyScope enable/disable and view the status of the IO Device as well as configure program action (None, Pause, Stop) upon connection loss.
  • This new functionality is currently not featured in the User Manual, but a How-To Guide can be found on the UR Support website along with some sample programs. See Profinet Guide.


Program Correction

Reintroduced functionality from software v1.8 (CB2):

  • Provides automatic correction of key-waypoints in programs
  • This feature can be used to make programs work after, e.g. replacements of joints in a robot. It can be utilized in situations, where the robot after the repair does not reach some of the (important) waypoints when running the program.

  • The functionality is described in the Calibration manual - please read the section describing the Program Correction before using the feature and follow the instructions carefully.



URCap Software Platform

  • Enables the integration of 3rd party software solutions with the ‘UR workflow’:
    • PolyScope program node contribution - create a programming element with graphical user interface (GUI), that can be used and selected like any other 'Structure tab' command. GUI design using a subset of HTML and CSS, and node behaviour implementation in Java. 
    • PolyScope Installation tab node contribution - provide settings (e.g. for specific hardware) through a graphical user interface (GUI), that are saved within the Installation and shared between programs. GUI design using subset a of HTML and CSS, and node behaviour implementation in Java.
    • Operating system daemon executable contribution can provide for instance a driver to interface with hardware. The daemon executable can be any script (e.g. python) or binary file (e.g. written in C/C++) that can be directly executed in the Linux shell on the control box. 
    • Real-Time Data Exchange (RTDE) interface - synchronize external executables/applications with the UR controller over a standard TCP/IP connection without breaking any real-time properties. An alternative to the real-time client interface on port 30003.
    • External Force/Torque sensors can feed their measurements (directly) into UR's force control-loops (Force mode).
  • Various documentation including a tutorial for the URCap Software Platform can be found in the How-to section of the UR Support website together with the URCap SDK, which enables a developer to easily create a URCap. See the +YOU Developer Program.




PolyScope GUI

  • Replaced full screen keypads with popup keypads throughout PolyScope
  • Selecting a folder in the a load dialog is now done by a "long press" (press the folder for more than half a second). Once selected, a folder can be renamed or deleted.
  • Introduced a new "Calibration" mode which can be accessed from the Welcome screen through a new button, "Calibrate Robot", once the feature has been enabled in the Expert screen.
  • Introduced '<' and '>' signs in the German keyboard layout
  • Clarified the text in the dialog displayed when "linking" two waypoints or two point features (let them share the same name).
  • The "The Robot cannot proceed with normal operation" popup now allows the user to select not to go directly to the Initialization screen

SW3.3_Cancel_Init _dialog


  • Increased sensitivity for protective stop when no program is running and a wrong payload configuration is applied
  • The timestamp unit of measure in the robot mode data package of the primary and secondary client interface has been changed from milliseconds to microseconds.


  • Variables, functions and threads may now share the same name, e.g. a function definition can have the same name as a variable.
  • Duplicate function names will give compile errors, unless they are defined in separate nested scopes.
  • Duplicate thread names will give compile errors, unless they are defined in separate nested scopes.
  • Function definitions that conflict with standard builtin functions will give compile errors
  • Multi-level/nested function calls have been fixed.
  • The order of script code no longer influences the variable binding or scoping
  • The description of the "Type error: reference is void" Runtime Exception has been changed to "void reference: Attempted to use an uninitialized variable
  • Added boolean return value to all socket send functions to indicate success of the send operation.
  • Added script function 'rotvec2rpy()' and 'rpy2rotvec()' for conversion between rotation vector and RPY rotation representations.
  • Added script function 'get_actual_tool_flange_pose()' which returns the measured 6d pose representing the tool flange position and orientation specified in base frame, but without the TCP offset. 
  • Added script function 'socket_read_line()' which reads one line from the socket and returns it as a string.
  • Added script functions 'set_payload_cog()' and 'set_payload_mass()' which sets the center of gravity (CoG) of the payload and the mass of the payload, respectively.

Dashboard server

  • Changed behavior of the 'load' command: The command does now not return until the program is fully loaded. There is thus no more a need to wait for the program to load by e.g. calling the 'get loaded program' command.
  • Changed behavior of the 'play', 'pause' and 'stop' commands: The command does now not return until the request is executing on the controller. There is thus no more a need to wait for the request to execute by e.g. calling the 'programState' command.
    Note: Extremely fast running programs (such as a few hundred milliseconds) can complete before request has returned.


  • URScript manual:
    • Added descriptions in the script manual for functions 'set_runstate_standard_digital_output_to_value()', 'set_runstate_tool_digital_output_to_value()', 'set_runstate_standard_analog_output_to_value()' and 'set_runstate_configurable_digital_output_to_value()'.
    • Clarified the URScript manual regarding scope rules
    • Clarified the description of the 'socket_read_string()' function and extended the description of "socket_open()"
    • Added description of the 'get_tool_accelerometer_reading()' script function.
  • User manual:
    • Updated all links to the support site so that they point the new site
    • Added section describing the relationship between the maximum allowed payload and the center of gravity offset.
    • Improved description of blending including information about blending with MoveJ and MoveL.

  • Calibration manual:
    • Layout improvements
    • Text clarifications and corrections
    • Update of images
    • Added hints on how to troubleshoot a failed dual arm calibration.
    • Updated the description of the dual robot calibration with information about the required safety settings

Support Log Reader

  • Added auto-detection of log version
  • Created windows installer


  •  Added UVC and V4L kernel modules to support URCap development. 

Bug fixes


  • Fixed potential issue with real-timeness due to list resizement of local variables during runtime. Existing programs, which are dynamically resizing lists during program execution, will generate a "Runtime error: Resizing of 'list' is not supported." runtime exception.
  • Fixed a latched controller time issue and the controller crashing due to a segmentation fault when writing to Modbus port register 2048.
  • Fixed an issue with Modbus write-only registers (e.g. port 2048) that would fail (with exception code 2) when configuring through the Modbus client Installation tab and when running a progam.
  • Fixed alignment of the tool accelerometer axes such that they now align with the tool axes. This affects the output of the build-in function 'get_tool_accelerometer_reading()' which now also complies to the new convention
  • Fixed issue, where the robot would remain in Freedrive mode, in the situations where an unexpected event (such as the triggering of an emergency stop) occurred while the Freedrive button in the Move tab in PolyScope was pressed down.
  • Fixed an issue that could cause unexpected rotations of wrist 3 on a UR3 robot for some programs using Force mode, the 'speedl()' script function or the 'stopl()' script function. 
  • Fixed an issue in with the 'stopl()' and 'stopj()' script functions that could cause unexpected behavior when they were called multiple times inside a program. 
  • Fixed issue that could cause safety violation when switching between normal and reduced mode while a Safeguard stop was active.
  • Fixed issue, where the "Unknown error: Unknown problem" error was shown in PolyScope when running a program instead of the correct error, "Compile error: Duplicate label 1".
  • Fixed issue where unexpected movements in some cases could occur, if a program ended while Force mode is active.
  • Conveyor tracking:
    • Fixed issue where conveyor tracking made bad velocity estimates causing vibrations when using the script function 'set_conveyor_tick_count()' at a low frequency.
    • Fixed an issue that would cause "C150A0: Position close to joint limits" Protective Stops, if using circular conveyor tracking with an incremental encoder.
  • Fixed issue that could cause unexpected behavior when the movement towards a blending waypoint is interrupted, for example by a stop command. In such cases, the blending will now be disabled. It is recommended to verify programs with such structure after the update.
  • Fixed an issue where wrong default values would be assigned to the parameters of a user-defined script function in some situations. This would happen, if a function definition has multiple parameters with default values, and the function then is called with some of the parameters assigned to other values than the default. 
    The function defined like this: foo(a, b=2, c=3) is called with foo(1, c=4), then b would not be assigned to                      its default value 2 as expected.
  • Fixed issue where wrong default values would be assigned to the parameters of a user-defined script function, if called from another thread. This would affect all user defined script functions that are called from Threads, Events or "Continuously evaluating if" nodes in PolyScope, if the function definition were not placed inside this node.
  • Fixed issue where the "C204A6: Invalid setpoints: Blending failed and resulted in an invalid setpoint" Protective Stop could not be cleared (unlocked) unless the controller was restarted.
  • Fixed issue where the robot arm did not retract the second time during two consecutive protective stops caused by the arm colliding with something.
  • Fixed issue where the robot did not resume the program after Safeguard stop, if it had previously been paused and then stopped or auto-moved. 
  • Fixed an issue that could cause the controller to stop sending data to all connected TCP clients, if one client failed to read the streamed data. This could cause PolyScope to not reflect the state of the robot, since it would not receive state updates from the controller. The controller will now stop the data stream to the client that fails to read, but the connection to the client will be kept alive.

PolyScope GUI:

  • The German translation of the English word "Momentum" under General Limits in the Safety Settings has now been corrected to "Impuls".
  • Fixed problem with updating linked waypoints (sharing the same name) that could cause certain program nodes and script functions, such as MoveC and script function 'pose_dist()', to be based on unexpected positions.
  • Fixed problem that allowed users to create invalid programs where waypoints could exist without being contained in a move node.
  • Fixed problem with blend radius and advanced options not being saved and loaded correctly when multiple waypoints have the same name (linked waypoints).
  • Fixed problem that allowed the user to add and remove waypoints under a CircleMove command.
  • "I/O Setup" in the Installation tab:
    • Fixed issue where the configuration of the "I/O tab control" setting under "I/O Setup" was not respected. This meant that it was possible for a programmer to control configurable outputs with the "Disabled" option selected, and an operator could (from the Run screen) control configurable outputs with both the "Programmer only" and the "Disabled" option selected.
    • Fixed issue where GUI could freeze or a frozen Popup "Starting Program" would appear when triggering multiple "Start program" actions via an I/O input action.
  • Fixed issue that prevented displaying special escape characters (e.g. newline "\n", carriage return "\r" etc.) of string variables inside the Variables tab.
  • Fixed issue where the validation of joint positions in the Pose Editor screen did not work. A user was able to input values outside the allowed range, because the size of the position range was affected by the values of the Reduced mode limits even though Reduced mode was disabled in the Safety settings.
  • Fixed unintentional update of the position of a waypoint when switching back to the Program tab after the the robot arm has been moved from the Move tab using the Pose Editor screen.
  • Rephrased the dialog offering automatic renaming of variables in a sub program which appears when loading a file in a Sub Program program node and the file contains a variable with the same name as an existing variable.
  • Changing the move type of a MoveP program node containing a CircleMove will result in an invalid program. Now, a dialog offering to remove CircleMoves is shown when trying to change the move type. If accepted, all CircleMoves under this move node will be deleted. Canceling the dialog will result in the move type not being changed (i.e. it will remain a MoveP node).
  • Fixed issue where only the first 7 letters of the name of the counting variable in a Loop program node were visible in the Command Tab. This issue could occur e.g. with French language and a program with 10 or more Loop nodes.
  • Fixed issue where a program could behave differently between program runs. The issue was, that program nodes that generate poses in some cases could depend on the currently active TCP in the controller.
  • Dashboard server:
    • Fixed issue that in some situations could cause an "ConcurrentModificationException" when using the 'load' Dashboard server command.
    • Fixed issue where using the 'load' and the 'play' program Dashboard server command in some situations would automatically change from Real Robot to Simulation mode
  • In a Set program node, the "set payload" option would previously also set the center of gravity to the value of the current TCP. Now, the Center of Gravity (CoG) is only set to the active TCP, when a new check box "Use active TCP as center of gravity" is checked. When the check box is not checked, only the value of the payload mass is updated and the current active CoG will not be modified.


  • Pallet and Loop program nodes:
    • Fixed issue where a copied Pallet or Loop node would have the same counting variable as the original node.
    • Suppressing a Loop or a Pallet program node no longer change the name of the counting variable when it is unsuppressed again.
  • When creating a Loop program node, the counting variable name is now assigned immediately on creation.
  • Fixed Japanese text rendering issues on the Freedrive button in the Move tab, and in the Command tab with the top-level "Robot Program" node selected in the Program tab.
  • Fixed missing (blue) program execution indicator for Script nodes.
  • Fixed problem that could cause an unhandled exception when clearing a Sub Program node.
  • Run tab:
    • In the Run tab, the status of the program can now also show Paused. Therefore, it will now show either the Stopped, Running or Paused state.
    • When attempting to start a program with the I/O input action "Start Program" without power on the robot arm, the status of the program now correctly shows that the program is stopped instead running.
  • "Default Program" in Installation: "Auto Start default program" will now follow "Auto Initialize" also when the trigger edge for "Auto Start" occurs before "Auto Initialize" completes when both actions are triggered with the same input
  • Fixed missing info dialog about possible change of the safety checksum (shown in upper right corner) when loading a SW 3.0 installation.

  • Fixed bug that prevented users from requesting to start a program while the robot is Safeguard stopped. This is now possible, but only when a Safeguard Reset input is configured, so that the program starts in paused mode, and the robot only starts moving when the Safeguard Reset has been triggered.
  • Updated french translation:
    • Pallet program node: from "comptage intervalle" to "nombre de pièces".
    • Popup program node: from "Mettre l'exécution du programme sur pause lors de ce pop-up" to "Arrêter l'exécution du programme á ce pop-up".
  • When copying a Script program node which uses a file and changing the copied or the original node to a different file, they will now no longer both show the same content in the Command tab.
  • Save icon of the "Load/Save" node in the Installation tab, which indicates that the installation contains unsaved changes:
    • Fixed bug that always activated the save icon  when selected the "Default Program" screen even though the current installation did not contain any unsaved changes.
    • Fixed bug where the save icon was not activated when editing actions for an input in the "I/O setup" screen.
    • Save icon is no longer always active immediately after the automatically load of the "default" installation on boot up.
  • Fixed issue where loading a program with copy-pasted relative waypoints would automatically rename one of them.
  • Fixed issue with uni-code characters (strange names) that appeared instead of the corresponding non-code characters for counting variable names in the Loop program nodes and the Pattern program nodes (under a Pallet node) in several languages other than English.
  • Fixed issue where inputting a whole number value, for example "5", using the keypad and clicking the minus button would change the input value to a decimal number, "-5.0". This issue could be observed in the Pose Editor screen and for an Assigment program node using Operator input as source. 

User manual:

  • Removed incorrect warning related to Force mode
  • Fixed issue with strange characters in the contents list in the Chinese version
  • Updated photo of the Euromap ribbon cable connection to the controller box (CB3) in section "19.1: Installing" of the Euromap67 version of the user manual. Added missing photo of possible interface placements in the controller box.
  • Fixed error in the table in section "5.4.1: Tool Digital Outputs", so that it now states that the builtin power supply of the tool flange connector can deliver at most 600 mA instead of 1A.
  • Replaced the text "Mettre sur pause l'exécution du programme" with "Arrêter l'exécution du programme" in  in the French version.



Bugfixes during Software version 3.2

A summary of all bug fixes since first release of Software Version 3.2

Bug fixes


  • Automatic firmware update can now recover from sudden power loss.
  • Fixed problem that could cause the robot to be in freedrive mode without any freedrive button being pressed.
  • Fixed problem that could cause the controller to crash while sending a program to the controller.
  • Fixed issue with string set by operator assignment
  • Partial fix! In some situations the safety system  fault C206 (causing all safety I/O's to go low) is detected as a protective stop (C204A2).
  • Fixed an issue where the sending of log messages and popup messages to PolyScope could fail.
  • Fixed error with assignments to strings that caused a " Assignment expected type 'Const String' but found 'Variable String' "
  • Fixed an issue that could cause protective stops (C153A1 - position deviation) when exiting Force mode.


  • Fixed issue where it was not possible to enter a blend radius in a waypoint node if its preceding or/and succeeding waypoints were variable. In this situation the "Nearest neighbour blend is 0.0 mm" message was displayed and the blend value was reset to 0.0.
  • Fixed problem with configuration of IO actions on modbus output signals.
  • Fixed problem where Save As could override the original file even though a new file name was entered using the on screen keyboard.
  • Information in the dialog with active safety settings is no longer affected by changes in the safety setup that have not been applied yet.
  • Fixed issue where text did not appear correctly for some languages in the expert screens
  • Fixed issue with palletizing where nodes where not Unique
  • Fixed issue where the length of a variable did not return correct value
  • Fixed issue where the "test force" program did not respond run when using freedrive mode IO's (it only worked with the TP button)
  • Fixed issue where using the "edit pose" button in advanced options did not create unique waypoint names
  • Online help for EN-US is now available
  • Fixed issue where a Force node would not display the correct type in the drop-down box in the Command tab in some situations after loading a program
  • Fixed issue where a program could not run when suppressing the first or last Case node in a Switch statement
  • Fixed issue where it was not possible to add a "-1" Case to a Switch statement
  • Operational mode indicator is now hidden as soon as new safety is requested to be applied
  • Fixed various bugs related to the text on certain screens. E.g. long names for IOs, German translations and safety password text being cut off.
  • Controller uptime in the Log tab is now persisted correctly after Log tab is exited
  • Fixed issue it was not possible to add a subprogram to a program.
  • Fixed issue where an Installation variable in some situations would be renamed ("_" added) during load
  • Fixed placement issue for move type dropdown and French translations issues in command tab
  • An issue with movep that could cause unexpected rotations at specific waypoints has been fixed. For existing programs to benefit from this, a waypoint must be replaced with a newly created one (not copied) and set to the same joint configuration.


  • Fixed dereferencing error in functions for local list variables

Safety Processors:

  • Changed the accepted delay between the two signals in the safety signal for mode select then using three position enabling device
  • Safety Procesor B: The occurrence of communication errors C4Ax caused by a window watchdog reset C80A51, have been reduced by fixing a bug that caused unattended window watchdog resets.



  • Increased tolerance for protective stops when the robot is not in motion (fully at rest). This is made especially for screwing applications with high-torque screwdrivers or when the robot is mounted on a linear axis.


  • Added a script function: is_steady() that returns True when the robot is fully at rest, and ready to accept higher external forces and torques, such as from industrial screwdrivers. Returns False otherwise.
  • Added script function "position_deviation_warning" which allows the user to identify elements of a program where the robot cannot follow the trajectory. These program elements can then be modified to reduce the risk of C153A# protective stops induced by position deviation.