# Arm not retracting during homing

**URL:** <https://forum.hello-robot.com/t/arm-not-retracting-during-homing/1110>\
**Category:** Ask\
**Created:** [September 23, 2024, 12:08am UTC](https://forum.hello-robot.com/t/arm-not-retracting-during-homing/1110 "2024-09-23T00:08:23Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![byrnete](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/byrnete/32/648_2.png) [@byrnete](https://forum.hello-robot.com/u/byrnete)\
**Post date:** [September 23, 2024, 12:08am UTC](https://forum.hello-robot.com/t/arm-not-retracting-during-homing/1110/1 "2024-09-23T00:08:23Z")

</div>

Hi, I need some help regarding my Stretch RE1’s arm. Recently had to repair a belt clamp within the arm housing, and that all worked well, however now the arm is acting up. During the repair, a screwdriver fell onto the circuit board atop the arm motor, and damaged one of the components - the reset button. However, we have two Stretch RE1’s and the other one is currently unused, so for now, we switched the boards around so that this one is in better condition.

For context, the reason we had to do this blindly is that we’re under a tight deadline that comes up this week (9/22-9/28), so waiting for new parts or the long process of diagnosing was decided against.

Anyway, I went through the process to get this Stretch RE1 to recognize the motor again, since it didn’t recognize the board’s ID. Now I’m facing an odd issue.  
Whenever I try and home the arm, it will retract slightly, then extend a couple inches. It’s supposed to retract fully and then extend, but it believes it hit’s a hardstop or something.  
I tried going through the effort values, to see if it just believed there was a virtual stop. When I recalibrated the effort values, the arm freaked out and performed the retract/extend loop extremely fast, and ended up with effort values of `-90` and `90`.  
When I use the keyboard teleop, it stutters going in (Since it hits that virtual hardstop from the effort values), but it DOES retract fully.

While I’m on the subject of recalibrating the motor, does anyone know how to speed up the Stretch’s base? Right now it is agonizingly slow, and I recognize that it’s like that for a reason, however for my project it is a requirement to hit a minimum speed (roughly twice the base speed).

Here are the arm’s effort values diagnostic graphs. These are from the command  
`stretch_diagnostic_check.py --arm`.  
 ![arm_retraction_effort_vs_pos_20240922194932](https://canada1.discourse-cdn.com/flex030/uploads/hello_robot2/original/1X/1d8f84f209974ec1b0a111043d5a18267e5ee4fe.png)  
 ![arm_extension_effort_vs_pos_20240922194932](https://canada1.discourse-cdn.com/flex030/uploads/hello_robot2/original/1X/3b37447635a129383f27253dfab192e4c17d2b8c.png)

Here are the graphs from when I ran `REx_calibrate_guarded_contact.py --arm`  
 ![calibrate_guarded_contact_arm_pos_effort_pct_20240921180805](https://canada1.discourse-cdn.com/flex030/uploads/hello_robot2/original/1X/a629b732af7cd788e5fa2cbf458239e595d87b0e.png)  
 ![calibrate_guarded_contact_arm_neg_effort_pct_20240921180805](https://canada1.discourse-cdn.com/flex030/uploads/hello_robot2/original/1X/b61a82de2f87e037834a7eea82a4ab51a0ef7957.png)

---

<div class="post-metadata">

**Author:** ![bshah](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/bshah/32/55_2.png) [@bshah](https://forum.hello-robot.com/u/bshah)\
**Post date:** [September 23, 2024, 1:11am UTC](https://forum.hello-robot.com/t/arm-not-retracting-during-homing/1110/2 "2024-09-23T01:11:50Z")

</div>

Hey, the microcontroller in each PCB stores a “encoder table” in its flash memory. This table is used to convert encoder reading into motor positions, and is unique to each motor. You’d never need to touch the table since the motors are pre-calibrated, but swapping PCBs between robots will definitely require the encoder table to be corrected.

On the other robot that now has the damaged PCB, run `REx_stepper_calibration_flash_to_YAML.py hello-motor-arm` to download the table into a YAML file. Copy the file over to your main robot. There, use `REx_stepper_calibration_YAML_to_flash.py hello-motor-arm`. Afterwards, the arm should smoothly track position goals, and know its end-stops.

For the mobile base speed, I’d confirm that you’re getting the max 0.3m/s of an RE1 by sending velocity goals using the Python API directly (`robot.base.set_velocity(0.3, 0.0)`).

Lastly, you can reach out to our support email, and we can get your team set up with a replacement PCB for the other robot.
