§8 xArm 6

Control, communication and programming interfaces

How people and programs talk to the arm: Studio, the SDKs, ROS, Modbus and the controller's inputs and outputs.

Start here

This section is about how people and other machines talk to the arm: the software, the network, the wires on the control box and the connector at the tool end, and how to choose between them. Read the short list below first, because one abbreviation here means something different from the rest of the site.

  • Studio, Python, C++, ROS

    UFACTORY's programming routes1

  • 8 CI + 8 DI

    digital inputs on the control box, with 8 CO + 8 DO outputs2

  • 30 m

    longest I/O cable unless extension testing shows more works3

  • UFACTORY's common specifications for the xArm 5, 6 and 7 list four programming routes: UFACTORY Studio, Python, C++ and ROS1.
  • Studio runs inside the control box, so nothing has to be installed and any computer with a browser can use it4.
  • The control box I/O can be used with many devices, including pneumatic relays, PLCs and emergency stop buttons5.
  • Here "TCP" mostly means a network protocol: UFACTORY gives the arm's protocol as "Private TCP(custom)", over Ethernet6. In "TCP offset" and elsewhere on the site, TCP stands for Tool Center Point7.

S6 in one line: S6 is a UFactory xArm 6 cobot that handles parts after processing, routing them to inspection, rework or shipping8.

Look back

A question from earlier on, to keep it fresh. Skip it if you like; nothing depends on it.

q-s07-b-04Safety You pressed STOP in UFACTORY Studio. Is the arm now in the same state as after an emergency stop?
  1. Check option (a)

    Not this one. Studio's STOP is a software stop, and the power is still on. Pressing the emergency stop button powers the arm off.8788

  2. Check option (b)

    Correct. Right. Studio's STOP leaves the power on. This project's advice is never to count a software stop as an emergency stop.8734

q-s04-b-01 What is the TCP?
  1. Check option (a)

    Correct. Right. TCP stands for Tool Center Point, and the offset is set in millimetres.7

  2. Check option (b)

    Not this one. Here TCP means Tool Center Point. The same three letters also name the protocol the control box uses over Ethernet, which Section 8 covers.76

  3. Check option (c)

    Not this one. The base is where the base coordinate system sits. The TCP is at the tool end.897

Choose your depth

Four depths, one page. Switch at any time: every tier stays open to everyone. What the four tiers mean

1Beginner

How you talk to the arm

For: Anyone with no robotics background: a visitor, a new operator, a manager
Kind of task: Recognise and recall, with plain-language explanations and pictures

In this part you learn the ways a person or a machine can tell the arm what to do, how a computer reaches it over the network, and the one wiring rule you must never break. No programming background is needed.

Four routes

  • UFACTORY lists four routes for programming the xArm 5, 6 and 7: UFACTORY Studio, Python, C++ and ROS1.
  • Studio's user manual names the xArm 6 among the arms it covers9.
  • Studio is the graphical route. For the others, the product page says the Python and C++ SDK (a software kit for your own programs) is open source, and ROS and ROS2 packages are available1011.

UFACTORY Studio

  • Studio is a graphical application for controlling the arm. With it you set parameters, move the arm from the screen in Live Control, and build a motion by dragging and dropping Blockly blocks10.
  • Blockly lets you program the arm without writing code12.
  • You open Studio by typing the control box's IP address followed by :18333 into a browser, for example 192.168.1.201:1833313.
  • Studio runs inside the control box, so there is nothing to install4. Chrome, Firefox, Safari and Chromium-based Edge are listed as compatible14.

The network

  • The manual gives four ways to connect the control box. The recommended one connects it straight to your computer. The others go through a router or a network switch15.
  • One of the router options puts the computer on Wi-Fi. It is not recommended, because of wireless delay and packet loss15.
  • The arm's default address is in the range 192.168.1.xxx, and your computer must be on the same network segment as the control box16.

Wires to other machines

  • Besides the network, the control box has its own inputs and outputs. There are 8 configurable and 8 general digital inputs, the same number of digital outputs, 2 analog inputs, 2 analog outputs and one RS-485 port2.
  • They can be used with equipment such as pneumatic relays, PLCs and emergency stop buttons. All I/O must meet the manual's electrical specifications5.

The tool end has its own connector

  • At the tool end there is a 12-pin connector that supplies power and control signals to grippers and sensors17.
  • The tool and gripper connected there must not cause danger when power is cut, such as a part dropping from the tool18.

The rule you must never break

  • Never connect a safety signal to a non-safety PLC, an ordinary controller for factory machines. The manual warns that doing so may cause serious injury or death, because the safety stop function may not work19.
  • Section 7 teaches the safety wiring. Whatever is wired, stay out of the arm's working area while it runs, and do not rely on a safeguard nobody has confirmed20.

Check yourself

Answer, then check. Each option has its own feedback, and nothing is scored.

q-s08-b-01 How do you open UFACTORY Studio for the xArm 6?
  1. Check option (a)

    Correct. Right. Studio runs inside the control box, so there is nothing to install.134

  2. Check option (b)

    Not this one. No dedicated teach pendant for the xArm 6 is documented. Studio is reached through a web browser instead.2114

  3. Check option (c)

    Not this one. The manual does not recommend a Wi-Fi link, because of delay and packet loss. Connecting straight to the computer is the recommended method.15

q-s08-b-02 Which route lets you program the arm without writing code?
  1. Check option (a)

    Correct. Yes. Blockly programs the arm by dragging and dropping code blocks.12

  2. Check option (b)

    Not this one. Python is one of the routes UFACTORY lists; its SDK is installed with pip.122

  3. Check option (c)

    Not this one. ROS is another route UFACTORY lists alongside Python and C++; the product page says ROS and ROS2 packages are available.111

q-s08-b-03Safety A door switch's safety signal needs to reach the arm. Can it go through the conveyor's ordinary PLC?
  1. Check option (a)

    Not this one. The manual warns never to connect a safety signal to a non-safety PLC: an invalid safety stop function may result in serious injury or death.19

  2. Check option (b)

    Correct. Right. The control box has two fixed safety inputs: an emergency stop input and a protective stop input.1923

2Novice

The routes, and what the I/O can do

For: Someone who will work near or with the cell: operator, trainee technician
Kind of task: Explain and sequence: put steps in order, match parts to their functions

In this part you see what each programming route offers, how the arm sits on the network, and what the control box and tool-end wiring can be set up to do. It is for someone who will work near the cell or connect a simple device to it.

What each route offers

  • Blockly's toolbar can convert a block program to Python code12.
  • No dedicated teach pendant for the xArm 6 is documented. The sources describe Studio, the SDKs and hand teaching21.
  • The Python SDK is installed from PyPI with pip install xarm-python-sdk, and only Python 3 is supported22.
  • The ReadMe of xarm_ros2, UFACTORY's ROS 2 package, says its quick-start instructions are based on the xArm 624.

On the network

  • Studio's Device Info page shows the arm's IP address, subnet mask, broadcast address and default gateway. If you change the IP address, the manual says to mark it on the control box25.

What the control box inputs and outputs can be set to do

  • Each configurable input CI0-CI7 can be set as General Input, Stop Moving, Safeguard Reset, Offline Task, Manual Mode, Reduced Mode or Enable Robot. The general inputs DI0-DI7 support the same list except Stop Moving, Safeguard Reset and Reduced Mode26.
  • Each output can be a General Output, or as a status signal: Motion Stopped, Robot Moving, Error, Warning, Collision, Manual Mode, Reduced Mode, Offline Task Running, Robot Enabled, or Emergency Stop is Pressed27.
  • Three input functions act on the arm. Offline Task triggers Blockly projects, Enable Robot enables the arm, and Manual Mode lets the arm be dragged freely while the input stays low28.
  • Configured functions are triggered by a low-level signal. A Blockly or SDK program may use an input freely only when it is set as General Input. For example, if CI0 is an offline task, it should not be used in any program29.
  • Out of the box, the digital inputs read high, the digital outputs are low, and the analog outputs sit at 0 V, with a range of 0-10 V30.

Wiring it to another machine

  • Digital I/O can talk to other machines or PLCs if both sides share a common GND (0 V) and the other machine uses open-drain outputs. An I/O cable to other equipment must not be longer than 30 m unless extension testing shows a longer one works3.

The tool-end connector in detail

  • The connector's pins: +24 V on pins 1-2, GND on 3-4, a user RS-485 pair on 5-6, tool outputs TO0 and TO1 on 7-8, tool inputs TI0 and TI1 on 9-10, and analog inputs AI0 and AI1 on 11-1231.
  • Studio's End Effector IO page shows the tool I/O and refreshes at 5 Hz32.

Stopping from the screen is a software stop

  • Studio's STOP button stops the arm at once and clears all cached commands. It is a software stop, and power stays on33.
  • This project's advice: do not count a software stop as an emergency stop or safeguard in the cell's risk assessment, a concern Section 7 takes up34.

The simulated arm is not a separate arm

  • Studio can switch to a simulated arm, but a real arm must still be connected. The real arm does not move, yet settings made in simulation apply to it35.
  • Studio also says that in simulation the unlock-joint button unlocks the real arm's joints36.

Check yourself

Answer, then check. Each option has its own feedback, and nothing is scored.

q-s08-n-01 The conveyor's controller must start a stored Blockly program by sending a signal to one of the control box inputs. Which function should that input have?
  1. Check option (a)

    Correct. Right. An input set as Offline Task triggers Blockly projects.2837

  2. Check option (b)

    Not this one. Enable Robot enables the arm. It does not start a program; Offline Task does.28

  3. Check option (c)

    Not this one. General Input is for an input your own Blockly or SDK program reads. Triggering stored projects is the Offline Task function.2928

  4. Check option (d)

    Not this one. A Manual Mode input lets the arm be dragged freely while the input stays low. It starts no program.28

q-s08-n-02 Input CI0 is configured as Offline Task. Can your Blockly program also read CI0?

About:29

  1. Check option (a)

    Not this one. An input can be used freely in a program only when it is set as General Input. If CI0 is configured as an offline task, it should not be used in any program.29

  2. Check option (b)

    Correct. Right. Otherwise the functions conflict.29

  3. Check option (c)

    Not this one. Converting Blockly to Python changes nothing here: the rule covers Blockly and SDK programs alike.2912

q-s08-n-03Safety You switch UFACTORY Studio to the simulated arm to try some new settings. What happens to the real arm?
  1. Check option (a)

    Not this one. Simulation mode still needs a real arm connected, and settings made in simulation apply to the real arm.35

  2. Check option (b)

    Correct. Right. Treat simulation mode as working on the real arm.3536

  3. Check option (c)

    Not this one. In simulation the real arm does not move. The risk is that settings and joint unlocking still reach it.3536

3Intermediate

Modes, electrical detail and error handling

For: Someone who will set up, program or maintain the arm: technician, student engineer
Kind of task: Apply: work through written scenarios that need a decision (which mode, which setting, what to do about this error), with feedback on each choice

In this part you follow a Python command to the arm, learn the modes and states that decide whether it moves, the electrical limits of the wiring, and the codes the arm sends back when something goes wrong. It is for someone who will set up, program or maintain the arm.

How a Python SDK command reaches the arm

  1. Your program creates an XArmAPI object, imported from xarm.wrapper, and passes an IP address as its port parameter38.
  2. The control box is in mode 0, position control, by default after start-up. Setting state 0 clears the error code, and the reported state then switches to 2, ready39.
  3. In mode 0, set_servo_angle makes point-to-point joint moves and set_position makes straight-line Cartesian moves40.
  4. The call returns a code, and 0 means success41.
  • The SDK's configuration sets its control port to 502 and its report ports to 30001, 30002 and 3000342.
  • The Python SDK and Blockly use degrees for joint angles and for roll, pitch and yaw, while the communication protocol uses radians. X, Y and Z are in millimetres in all three43.

Modes and states

  • The controller has 7 motion modes and 6 states, which correspond to the SDK calls set_mode() and set_state()44.
  • Mode 1 is servo mode: set_servo_angle_j moves to each joint target at the fastest speed, with no buffer, running only the latest target received45.
  • Mode 2 is manual mode, for dragging the arm to teach it. A request for mode 2 from any other non-zero mode first switches to mode 0, and takes effect only on a second command46.
  • State 3 pauses a motion and state 0 resumes it. State 4 stops the arm and ends any execution at once; the arm then takes no new command until it is set back to STANDBY. The controller also switches to state 4 by itself when any error occurs47.
  • State 5 is entered by itself when a critical setting changes, such as the mode, payload, TCP offset or collision sensitivity, and the arm takes no command until state 0 is set. State 6 is a decelerated stop48.
  • The sources name state 2 differently: the SDK's list calls it "sleeping", while the Studio manual says the arm is ready to receive and execute commands49.

Other ports on the same controller

  • Studio's Modbus TCP page sends standard Modbus TCP commands to the controller's IP address on port 502, which cannot be changed50.
  • The Developer Manual gives the automatic report rates: port 30003 at 100 Hz, and ports 30001 and 30002 at 5 Hz51.

