Operate: virtual training and commissioning of a simulated arm
Twin: a twin-ready view of the arm and its cell
§6 xArm 6
Basic operating sequence
S6's place in the cell's work, then the machine's own day: set up, power on, run, stop and shut down.
Start here
This section walks through the machine's own day: setting it up, switching it on, running it, stopping it and shutting it down. The steps come from the maker's manual and software, and they apply whatever task the arm is given in the cell.
In the cell, S6 comes after S5, the laser engraver, and routes parts on to inspection, rework or shipping67.
Enabling the arm turns on its motors, after which it can start to move normally8.
While the arm runs, nobody and no other equipment should be in its working area9.
S6 in one line: S6 is the xArm 6 arm that handles parts after processing, routing them to inspection, rework or shipping7.
Scroll
Look back
A question from earlier on, to keep it fresh. Skip it if you like; nothing depends on it.
Choose your depth
Four depths, one page. Switch at any time: every tier stays open to everyone. What the four tiers mean
1Beginner
S6's place, then a working day
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 see where the second arm works in the cell, and then you learn the steps that take the machine from switched off to running and back again. No robotics background is needed. Read the numbered steps in order: the order is the lesson.
Where S6 works
In the gift flow, S6 is the second Cobot Handling step. It comes after Laser Engraving and before the Quality Decision1011.
Its job is to handle parts after processing and route them to inspection, rework or shipping7.
Whatever the arm's task, the machine's own day is the same. The maker's manual sets it out, and that is what the rest of this part teaches.
Setting the arm up
UFACTORY's manual installs the arm in five steps1213141516:
Fit the tool on the end of the arm, the end effector16.
Take the arm's range of motion into account, so it cannot bump into people or equipment. The working range the manual shows does not include the end effector17.
Mount the arm on a sturdy, shockproof surface, with its bolts checked for tightness18.
Place the control box outside the arm's working range, so its emergency stop can be pressed in an emergency19.
Place the controller at a height of 0.6 m to 1.5 m20.
Draw a line to mark the arm's range of motion, including the reach of its tool21.
Connecting the cables
Plug the arm's power cable and signal cable into the arm. The connectors are foolproof; do not force them22.
Plug the control box's power cable into the control box's AC (110V-240V) interface, and the other end into the socket24.
Connect or disconnect the arm cable only with the external AC power disconnected, to avoid electric shock25.
Before you switch on
Check that the power cable and communication cable between the control box and the arm, the network or RS-485 cable, and the control box's power cable are all properly connected26.
Make sure the arm cannot hit any person or equipment within its working range27.
Switching on
Turn on the OFF/ON button and check that the indicator lights are lit1.
Press the power button. The control box is on when its CONTROLLER status light comes on2.
Turn the emergency stop button in the direction of its arrow so it pulls up. The ROBOT PWR light comes on3.
Enable the arm, from UFACTORY Studio or with an SDK command. This turns on its motors4.
The point: enabling is what turns the motors on. After it, the arm can start to move normally. In Studio the Enable button disappears once the arm is enabled8.
The manual names the controller light two ways. Its indicator table calls it STATE and says it flashes; step 2 calls it CONTROLLER and says it lights up28.
Running
UFACTORY Studio opens in a browser: type the control box's IP address followed by :1833329.
In Studio you set the arm's parameters, move it with Live Control, and build a program from Blockly blocks30.
While the arm runs, nobody and no other equipment should be in its working area9.
An arm that seems to have stopped may be waiting for a signal and about to act. Treat it as moving31.
Stopping
Studio's STOP button stops the arm at once and clears all its queued commands. It is a software stop: the power stays on32.
The emergency stop button is on the control box. Pressing it slows the arm in software, stops everything it is doing, clears its queued commands and removes its power within 300 ms33.
When the emergency stop is pressed, the arm will slightly brake and fall34.
The manual says the emergency stop should not be used as a risk reduction measure35.
Restarting after an emergency stop
The manual says operators must be trained in using Studio and the SDK, and users should fully understand the solutions to the arm's running errors36.
If you are not trained, leave the restart to someone who is.
Turn the emergency stop button in the direction of its arrow to power the arm up37.
Enable the arm again, with Studio's Enable button or motion_enable(true) in the Python SDK37.
Before you restart, make sure the restart motions will not hit any obstacle38.
Shutting down
Press the emergency stop button to power the arm off, and check that the power light is off39.
Switch off the control box's power. It takes about 5 seconds to turn off, and must not be restarted within those 5 seconds5.
Check yourself
Answer, then check. Each option has its own feedback, and nothing is scored.
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 learn what you do at the arm on an ordinary day: get connected, tell it what it is carrying, move it by hand, send it back to a known position, get it going again after it stops, and keep it in good order. It is for someone who will work near or with the cell.
Getting connected
The arm's default IP address is in the 192.168.1.xxx range. Put your computer on the same network segment as the control box, then open the control box's IP address followed by :18333 in a browser to reach Studio29.
The manual recommends connecting the control box directly to the PC, and advises against reaching the router over wireless, because of delay and packet loss40.
If the IP address is changed, mark the new one on the control box41.
When nobody knows the address any more, the manual resets it in five steps4243444546:
Press the emergency stop button and turn off the control box42.
Connect the controller's RI0 input to GND with a cable43.
Power on. A beep means the address is now 192.168.1.11144.
Unplug the RI0 to GND cable and wait 60 seconds for start-up45.
Enter 192.168.1.111:18333 in a browser to connect46.
Telling the arm what it carries
Set the TCP payload and TCP offset to match the real situation. The payload is the mass of the tool plus the object, in kg, with its centre of gravity in mm. With virtually no load, both are 047.
The TCP offset gives the tool's working point, its position and its orientation, relative to the centre of the flange47.
A wrong mounting direction stops the arm judging gravity correctly. It then raises collision warnings and stops often, and moves uncontrolled in manual mode48.
Studio can identify the payload by itself, but only with the arm on a steady floor. The arm runs a series of motions to work it out, so people and equipment nearby must be kept safe49.
Moving the arm by hand
Manual Mode, in Studio's Live Control, lets you move the joints freely by hand to reach and record positions. Studio says it can also drag the arm away from a danger zone50.
Manual mode turns on only when the serial numbers of the arm and the control box are matched50.
Before you turn it on, confirm the installation direction and TCP load. Otherwise the arm may not stay still, and Studio warns "it will be dangerous"51.
Teach sensitivity runs from level 1 to 5. The higher the level, the less force it takes to drag a joint52.
Studio records a hand-guided path at 250 Hz for up to 5 minutes, and plays it back at x1, x2 or x4 speed. Watch the arm's load state while recording, so that a large difference between the real and the set load does not make the arm move by itself53.
Going back to a known position
In Live Control, a long press on Initial Position moves the arm back to its initial position. By default every joint is at 054.
Live Control's jog speed runs from 1% (2.3 mm/s) to 100% (230 mm/s), starting at 50% (115 mm/s). Studio says this is not the arm's real maximum speed55.
When the arm stops on an error
When any error occurs, the controller switches the arm to its stopped state by itself, and it accepts no new command until it is set back to standby56.
Studio's error code C1 means the control box emergency stop button is pushed in. Release it and click "Enable Robot"57.
Studio's error code C2 means the control box emergency I/O is triggered. Ground its two EI inputs and click "Enable Robot"57.
Studio's error code C3 means the three-state switch's emergency stop is pressed. Release it and click "Enable Robot"57.
From the Python SDK, recovery is clean_error(), then motion_enable(true), then set_state(0)58.
For an alarm code Studio does not list, power on again. If several power cycles do not fix it, contact technical support59.
Clean the carbon fibre shell with 95% alcohol or 70% isopropanol, without letting liquid into the joints61.
If the arm is not used for 3 months or more, power it on for 6 hours every 3 months to charge its built-in battery, with the emergency stop released. It does not need to be enabled62.
The manual's Maintenance and Inspection chapter covers only long-term storage charging and cleaning63.
Before maintenance, remove the main power cable from the controller, and take precautions against anyone switching the system back on while you work64.
Check yourself
Answer, then check. Each option has its own feedback, and nothing is scored.
3Intermediate
Setting up and recovering the arm from code
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 start the arm from a program, set it up so that its collision detection can be trusted, and recover it when a program or a collision stops it. It is for someone who will set up, program or maintain the arm.
Starting the arm from the SDK
UFACTORY's Python SDK template starts the arm in six steps67:
After start-up the control box is in mode 0, position control, by default. Setting state 0 puts the arm in standby and clears the error code; the reported state then becomes 2, ready68.
A controller input configured as Enable Robot enables the arm when triggered, and one configured as Offline Task can trigger Blockly projects69.
A payload set through the SDK is lost at reboot unless saved. save_conf() keeps the current settings across a restart, and clean_conf() restores the defaults70.
Making collision detection trustworthy
Studio's presets include the xArm Gripper, at 0.82 kg with its centre of gravity at z = 48 mm and a TCP offset of z = 172 mm, and the xArm Vacuum Gripper, at 0.61 kg with its centre of gravity at z = 53 mm and a TCP offset of z = 126 mm66.
UFACTORY says collision detection can sometimes trigger falsely, often in connection with the tool's load, centre of mass, installation orientation or friction parameters. It recommends updating the payload after each pick and each release in a pick-and-place program71.
On xArm 5/6/7 arms the joint friction parameters used by collision detection are stored in the arm, and reloaded by pressing and releasing the emergency stop; on arms before XX1300 they are stored in the controller. Replacing the control box can leave them mismatched, which may trigger false collisions72.
Pausing, stopping and hand-guiding from a program
State 3 pauses motion and state 0 resumes it. State 4 stops the arm, after which it accepts no command until set back to standby73.
Manual mode is mode 2, and it must be reached through mode 0: from any other mode, the first request switches to mode 0 and only a second one takes effect. Switch back to mode 0 when teaching is done74.
Error code C22, self-collision: re-plan the path. If it keeps coming back, turn on manual mode in Live Control and drag the arm back to a normal position75.
Error code C23, a joint past its limit: press Initial Position in Live Control75.
Joint servo errors: release the control box emergency stop, then enable the arm. For S16, an encoder initialisation error, make sure no outside force moves the arm while it is powered on76.
For error code C31, abnormal current, Studio lists six checks77:
Studio's Debugging Tools can unlock a single joint so it can be turned by hand. The unlocked joint gives no force: someone must support the arm, and every joint must be locked again afterwards78.
Unlocking is mainly for moving an arm in error to a safer posture, or turning a joint that is past its range back into range79.
To reset a protective stop with a button, first set CI0 as Safeguard Reset under Settings - External - Controller IO - IO Function, and save80.
Then, to resume, connect SI0 and SI1 to GND and trigger CI0 to GND. To pause, disconnect SI0 and SI1 from GND81.
Going home skips the checks
move_gohome() returns the arm to zero at 50 °/s by default. reset() clears errors and warnings and, if the arm is not ready, enables it and sets its state. The SDK warns that both run without limit detection82.
After an emergency stop, the manual says to make sure restart or reset motions will not collide with any obstacle38.
Check yourself
Answer, then check. Each option has its own feedback, and nothing is scored.
4Expert
What sets the arm's pace, and what can fail
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 take the operating sequence apart: what sets the pace of a cycle on this arm, which figures you can and cannot plan from, how a program can fail part-way through, and how to start the arm and its programs from outside. It is for someone who designs, integrates or changes the cell.
Cycle time: measure it, do not derive it
The manual's TCP speed parameter runs from 0 to 1000 mm/s. That is the range of a setting83.
A speed setting is not a cycle time. Time a move on the arm itself, carrying the tool and the part it will really carry.
In the cell, this platform infers that the laser step may be the real bottleneck84.
A question to settle on the arm
Changing a critical setting such as the payload puts the controller into state 5 by itself. It then accepts no command until state 0 is set85.
UFACTORY recommends updating the payload after each pick and each release in a pick-and-place program71.
Put those two together before you write the cycle. Find out on the arm, with nobody in reach, what a payload change between a pick and a place does to a running program, and do not assume the answer either way.
How a program fails mid-cycle
The controller switches to state 4 by itself when any error occurs. It stops at once and accepts no new command until set back to standby56.
move_gohome() and reset() both run without limit detection82.
A payload set through the SDK and not saved with save_conf() is gone after a reboot70. UFACTORY links false collision triggers to the tool's load, among other things71.
Starting up with xarm_ros2
UFACTORY's xarm_ros2 starts the xArm 6 driver with xarm6_driver.launch.py and the controller's IP address86. Its command-line start-up then runs87:
Enable all joints with /xarm/motion_enable, id 8 and data 187.
In UFACTORY's Modbus TCP register map, stored Blockly projects are started by writing up to 16 holding registers from address 0x30, each value selecting a project by number; the projects then run in order88.
This project's simulation and agent design, not the physical cell
Commanding S6
This project's advice for S6: command motion through the Python SDK in mode 0 and read state from the automatic reports, and confirm the controller's IP address, hardware version and register map on the cell before relying on them89.
Guardrails for an agent that drives S6
This project's 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 approval90.
This project's advice: do not use Studio's simulated-arm mode as the simulation substrate for S6 agent work. Its settings apply to the real arm, and its unlock-joint button unlocks the real joints91.
Check yourself
Answer, then check. Each option has its own feedback, and nothing is scored.
Not settled
Open questions · 14
What the sources do not settle for this section. Nothing here is papered over with a plausible number.
Kind: Contradiction
The xArm manual describes the controller-on indicator in two ways: the indicator table calls it STATE and says it flashes when the controller is powered on, while power-on step 2 calls it the status indicator (CONTROLLER) and says it lights up.
The xArm manual's Maintenance and Inspection chapter covers only long-term storage charging and cleaning. No chapter of the fetched manual gives an inspection interval, a lubrication schedule, a brake test or a service life for any part; chapter 1 says only to check the bolts 'regularly'.
No fetched UFACTORY source gives cycle-time data for the xArm 6, or the speed and acceleration it reaches while carrying its full 5 kg payload across its reach; the payload versus TCP offset relationship is published only as a figure.
UFACTORY's xArm product page presents the xArm as a collaborative robot ('cobot'), while the xArm manual says no people or other equipment should be in the working area when the arm is in operation. Neither source says how the two fit together.
Cycle times for S2's moves (S1 to S4, S1 to S3, S3 to S4) and for the S4/S5 laser step are not documented, so throughput and the benefit of two arms cannot be quantified.
The number and positions of allocated S3 staging slots are not documented. The diagram's illustration shows six pads on the table, but it is a drawing, not a specification.
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).
IntelliMake's flow and layout route incoming material through staging (Receiving → Cobot Handling → Staging → Laser Engraving; S2 → S3 → S4), but this project's S2 design places directly on S4 and uses S3 only when S4 is busy. Whether the physical cell also skips staging, or IntelliMake's diagram is out of date for S2, is unresolved (Q14b).
The xArm manual gives no step-by-step unpacking procedure or packing checklist; its transport section covers lifting the arm and controller and keeping the packaging.
The text of the xArm manual's Robot Base Mounting section (2.2.3.1) consists of two figures and gives no written bolt size, bolt count or tightening torque. Any such figures are in the images, which this corpus has not read; no other chapter states them.
The xArm manual gives two different AC input ranges for the AC Control Box: the cabling step says 110V-240V, while section 3.2.2 says 100V-240V AC (47-63 Hz) and section 8.1 says 100-240V AC 50/60 Hz.
No fetched UFACTORY source gives the default collision sensitivity level for the xArm 6: the Studio settings page and glossary give the range, and the SDK's set_collision_sensitivity gives no default.
The xArm manual describes what an emergency stop needs before the arm can run again in two different ways. The emergency-stop column of section 3.4.1's table says 'Need re-initiation: Only releasing the brake'. Section 2.1.2 lists two restart steps: power the xArm up by turning the emergency stop button, then enable it (the servo motors) from Studio or the SDK. The manual does not say how the two relate.
xArm power-on step 3: turn the emergency stop button in the direction of the arrow so that it pulls up; the xArm power indicator (ROBOT PWR) then lights.
Evidence · 1 citation
Rotate the emergency stop button in the direction indicated by the arrow and is pulled up, at which point the xArm power indicator(ROBOT PWR) lights up.
UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.3.1 Power On, step 3 [series text: names no single model]
xArm shutdown step 2: turn off the Control Box power supply. The power switch takes about 5 seconds to turn the Control Box off, and the manual says not to restart it within 5 seconds of turning it off.
Evidence · 1 citation
Turn off the power supply of the control box(The power switch takes about 5 seconds to turn off the power of the control box. Please do not restart the control box within 5 seconds after turning off the power supply).
In IntelliMake's Phase 1 layout, S6 (the UFactory xArm 6 cobot) is drawn directly after S5, the xTool F1 Ultra laser engraver, with a flow arrow from S5 into S6. S5 performs personalization through laser engraving or marking, so in the drawing the laser station is S6's immediate upstream neighbour.
Evidence · 2 citations
S5 xTool F1 Ultra Laser Engraver Performs personalization through laser engraving or marking.
IntelliMake Phase 1 Factory: Autonomous Production Demonstrator (infographic) · IntelliMake.org · S5 station label and description
Enabling the arm powers it and turns on its motors, after which it can start to move normally. In UFACTORY Studio the Enable button does this and disappears once the arm is enabled; in the Python SDK the call is motion_enable(true).
Evidence · 3 citations
Enable Robotic Arm: Power on the robotic arm and turn on the motor of the robotic arm. After the robotic arm is enabled, it can start to move normally.
UFACTORY Studio User Manual (online), 2. Glossary · UFACTORY · Glossary, Enable Robotic Arm [general Studio text; the Studio manual says it applies to the xArm6]
Enable: Enable Robotic Arm. This button will disappears after the robotic arm is enabled.
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]
The project specification places S2 at the first Cobot Handling step of IntelliMake's gift flow, between Receiving and Staging; the second Cobot Handling step, after laser engraving, is S6's. IntelliMake's layout draws the stations in the matching order (see observation).
Evidence · 3 citations
Where it sits in the Initial Personalized Gift Production Flow (Receiving → **Cobot Handling** → Staging → Laser Engraving → …)
When installing the xArm, the manual says to take its range of motion into account so that it does not bump into people and equipment around it, and notes that the working range it shows does not include the end-effector. The manual gives one working-range figure for the xArm5 and xArm6 together.
Evidence · 2 citations
When installing the robotic arm, make sure the range of motion of the robotic arm is taken into account, so as not to bump into the surrounding people and equipment (the end-effector not included in the working range).
UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.2.2 Define Working Space [series text: names no single model]
The xArm manual says the arm must be properly and safely installed on a shockproof and sturdy mounting surface with its bolts checked for tightness, and that the arm should be installed on a surface that can withstand at least 10 times the full torsion of the base joint and at least 5 times the weight of the arm.
Evidence · 3 citations
Make sure the arm is properly and safely installed in place. The mounting surface must be shockproof and sturdy.
The robotic arm should be installed on a sturdy surface that is sufficient to withstand at least 10 times the full torsion of the base joint and at least 5 times the weight of the arm.
The xArm manual says the Control Box must be placed outside the arm's working range so that the emergency stop button can be pressed in an emergency.
Evidence · 1 citation
The Control Box must be placed outside the working range of the robotic arm to ensure the emergency stop button can be pressed once an emergency occurs.
UFACTORY xArm Hardware Manual (online), 1. Safety · UFACTORY · 1.3, CAUTION list [series text: names no single model]
The xArm manual says a line should be drawn to mark the arm's range of motion, including the operating range of its end tools such as grippers and suction cups.
Evidence · 1 citation
A line should be drawn to mark the range of motion of the robotic arm to let the operator acknowledge the robotic arm, including its end tools (such as gripper and suction cup, etc) operating range.
UFACTORY xArm Hardware Manual (online), 1. Safety · UFACTORY · 1.4 Personnel Safety, CAUTION [series text: names no single model]
xArm cabling step 1: plug the arm's power supply cable and signal cable connectors into the arm. The manual says the connectors are foolproof and not to unplug or plug them violently.
Evidence · 1 citation
Plug the connector of the Robotic Arm Power Supply Cable and the Robotic Arm Signal Cable into the interface of the Robotic Arm. The connector is a foolproof design. Please do not unplug and plug it violently.
UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.2.3.2 Connect with Controller, step 1 [series text: names no single model]
To avoid electric shock, the xArm manual says not to connect or disconnect the arm cable while the arm is connected to external AC, and to make sure the external AC is disconnected when doing so.
Evidence · 1 citation
When connecting or disconnecting the arm cable, make sure that the external AC is disconnected. To avoid any electric shock hazard, do not connect or disconnect the robotic arm cable when the robotic arm is connecting with external AC.
Before powering on the xArm, the manual says to make sure the power cable and communication wire between the Control Box and the arm, the network or RS-485 cable, and the Control Box power cable are all properly connected.
Evidence · 3 citations
Ensure the power cable and the communication wire are properly connected between the Control Box and the robotic arm.
UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.3 Power Supply for xArm [series text: names no single model]
The xArm manual describes the controller-on indicator in two ways: the indicator table calls it STATE and says it flashes when the controller is powered on, while power-on step 2 calls it the status indicator (CONTROLLER) and says it lights up.
Evidence · 2 citations
Controller Power Status | STATE | Flash - The controller is powered on.
UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.1.2, indicator table [series text: names no single model]
The arm's default IP is 192.168.1.xxx. To reach UFACTORY Studio, put the PC on the same network segment as the Control Box and enter the Control Box IP followed by :18333 in a browser (for example 192.168.1.201:18333).
Evidence · 2 citations
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 [general Studio text; the Studio manual says it applies to the xArm6]
UFACTORY Studio User Manual (online), 3. Connection · UFACTORY · 3.2 Software Connection [general Studio text; the Studio manual says it applies to the xArm6]
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
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
The xArm manual says that while the device is running, an arm that seems to have stopped may be waiting for a signal and about to act, and that it should be considered to be in action even in that state.
Evidence · 1 citation
Quote not shown (over 40 words). See the source at: 1.4 Personnel Safety, CAUTION [series text: names no single model].
UFACTORY xArm Hardware Manual (online), 1. Safety · UFACTORY · 1.4 Personnel Safety, CAUTION [series text: names no single model]
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]
The xArm's emergency stop button is on the control box. Pressing it sends a command for software deceleration, stops all activities of the arm and clears the cached commands in the control box; power to the arm is removed within 300 ms.
Evidence · 2 citations
By pressing the emergency stop button of the Control Box, a command will be sent to the Control Box for software deceleration to stop all activities of the robotic arm and clear all the cached commands in the Control Box;
When the xArm's emergency stop is pressed, the arm's posture will slightly brake and fall; the manual says the emergency stop should not be used as a risk reduction measure.
Evidence · 2 citations
The emergency stop should not be used as a risk reduction measure.
The xArm manual says installation and commissioning need to be performed by professionals (the sentence stops after 'in accordance'), that operators must be trained to guarantee a correct operating procedure when using the SDK (Python, ROS, C++) and UFactory Studio, that each operator should read the user manual carefully, and that users should fully understand the standard operating procedures and the solutions to the arm's running errors.
Evidence · 3 citations
Please follow the instructions in this manual, installation, and commissioning needs to be performed by professionals in accordance
UFACTORY xArm Hardware Manual (online), 1. Safety · UFACTORY · 1.3, DANGER list [series text: names no single model]
Each operator who uses the robotic arm system should read the product user manual carefully. Users should fully understand the standardized operating procedures with the robotic arm, and the solution to the robotic arm running error.
UFACTORY xArm Hardware Manual (online), 1. Safety · UFACTORY · 1.4 Personnel Safety, CAUTION [series text: names no single model]
After the emergency stop button has been pressed, the xArm manual gives two steps to restart: power up the xArm by turning the emergency stop button in the direction of the arrow, then enable the xArm (enable the servo motor) with the Enable button in UFACTORY Studio or motion_enable(true) in the Python SDK.
Evidence · 3 citations
After pressing the emergency stop button, the following operations should be performed to re-start the xArm:
The xArm manual says that if the arm needs an emergency stop while operating, make sure its restart or reset motions will not collide with any obstacle.
Evidence · 1 citation
If the robotic arm is in operation and needs an emergency stop, make sure the restart/reset motions will not collide with any obstacle.
UFACTORY xArm Hardware Manual (online), 1. Safety · UFACTORY · 1.3, CAUTION list [series text: names no single model]
The xArm manual gives four network setups and recommends connecting the Control Box directly to the PC. It does not recommend connecting the PC to the router by wireless, because of wireless delay and packet loss.
Evidence · 3 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 [series text: names no single model]
PC and router are connected by wireless network, and control box and router are connected by Ethernet cable. 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 [series text: names no single model]
xArm IP reset step 3 of 5: power on; a beep means the IP has been reset to 192.168.1.111.
Evidence · 1 citation
Turn on the power of the robot. After hearing the sound of 'beep', it means that the IP address of the robot has been reset successfully. The reset IP is 192.168.1.111.
UFACTORY Studio says to set the TCP payload and TCP offset according to the actual situation. The TCP payload is the actual mass of end-effector plus object in kg, with its centre of gravity in mm in the default TCP frame at the flange centre; with virtually no load, both must be set to 0. The TCP offset gives the tool centre point's position (X, Y, Z) and orientation (roll, pitch, yaw) relative to the flange-centre frame.
Evidence · 5 citations
Set TCP Payload and TCP Offset according to the actual situation.
UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.1.2 TCP [general Studio text; the Studio manual says it applies to the xArm6]
TCP Payload: The load weight refers to the actual mass (end-effector + object) in Kg; X/Y/Z-axis represents the position of the centre of gravity of payload in mm
UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.1.2 TCP [general Studio text; the Studio manual says it applies to the xArm6]
UFACTORY Studio says that if the arm's mounting direction is set incorrectly, the arm cannot accurately recognise the direction of gravity, which causes it to trigger collision warnings and stop frequently, and results in uncontrolled motion after it enters manual mode. For xArm arms with SN XF1300/XI1300/XS1300 and later, the built-in IMU detects the direction of gravity and the software prompts when the set direction differs from the detected one by more than 10°.
Evidence · 2 citations
Quote not shown (over 40 words). See the source at: 7.1.3 Coordinates, Mounting [general Studio text; the Studio manual says it applies to the xArm6].
UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.1.3 Coordinates, Mounting [general Studio text; the Studio manual says it applies to the xArm6]
UFACTORY Studio can identify the TCP payload automatically, but only with the arm mounted on a steady floor: the arm runs a series of motions to calculate it, and Studio says it is important to ensure the safety of equipment and people near the arm. The TCP offset can be found by teaching 5 points.
Evidence · 1 citation
Quote not shown (over 40 words). See the source at: 7.1.2 TCP, Method 2 [general Studio text; the Studio manual says it applies to the xArm6].
UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.1.2 TCP, Method 2 [general Studio text; the Studio manual says it applies to the xArm6]
Manual Mode in UFACTORY Studio's Live Control lets the joints be moved freely by hand to reach and record positions, and Studio says it can also be used to drag the arm away from a danger zone. Manual mode can be turned on only when the serial numbers of the arm and the Control Box are matched.
Evidence · 3 citations
Quote not shown (over 40 words). See the source at: 4.4 Position & Joint Control, Manual Mode [general Studio text; the Studio manual says it applies to the xArm6].
UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.4 Position & Joint Control, Manual Mode [general Studio text; the Studio manual says it applies to the xArm6]
When danger occurs, you can also use the manual mode to manually drag the robot away from the danger zone.
UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.4, Manual Mode [general Studio text; the Studio manual says it applies to the xArm6]
The serial number of robotic arm and the control box need to be matched before Manual Mode can be turned on.
UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.4, Manual Mode [general Studio text; the Studio manual says it applies to the xArm6]
Before turning on manual (joint teaching) mode, UFACTORY says to confirm that the arm's installation direction and TCP load are set correctly, otherwise the arm may not stay still because of inaccurate gravity compensation; Studio's Live Control page says that otherwise 'it will be dangerous'.
Evidence · 2 citations
Quote not shown (over 40 words). See the source at: 10.1 Mode 2: Manual Mode, NOTE [general Studio text; the Studio manual says it applies to the xArm6].
UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 2: Manual Mode, NOTE [general Studio text; the Studio manual says it applies to the xArm6]
Before opening the manual mode, you must ensure that the installation method of the robotic arm and the payload setting of the robotic arm are consistent with the actual situation, otherwise it will be dangerous.
UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.4 Position & Joint Control, Manual Mode [general Studio text; the Studio manual says it applies to the xArm6]
Teach sensitivity runs from level 1 to 5; the higher the level, the less force it takes to drag a joint in manual mode.
Evidence · 1 citation
Teach sensitivity range is from 1 to 5 level. The larger the set value, the higher the teach sensitivity level, and the less the force required to drag the joint in the manual mode.
UFACTORY Studio User Manual (online), 2. Glossary · UFACTORY · Glossary, Teach Sensitivity [general Studio text; the Studio manual says it applies to the xArm6]
UFACTORY Studio records a hand-guided trajectory by sampling joint positions at 250 Hz for up to 5 minutes, and plays it back at x1, x2 or x4 speed. Studio says to watch the arm's load state when recording, so that a large difference between the actual and set load does not make the arm move by itself.
Evidence · 3 citations
The position of the joint is obtained and recorded by 250HZ to record the motion trajectory of the robotic arm in free driving, and the maximum recording time is 5 minutes.
UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.2 Recording [general Studio text; the Studio manual says it applies to the xArm6]
When starting recording, be sure to pay attention to the load state of the robotic arm, so as to avoid the big difference between the actual load and the set load of the robotic arm, resulting in its self-motion.
UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.2, Create New File [general Studio text; the Studio manual says it applies to the xArm6]
In UFACTORY Studio's Live Control, long-pressing Initial Position moves the arm back to its initial position; the default initial position for the xArm and 850 has every joint at 0. Studio says setting an initial position can help return the arm to a relatively safe position when planning trajectories.
Evidence · 3 citations
Initial Position: Long press for continuous motion, the robotic arm will back to the initial position.
UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.4 Position & Joint Control, Initial Position [general Studio text; the Studio manual says it applies to the xArm6]
Setting the Initial Position of the robotic arm can help the user to return the robotic arm to a relatively safe position when planning the motion trajectory.
UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.1.1 Parameters, Initial Position [general Studio text; the Studio manual says it applies to the xArm6]
The Live Control jog speed in UFACTORY Studio runs from 1% (2.3 mm/s) to 100% (230 mm/s), with a default of 50% (115 mm/s); Studio says this is not the arm's actual maximum motion speed.
Evidence · 4 citations
50%=115mm/s, default
UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY · 4.4 Position & Joint Control, Speed [general Studio text; the Studio manual says it applies to the xArm6]
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)
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
Studio's fixes for the emergency-stop errors: for C1 (Control Box emergency stop button pushed in), release the button and click 'Enable Robot'; for C2 (Control Box emergency IO triggered), ground the Control Box's 2 EIs and click 'Enable Robot'; for C3 (three-state switch emergency stop pressed), release that button and click 'Enable Robot'.
Evidence · 3 citations
please release the Emergency Stop Button, and then click "Enable Robot"
UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1, table, C1 [general Studio text; the Studio manual says it applies to the xArm6]
Please ground the 2 EIs of the Control Box, and then click "Enable Robot".
UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1, table, C2 [general Studio text; the Studio manual says it applies to the xArm6]
Please release the Emergency Stop Button of the Three-state Switch, and then click "Enable Robot".
UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1, table, C3 [general Studio text; the Studio manual says it applies to the xArm6]
To recover from an arm error in the Python SDK, UFACTORY's steps are: clear the error with clean_error(), re-enable the arm with motion_enable(true), then set the motion state with set_state(0).
Evidence · 2 citations
error clearing: clean_error() | Re-enable the robotic arm: motion_enable(true) | Set the motion state: set_state(0)
UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.3 Python SDK Error Code and Handling [general Studio text; the Studio manual says it applies to the xArm6]
For alarm codes not listed in Studio's tables, Studio says to power on again, and to contact technical support if several power cycles do not fix it.
Evidence · 1 citation
For alarm codes that are not listed in the above table: Power on again. If the problem remains unsolved after power on/off for multiple times, please contact technical support.
UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1, after table [general Studio text; the Studio manual says it applies to the xArm6]
To clean the xArm's carbon fibre shell, the manual says 95% alcohol or 70% isopropanol can be used, taking care not to let liquid get into the joints. It says a small amount of grease may rarely be seen at the joints and will not affect normal use or joint life.
Evidence · 2 citations
Quote not shown (over 40 words). See the source at: 5. Maintenance and Inspection, Clean [series text: names no single model].
UFACTORY xArm Hardware Manual (online), 5. Maintenance and Inspection · UFACTORY · 5. Maintenance and Inspection, Clean [series text: names no single model]
If the xArm is not used for 3 months or more, the manual says to power it on for 6 hours every 3 months to charge its built-in battery, with the Control Box emergency stop button released; the arm does not need to be enabled.
Evidence · 1 citation
Quote not shown (over 40 words). See the source at: 5. Maintenance and Inspection, Long-term placement [series text: names no single model].
UFACTORY xArm Hardware Manual (online), 5. Maintenance and Inspection · UFACTORY · 5. Maintenance and Inspection, Long-term placement [series text: names no single model]
The xArm manual's Maintenance and Inspection chapter covers only long-term storage charging and cleaning. No chapter of the fetched manual gives an inspection interval, a lubrication schedule, a brake test or a service life for any part; chapter 1 says only to check the bolts 'regularly'.
Evidence · 2 citations
If the robotic arm is not used for a long time (≥3 months)
UFACTORY xArm Hardware Manual (online), 5. Maintenance and Inspection · UFACTORY · 5. Maintenance and Inspection (whole chapter: Long-term placement and Clean) [series text: names no single model]
The xArm manual says to remove the main power cable from the controller to ensure complete power disconnection, and to take precautions against anyone re-energising the system during maintenance.
Evidence · 1 citation
Remove the main power cable from the controller to ensure complete power disconnection. Take necessary precautions to prevent unauthorized re-energization of the system by others during maintenance.
UFACTORY xArm Hardware Manual (online), 1. Safety · UFACTORY · 1.4 Personnel Safety, DANGER [series text: names no single model]
UFACTORY Studio's default TCP presets include the xArm Gripper, at a payload of 0.82 kg with its centre of gravity at z = 48 mm and a TCP offset of z = 172 mm, and the xArm Vacuum Gripper, at 0.61 kg, centre of gravity z = 53 mm, TCP offset z = 126 mm.
UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.1.2 TCP, Default TCP payload [general Studio text; the Studio manual says it applies to the xArm6]
UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.1.2 TCP, Default TCP payload [general Studio text; the Studio manual says it applies to the xArm6]
UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.1.2 TCP, Default TCP payload [general Studio text; the Studio manual says it applies to the xArm6]
UFACTORY's Python SDK example template starts the arm in six steps: instantiate XArmAPI (with do_not_open true), register an error callback, connect, enable motion, set the mode, and set the state.
Evidence · 6 citations
1. Instantiate XArmAPI and specify do_not_open to be true
xArm-Python-SDK example 0000-template.py · UFACTORY · Docstring, steps 1-6 [SDK text for the xArm API; names no single model]
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]
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]
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]
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]
The SDK's set_tcp_load notes say the setting is lost after a reboot if not saved; save_conf records the current settings so they are not lost after a restart, and clean_conf restores the system default settings.
Evidence · 3 citations
2. If not saved, it will be lost after reboot
xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def set_tcp_load, Notes [SDK text for the xArm API; names no single model]
UFACTORY's support article says collision detection may sometimes be falsely triggered, often in relation to the end-effector load, centre of mass, installation orientation and friction parameters. It recommends updating the weight and centre of mass after changing the end effector or workpiece, updating the payload after pick and release actions in pick-and-place programs, setting the mounting direction correctly, and reloading the joint friction parameters after replacing the control box.
Evidence · 5 citations
In practical applications, the robot's collision detection function may sometimes be falsely triggered. This phenomenon is often related to the end effector load, center of mass, installation orientation, and friction parameters.
Collision Detection in UFACTORY Robotic Arms: Current and Dynamic Model-based Feature (UFACTORY support article) · UFACTORY · Section 2 [names UFACTORY robotic arms generally]
UFACTORY's support article says that for xArm 5/6/7 arms the joint friction parameters used by collision detection are stored in the arm and are reloaded by pressing and releasing the emergency stop, while for xArm 5/6/7 arms before XX1300 they are stored in the controller and reloading needs technical support. It says replacing the control box can leave the stored parameters mismatched, and that a mismatch may falsely trigger collision detection.
Evidence · 5 citations
xArm 5/6/7 | Robot Arm | Press and release the emergency stop
Collision Detection in UFACTORY Robotic Arms: Current and Dynamic Model-based Feature (UFACTORY support article) · UFACTORY · Section 2.3 Friction Parameters, table [names xArm 5/6/7]
From a program, state 3 pauses motion and state 0 resumes it; state 4 stops the arm, after which it accepts no command until the state is set back to STANDBY.
Evidence · 2 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 [general Studio text; the Studio manual says it applies to the xArm6]
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 [general Studio text; the Studio manual says it applies to the xArm6]
Manual mode (mode 2) must be set via mode 0: if the current mode is not 0, a request for mode 2 first switches the arm to mode 0 and takes effect only on a second command. When drag teaching is finished, switch back to mode 0.
Evidence · 2 citations
Quote not shown (over 40 words). See the source at: 10.1 Mode 2: Manual Mode [general Studio text; the Studio manual says it applies to the xArm6].
UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY · 10.1 Mode 2: Manual Mode [general Studio text; the Studio manual says it applies to the xArm6]
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 [general Studio text; the Studio manual says it applies to the xArm6]
For error C22 (self-collision), Studio says to re-plan the path, and if the error keeps recurring, to turn on manual mode in Live Control and drag the arm back to a normal position. For C23 (joint angle beyond its limit), it says to press Initial Position in Live Control to bring the arm back.
Evidence · 3 citations
C22 | Self-collision Error, Please Re-plan the Path.
UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1, table, C22 [general Studio text; the Studio manual says it applies to the xArm6]
If the robotic arm continues to report self-collision errors, please go to the "live control" interface to turn on the "manual mode" and drag the robotic arm back to the normal position.
UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1, table, C22 [general Studio text; the Studio manual says it applies to the xArm6]
C23 | Joints Angle Exceed Limit | Please go to the "Live Control" page and press the "Initial POSITION" button to let the robot back to the Initial position.
UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1, table, C23 [general Studio text; the Studio manual says it applies to the xArm6]
For joint servo errors, Studio's recovery method is to re-power: release the emergency stop button on the Control Box, then enable the arm. For S16 (encoder initialisation error), Studio says to make sure no external force moves the arm while it is powered on.
Evidence · 2 citations
Error processing method: Re-power on, the steps are as follows: | Release the emergency stop button on the control box. | Enable the robotic arm.
UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.2 Joint Servo Error Code and Handling [general Studio text; the Studio manual says it applies to the xArm6]
Please ensure that no external force pushes the robot arm to move when it's powered on.
UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.2, table, S16 [general Studio text; the Studio manual says it applies to the xArm6]
For error C31 (abnormal current in the arm), Studio lists six checks: whether the arm has collided; whether the TCP payload mass and centre of mass match the actual payload; whether the mounting direction matches reality; whether TCP payload parameters set in the program match the actual payload; reduce the motion speed; and lower the collision sensitivity.
Evidence · 7 citations
C31 | Abnormal current in the robotic arm
UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY · 12.1, table, C31 [general Studio text; the Studio manual says it applies to the xArm6]
UFACTORY Studio's Debugging Tools can unlock a single joint so it can be turned by hand; the unlocked joint provides no force. Studio says someone must support the arm's posture when joint brakes are released, to stop it falling, and that all joints must be re-locked manually afterwards.
Evidence · 3 citations
Click 'unlock' to unlock a single joint. The unlocked joint does not have any force to provide and thence external force support is needed.
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]
At this time, the joint can be dragged by hand to rotate. After confirming the position, please re-lock all the joints manually.
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]
When releasing the joint brakes, someone must support the robot's posture to prevent the robotic arm from falling without external force and damage the robotic arm and surrounding equipment.
UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.4.2, DANGER [general Studio text; the Studio manual says it applies to the xArm6]
Studio says unlocking a joint is mainly used to move the arm to a relatively safe posture when it reports an error, and that a joint past its range should be adjusted back into range by hand; the arm must be held by hand while the joint is unlocked.
Evidence · 2 citations
Quote not shown (over 40 words). See the source at: 7.4.2 Debugging Tools, Joint [general Studio text; the Studio manual says it applies to the xArm6].
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]
Protective-stop reset with a reset button, step 1: in UFactory Studio, go to Settings - External - Controller IO - IO Function, set CI0 as safeguard reset, and save.
Evidence · 1 citation
Enter 'Settings - External - Controller IO - IO Function', set CI0 as safeguard reset and save.
UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.1.4 Protective Stop with Rest Button [series text: names no single model]
Protective-stop reset with a reset button, step 2: to resume motion, connect SI0 and SI1 to GND and trigger motion by connecting CI0 to GND; to pause motion, disconnect SI0 and SI1 from GND.
Evidence · 1 citation
If xArm needs to resume motion, connect SI0 and SI1 to GND, and trigger the motion of xArm by connecting CI0 to GND; if xArm needs to pause the motion, disconnect SI0 and SI1 from GND.
UFACTORY xArm Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY · 3.4.1.4 Protective Stop with Rest Button [series text: names no single model]
In the Python SDK, move_gohome() moves the arm back to zero at a default 50 °/s, and reset() clears errors and warnings and, if the arm is not ready, enables motion and sets the state automatically. The SDK warns that both run without limit detection.
Evidence · 6 citations
Move to go home (Back to zero)
xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY · def move_gohome [SDK text for the xArm API; names no single model]
The xArm manual's motion-parameter table, which covers models XF1305, XI1305 and XS1305, gives the TCP (Cartesian) speed parameter a range of 0 to 1000 mm/s.
Evidence · 2 citations
Speed 0~1000mm/s 0~180°/s
UFACTORY xArm Hardware Manual (online), Preface · UFACTORY · 'Motion Parameters' table (the Preface says 'Apply to Model: XF1305, XI1305, XS1305'; the table names no single model), columns 'TCP Motion' and 'Joint Motion'
With two arms, loading incoming material (S2) and unloading and routing finished parts (S6) can happen at the same time. With one arm, both handling steps for every part would run one after the other on the same arm. How much this helps throughput is unknown, because no cycle times are documented (int-033), and the laser step may be the real bottleneck.
Why we infer this:Verified: the gift flow has two separate Cobot Handling steps, one before staging and laser engraving and one after (int-028), assigned to S2 and S6 (int-029). One arm would have to perform both in series; two arms let them overlap. This shows the steps can overlap, not that one arm would be the bottleneck: that depends on cycle times, which are undocumented (int-033).
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)
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').
xarm_ros2's command-line start-up for the xArm 6 enables all joints with /xarm/motion_enable (id 8, data 1), then sets mode 0 and state 0 with /xarm/set_mode and /xarm/set_state.
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.
Kind: RecommendationThis project's simulation and agent design, not the physical cellProject 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 Verifiediface-576 Verifiediface-586 Verifiediface-527 Verifiediface-526 Verifiediface-533 Gap, awaiting cell accessiface-534 Gap, awaiting cell accessiface-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).
Kind: RecommendationThis project's simulation and agent design, not the physical cellProject 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 Inferredsafety-509 Verifiedsafety-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.
Kind: RecommendationThis project's simulation and agent design, not the physical cellProject 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.
No fetched UFACTORY source gives cycle-time data for the xArm 6, or the speed and acceleration it reaches while carrying its full 5 kg payload across its reach; the payload versus TCP offset relationship is published only as a figure.
Evidence · 1 citation
The payload is related to the tcp offset.
UFACTORY xArm Hardware Manual (online), 7. Production Information · UFACTORY · 7.11 Max Payload [series text: names no single model]
S8, the Outbound Conveyor, moves completed products toward final packing and shipment. It is one of the stations after S6 in IntelliMake's layout; the diagram labels it both 'QC Hold' and 'Shipping' (see int-038).
Evidence · 2 citations
S8 Outbound Conveyor / QC Hold Moves completed products toward final packing and shipment.
IntelliMake Phase 1 Factory: Autonomous Production Demonstrator (infographic) · IntelliMake.org · Upper S8 panel, label and description
S10, Packing / Labeling, carries out final product preparation, identification, labeling and packing. It is the last station in IntelliMake's layout, and 'Packing & Labeling' is the last step of the initial gift production flow.
Evidence · 2 citations
S10 Packing / Labeling Final product preparation, identification, labeling, and packing.
IntelliMake Phase 1 Factory: Autonomous Production Demonstrator (infographic) · IntelliMake.org · S10 label and description
IntelliMake Phase 1 Factory: Autonomous Production Demonstrator (infographic) · IntelliMake.org · Initial Personalized Gift Production Flow banner, last steps
The xArm manual makes the integrators of the xArm responsible for complying with the country's safety laws and regulations, including making a risk assessment for the complete system and making sure there is a safe distance between people and the xArm when they interact with it.
Evidence · 2 citations
The integrators of xArm are responsible for the compliance of applicable safety laws and regulations in the country, to prevent any hazards in the operating environment. This includes, but is not limited to:
UFACTORY xArm Hardware Manual (online), 1. Safety · UFACTORY · 1.1 Validity and Responsibility [series text: names no single model]
UFACTORY's xArm product page presents the xArm as a collaborative robot ('cobot'), while the xArm manual says no people or other equipment should be in the working area when the arm is in operation. Neither source says how the two fit together.
Kind: RecommendationAwaiting cell accessThis project's simulation and agent design, not the physical cellProject 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 accesssafety-587 Gap, awaiting cell accesssafety-588 Gap, awaiting cell accesssafety-589 Gap, awaiting cell accesssafety-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.
Kind: RecommendationThis project's simulation and agent design, not the physical cellProject 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 Gapsafety-559 Verifiedsafety-560 Verifiedsafety-561 Verifiedsafety-564 Verifiedsafety-565 Verifiedsafety-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.
Cycle times for S2's moves (S1 to S4, S1 to S3, S3 to S4) and for the S4/S5 laser step are not documented, so throughput and the benefit of two arms cannot be quantified.
Awaiting cell access: this could be confirmed or corrected once the physical S6 cell can be observed.
The number and positions of allocated S3 staging slots are not documented. The diagram's illustration shows six pads on the table, but it is a drawing, not a specification.
Awaiting cell access: this could be confirmed or corrected once the physical S6 cell can be observed.
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).
IntelliMake's flow and layout route incoming material through staging (Receiving → Cobot Handling → Staging → Laser Engraving; S2 → S3 → S4), but this project's S2 design places directly on S4 and uses S3 only when S4 is busy. Whether the physical cell also skips staging, or IntelliMake's diagram is out of date for S2, is unresolved (Q14b).
The xArm manual gives no step-by-step unpacking procedure or packing checklist; its transport section covers lifting the arm and controller and keeping the packaging.
Evidence · 1 citation
Transport the robot in the original packaging.
UFACTORY xArm Hardware Manual (online), 7. Production Information · UFACTORY · 7.5 Transportation [series text: names no single model]
The text of the xArm manual's Robot Base Mounting section (2.2.3.1) consists of two figures and gives no written bolt size, bolt count or tightening torque. Any such figures are in the images, which this corpus has not read; no other chapter states them.
Evidence · 1 citation
2.2.3.1 Robot Base Mounting
UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.2.3.1 Robot Base Mounting (heading followed only by figures) [series text: names no single model]
The xArm manual gives two different AC input ranges for the AC Control Box: the cabling step says 110V-240V, while section 3.2.2 says 100V-240V AC (47-63 Hz) and section 8.1 says 100-240V AC 50/60 Hz.
Evidence · 3 citations
AC (110V-240V)
UFACTORY xArm Hardware Manual (online), 2. Hardware Installation · UFACTORY · 2.2.3.2 Connect with Controller, step 3 [series text: names no single model]
No fetched UFACTORY source gives the default collision sensitivity level for the xArm 6: the Studio settings page and glossary give the range, and the SDK's set_collision_sensitivity gives no default.
Evidence · 2 citations
The collision sensitivity range is 1 to 5 levels.
UFACTORY Studio User Manual (online), 7. Settings · UFACTORY · 7.1.1, Collision Detection Sensitivity [general Studio text; the Studio manual says it applies to the xArm6]
The xArm manual describes what an emergency stop needs before the arm can run again in two different ways. The emergency-stop column of section 3.4.1's table says 'Need re-initiation: Only releasing the brake'. Section 2.1.2 lists two restart steps: power the xArm up by turning the emergency stop button, then enable it (the servo motors) from Studio or the SDK. The manual does not say how the two relate.
Evidence · 3 citations
Need re-initiation | Only releasing the brake | No
CODE_SESSION 01 — xArm 850 Interactive Learning Platform (project specification) · 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.
Owner statements, 2026-09-21 (verbatim) · Derek Stringfellow (project owner) Derek Stringfellow, project record · Project-internal record · retrieved 2026-09-21 · cited by 2 records here · Project copy; not published on this site.