# Connect KUKA to Wandelbots NOVA

> Learn how to connect KUKA robots to Wandelbots NOVA. Follow step-by-step setup instructions, safety guidelines, and supported controller requirements for reliable integration.

> **Info:** Wandelbots NOVA includes a real-time kernel and `robot-realtime` tuned profile by default to meet the latency and jitter requirements of KUKA controllers and avoid RSI disconnects.

Using a KUKA with Wandelbots NOVA offers a wide range of possibilities for automating your production processes.
There are 4 things you need to know before you start:

Which KUKA controller types and models are supported by Wandelbots NOVA?

[Supported models](#supported-models)

Wandelbots NOVA provides you with virtual controllers for path planning, app development and simulation purposes.

[Use virtual controller](#use-virtual-controller)

You can connect your KUKA controller to Wandelbots NOVA for real-world automation.

[Set up and connect KUKA controller](#set-up-and-connect-kuka-controller)

## Supported models

### Controllers

| Controller | Supports | Requirements |
| - | - | - |
| KRC4 | industrial | Option package: EthernetKRL Interface 2.2, Robot Sensor Interface 3.3/4.1, MultiSubmitInterpreter 1.0. Optional: Safe Operation package for safety zones, TCP geometries, safety limits of joint positions and velocity. If installed, safe operation reference switch is required.; Firmware: >=KSS 8.3.18 |
| KRC4 compact | industrial | Option package: EthernetKRL Interface 2.2, Robot Sensor Interface 3.3/4.1, MultiSubmitInterpreter 1.0. Optional: Safe Operation package for safety zones, TCP geometries, safety limits of joint positions and velocity. If installed, safe operation reference switch is required.; Firmware: >=KSS 8.3.18 |
| KRC5 | industrial | Option package: EthernetKRL Interface 3.2, Robot Sensor Interface 5.0. Optional: Safe Operation package for safety zones, TCP geometries, safety limits of joint positions and velocity. If installed, safe operation reference switch is required.; Firmware: >=KSS 8.7 |
| KRC5 micro | industrial/cobot | Option package: EthernetKRL Interface 3.2, Robot Sensor Interface 5.0. Optional: Safe Operation package for safety zones, TCP geometries, safety limits of joint positions and velocity. If installed, safe operation reference switch is required.; Firmware: >=KSS 8.7 |

### Motion groups

#### Robotic arms

**Cobots**

| Robot arm |
| - |
| KR LBR iisy 11 R1300 |
| KR LBR iisy 6 R1300 |

**Industrial robots**

| Robot arm |
| - |
| KR 10 R1100 |
| KR 10 R1100 2 |
| KR 10 R900 |
| KR 10 R900 2 |
| KR 12 R1810-2 |
| KR 120 R2700 |
| KR 120 R3100-2 |
| KR 120 R3900-2K |
| KR 150 R2 |
| KR 150 R2700-2 |
| KR 16 R1610-2 |
| KR 16 R2010-2 |
| KR 20 R1810 |
| KR 20 R1810-2 |
| KR 210 R2700 |
| KR 210 R2700-2 |
| KR 210 R3100-2 |
| KR 210 R3300-2K |
| KR 240 R2700 |
| KR 240 R2900 ultra |
| KR 240 R3700-2 |
| KR 25 R2700-2 |
| KR 250 R2700-2 |
| KR 270 R2700 ultra |
| KR 3 R540 |
| KR 30 R2100 |
| KR 30 R3 |
| KR 360 L240-3 |
| KR 4 R600 |
| KR 50 R2500 |
| KR 500 L340-3 |
| KR 6 700-2 |
| KR 6 R1820 |
| KR 6 R700 Sixx |
| KR 6 R900 |
| KR 6 R900-2 |
| KR 60-3 |
| KR 70 R2100 |

#### External axes

| External axis |
| - |
| DKP 500-2 |
| DKP 750-2 |
| KL1500 |

## Use virtual controller

### Step 1: Open the home screen

Open your cloud instance via NOVA Cloud or type in your physical instance's/virtual instance's IP address to access the home screen.
Get an overview on the home screen and its functionalities [here](/nova/26.7/architecture).

### Step 2: Create a cell in Setup

Open Setup and go to the `Cell` tab.

### Step 3: Add robot to your cell

If you want to start using the Wandelbots API, do so now and [add a robot via the Wandelbots NOVA API](/nova/26.7/nova-api/overview#add-a-robot-to-the-cell).

OR add a robot to your cell in Setup:

1. Open the `Robots` tab.
   → The robot overview is displayed.
2. Click [Add] to add a robot to your cell.\
   → A drawer opens guiding you through adding a robot.
   If the [Add] button is greyed out, your license might not support adding more robots. Please contact your administrator.
3. Select the robot type `Virtual`.
   → The drawer updates to display options for adding a virtual robot.

> **Info:** Adding a physical robot will only work after [successful setup](#set-up-and-connect-kuka-controller).

4. Name the robot.
5. Select `KUKA` as manufacturer.
6. Select the desired robot model.
7. `Add` the robot to the cell.
   → A progress indicator is displayed while the robot is being added to the cell.
   → The robot is displayed in the cell overview.

### Step 4: Add a TCP

To replicate a physical robot's behavior accurately, you can define TCPs for virtual robots in the Setup app.

1. Click on the robot.
   → A drawer opens displaying the robot details.
2. Open the `TCP` tab.
   → The TCP tab displays all existing TCPs of the robot.
   → For physical robots, the TCP tab presents an overview on all existing TCPs on the physical robot controller.
   You cannot add TCPs for physical robot controllers in Setup as these need to be configured on the robot controller.
3. Use [Add] to add a new TCP.
   → Options to add a new TCP are displayed.
4. Define the TCP's translation and rotation relative to the robot's flange.
5. Save the new TCP.
   → The new TCP is displayed in the TCP tab and can be selected in Robot Pad.

Congrats! You can now start to plan paths and simulate! Open Robot Pad from the home screen of your instance and get started ✨.

## Set up and connect KUKA controller

Cloud instances are not suited to control a physical robot and you need to use a VM or use an IPC instead.
More information on available NOVA instance types [here](/nova/26.7/installation/installation#instance-types).

### About setup instructions

The provided setup instructions do not replace a thorough understanding
of the robot manufacturer's original operating instruction and only apply to the supported models mentioned above.

The setup instructions include the following steps:

1. Preparing the robot for the connection with Wandelbots NOVA.
2. Physically connecting the IPC to the robot controller.
3. Configuring the IPC to establish communication with the robot controller.
4. Using the KUKA controller on Wandelbots NOVA.
5. Troubleshooting common issues that may arise during the setup process.

In order to connect the KUKA controller to Wandelbots NOVA,
Wandelbots NOVA needs to be integrated into the robotic cell according to these [cell designs](/nova/26.7/setup/cell-design).

Ensure that the KUKA controller you're about to connect to Wandelbots NOVA is listed in the [supported models](#supported-models) section.

Note that setting a correct mounting pose in the robot controller is crucial, especially for cobots, as they are sensitive to gravity direction.

### Qualified user groups

Preparing a controller for the use of Wandelbots NOVA is a task that requires a certain level of expertise.
The following instructions are intended for qualified user groups only.

> **⚠️ CAUTION:** **Danger in case of insufficient qualification of users**
>
> People can be injured if unqualified user groups set up the physical robot environment.
>
> - Only qualified user groups designated by the operating company may set up the physical robot environment.
> - Keep unqualified user groups away from the area of risk.

If a high experience level, e.g. admin user, is recommended to complete the step, the following label will be displayed next to the header:

[Admin]

### Step 1: Prepare the KUKA [Admin]

#### Activate Administrator user group and stop programs

1. Using the original robot's control panel, switch from automatic mode to T1 mode.
2. Open `Main menu` > `Configuration` > `User group`.
3. Select `Administrator` and enter the password.
4. If the `R` in the header has a green background color, click on it.
5. Cancel the robot program.
6. If the `S` in the header has a green background color, click on it.
7. Stop and deselect all submit interpreters.

#### Install option packages

1. Download the required option packages listed in the requirements of the [supported controllers](##controllers)
   as well as the [Wandelbots custom .kop option package](/nova-cloud/downloads) to a personal computer.

**Continue with USB flash drive**

2. Save the required option packages listed in the requirements of the [supported controllers](##controllers)
   as well as the [Wandelbots custom .kop option package](/nova-cloud/downloads) on an USB flash drive.
3. Insert the USB flash drive into the original robot's control panel or the robot controller.
4. Ensure that `Administrator` is still selected as user group.
5. Open `Main menu` > `Start-up` > `Service` > `Minimize HMI`.\
   → The windows home screen appears.
6. Copy the option package from the USB flash drive to `D:\KUKA_OPT`
7. Select the HMI in the windows task bar.
8. Open `Main menu` > `Start-up` > `Additional software`.
9. Click `New software`.
10. IMPORTANT: First, install the required option packages to enable the installation of the Wandelbots custom option package.
11. Only install the custom .kop option package AFTER installing the required option packages.
    > **Warning:** To avoid installation conflicts, remove the previous version of the Wandelbots NOVA KOP file before installing the latest version.

For further information read the chapter `Installation via smartHMI` in the respective option package documentation.

**Continue in KUKA WorkVisual**

2. Download [KUKA WorkVisual](https://my.kuka.com/s/product/kukaworkvisual-60/01t58000005rL3eAAE) and install it.
3. Follow the installation and connection instructions provided by the robot manufacturer to connect to the robot controller
   and install the option packages in the following order:
   1. First, install the required option packages to enable the installation of the Wandelbots custom option package.
   2. Only install the custom .kop option package AFTER installing the required option packages.
      > **Warning:** To avoid installation conflicts, remove the previous version of the Wandelbots NOVA KOP file before installing the latest version.

#### Get overview on IP addresses

During the setup of the KUKA robot controller, a variety of IP addresses are required.
To facilitate understanding who defines the IP addresses and for what they are used, the following table provides an overview:

| IP address | Value | Defined by |
| - | - | - |
| KUKA KLI IP address | e.g. `172.31.1.147`, notice that the subnet is 1. This IP address is assigned to the controller to access it within the company's network. | the operating company |
| KUKA RSI IP address | e.g. `172.31.2.147`, notice that the subnet is 2, thus different than the KLI subnet. This IP address is used to communicate with the IPC. | user during KUKA setup |
| IPC in company network | e.g. `172.160.3.55`, notice that the subnet is 3, thus different than the KLI and RSI subnets. This IP address is used to access the IPC in the company's network. | during Wandelbots NOVA installation |
| IPC's KLI IP address | e.g. `172.31.1.55`, notice that the subnet is 1, thus the same as the KUKA KLI subnet. This IP address is used by the IPC to establish communication to the robot controller. | user during KUKA setup |
| IPC's RSI IP address | e.g. `172.31.2.55`, notice that the subnet is 2, thus the same as the KUKA RSI subnet. This IP address is used by the IPC to establish communication with the robot controller. | user during KUKA setup |

#### Log in

_Using the original robot's control panel_

1. Switch from automatic mode to T1 mode.
2. Open `Main menu` > `Configuration` > `User group`.
3. Select `Expert` and enter the password.
4. Click `Log on`.

#### Add required network interfaces

1. Open `Main menu` > `Start-up` > `Network configuration`.\
   → The network configuration is displayed.
   If you can't access the network configuration, a program might be running. Cancel the program and try again.
2. Click on the `Advanced…` button.
3. Enter the following values to configure the `KLI` interface:
   | Field | Value |
   | - | - |
   | Interface designation | `KLI` |
   | Address type | `Fixed IP address` |
   | IP address | `172.31.1.147` |
   | Subnet mask | `255.255.255.0` |
   | Windows interface | Selected (default) |
4. Click on the `Add interface` button.
5. Enter the following values to configure the `RSI` interface:
   | Field | Value |
   | - | - |
   | Interface designation | `RSI` |
   | Address type | `Mixed IP address` |
   | IP address | `172.31.2.147` This IP address can be any valid IP address that you can think of. It can't be in the same subnet as the KLI address. |
   | Subnet mask | `255.255.255.0` |
   | Windows interface | Not selected |
6. Click on `Save`.\
   → A popup is displayed.
7. Confirm the changes to add both interfaces.

#### Restart the robot controller

1. Open `Main menu` > `Shutdown`.
2. In section `Settings for next shutdown`, select the options `Force cold start` and `Reload files`.
3. In section `Shutdown actions`, click on the `Reboot control PC` button.\
   → A popup is displayed.
4. Confirm the reboot of the controller to apply the network changes.

### Step 2: Connect IPC to the robot controller [Admin]

**KRC4**

1. Connect an ethernet cable to the IPC's LAN-1 port.
2. Connect the ethernet cable to the robot controller's X66 port.
3. Turn on the IPC.

**KRC5**

1. Connect an ethernet cable to the IPC's LAN-1 port.
2. Connect the ethernet cable to the robot controller's XF5 port.
3. Turn on the IPC.

### Step 3: Configure the IPC's network settings

1. Open `https://<ipc-ip-address>:9090`, e.g. `https://172.345.538.2:9090`, in a browser on your personal computer.\
   If the IPC is not connected to the same network as your personal computer, you can connect a keyboard, a mouse and a display to the IPC. Then open `localhost:9090` in a web browser.

   > **Warning:** Only one personal computer is allowed to connect to the instance's IP address.
   > In case multiple personal computers control a physical robot, e.g. via API and the RobotPad, simultaneously, the robot will not move.
   >
   > - Close all applications on other personal computers and try again.
   > - Unplug the robot's ethernet cable from the physical instance and wait a couple of minutes to restart Wandelbots NOVA foundation services. Plug it into the LAN port again and try again.
2. Log in with the user credentials created during the Wandelbots NOVA installation.\
   → The IPC's settings are displayed.
   → A popup prompts you to enable administrative access.
3. Enable administrative access and enter the admin password.
4. Select the Network tab in the sidebar.\
   → The IPC's network settings are displayed.
5. Toggle the button next to the `enp3s0` port (corresponding to the IPC's LAN-1 port) to enable network activity.
6. Click `edit` next to the IPv4.\
   → The IPv4 menu opens.
7. Set the address dropdown to `Manual`.
8. Set the prefix to 255.255.255.0 (will automatically change to 24).
9. Delete the prefilled gateway value.
10. Create an IP address that will be used as IPC KLI IP address. It has to be in the same subnet as the KUKA's KLI IP address, e.g. `172.31.1.55`.
11. Click on the `+` button to add another IP address.
12. Create an IP address that will be used as IPC RSI IP address. It has to be in the same subnet as the KUKA's RSI IP address, e.g. `172.31.2.55`.
13. Save the settings.\
    → Wandelbots NOVA can now connect to the robot.

### Step 4: Use KUKA controller on NOVA

1. Type in your physical instance's IP address to access the home screen.
   → The home screen is displayed.
2. Open Setup and go to the `Cell` tab.
   → The cell overview is displayed.
3. Open the `Robots` tab.
   → The robot overview is displayed.
4. Click [Add] to add a robot to your cell.\
   → A drawer opens guiding you through adding a robot.
   If the [Add] button is greyed out, your license might not support adding more robots. Please contact your administrator.
5. Select the robot type `Physical`.
   → The drawer updates to display options for adding a physical robot.
   > **Info:** Adding a physical robot will only work after [successful robot commissioning](#set-up-and-connect-kuka-controller).
6. Name the robot.
7. Select `KUKA` as the manufacturer.
8. Enter the `Host` and `RSI IP address` according to the info field.
   > **Info:**
   >
   > - In the `Host` field, use the KLI IP address of the controller entered in the [KLI interface](#add-required-network-interfaces).
   > - In the `RSI IP address` field, use the RSI IP address of the IPC entered in [RSI IP address](#configure-the-ipcs-network-settings).
9. If you're setting up **one** KUKA robot controller on a bare-metal NOVA instance, leave the `RSI Server Port` field empty. The default port will be used to connect.\
   If you're setting up **more than one** KUKA robot controller on the same bare-metal NOVA instance, enter the respective port in the `RSI Server Port` field for all controllers.
   Use different ports for each connected controller. If the field is left empty for more than one controller, the default port will be used multiple times and the connection will fail.
10. Click on `Add`.
    → A progress indicator is displayed while the robot is being added to the cell.
    → The robot is displayed in the cell overview.
11. Set the robot to one of the operating modes: Manual or automatic.

#### Manual mode

1. Press enabling switch on the original robot control panel and keep pressing it.
2. Confirm all safety messages.\
   → The robot program starts automatically.
3. Press the green button on the backside (or the play button on the front side) of the original robot control panel once.\
   → The robot's motor breaks will be released.
4. Press the green button on the backside (or the play button on the front side) again and hold.
5. Ensure the program pointer is below the comment "DO NOT CANCEL THIS PROGRAM IF YOU WANT TO MOVE THE ROBOT WITH WANDELBOTS".
6. Activate the motion group in Robot Pad in the safety bar or via the Wandelbots NOVA API Motion Group endpoint `POST /cells/{cell}/motion-groups/all`. \
   As soon as you stop pressing the enabling switch and the green button on the backside, the robot will stop moving immediately.

#### Automatic mode

1. Confirm all safety messages.\
   → The robot program starts automatically.
2. Press the green button on the backside (or the play button on the front side) of the original robot control panel 2 times.
3. Ensure the program pointer is below the comment "DO NOT CANCEL THIS PROGRAM IF YOU WANT TO MOVE THE ROBOT WITH WANDELBOTS".
4. Activate the motion group in Robot Pad in the safety bar or via the Wandelbots NOVA API Motion Group endpoint `POST /cells/{cell}/motion-groups/all`.

#### External automatic mode

To start a robot program in external automatic mode, internal variables have to be triggered in the right order:

1. `$MOVE_ENABLE`
2. `$CONF_MESS`
3. `$DRIVES_ON`
4. `$EXT_START`

For more information about the use and the communication flow of these internal variables read the KUKA System Integrator documentation of the respective KSS version.

All variables need to be mapped to inputs to enable triggering them
via a higher-level controller such as a PLC, physical buttons or a BUS I/O communication device.

**via robot control panel**

5. Select `Main menu` > `Configuration` > `Inputs/outputs` > `Automatic External`.
6. In the `Value` column, select the desired cell and press `Edit`.
7. Enter the desired input number and press `OK` to save.
8. Repeat steps 2 and 3 for all desired values.
9. Close the window.\
   → The changes are saved.

**via KUKA WorkVisual**

5. Map the inputs in `KRC/STEU/Mada/custom.dat`, e.g., `SIGNAL $CONF_MESS $IN[100] ;EXTERNE QUITTUNG`

#### TCPs

To use TCPs for connected physical controllers on NOVA, you need to set them up on the robot controller first.
Refer to the original [KUKA documentation](https://www.kuka.com/en-at).

TCPs will then be displayed in the Setup app under the `TCPs` tab in the robot's settings and can be selected for path planning in Robot Pad.

#### KUKA brake test guide

The KUKA brake test is a safety feature that ensures the robot's brakes are functioning correctly. Before operating the robot with Wandelbots NOVA, it is essential to perform the brake test to prevent any unexpected movements or accidents.

1. Ensure that you have the latest option package for KUKA from Wandelbots (.kop file) installed.
2. Using the robot control panel, open System → `wb_safe_func.src` and write an invocation of the desired safety check function into it.
3. Subscribe to, or poll, `Output #3023` to be notified when `BrakeTest` or `SafeReferenceDrive` are required.
4. It may be required to enter Monitoring Mode so leave `PositionControl` if necessary.
5. Set `Output #3022` to `1`.
6. Observe that your function in `wb_safefunc.src` is executed.\
   → If the `safe_func()` satisfies the controller's safety requirements, `OUT#3023` will turn to `0` at the end.
7. Reenable `PositionControl`.\
   → The robot has passed the brake test successfully and can be operated safely.

## Troubleshooting

### I can't log in or I am not part of the Expert user group

In order to prepare the KUKA for Wandelbots NOVA you need to be part of the Expert user group.
If you can't log in, ask a sufficiently qualified user to log in and set up the robot for you.

### Find the KUKA's IP address

_Using the original robot control panel_

1. Log in with the Expert user group.
2. Switch from automatic mode to T1 mode.
3. Open the main menu.
4. Go to Main menu > Start-up > Network configuration.\
   → The network configuration is displayed.
5. Open Advanced…\
   → The controller's IP addresses are displayed.

### Downloading WorkVisual project fails while submit interpreters are running

WorkVisual project can be downloaded to the KUKA robot while submit interpreters are running.\
Resolve the download issue:

1. Select `Download Option Packages` when you retrieve the project.
2. Set the robot to manual mode.
3. Log in as admin.
4. Verify that the project configuration is error-free.

### Connection issues

If you have been experiencing RSI disconnects with KUKA robots or general performance issues,
your Wandelbots NOVA instance might not be running on a real-time-enabled kernel.

> **Info:** Starting with Wandelbots NOVA 26.1, the real-time kernel is included by default in all NOVA installations.
> If you're using an older version, you may need to upgrade or manually install the RT kernel.

If the issue persists, read more in the [FAQ section on robot connectivity](/nova/26.7/faq#wandelbots-nova-instance-is-physically-connected-to-the-robot-but-the-robot-is-not-moving).

### Warning "Stop by $CORRECTION function (reset or block selection required)" or error "Object ETHERNET1 returns error RSITimeout"

The network setup might be unstable or incorrect.

Verify the setup of the RSI interfaces on both the KUKA controller and the IPC:

1. Ensure that the RSI IP address of the
   KUKA controller is reachable from the IPC and vice versa.
2. Restart the controller.
