mechDOG servos not working

I followed the mechDOG user guide provided in Lynxmotion wiki. I updated the firmware for all the 12 servos using LSS Config App (Windows). The version is 370. Then I updated each of their ID according to the guide. After assembling the overall structure, I configured the origin of the servos one by one. This time, after scanning via LSS Config App, I could see the correct IDs (11,12,13, 21,22,23, 31,32,33, 41,42,43) and firmware version (370) of all the servos from scroll menu. All servo LEDs were GREEN. I could switch between the servos to see different telemetry data. By the way, I’ve been using this power supply. So far so good.

Now I uploaded this code to my Arduino UNO, while the LSS-ADA mode was set to USB. No USB cable was connected to LSS-ADA, by the way. The code was uploaded successfully without error. Now I turned the XT60 power OFF, disconnected cable to UNO, set the LSS-ADA mode to Arduino, and turned the XT60 power ON. This time, all the servo LEDs followed this: RED → YELLOW → GREEN → RED → OFF. I could see the Tx LED of UNO continuously blinking fast, which means my UNO is sending motor commands to LSS-ADA. The robot should’ve woken up according to the code, but it seems like all the servos are simultaneously shutting down within 5 seconds of power ON.

Hi hasibul,

In order to have the UNO talk to the servo, the switch on the LSS Adapter need to be in the correct position.
Can you verify that it is set to “Arduino” and not “USB” ?

:slight_smile:

1 Like

Yes. As I mentioned, when I’m uploading code to UNO, the ADA mode is set to “USB”. After the code is being done uploading from the IDE, I set the ADA switch to “Arduino”. By the way, I haven’t tried using LSS-2IO.

Using the LSS-Config, can you confirm the Baudrate at which your servos are set at ?

All the servos are set at 115.2k baudrate. At this rate, 12 servos are found with 0 collision in LSS-Config.

Ok that’s the baudrate set in the example.
I’ve conducted a test here to make sure it was working properly.

  • Lynxmotion BotBoarduino (UNO based board)
  • LSS Adapter
  • A single servo set to ID 11

With the code in the example, my motor LED change to BLUE color than move slightly.
It do not go to the “TROT” since the sequence is not complete with only one servo.

Could you do a video of that ?
The servo should power up with the BLUE led set in the Code.

1 Like

I just uploaded the same code to LSS-2IO, and the robot woke up and tried to trot. In this case, 10 of the LEDs don’t show any color. I expected the color to be BLUE. Two of the LEDs (33 & 43) are blinking RED now.
I’ve changed my previous UNO to another UNO, but the code doesn’t seem to work on UNO at all.

By the way, for both LSS-2IO and UNO, I got this warning from IDE:

C:\Users\<my_username>\Documents\Arduino\libraries\Lynxmotion_Smart_Servo_-LSS-\src\LSS.cpp: In static member function 'static char* LSS::genericRead_Blocking_str(uint8_t, const char*)':
C:\Users\<my_username>\Documents\Arduino\libraries\Lynxmotion_Smart_Servo_-LSS-\src\LSS.cpp:300:39: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
  if (!(bus->find(LSS_CommandReplyStart)))

Blinking RED is an error and will overwrite the normal BLUE color.
Those two joints are probably blocked in their movements.

Can you post some pictures of the legs (each ones) ?
If a motor is not in the right orientation the movement will not be correct and may block.

Here are some pictures from the left side.
Front Left:



Then, Rear Left:



Now, after some trotting (say 10 seconds), 8 of the servos are blinking RED. The only servos that are not blinking (but also not BLUE) are 11, 21, 31, 41.
Connection to the LSS-ADA are like this:
JP1 → 41 → 42 → 43.
JP3 → 31 → 32 → 33.
JP4 → 21 → 22 → 23.
JP6 → 11 → 12 → 13.
JP5 → LSS2IO.

1 Like

The servos are daisy chained, their connector on the LSS-Adapter do not matter.
Can you take a video of the behavior when powering it using that test sketch ?

Sure, here’s a video during power up. I disabled all servos except “11”, and put it at a weird angle so that you can clearly see the rotation after power is ON.

This do not show me any problems, I wanted to see why you were having servos going in blinking red error.

If you are still using the same example, the code put the LED in BLUE in it’s setup stage:

Here’s a video of the servos blinking RED after some seconds (except LSS 11, 21, 31, 41). The legs are not touching my hand or the table. There’s literally no obstacles for the servos.

This video is quite helpful, it seems like you are in Motion Profile 1 (EM1).
In the sketch there is a command to put it in EM0 but I did some tests and it doesn’t seems to be taken by the servos.

I’ve modified the example and you might want to test this out.
mechDOG_UP_Walk_V2.zip (2.8 KB)

1 Like

Thanks a lot for this pointer. That’s what I initially tried with LSS2IO when I noticed there’s no BLUE color. After adding the delay after every line in setup stage, I noticed the BLUE color came back. Now the robot wakes up and trots perfectly.

By the way, this is working only on LSS2IO, not on UNO unfortunately. So, I reckon the problem is with the ino file and/or the LSS cpp library.

1 Like

Would be great to see a video :grinning:

1 Like

The bulk of my changes are not regarding the delay but a change in how the Serial commands are sent.
I’ve use “Serial.println()” instead of “Serial.write()” as the way to send commands.

Let me know if you have other questions :slight_smile:

1 Like

Here is the video of the robot trotting forward continuously (I had to hold it since the LSS-ADA was connected to wall plug).


But I’m still confused about why my UNO doesn’t work for the same code. I have tried 3 different ones as of now. As mentioned in the beginning, after the code is done uploading (from the IDE to my UNO), I switch the LSS-ADA from “USB” to “Arduino”.

1 Like

I think it could be that the UNO do not get power from the LSS Adapter.
The TX and RX lines could blink cause they are driven by the LSS Adapter but maybe the board do not get powered ?

The only thing going from one another is TX / RX and Power.
Are you also sure the pins are properly inserted ?

1 Like

Yeah, the UNO and LSS-ADA are connected exactly like this picture. I used the headers, and both boards are getting powered. I also tried the basic LED-blink example (from Arduino IDE library), and the built-in LED of UNO worked by getting powered via LSS-ADA (after disconnecting the cable between PC and UNO). As I mentioned in the beginning, the LSS-ADA is being powered through this XT-60 wall adapter. So, I think there is no shortage of amps.

1 Like