Connect tool digital output to arduino

We would like to control a simple gripped with a step-motor and Arduino by the UR tool digital output. Our circuit diagram is sketched on the picture.

As the tool output (DIO on the picture) is an open-drain, we would configure the Arduino input to have an internal pull-up. Arduino should be able to detect then if the tool output is on or off.

The resistor R1 is added to protect the robot from a possible short circuit in Arduino.

We have not try this circuit yet, because we are not experts in hardware and we would like to avoid a possible damage to the robot.

We would like to ask, if this is the right way to connect the tool digital output to Arduino?

1 Like

You probably need to do some level shifting, to both protect robot and microcontroller. Have a look at the BSS138, it is pretty easy to work with, and according to the datasheet it is well within of what you need.

The main “concern” in respect to the Tool outputs is the current limitation.
You should make sure, that your circuitry will not draw more than the supplied 600 mA.
Exceeding this may cause permanent dame to the tool, and will as well cause to robot to go into Fault mode, powering down the arm.

Also pay attention to the Tool Digital Inputs section in the User Manual.
Logical high for TIx is min. 5,5 V, so you will probably need some transistor level shifting from the 5V digital output of the Arduino.

You can also get 12V directly from tool connector. It can be configured to output 12 or 24V.
Add 500mA polyfuse on power line. Current limiting resistor with pullup is good enough.

1 Like

IMO, the proper way would be to use an optocoupler to isolate each side of the circuit, protecting both the robot ($$$) and the Arduino ($). That’s if you just want a digital signal out.

Phoenix Contact PN: 5603260 or similar would work.

Input side draws a max of 8.5 mA @ 24VDC. Output can switch anywhere from 3 - 33 VDC @ 300 Hz.

1 Like

Hi, interesting project,
Did it work for you?

and, Did you tried to send more the ‘HIGH\LOW’ commands from the robot to the Arduino?