# Basic ESC Response Time (Ardusub and Pymavlink)

**URL:** <https://discuss.bluerobotics.com/t/basic-esc-response-time-ardusub-and-pymavlink/19903>\
**Category:** Speed Controllers (ESCs)\
**Tags:** ardusub, pymavlink, basic-esc\
**Created:** [March 28, 2025, 11:38am UTC](https://discuss.bluerobotics.com/t/basic-esc-response-time-ardusub-and-pymavlink/19903 "2025-03-28T11:38:54Z")\
**Posts on this page:** 1\
**Showing post:** 10

<div class="post-metadata">

**Author:** ![EliotBR](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/eliotbr/32/6937_2.png) [@EliotBR](https://discuss.bluerobotics.com/u/EliotBR)\
**Post date:** [March 31, 2025, 11:18pm UTC](https://discuss.bluerobotics.com/t/basic-esc-response-time-ardusub-and-pymavlink/19903/10 "2025-03-31T23:18:08Z")

</div>

> [@DionisioEng](#):
>
> I am observing a significant and inconsistent delay (never less than 0.1-0.2 s and that can go up to 0.8s) in applying the PWMs in the thrusters, and I need a high and consistent control frequency.

How are you measuring this?

> [@DionisioEng](#):
>
> ```auto
> print(f"Apply time -> {np.around(action_apply_time - action_send_time, 4)}")
> 
> ```

This is a measurement of your code/communication performance, and is not at all related to [the response time of the actual ESCs](https://discuss.bluerobotics.com/t/basic-esc-response-time-speed-ramp/11359).

> [@DionisioEng](#):
>
> ```auto
> # Create a ROS node #
> rospy.init_node('mavlink_actions_test_node', anonymous=False)
> 
> # Define the loop rate #
> rospy.Rate(1000)
> 
> ```

Is this relevant to your program? It doesn’t seem to be used elsewhere in your posted code, but if you happen to have other ROS code running elsewhere then it’s possible for the ROS communications to compete with the MAVLink communications for bus time / processing attention, which could potentially intermittently increase your communication latency.

---

_[View the full topic](https://discuss.bluerobotics.com/t/basic-esc-response-time-ardusub-and-pymavlink/19903)._
