Release note Software version 3.4.x.x

Release notes for Universal Robots Software 3.4

The first release note is placed at bottom of this article and describes the most important improvements from version 3.3.x.x to 3.4.x.x

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

Release notes 3.4.5

Released Versions:
  • UR Software: 3.4.5-100
    • Joint firmware: 3.10.0-118 (no changes)
    • Polyscope: 3.4.5-437
    • Controller: 3.4.5-463
  • UR Firmware 3.10.7
    • Safety A firmware: 3.4.1-55 [URSafetyA 510]
    • Safety B firmware: 3.4.1-28 [URSafetyB 259]
  • Manuals: 3.4.5
  • Support Log Reader: 3.4.5-365
  • URCap Software Platform: 1.1.0-76 (no changes)
  • URSim virtual machine: 3.4.5


  • Fixed unnecessary confirmation of AAAA or BBBB safety settings after every reboot.
  • Fixed a problem where a palletizing wizard with list pattern lets you delete all the waypoints and does not allow you to add new ones.
  • Show advanced debugging popup for runtime exception when program execution is taking too much time.
  • Fixed error when advanced debugging popup was sometimes not shown when program was created from scratch instead of loaded from file.
  • Translation improvements for Japanese Polyscope.
  • Corrected the Slovenian translation of message "High when running-low when stopped".
  • Fixed XML-RPC "pstream" connection problem.
  • Fixed problem when controller does not always save joint positions before shutting down.
  • Fixed problem with torque reversal when torque requested is much higher than safety limits allow.
  • Fixed issue that prevented the robot from going into recovery mode after a violation has occurred while the reduced mode output is configured.
    NOTE: Requires manual update of SCB firmware on the robot.
  • Removed incorrect statements about force parameters for non-compliant axes in force mode from user and script manual.


Release notes 3.4.4

Released Versions:

  • UR Software: 3.4.4-97
    • Joint firmware: 3.10.0-118 (no changes)
    • Polyscope: 3.4.4-412
    • Controller: 3.4.4-438
  • UR Firmware 3.10.1-12 (no changes)
    • Safety A firmware: [URSafetyA 504] (no changes)
    • Safety B firmware: [URSafetyB 256]  (no changes)
  • URCap Software Platform: 1.1.0-76 (no changes)
  • URSim virtual machine build version 3.4.4
  • Resolved issue with unexpected movement when performing a move with very high acceleration before entering force mode.
  • Fixed incorrect translation of sync() function in Runtime Exception error message.
Manuals: (english version only - translation to remaining languages will happen in next major release)
  • Parts list in user manual revised.
  • The user manual now contains information about the resolution of the tool analog input signal.
  • Added specifications for driving inductive loads from the digital and tool outputs.
  • Added recommendations for more efficient use of force mode.
  • RTDE: TCP connection is properly closed when network connection is broken.
  • RTDE and Profinet: Fixed incorrect state of “PR: Is program running” flag when using the move tab.
  • Fixed problem with resuming a program after SCB restarts while the robot is in freedrive mode.
  • Fixed undesired duplication of modbus signal when a modbus custom command is sent.
  • Prevent unexpected movements in freedrive mode when TCP rotation vector is non zero.
  • Security fixes.

Release notes 3.4.3

Released Versions:

  • UR Software: 3.4.3-77
    • Joint firmware: 3.10.0-118 (no changes)
    • Polyscope: 3.4.3-361
    • Controller: 3.4.3-386

Bug fixes


  • Fixed problem with dashboard server not responding when sending play command to a robot that is safeguard stopped.
  • It is now possible to create list of poses as installation variable.
  • It is now possible to use scientific notation without explicit sign on exponent (i.e. 1e3), and fractional values starting from '.' instead of digit (i.e. .5) in installation variables
  • Fixed issue where register value was not updated on modbus setup tab when it exceeded 32767. Value returned from modbus script functions was correct - programs were not affected.
  • Improved rendering of Japanese font and fixed issue with the assignment operator "=" not being displayed in the program tree.
  • Fixed issue with the program execution indicator arrow being hidden permanently after a running program is interrupted (stopped or paused).
  • Modbus client:
    • Added option to send signal requests sequentially (required by some fieldbus devices)
    • Added signal statistic for monitoring actual response frequency.
    • Fixed issue when pressing "refresh" button on modbus client setup tab disconnects signals permanently with some servers.
  • Added "do not convert" option when loading program that was created with a robot calibration different from the current robot calibration.

Manuals: (english version only - translation to remaining languish will happen in next major release)

  • Added the correct labels and diagrams for the tool I/O in the User Manual.
  • Modbus documentation improvements.
  • Fixed issue with copying text with underscores from user, and script manuals.
  • Updated the PolyScope manual with improved information on safety limits tolerances

Release notes 3.4.2

Released versions:

  • UR Software: 3.4.2-65

Bug fixes

