§6 xArm 850
Basic Operating Sequence
S2's production cycle first, then the machine's own day: set up, power on, run, stop and shut down.
Start Here
This section follows the arm through its work. It starts with the cell's route for the parts the arm moves, then walks through the machine's own day: setting it up, switching it on, running it, stopping it and shutting it down. Every tier below starts from the same four facts.
- S2 sits after S1, the incoming conveyor, and ahead of S3, the staging table, and S4, the laser engraver conveyor678.
- S2 takes each part from S1 to S3 first, stacking cards of the same color together there, and later moves it from S3 on to S491011.
This project's simulation and agent design, not the physical cell
- This project's design adds a signal to that route: S2 moves a part from S3 to S4 once S4 signals "all clear and ready"12.
- Whatever the cycle, the arm can move only after it has been enabled13.
S2 in one line: S2 is the xArm 850 arm that picks up incoming material and moves it between receiving, staging and production1415.
Look Back
A question from earlier on, to keep it fresh. Skip it if you like; nothing depends on it.
Choose your depth
1Beginner
S2's Cycle, Then a Working Day
For: Anyone with no robotics background: a visitor, a new operator, a manager
Kind of task: Recognize and recall, with plain-language explanations and pictures
In this part you follow the arm's job in the cell, with the timing this project's design adds, and then 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.
S2's Cycle
In the cell, S2's route for a part is S1 to S3, then S3 to S49:
- Not every card makes all three steps: a card found defective goes to the defects area on S3 instead, apart from the staged cards1718.
This project's simulation and agent design, not the physical cell
- S2 moves a card from S3 to S4 when S4 signals "all clear and ready"1219.
- If S3 has no room and S4 is busy, S2 waits and watches S4. Once S4 is free, it sends a card from S3 to it; the freed space on S3 lets S2 take from S1 again20.
- Throughout, the agent is designed to move the arm through the order's normal path itself. If anything falls off that path, it pauses the arm and reports the issue with recommended actions, and a person decides2122.
Setting the Arm Up
UFACTORY's manual sets the arm up in five steps2324252627:
- When you define the working space, allow for the arm's full range of motion, so it cannot hit people or equipment. The published working range does not include the tool28.
- Connect or disconnect the arm cable only with the external AC power disconnected29.

Before You Switch On
- Check that the power and communication cables between the control box and the arm are properly connected32.
- Check the network cable, or the RS-485 cable if that is what you use33.
- Check the control box's own power cable34.
- Make sure the arm cannot hit any person or equipment within its working range35.
Switching On
- Turn on the OFF/ON switch 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 that it pops up. The ROBOT PWR light comes on and the arm has power3.
- Enable the arm, from UFACTORY Studio or with an SDK command. This switches on its motors4.