Electrical limits of the control box I/O

  • The digital I/O runs from the internal 24 V supply by default, which gives 23-30 V at up to 1.8 A. An external supply for more current must give 20-30 V, up to 3 A52.
  • The digital outputs are NPN: an output that is on pulls its terminal to GND. Each is rated up to 100 mA, with no current protection, and going past the specified values may cause permanent damage53.
  • The digital inputs have a weak pull-up, so an unconnected input reads high. An input is ON at 0-5 V and OFF at 15-30 V54.
  • The analog I/O works at 0-10 V with 12-bit resolution, and each analog output can supply up to 20 mA55.

Electrical limits of the tool I/O

  • The tool connector supplies 20-30 V at up to 1800 mA56.
  • Tool inputs work the other way round from the controller's: a pull-down makes an unconnected tool input read low. Logic low is at most 1.0 V and logic high at least 1.6 V5754.
  • Tool digital outputs are NPN open-collector, sinking up to 100 mA, with no current protection. A protection diode is strongly recommended for inductive loads58.
  • The manual's tool connector has two digital inputs, TI0 and TI1, two digital outputs, TO0 and TO1, and two analog inputs, AI0 and AI1, beside 24 V, ground and one RS-485 pair31.
  • The sources also disagree on the end-effector protocol: one manual table says Modbus TCP, while the Developer Manual says Modbus RTU59.

When something goes wrong

  • Errors and warnings are not pushed to you: they come back in the reply to your next command. After an error the arm stops at once, drops its cached commands, and the error must be cleared by hand60.
  • UFACTORY's recovery through the SDK is three calls: clean_error(), then motion_enable(true), then set_state(0)61.
  • API code -1 means the arm is not connected and -2 that it is not ready. Codes 1 and 2 mean uncleared errors or warnings, and 9 that the state is not ready to move41.
  • Studio prefixes codes: C for control box errors, S for joint servo errors and A for Python SDK codes. Controller error code C1 is the control box emergency stop button, C2 the control box emergency I/O, and C3 the three-state switch's emergency stop62.
  • C22 is a self-collision, C23 a joint past its limit, C24 speed past its limit, C35 the safety boundary and C37 abnormal motion in manual mode63.

Check yourself

Answer, then check. Each option has its own feedback, and nothing is scored.

q-s08-i-01 A Python SDK call returns 9. What does that mean?

About:41

  1. Check option (a)

    Correct. Right. Codes 1 and 2 would mean uncleared errors or warnings.41

  2. Check option (b)

    Not this one. Not connected is API code -1, and -2 means not ready.41

  3. Check option (c)

    Not this one. Every SDK call returns a code, and success is 0, not 9.41

  4. Check option (d)

    Not this one. That is controller error code C1, from a different table: Studio prefixes Python SDK codes with A.62

q-s08-i-02 Nothing is connected to a control box digital input, or to a tool digital input. What does each one read?
  1. Check option (a)

    Not this one. The controller input reads high because of its weak pull-up, but the tool input has a pull-down and reads low.5457

  2. Check option (b)

    Correct. Right. The controller inputs have a weak pull-up and the tool inputs a pull-down.5457

  3. Check option (c)

    Not this one. Only the tool input reads low. The controller input has a weak pull-up, so a floating input reads high.5457

  4. Check option (d)

    Not this one. It is the other way round: pull-up on the controller inputs, pull-down on the tool inputs.5457

q-s08-i-03Safety You press STOP in UFACTORY Studio and the arm stops. Is the arm's power now off?
  1. Check option (a)

    Not this one. Studio's STOP is a software stop: it stops the arm and clears cached commands, but the power stays on.33

  2. Check option (b)

    Correct. Right. The emergency stop button removes the arm's power within 300 ms.3364

  3. Check option (c)

    Not this one. emergency_stop() is a sequence of state commands, set_state(4), motion_enable(True), set_state(0). It is a software stop too.3334

4Expert

Choosing an interface

For: Someone who designs, integrates or changes the cell: integrator, engineer, agent developer
Kind of task: Analyse and decide: weigh trade-offs, resolve contradictions, critique a configuration

In this part you weigh the interfaces: how fast each is, who else must reach the arm, what each lets you read back, and how firm the evidence is. It is for someone who designs, integrates or changes the cell, including an agent that will drive it.

The candidates

  • Studio and Blockly: the graphical application, for parameters, Live Control and Blockly programs10.
  • Python SDK: its XArmAPI class takes an IP address as its port parameter, and its control port is 5023842.
  • The private protocol underneath: the Developer Manual calls it "Private Modbus-TCP", on default TCP port 502, with 0x00 0x02 as its only protocol identifier for now65.
  • ROS 2: the xArm 6 driver is started with ros2 launch xarm_api xarm6_driver.launch.py robot_ip:=<controller IP>, and its services and topics sit under a hardware namespace that defaults to xarm66. MoveIt launch files exist for a simulated xArm 6 and for the real arm67.
  • Modbus TCP: standard Modbus TCP commands on port 502 at the controller's address50.
  • Discrete I/O: the control box's wired inputs and outputs, whose input functions include Offline Task and Enable Robot28.

Rate and latency

  • In servo mode, mode 1, set_servo_angle_j runs only the latest target received, with no buffer, at the fastest speed of 180°/s. The control box accepts up to 250 Hz and loses commands sent faster. UFACTORY suggests smoothed, interpolated points, preferably at 100 Hz or 200 Hz, and warns not to give a distant target at once45.
  • For reading state, the Developer Manual gives port 30003 at 100 Hz and ports 30001 and 30002 at 5 Hz51. The 100 Hz report carries the motion state and mode, the number of cached commands, joint angles, the arm's position and attitude, and joint torque68.
  • Queued commands behave differently. By default set_cgpio_digital puts an output change into the motion queue, and sync False applies it at once, from firmware 2.4.10169. Warning 11 means the command queue is full70.

Who else must talk to the arm

  • Stored Blockly projects are started over Modbus TCP by writing up to 16 holding registers from address 0x30 with function code 0x10. Each value picks a project by number, and the projects run automatically in order71.
  • The same can be done with wiring: an input set as Offline Task triggers Blockly projects, on CI0-CI7 or DI0-DI737.
  • Over Modbus TCP, coils and discrete inputs 0-31 are the controller's digital outputs and inputs, and 32-39 the tool's72.

What each route lets you read back

  • Over Modbus TCP, holding registers 32 and 33 hold the robot mode and state, and input registers 32 and 33 the error and warning codes73.
  • Over the SDK, get_err_warn_code() returns the current codes, and with reporting on, a callback runs when either code changes74.
  • The SDK's get_tgpio_digital and get_tgpio_analog read the tool inputs, and set_tgpio_digital sets the tool outputs75.

How firm the evidence is

  • Every Modbus TCP register and function-code record here is Inferred. The ModbusTCP manual they come from names no robot model; the Studio manual, which lists the xArm 6, says the controller accepts standard Modbus TCP on port 502, and the UFACTORY sources written for the xArm 6 do not give the register map7650.
  • Reading those registers on a real controller would confirm them73.
  • The xarm_ros2 quick-start instructions are based on the xArm 624.

A worked selection for an agent

An agent driving the arm needs a path for its commands, one for signals from the other stations, and one for safety. Advice this project gives is marked as this project's, not UFACTORY's.

The agent's commands: Python SDK, position mode

  • This project's advice: command motion through the Python SDK in mode 0, rather than streaming servo-mode targets, and read state from its automatic reports77.
  • The project's reasoning: in mode 0, joint and straight-line moves are complete commands, so each can be checked before it is sent7740.
  • The cost: servo mode, which runs only the latest target at the fastest speed, is not used7745. Errors come back only in the reply to the next command, so state is best read from the report ports6077.
  • The project infers that an agent driving the SDK could change collision sensitivity, including to 0, which disables collision detection, and also collision rebound, reduced mode and the safety boundary. Under the manual's warning, that would make a new system whose risk assessment must be updated78.
  • The calls exist: set_collision_sensitivity takes 0 to 5, and save_conf() keeps settings across a restart79. set_reduced_mode and set_reduced_tcp_boundary need firmware 1.2.0 or above, and set_fence_mode and set_collision_rebound 1.2.11 or above80.
  • This project's advice: deny the agent those calls, or gate them behind human approval81.

Signals from other stations

  • The documented pieces: an input read by a program must be set as General Input29, wired digital I/O needs a common GND and open-drain outputs on the other side3, and starting projects over Modbus TCP relies on an Inferred register map71.

Safety: hardwired, outside the agent

  • This project's advice: treat collision detection, the safety boundary and reduced mode as configurable controller functions, not validated safeguards. They must not replace risk-assessed protective devices wired to the EI and SI inputs82.
  • UFACTORY provides two fixed safety inputs, an emergency stop input and a protective stop input, in redundant pairs kept in two separate branches23. It warns never to connect a safety signal to a non-safety PLC19.
  • The UFACTORY sources do not say whether the software safety functions are enforced independently of the motion-command path83.
  • The SDK's emergency_stop() is set_state(4), then motion_enable(True), then set_state(0), and it does not clear errors. Studio's STOP is a software stop, and power stays on33.
  • The control box's emergency stop button, by contrast, removes the arm's power within 300 ms64.
  • This project's advice: never count a software stop as an emergency stop or safeguard in the cell's risk assessment34.

Sources disagree

  • On C31 and C33: the Studio manual calls C31 abnormal current in the arm and C33 a controller IO error; the SDK calls 31 a collision-caused abnormal current and 33 a controller GPIO error; the Developer Manual calls C31 collision-caused and C33 abnormal current.84.
  • On state 2: the SDK calls it sleeping, the Studio manual ready49.
  • On the end-effector protocol: Modbus TCP in one manual table, Modbus RTU in the Developer Manual59.

Simulation is not a substrate

  • This project's advice: do not use Studio's simulated arm as the simulation substrate for agent work. It needs a real arm connected, its settings apply to the real arm, and its unlock-joint button unlocks the real joints85.

Check yourself

Answer, then check. Each option has its own feedback, and nothing is scored.

q-s08-e-01 A cell PLC must start S6's stored program and read its error code over the network. Which interface fits, and why does this platform mark that evidence Inferred?
  1. Check option (a)

    Correct. Right. Stored projects are started through holding registers from 0x30, and input register 32 holds the error code. Reading those registers on a real controller would confirm them.717350

  2. Check option (b)

    Not this one. An Offline Task input can trigger Blockly projects, but an output reports only a fixed status such as Error. It cannot carry the error code itself.2827

  3. Check option (c)

    Not this one. Studio is a graphical application used in a web browser. The documented network route for starting stored projects is Modbus TCP.101471

q-s08-e-02 The agent needs the arm's state at 100 Hz. Which automatic report port should it read?

About:51

  1. Check option (a)

    Not this one. Port 30001 is the normal report, sent at 5 Hz.4251

  2. Check option (b)

    Not this one. Port 30002 is the rich report, also sent at 5 Hz.4251

  3. Check option (c)

    Correct. Right. The Developer Manual gives the report on port 30003 at 100 Hz, carrying the motion state and mode, joint angles, position and joint torque.5168

q-s08-e-03Safety The agent will call the SDK's emergency_stop() when it sees a hazard. Can S6's risk assessment count that as an emergency stop?
  1. Check option (a)

    Not this one. Despite its name, it is the sequence set_state(4), motion_enable(True), set_state(0), and it does not clear errors. It is a software stop.3386

  2. Check option (b)

    Correct. Right. This project also advises that software safety functions must not replace risk-assessed protective devices wired to the EI and SI inputs.3482

  3. Check option (c)

    Not this one. Wiring does not change what it is: a software stop. And the manual warns never to connect a safety signal to a non-safety PLC, because the safety stop function may not work.3419

Not settled

Open questions · 14