PolyScope GUI

  • Fixed issue with float installation variables in non-English languages that use a comma as decimal separator.


  • Added a more detailed explanation of the position_deviation_warning() function to the Script Manual.


Release notes 3.4.1

Released versions:

  • UR Software: 3.4.1-59

Bug fixes

PolyScope GUI

  • Fixed issue that the save icon in the Installation tab is enabled right after loading an installation, if the new installation has a different safety configuration.
  • Fixed issue that debug comments will not be shown in case of a syntax error in the last line of the script.
  • Fixed issue that the Software Update screen shows an incorrect message.
  • Fixed issue with input validation of float numbers in the Installation Variables tab.
  • Fixed issue with the z-axis direction of features in the 3D View.
  • Fixed issue that features are not visible on the 3D View after switching multiple times from the Move tab to the TCP screen.
  • Fixed issue with timestamp of version message in the Log tab and log_history.txt.
  • Fixed issue that the voltage/current selection in the IO tab is not always properly updated to reflect the currently loaded installation.
  • Fixed issue that the dashboard server will not process commands when certain popup messages are visible.
  • Fixed issue that tool tips in the Log tab would not close automatically. With the fix runtime errors will stay open, but other tool tips will close automatically.
  • Fixed issue that Wait nodes can behave unexpectedly when modifying multiple Wait nodes in a program.
  • Fixed issue that some variables in the Variables tab are not updated correctly and the user interface can flicker.

URCap Software Platform

  • Fixed issue that URCap implementations of InstallationNodeService.createInstallationNode(..) are called too frequently.

Linux OS

  • Fixed issue with missing video output when connecting additional monitors after the controller has already been started. The video output will now automatically be reconfigured when connecting additional monitors on a CB 3.1 controller. Note that this fix is only available when getting a new robot or replacing the system USB stick - e.g. it is not enough to upgrade with an update file.
  • Fixed issue that misleading "upgrade failed" messages can appear at the end of a software upgrade on a CB 3.0 controller.


PolyScope GUI

  • Modbus setup has been improved with better support for connection diagnostics. It can be enabled by navigating to Installation->Modbus and selecting "advanced options". The following diagnostics data is supported:
    • Reconnect count: Number of times the TCP connection was closed and connected again.
    • Connection status: TCP connection status.
    • Response time [ms]: Time between Modbus request sent and response received - this is updated only when communication is active.
    • Modbus packet errors: Number of received packets that contained errors (i.e. invalid length, missing data, TCP socket error).
    • Timeouts: Number of Modbus requests that didn't get a response.
    • Requests failed: Number of packets that could not be sent due to invalid socket status.

Manuals: (english version only - translation to remaining languish will happen in next major release)

  • The technical specifications in the User Manual are updated with new noise values.
  • Script Manual is updated with information about the upper limit (300N) for force values exerted at the TCP.


Version 3.4.0

  • UR Software:
  • UR Firmware (no changes):
    • Joint firmware:
    • Safety A firmware: [URSafetyA 504]
    • Safety B firmware: [URSafetyB 256]
    • Tool firmware:
    • Screenboard firmware:
    • Euromap67 firmware:
  • Manual: 3.4.0
  • Support Log Reader:
  • URCap Software Platform: 1.1.0-76


Key features

  • Improved support for debugging/troubleshooting of runtime and compile errors when running programs in PolyScope
  • General purpose register integration in PolyScope (the registers can be accessed by e.g. a fieldbus such as Profinet and Ethernet/IP)
  • URCap API support for script function contributions
  • URCap API Support for creation of "template" program node contributions containing a predefined sub-tree of child nodes

PolyScope GUI

  • Program tab:
    • Changed the 'Set' program node with respect to the 'Perform Action Now' button. This is now only enabled when an action can actually be performed (i.e. the node is defined and either an output action, payload setting or TCP has been selected).
    • Removed the 'Recalculate motions' and 'Set TCP' checkboxes from the 'Move' program node and replaced them by two new items in the 'Set TCP' drop-down menu: 
      • 'Use Tool Flange': Makes no adjustments (i.e. motions are with respect to the tool flange)
      • 'Use Active TCP': Adjusts motions with respect to the active TCP (corresponds to having the only the 'Recalculate motions' checkbox ticked in previous PolyScope versions)

SW3.4_compare _move _card _with _sw 33 (1)Software 3.3 (old version)

SW3.4_move _card _changes (2)                               Software 3.4 (new version)                              

  • Installation tab:
    • The maximum allowed length of the name of a safety plane in the 'Boundaries' tab in the 'Safety' Installation screen has been extended to 32 characters
    • The 3D graphics in 'Features' in the 'Installation' tab now supports zooming

SW3.4_features _zoom _support

    • 'I/O Setup' screen:
      • Screen layout has been improved
      • I/O signals configured with an I/O action are now shown in italics and the signal's default name (e.g. "digital[0]") is displayed together with the action name (e.g. "Start program") in the 'Input' and 'Output' sections
      • In the 'Input' and 'Output' lists, the signals are now divided into sections (by separators) based on I/O type
      • Added filtering on the type of I/O to allow the user to limit the number of signals listed in the 'Input' and 'Output' sections, so it is easier to locate specific signals 
      • Added input validation in the 'Rename' text field for the length of a user-defined name

