§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.

  • 4

    steps to power on1234

  • 5 s

    wait after power-off before switching on again5

  • 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.

q-s02-b-01 Which station comes directly before S2?
  1. Check option (a)

    Correct. Right. S1 receives incoming blanks and moves them into production, and S2 picks from there.615

  2. Check option (b)

    Not this one. The laser comes after S2. The flow runs Receiving → Cobot Handling → Staging → Laser Engraving.122

  3. Check option (c)

    Not this one. S6 is the other arm. It works downstream, after the laser.123124

  4. Check option (d)

    Not this one. Shipping is near the end of the flow. S2 is at the start, straight after Receiving.122125

q-s01-b-03Safety UFACTORY calls the 850 a "collaborative robot". Does that mean you can stand in its working area while it runs?
  1. Check option (a)

    Not this one. UFACTORY's own manual says no people should be in the working area while the arm is running. Whether an installation is safe to share is decided by a risk assessment of the whole system, not by the label.126127128

  2. Check option (b)

    Correct. Right. UFACTORY says to keep people out of the working area while the arm runs, and makes the integrator responsible for a risk assessment of the whole system.126127

  3. Check option (c)

    Not this one. Collision detection is a controller feature, and the UFACTORY sources do not call it safety-rated. This project's advice is not to treat it as a safeguard. Stay out while the arm runs.67129130126

Choose your depth

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

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:

  1. Take a card from the S1 conveyor16.
  2. Place it on S3, the staging table, in the area for its color, on top of the cards already there1011.
  3. Later, move a card from S3 on 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:

  1. Define the working space23.
  2. Fix the robot base24.
  3. Connect the arm to the controller25.
  4. Connect the controller's cables26.
  5. Fit the tool on the end of the arm, the end effector27.
  • 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.
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.
The control box houses the arm's control system; its front panel carries the status lights and the emergency stop3031. Image: UFACTORY

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

  1. Turn on the OFF/ON switch and check that the indicator lights are lit1.
  2. Press the power button. The control box is on when its CONTROLLER status light comes on2.
  3. 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.
  4. Enable the arm, from UFACTORY Studio or with an SDK command. This switches on its motors4.
  • The point: after step 3 the arm has power, but it can move only once it is enabled313.
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.
The emergency stop button sits on the control box31. Image: UFACTORY

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.

  1. Turn the emergency stop button in the direction of its arrow to power the arm back up41.
  2. Enable the arm again, with Studio's Enable button or with motion_enable(true) in the SDK42.
  • Before you restart, make sure the restart motions will not hit anything43.

Shutting Down

  1. Press the emergency stop button to cut the arm's power, and check that the power light is off44.
  2. Switch off the control box. Powering off takes about 5 seconds, and the box must not be switched on again within those 5 seconds5.

Check Yourself

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

q-s06-b-01 S2 picks up the next card from S1. Where does it put it?

About:9

  1. Check option (a)

    Correct. Right. S2 arranges parts on S3 first, keeping cards of the same color together, and moves them on to S4 later.109

  2. Check option (b)

    Not this one. S2's route goes to S3 first. It moves the card from S3 to S4 later.9

  3. Check option (c)

    Not this one. S2's route is S1 to S3, then S3 to S4. Returning cards to S1 is not part of it.9

  4. Check option (d)

    Not this one. Cards of the same color are stacked on top of each other on S3.11

q-s06-b-02 The control box is on and the emergency stop has been released. What still has to happen before the arm can move?
  1. Check option (a)

    Correct. Yes. Enabling switches on the motors, and the arm can move only once it is enabled.413

  2. Check option (b)

    Not this one. Releasing the emergency stop powers the arm, but it cannot move until it is enabled.313

  3. Check option (c)

    Not this one. The power button turns the control box on. That step comes before releasing the emergency stop, not after it.23

q-s06-b-03Safety What must you check just before powering on?
  1. Check option (a)

    Correct. Right. Check the cables too: arm to control box, the network cable, and the control box's power cable.35323334

  2. Check option (b)

    Not this one. The checks before power-on are the cables and a clear working range. Holding a part is no help: items can drop from the arm if power is lost.323545

  3. Check option (c)

    Not this one. STOP is a software stop for an arm that is already running. Before power-on, the check is that the arm has a clear working range.3735

