When the Flexx CNC middleware isn’t able to send signals over ethernet to the UR Robot, the program will timeout. The node that is causing the timeout can us where the issue is.

Timing out on the Flexx Select CNC node likely means no message is reach the Flexx CNC middleware at all. In this case, we should:

Ensure that ethernet cable connects the robot and the “ROBOT” side of the Flexx CNC

Ensure that the Robot’s Network IP is set to per the setup instructions


Timing out on the Flexx Wait for CNC node means there is an issue in the runtime. Issues encountered with timeouts in the Flexx Select Gcode node should also be handled with the below. In this case, we should:

Ensure that the “timeout” field in the Flexx Wait for CNC node is greater than the cycle time of the part.

Verify that your Machine side Flexx CNC IP and CNC machine IP match your network. This can be accessed via the Installation Node, under SETUP.

Verify all ethernet connections from the “MACHINE” port to the CNC machine’s embedded port, either in the back of the machine or behind the HMI

  1. From here, troubleshooting varies depending on the CNC. See below:





Verify that the Okuma Server executable by hitting CTRL + TRIPLE BACKSLASH (CANCEL) and looking for the executable among the programs in the bottom bar. If not present, run it again from your USB or download it and run it from the desktop. Verify that it runs without crashing. If it does, send the Server.log (which should appear where you ran it) to support@flexxbotics.com

Issues related to the server come in two types: where the server crashes on running, and where the server does not respond to UR node commands.

Verify you are running the correct executable: if you are using an OSP200 or OSP300, use the executable in the appropriate folder of the setup USB or download it from here: https://flexxbotics.atlassian.net/wiki/spaces/FD/pages/25853973

If the application continues to crash, send the Server.log (which should appear where you ran it) to support@flexxbotics.com

If the does not respond to commands, Follow the steps for "Why is my Program Timing Out?"

This error often appears due to not enough “Cycle Start” and “Wait for CNC” pairs being present for the program being loaded into memory or currently running. The following note explains why this might be:

When “Cycle Start” is sent, it is the same as a user hitting the button themselves.

Therefore, when programming your UR, you must send a “Cycle Start” and “Wait for CNC” pair whenever a human user might have had to restart the machine after a part flip, change, or blow-off step.

So, when a M00 is reached, the Wait for CNC node gives way to the next node, which might be to open the door, flip the part, and then close it up again. The Cycle Start node should then be run again to run the operation on the now flipped part, and a Wait for CNC should be placed after to detect when the next M00 or the M30 at the bottom of the program is detected.

The Flexx CNC M12 connections are all similarly wired to have a 24V (volt) source, and 0V ground, and one or two signal pins. In this way, both sinking (NPN) and sourcing (PNP) signaling styles can be used. A normally open (NO) relay will be included in kits so that CNC’s with non 24V signaling can be triggered using the Flexx CNC’s outputs. Find the wiring diagram below:


The Flexx CNC will draw no more than 12W (watts). The outputs provide 24V (voltage) signal, and the inputs detect a 24V signal.

This is why we provide a relay in our wiring kit for some machine makes: some CNC interface Start cycle buttons run on 12V. A Normally Open relay would be needed in this case: the 24V output from the Flexx CNC causes the relay to close the 12V poles of the start cycle.

In the same way, the Flexx CNC can be used as-is for PNP (“sourcing”) signaling, where a positive voltage is applied to signal a pin. In order to use NPN (“sinking”) signaling, use the provided relay to bridge the pin to a 0V sink on a 24V output.


You can still automate your machine! In this case, you will be using the Flexx CNC Start Cycle Node, and a Wait node, using the “Wait for ___” mode.

We should set this wait for to trigger on one of the provided Flexx CNC input funtions, simply tap the yellow function field, scroll to the bottom of the dropdown, and find the input functions. replace the timeout with a realistic timeout slightly longer than your expected cycle time in seconds, and hit enter.

Now we should decide what to wire out input into. Examples might include:

  1. A M-code actuated relay activate at the end of a program cycle

  2. An “in cycle” indicator light on the HMI

  3. the output of a green stack light indicator

From here, we can run a Start Cycle, then wait on our node until the input function goes high!

PLEASE NOTE that non ethernet integrations like these do not provide program loading capabilities, so the user must modify their G code to add M codes or other indicators in order to send signal to the input configured.

The only interfaces that require an executable to be placed on the Machine HMI are the Okuma OSP300 and OSP200. Fanuc, Mazak, and Haas interfaces only require some settings changes outlined in the https://flexxbotics.atlassian.net/wiki/spaces/FD/pages/9666575/User+Manual+-+Flexx+CNC#Setup

The best way to get your license key is to email us at support@flexxbotics.com with your company name and the serial number of the robot you will be using with the Flexx CNC. Your robot’s serial number can be found by navigating to the installation tab, finding the URCAP dropdown, hitting the Flexx CNC tab, and then the Setup tab at the top. Below your activation key field is the serial number of your UR!

After getting and entering your key, verify the URcap status reflects that the software is activated, then navigate to save, save as installation, then overwrite default.

Otherwise, you’ll need to re-enter the code every robot reboot!

The Flexx CNC makes user of female M12 connectors on it’s front face, meaning you will need male M12 cables in order to interface with them. If you need more cables or longer cables than those provided, find them on https://shop.murrelektronik.com/en/Connection-Technology/With-open-ended-wires/Signal/M12-male-0-with-cable-7999-12021-8620100.html or Digikey.

No, the I/O in the Flexx Interface is an expansion off of the I/O that is already native to the robot. It is controlled via the ethernet cable between the robot and Flexx Interface. All of the I/O on the robot will be completely available.

The M12 cables used with the Flexx CNC can be manually wired into your UR DIO in order to use the same connectors for both your Flexx CNC and UR DIO.