SW3.4_new _ui _io _setup _digital

    • Integrated all 64 boolean, 24 integer and 24 float general purpose registers (registers can be accessed by e.g. a fieldbus such as Profinet and Ethernet/IP) in the 'I/O Setup' screen:
      • Added support for input and output I/O actions for boolean registers
      • Registers can be assigned a user-defined name.
      • All named registers will be available the 'Wait' and 'Set' nodes as well as any expression (e.g. the conditional expression of an 'If' node) in the program. The named registers can be found in the 'Input' or 'Output' selector in the 'Expression Editor' screen

SW3.4_register _support _io _setup

    • Added support for auto starting the default program and auto brake releasing the robot with boolean general purpose registers in the 'Default Program' screen

SW3.4_boolean _registers _default _program

  • Improved feedback when loading programs and/or installations which depend on one or more URCaps that is not installed:
    • Affected URCap 'Installation' tab nodes are marked with a yellow border (on the left side of the 'Installation' tab). In previous versions of PolyScope, the unresolved URCap Installation tab nodes would be ignored during load, and the information stored in the node would be lost, if the installation was resaved.
    • The affected URCap program nodes become undefined (yellow) and in the program tree, the title of each node will reflect what type of URCap node that is missing (for previous PolyScope versions the node title was "undefined"). Compared with previous versions of PolyScope, the part of the tree contained in an unresolved URCap node is now shown in the program tree, and if the program is resaved, the information stored in the unresolved node is not lost.
    • Introduced new screens displayed when an unresolved URCap node is selected in the program or in the 'Installation' tab:
      • Displays information about node type, URCap and URCap developer
      • Provides the user suggestions on how to resolve the issue

SW3.4_unresolved _urcaps _program _nodes

SW3.4_unresolved _urcaps _installation_

    • When loading a program, a new dialog will be shown, if the associated installation depends on one or more URCaps, which are not installed. The dialog informs the user about the specific missing URCaps and refers the user to the 'Installation' tab for inspection of the problem

SW3.4_unresolved _urcaps _installation _dialog

  • Keypads, keyboards and Expression Editor
    • All remaining full screen keyboards and keypads have been replaced with the popup version
    • Pressing and holding down the delete key ('<<') on the popup keypad and keyboard as well as in the 'Expression Editor' screen, now allows the user to delete several characters at a time
    • Added a text field to the popup keypad and keyboard, in which the user enters the input while still being able to see the current value in the original text field. This change also makes it easier to enter input using a physical keyboard

SW3.4_new _input _field _on _keyboard

SW3.4_new _input _field _on _keypad

  • Improved support for debugging/troubleshooting of programs:
    • The responsible URCap or PolyScope built-in program node, which generated the "faulty" URScript code, is marked in the program tree with a red border
    • The responsible URCap Installation tab node, which generated the "faulty" URScript code, is marked in the left side of the 'Installation' tab with a red border. Installation tab nodes can cause errors in program execution through contribution to the preamble of the generated script code for the program
    • New error dialog for compile and runtime errors with more details:
      • Lists the "faulty" PolyScope built-in/URCap program node or Installation tab node and it's type. For URCap nodes the responsible URCap and developer is also shown
      • Provides an advanced view detailing the position of the error in the generated script code (of the program) in terms of the exact line and column number as well a small snippet of the script code including highlighting of the line where the error occurred

SW3.4_compile _error _dialog (1)

SW3.4_error _script _code _installation _urcap

SW3.4_runtime _error _dialog _installation _issue

SW3.4_urcap _program _node _runtime _error

      • For 'Script' program nodes the relative line number (of the script code) within the node is shown as well

SW3.4_script _node _runtime _error

      • Allows the user to jump directly to the "faulty" node in PolyScope in the program tree or in the 'Installation' tab
      • All the details of the error dialog are viewable at a later time in the 'Log' tab or the Support Log Reader

SW3.4_runtime _error _logtab

    • Introduced a new "Program xxx starting..." message, which is added (by PolyScope) to the log just before the script code is send to the controller:
      • Contains the full program name including folder names, e.g. "folder1/program_name"
      • Contains a time stamp for last save. If the program contains unsaved changes "Unsaved" is shown (instead of a time stamp)
      • The message's purpose is to help debugging/troubleshooting (at a later time). It is especially relevant when a compile error occurs, in which case the "Program xxx started" message from the controller is not received making it difficult to determine which program had that particular failure.

