# The ankle joint range of motion and homing

**URL:** <https://opensourceleg.discourse.group/t/the-ankle-joint-range-of-motion-and-homing/173>\
**Category:** Hardware\
**Created:** [December 30, 2025, 1:00am UTC](https://opensourceleg.discourse.group/t/the-ankle-joint-range-of-motion-and-homing/173 "2025-12-30T01:00:29Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![malizade](https://avatars.discourse-cdn.com/v4/letter/m/8baadc/32.png) [@malizade](https://opensourceleg.discourse.group/u/malizade)\
**Post date:** [December 30, 2025, 1:00am UTC](https://opensourceleg.discourse.group/t/the-ankle-joint-range-of-motion-and-homing/173/1 "2025-12-30T01:00:29Z")

</div>

Hi. After running `homing_joint.py` in either direction for the ankle joint in either direction and then `reading_sensor_data.py` to read the encoder position, I get,

Dorsiflexion: 36.4 degs

Plantarflexion: -7.6 degs

The RoM of is 44 degs. This is different from the current specs on the website specify a range of 60 degs (-30 to 30 degs). Is this normal?

I should note that during homing, if I command the position to the middle of this range (14.4 deg), it does appear that foot is flat (so the range would be -22 to 22).

Thanks!

---

<div class="post-metadata">

**Author:** ![ldevillez](https://yyz2.discourse-cdn.com/flex036/user_avatar/opensourceleg.discourse.group/ldevillez/32/71_2.png) [@ldevillez](https://opensourceleg.discourse.group/u/ldevillez)\
**Post date:** [December 31, 2025, 10:01am UTC](https://opensourceleg.discourse.group/t/the-ankle-joint-range-of-motion-and-homing/173/2 "2025-12-31T10:01:54Z")

</div>

Hi malizade, This is not normal you should get 60 deg ROM.

First check if there is nothing that could block the joint and reduce the ROM. Otherwise pay attention, that the `motor_position` attribute is expressed in the motor frame and not joint frame.

If possible, check your ROM with your joint encoder.

Best regards, Louis

---

<div class="post-metadata">

**Author:** ![malizade](https://avatars.discourse-cdn.com/v4/letter/m/8baadc/32.png) [@malizade](https://opensourceleg.discourse.group/u/malizade)\
**Post date:** [January 15, 2026, 8:34pm UTC](https://opensourceleg.discourse.group/t/the-ankle-joint-range-of-motion-and-homing/173/3 "2026-01-15T20:34:28Z")

</div>

Thanks! From the outside, there does not seem to be anything constraining the joint’s movement.

@senthur Can you confirm the [-30, 30] RoM? We bought the OSL in 2022, so maybe the design has been updated?

---

<div class="post-metadata">

**Author:** ![malizade](https://avatars.discourse-cdn.com/v4/letter/m/8baadc/32.png) [@malizade](https://opensourceleg.discourse.group/u/malizade)\
**Post date:** [January 16, 2026, 1:24am UTC](https://opensourceleg.discourse.group/t/the-ankle-joint-range-of-motion-and-homing/173/4 "2026-01-16T01:24:31Z")

</div>

Never mind, when I was calculating the RoM, there was a mix up with output\_position, motor\_position, and their units, as @ldevillez helpfully suggested.

---

<div class="post-metadata">

**Author:** ![senthur](https://yyz2.discourse-cdn.com/flex036/user_avatar/opensourceleg.discourse.group/senthur/32/11_2.png) [@senthur](https://opensourceleg.discourse.group/u/senthur)\
**Post date:** [January 16, 2026, 3:33pm UTC](https://opensourceleg.discourse.group/t/the-ankle-joint-range-of-motion-and-homing/173/5 "2026-01-16T15:33:16Z")

</div>

Hey Mohsen, the hard stops are built into the housing. There is a slot on the housing that limits the ROM of the ankle output pulley to [-30, 30].