Running a Program
In UFACTORY Studio, the Run and Pause buttons start and pause a Blockly program36. How a computer connects to Studio is in the Novice tier.
Stopping
- Studio's STOP button stops the arm at once and clears its queued commands. It is a software stop, and the power stays on37.
- The emergency stop on the control box slows the arm in software, clears its queued commands and removes the arm's power within 300 ms. The arm will slightly brake and fall38.
- The e-stop is for emergencies. UFACTORY says it should not be used as a way of reducing risk, so it never replaces keeping clear39.
Restarting After an Emergency Stop
Only trained people restart the arm. UFACTORY requires operators to be trained in its software40. If you are not, leave the restart to someone who is.
- Before you restart, make sure the restart motions will not hit anything43.
Shutting Down
Check Yourself
Answer, then check. Each option has its own feedback, and nothing is scored.
2Novice
Running and Recovering Day to Day
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, and get it going again after it stops. It is for someone who will work near or with the cell.
Draining the Staging Table
- Cards S2 arranges on S3 do not stay there: S2 moves them on from S3 to S49.
This project's simulation and agent design, not the physical cell
- In this project's design, S2 moves them from S3 to S4 once S4 gives its "all clear and ready" signal12.
- That signal is one of the pieces of information S2 takes in from other stations19.
- S2 also reports its own state46.
- On the order's normal path the agent is designed to make these moves itself, with no person approving each one21.
- If a step does not complete as the order expects, the agent pauses the arm and alerts you with the issue and recommended actions. It has not fixed anything: the decision about what happens next is yours2221.
Getting Connected
- In the cell, the arms are currently understood to be operated manually mainly through UFACTORY Studio47.
- Your computer needs an IP address in the same 192.168.1.x range as the control box48. The lab opens Studio with the desktop app: enter the controller's address in its IP search field and click Connect Server4950.
- If you change the controller's IP address, write the new address on the control box, so the next person can find it51.
When nobody knows the address any more, the manual resets it in five steps5253545556:
- Press the emergency stop button and turn off the control box52.
- Connect the controller's RI0 input to GND with a cable53.
- Power on. A beep means the address has been reset to 192.168.1.11154.
- Remove the RI0 to GND cable and wait about 60 seconds for start-up55.
- Connect to the arm at 192.168.1.111. The manual's step enters 192.168.1.111:18333 in a browser56; in the lab's desktop app, enter the address in the IP search field and click Connect Server4950.
Telling the Arm What It Carries
- In Studio, set the TCP payload and TCP offset to match the tool actually fitted, under Settings > Motion > TCP57.
- The TCP payload is the mass of the tool plus the workpiece, in kg, and where its center of gravity sits, in mm. With nothing fitted, both are set to 058.
- The TCP offset says where the tool's working point is, and how it is turned, relative to the center of the flange at the end of the arm59.
- Set the mounting direction to match how the arm is really installed. A wrong setting makes the arm misjudge gravity: expect false collision stops, and uncontrolled motion in manual mode60.
- So the mounting direction and payload are set first, before collision sensitivity is tuned or manual mode is used. That order is this platform's inference from the manual, not a UFACTORY step list61.
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. It can also be used to drag the arm out of a dangerous position62.
- Before you turn it on, the mounting and payload settings must match reality; UFACTORY says otherwise it will be dangerous63. A wrong mounting setting, for one, makes the arm misjudge gravity, which can mean uncontrolled motion in manual mode60.
- Manual mode can be turned on only when the serial numbers of the arm and the control box are matched64.
- Teach sensitivity, levels 1 to 5, sets how hard you must push to drag the arm. A higher level needs less force65.
- A path you teach by hand can be recorded at 250 Hz for up to 5 minutes and played back at 1x, 2x or 4x speed. Recordings can be used in Blockly projects66.