SW3.4_starting _program _message

    • Added debug comments surrounding script code generated by a URCap. See the "URCap Software Platform"section of these release notes for more details.
  • Added the "Maximum of 'n' characters." validation error message when the user enters too long names for I/Os (in the 'I/O Setup' Installation screen), MODBUS signals, sub programs, waypoints and variables. This changes the previous behavior where the entered name was automatically truncated to the maximum allowed length.
  • When clicking the 'Shutdown Robot' button in the 'Welcome' screen, it is now also possible to restart the robot (besides the previous option to power off the robot)
  • The "Applying Safety Configuration" progress bar is now no longer displayed while PolyScope is booting up
  • Now, the "The Robot cannot proceed with normal operation" dialog is shown when clicking one of the text fields in the 'Move' tab (to access the 'Pose Editor' screen) and the robot arm is, e.g not brake released or powered on

Program Correction

  • The top level 'Program correction' node in the program tree (on left hand side of the screen) has been renamed to 'Correction model'
  • Added visual indicator in the program tree for waypoints which have been redefined: 
    • Redefined waypoints have a green icon
    • Unmodified waypoints have a yellow icon and the name is shown in italics
    • Other program nodes are grey indicating that no actions can be performed on them. This applies for all nodes which are not fixed waypoints.
  • The 'Overview' and 'Setup' tabs have been merged into one screen that is accessible through the 'Correction model' top level node in the program tree

SW3.4_program _correction _top _level _node

  • When the 'Calibration' tab is selected, the 'Save As ...' option in the top 'File' menu is now disabled
  • Improved the layout of the screen displayed when the root of a loaded program is selected in the tree
  • Improved the layout of the screen shown when a 'Waypoint' node is selected in the tree. In this screen it is now also possible to move the robot to the new redefined position using the new 'Move robot here' button.

SW3.4_program _correction _new _waypoint _card

Dashboard server

  • Improvements to the correctness of return values to reflect when the execution of commands fail 
  • Updated the 'load' command, so it will return until after loading both the program and the associated installation has either completed or failed. The return values remain the same, but "Error while loading program: <program.urp>" will now also be returned, if loading the installation fails.
  • Updated the 'load installation' command, so it will return until after loading of the installation has either completed or failed. The return values remain the same, but "Failed to load installation: <default.installation>" will now also be returned, if e.g. the controller rejects the installation.

URCap Software Platform

  • Added API support for script function contributions in PolyScope:
    • A URCap can add URScript functions contributed to the program preamble to the 'Expression Editor' screen
    • The contributed script functions will be available in the '<function>' drop-down menu in the 'Expression Editor' screen where they are displayed with the supplied named hints about the parameter types (same as for script functions supplied by Universal Robots)
    • In the 'Expression Editor' screen, the contributed script functions are grouped by the URCap "owner" in terms of the name of the URCap and its developer

SW3.4_script _function _contribution _expression _editor _combobox

  • Added API support for creation of sub-trees:
    • URCaps can create simple "template" program node contributions containing a pre-defined sub-tree of child nodes
    • When creating sub-trees for a program contribution developers can:
      • Create "built-in" PolyScope program nodes in the "default" configuration and insert them into the sub-tree. The "default" configuration of the nodes is equivalent to the user inserting the nodes through the 'Structure' tab. Most node types are supported except for: 'Thread', 'SubProgram', 'Script Code', 'Switch', 'Event' and 'Conveyor Tracking'
      • Create and insert other URCap nodes into the sub-tree
      • Remove any child contained in the program node contribution
      • Lock the immediate child sequence (i.e. the sub-tree) for modifications to ensure that once the node contribution has been inserted in the program tree, the immediate child nodes cannot be moved, deleted, cut or suppressed by the user
    • A URCap can contribute a program node type, which cannot be inserted by the user via the 'Structure' tab (not shown)

SW3.4_urcaps _template _example

  • URCap SDK:
    • Installation of the SDK now includes all released versions of the API. It is also possible to select which API version to target when creating a new URCap. Sections 3 and 11 in the URCap tutorial have been updated with relevant information.
    • Removed the script manual from the SDK. Section 2 ("Prerequisites") in the URCap tutorial has been updated with information on how to get the script manual from the Universal Robots support website.
    • Added two sample URCaps, 'PickOrPlace' and 'ScriptFunction', demonstrating the new API features for creating sub-trees and adding script function contributions
    • Added a new section, "10: URCap examples overview", which lists all the URCap samples shipped with the SDK. For each URCap example this section provides a short description containing:
      • A short summary describing the URCap and the API features that it uses
      • List of main API interfaces used by the code of the URCap 
      • The first version of the URCap API and PolyScope which supported the specific feature
    • Added the section "8.5: Loading programs with Program Node Contributions" which describes the interaction with the code of a URCap during load of program node contributions (from a persisted program) including information about how the data model and sub-trees are handled
    • Added the section "8.4: Undo/redo functionality" which details how the Undo/redo functionality of PolyScope affects program node contributions from a URCap.
    • Added the section "12: Compatibility" describing the rules for compatibility around URCap API versions and PolyScope versions.
  • URScript code generated by a URCap is now annotated to aid debugging/troubleshooting of programs, that use URCap program and Installation tab node contributions. Each contributed script code block is surrounded with comments, so that e.g. the URCap, which provided erroneous script code, can easily be identified. For more details, see section A ("URCaps and generated script code") in the URCap tutorial
  • Real-Time Data Exchange (RTDE) interface:
    • Extended RTDE protocol and increased protocol version:
      • The new version (v2) must be explicitly requested for each socket connection, otherwise the RTDE expects version 1 (original) communication. The RTDE can serve both protocol versions simultaneously over different sockets.
      • The update frequency for the data output package from Controller -> RTDE client is now configurable. The frequency must be between 1 and 125 Hz. The output rate will be according to floor(125 / frequency).
      • The RTDE_TEXT_MESSAGE package has been unified for Controller <-> RTDE client communication.
      • Updated Python client reference implementation with new features
    • Added four new data fields: tool_temperature, joint_position_deviation_ratio, elbow_position and wrench_calc_from_currents.
    • Fixed mistakes in RTDE protocol documentation.