q-s06-b-04 Which order powers the arm on correctly?

About:1234

  1. Check option (a)

    Correct. Right. The switch and the power button bring the control box up, releasing the emergency stop powers the arm, and enabling switches on its motors.1234

  2. Check option (b)

    Not this one. Enabling comes last. It is done from Studio or an SDK command, which needs the control box on and the arm powered first.43

  3. Check option (c)

    Not this one. Releasing the emergency stop is step three: it powers the arm once the control box is already on.32

  4. Check option (d)

    Not this one. The OFF/ON switch comes first, and the arm cannot be enabled before the emergency stop is released to give it power.1313

Next on the beginner path: §7 Safety Requirements

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:

  1. Press the emergency stop button and turn off the control box52.
  2. Connect the controller's RI0 input to GND with a cable53.
  3. Power on. A beep means the address has been reset to 192.168.1.11154.
  4. Remove the RI0 to GND cable and wait about 60 seconds for start-up55.
  5. 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.
A person's hand pushing a white UFACTORY arm by its wrist to move it.
Hand teaching, as shown on UFACTORY's page for the 850: in manual mode the arm holds itself up so a person can move it6768. Image: UFACTORY

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.

q-s06-n-01 Nobody knows the controller's IP address. Which order resets it?

About:5253545556

  1. Check option (a)

    Correct. Right. The beep confirms the reset to 192.168.1.111, and start-up takes about 60 seconds once the cable is out.5253545556

  2. Check option (b)

    Not this one. The first step is to press the emergency stop and turn the control box off. The reset happens when it is powered on with RI0 connected to GND.525354

  3. Check option (c)

    Not this one. Remove the RI0 to GND cable and wait about 60 seconds for start-up before you connect.5556

q-s06-n-02Safety Studio shows error code C1. What do you do?

About:72

  1. Check option (a)

    Correct. Right. It means the control box's emergency stop has been pushed.72

  2. Check option (b)

    Not this one. Camera C1 watches receiving and only shares the label. Here, error code C1 means the control box emergency stop has been pushed.7276

  3. Check option (c)

    Not this one. That is the fix for error C23, a joint past its limit. For error code C1 you need the emergency stop released and the arm enabled.7772

  4. Check option (d)

    Not this one. Support is for alarm codes the manual does not list, after several power cycles fail. The manual lists error code C1, with its own fix.7572

q-s06-n-03Safety Why must the mounting and payload settings match reality before you turn on manual mode?
  1. Check option (a)

    Correct. Right. A wrong mounting setting makes the arm misjudge gravity, which can mean uncontrolled motion in manual mode.6360

  2. Check option (b)

    Not this one. The precondition UFACTORY states for turning manual mode on is matched serial numbers of the arm and control box. The mounting and payload settings matter because UFACTORY says manual mode is dangerous if they do not match.6463

  3. Check option (c)

    Not this one. Playback speed is chosen when you play a recording back. The settings matter because UFACTORY says manual mode is dangerous if they do not match the actual situation.6663

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:

  1. Create XArmAPI with the controller's IP address and connect. The template registers an error and warning callback before it connects80.
  2. Enable motion with motion_enable(enable=True)81.
  3. Set the mode, for example set_mode(0) for position control82.
  4. 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:

  1. Clear the error with clean_error()94.
  2. Re-enable the arm with motion_enable(true)95.
  3. Set the motion state with set_state(0)96.
  • 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:

  1. Check whether the arm has actually collided100.
  2. Check that the payload mass and center of mass under Settings > TCP Settings > TCP Payload match the real payload101.
  3. Check that the mounting direction under Settings > Mounting matches reality102.
  4. Check that payload settings made inside the program match the real payload103.
  5. Reduce the arm's motion speed104.
  6. 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.

q-s06-i-01Safety In the six checks UFACTORY's Studio manual listed until 2026-10-13, which three come first, in order?

