Introduction: How to Configure and Use Smart Servos LewanSoul (LX-16A)

The LewanSoul produces where interesting and cheap smart servo (LX-16A) that can be used in different DIY projects.

For example:

It almost 3 times cheaper (~$15) to its close analog the XL430-W250-T (~$50).

And here you can compare it with other Dynamixel servo:

The advantage of smart servos is that they very accurate and provides the feedback about their position, temperature and voltage. Also they has protection from overloading.

The disadvantage is that they uses sophisticated protocol that could be a problem for using them in DIY projects.

Lets try to decrease this a little disadvantage to get the big advantage :)


For that you need:

- LX-16A smart servo(s)

- Controller board

- Power supply (8.4V)

Step 1: Wire the Servo to Controller

To control the LX-16A smart servos you need a special controller board

(you can buy it together with the servo on aliexpress).

The simplest one ($7) that shown on picture can control 8+ servos.

All you need is to connect it to smart servo, attach the power supply and then connect the controller to computer using USB cable.

Then you will able to send the special commands from computer to the controller board to control the servo and get feedback from it.

Step 2: Software

To control the servo from computer you need a special software.

I suggest to use the Python for that purpose since it very easy to setup it can be used on different platforms (Windows/Linux/MacOS).

Install the Python 3:

Download the python scripts for controlling the servo:

Extract it and run the command prompt (cmd.exe), then go to folder where you extracted the script:

cd "C:\Users\Test\Downloads\LewanSoul-master\LewanSoul-master\src"

Now you ready to open the world of smart servos for your DIY projects :)

Step 3: Get the COM Port

Now you need to get the COM port where your controller attached to computer.

The easiest way to do it is to run the Arduino IDE and check it there.

Then adjust it in your local copy of python script (at line 6):


If you have trouble with finding the COM port number then please use these links for help:

Step 4: Get the Servo Status

If you have only one servo attached to the controller board then you can run the following command:


It will show the id of servo (8), its position (0) and temperature (29 °C).

If you already know the servo id then specify the command argument info with servo id (8):

python info 8

(this command is useful when you have several servos attached to the same controller board).

To get the list of all command arguments run:

python help

Step 5: Move Your Servo

Now its time to move your servo.

The LX-16A servo has moving range from 0 to 240 degree that corresponds to position from 0 to 1000.

So, to move the servo you have to set it position by command :

python set_pos 8 500

(to move the servo with id 8 to position 500 that corresponds to 120 degree).

And then check that servo really moved to its new position by running:

python info 8

Step 6: Other Commands

Here the list of some useful commands that may help you to setup the servo.

Scan all servos ids attached to the controlled board:

python scan

Test servo range (move servo to 0, then to 1000 and then to 500):

python test 8

Reassign servo id (from 8 to 3):

python assign 8 3

Reset servo (reset servo internal state to default and set its id to 1):

python reset 8

Step 7: Some Videos and Spec

Some helpful video about LX-16A (found in google):

The LX-16A servo spec:

Step 8: Finally

And when you will be a little bit more familiar with that servo you may want to build something really interesting.

For example, quadruped robot:

The 6DOF robot arm:

Or buy a ready kit (~$240), but it is only 5DOF robot arm :)