URSim (Offline Simulator)

  • Leafpad text editor added to the URSim virtual machine (for non-Linux systems)


  • User manual:
    • Improved the description of the concept of Features (in the 'Installation' tab) and how to use them in PolyScope including information about how features can be used in relation to the robot motions in a program
    • Improved the content and structure of the description of the 'I/O Setup' screen in the 'Installation' tab
    • The Attestation of Conformity EMC assessment from Delta in section B.4 has been updated due an update to the EU EMC directive
    • Added cleanroom certificates in section B.5 
    • The serial number of the robot does not longer appear on the front page and in the "B.1  CE/EU Declaration of Incorporation" section. Instead the serial number can be found in the test report carried out for the specific robot. The test report follows the printed manual.
  • Added a How-To Guide on the UR Support website explaining how to set payload and center of gravity when using multiple TCPs in programs including descriptions of relevant script functions as well as two program examples

Bug fixes


  • Set upper limit for Force values on each axis (x,y,z) to 300N to avoid that script functions related to force return extremely high values around singularities
  • The mass, center of gravity (CoG) and inertia matrix of the tool flange is no longer intermixed with the user-specified mass and CoG of the payload. This will in some extreme cases have an effect on the speed of robot motions, e.g. in situations where the CoG is very far away from the tool flange and the payload is very low.
  • Improved precision of the 'speedj()' script function for very small time intervals.
  • Conveyor tracking:
    • Fixed a bug in conveyor tracking that could cause protective stops when enabling circular conveyor tracking
    • Fixed a bug in conveyor tracking that could cause protective stops when disabling tracking while the conveyor is moving at high speed
  • Fixed bug where (script function) 'rpc_factory("xmlrpc", <IP>)' direct socket connections to offline target hosts would cause Controller communication faults.

