LSS via SSC32 are not responding to any Query

Hi,

I’ve recently been working with one of the ALA5 arms. I’ve been having some trouble getting the communication running with it. In particular, I can send (and execute) position commands, but none of the query commands result in a response over the serial line. I am sure there is no response, as the TX1 LED on the SSC32 does not light up. I’ve also made sure it is not a problem with my implementation by using the LSS Python Library and the getPosition() function.

Any help would be appreciated.

Best,

Anton

Hi @antbre

The AL5 series or arm use an SSC-32U paired with standard RC servos and are not LSS (Lynxmotion Smart Servos) so the protocol for LSS will not work on them. You can have a look at the SSC-32U user guide HERE.

If you want to use the arm, it’s also possible to use the Lynxmotion SES-V1 FlowArm application HERE.

Let us know if you have questions about the communication.

All the best,

1 Like

Yes indeed. But if I understand correctly a query such as “#0Q\r” should still result in a response over the serial line, isn’t it? And for me none of the queries for any of the servos results in a response, even though I can command the servos through the same line, i.e. cabling must be correct

Hi @antbre

The query “#0Q\r” is not something that will work with the SSC-32U protocol, it’s for the LSS servos.
What are you trying to query exactly ?

If you connect to the SSC-32U with the correct COM and BAUDRATE you should be able to send a simple “VER/r” which will return the version of firmware on the board. That should tell you it’s working.

Example using PuTTY as the serial terminal
image

All the best,

1 Like

Ideally, I would like to query the position. However, any successful query would be excellent. Right now, I do not get any response from the robot, no matter which query I send. I can send commands, though. Below, you’ll find my Python test script. Maybe the problem also sits 20 cm in front of the screen and I’m doing something wrong :sweat_smile:

import serial

# I checked that the baudrate is matching
ser = serial.Serial('/dev/ttyUSB0', 115200)
ser.timeout = 0.25

# This command works perfectly 
cmd = "#0 P1500 S100 \r"
ser.write(bytes(cmd, 'ascii'))

# This query doesn't work. The returned string is empty
qr = f"#0 VER\r"
ser.write(bytes(qr, 'ascii'))
print("Reading: " + str(ser.read_all(), encoding='ascii') + " ... Done")

# Same here and for querys such as "#0Q\r", "#0QP\r", etc
qr = f"VER\r"
ser.write(bytes(qr, 'ascii'))
print("Reading: " + str(ser.read_all(), encoding='ascii') + " ... Done")

Query position is something you cannot do with RC servos and SSC-32U, it’s a smart servo feature.
There is no information shared between the servo and the SSC-32U so it cannot provide it to the user.

I can’t really troubleshoot code but quickly I can spot that you query of version is wrong since it’s addressed to a servo ID.
#0 VER\r”
should be
“VER\r”

1 Like