LSS - 2IO not discovering attached mini servo on D10

I have a LSS-2IO board configured in 2RC mode, with two mini servos attached to D9 and D10. I have a separate 5Vdc supply attached to the LSS-2IO so the mini servos are powered correctly. There are also a couple LSS servos in the LSS daisy chain which all respond correctly to their LSS ID (which are ID 2 thru 4). The 2IO Master responds correctly at LSS ID 207. The mini servo on D9 responds correctly at LSS ID 209. However, I can not get any response from the servo connected to D10 which is LSS ID 210. I have swapped servos, cycled power, etc with no effect. Looking through the LSS-2IO source code running on the ATMega328P, the software “discovers” attached servos on D9, D10, and D11, creating/opening a channel for each servo discovered. However, I do not see in the ATMega328P software how this “discovery” process is kicked off, or why it is not finding the mini servo attached to D10. Any help would be appreciated.

It turns out the LSS Python library for the LSS family of servos does not directly support the LSS-2IO Board. The LSS Python library must be modified to support the special 2RC Communications Protocol used by the LSS-2IO Board. The mini servo on D10 is really there, the LSS Python Library is not parsing the LSS-2IO response correctly so it is being reported as “not there”. I am modifying and testing the LSS Python library now. Thank goodness for low level debuggers.

Hi KimJVogel,

There’s no communication between the RC servo and the LSS-2IO.
What are you asking in your query to servo ID 210 ?

I’ve done some test with a serial monitor and can successfully do all queries available on the protocol page (HERE).

Let me know,

1 Like

I hooked up a serial monitor to the LSS-2IO Board to eliminate my Python code being the problem, but nothing improved. I can execute commands to ID 207 (get model, change LED colors, etc.). I can execute commands to ID 209 (get model, set positions in degrees, query position, etc.). However, ID 210 (D10), ID 211 (D11), ID 203 (A3), ID 204 (A4), and ID 205 (A5) are completely non responsive to any command strings I send to them. I suspect the code on the LSS-2IO is corrupt. Do you recommend a Reset, or should I re-flash the uC. I need to research how to write new code to the LSS-2IO, do you recommend any resources?

I have modified getModel(self) to getModel(self, length = 7) which calls genericRead_Blocking_str(…) in the LynxMotion LSS Python library. genericRead_Blocking_str(…, 7) was fixed at 7 characters, which is fine for a LSS servo, but needs to be 11 characters for the LSS-2IO. This change allows me to pass in a character length.

The first thing to do would be to do a “#207DEFAULT” and try again. (HERE)

If that’s not helping, flash the project again on the board.
It’s an Arduino microcontroller and the example is available through Arduino IDE.

  1. Open Arduino IDE and go straight to "Sketch / Include Library / Manage Libraries…

  2. In the search field type “AlternativeLSS” and click “Install”

  3. The “Lss2IO” example code will be available for you to flash it.

If you want to code you can have a look at our page on the Wiki HERE.
This will give you the pinout in relation to the standard Arduino.

The LSS-2IO is a bit different in the Serial connections since it can do both Master and Slave over the serial bus.

As I mentioned earlier, I’ve hooked up an LSS-2IO to a LSS-ADA (serial to USB adapter) and did some queries to test out.
image

The #207DEFAULT fixed everything…kinda feel stupid not trying it before.

Don’t feel stupid, there could be a bug in the 2IO code as well.
If you end up it the same situation again, let us know with as much infos as possible. :slight_smile:

1 Like

Note: The code is hosted HERE.

1 Like