PolyScope GUI:

  • I/Os:
    • When using an I/O action to start a program (configured in the 'I/O Setup' Installation screen) and toggling the input rapidly, the robot could exhibit a jerking motion before starting as well as display multiple consecutive progress bars. This issue has been fixed.
    • Fixed issue where the header title (displaying the name of the selected I/O signal) located above the 'Rename' text field in the bottom of the 'I/O Setup' Installation screen was not completely visible. The issue is fixed due to a change in the layout of the screen where the header title has been removed.
    • Now user-defined names for I/O signals also support language specific characters from the supported countries, which fixes issues where strange characters would be displayed in signal names in, e.g. the 'I/O' tab.
    • The signal names in the 'I/O' tab is now showing the name of the assigned I/O actions as defined in the 'I/O Setup' Installation screen instead of the user-defined name
    • Fixed issue in the 'I/O' tab where the 'Analog Output' panel title was partially covered
    • Fixed issue where reloading an installation with the 'High when not running' I/O action configured for a configurable output (in the 'I/O Setup' Installation screen) and starting and stopping a program would not set the specific configurable output high
  • Dialogs:
    • Modified the runtime error message that is displayed when running a program where a position is out of range. The error message has been changed from "getInverse: Function did not find a solution" to read as follows: "getInverse: Unable to find a solution. The robot can't reach this position".
    • When a robot is safeguard stopped and a program is started, a dialog is now displayed which informs that the robot is safeguard stopped. In previous version, the "The Robot cannot proceed with normal operation" dialog was displayed reporting the "Robot: Ok" state
    • After boot-up of PolyScope, the "The Robot cannot proceed with normal operation" dialog is shown. This no longer reports "NO CONTROLLER" which is misleading
    • Fixed the width of the dialog with information about unhandled Java exceptions, so that it now fits the screen
    • Fixed issue where a dialog saying 'Not an Installation File' would appear on the 'Initialize Robot' Screen when it should not. This would occur if a .urcap file was selected in the 'Load Robot Installation' file dialog (activated using the 'Load Installation' button) in the 'Initialize Robot' Screen, and then the dialog would show every time the 'Initialize Robot' Screen was selected.
    • Fixed the height of dialogs. If a dialog contains more information than what can fit on the screen, then a vertical scrollbar will be shown.
    • Fixed issue where renaming a file in the load/save file dialog could overwrite another file, if a file with the new name already existed. If e.g. two files, a.urp and b.urp exist, then an attempt to rename the file b.urp to a.urp would in previous versions result in the file being renamed and a.urp would be overwritten (a dialog is also shown that states that a file with that name already exists).
    • Fixed issue when using help in the load file dialog, where it would select the file situated underneath the question mark (when the question mark was clicked to access the help) and afterwards display the help content.
  • Programs:
    • Fixed issue in the 'Expression Editor' screen where the content of the '<input>' and '<output>' drop-down menus would not be fully displayed (cut off) on the screen resulting in the user not being able to select all available I/Os. This issue would occur when the drop-down menus contained a lot of e.g. MODBUS signals. Fixed by reducing the maximum number of rows that are displayed before the scrollbar is enabled.
    • Fixed an issue where running programs with certain names could result in a runtime error. This occurred because the name of the main function in the generated script code for the loaded program collided with the name of a UR built-in script function
    • Fixed issue that allowed features in the 'Installation' tab and relative waypoints in the program to be edited with the 'Move' tab while a program was running. Any currently executing program is now stopped when using the 'Move' tab for editing. It is still possible to use the 'Move' tab for viewing purposes without stopping a running program.
    • In the 'Init Variables' program node, the 'Keep value from previous run' checkbox is now updated (ticked/unticked) independently for each variable (the check box now correctly reflects if the option is selected for the each variable)
    • Copy, cut & paste operations:
      • Fixed an issue where a program with two 'Stack' or 'Destack' nodes ('Seek' node types) would use the same "interpolate_x"  variable, which in some situations could cause a runtime error when the program was run. This issue would occur, if one of the nodes was a copy of the other.
      • Insert operations of multiple program nodes (e.g. copy/paste) are now gracefully interrupted when an error is encountered. When inserting a 'Waypoint' node outside of a 'Move' node "scope", the proper Waypoint name is shown in the error message and no dialog with an unhandled Java exception is displayed.
      • Fixed issue with cutting and pasting of a suppressed program node. In previous PolyScope versions, the node would become unsuppressed when pasted.
      • Fixed issue where cut and paste of a program node would unsuppress any of its child nodes, which might have been suppressed before. Say we have a 'Move' command with two waypoints where one of the waypoints is suppressed, then after cut and paste of the 'Move' command both waypoints would be unsuppressed
    • The "Remember traversal position..." option for the 'Pattern' program node in the 'Pallet' wizard is now preserved when copy/paste is used in program tree or a program is saved and loaded from file.
    • Variable naming:
      • Fixed issue where attempting to insert an 'Assignment' node in the 'Init Variables' node (not allowed) would not "release" the auto-generated default variable name. 
             Example: Inserting a new 'Assignment' node in the robot program after trying to insert an 'Assignment' node in the 'Init Variables' node would assign the new variable the name "var_2" instead of "var_1"
      • Fixed issues with names of counting variables not being "freed up" when a program node containing a suppressed node with a 'Loop' or 'Pallet' node inside is not removed from the 'Structure' tab. Nodes that can be deleted without use of the 'Structure' tab include the 'Case', 'ElseIf' and 'Else' nodes as well as the 'BeforeStart' and 'AfterEnd' nodes under a 'Pallet' or 'Seek' node.
             Example: Removing a 'Case' node from the 'Switch' node containing it where the 'Case' node contains a suppressed 'Folder' node with a 'Loop' node with counting variable "Loop_1" inside would not "release" the "Loop_1" name, so when a new 'Loop' node is added, its counting variable would be named "Loop_2".
    • Loading of programs:
      • Program loading process has been optimized, so that large number of MODBUS signals in the installation no longer affects the load time.
      • Fixed issue where PolyScope was unresponsive while loading large programs
      • Fixed issue with loading of programs which caused the user-defined names of I/Os (configured in the 'I/O Setup' Installation screen) to get the wrong mapping in the program tree whenever a program's installation file uses similar I/O names as in the default/current installation. 
              Example: The currently loaded installation has the 'digital_out[0]' I/O signal assigned the user-defined name "test". Loading a program containing a 'Set' node with 'Set Digital Output' option configured to use the 'digital_out[2]' signal would result in that the configuration of that 'Set' node would have changed to using the 'digital_out[0]' signal (and the name of the node in the program tree would be "DO[0]=Off"), if the program used an installation file where the 'digital_out[2]' signal had the identical user-defined name, "test".
    • Undo/redo:
      • Fixed an issue where it was not possible to undo the auto-correction of the blend radius of a waypoint. The auto-correction is performed, if blending is enabled and the next waypoint is too close
      • Fixed an issue where undoing the deletion of a program node containing one or more suppressed child nodes would result in the previously suppressed child nodes becoming unsuppresed and not possible to suppress again. This issue occurred for any node which can contain child nodes, e.g. 'Move', 'Folder', 'Loop' etc.
             Example: Deleting a 'Folder' node containing a suppressed 'Wait' node and subsequently undoing the action will result in a 'Folder' with an unsuppressed 'Wait' node, which cannot be suppressed again
    • 'Script' program node:
      • Fixed an issue where cancelling a file selection in a 'Script' node would clear the previous file content
      • Now the error message displayed when saving a file fails in the 'Script' program node will always fit the screen.
    • Fixed an issue where clicking a 'Waypoint' node in the program tree could result in a dialog with an unhandled exception, if the 'Command' tab was selected. This would occur after saving a program with an unsuppressed 'MoveJ' command containing a waypoint that was assigned to a variable elsewhere in the program.
    • Fixed issue where the save button icon (indicating the program contains unsaved changes) sometimes would not get enabled
    • 'Seek' program node ('Stack'/'Destack'):
      • Fixed issue where it was possible to delete the "required" 'StartPos' and the 'FromPos' and 'ToPos' waypoints (under the 'Direction' node) in the 'Stack'/'Destack' program node. This was possible from the waypoint themselves through the 'Remove this waypoint' button as well as adding new waypoints using the 'Add waypoint before' or 'Add waypoint after' buttons. These actions are not allowed from the 'Structure' tab. If a program with a 'Seek' node without a 'StartPos' waypoint was played, PolyScope would freeze.
      • Fixed an issue where a 'Stack'/'Destack' program node in certain circumstances would not be rendered as defined (yellow) in the program tree until the node was clicked again.
    • Fixed an issue for German language where some of content of the 'Command' tab was pushed off the screen when the 'Move' program node was selected.
    • Fixed an issue where the content of the 'Variable' drop-down box in a 'Assignment' program node would not be fully displayed (cut off) on the screen resulting in the user not being able to select all available variables. This would occur, if e.g. the program contained a lot of variables.
  • Installation:
    • Fixed problem that in rare cases could result in a corrupt installation file after editing safety settings. A corrupt "default" installation file would cause a "Safety Checksum Failed" dialog to be displayed when booting the robot, and the corrupt installation file would automatically replaced by a new default installation.
    • Fixed an issue with MODBUS names not being "freed up" when a MODBUS unit was removed. Say there was a MODBUS unit with a MODBUS signal named "Modbus_1" and the MODBUS unit was removed then a newly created MODBUS signal would not be named "Modbus_1" even though there was no signals is use with the name Modbus_1.
    • 'Boundaries' tab:
      • Fixed an issue where the name of the safety planes in the 'Boundaries' tab in the 'Safety' Installation screen was replaced with the string "???" after the installation file was saved. This issue could occur e.g. with Japanese language.
      • Fixed an issue in the 'Boundaries' tab in the 'Safety' Installation screen where the first safety plane ("Safety plane 0") was not drawn in the '3D View' panel when entering the tab. This would occur, when the first safety plane was configured, the robot was rebooted and the 'Boundaries' tab was selected. To get the plane visualized, one of the other planes has to be selected before switching back to the plane again.
      • Fixed an issue in the 'Boundaries' tab in the 'Safety' Installation screen where the selected safety plane was not highlighted when another plane was made visible. This would occur, when two safety planes were configured, one plane selected and the visibility toggle button for the other plane was pressed. Both planes were shown but the selected was not highlighted.
      • Fixed an issue where the value of the 'Displacement' text field was set to "0.0" and not "0" in the 'Boundaries' tab under the 'Safety' installation screen, even though the 'Displacement' text field only accepts whole numbers. This would occur, when the content of the 'Copy Feature' drop-down box was "reset" (after a feature had been selected) by choosing the top "<undefined>" item.
    • Fixed an issue where the save icon (unsaved changes indicator) of the 'Load/Save' node in the 'Installation' tab would be activated when selecting the 'PROFINET' or the 'Ethernet/IP' screen. This would occur, if an installation where either 'PROFINET' or 'Ethernet/IP' is enabled was reloaded.
    • Fixed French translations of the options for the encoder configuration in 'Conveyor Tracking' in the 'Installation' tab ("Progressif" -> "Incrémental", "Montée" -> "Front montant", "Descente" -> "Front descendant") and the name of top level program node ("Programme de robot" -> "Programme robot").
  • 'Setup Robot' screen:
    • Fixed an issue where the static IP address setting configured under 'Setup Network' would be lost. This would occur, if robot was rebooted when network is disconnected.
    • Online help for 'URCaps' is now available in PolyScope
    • Fixed an issue where files were not cleaned up on disk after an update of the Robot Software was cancelled. A new attempt to load any update would fail because of not enough available  disk space.
  • Fixed an issue in the 'Move' tab where the name of the currently active TCP displayed above the coordinate value text fields (and below the feature selector) in the right side of the screen would be displayed as "Undefined". This would occur, if the offset position of the active TCP in the controller did not match the offset of any of the TCPs defined in the 'TCP Configuration' installation screen. Now, when this occurs "Active TCP" will be shown as a name in the 'Move' tab instead of "Undefined".
  • Fixed issue that could cause a "C203A0: PolyScope detected a mismatch between the shown and (to be) applied safety parameters" safety fault on startup.
  • Fixed issue where it was possible to enter (and submit) decimal numbers in text fields, which only accept whole numbers (e.g. in the 'Safety' installation tab), using a physical keyboard.
  • When saving a program or an installation with (unresolved) nodes from non-installed URCaps, the nodes now retain their configuration (instead of being lost). 
  • Fixed issue on some screens where clicking the delete ('<<') key on the popup keyboard or keypad when editing an existing value in a text field would clear the existing value instead deleting one character at a time.
  • Fixed an issue where the balloon tip displayed when clicking entries in the 'Log' tab would not reappear when clicking the already selected item.
  • Fixed an issue in "Calibration" mode (accessed from the Welcome screen through the "Calibrate Robot" button) where the associated installation was not loaded when loading a program in the 'Program' tab. The purpose of loading a program could be to correct it when using the Program Correction functionality.