What the sources do not settle for this section. Nothing here is papered over with a plausible number.

  • Kind: Gap

    No dedicated teach pendant for the xArm 6 is documented in the xArm manual or the product page: they describe programming through the browser-based UFACTORY Studio, the SDKs and hand teaching.

    See reference 21
  • Kind: Contradiction

    The Python SDK and the Studio manual name state 2 differently: the SDK's state list calls it 'sleeping', while the Studio manual says the robot is ready to receive and execute commands.

    See reference 49
  • Kind: Contradiction

    Sources disagree on the xArm end-effector communication protocol: the online xArm manual's common specification table (and its Gripper table) say Modbus TCP, while the xArm Developer Manual's common specifications and gripper table say Modbus RTU, and the online manual's own Tool RS485 section configures standard Modbus RTU devices.

    See reference 59
  • Kind: Gap

    No fetched UFACTORY source says whether the software safety functions (collision detection, safety boundary, reduced mode) are enforced independently of the motion-command path. Studio's description of the safety boundary mentions only the tool centre point, and no source says whether the arm's links or the tool body are checked against it.

    See reference 83
  • Kind: Contradiction

    Sources disagree on controller codes C31 and C33. UFACTORY Studio's manual calls C31 'Abnormal current in the robotic arm' and C33 'Controller IO Error'; the Python SDK code list calls 31 'Collision Caused Abnormal Current' and 33 'Controller GPIO error'; the xArm Developer Manual calls C31 'Collision Caused Abnormal Current' and C33 'Abnormal current in the robotic arm'.

    See reference 84
  • Kind: Gap

    No Ethernet connection, camera port, force-torque sensor interface or user button at the xArm 6's tool end is described in the xArm manual or the product page; the product page lists the end-effector I/O as 2 DI, 2 DO, 2 AI and 1 RS-485.

    See reference 90
  • Kind: Gap

    The IP address of the xArm 6 control box at S6, and how the S6 network is laid out (direct PC link, router or switch), are not in the sources; the manuals give only the default range 192.168.1.xxx and the reset address 192.168.1.111.

    See reference 91
  • Kind: Gap

    Which hardware version the S6 xArm 6 is has not been recorded. The online xArm manual's Preface and Hardware Installation chapter state they apply to models XF1305, XI1305 and XS1305, so the sources do not settle whether the manual's descriptions fit the S6 arm.

    See reference 92
  • Kind: Gap

    What tool inputs TI2-TI4 and outputs TO2-TO4 are on the xArm 6 is not documented: UFACTORY Studio lists TI0-TI4 and TO0-TO4, but the xArm manual's tool connector defines only TI0, TI1, TO0 and TO1.

    See reference 93
  • Kind: Gap

    Whether the xArm 6 has an Ethernet connection at the end flange is not answered by the sources fetched: the xArm manual's Robotic Electrical Interface chapter has an 'End Flange' heading with no text, and its tool I/O pins carry no Ethernet.

    See reference 94
  • Kind: Gap

    The physical I/O that will carry signals between S2 and S4 (and the other stations) is not defined. It may differ from the simulation's signals.

    See reference 95
  • Kind: Gap

    What S2 publishes to the other agents or the hub is not defined: placement confirmations, S3 slot updates, faults and error codes, its own ready or busy state, and whether any work-order or traceability data passes through S2 (Q9, Q14).

    See reference 96
  • Kind: Gap

    Whether camera C1's or S11's output reaches S2 or the shared hub, and in what form, is not documented.

    See reference 97
  • Kind: Contradiction

    Sources disagree on the xArm's end-effector communication protocol: the manual's common specification table says Modbus TCP, but the product page says Modbus RTU over RS-485, and the manual's own Tool RS485 section configures standard Modbus RTU end effectors. The manual's Gripper table likewise pairs RS-485 communication with a 'Modbus TCP' protocol.

    See reference 98
Provenance

References · 98

Each number in the text points here. Every entry states its confidence class in words and keeps its evidence one click away. How to read the labels.

