Why Doesn't ArduPilot Natively Support the LewanSoul/Buzz UART Protocol for LX-16A Servos?

Hello everyone,

I’ve been working on a project where I’d like to integrate LewanSoul LX-16A serial bus servos with ArduPilot. These servos use a UART-based protocol known as the LewanSoul or Buzz UART Protocol, which is commonly used in various robotic applications, DIY projects, and educational purposes.

While I’ve noticed that ArduPilot natively supports protocols like Robotis Dynamixel and Volz servos, I haven’t found any direct support for the LewanSoul/Buzz UART protocol. Given that the LX-16A servos are widely used and offer features like position feedback, speed control, and temperature monitoring, I’m curious why this protocol hasn’t been integrated into the ArduPilot firmware.

My main questions are:

  1. Is there a technical reason why the LewanSoul/Buzz UART Protocol is not supported in ArduPilot? For instance, are there limitations in the protocol that make it unsuitable for integration?
  2. Has there been any discussion or past efforts in the community to add support for the LX-16A protocol? I couldn’t find much information, but perhaps I missed some relevant threads or discussions.
  3. What would be the steps to start adding support for the LewanSoul/Buzz UART Protocol in ArduPilot? Is it feasible to implement it using Lua scripting, or would it require deeper integration in the firmware?
  4. ** Would there be any interest from the community to add support for these servos, given their popularity in educational and hobbyist robotics? I’m willing to collaborate in developing support for this protocol and would be happy to help with any efforts to make this a reality. **

I understand that some people might use intermediate microcontrollers (like Arduino) or Lua scripts to bridge the gap between ArduPilot and these servos, but native support would certainly simplify things and potentially broaden the use cases for these affordable and versatile servos.

Any insights or advice on this matter would be greatly appreciated!

Thank you in advance!

1 Like

Due to the very sparse discussion on the subject, it seems there’s simply a lack of demand.

@rhys developed a Lua script some time ago, which is the de facto mechanism to gain support for otherwise unsupported devices, especially those with little demand for support.

Thanks, Yuri_Rage! Makes sense about the lack of demand. I’ll give the Lua script approach a shot and see how it goes. Appreciate the guidance!

@Mateo_Morales, let me know if there are any issues with the driver - it’s been a while since I’ve looked at it, but should still be valid provided the protocol has not altered.