Dashboard Server:

  • Program run buttons (Play, Stop, etc.) are now not hidden, when the user role is changed from 'Restricted' to 'Programmer' through 'setUserRole' dashboard server command, and 'Program Robot' is selected.
  • Fixed commands 'play', 'stop' and 'pause' to always return failure, if the command could not be executed ("Failed to execute: <command>"), e.g. if no program was loaded before sending a 'play' command.

URCap Software Platform:

  • PolyScope will not fire input events on disabled UI widgets
  • Fixed an issue where the 'openView()' and 'closeView()' methods (of the 'InstallationNodeContribution' interface) are called multiple times for installation node contributions when switching between the 'Program' tab and 'Installation' tab.
  • Added Javadoc (code documentation) to clarify method behavior in the URCap API. Added Javadoc for the 'set(String,String)' method in the 'DataModel' interface.
  • Fixed wrong width when using a number input field in a URCap. The number field would be smaller than what was specified in the corresponding HTML layout.
  • URCap SDK:
    • Fixed a bug around using the empty string as the popup title in the 'MyDaemon' URCap example. Trying to set an empty string will now revert to the default value for the field (which is "HelloWorld").
    • Fixed a bug around using the empty string as the popup title in the 'HelloWorld' URCap example. Trying to set an empty string will now revert to the default value for the field (which is "HelloWorld").
    • Resolved an issue in the "Hello World" URCap sample. First time a loaded program was run, the text in the popup was empty


  • URScript manual:
    • Fixed erroneous examples for '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()' as well as inaccurate parameter ranges for these script functions
    • Updated Threading examples in section 1.8 to comply with parsing rules of the script compiler. Empty return statements are not allowed.
    • Added missing description for the 5th parameter, 'blocking', of the 'popup()' script function
  • User manual:
    • Improved the documentation in sections 2.5.1,, 10.13.1 and 10.13.2 regarding forwarding the Emergency Stop state through a System Emergency Stop output (configurable output) when an external E-stop device is used.
    • Added a description of the Backdrive feature to the "10: Safety Configuration" chapter (as the 10.7.1 subsection of the "10.7: Freedrive Mode" section).
  • Client communication interfaces documentation:
    • Added tag "unused" to the documentation of the Secondary client interface "Force Mode" fields (X,Y,Z,Rx,Ry,Rz) to indicate that they are currently not used to convey any force data and therefore always have a value of Zero (0).


