Release note Software version 3.2.xxxxx

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

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

Version 3.2.21545

Released Versions:

  • Manual: 21833


  • Updated the "Declaration of Incorporation" section in the user manual to reference new directives which is effective from April 20 2016. Changed the signature and fixed some minor issues in this section.
  • Updated the copyright year range for the user manual, software manual, script manual and calibration manual.



Version 3.2.21545

Released Versions:

  • Safety A branch: 483
  • Safety B branch: 222
  • Joint firmware: 21545
  • Screenboard firmware: 21545
  • PolyScope/controller: 21545
  • Manual: 20139

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 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.

Safety Processors:

  • Changed the accepted delay between the two signals in the safety signal for mode select then using three position enabling device

Joint firmware:

  • Occasionally when the robot was shutting down, a broken communikation - package loss warning C4A77 would appear, due to the joints being busy with saving data to flash. This warning is removed.



Version 3.2.20175

  • Safety A branch: 476
  • Safety B branch: 216
  • Joint firmware: 20175
  • Screenboard firmware: 20175
  • PolyScope/controller: 20175
  • Manual: 20139

Key features:


  • 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.

Robot from below serial numbers will be shipped with this software version:

UR3: 2016330678
UR5: 2016351948
UR10: 2016301889



Version 3.2.19293

  • Safety A branch: 476
  • Safety B branch: 216
  • Joint firmware: 19293
  • Screenboard firmware: 19293
  • PolyScope/controller: 19293
  • Manual: 19236


Key features:


  • 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.


Bug fixes


  • Fixed issue where the length of a string did not return correct value
  • 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 dereferencing error in functions for local list variables


  • Fixed issue with palletizing where nodes where not Unique
  • Fixed issue where using the "edit pose" button in advanced options did not create unique waypoint names
  • Fixed issue where an Installation variable in some situations would be renamed ("_" added) during load
  • 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 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
  • 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 placement issue for move type dropdown
  • Languages and texts
    • Fixed various bugs related to the text on certain screens. E.g. long names for IOs and safety password text being cut off.
    • Online help for EN-US is now available
    • French translations issues in command tab
    • Fixed issue where text did not appear correctly for some languages in the expert screens
    • German translations in e.g. the run screen



Version 3.2.18744

  • Safety A branch: 476
  • Safety B branch: 216
  • Joint firmware: 18744
  • Screenboard firmware: 18744
  • PolyScope/controller: 18744
  • Manual: 18569

Bug fixes:


  • Fixed an issue that could cause protective stops (C153A1 - position deviation) when exiting force mode.


  • 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.

Safety 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.



This is the first release note: 3.2.18654


Software: 3.2.18654
Safety A: 476
Safety B: 214
Joint firmware: 18634
Screenboard firmware: 18634
Polyscope/Controller: 18654
Manual: 18629 

Important information when updating existing installations:

  • *A change to the safety system effectively increases the robots' force sensitvity for a given safety setting.
  • *In some applications this may cause protective stops due to joint position deviation (code C153)
    • Please see “Safety System” section for a detailed description
  • *Force control is now only able to push with 25N less than the safety limit
  • The safety checksum of installations made with SW 3.0 and 3.1 may change after installing SW 3.2, however, the safety values are the same. If the checksum has changed, the user will be informed

*listed features marked with an asterisk are also available in SW3.1

Key features

  • Switch - case statement
  • Search function to easier find things in programs
  • EtherNetIP adaptor
  • Operational Mode and 3-position switch (optional feature that requires safety control board update) –please see detailed description in the “PolyScope GUI” section
  • Decreased URSim download size


PolyScope GUI

  • Switch - case statement
    • Can be used in place of complex If…Else If statements
  • Operational Mode and 3-position switch 
    • The “about” box in Polyscope will indicate whether or not the safety control board has the correct firmware to support the feature (Safety A is 473 or higher and Safety B is 212 or higher)
    • For installations requiring a new safety control board the service manual contains a description on how to replace it correctly and the spare part for ordering is: 172290
    • The functionality is optional, so if not configured, the robot works as before
    • Two Operational Modes: Programming, and Running
      • In Running mode, Freedrive, jogging, and modification of programs is not allowed
      • In Programming mode, a 3-position switch must be enabled to move the robot
    • The 3-position switch can be configured as a redundant safety input
    • The operational mode selector can be configured as a redundant safety input or as a password in PolyScope
  • Improved script editor.
    • Editing screen has been made to feel like a file editor
    • Added line numbering
    • Expanded the edit file view and moved the icons to the top of the window to allow for more room
    • Changed keyboard to appear from bottom of screen
    • Added feedback to indicate when changes are pending with “save as” icon
  • Program execution indicator icon was removed from the toolbar and is made visible only when needed in the lower right of the program tree

