Hi, I have the exact same issue as described in this thread. The servo is brand new and has never successfully connected to the config software. I have done the factory reset three times. Each time I know it worked because the LED colour changed back to the default, none. I tried the firmware update you mention in this thread and I always get the message “Unable to connect to motor …”. The only other piece of evidence I can give is when I write to the server using the python test code, the USB-Tx LED blinks. Not the Rex light but the Tx. When I read from it, no LED lights blink.
Hi @D_Hertz,
Welcome to the RobotShop community!
Lets break down your post and figure out what we can do to fix this issue!
That part does seem similar to the topic you originally posted too (aside for the fact they were using a 4DoF robotic arm kit).
Using the button, I assume?
Did you also changed the LED colour using the button, too?
Did you try the steps at the end of this post.
Here is a copy for reference:
Can you attach a file here with your Python test code?
What kind of USB<>TTL UART interface/device are you using? What about the power source for the LSS?
Please provide pictures of your setup making sure to clearly show all the major components (LSS, power source, interface, cabling, etc.). Feel free to annotate your picture for clarity if needed.
I’ll be waiting for your reply to help you further.
Sincerely,
Thanks for responding. I appreciate the help. To answer your questions:
- I used the button to do the factory reset.
- I also was able to change the LED colour with the button. Every button menu item I tried worked. It took a bit to get the sequences correct but once I figured them out, they worked.
- I tried these steps before, but I will systematically try the m again and answer your questions in parts:
a. I connected my Lynxmotion LSS Adapter Board V1.0 to my Windows 10 PC using the proper USB cable. A device called FT232R USB UART shows up after the connection to the PC is made. The Device Manager indicates a USB Serial Port (COM3) has now become active.
b. The LSS Config software is Version 19.7.9. The FIRMWARE button is now grayed, the COM port is COM3 and the CONNECT button is ready to hit.
c. After three full scans of the baud rate I do indeed get the dialog box in question. I pressed cancel to stay connected.
d. I selected the FIRMWARE button, left the defaults as is and pressed OK. Within the LSS Config window I get the messages “Unable to connect to the motor …” and “Exiting Firmware Update …”. It’s now cycling endlessly through the baud rates.
e. I have to go with, it failed. - I use the LSS_Library_Python I got from the git server. I’ll just upload the main code, not the imported code but if you need that I’ll upload it later. I modified the default test program to accommodate only one servo and I changed the COM port to COM3. Those are the only changes I made. I just noticed this is your code. Nice work!
(upload://7DlPqjd49oUbedgbHhb5hZ7SA0B.txt) (1.2 KB) - AT the time I bought the servo I bought the recommended Lynxmotion LSS Adapter Board and the recommended Lynxmotion AC/DC 12V-6A adapter. On the LSS Adapter Board I have set the switch to the USB position.
- I have taken a picture of the setup. It’s standard but if you think I need to take more pictures, just ask.
- As early as tomorrow I should take delivery of a second, identical servo. I had a second use for one. I’ll be able to test the complete setup to hopefully eliminate all problems, but the servo.
Thanks again for your help.
Here is the code. The upload looks like it didn’t work.
###############################################################################
# Author: Sebastien Parent-Charette ([email protected])
# Version: 1.0.0
# Licence: LGPL-3.0 (GNU Lesser General Public License version 3)
#
# Desscription: An example using the LSS and the Python module.
###############################################################################
# Import required liraries
import time
import serial
# Import LSS library
import lss
import lss_const as lssc
# Constants
#CST_LSS_Port = "/dev/ttyUSB0" # For Linux/Unix platforms
CST_LSS_Port = "COM3" # For windows platforms
CST_LSS_Baud = lssc.LSS_DefaultBaud
# Create and open a serial port
lss.initBus(CST_LSS_Port, CST_LSS_Baud)
# Create LSS objects
myLSS1 = lss.LSS(0)
# myLSS2 = lss.LSS(1)
# myLSS1.move(-300)
# myLSS2.move(300)
print("myLSS1; position = " + str(myLSS1.getPosition()))
# print("myLSS2; position = " + str(myLSS2.getPosition()))
print("myLSS1; model = " + str(myLSS1.getModel()))
myLSS1.reset()
# myLSS2.reset()
# Destroy objects
del myLSS1
# del myLSS2
# Destroy the bus
lss.closeBus()
### EOF #######################################################################
Hey @D_Hertz, thanks for the detailed answer!
In this you described the process of connecting the LSS Adapter, the COM port and the LSS Config steps. But, you never mention placing your LSS in bootloader mode using the button. Before pressing the FIRMWARE button, did you make sure the LSS was in bootloader mode (i.e.: LED blinking yellow, about once a second)?
The firmware recovery steps include these two important parts:
- Start with the LSS not powered.
- Press and hold the button on the LSS and then power it up. Once the LED bar is solid yellow, release the button. The LED bar should now blink yellow.
If you did not have the LSS in this state before pressing the FIRMWARE button then please try again with the LSS in bootloader mode before trying to update the firmware.
Indeed, that is as simple as it gets!
Sounds good.
Please confirm concerning the bootloader mode mentioned above for firmware recovery and also let us know how it goes with the new LSS.
The only other issue I can foresee here is that the FTDI drivers your computer installed are not working properly; there has been a small saga of FTDI drivers issues on Windows previously, with Windows Updates installing the wrong ones / changing versions. This should no longer be an issue but it may be worth it to go under Device Manager (with the LSS Adapter Board connected), remove that device (check delete driver), unplug its USB cable and install the FTDI VCP drivers manually (find them here for your OS, typically this one for Windows). Then, reboot your computer (not typically needed, but just to be on the safe side of things) and then once logged back in connect the USB cable again.
Sincerely,
I tried the firmware update one more time. When I have tried it before, I also followed the button menu to the pulsing yellow LED where I believe is the entry point for the firmware update. I am still unable to connect.
I also connected the servo and adapter board to my raspberry pi 4. In your test code, I changed the port by setting to CST_LSS_Port = “/dev/ttyUSB0”. Still no luck.
My second servo is still in the mail so no conclusions yet.
Note that in your image, the switch on the LSS Adapter seems set to XBee? Some thoughts just to cross off the list of possible sources of the issue.
- Can you toggle the switch on the LSS Adapter to ensure proper connection when in USB mode? (Rule out bad switch).
- Can you plug the four-pin serial cable to the other side of the servo? To other connectors on the LSS Adapter (rule out bad solder connection)?
- Tried a different USB cable? Different USB port?
- Can’t quite see in the photo, but the two jumpers are NOT in place?
Any idea when the second servo is set to arrive, or has it already? If that doesn’t have the issue, we’ll go ahead and replace this one free of charge. Communicating with and configuring the servo should be as simple as your physical setup, opening the LSS Config and connecting.
After I posted the picture I noticed that the switch was in the XBee position. This is only because I was trying different switch positions to rule out bad eyesight, or perhaps a potential misunderstanding of what the switch is supposed to do. I can confirm I have tried all test, many times, with the switch in the proper position.
I have tried to toggle the switch and I have tried a different USB cable and port. I even tried a raspberry pi instead of a windows machine. Nothing seems to work.
I’m in no hurry to pull the plug on this one yet. My new servo is still in the mail but it should arrive soon.
Thanks for the help.
Ok. Keep us posted.
@D_Hertz
I’m starting to think a faulty LSS Adapter Board is a possibility. Do you have any 5 V DC compatible microcontroller board (such as an Arduino) or a separate USB <> TTL UART adapter that you could use?
Just 30 minutes ago I had my Arduino UNO partially working with the servo. I modified your Arduino code, adding a software serial port to make it work. The Query code you wrote almost worked. It reads properly the Current, Speed and Temperature but the Position and the Voltage often come back with LSS_CommStatus_ReadWrongFormat. I’ll work more on this tonight and get back to you. Hopefully my new servo arrives today.
Indeed, the library does support all Arduino standard serial interfaces, including software serial, as you can see here.
Just pass the function initBus() a software serial object instead of a regular serial object!
This most likely indicate that the issue is with the LSS Adapter Board and not the LSS itself.
We’ll wait on more details from your tests to diagnose further!
I had two new servos arrive tonight and I have evaluated them as best as could be done.
The results are:
- At this time, using your LSS_Config software (on Windows) and only my Lynxmotion (LSS) Adapter Board, I could not connect to any of the servos. The issues are the same as reported before.
- The button menus work on all three servos.
- I tested all three servos using an Arduino UNO attached underneath the the LSS Adapter Board.
- I used the Arduino code from the Lynxmotion git. I had to modify it for use with the Arduino UNO as it only has one serial port.
- I wrote my own code, using your framework, to change the servo IDs. This has been verified to work.
- I ran your LSS_Sweep example with the LSS Adapter Board switch set to the middle position (Arduino). This worked for all three servos, after they had their IDs switched.
- I modified your LSS_Query example to use a software serial port and with the Adapter Board switch set to XBee, it ran on all three servos. I did this before and after they had their IDs switched. Unfortunately, the results were mixed. Often the position and voltage queries return garbage. However, not all of the time. I also implemented the firmware and serial number queries and they also return garbage, about half the time.
- The bottom line is that all three servos, using different cabling and ports on the Adapter Board, show all the same behaviour.
- I think: I’ve either got three bad servos (highly unlikely), I’m doing something wrong (more likely but I just can’t see what) or I’ve got a bad adapter board.
- Commanding the servos through the board seems to work. Receiving information from it does not.
- Perhaps the smoking gun is that I’ve never seen the Rx LED on the Adapter Board flash. I would have thought it would be the other way around but …
Thanks for all of your help.
Please advise.
A bad LSS Adapter Board is not impossible. Here is a simple test you can run to verify this:
- Download the Serial Loopback Test software here.
- Unplug all the servos connected to the LSS Adapter.
- Connect Tx pin to the Rx pin on the LSS Adapter using a female to female jumper wire.
- Make sure that the switch is on USB position.
- Connect the LSS Adapter to your computer via USB.
- Open the Serial Loopback Test downloaded previously, select the appropriate COM port and click on “Start Test”
Please let us know how it goes.
The program cycles through the Baud rate sequence. The signal quality is a single red bar for each of the baud rates. The Errors/Bytes continued to rise. After a few seconds I stopped the test and the final Errors/Bytes is at 797/800. The only LED that blinks on the adapter is the Tx.
A second run of the test gave identical results.
Could you try to re-install the FT232 FTDI drivers just in case and re-try the Loopback Test ? You can download them through this link (for Windows)
Done. The result is the same.
This topic was transferred to internal RobotShop Support.