Going Back to a Known Position
- In Live Control, a long press on Initial Position moves the arm to its initial position. By default that is all joints at 069.
- Live Control's jog speed runs from 1% (2.3 mm/s) to 100% (230 mm/s), and starts at 50% (115 mm/s). That is a jogging speed, not the fastest a program can move the arm70.
When the Arm Stops on an Error
- When an error occurs, the arm stops at once and throws away its queued commands. You must clear the error by hand and re-plan the motion before normal work continues71.
- If Studio shows error code C1, the control box's emergency stop has been pushed. Release the button, then click "Enable Robot"72.
- That is the same two-step restart as after any emergency stop: turn the button in the direction of its arrow, then enable the arm again in Studio or with motion_enable(true)73.
- A joint servo error is recovered the same way: release the emergency stop, then enable the arm74.
- For an alarm code the manual does not list, power the arm on again. If several power cycles do not fix it, contact technical support75.
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 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.
What a Program Needs to Know to Run S2's Cycle
- The route is simple to state: S2 moves a part from S1 to S3, then from S3 to S49. On S3, cards of the same color are stacked together in their own area1011.
- So a program has to know each card's color, which area of S3 holds that color's stack, and how full that stack is against a stack limit. The limit is not documented, so the program can only hold a placeholder for it78.
- To send a card to the defects area instead, it needs a way to judge the card defective; S2's own camera, on the arm itself, may possibly check material for that7879.
This project's simulation and agent design, not the physical cell
- When S3 has no room and S4 is busy, S2 watches S4, and sends a card from S3 once S4 is free; that frees room on S3 for the next pick from S120.
- On the order's normal path the agent is designed to make these moves itself, with no person approving each one. When a step does not complete as the order expects, the agent pauses the arm and reports the issue with recommended actions, and a person decides; neither the agent nor the program corrects it on its own2122.
Starting the Arm from the SDK
UFACTORY's Python template starts the arm in this order80818283:
- Create XArmAPI with the controller's IP address and connect. The template registers an error and warning callback before it connects80.
- Enable motion with motion_enable(enable=True)81.
- Set the mode, for example set_mode(0) for position control82.
- Set the state with set_state(state=0). The arm now accepts motion commands83.
- Settings you change through the SDK, such as payload, TCP offset and sensitivities, are lost at reboot unless you save them with save_conf()84.
- Studio can export the settings (motion parameters, TCP offset, payload, I/O settings, safety boundary, mounting, coordinate systems) and import them on another arm. Export before a factory reset85.
Making Collision Detection Trustworthy
- Studio's preset named "Gripper" is a payload of 0.82 kg with its center of gravity at z = 48 mm, and a TCP offset of z = 172 mm86.
- The payload can also be identified automatically, 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 safe87.
- Collision detection stops the arm when joint torque departs from normal. A higher sensitivity value means a smaller extra torque triggers the stop88.
- Wrong payload or mounting settings can cause false collision alarms. UFACTORY's Settings page says the sensitivity may be lowered for some heavy or fast moves once those settings are confirmed, and does not recommend going below 389.
- In a pick-and-place program, update the TCP payload after each pick and each place, so that collision detection models the load actually carried9091.
Pausing, Stopping and Hand-Guiding from a Program
- Pause motion with set_state(3) and resume with set_state(0). Stop with set_state(4); after a stop, set_state(0) is needed before new commands92.
- Manual mode is mode 2, and it must be set from mode 0. UFACTORY's example switches to mode 0 if needed, then calls set_mode(2) and set_state(0). Switch back to mode 0 when teaching is done93.
Recovering from Errors
From the SDK, recovery is three calls in order949596:
- Self-collision, C22: re-plan the path. If it keeps coming back, turn on manual mode in Live Control and drag the arm back to a normal position97.
- A joint past its limit, C23: press Initial Position in Live Control to bring the arm back77.
For a collision error, C31, the Studio manual as read on 2026-10-13 shows the joint, its theoretical and actual torque, the collision sensitivity, the TCP payload and the mounting direction, and gives one instruction: check whether the robot has collided98. Until that date it listed six checks, in this order, and it has not said they no longer apply99100101102103104105:
- Check whether the arm has actually collided100.
- Check that the payload mass and center of mass under Settings > TCP Settings > TCP Payload match the real payload101.
- Check that the mounting direction under Settings > Mounting matches reality102.
- Check that payload settings made inside the program match the real payload103.
- Reduce the arm's motion speed104.
- The sixth check was to lower the collision sensitivity under Settings > Motion > Sensitivity Settings105. A higher sensitivity means a smaller extra torque triggers the stop, and UFACTORY does not recommend going below 38889. UFACTORY warns that altering the controller's safety configuration makes the system a new one whose risk assessment must be updated106.
- With Collision Rebound on, the arm rebounds backward a certain distance after it hits something. With it off, and collision detection on, it stays where the collision was detected107.
When the Arm Is Stuck
- With the arm in error, a single joint can be unlocked from Studio's Debugging Tools to move it to a safer posture. Someone must support the arm while the joint is unlocked, and every joint must be locked again afterwards108.
- UFACTORY's manual describes a protective stop with a reset button. In it CI0 is set as Safeguard Reset in Studio (Settings > External > Controller IO > IO Function)109, and the arm resumes when SI0 and SI1 are connected to GND and CI0 is triggered; it pauses when SI0 and SI1 are disconnected from GND110. SI is the control box's protective stop input111. UFACTORY says installation and commissioning must be done by professionals40.
Going Home Skips the Checks
- move_gohome() returns the arm to zero at 50 °/s by default, without limit checks. Pass wait=True to block until it arrives112.
- reset() clears errors and warnings, enables motion, sets the state if the arm is not ready, and moves the arm home, also without limit checks113.
- So neither call is a safe "get out of trouble" button: the path home must be clear before you use it11243.
Check Yourself
Answer, then check. Each option has its own feedback, and nothing is scored.
4Expert
What Drives Cycle Time, and What Can Fail
For: Someone who designs, integrates or changes the cell: integrator, engineer, agent developer
Kind of task: Analyze and decide: weigh trade-offs, resolve contradictions, critique a configuration
In this part you take the operating sequence apart: what sets the pace of the arm's cycle, how a program can fail mid-cycle, and what a program for the arm's cycle has to sense. It is for someone who designs, integrates or changes the cell.
What Sets the Pace of the Cycle
- S2's cycle is built from two moves for each card bound for the laser: S1 to S3, then S3 to S49. A defective card makes a move of its own, to the defects area on S318.
This project's simulation and agent design, not the physical cell
- In this project's design, the move from S3 to S4 waits for S4's "all clear and ready" signal12.
- In automatic mode, from Blockly or the Python IDE in Studio, the maximum speed is 1000 mm/s. That is a cap, not the speed S2 will reach114.
- The UFACTORY sources give no cycle-time data, and no figure for the speed and acceleration the arm achieves carrying its full 5 kg payload across its reach115.
- UFACTORY says to update the TCP payload after each pick and each place, so every move adds two payload updates, and each card bound for the laser makes two moves909.
So a cycle time cannot be worked out from the speed setting. Measure it on the arm, running the real program with the real load.
- The arm may not set the pace at all. This platform infers that the laser step may be the real bottleneck116.
Payload Updates and the Controller's State
- Changing a critical setting, including the payload, puts the controller into state 5 on its own, and it accepts no commands until state 0 is set117.
- A pick-and-place program updates the payload after each pick and each place. Test on the arm whether those updates also put it into state 5 before a program relies on either behavior11790.
How a Program Fails Mid-Cycle
- An error stops the arm at once and throws away its queued commands. The error must be cleared and the motion re-planned, so a program cannot simply carry on from where it was71.
- move_gohome() and reset() both drive the arm home without limit checks112113.
- After an emergency stop, the restart or reset motions must not hit anything43.
- Settings sent through the SDK and not saved with save_conf() are gone after a reboot, and a wrong payload then triggers false collision stops8491.
Starting Up Under ROS
In ROS 2 the 850 starts up the same way as from the SDK118:
What a Program for S2's Cycle Has to Sense
- Each card's color, which area of S3 holds that color's stack, and how full that stack is against a stack limit, which is not documented; and, for the defects area, a way to judge a card defective, which S2's camera may possibly provide. This platform infers these from the route78. That camera is the arm's own, on the arm itself, not Camera C1 or Camera C27976119. Incoming orders will carry the parameters of the cards, but no source names them as S2's inputs12078.
This project's simulation and agent design, not the physical cell
- S4's "all clear and ready" signal, which starts every move from S3 to S4 in this project's design12.
- Which stacks on S3 hold cards, whether the stack for a card's color has room for another, and whether material is waiting at S1. The design's placement rule cannot choose a branch, or move a card from S3 to S4, without them, so this platform infers them as inputs121.
- Without the state of S3's stacks, a program facing a full stack and a busy S4 cannot know it must wait for S420121.
Check Yourself
Answer, then check. Each option has its own feedback, and nothing is scored.
Not settledOpen Questions · 15
What the sources do not settle for this section. Nothing here is papered over with a plausible number.
- Kind: Contradiction
UFACTORY's Studio manual has given two readings of the handling for error C31. Until 2026-10-13 it listed six numbered checks. As read on 2026-10-13 it shows a diagnostic readout and one instruction; the other five checks are no longer in the row. The manual does not say they no longer apply. UFACTORY's release note for Studio 2.7.0 says C31 'now displays the robot-arm serial number' and that theoretical and actual torque values are logged when the error occurs; it does not mention the six checks, and no fetched source says which Studio versions show the six checks or the single instruction.
See reference 99 - Kind: Gap
No fetched source gives cycle-time data or the maximum speed and acceleration the 850 achieves while carrying its full 5 kg payload across its reach.
See reference 115 - Kind: Contradiction
The 850 product page calls UFACTORY arms 'Collaborative Robots' and 'cobots'. A3 says ISO 10218:2025 drops 'collaborative robot' because only an application can be confirmed as collaborative, and UFACTORY's own 850 manual says no people should be in the working area during operation. The marketing label does not establish that S2 is a collaborative application.
See reference 128 - 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 131 - Kind: Gap
Cycle times for S2's moves (S1 to S3, S3 to S4, and a defective part's move to the defects area) and for the S4/S5 laser step are not documented, so throughput and the benefit of two arms cannot be quantified.
See reference 132 - 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. IntelliMake says this will be developed as the simulation is created.
See reference 133 - Kind: Contradiction
IntelliMake's written answer (Batch 01, Question 2) and the project's earlier statements have S2 place a part on S4, or on S3 when S4 is busy or the part does not fit there, so that parts need not pass through staging; this project's simulation was specified from that reading, moving cards from one conveyor to another (int-013, int-014, int-051). The project's later statement S146, answering which is right now, gives the route as S1 to S3, and S3 to S4: S2 arranges parts on S3 first, then later moves them from S3 to S4 (int-081). The later statement is the current reading; the earlier records are kept as history, marked as superseded.
See reference 134 - Kind: Contradiction
The project's earlier statement says S2 'can not simply stack' workpieces (int-017), which this project's S2 design read as one card per place on S3. Asked whether same-color cards are placed on top of each other or side by side, the later statement S146 answers 'On top of each other': real stacks on S3 (int-084). The later statement is the current reading for S3, and int-017 is kept as history, marked as superseded. Whether the rest of the earlier rule, not breaking the space the system allocates, still holds is not stated.
See reference 135 - Kind: Gap
How S3 is divided between its staging and defects areas, how many colour areas staging holds, and how many cards a stack may hold are not documented. Whether S3 can hold both kinds of material is itself open: a separate defects station could be added if it cannot (int-087).
See reference 136 - Kind: Gap
How this project's simulation keeps to the cell's route is not fully settled. Since its configuration's schema 0.5.0 (2026-10-07), the simulation is configured to take each card from S1 to S3, then from S3 to S4 (int-081), and S3 has a staging area and a defects area whose stacks each hold up to 10 cards, a labelled placeholder (int-104; one card until 2026-10-18). Since 2026-10-09 the simulation's motion process refuses to place a card anywhere its route does not take it from the place it was picked, and refuses any pick or place in the defects area, which a person must decide (the way for a person to decide is not yet built). Keeping one colour to each stack, and which stack a card goes to, are designed but not enforced: they rest on labels the simulation cannot check. Before 0.5.0 the simulation placed each card on S4, or on S3 when S4 was busy (int-014).
See reference 137 - Kind: Gap
The fetched manuals do not give a step-by-step unpacking procedure or a packing checklist for the 850.
See reference 138 - Kind: Gap
The default collision sensitivity level of the 850 is not stated in the fetched sources.
See reference 139 - Kind: Gap
UFACTORY's Studio manual does not say how a script is run, paused, resumed or stopped in the Python IDE, nor how a paused Blockly program is resumed: it lists Blockly's Run and Pause buttons and the STOP button, and no Resume.
See reference 140 - Kind: Gap
Which of Live Control's two Vacuum Gripper buttons, OPEN or CLOSE, switches suction on is not stated: UFACTORY's Studio manual lists the Vacuum Gripper among Live Control's end effectors without describing its buttons, and the 850's screen of 2026-10-22 shows only their names.
See reference 141 - Kind: Contradiction
Sources disagree on the top speed of manual jogging from UFACTORY Studio's Live Control page: User Manual V2.3.0 gives the 850 a maximum of 250 mm/s in teaching mode (the Live Control page), while the online UFACTORY Studio manual says the Live Control speed setting reaches 230 mm/s at 100%. Neither source explains the 20 mm/s difference. The 250 mm/s may be a mode ceiling and 230 mm/s the top slider setting, but no source says so. Both are far below program (automatic mode) speed.
See reference 142
ProvenanceReferences · 142
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, the project owner stated it as the design, or it was observed directly. It does not mean anyone measured it at S2.
- 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 S2 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.
Image Credits
- Line drawings of the 850 control box with its front and back panels labeled: emergency stop, robot power, state, power switch, AC port, network port, LAN, robot 48V, enabling switch and IO. © UFACTORY (Shenzhen UFACTORY Co., Ltd.). Source. Used with UFACTORY's written permission (2026-09-23), on the condition that each image links back to its source page.
- A line drawing of the 850 control box from the front, with the red emergency stop button on top and the network port, LAN, robot 48V, enabling switch, state and robot power labeled. © UFACTORY (Shenzhen UFACTORY Co., Ltd.). Source. Used with UFACTORY's written permission (2026-09-23), on the condition that each image links back to its source page.
- A person's hand pushing a white UFACTORY arm by its wrist to move it. © UFACTORY (Shenzhen UFACTORY Co., Ltd.). Source. Used with UFACTORY's written permission (2026-09-23), on the condition that each image links back to its source page.
- 3D model: © 2018 UFACTORY Inc., BSD-3-Clause, from UFACTORY Inc. (xArm-Developer/xarm_ros2). License text · Source
Sources for This Section
- CODE_SESSION 01 — xArm 850 Interactive Learning Platform (project specification) · Derek Stringfellow (project owner)
- Collision Detection in UFACTORY Robotic Arms: Current and Dynamic Model-based Feature (UFACTORY support article) · UFACTORY (manufacturer)
- IntelliMake Phase 1 Factory: Autonomous Production Demonstrator (infographic) · IntelliMake.org (IntelliMake)
- Owner statements from 2026-09-24 onward (verbatim; S40 and later) · Derek Stringfellow (project owner)
- Owner statements, 2026-09-21 (verbatim) · Derek Stringfellow (project owner)
- UFACTORY 850 Hardware Manual (online), 1. Safety · UFACTORY (manufacturer)
- UFACTORY 850 Hardware Manual (online), 2. Hardware Installation · UFACTORY (manufacturer)
- UFACTORY 850 Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY (manufacturer)
- UFACTORY 850 Hardware Manual (online), 7. Production Information · UFACTORY (manufacturer)
- UFACTORY 850 product page · UFACTORY (manufacturer)
- UFACTORY 850 User Manual V2.3.0 (PDF, older edition) · UFACTORY (manufacturer)
- UFACTORY Release Note v2.7.0 · UFACTORY (manufacturer)
- UFACTORY Studio screens and a control-box photo for the xArm 850, 2026-10-22: what they show (OBSERVATIONS.md) · Derek Stringfellow (project owner)
- UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY (manufacturer)
- UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY (manufacturer)
- UFACTORY Studio User Manual (online), 2. Glossary · UFACTORY (manufacturer)
- UFACTORY Studio User Manual (online), 3. Connection · UFACTORY (manufacturer)
- UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY (manufacturer)
- UFACTORY Studio User Manual (online), 5. Blockly · UFACTORY (manufacturer)
- UFACTORY Studio User Manual (online), 7. Settings · UFACTORY (manufacturer)
- UFACTORY Studio User Manual, 12. Error Handling, as it read until 2026-10-13 (publisher's repository, commit 533b75d) · UFACTORY (manufacturer)
- Updated ISO 10218: Answers to Frequently Asked Questions (FAQs) (A3 blog, 03/20/2025; Wayback Machine snapshot 2025-10-06) · Association for Advancing Automation (A3) (secondary)
- xArm 850 S2 Project: Open Questions for IntelliMake, Batch 01 responses · IntelliMake.org (IntelliMake)
- xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY (manufacturer)
- xArm-Python-SDK example 0000-template.py · UFACTORY (manufacturer)
- xarm_ros2 ReadMe (humble branch) · UFACTORY (manufacturer)
IntelliMake diagrams are redrawn as native figures, © IntelliMake.org. UFACTORY does not endorse this platform.