About:10010110299

  1. Check option (a)

    Correct. Right. The manual listed those first; setting the payload inside the program, slowing down and lowering sensitivity come later in its list. The manual as read on 2026-10-13 gives the first only.1001011021031041059899

  2. Check option (b)

    Not this one. Lowering sensitivity was the last of the six checks. A higher sensitivity means a smaller extra torque triggers the stop; UFACTORY's Settings page says that for some high-load or high-speed moves it may be lowered once payload and mounting are confirmed, and does not recommend going below 3.1058889

  3. Check option (c)

    Not this one. That is the fix for recurring self-collision, error C22. For C31, first check whether the arm actually hit something.97100

q-s06-i-02 You set the payload over the SDK, then rebooted the controller. Now collisions trigger falsely. What is the likeliest cause?
  1. Check option (a)

    Correct. Right. SDK settings are lost at reboot unless saved, and a wrong payload makes current-based collision detection trigger falsely.8491

  2. Check option (b)

    Not this one. A higher sensitivity is what makes a smaller torque trigger a stop. And a wrong payload is the first thing to suspect after settings may have been lost.8884

  3. Check option (c)

    Not this one. Rebound only decides whether the arm backs off after a detected collision. It does not cause false detections.107

q-s06-i-03Safety The arm is in error and a joint must be unlocked from Studio's Debugging Tools to move it clear. What does the manual require?

About:108

  1. Check option (a)

    Correct. Right. With the brake released, nothing else holds that joint up.108

  2. Check option (b)

    Not this one. The manual says someone must support the arm while the joint is unlocked. Do not count on the motor holding it.108

  3. Check option (c)

    Not this one. The tool unlocks a single joint. To move the whole arm by hand, use manual mode, which also needs correct mounting and payload settings.1086263

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:

  1. Launch uf850_driver.launch.py118.
  2. Enable all joints with /ufactory/motion_enable, id 8 and data 1118.
  3. Call /ufactory/set_mode with 0118.
  4. Call /ufactory/set_state with 0118.

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.

q-s06-e-01 You are modeling the cycle time of S2 in the cell. Which list names what the model must include?

About:9

  1. Check option (a)

    Correct. Right. Each card bound for the laser makes both moves, UFACTORY's pick-and-place advice adds a payload update after each pick and each place, and the laser step may set the pace for the whole cell.91290116

  2. Check option (b)

    Not this one. 1000 mm/s is a cap, not what the arm reaches carrying a load, and the UFACTORY sources give no figure for its speed and acceleration at full payload.114115

  3. Check option (c)

    Not this one. Jog speed is for moving the arm by hand from Live Control. It is not the arm's program speed.70

  4. Check option (d)

    Not this one. This platform infers that the laser step may be the real bottleneck, so the cell's pace may not be set by S2.116

q-s06-e-02Safety A draft program for S2 calls move_gohome() between every pick. What is the main objection?

About:112

  1. Check option (a)

    Correct. Right. move_gohome() returns to zero without limit checks, and UFACTORY stresses that reset motions must not hit anything.11243

  2. Check option (b)

    Not this one. Clearing errors is what reset() does, not move_gohome(). Both go home without limit checks, which is the real concern.113112

  3. Check option (c)

    Not this one. Going home is not checked against limits, so it is not automatically safe. The path must be clear.11243

q-s06-e-03 A draft program for S2 checks only S4's "all clear and ready" signal, this project's design, before each move. Which situations can it not handle correctly? Choose all that apply.

About:1278

  1. Check option (a)

    This one applies. It cannot handle this. The card goes on its color's stack on S3, and the program knows neither the card's color, nor which stack holds that color, nor how full the stack is.978

  2. Check option (b)

    This one applies. It cannot handle this. It cannot tell that the stack is full, so it cannot know that, in this project's design, it must wait for S4 and move a card on from S3 first.20121

  3. Check option (c)

    This one applies. It cannot handle this correctly either. The signal says S4 can take a card, but not which stacks on S3 hold one: S2 has to know the state of S3's stacks to make the move.1212111

  4. Check option (d)

    This one does not apply. Start-up does not depend on station signals: connect, motion_enable, set_mode and set_state, in that order.80818283

Not settled

Open 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
Provenance