Bugfixes during Software version 3.3

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


  • 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.
  • 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 unexpected error C155A0 when entering the safeguard safety mode with a heavy payload.
  • 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.

PolyScope GUI:

  • 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).
  • Fixed issue causing a unhandled Java exception when changing values for Modbus output registers.
  • 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.
  • Fixed issues with broken characters and incorrect translations in the Korean and Japanese versions of PolyScope.
  • 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.
  • 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.
  • 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.

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.

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.


  • Variables, functions and threads may no longer share the same name in the same scope.
  • A runtime exception will now  be generated when the parameter "qnear" in get_inverse_kin() is not provided as a list of joint positions.

URCap Software Platform:

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


  • User manual:
    • Fixed table formatting in the Japanese version.
    • Fixed minor typographical and phrasing errors.
    • Fixed various typographical errors in the manuals and PolyScope.
    • Improved documentation of default program settings in the software manual.
  • URScript 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.
    • Corrected the default values in the signature of the get_inverse_kin() function.
    • Corrected spelling mistakes.
    • Removed references to the deprecated C-API.
  • Service manual:
    • Updated the Safety Control Board startup sequence in the service manual.
    • Added description of error code C71A12 in the service manual.

Joint firmware:

  • Implementation of anti-vibration.

Safety processors:

  • Fixed issue that could occasionally trigger a false safety fault "C192A11: TCP orientation disagreement".
  • 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.