26 10 2015 12 16 49

  • UR Program file format is now much more concise and readable. File size is reduced and load times are improved. Older programs can still be loaded
  • Replaced "start conveyor tracking" and "stop conveyor tracking" program nodes with a "conveyor tracking" node that can contain program nodes.
    • Programs with the old nodes can still load and run
  • Added search feature which enables the user to highlight parts of the program tree by entering search word

32 Search

  • Added "load installation" command to the DashBoard server, so you can load installations from network
  • Now the list with available updates in the Update Robot Software screen is properly scrollable and sorted
  • Made improvements to the error and warning indicators (e.g. tool tip error messages) when entering values in text fields in the Installation Safety tab
  • Pose Editor screen:
    • Changed the color of the error message displayed when an unreachable pose is entered to red
    • Now a warning message is displayed (in the bottom of the screen) when the entered target is close to or in violation with an active safety limit (joint position limit, the tool orientation boundary limit or safety plane)

32 Pose Feedback

  • Changed the appearance of the panel with the General safety limits in Basic mode. The panel now lists the selected values instead of giving textual example applications of the respective safety limits
  • Added revision numbers of the safety A and B processors code in the "About" screen. Only robots produced with Software 3.2 can report the revisions
  • Improved how I/Os with I/O actions are shown in PolyScope. The I/O actions set are visible in the I/O tab as well
  • Added support for scientific notation (e.g. 1.0E-4) for the value of Installation variables.  
  • Drop-down menus in the Command Tab with a value that is undefined because of a missing entity in the installation are now marked using a yellow border and the problematic item appears with a yellow background when the menu is opened
  • Moved Force from the Advanced tab node into Wizards tab within the structure tab
  • More descriptive text is now shown in the program tree for nodes that are undefined because of missing entities in the installation
  • Added progress bar when large programs are started 
  • Miscellaneous tab added to the Safety Configuration confirmation dialog, and the Safety Configuration dialog displayed when clicking the safety checksum 
  • *Changed the behavior of the robot when it is being forced away from the current target position so it does not try to swing back to that position, but instead stays in the new position
  • *Updated the functionality of the speedj and speedl script command to: 
    • Accelerate linearly in joint space and continue with constant joint speed.
    • The time t is optional; if provided the function will return after time t, regardless of the target speed has been reached. 
      If the time t is not provided, the function will return when the target speed is reached.
    • Fixed the stopj and stopl script command to stop with the specified acceleration.
    • Fixed the speedl and stopl script command so the acceleration of the orientation and position speed are synchronized


  • EtherNetIP Adaptor
    • Realtime synchronization with EtherNetIP Scanners
    • Robot State and general purpose registers input and outputs are transmitted
    • Script functions for synchronizing your program with a PLC
    • EDS file
    • This new function 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
  • Added digital outputs (address 131) to RealTimeClientInterface (if you use port 30003, it may affect your software)
  • Added program state (address 132) to RealTimeClientInterface (if you use port 30003, it may affect your software)
  • Added support for rotational blends without translation change in MoveL (only variable waypoints or script code)



  • Script functions for synchronizing your program with a PLC:
    • read_input_boolean_register(address)
    • read_input_float_register(address)
    • read_input_integer_register(address)
    • read_output_boolean_register(address)
    • read_output_float_register(address)
    • read_output_ integer_register(address)
    • write_output_boolean_register(address, value)
    • write_output_float_register(address, value)
    • write_output_integer_register(address, value)
  • Added get_tool_current() as script function.
  • Added is_within_safety_limits(pose) as script function, that can check if a pose or joint position vector is reachable and within safety limits



  • Moved safety chapters to the beginning of the user manual
  • Reduced the number of places with serial numbers to two. The serial number is now to be written in the beginning of the manual and in the declaration of incorporation
  • Improved Risk Assessment information in the Safety Chapter 
  • *UR3 added to the calibration manual



  • URSim was updated to decrease the file size and make it easier to download
  • The VMWare version requires an update to VM12 
  • The Virtual box does not necessarily require an update but we recommend version: 5.0.2 