Key to the badges
Confidence: Verified
A manufacturer or IntelliMake document says so, or it was observed directly. It does not mean anyone measured it at S6.
Confidence: Inferred
Reasoned from Verified facts. The reasoning is printed with the record.
Confidence: Assumed
Plausible but untested. The record says how it would be checked.
Kind: Gap
Not known. No figure or answer is given in its place.
Kind: Contradiction
Sources disagree. Both sides are shown, and the site does not pick one silently.
Kind: Recommendation
Project advice drawn from the records it cites. Not a fact about the machine and not a confidence class, so the filter never hides it.
Awaiting cell access
Awaiting cell access: could be confirmed or corrected once the physical S6 cell can be observed.
This project's simulation and agent design, not the physical cell
This project's simulation and agent design, not the physical cell.
  1. Confidence: Verifiediface-501

    The record says

    UFACTORY's common specifications for the xArm 5, 6 and 7 list four programming routes: UFACTORY Studio, Python, C++ and ROS.

    Evidence · 2 citations

    8.1 xArm5/xArm6/xArm7 Common Specifications

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · Section heading

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Programming | UFACTORY Studio, Python/C++/ROS

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · 8.1 table, 'Programming' row

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  2. Confidence: Verifiediface-535

    The record says

    The xArm 5/6/7 AC and DC control boxes each have 8 configurable digital inputs (CI) and 8 general digital inputs (DI), 8 configurable (CO) and 8 general (DO) digital outputs, 2 analog inputs, 2 analog outputs and 1 RS-485 master port.

    Evidence · 3 citations

    8.1 xArm5/xArm6/xArm7 Common Specifications

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · Section heading

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    I/O Interface | 8×CI+8×DI(Digital In) 8×CO+8×DO(Digital Out)

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · 8.1 controller table, 'I/O Interface' row (AC and DC columns identical)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    2×AI(Analog In) 2×AO(Analog Out) 1×RS-485 Master

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · 8.1 controller table, 'I/O Interface' row

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  3. Confidence: Verifiediface-547

    The record says

    The xArm manual says digital I/O can be used to communicate with other machines or PLCs if a common GND (0 V) is established and the machine uses open-drain outputs. An I/O cable from the control box to other equipment must not exceed 30 m unless extension testing shows it works.

    Evidence · 2 citations

    If general GND (0V) is established and the machine uses open-drain output technology, digital I/O and other can be used device communication

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.2.3 Communicate with other Machines or PLCs (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    The length of the I/O cable that used to connect the Control Box with other mechanical and plant equipment must not exceed 30 meters unless it is feasible after the extension testing.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.1 Electrical Alarms and Cautions

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  4. Confidence: Verifiedcomp-535

    The record says

    UFACTORY Studio is web-based software that runs inside the control box, so no installation is needed and any computer with a browser can use it.

    Evidence · 1 citation

    UFACTORY Studio is a web-based software running inside the control box, which means no additional installation needed before running the robot. Any computer with a browser has the access after 1 minute hardware connection.

    UFACTORY xArm product page · UFACTORY · Tech Specs > Software (xArm product page, which covers the xArm 5, 6 and 7)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  5. Confidence: Verifiediface-536

    The record says

    The xArm manual says the control box I/O can be used with many devices, including pneumatic relays, PLCs and emergency stop buttons, and that all I/O must comply with its electrical specifications.

    Evidence · 2 citations

    The I/Os are extremely flexible and can be used in many different devices, including pneumatic relays, PLCs, and emergency stop buttons.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 Controller Electrical IO (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    All the I/O must comply with the specifications.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 Controller Electrical IO

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  6. Confidence: Verifiediface-522

    The record says

    UFACTORY's common specifications for the xArm 5, 6 and 7 give the arm's communication protocol as 'Private TCP(custom)', and both the AC and DC control boxes communicate over Ethernet.

    Evidence · 3 citations

    8.1 xArm5/xArm6/xArm7 Common Specifications

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · Section heading

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Robotic Arm Communication Protocol | Private TCP(custom)

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · 8.1 table, 'Robotic Arm Communication Protocol' row

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Communication Method | Ethernet | Ethernet

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · 8.1 controller table, 'Communication Method' row

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  7. Confidence: Verifiedcomp-711

    The record says

    TCP stands for Tool Center Point. With no TCP offset set, the default tool coordinate system sits at the flange centre; a TCP offset, in mm, moves it to the actual tool point.

    Evidence · 3 citations

    TCP: Tool Center Point.

    UFACTORY Studio User Manual (online), 2. Glossary · UFACTORY · Glossary, 'TCP' (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    If the TCP offset is not set, the default tool coordinate system is located at flange center.

    UFACTORY Studio User Manual (online), 2. Glossary · UFACTORY · Glossary, 'Tool Coordinate System'

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Set the relative offset between the default tool coordinate system at flange center and the actual tool coordinate system, with distance unit of mm.

    UFACTORY Studio User Manual (online), 2. Glossary · UFACTORY · Glossary, 'TCP Offset'

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  8. Confidence: Verifiedint-009

    The record says

    S6 is a UFactory xArm 6 cobot that handles parts after processing, routing them to inspection, rework or shipping.

    Evidence · 1 citation

    Handles parts after proces. routing them to inspection, rework, or shipping.

    IntelliMake Phase 1 Factory: Autonomous Production Demonstrator (infographic) · IntelliMake.org · S6 station label and description

    © IntelliMake.org. Used with permission; redrawn for this platform. · Cleared for use by its owner · retrieved 2026-09-21

  9. Confidence: Verifiediface-502

    The record says

    The UFACTORY Studio user manual lists the xArm 6 among the models it applies to.

    Evidence · 1 citation

    Apply to model: xArm5, xArm6, xArm7, UFACTORY 850, Lite6.

    UFACTORY Studio User Manual (online), 1. Preface · UFACTORY · 1. Preface, 'Apply to model'

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  10. Confidence: Verifiediface-503

    The record says

    UFACTORY Studio is a graphical application for controlling the robotic arm: with it a user can set parameters, move the arm in Live Control, and build a motion trajectory by dragging and dropping Blockly code blocks.

    Evidence · 2 citations

    UFACTORY Studio is a graphical user application for controlling the robotic arm.

    UFACTORY Studio User Manual (online), 1. Preface · UFACTORY · 1. Preface, first paragraph

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    With this application, you can set parameters, move the robotic arm in Live control, and create a motion trajectory by simply drag and drop the code blocks of Blockly.

    UFACTORY Studio User Manual (online), 1. Preface · UFACTORY · 1. Preface, first paragraph

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  11. Confidence: Verifiedcomp-536

    The record says

    The xArm can be programmed with UFACTORY Studio or with Python, C++ and ROS (the manual gives this in common for the xArm 5, 6 and 7); the product page says the Python/C++ SDK is open source and ROS/ROS2 packages are available.

    Evidence · 2 citations

    Programming UFACTORY Studio, Python/C++/ROS

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · 'Programming' row (section '8.1 xArm5/xArm6/xArm7 Common Specifications': applies to all three models)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Fully functional open-source Python/C++ SDK provides more flexible programming. ROS/ROS2 packages are ready-to-go.

    UFACTORY xArm product page · UFACTORY · Overview, 'Powerful and open source SDK at your fingertips' (xArm product page, which covers the xArm 5, 6 and 7)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  12. Confidence: Verifiediface-506

    The record says

    Blockly, in UFACTORY Studio, programs the arm by dragging and dropping code blocks without writing code, and its toolbar can convert a Blockly program to Python code.

    Evidence · 2 citations

    Blockly is a graphical programming tool that can be programmed to control the robotic arm by dragging and dropping code blocks without the need to write the code manually.

    UFACTORY Studio User Manual (online), 5. Blockly · UFACTORY · 5. Blockly, introduction (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Convert to Python:Convert to Python code.

    UFACTORY Studio User Manual (online), 5. Blockly · UFACTORY · 5.1 Interface Overview

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  13. Confidence: Verifiediface-505

    The record says

    UFACTORY Studio is opened by entering the control box's IP address followed by ':18333' in a browser, for example 192.168.1.201:18333.

    Evidence · 3 citations

    Enter 'IP+:18333' on the browser to access UFACTORY Studio.

    UFACTORY Studio User Manual (online), 3. Connection · UFACTORY · 3.2 Software Connection (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    The IP of control box is 192.168.1.201

    UFACTORY Studio User Manual (online), 3. Connection · UFACTORY · 3.2 Software Connection, example

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Access link: 192.168.1.201:18333

    UFACTORY Studio User Manual (online), 3. Connection · UFACTORY · 3.2 Software Connection, example

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  14. Confidence: Verifiediface-504

    The record says

    UFACTORY Studio is reached through a web browser without installing any software; the manual lists Chrome, Firefox, Safari and Chromium-based Microsoft Edge as compatible.

    Evidence · 1 citation

    UFACTORY Studio can be accessed through a browser directly without installing any software. Now it's compatible with browsers: Google Chrome/ Firefox/ Safari/ Microsoft Edge(Chromium kernel).

    UFACTORY Studio User Manual (online), 1. Preface · UFACTORY · 1. Preface, second paragraph

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  15. Confidence: Verifiediface-529

    The record says

    The xArm manual lists four ways to network the control box: directly to the PC (the recommended method), through a router by Ethernet cable, through a router with the PC on Wi-Fi, or through a network switch. The Wi-Fi option is not recommended because of delay and packet loss.

    Evidence · 5 citations

    There are four ways of network settings for the robotic arm.

    UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.2.3.3 Controller Networking (chapter applies to models XF1305, XI1305, XS1305; text not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    The control box is directly connected to the PC(Recommended connection method).

    UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.2.3.3 Controller Networking

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    The control box, PC and router are connected by Ethernet cable.

    UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.2.3.3 Controller Networking

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Note: It is not recommended because of the delay and packet loss of wireless connection.

    UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.2.3.3 Controller Networking

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    The control box, PC and network switch are connected by Ethernet cable.

    UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.2.3.3 Controller Networking

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  16. Confidence: Verifiediface-530

    The record says

    The arm's default IP address is in the 192.168.1.xxx range, and the Studio manual says to make sure the PC and the control box are on the same network segment.

    Evidence · 1 citation

    The default IP of robotic arm is 192.168.1.xxx, please make sure that the IP address of the PC and control box are on the same network segment.

    UFACTORY Studio User Manual (online), 3. Connection · UFACTORY · 3.2 Software Connection (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  17. Confidence: Verifiediface-554

    The record says

    At the tool side of the xArm there is a 12-pin female avionic-socket industrial connector that supplies power and control signals to grippers and sensors on the tool.

    Evidence · 1 citation

    At the tool side of the robotic arm, there is an avionic socket 12-pin female industrial connector. This connector provides power and control signals for the grippers and sensors used on a particular robotic arm tool.

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 Tool IO (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  18. Confidence: Verifiediface-557

    The record says

    The xArm manual warns that the connected tool and gripper must not cause danger when power is cut, such as a workpiece dropping from the tool.

    Evidence · 1 citation

    Make sure that the connecting tool and the gripper do not cause any danger when the power is cut, such as dropping of the work-piece from the tool.

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 Tool IO, DANGER (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  19. Confidence: Verifiedsafety-544

    The record says

    The xArm manual warns never to connect a safety signal to a non-safety PLC, and says failure to follow this warning may result in serious injury or death due to an invalid safety stop function.

    Evidence · 1 citation

    Never connect a safety signal to a non-safety PLC.Failure to follow this warning may result in serious injury or death due to an invalid safety stop function.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.1 Electrical Alarms and Cautions, DANGER [series text: names no single model]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  20. Kind: RecommendationAwaiting cell accessThis project's simulation and agent design, not the physical cellsafety-599

    Project advice

    Until the S6 emergency stops, guarding, Control Box position and risk assessment are confirmed at the cell, act as though none of them exists: stay out of the xArm 6's working area while it runs, and do not rely on a safeguard nobody has confirmed.

    Awaiting cell access: this could be confirmed or corrected once the physical S6 cell can be observed.

    This is advice from this project, based on: safety-586 Gap, awaiting cell access safety-587 Gap, awaiting cell access safety-588 Gap, awaiting cell access safety-589 Gap, awaiting cell access safety-511 Verified

    Why: The manual says no people should be in the working area during operation, and none of the S6 safety provisions it calls for has been confirmed. Assuming they exist would put people at risk if they do not.

  21. Kind: Gapcomp-538

    Not known

    No dedicated teach pendant for the xArm 6 is documented in the xArm manual or the product page: they describe programming through the browser-based UFACTORY Studio, the SDKs and hand teaching.

    Evidence · 2 citations

    Web-based technology compatible with all major browsers.

    UFACTORY xArm product page · UFACTORY · Overview, 'Graphical interface for beginner-friendly programming' (xArm product page, which covers the xArm 5, 6 and 7)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Hand teaching, lightweight, space-saving and easy to re-deploy to multiple applications

    UFACTORY xArm product page · UFACTORY · Overview, 'Flexible deployment with safe feature' (xArm product page, which covers the xArm 5, 6 and 7)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  22. Confidence: Verifiediface-508

    The record says

    The xArm Python SDK is installed from PyPI with 'pip install xarm-python-sdk', and only Python 3 is supported.

    Evidence · 2 citations

    pip install xarm-python-sdk

    xArm-Python-SDK README · UFACTORY · Installation, 'Install from pypi' (SDK documentation is not model-specific)

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    Only Python 3 is supported.

    xArm-Python-SDK README · UFACTORY · Installation

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  23. Confidence: Verifiediface-548

    The record says

    The xArm manual warns never to connect a safety signal to a non-safety PLC, because an invalid safety stop function may result in serious injury or death. Its safety I/O exist in redundant pairs that must be kept in two separate branches, and there are two fixed safety inputs: an emergency stop input and a protective stop input.

    Evidence · 5 citations

    Never connect a safety signal to a non-safety PLC.Failure to follow this warning may result in serious injury or death due to an invalid safety stop function.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.1 Electrical Alarms and Cautions (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    All safety I/Os exist in pairs (redundancy) and must be kept in two separate branches.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.1 Safety IO(EISI)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    There are two fixed safety inputs:

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.1 Safety IO(EISI)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    The robotic arm emergency stop input is only used for the emergency stop of the device.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.1 Safety IO(EISI)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    The protective stop input is used for all types of safety protection.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.1 Safety IO(EISI)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  24. Confidence: Verifiediface-513

    The record says

    The ReadMe of UFACTORY's ROS 2 package xarm_ros2 says all its following (quick-start) instructions are based on the xArm 6, and xArm 5 or 7 users should use the proper parameters or file names.

    Evidence · 1 citation

    All following instructions will base on xArm6,please use proper parameters or filenames for xArm5 or xArm7

    xarm_ros2 ReadMe (humble branch) · UFACTORY · 5. Quick start, Reminder 3

    © UFACTORY Inc., xArm-Developer/xarm_ros2, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  25. Confidence: Verifiediface-532

    The record says

    UFACTORY Studio's Device Info page shows the arm's IP address, subnet mask, broadcast address and default gateway, and the manual says to mark a changed IP address on the control box.

    Evidence · 2 citations

    Display the IP address of the robotic arm, subnet mask, broadcast address, and default gateway.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.5.1 Device Info, Network Settings (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    If you change the IP address, be sure to mark it on the control box.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.5.1 Device Info

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  26. Confidence: Verifiediface-537

    The record says

    Controller inputs CI0-CI7 can be configured as General Input, Stop Moving, Safeguard Reset, Offline Task, Manual Mode, Reduced Mode or Enable Robot; DI0-DI7 support the same functions except Stop Moving, Safeguard Reset and Reduced Mode.

    Evidence · 1 citation

    Quote not shown (over 40 words). See the source at: 3.4 Configurable IO table, input functions (chapter text is not split by model).

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 Configurable IO table, input functions (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  27. Confidence: Verifiediface-538

    The record says

    Controller outputs CO0-CO7 and DO0-DO7 can each be configured as General Output or as a status signal: Motion Stopped, Robot Moving, Error, Warning, Collision, Manual Mode, Reduced Mode, Offline Task Running, Robot Enabled, or Emergency Stop is Pressed.

    Evidence · 2 citations

    Quote not shown (over 40 words). See the source at: 3.4 Configurable IO table, output functions (chapter text is not split by model).

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 Configurable IO table, output functions (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Manual Mode | Yes | Yes | Reduced Mode | Yes | Yes | Offline Task Running | Yes | Yes | Robot Enabled | Yes | Yes | Emergency Stop is Pressed | Yes | Yes

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 Configurable IO table, output functions

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  28. Confidence: Verifiediface-540

    The record says

    Three of the Studio controller input functions act on the arm through I/O: Offline Task triggers Blockly projects through I/O, Enable Robot enables the arm, and Manual Mode lets the arm be dragged freely while the input stays low.

    Evidence · 3 citations

    Offline Task: Offline Task can add multiple Blockly to be triggered through I/O.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.2 Controller IO, IO Function (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Enable Robot: Enable the robotic arm by triggering IO.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.2 Controller IO, IO Function

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Manual Mode: When set as Manual Mode, the robotic arm can be dragged freely when the input signal remains low level.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.2 Controller IO, IO Function

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  29. Confidence: Verifiediface-539

    The record says

    In UFACTORY Studio, configured input functions are triggered by a low-level signal. An input can be used freely in a Blockly or SDK program only when it is set as General Input, otherwise functions conflict; for example, if CI0 is configured as an offline task it should not be used in any program.

    Evidence · 2 citations

    The following functions (if configured), can be triggered by low-level input signals.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.2 Controller IO, IO Function (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Quote not shown (over 40 words). See the source at: 7.2.2 Controller IO, General Input.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.2 Controller IO, General Input

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  30. Confidence: Verifiediface-541

    The record says

    In UFACTORY Studio the controller digital inputs CI0-CI7 and DI0-DI7 read high by default, the digital outputs CO0-CO7 and DO0-DO7 are low by default, and the analog outputs AO0 and AO1 are 0 V by default (range 0-10 V).

    Evidence · 3 citations

    Digital Input: CI0-CI7, DI0-DI7, High level by default.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.2 Controller IO, IO State (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Digital Output: CO0-CO7, DO0-DO7, Low level by default.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.2 Controller IO, IO State

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Analog Output: AO0, AO1, 0V by default, [0-10V].

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.2 Controller IO, IO State

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  31. Confidence: Verifiediface-555

    The record says

    The xArm tool connector's pins: +24 V on pins 1-2, 0 V (GND) on 3-4, user RS-485 A/B on 5-6, tool outputs TO0/TO1 on 7-8, tool inputs TI0/TI1 on 9-10, and analog inputs AI0/AI1 on 11-12.

    Evidence · 6 citations

    1 | Brown | +24V (Power) | 7 | Black | Tool Output 0 (TO0)

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 Tool IO pin table, row 1/7 (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    2 | Blue | +24V (Power) | 8 | Grey | Tool Output 1 (TO1)

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 pin table, row 2/8

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    3 | White | 0V (GND) | 9 | Red | Tool Input 0 (TI0)

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 pin table, row 3/9

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    4 | Green | 0V (GND) | 10 | Purple | Tool Input 1 (TI1)

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 pin table, row 4/10

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    5 | Pink | User 485-A | 11 | Orange | Analog input 0 (AI0)

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 pin table, row 5/11

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    6 | Yellow | User 485-B | 12 | Light Green | Analog input 1 (AI1)

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 pin table, row 6/12

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  32. Confidence: Verifiediface-563

    The record says

    UFACTORY Studio's End Effector IO page refreshes at 5 Hz and lists tool digital inputs TI0-TI4 (low by default), outputs TO0-TO4 and analog inputs TAI0-TAI1 (0 V by default, 0-3.3 V).

    Evidence · 4 citations

    Update Frequency: 5HZ.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.1 End Effector IO (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Digital Input: TI0, TI1, TI2, TI3, TI4, low level by default

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.1 End Effector IO

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Digital Output: TO0, TO1, TO2, TO3, TO4.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.1 End Effector IO

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Robot Analog Input: TAI0, TAI1, 0V by default, [0-3.3V].

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.1 End Effector IO

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  33. Confidence: Verifiediface-597

    The record says

    UFACTORY Studio's STOP button stops the arm immediately and clears all cached commands; it is a software stop and power stays on. The SDK's emergency_stop() is set_state(4), then motion_enable(True), then set_state(0), and does not clear errors.

    Evidence · 3 citations

    STOP: The robotic arm will stop immediately and clear all cache commands. It's a software stop, the power is still on.

    UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.5 Enable & STOP button (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Emergency stop (set_state(4) -> motion_enable(True) -> set_state(0))

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · emergency_stop (SDK documentation is not model-specific)

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    1. This interface does not automatically clear the error.

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · emergency_stop, note 1

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  34. Kind: RecommendationThis project's simulation and agent design, not the physical cellsafety-596

    Project advice

    Do not count a software stop (Studio's STOP, SDK set_state(4) or SDK emergency_stop()) as an emergency stop or safeguard in the S6 risk assessment.

    This is advice from this project, based on: safety-548 Verified safety-549 Verified safety-550 Verified safety-538 Verified

    Why: Studio says its STOP is a software stop with power still on, and the SDK documents emergency_stop() as a sequence of state commands. The manual reserves the emergency stop function for the Control Box button and the redundant EI input.

  35. Confidence: Verifiediface-596

    The record says

    UFACTORY Studio can switch to a simulated arm, but both real and simulation modes need a real arm connected: in simulation the arm does not move, yet settings made there apply to the real arm.

    Evidence · 2 citations

    Switch to real or simulation robotic arm, both mode needs to connect to a real robotic arm.

    UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.6 Real & Simulation robotic arm (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    When switch to simulation robotic arm, the robot will not move but the settings will apply to real robotic arm.

    UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.6

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  36. Confidence: Verifiedsafety-528

    The record says

    UFACTORY Studio says that in simulated robotic arm mode the unlock-joint button also unlocks the real arm's joints; both the real and simulated modes need a real arm connected, and settings made in simulation mode apply to the real arm.

    Evidence · 3 citations

    In the 'simulated robotic arm mode', clicking the unlock joint button will also unlock the real joints of the robotic arm.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.4.2 Debugging Tools, Joint [general Studio text; the Studio manual says it applies to the xArm6]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Switch to real or simulation robotic arm, both mode needs to connect to a real robotic arm.

    UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.6 Real & Simulation robotic arm [general Studio text; the Studio manual says it applies to the xArm6]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    When switch to simulation robotic arm, the robot will not move but the settings will apply to real robotic arm.

    UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.6 Real & Simulation robotic arm [general Studio text; the Studio manual says it applies to the xArm6]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  37. Confidence: Verifiedops-564

    The record says

    A controller input configured as Enable Robot enables the arm when triggered, and one configured as Offline Task can trigger Blockly projects; both functions are available on CI0-CI7 and DI0-DI7.

    Evidence · 4 citations

    Enable Robot: Enable the robotic arm by triggering IO.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.2, IO Function [general Studio text; the Studio manual says it applies to the xArm6]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Offline Task: Offline Task can add multiple Blockly to be triggered through I/O.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.2, IO Function [general Studio text; the Studio manual says it applies to the xArm6]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Offline Task | Yes | Yes

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4, 'Configurable IO' table [series text: names no single model]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Enable Robot | Yes | Yes

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4, 'Configurable IO' table [series text: names no single model]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  38. Confidence: Verifiediface-509

    The record says

    The Python SDK's API wrapper is the XArmAPI class, imported from xarm.wrapper; its 'port' parameter is an IP address such as '192.168.1.185'.

    Evidence · 3 citations

    from xarm.wrapper import XArmAPI

    xArm-Python-SDK example 0000-template.py · UFACTORY · Example 0000-template.py, imports

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    The API wrapper of xArm

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · class XArmAPI, docstring (SDK documentation is not model-specific)

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    :param port: ip-address(such as '192.168.1.185')

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · class XArmAPI, __init__, parameter 'port'

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  39. Confidence: Verifiedops-545

    The record says

    The Control Box enters mode 0 (position control) by default after start-up. Setting state 0 puts the arm in STANDBY in the current mode and clears the error code, after which the reported state switches to 2 (ready).

    Evidence · 2 citations

    The control box enters this mode by default after startup.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 0: Position Control Mode [general Studio text; the Studio manual says it applies to the xArm6]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Set: configure the robot the be STANDBY state in corresponding mode, and clear the error code as well. Note: after this setting, the feedback state will switch to 2(REDDY) automatically.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.2 State 0 [general Studio text; the Studio manual says it applies to the xArm6]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  40. Confidence: Verifiediface-575

    The record says

    Mode 0, position control, is the mode the control box enters by default after start-up. In it, set_servo_angle makes point-to-point joint moves, set_position and set_position_aa make straight-line Cartesian moves, move_arc_lines inserts arcs between straight lines with continuous speed, and move_circle makes circular moves through three points.

    Evidence · 7 citations

    The control box enters this mode by default after startup.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 0 (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    To achieve the point-to-point motion of joint space (unit: degree/radian), the speed between each command is discontinuous. Python Example: set_servo_angle

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 0, Joint Motion

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    To achieve linear motion between Cartesian coordinates (unit: mm), the speed between each instruction is discontinuous. Python Example: set_position, set_position_aa

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 0, Linear Motion

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    inserting an arc between two straight lines for a smooth transition, and the speed between each command is continuous.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 0, Arc Linear Motion

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Python Example: move_arc_lines

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 0, Arc Linear Motion

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Circular motion calculates the trajectory of the spatial circle according to the three-point coordinates

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 0, Circular Motion

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Python Example: move_circle

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 0, Circular Motion

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  41. Confidence: Verifiediface-589

    The record says

    Every Python SDK call returns a code, where 0 means success; -1 means the arm is not connected, -2 that it is not ready (motion not enabled or state not set), 1 and 2 that errors or warnings have not been cleared, and 9 that the state is not ready to move.

    Evidence · 6 citations

    - 0: success

    xArm-Python-SDK API code description (doc/api/xarm_api_code.md) · UFACTORY · API Code (SDK documentation is not model-specific)

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    - -1: xArm is disconnect or not connect

    xArm-Python-SDK API code description (doc/api/xarm_api_code.md) · UFACTORY · API Code

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    - -2: xArm is not ready, may be the motion is not enable or not set state

    xArm-Python-SDK API code description (doc/api/xarm_api_code.md) · UFACTORY · API Code

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    - 1: there are errors that have not been cleared

    xArm-Python-SDK API code description (doc/api/xarm_api_code.md) · UFACTORY · API Code

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    - 2: there are warnings that have not been cleared

    xArm-Python-SDK API code description (doc/api/xarm_api_code.md) · UFACTORY · API Code

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    - 9: state is not ready to move

    xArm-Python-SDK API code description (doc/api/xarm_api_code.md) · UFACTORY · API Code

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  42. Confidence: Verifiediface-526

    The record says

    The Python SDK's configuration sets its control port (TCP_CONTROL_PORT) to 502 and its report ports to 30001 (TCP_REPORT_NORM_PORT), 30002 (TCP_REPORT_RICH_PORT) and 30003 (TCP_REPORT_REAL_PORT).

    Evidence · 4 citations

    TCP_CONTROL_PORT = 502

    xArm-Python-SDK source, xarm/core/config/x_config.py · UFACTORY · class SocketConf (SDK documentation is not model-specific)

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    TCP_REPORT_NORM_PORT = 30001

    xArm-Python-SDK source, xarm/core/config/x_config.py · UFACTORY · class SocketConf

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    TCP_REPORT_RICH_PORT = 30002

    xArm-Python-SDK source, xarm/core/config/x_config.py · UFACTORY · class SocketConf

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    TCP_REPORT_REAL_PORT = 30003

    xArm-Python-SDK source, xarm/core/config/x_config.py · UFACTORY · class SocketConf

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  43. Confidence: Verifiediface-511

    The record says

    UFACTORY's xArm manual gives different units by interface: the Python SDK and Blockly use degrees for roll, pitch, yaw and joint angles, while the communication protocol uses radians; X, Y and Z are in millimetres in all three.

    Evidence · 3 citations

    X(Y/Z) | millimeter(mm) | millimeter(mm) | millimeter(mm)

    UFACTORY xArm Hardware Manual (online), Preface · UFACTORY · Unit Definition table, 'X(Y/Z)' row (the Preface applies to models XF1305, XI1305, XS1305; this table is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Roll(Pitch/Yaw) | degree(°) | degree(°) | radian(rad)

    UFACTORY xArm Hardware Manual (online), Preface · UFACTORY · Unit Definition table, 'Roll(Pitch/Yaw)' row

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    J1~J7 | degree(°) | degree(°) | radian(rad)

    UFACTORY xArm Hardware Manual (online), Preface · UFACTORY · Unit Definition table, 'J1~J7' row

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  44. Confidence: Verifiediface-574

    The record says

    The controller provides 7 motion modes and 6 states, which correspond to the Python SDK calls set_mode() and set_state().

    Evidence · 1 citation

    The controller provides 7 motion mode and 6 state, corresponding to python SDK set_mode(), set_state().

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10. introduction (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  45. Confidence: Verifiediface-576

    The record says

    Mode 1 is servo mode: set_servo_angle_j moves to each joint target at the fastest speed (180°/s), with no buffer, executing only the latest target received. The control box accepts up to 250 Hz and loses commands sent faster; UFACTORY suggests issuing smoothed, interpolated track points at a certain frequency, preferably 100 Hz or 200 Hz, and warns, for safety, not to give a distant target at once.

    Evidence · 6 citations

    Move to the given joint position with the fastest speed (180°/s) and acceleration (unit: degree/radian). This command has no buffer, only execute the latest received target point

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 1, Servo Joint Motion (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    In servoj mode, the maximum receiving frequency of the control box is 250 Hz

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 1

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    If the frequency of sending commands exceeds 250Hz, the redundant commands will be lost.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 1

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    issue a smoothed track point with interpolation at a certain frequency (preferably 100Hz or 200 Hz)

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 1, suggested use

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    for safety considerations, do not give a distant target position at once

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 1, note

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Python Example: set_servo_angle_j

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 1

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  46. Confidence: Verifiediface-578

    The record says

    Mode 2 is manual mode: the arm enters zero-gravity mode so the user can drag its links to teach, and should be switched back to mode 0 afterwards. Mode 2 must be set via mode 0: from a non-zero mode, a request for mode 2 first switches to mode 0, and mode 2 takes effect only on a second command.

    Evidence · 2 citations

    In this mode, the robotic arm will enter the zero gravity mode, and the user can freely drag the links of the robotic arm to complete the teaching function. If the drag teaching is completed, switch back to mode 0.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 2: Manual Mode (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Quote not shown (over 40 words). See the source at: 10.1 Mode 2, note.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 2, note

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  47. Confidence: Verifiediface-583

    The record says

    Setting state 3 pauses a running motion, which state 0 resumes. Setting state 4 stops the arm, terminating any execution immediately; it then accepts no new command until set back to STANDBY, and the controller also switches to state 4 by itself when any error occurs.

    Evidence · 3 citations

    set: set the robot to a PAUSED state when executing motion commands, the motion can be resumed by setting state 0.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.2 State 3 (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    set: set the robot to STOP state, it will terminate any execution immediately and will not receive or execute any new command until the state is set back to STANDBY.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.2 State 4

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    will automatically switch to this state when any error occurs.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.2 State 4

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  48. Confidence: Verifiediface-584

    The record says

    State 5 (MODE_CHANGED) is entered automatically when critical settings such as mode, payload, TCP offset or collision sensitivity change, and the arm accepts no command until state 0 is set. Setting state 6 performs a decelerated stop immediately.

    Evidence · 2 citations

    MODE_CHANGED state, will automatically switch to this state if some critical configurations (mode, payload, TCP offset, collision sensitivity, etc) have been changed, and cannot receive and execute any command until set state 0.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.2 State 5 (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Set and Feedback. Perform a decelerated stop immediately.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.2 State 6

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  49. Kind: Contradictioniface-585

    Sources disagree

    The Python SDK and the Studio manual name state 2 differently: the SDK's state list calls it 'sleeping', while the Studio manual says the robot is ready to receive and execute commands.

    Evidence · 2 citations

    2: sleeping

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · get_state / state, return values (SDK documentation is not model-specific)

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    Feedback. The robot is ready to receive and execute commands.

    UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.2 State 2

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  50. Confidence: Verifiediface-569

    The record says

    UFACTORY Studio's Modbus TCP page sends standard Modbus TCP commands to the controller's IP address on port 502, which cannot be changed; UFACTORY Studio's example frame '00 01 00 00 00 06 01 06 00 04 03 E8' sets controller analog output AO1 to 1 V.

    Evidence · 2 citations

    This page allows you to send standard Modbus TCP command, the IP is controller ip, port 502, can not be modified.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.6 Modbus TCP (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Send '00 01 00 00 00 06 01 06 00 04 03 E8', set controller analog output AO1 as 1V.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.6 Modbus TCP, example

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  51. Confidence: Verifiediface-527

    The record says

    The xArm Developer Manual gives the automatic report rates: REPORT_TCP_DEVELOP on port 30003 at 100 Hz, and REPORT_TCP_NORMAL (port 30001) and REPORT_TCP_RICH (port 30002) at 5 Hz.

    Evidence · 3 citations

    Default Port 30003 Frequency 100Hz

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 2.1.6 Automatic Reporting Format, REPORT_TCP_DEVELOP (p.108) (the Developer Manual covers the xArm series; its specification chapter is 'xArm5/6/7 Common Specifications')

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Default Port 30001 Frequency 5Hz

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 2.1.6, REPORT_TCP_NORMAL (p.109)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Default Port 30002 Frequency 5Hz

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 2.1.6, REPORT_TCP_RICH (p.109)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  52. Confidence: Verifiediface-542

    The record says

    The control box's digital I/O is powered by its internal 24 V supply by default, or by an external 24 V supply when more current is needed. The internal supply (PWR-GND) gives 23-30 V (24 V typical) at up to 1.8 A; an external supply must give 20-30 V (24 V typical), up to 3 A.

    Evidence · 5 citations

    The digital I/O can be powered by a internal 24V power supply or by an external power supply by configuring the power junction box.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 Controller Electrical IO (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    The default configuration is to use internal power

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 Controller Electrical IO

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    If larger current is needed, connect the external power supply as shown below.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 Controller Electrical IO

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    [PWR - GND] | Voltage | 23 | 24 | 30 | V | [PWR - GND] | Current | 0 | - | 1.8 | A

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 power supply table, 'Built-in 24V Power Supply'

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    [24V - 0V] | Voltage | 20 | 24 | 30 | V | [24V - 0V] | Current | 0 | - | 3 | A

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 power supply table, 'External 24V Input Requirement'

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  53. Confidence: Verifiediface-543

    The record says

    The control box's digital outputs are NPN: when an output is on, its terminal is driven to GND, and when off it is open (open collector/open drain). Each is rated up to 100 mA. They have no current protection, and exceeding the specified values may cause permanent damage.

    Evidence · 3 citations

    The digital output is implemented in the form of NPN. When the digital output is enabled, the corresponding connector will be driven to GND. When the digital output is disabled, the corresponding connector will be open (OC/OD).

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.2.2 Controller Digital Output(CO) (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    [COx] | Current | 0 | - | 100 | mA

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 digital I/O table, Digital Output

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    There is no current protection on the digital output of the Control Box. If the specified values exceeded, permanent damage may result.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 CAUTION

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  54. Confidence: Verifiediface-544

    The record says

    The control box's digital inputs have a weak pull-up, so a floating input always reads high; an input is ON (low level) at 0-5 V and OFF at 15-30 V, with 30 V maximum.

    Evidence · 2 citations

    The digital input is implemented in the form of a weak pull-up resistor. This means that the reading of the floating input is always high.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.2.1 Controller Digital Input(CI) (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    [EIx/SIx/CIx/RIx] | Voltage | 0 | - | 30 | V | [EIx/SIx/CIx/RIx] | OFF Area | 15 | - | 30 | V | [EIx/SIx/CIx/RIx] | ON Area(low level) | 0 | - | 5 | V

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4 digital I/O table, Digital Input

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  55. Confidence: Verifiediface-545

    The record says

    The control box's analog inputs and outputs work at 0-10 V with 12-bit resolution; each analog output can supply up to 20 mA. The manual's examples connect an analog sensor to AI0 or AI1 and drive a conveyor belt's analog speed-control input from AO0 or AO1.

    Evidence · 5 citations

    This type of interface can be used to set or measure voltage (0-10V) going into or out of other devices.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.3 Controller Analog IO(AIAO) (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    [AIx - AG] | Resolution | - | 12 | 12 | Bit

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.3 table, Analog Input

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Quote not shown (over 40 words). See the source at: 3.4.3 table, Analog Output.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.3 table, Analog Output

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    The following example shows how to connect an analog sensor(Connect to AI0 or AI1).

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.3.1 Analog Input

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    The following example shows how to use the analog speed control input to control the conveyor belt(Connect to AO0 or AO1).

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.3.2 Analog Output

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  56. Confidence: Verifiediface-556

    The record says

    The tool connector supplies 20-30 V (24 V typical) in 24 V mode, at up to 1800 mA.

    Evidence · 1 citation

    Supply Voltage in 24V Mode | 20 | 24 | 30 | V | Supply Current | - | - | 1800 | mA

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 Electrical Specifications (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  57. Confidence: Verifiediface-558

    The record says

    The tool digital inputs have a pull-down resistor, so a floating input always reads low; logic low is at most 1.0 V, logic high at least 1.6 V, and the input accepts -0.5 to 30 V.

    Evidence · 2 citations

    The digital input is already equipped with a pull-down resistor. This means that the reading of the floating input is always low.

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2.1 Tool Digital Input(TI) (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Input Voltage | -0.5 | - | 30 | V | Logic Low Voltage | - | - | 1.0 | V | Logic High Voltage | 1.6 | - | - | V

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2.1 Electrical Specifications

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  58. Confidence: Verifiediface-559

    The record says

    The tool digital outputs are NPN open-collector outputs that pull the pin to GND when on, sinking up to 100 mA. They have no current protection, and a protection diode is strongly recommended for inductive loads.

    Evidence · 4 citations

    The digital output is implemented in the form of NPN with an open collector (OC). When the digital output is activated, the corresponding connector will be driven to GND.

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2.2 Tool Digital Output(TO) (chapter text is not split by model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Sink Current | 0 | - | 100 | mA

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2.2 Electrical Specifications

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    There is no current protection on the digital output of the tool, which can cause permanent damage if the specified value exceeded.

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2.2 CAUTION

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    It is strongly recommended to use a protection diode for inductive loads.

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 NOTE

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  59. Kind: Contradictioniface-568

    Sources disagree

    Sources disagree on the xArm end-effector communication protocol: the online xArm manual's common specification table (and its Gripper table) say Modbus TCP, while the xArm Developer Manual's common specifications and gripper table say Modbus RTU, and the online manual's own Tool RS485 section configures standard Modbus RTU devices.

    Evidence · 5 citations

    End Effector Communication Protocol | Modbus TCP

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · 8.1 xArm5/xArm6/xArm7 Common Specifications, 'End Effector Communication Protocol' row

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Communication Mode | RS-485 | Communication Protocol | Modbus TCP

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · 8.1 Gripper table

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    End-effector Communication Protocol Modbus-RTU

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 4.1 xArm5/6/7 Common Specifications (p.121)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Communication Mode RS-485 Communication Protocol Modbus RTU

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 4.1, Gripper (p.122)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    If end effector supports standard Modbus RTU, user can debug it via 'Settings-Externals-Modbus RTU'.

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.4.4 Tool RS485

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  60. Confidence: Verifiediface-586

    The record says

    Controller errors and warnings are fed back passively, in the reply to whatever command the user sends next, not reported actively. After such an error the arm stops immediately and discards the control box's cached commands, and the user must clear the error manually.

    Evidence · 2 citations

    This error/warning signal will be fed back when the user sends any command; The feedback is passive and not actively reported.

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 Control Box Error Code and Handling (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    After the above error occurs, the robotic arm will stop working immediately and discard the Control Box cache command. Users need to clear these errors manually to allow normal operation.

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  61. Confidence: Verifiediface-587

    The record says

    UFACTORY's error recovery through the Python SDK is three calls: clean_error(), then motion_enable(true), then set_state(0).

    Evidence · 3 citations

    error clearing: clean_error()

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.3 Python SDK Error Code and Handling (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Re-enable the robotic arm: motion_enable(true)

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.3

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Set the motion state: set_state(0)

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.3

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  62. Confidence: Verifiediface-590

    The record says

    UFACTORY Studio's manual lists codes in three tables with prefixes: C for control box errors, S for joint servo errors (e.g. S0) and A for Python SDK codes (e.g. A-2). Controller errors C1-C3 are the control box emergency stop button, the control box emergency I/O and the three-state switch's emergency stop; for C11-C17 the handling given is to power on again.

    Evidence · 6 citations

    C1 | The Emergency Stop Button on the Control Box is Pushed in to Stop

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    C2 | The Emergency IO of the Control Box is triggered

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    C3 | The Emergency Stop Button of the Three-state Switch is pressed

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    C11-C17 | Power on again.

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    S0 | Joint Communication Error

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.2 table

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    A-2 | xArm is not ready.

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.3 table

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  63. Confidence: Verifiediface-591

    The record says

    Further controller errors in UFACTORY Studio's list: C21 kinematic error, C22 self-collision, C23 joint angle beyond its limit, C24 speed beyond its limit (check for a singularity or reduce speed and acceleration), C25 planning error, C35 safety boundary limit and C37 abnormal motion in manual mode.

    Evidence · 7 citations

    C21 | Kinematic Error

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    C22 | Self-collision Error

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    C23 | Joints Angle Exceed Limit

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    C24 | Speed Exceeds Limit Please check if the xArm is at singularity point, or reduce the speed and acceleration values.

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    C25 | Planning Error

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    C35 | Safety Boundary Limit

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    C37 | Abnormal Motion in Manual Mode

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  64. Confidence: Verifiedsafety-520

    The record says

    The xArm manual says pressing the Control Box's emergency stop button sends a command to the Control Box for software deceleration to stop all activities of the arm and clear all cached commands in the Control Box, and that the arm's power supply will be removed within 300 ms.

    Evidence · 1 citation

    Quote not shown (over 40 words). See the source at: 2.1.2 Emergency Stop Button [series text: names no single model].

    UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.1.2 Emergency Stop Button [series text: names no single model]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  65. Confidence: Verifiediface-523

    The record says

    UFACTORY's xArm Developer Manual calls the arm's protocol 'Private Modbus-TCP': its default TCP port is 502, and the protocol identifier 0x00 0x02 (control) is the only one for now.

    Evidence · 3 citations

    Robotic Arm Communication Protocol Private Modbus-TCP

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 4.1 xArm5/6/7 Common Specifications (p.121)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Default TCP Port: 502

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 2.1.2 Modbus-TCP Communication Format, 'Parameter' (p.11) (the Developer Manual covers the xArm series; its specification chapter is 'xArm5/6/7 Common Specifications')

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Protocol: 0x00 0x02 Control (Only this one for now)

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 2.1.2 (p.11)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  66. Confidence: Verifiediface-515

    The record says

    In xarm_ros2 the xArm 6 driver is started with 'ros2 launch xarm_api xarm6_driver.launch.py robot_ip:=<controller IP>'; its services and topics sit under a hardware namespace that defaults to 'xarm' for the xArm series (other arms use 'ufactory').

    Evidence · 3 citations

    ros2 launch xarm_api xarm6_driver.launch.py robot_ip:=192.168.1.117

    xarm_ros2 ReadMe (humble branch) · UFACTORY · 5.4 xarm_api, 'Use command line (xArm)'

    © UFACTORY Inc., xArm-Developer/xarm_ros2, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    All the services and topics are under <hw_ns>/ namespace

    xarm_ros2 ReadMe (humble branch) · UFACTORY · 5.4 xarm_api

    © UFACTORY Inc., xArm-Developer/xarm_ros2, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    the xarm series defaults is xarm, and the rest defaults is ufactory

    xarm_ros2 ReadMe (humble branch) · UFACTORY · 5. Quick start, Reminder 4

    © UFACTORY Inc., xArm-Developer/xarm_ros2, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  67. Confidence: Verifiediface-519

    The record says

    xarm_ros2's xarm_moveit_config controls a simulated or real xArm through MoveIt: for the xArm 6, xarm6_moveit_fake.launch.py is the simulated launch and xarm6_moveit_realmove.launch.py the real-arm launch, which takes the arm's IP address.

    Evidence · 5 citations

    This package provides abilities for controlling xArm/Lite6 (simulated or real arm) by moveit.

    xarm_ros2 ReadMe (humble branch) · UFACTORY · 5.6 xarm_moveit_config

    © UFACTORY Inc., xArm-Developer/xarm_ros2, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    【simulated】Launch moveit, controlling robot in rviz.

    xarm_ros2 ReadMe (humble branch) · UFACTORY · 5.6 xarm_moveit_config, 【simulated】

    © UFACTORY Inc., xArm-Developer/xarm_ros2, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    ros2 launch xarm_moveit_config xarm6_moveit_fake.launch.py [add_gripper:=true]

    xarm_ros2 ReadMe (humble branch) · UFACTORY · 5.6 xarm_moveit_config

    © UFACTORY Inc., xArm-Developer/xarm_ros2, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    【real arm】Launch moveit, controlling robot in rviz.

    xarm_ros2 ReadMe (humble branch) · UFACTORY · 5.6 xarm_moveit_config, 【real arm】

    © UFACTORY Inc., xArm-Developer/xarm_ros2, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    ros2 launch xarm_moveit_config xarm6_moveit_realmove.launch.py robot_ip:=192.168.1.117 [add_gripper:=true]

    xarm_ros2 ReadMe (humble branch) · UFACTORY · 5.6 xarm_moveit_config

    © UFACTORY Inc., xArm-Developer/xarm_ros2, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  68. Confidence: Verifiediface-528

    The record says

    In the Developer Manual, the 100 Hz REPORT_TCP_DEVELOP report carries the motion state and mode, the number of cached commands, each joint's current angle, the arm's current position and attitude, and joint torque; the rich report adds the arm type number (5/6/7).

    Evidence · 6 citations

    Bit0-Bit3 indicates the motion status, Bit4-Bit7 indicates the motion mode.

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 2.1.6, REPORT_TCP_DEVELOP (p.108) (the Developer Manual covers the xArm series; its specification chapter is 'xArm5/6/7 Common Specifications')

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Number of commands Caches

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 2.1.6, REPORT_TCP_DEVELOP (p.108)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    The current angle of each joint of the robotic arm

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 2.1.6, REPORT_TCP_DEVELOP (p.108); PDF text runs some words together

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    The current position and attitude of the robotic arm

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 2.1.6, REPORT_TCP_DEVELOP (p.108)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Joint torque

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 2.1.6, REPORT_TCP_DEVELOP (p.108)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Robotic arm type number(5/6/7)

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 2.1.6, REPORT_TCP_RICH (p.110)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  69. Confidence: Verifiediface-553

    The record says

    By default the SDK's set_cgpio_digital puts the output change in the motion queue (sync True); sync False executes it immediately, from firmware 2.4.101.

    Evidence · 2 citations

    :param sync: whether to execute in the motion queue, set to False to execute immediately(default is True)

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · set_cgpio_digital, parameter sync (SDK documentation is not model-specific)

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    only available if firmware_version >= 2.4.101

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · set_cgpio_digital, parameter sync note

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  70. Confidence: Verifiediface-593

    The record says

    Controller warning 11 means the command queue (uxbus queue) is full and warning 14 that a command has no solution; controller error 40 means no inverse-kinematics solution is available.

    Evidence · 3 citations

    - 11: uxbus queue is full

    xArm-Python-SDK API code description (doc/api/xarm_api_code.md) · UFACTORY · Controller Warn Code (SDK documentation is not model-specific)

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    - 14: command has no solution

    xArm-Python-SDK API code description (doc/api/xarm_api_code.md) · UFACTORY · Controller Warn Code

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    - 40: No IK available

    xArm-Python-SDK API code description (doc/api/xarm_api_code.md) · UFACTORY · Controller Error Code

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  71. Confidence: Inferrediface-573

    The record says

    In UFACTORY's Modbus TCP register map, stored Blockly projects are started by writing up to 16 holding registers from address 0x30 with function code 0x10; each value selects a project by number (1 runs project '00001'), and the projects run automatically in order.

    Why we infer this: Verified: UFACTORY's ModbusTCP User Instructions (UF_ModbusTCP_Manual, in the xArm-Python-SDK repository) state this, but that document names no robot model. Verified: the UFACTORY Studio manual, whose Preface lists the xArm 6, says the controller accepts standard Modbus TCP commands on port 502 (iface-569). Inferred: the register map very probably holds on the xArm 6's controller, but no document written for the xArm 6 gives it; a read of these registers on the S6 controller would confirm it.

    Evidence · 1 citation

    Quote not shown (over 40 words). See the source at: Appendix, Holding Registers 48~63.

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Appendix, Holding Registers 48~63

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  72. Confidence: Inferrediface-572

    The record says

    In UFACTORY's Modbus TCP register map, coils 0-31 are the controller digital outputs and discrete inputs 0-31 the controller digital inputs (16 of each in use), and coils and discrete inputs 32-39 are the tool digital outputs and inputs (2 of each in use).

    Why we infer this: Verified: UFACTORY's ModbusTCP User Instructions (UF_ModbusTCP_Manual, in the xArm-Python-SDK repository) state this, but that document names no robot model. Verified: the UFACTORY Studio manual, whose Preface lists the xArm 6, says the controller accepts standard Modbus TCP commands on port 502 (iface-569). Inferred: the register map very probably holds on the xArm 6's controller, but no document written for the xArm 6 gives it; a read of these registers on the S6 controller would confirm it.

    Evidence · 4 citations

    | 0 ~ 31 | 0x00 ~ 0x1F | 32 controller Digital Output (Now only 16 effective) |

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Appendix, Coil Registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    | 32 ~ 39 | 0x20 ~ 0x27 | 8 tool Digital Output (Now only 2 effective) |

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Appendix, Coil Registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    | 0 ~ 31 | 0x00 ~ 0x1F | 32 controller Digital Input (Now only 16 effective) |

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Appendix, Discrete Input Registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    | 32 ~ 39 | 0x20 ~ 0x27 | 8 tool Digital Input (Now only 2 effective) |

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Appendix, Discrete Input Registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  73. Confidence: Inferrediface-571

    The record says

    In UFACTORY's Modbus TCP register map, holding registers 32 and 33 (0x20, 0x21) hold the robot mode and state, and input registers 32 and 33 hold the robot error code and warning code.

    Why we infer this: Verified: UFACTORY's ModbusTCP User Instructions (UF_ModbusTCP_Manual, in the xArm-Python-SDK repository) state this, but that document names no robot model. Verified: the UFACTORY Studio manual, whose Preface lists the xArm 6, says the controller accepts standard Modbus TCP commands on port 502 (iface-569). Inferred: the register map very probably holds on the xArm 6's controller, but no document written for the xArm 6 gives it; a read of these registers on the S6 controller would confirm it.

    Evidence · 4 citations

    | 32 | 0x20 | Robot Mode |

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Appendix, Holding Registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    | 33 | 0x21 | Robot State |

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Appendix, Holding Registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    | 32 | 0x20 | Robot Error code |

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Appendix, Input Registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    | 33 | 0x21 | Robot Warning code |

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Appendix, Input Registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  74. Confidence: Verifiediface-588

    The record says

    With reporting enabled, the Python SDK can call a user function when the error or warning code changes (register_error_warn_changed_callback); get_err_warn_code() returns the current error and warning codes.

    Evidence · 3 citations

    Register the error code or warn code changed callback, only available if enable_report is True

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · register_error_warn_changed_callback (SDK documentation is not model-specific)

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    Get the controller error and warn code

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · get_err_warn_code

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    arm.register_error_warn_changed_callback(hangle_err_warn_changed)

    xArm-Python-SDK example 0000-template.py · UFACTORY · Example 0000-template.py

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  75. Confidence: Verifiediface-566

    The record says

    In the Python SDK, get_tgpio_digital reads the tool digital inputs, get_tgpio_analog reads tool analog input 0 or 1, and set_tgpio_digital sets the tool digital outputs.

    Evidence · 3 citations

    Get the digital value of the specified Tool GPIO

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · get_tgpio_digital (SDK documentation is not model-specific)

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    :param ionum: 0 or 1 or None(both 0 and 1), default is None

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · get_tgpio_analog, parameter ionum

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    def __set_tgpio_digital__(self, ionum, value, delay_sec=None, sync=True):

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · method list

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  76. Confidence: Inferrediface-570

    The record says

    UFACTORY's standard Modbus TCP interface uses big-endian data and supports function codes for coils (0x01, 0x05, 0x0F), discrete inputs (0x02), holding registers (0x03, 0x06, 0x10, 0x16, 0x17) and input registers (0x04).

    Why we infer this: Verified: UFACTORY's ModbusTCP User Instructions (UF_ModbusTCP_Manual, in the xArm-Python-SDK repository) state this, but that document names no robot model. Verified: the UFACTORY Studio manual, whose Preface lists the xArm 6, says the controller accepts standard Modbus TCP commands on port 502 (iface-569). Inferred: the register map very probably holds on the xArm 6's controller, but no document written for the xArm 6 gives it; a read of these registers on the S6 controller would confirm it.

    Evidence · 11 citations

    Data transmission uses Big-endian method

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Notice

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    __0x01__: Read multiple coil registers

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Supported function codes, coils

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    __0x05__: Write single coil

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Supported function codes, coils

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    __0x0F__: Write multiple coil registers

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Supported function codes, coils

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    __0x02__: Read multiple discrete input registers

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Supported function codes, discrete inputs

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    __0x03__: Read multiple holding registers

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Supported function codes, holding registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    __0x06__: Write single holding register

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Supported function codes, holding registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    __0x10__: Write multiple holding registers

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Supported function codes, holding registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    __0x16__: Mask write single holding register

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Supported function codes, holding registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    __0x17__: Read and Write multiple holding registers

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Supported function codes, holding registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    0x04: Read multiple input registers

    UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY · Supported function codes, input registers

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  77. Kind: RecommendationThis project's simulation and agent design, not the physical celliface-598

    Project advice

    For the xArm 6 at S6, command motion through the Python SDK in mode 0 and read state from its automatic reports rather than streaming servo-mode targets; confirm the S6 controller's IP address, hardware version and Modbus TCP register map on the cell before relying on them.

    This is advice from this project, based on: iface-575 Verified iface-576 Verified iface-586 Verified iface-527 Verified iface-526 Verified iface-533 Gap, awaiting cell access iface-534 Gap, awaiting cell access iface-569 Verified

    Why: In mode 0, joint and straight-line moves are complete commands (iface-575), so each can be checked before it is sent. Servo mode runs only the latest target, with no buffer, at the arm's fastest speed, and is best fed smoothed points at a certain frequency, preferably 100 Hz or 200 Hz (iface-576). Errors come back only in the reply to the next command (iface-586), so state is best read from the report ports (30001-30003), whose rates the Developer Manual gives (iface-527). The S6 IP address, the arm's hardware version and the Modbus register map are not confirmed for this arm (iface-533, iface-534, and the Inferred register-map records that rest on iface-569).

  78. Confidence: Inferredsafety-593

    The record says

    An autonomous agent driving the S6 xArm 6 through the Python SDK could change collision sensitivity (to 0, which disables collision detection), collision rebound, reduced mode and the safety boundary. Under the xArm manual's own warning, changing the controller safety configuration makes the robot system a new system whose safety reviews, such as risk assessments, must be updated.

    Why we infer this: Verified: the SDK exposes these calls and the glossary says sensitivity 0 disables detection; the manual says modifying the controller safety configuration creates a new system needing updated safety reviews. Inferred: an agent with SDK access could make such changes, and the manual's warning would then apply. Whether the Python SDK calls change the same 'configuration file' the manual refers to is not stated in any fetched source.

    Evidence · 6 citations

    :param value: sensitivity value, 0~5

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def set_collision_sensitivity [SDK text for the xArm API; names no single model]

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    When it is set to 0, it means that collision detection is not enabled.

    UFACTORY Studio User Manual (online), 2. Glossary · UFACTORY · Glossary, Collision Sensitivity [general Studio text; the Studio manual says it applies to the xArm6]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Set the collision rebound,turn on/off collision rebound

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def set_collision_rebound [SDK text for the xArm API; names no single model]

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    Turn on/off reduced mode

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def set_reduced_mode [SDK text for the xArm API; names no single model]

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    Set the boundary of the safety boundary mode

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def set_reduced_tcp_boundary [SDK text for the xArm API; names no single model]

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    If parameters in the configuration file are modified, the entire robot system shall be deemed a new system, which necessitates the update of all safety review processes, such as risk assessments.

    UFACTORY xArm Hardware Manual (online), 1. Safety · UFACTORY · 1.4 Personnel Safety, WARNING [series text: names no single model]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  79. Confidence: Verifiediface-594

    The record says

    Through the Python SDK, set_collision_sensitivity sets collision sensitivity from 0 to 5 and set_teach_sensitivity sets manual-mode drag sensitivity from 1 to 5; the SDK notes that the collision sensitivity is lost at reboot if not saved; save_conf() records the current settings so they survive a restart, and clean_conf() restores the system defaults.

    Evidence · 5 citations

    :param value: sensitivity value, 0~5

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · set_collision_sensitivity, parameter value (SDK documentation is not model-specific)

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    :param value: sensitivity value, 1~5

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · set_teach_sensitivity, parameter value

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    2. If not saved, it will be lost after reboot

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · set_collision_sensitivity, note 2

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    1. This interface can record the current settings and will not be lost after the restart.

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · save_conf

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    2. The clean_conf interface can restore system default settings

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · save_conf

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  80. Confidence: Verifiedsafety-566

    The record says

    The Python SDK exposes set_reduced_mode and set_reduced_tcp_boundary ([x_max, x_min, y_max, y_min, z_max, z_min]), which need firmware 1.2.0 or above, and set_fence_mode and set_collision_rebound, which need firmware 1.2.11 or above. The boundary setting takes effect only when reduced mode is reset with set_reduced_mode(True).

    Evidence · 6 citations

    Turn on/off reduced mode

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def set_reduced_mode, Note 1 [SDK text for the xArm API; names no single model]

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    1. This interface relies on Firmware 1.2.0 or above

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def set_reduced_mode and def set_reduced_tcp_boundary, Note 1 (same text under each) [SDK text for the xArm API; names no single model]

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    :param boundary: [x_max, x_min, y_max, y_min, z_max, z_min]

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def set_reduced_tcp_boundary [SDK text for the xArm API; names no single model]

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    2. Only reset the reduced mode to take effect (`set_reduced_mode(True)`)

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def set_reduced_tcp_boundary, Note 2 [SDK text for the xArm API; names no single model]

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    Set the fence mode,turn on/off fence mode

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def set_fence_mode [SDK text for the xArm API; names no single model]

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    1. This interface relies on Firmware 1.2.11 or above

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def set_fence_mode / set_collision_rebound, Note 1 [SDK text for the xArm API; names no single model]

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  81. Kind: RecommendationThis project's simulation and agent design, not the physical cellsafety-595

    Project advice

    Deny the S6 agent the SDK calls that change collision sensitivity, collision detection, collision rebound, reduced mode or the safety boundary, or gate them behind human approval.

    This is advice from this project, based on: safety-593 Inferred safety-509 Verified safety-558 Verified

    Why: UFACTORY says a modified safety configuration makes a new system needing updated risk assessments, and its own SDK notes say not to use set_collision_sensitivity unless required. An agent that can change these settings could invalidate the risk assessment without anyone noticing.

  82. Kind: RecommendationThis project's simulation and agent design, not the physical cellsafety-594

    Project advice

    Treat the xArm 6's collision detection, safety boundary and reduced mode as configurable controller functions, not validated safeguards: they must not replace risk-assessed protective devices wired to the EI and SI inputs.

    This is advice from this project, based on: safety-578 Gap safety-559 Verified safety-560 Verified safety-561 Verified safety-564 Verified safety-565 Verified safety-544 Verified

    Why: No fetched UFACTORY document gives these functions a Performance Level or SIL. Collision detection is a current-model comparison that UFACTORY says can false-trigger and can be switched off; the safety boundary and reduced mode are settings. A function with no documented rating cannot stand in for a rated protective device.

  83. Kind: Gapsafety-585

    Not known

    No fetched UFACTORY source says whether the software safety functions (collision detection, safety boundary, reduced mode) are enforced independently of the motion-command path. Studio's description of the safety boundary mentions only the tool centre point, and no source says whether the arm's links or the tool body are checked against it.

    Evidence · 1 citation

    If the tool center point (TCP) of the robotic arm exceeds the set safety boundary, the robotic arm will stop moving.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.3.1 Safety Boundary [general Studio text; the Studio manual says it applies to the xArm6]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  84. Kind: Contradictioniface-592

    Sources disagree

    Sources disagree on controller codes C31 and C33. UFACTORY Studio's manual calls C31 'Abnormal current in the robotic arm' and C33 'Controller IO Error'; the Python SDK code list calls 31 'Collision Caused Abnormal Current' and 33 'Controller GPIO error'; the xArm Developer Manual calls C31 'Collision Caused Abnormal Current' and C33 'Abnormal current in the robotic arm'.

    Evidence · 6 citations

    C31 | Abnormal current in the robotic arm

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table, C31

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    C33 | Controller IO Error

    UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1 table, C33

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    - 31: Collision Caused Abnormal Current

    xArm-Python-SDK API code description (doc/api/xarm_api_code.md) · UFACTORY · Controller Error Code

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    - 33: Controller GPIO error

    xArm-Python-SDK API code description (doc/api/xarm_api_code.md) · UFACTORY · Controller Error Code

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    C31 0x1F Collision Caused Abnormal Current

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 3.2.1 Control Box Error Code (p.117)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    C33 0x21 Abnormal current in the robotic arm

    xArm Developer Manual V2.0.1 (PDF) · UFACTORY · 3.2.1 Control Box Error Code (p.117)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  85. Kind: RecommendationThis project's simulation and agent design, not the physical cellsafety-598

    Project advice

    Do not use UFACTORY Studio's simulated-arm mode as the simulation substrate for S6 agent work: it needs a real arm connected, its settings apply to the real arm, and its unlock-joint button unlocks the real joints.

    This is advice from this project, based on: safety-528 Verified

    Why: Studio's own text says both modes need a real arm and that simulation-mode settings and joint unlocking act on it, so it does not isolate an agent from the machine.

  86. Confidence: Verifiedsafety-549

    The record says

    The xArm Python SDK documents emergency_stop() as the sequence set_state(4), then motion_enable(True), then set_state(0), and says it does not automatically clear errors.

    Evidence · 2 citations

    Emergency stop (set_state(4) -> motion_enable(True) -> set_state(0))

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def emergency_stop [SDK text for the xArm API; names no single model]

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

    This interface does not automatically clear the error.

    xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def emergency_stop, Note 1 [SDK text for the xArm API; names no single model]

    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21

  87. Confidence: Verifiedsafety-548

    The record says

    The STOP button in UFACTORY Studio stops the arm immediately and clears all cached commands; Studio says it is a software stop and the power is still on.

    Evidence · 1 citation

    STOP: The robotic arm will stop immediately and clear all cache commands. It's a software stop, the power is still on.

    UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.5 Enable & STOP button [general Studio text; the Studio manual says it applies to the xArm6]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  88. Confidence: Verifiedops-506

    The record says

    The xArm manual says pressing the emergency stop button powers off the xArm and the power indicator goes out; turning the button in the direction of the arrow pulls it up, the power indicator lights and the arm is powered.

    Evidence · 2 citations

    Press the emergency stop button to power off the xArm, and the power indicator will go out.

    UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.1.2 Emergency Stop Button, 'Emergency Stop' [series text: names no single model]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    when the button is rotated in the direction indicated by the arrow, the button is pulled up, the xArm power indicator lights up, and the arm is powered.

    UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.1.2 Emergency Stop Button, 'Power-on' [series text: names no single model]

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  89. Confidence: Verifiedcomp-712

    The record says

    The base coordinate system is a Cartesian frame on the arm's mounting base: X is front and back, Y left and right, Z up and down. A user coordinate system can be defined as any other reference frame; once set, it becomes the world origin instead of the robot base.

    Evidence · 3 citations

    Quote not shown (over 40 words). See the source at: Glossary, 'Base Coordinate System' (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to).

    UFACTORY Studio User Manual (online), 2. Glossary · UFACTORY · Glossary, 'Base Coordinate System' (manual text not model-specific; the Studio manual's Preface lists the xArm 6 among the models it applies to)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    The user coordinate system can be defined as any other reference coordinate system rather than the robot base.

    UFACTORY Studio User Manual (online), 2. Glossary · UFACTORY · Glossary, 'User System'

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    After this offset setting, user coordinate system becomes the world origin instead of robot base.

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.1.3 Coordinates

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

  90. Kind: GapAwaiting cell accesscomp-547

    Not known

    No Ethernet connection, camera port, force-torque sensor interface or user button at the xArm 6's tool end is described in the xArm manual or the product page; the product page lists the end-effector I/O as 2 DI, 2 DO, 2 AI and 1 RS-485.

    Awaiting cell access: this could be confirmed or corrected once the physical S6 cell can be observed.

    Evidence · 2 citations

    End Effector I/O 2*DI/2*DO/2*AI/1*RS485

    UFACTORY xArm product page · UFACTORY · Tech Specs > Hardware, 'End Effector I/O' row (xArm product page, which covers the xArm 5, 6 and 7)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    there is an avionic socket 12-pin female industrial connector

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 Tool IO (manual for the xArm series; this passage names no single model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  91. Kind: GapAwaiting cell accessiface-533

    Not known

    The IP address of the xArm 6 control box at S6, and how the S6 network is laid out (direct PC link, router or switch), are not in the sources; the manuals give only the default range 192.168.1.xxx and the reset address 192.168.1.111.

    Awaiting cell access: this could be confirmed or corrected once the physical S6 cell can be observed.

    Evidence · 2 citations

    The default IP of robotic arm is 192.168.1.xxx

    UFACTORY Studio User Manual (online), 3. Connection · UFACTORY · 3.2 Software Connection

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    The reset IP is 192.168.1.111.

    UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.5 Reset IP

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  92. Kind: GapAwaiting cell accessiface-534

    Not known

    Which hardware version the S6 xArm 6 is has not been recorded. The online xArm manual's Preface and Hardware Installation chapter state they apply to models XF1305, XI1305 and XS1305, so the sources do not settle whether the manual's descriptions fit the S6 arm.

    Awaiting cell access: this could be confirmed or corrected once the physical S6 cell can be observed.

    Evidence · 2 citations

    Apply to Model: XF1305, XI1305, XS1305.

    UFACTORY xArm Hardware Manual (online), Preface · UFACTORY · Preface, header

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Apply to Model: XF1305, XI1305, XS1305 (1305 Model).

    UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2. Hardware Installation, header

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  93. Kind: GapAwaiting cell accessiface-564

    Not known

    What tool inputs TI2-TI4 and outputs TO2-TO4 are on the xArm 6 is not documented: UFACTORY Studio lists TI0-TI4 and TO0-TO4, but the xArm manual's tool connector defines only TI0, TI1, TO0 and TO1.

    Awaiting cell access: this could be confirmed or corrected once the physical S6 cell can be observed.

    Evidence · 2 citations

    Digital Input: TI0, TI1, TI2, TI3, TI4, low level by default

    UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.2.1 End Effector IO

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    Tool Output 0 (TO0) | 2 | Blue | +24V (Power) | 8 | Grey | Tool Output 1 (TO1)

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 pin table, rows 7-10

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  94. Kind: GapAwaiting cell accessiface-565

    Not known

    Whether the xArm 6 has an Ethernet connection at the end flange is not answered by the sources fetched: the xArm manual's Robotic Electrical Interface chapter has an 'End Flange' heading with no text, and its tool I/O pins carry no Ethernet.

    Awaiting cell access: this could be confirmed or corrected once the physical S6 cell can be observed.

    Evidence · 2 citations

    4.1 End Flange

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4. Robotic Electrical Interface, section 4.1

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    There are 12 pins inside the cable with different colors, each color represents different functions

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.2 Tool IO

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

  95. Kind: GapAwaiting cell accessint-022

    Not known

    The physical I/O that will carry signals between S2 and S4 (and the other stations) is not defined. It may differ from the simulation's signals.

    Awaiting cell access: this could be confirmed or corrected once the physical S6 cell can be observed.

    Related: int-018 Verified

    Evidence · 1 citation

    IO for physical may be different

    Owner statements, 2026-09-21 (verbatim) · Derek Stringfellow · Statement S7

    Derek Stringfellow, project record · Project-internal record · retrieved 2026-09-21

  96. Kind: Gapint-047

    Not known

    What S2 publishes to the other agents or the hub is not defined: placement confirmations, S3 slot updates, faults and error codes, its own ready or busy state, and whether any work-order or traceability data passes through S2 (Q9, Q14).

    Related: int-020 Verified int-048 Inferred

  97. Kind: Gapint-049

    Not known

    Whether camera C1's or S11's output reaches S2 or the shared hub, and in what form, is not documented.

    Related: int-023 Verified int-024 Verified int-025 Inferred int-026 Assumed, awaiting cell access

  98. Kind: Contradictionspec-564

    Sources disagree

    Sources disagree on the xArm's end-effector communication protocol: the manual's common specification table says Modbus TCP, but the product page says Modbus RTU over RS-485, and the manual's own Tool RS485 section configures standard Modbus RTU end effectors. The manual's Gripper table likewise pairs RS-485 communication with a 'Modbus TCP' protocol.

    Related: comp-551 Verified

    Evidence · 4 citations

    End Effector Communication Protocol Modbus TCP

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · 'End Effector Communication Protocol' row (section '8.1 xArm5/xArm6/xArm7 Common Specifications': applies to all three models)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    End Effector Communication Protocol Modbus RTU(rs485)

    UFACTORY xArm product page · UFACTORY · Tech Specs > Hardware, 'End Effector Communication Protocol' row (xArm product page, which covers the xArm 5, 6 and 7)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21

    If end effector supports standard Modbus RTU, user can debug it via ' Settings-Externals-Modbus RTU '.

    UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY · 4.4.4 Tool RS485 (manual for the xArm series; this passage names no single model)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

    Communication Mode RS-485 Communication Protocol Modbus TCP

    UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY · Gripper table (section '8.1 xArm5/xArm6/xArm7 Common Specifications': applies to all three models)

    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25

Image credits

  • 3D model: © 2018 UFACTORY Inc., BSD-3-Clause, from UFACTORY Inc. (xArm-Developer/xarm_ros2). Licence text · Source

Sources for this section

  • IntelliMake Phase 1 Factory: Autonomous Production Demonstrator (infographic) · IntelliMake.org (IntelliMake)
    © IntelliMake.org. Used with permission; redrawn for this platform. · Cleared for use by its owner · retrieved 2026-09-21 · cited by 1 record here · Project copy; not published on this site.
  • Owner statements, 2026-09-21 (verbatim) · Derek Stringfellow (project owner)
    Derek Stringfellow, project record · Project-internal record · retrieved 2026-09-21 · cited by 1 record here · Project copy; not published on this site.
  • UFACTORY ModbusTCP User Instructions (xArm-Python-SDK doc/UF_ModbusTCP_Manual.md) · UFACTORY (manufacturer)
    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21 · cited by 4 records here · Open the source
  • UFACTORY Studio User Manual (online), 1. Preface · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 3 records here · Open the source
  • UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 8 records here · Open the source
  • UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 5 records here · Open the source
  • UFACTORY Studio User Manual (online), 2. Glossary · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 3 records here · Open the source
  • UFACTORY Studio User Manual (online), 3. Connection · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 3 records here · Open the source
  • UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 4 records here · Open the source
  • UFACTORY Studio User Manual (online), 5. Blockly · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 1 record here · Open the source
  • UFACTORY Studio User Manual (online), 7. Settings · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 11 records here · Open the source
  • UFACTORY xArm Hardware Manual (online), 1. Safety · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25 · cited by 1 record here · Open the source
  • UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25 · cited by 4 records here · Open the source
  • UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25 · cited by 12 records here · Open the source
  • UFACTORY xArm Hardware Manual (online), 4. Robotic Electrical Interface · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25 · cited by 11 records here · Open the source
  • UFACTORY xArm Hardware Manual (online), 8. Technical Specifications · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25 · cited by 6 records here · Open the source
  • UFACTORY xArm Hardware Manual (online), Preface · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-25 · cited by 2 records here · Open the source
  • UFACTORY xArm product page · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 5 records here · Open the source
  • xArm Developer Manual V2.0.1 (PDF) · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 5 records here · Open the source
  • xArm-Python-SDK API code description (doc/api/xarm_api_code.md) · UFACTORY (manufacturer)
    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21 · cited by 3 records here · Open the source
  • xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY (manufacturer)
    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21 · cited by 10 records here · Open the source
  • xArm-Python-SDK example 0000-template.py · UFACTORY (manufacturer)
    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21 · cited by 2 records here · Open the source
  • xArm-Python-SDK README · UFACTORY (manufacturer)
    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21 · cited by 1 record here · Open the source
  • xArm-Python-SDK source, xarm/core/config/x_config.py · UFACTORY (manufacturer)
    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21 · cited by 1 record here · Open the source
  • xarm_ros2 ReadMe (humble branch) · UFACTORY (manufacturer)
    © UFACTORY Inc., xArm-Developer/xarm_ros2, BSD 3-Clause licence · BSD-3-Clause · retrieved 2026-09-21 · cited by 3 records here · Open the source

IntelliMake diagrams are redrawn as native figures, © IntelliMake.org. UFACTORY does not endorse this platform.

All sources and attribution