References · 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)
    Derek Stringfellow, project record · Project-internal record · retrieved 2026-09-21 · cited by 2 records here · Project copy; not published on this site.
  • Collision Detection in UFACTORY Robotic Arms: Current and Dynamic Model-based Feature (UFACTORY support article) · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 3 records here · Open the source
  • IntelliMake Phase 1 Factory: Autonomous Production Demonstrator (infographic) · IntelliMake.org (IntelliMake)
    © IntelliMake.org. Used with permission; redrawn for this platform. · Cleared for use by its owner · retrieved 2026-09-21 · cited by 11 records here · Project copy; not published on this site.
  • Owner statements from 2026-09-24 onward (verbatim; S40 and later) · Derek Stringfellow (project owner)
    Derek Stringfellow, project record · Project-internal record · retrieved 2026-10-04 · cited by 18 records 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 8 records here · Project copy; not published on this site.
  • UFACTORY 850 Hardware Manual (online), 1. Safety · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 7 records here · Open the source
  • UFACTORY 850 Hardware Manual (online), 2. Hardware Installation · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 22 records here · Open the source
  • UFACTORY 850 Hardware Manual (online), 3. Controller Electrical Interface · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 11 records here · Open the source
  • UFACTORY 850 Hardware Manual (online), 7. Production Information · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 1 record here · Open the source
  • UFACTORY 850 product page · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 2 records here · Open the source
  • UFACTORY 850 User Manual V2.3.0 (PDF, older edition) · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 4 records here · Open the source
  • UFACTORY Release Note v2.7.0 · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 1 record here · Open the source
  • UFACTORY Studio screens and a control-box photo for the xArm 850, 2026-10-22: what they show (OBSERVATIONS.md) · Derek Stringfellow (project owner)
    Derek Stringfellow, project record · Project-internal record · retrieved 2026-10-22 · cited by 1 record here · Project copy; not published on this site.
  • UFACTORY Studio User Manual (online), 10. Robotic Arm Motion Mode and State · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 4 records here · Open the source
  • UFACTORY Studio User Manual (online), 12. Error Handling · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-10-13 · cited by 11 records here · Open the source
  • UFACTORY Studio User Manual (online), 2. Glossary · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 5 records here · Open the source
  • UFACTORY Studio User Manual (online), 3. Connection · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 1 record here · Open the source
  • UFACTORY Studio User Manual (online), 4. Live Control · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-10-13 · cited by 10 records here · Open the source
  • UFACTORY Studio User Manual (online), 5. Blockly · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-10-13 · cited by 2 records here · Open the source
  • UFACTORY Studio User Manual (online), 7. Settings · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-10-13 · cited by 12 records here · Open the source
  • UFACTORY Studio User Manual, 12. Error Handling, as it read until 2026-10-13 (publisher's repository, commit 533b75d) · UFACTORY (manufacturer)
    © UFACTORY · All rights reserved; quoted briefly as evidence · retrieved 2026-10-13 · cited by 7 records here · Open the source
  • 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)
    © Association for Advancing Automation (A3) · All rights reserved; quoted briefly as evidence · retrieved 2026-09-21 · cited by 1 record here · Open the source
  • xArm 850 S2 Project: Open Questions for IntelliMake, Batch 01 responses · IntelliMake.org (IntelliMake)
    © IntelliMake.org. Used with permission. · Cleared for use by its owner · retrieved 2026-09-29 · cited by 2 records here · Project copy; not published on this site.
  • xArm-Python-SDK API documentation (doc/api/xarm_api.md) · UFACTORY (manufacturer)
    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause License · BSD-3-Clause · retrieved 2026-09-21 · cited by 4 records here · Open the source
  • xArm-Python-SDK example 0000-template.py · UFACTORY (manufacturer)
    © UFACTORY Inc., xArm-Developer/xArm-Python-SDK, BSD 3-Clause License · BSD-3-Clause · retrieved 2026-09-21 · cited by 4 records here · Open the source
  • xarm_ros2 ReadMe (humble branch) · UFACTORY (manufacturer)
    © UFACTORY Inc., xArm-Developer/xarm_ros2, BSD 3-Clause License · BSD-3-Clause · retrieved 2026-09-21 · cited by 1 record here · Open the source

IntelliMake diagrams are redrawn as native figures, © IntelliMake.org. UFACTORY does not endorse this platform.

All sources and attribution