Bug fixes


  • Reduced max acceleration for size 4 joints on UR10 by 2%, in order to improve trajectory tracking. This may slightly affect the cycle time of programs with very high accelerations.
  • Robot is now not able to go to "Backdrive" mode when it is safeguard stopped. Before the safety system would report a violation.
  • Improved Controller performance, which reduces the risk of error code "C4A1 Communication with Controller lost" 
  • Fixed a bug where robot could power off in freedrive mode with error code 155
  • Fixed bug where force mode could cause UR3's to vibrate
  • Fixed connection issues for fast reconnects on ports 30001, 30002 and 30003
  • Fixed false positives for hard decelerations in the Sanity Checker
  • Fixed a bug whereby a combination of an emergency stop & safeguard stop would disallow program continuation after release
  • Fixed a bug in movel and movej that can cause a protective stop ("Sudden change in target position") while blending 


  • Fixed bug, where the entered value was lost when changing the sign of a value in a text field.
  • Fixed bug, where the value "-" could be accepted in the Displacement text field when configuring a safety plane in the Boundaries Tab
  • ElseIf and Else nodes are now expanded when added to the program tree
  • A Force node in a program is now correctly updated when the feature it uses is modified
  • The text "Joint_0_name" no longer appears in the program tree and in the Command Tab for a Variable Waypoint when using the Base feature as a variable
  • Pose Editor screen:
    • Now the 3D graphics does not show the shadow robot for identical start and target position.
    • Corrected 3D visualization of the current and target position of the robot TCP
    • Fixed "flickering" of the 3D graphics.
    • Now the visualization of a (to the target) proximate boundary limit is removed from the 3D graphics when an unreachable Cartesian pose is entered.
  • Fixed bug that caused drop-down box "B input" in "Conveyor Tracking" in the Installation to be enabled even though quadrature mode was not selected
  • TCP teaching is no longer possible when the user is coming from the Robot Initialization screen
  • Fixed problem with suppressed waypoints in list patterns for palletizing
  • Fixed issue, where the value of an installation variable was lost in some situations when the value was small
  • The speed slider is no longer reset when loading a program
  • Fixed issue that could cause the File menu to be disabled without any way for the user to enable it again
  • Fixed issue where the configuration of the "Conveyor Tracking" was not reset to defaults when creating a new installation or loading an installation created in a version older than SW 3.1
  • If the "Play" button is clicked during safeguard stop, the program can no longer start playing after the safeguard is lifted
  • Fixed issue where it was not possible to configure the time to be displayed in the 12h format
  • Fixed several translation problems
  • Fixed rendering issue for program nodes in the program tree.
  • Programs that use variable features in waypoints can now be reloaded without program nodes becoming undefined
  • Euromap67 template program from SW 1.8 can now load.
  • Fixed issue in the Boundaries tab, where it was possible to accept an empty or too long string for the name of a safety plane
  • Fixed issue with loading Euromap signals in programs that were saved in SW 3.0 and some versions of SW 3.1
  • A popup is now shown at run-time if the user uses a digital pin as a part of a boolean expression in an if-condition that is not defined in the installation. Before a java exception was thrown
  • Fixed issue when saving a script file after modifying it in the command tab. The file name was extended with "_bak" every time the user pressed the save button
  • Fixed issues where a pop-up occurs when loading programs asking to resolve variable names
  • Improved responsiveness of PolyScope when Graphics tab is showing for larger programs
  • Now it is possible to automatically start programs and brake release using MODBUS Signals via Default Program settings in Installation
  • Fixed issue in "I/O Setup" in the Installation tab where graphical indicators (icons) in the list with output signals was missing for signals which was assigned an I/O action.
  • Fixed issue where the save as dialog showed the filename of the previous loaded program when saving a new (unsaved) program
  • Fixed issue when loading a program from the Dashboard server requires full path and does not default to the programs directory
  • When pressing 'Save As' the file name of the currently loaded program now appears


  • Fixed an issue that caused the wrong content to be included in some parts of the embedded help

