Franka FR3 Category 2 E-Stop

July 2025   Bianchini

A Category 2 stop on the Franka Research 3 (FR3) 6-DoF robotic arm is the best way to stop the robot arm with the least risk of damage to the robot's hardware. The FR3 ships only with a Category 1 stop Emergency Stop Device, but Franka supports adding on additional safe inputs. I built a replacement Emergency Stop Device which incorporates both the original Category 1 stop as well as an additional Category 2 stop, so we can use the latter as our first line of defense when trying to stop the robot with least risk of robot damage.

Emergency stop behaviors

The Franka Research 3 (FR3) platform defines three emergency stop behaviors (see the FR3 product manual, 4.11 Safety Functionalities, the "Stopping functions" table):

  • Category 0 stop:  Power is removed from the arm.  This releases the clutches and engages the joint brakes immediately.  This has the highest risk of damaging the robot.  Earlier Franka models (e.g. the Franka Emika Panda arm) shipped with a Category 0 stop, which was an e-stop inline with the power cord.
  • Category 1 stop:  Motor control is used to decelerate every joint until it reaches zero velocity, then the brakes are applied.  This is the behavior of the FR3's shipped e-stop (connected to X3.1 inputs).  While this is safer to the robot than Category 0 because the brakes are not supposed to be engaged until the joint velocities are sufficiently low, the manual still gives the warning that this should be avoided:

After an emergency stop, the Arm could have lost calibration or been damaged.  [...]  Only use the emergency stop in safety-critical situations.

  • Category 2 stop:  Motor control is used to decelerate every joint until it reaches zero velocity, then zero velocity is monitored without engaging any brakes.  The earlier Franka model (the Franka Emika Panda arm) shipped with a Category 2 stop (in addition to its the Category 0 stop), and this e-stop could be used liberally without risk of damaging the arm.

A note on robot versus human/environment safety

For the robot's wellbeing, a Category 2 stop is the "safest" (i.e. least risk of robot damage) while a Category 0 stop is the "least safe" (i.e. highest risk of robot damage from engaging the brakes during robot motion).  For human/environment safety, a Category 0 stop is the "safest" (i.e. least risk of human or environment damage since the robot will stop as fast as possible) while a Category 2 stop is the "least safe" (i.e. highest risk of the robot crashing into a person, environment, or object in the environment).  In my and my lab's experience with our Panda arm, the Category 2 stop was always effective at stopping the robot sufficiently fast to prevent human or environment damage.  Thus, since Category 2 is also the safest option for the robot's hardware, we always use a Category 2 stop as our first line of safety defense, and we can use it liberally without concern for the robot itself.

Configuring additional safe inputs

In addition to the provided Category 1 stop (X3.1), the FR3 allows configuration of two more "safe inputs" (on X3.2 and X3.3).  X3 is a 12-pin connector where 4 wires are needed each for X3.1, X3.2, and X3.3.

Figure 1:  X3 wiring diagram from the FR3 product manual, Section 10.6.2 Interfaces.  Note that the left pinout labels the pins on the robot arm side (mirrored for the wire connector side).

Need for new cable

The FR3's shipped Emergency Stop Device has a wiring harness that connects to the arm's X3 port.  This wiring harness is an 8-wire cable, which includes the 4 pins for X3.1 and sadly 2 pins each for X3.2 and X3.3.  Since this does not provide the complete 4-pin group required for either X3.2 or X3.3, this shipped cable cannot be used when configuring a second safe input.

Figure 2:  The inside of the FR3's Emergency Stop Device (left) shows the brown-red and blue-white connections for the X3.1 input.  The provided cable also includes 4 other wires, shown (middle) terminated as open-circuit loops.  These 4 wires do not correspond to a complete X3.2 or X3.3 set:  yellow is half of X3.2A, gray is half of X3.2B, green is half of X3.3A, and pink is half of X3.3B.

In the FR3 product manual, Section 6.1 The Arm, it is confirmed that the provided hardware is insufficient for wiring up a second safe input:

A custom connector with the corresponding safety signals must be assembled to utilize the configurable Safe inputs (X3.2, X3.3). When doing so, the existing Emergency stop can no longer be used. Therefore, the Emergency stop functionality must be integrated for channel X3.1 in the custom connector.

I am unsure why Franka would have chosen to ship the Emergency Stop Device with this configuration, as any of these options would make more sense:

  • Franka could more easily support incorporating both additional safe inputs by using a 12-wire X3 cable and terminating all 8 unused ones in the Emergency Stop Device.
  • Franka could more easily support incorporating one additional safe input by keeping the same 8-wire X3 cable but connecting the unused set of 4 to X3.2 (or X3.3), and still terminating these 4 in the Emergency Stop Device.
  • Franka could more explicitly (and with less waste) discourage incorporating any additional safe inputs by using a 4-wire X3 cable and having no unused ones to terminate.

Parts list

This job required two specific parts, both of which were ordered on Digikey:

In addition to those specialty parts, the entire job also included some everyday mechanical and electrical materials:

  • A small 2x4 chunk for mounting both e-stops
  • 8x wood screws
  • heat shrink
  • solder

Hardware assembly

Figure 3:  The new cable (gray, upper left), new e-stop (disassembled, bottom left), and the FR3's original cable and e-stop assembly (black cable, right).

I decided to mount both e-stops to a small portion of 2x4 for three reasons.  First, keeping them together ensures both stops are accessible at the same time with only one long cable to route in the workspace.  Second, their rigid attachment to each other will prevent ripping the wires that run between them.  Third, the e-stops are very similar in appearance (sadly, though makes sense e-stops usually only come in yellow and red color combinations), so mounting them together could emphasize their differences and make them more easily distinguishable.

Figure 4:  A test mount of both e-stop housings to a 2x4 block.  I left extra space on the 2x4 to the right so that we could write a label indicating which e-stop to use first.

Even though I could have wired them either way, I kept the FR3 e-stop as the X3.1 Category 1 stop so that it matches its original design intent.  The new e-stop is the Category 2 stop connected to X3.2.  I put the Category 1 stop closer to the X3 connector and the Category 2 stop further away so that the Category 2 stop would be more easily accessible to users when the e-stop wire is routed to the back of their workstation.

Figure 5:  Drilling holes in the side of each e-stop housing for routing a wire between them.  Care is required for deburring the edges so no sharp portions rip the insulation off the wires.

I mimicked the original Emergency Stop Device's termination strategy for the unused wires corresponding to X3.3.  If we ever want to introduce a third e-stop as the second safe input, we can open up the Category 2 e-stop and access these 4 terminated wires.  For the 8 used wires, I soldered the stripped ends of each of the 8 stranded wires to prevent fraying before inserting into the screw terminals.

Figure 6:  The X3.1 Category 1 stop (right), custom wire harness leading to the X3.2 Category 2 stop (left), where the additional 4 wires for a potential future X3.3 configuration terminated in the Category 2 stop (middle).

The final result cleanly keeps both e-stops accessible.

Figure 7:  The finished dual e-stop assembly.

Software configuration

Franka's watchman settings allow you to configure additional safe inputs on X3.2 and/or X3.3.  In my case, I configured X3.2 to do a Category 2 stop.

Final results

Video 1:  The Category 2 e-stop in action.

Back to Bibit Back to all posts