Safety System

As part of Universal Robots ongoing work to improve the safety systems, a rare situation where the robot in a high-speed clamping situation in combination with using the "force()" script function to conditionally stop the robot, could stop and engage the brakes while contacting the clamped part, and thereby delivering slightly higher force than specified by the safety settings, has been identified. To alleviate this problem, minor changes to the safety system has been made, which can affect existing robot installations when upgrading to SW3.2. In practice, the overall sensitivity of the robot has been increased to outside force. In some applications this can cause problems with protective stops. In that case two possible workarounds can be used:

  1. If allowed by the safety assessment of the installation, the force limit in the safety settings can be increased. We recommend doing so in steps until the issue is resolved. No more than 25N should be necessary to resolve it
  2. If the safety assessment does not permit increasing the force limit safety setting, the speed and/or acceleration in the movements causing problems can be lowered

This feature was also implemented in the last bugfix release of SW3.1, rev. 18024


  • Fixed an issue that caused the wrong content to be included in some parts of the PolyScope help.
  • Clarified that servoj is a blocking function.



Bugfixes during Software version 3.1

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


  • Fixed an issue where in some cases the variables of a program were not showing correct values in PolyScope
  • Fixed an issue that could case the Controller to hang when making a socket connection to the Controller
  • Fixed an issue that might cause the robot to not reach a target position in conveyor tracking mode when using the speed slider
  • Fixed bug that the warning C103A1 "UR Ethernet Error:3 packages in a row lost from Safety Control Board" appeared 3 times when the robot was booted. The error now only appears if the connection is broken due to an error
  • Fixes issue that the Robot Not Stopping Output is activated by Protective Stops. It is now only activated by Safeguard or Emergency Stops
  • Extended sanity check with checks for Not a Number (NaN) in target setpoints. This might show as C204A5
  • Added sanity check that verifies consistencies between position and velocity
  • Added sanity check that verifies that too big changes in speed are not allowed, this may cause protective stops (code C204A3)
  • Fixed an issue where the safeguard stop reset also resumed a paused program
  • Corrected the description for set_standard_digital_out()
  • I/O actions can now resume a paused program by activate the assigned play I/O
  • Fixed an issue with the speedl script function that would cause the robot to make wrong accelerations when chaining multiple speedl commands
  • Fixed an issue with socket_ascii_float() script function regarding spaces after the digit
  • After position deviation failure has been detected at start up, the controller keeps generating protective stop until the user has confirmed that the position of the robot is correct
  • Robot retracts approx. 10 mm at protective stop, to avoid clamping
  • Fixed Protective Stops occurring when returning from force mode
  • Fixed Protective Stops occurring when stopl() was used at higher speeds
  • Fixed jerks occurring when using speedl() script commands
  • Fixed bug with robot jerking when stopping a program while conveyor tracking
  • Fixed Safety Fault C203A0 when returning from Expert mode/LowLevelControl
  • Fixed issue where robot would move slower than allowed by the joint speed, TCP speed and momentum limits defined for Normal mode after disabling a Trigger Reduced mode plane
  • Fixed issue where the robot could stop with a "safety system violation" after exiting the AutoMove screen when in Reduced mode
  • Conveyor tracking: Fixed performance issue that caused "broken communication with PC" when having a protective stop while conveyor tracking
  • Resolved path deviation problem which were introduced in release 16828.
  • socket_read_byte_list: Fixed backwards compatibility with version 3.0.
  • Fixed comparison between strings


  • Waypoints now move along with a variable feature even if the Variable check box on the feature is unset and set after the waypoints were defined
  • Fixed problem with loading SW3.0 programs that contain Euromap67 program nodes.
  • Cancelling the renaming of a point feature to the name of another feature no longer causes the original name to change
  • Touch screen keyboard missing on entering IP address in Dual Robot Calibration 
  • Issue on UR3 where dialog appears stating safety configuration corrupted on startup
  • Changed the dashboard servers "savelog" behavior so it replies "Log saved to disk" when it has saved the log.
  • Fixed syntax error using waitForItem node with Euromap67
  • Fixed the syntax error using I/O action starting a program. This occurred when the first move was defined as a variable or relative waypoint
  • Fixed user interface problem on the run program tab when loading a program with a long name
  • Fixed problem that prevented correct saving of subprograms even though the "keep subprogram updated with this file"-setting was checked
  • Fixed issue with the "English programming" setting
  • Non-variable features can again be selected in the Move node
  • An edited installation variable value is now correctly initialized when the program is next run
  • Copying a freshly create pallet node/a pallet node without waypoints will no longer cause an exception
  • The selections in the "I/O tab control" drop-down menus in the I/O Setup screen are now correctly saved inside the installation
  • Dashboard server:
    • A new user role "restricted" (for the 'setUserRole' Dashboard server command) has been introduced. The role is similar to "operator", but the new role also prevents access to the Move tab
    • The user interface now goes back to the Welcome screen whenever the user role has been changed
    • The dashboard server has been extended with a "freedrivemode" command that can be used to restrict the use of the freedrive button, so that it may only be used in reduced mode. The restricted freedrive button mode works with the button on the teach pendant and with any external freedrive button configured in I/O setup
  • Added a new screen in PolyScope to allow visual verification of the position of the robot at startup after position deviation failure. The new screen is shown at power on and replaces a protective stop popup
  • Demoted warning 50A83 to info level. For instance, on applying new safety settings this message would wrongfully show up as a warning in the PolyScope log
  • Fixed bug that undefined Waypoints were overwritten in French language, new name is "PointPassage"
  • English only: In log messages removed the words "error" and "broken" from warning messages (in cases where the system will remain operational anyway). In the PolyScope log the info/warning/fault icons indicate the true severity of the reported issue
  • English only: In log messages renamed "Masterboard" to "Safety Control Board" and "PC" to "Controller" for a few error codes
  • The Waypoint named "Waypoint" inside Seek-nodes is now named "Exit"
  • Variables in the Assignment node are no longer renamed when a program is loaded while another program is open
  • Move tab and Pose Editor now show correct TCP position values, TCP visualization and visualization of boundaries when a Waypoint is being set or changed
  • The running program now gets stopped if the user attempts to edit a Waypoint
  • Programs with Euromap67 signals selected in the "Set Digital Output" drop-down menu on a Set node now get loaded correctly
  • Fixed issue in the AutoMove tab where the animation showing the path to the target position could be slow, if the safety configuration contained low values for TCP speed, momentum or joint speed
  • Euromap67 signal names are now saved in a language-independent manner. (If there is a problem with loading a program with Euromap67 signals after the language has been changed, the program first needs to be loaded and saved in the original language, then it can be loaded in any language)
  • Program tab: Variable no longer disappears from the program when a node that uses a variable is removed or suppressed
  • Program tab: Prevented an exception occurring after pasting a node with a variable that is not used elsewhere in the tree
  • Boundaries tab: Fixed bug where validation of input for the "Deviation" text field in the configuration of the Tool Boundary was missing

Joint firmware

  • Minor reduction of vibrations primarily on UR3's
  • Joint: Added sanity check verifying that target speed matches changes in target positions. If not, the target speed is set to 0, and a warning C205A0 is reported
  • Reduced occurrences of Faults due to error code C4: Broken communication with joints. This improvement will affect robot when the software upgrade is installed
  • Reduces the appearance of motor encoder index drift errors. The Problem can still be a mechanical issue and therefore not removed by this fix

Safety Control Board

  • Fixed issue - violation C191A15 (robot is moving in stop mode) when using "robot not stopped output" and activated safeguard
  • SCB (uB): Fixed occasional 'Joint Limit Violation' bug, preventing the robot from always entering recovery mode at start-up if one or more joint position limits are violated

User manual

  • Removed translated strings from the original declaration of incorporation in translated user manuals
  • Script Manual:
    • Fixed some typos
    • Added description of the 'reset_revolution_counter' function


Want to get notified about updates?

You are welcome to sign up for notifications about new relevant information and articles that could be interesting for you.

Need help?

Did you find what you needed on this site? For additional information please contact one of our distributors.