Last modified by Eric Nantel on 2024/09/06 14:52

From version < 19.1 >
edited by Coleman Benson
on 2023/06/27 13:12
To version < 20.1 >
edited by Coleman Benson
on 2023/06/27 14:23
< >
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,8 +1,6 @@
1 1  {{warningBox warningText="More information coming soon"/}}
2 2  
3 3  
4 -
5 -
6 6  (% class="wikigeneratedid" id="HTableofContents" %)
7 7  **Page Contents**
8 8  
... ... @@ -10,7 +10,7 @@
10 10  
11 11  = Serial Protocol =
12 12  
13 -The Lynxmotion Smart Servo (LSS) serial protocol was created in order to be as simple and straightforward as possible from a user perspective ("human readable format"), while at the same time staying compact and robust yet highly versatile. The protocol was based on Lynxmotion's SSC-32 & SSC-32U RC servo controllers and almost everything one might expect to be able to configure for a smart servomotor is available.
11 +The Lynxmotion Smart Servo (LSS) PRO serial protocol was created in order to be as simple and straightforward as possible from a user perspective ("human readable format"), while at the same time staying compact and robust yet highly versatile. The protocol was based on Lynxmotion's Smart Servo (LSS) protocol, which itself was based on the SSC-32 & SSC-32U RC servo controllers. The LSS PRO series and normal LSS share many of the same commands, but because of higher angular precision, slightly different operation and different features, the two protocols do not fully overlap.
14 14  
15 15  In order to be able to control each servo individually with commands, the first step should be to assign a different ID number to each servo (see details on the Configure ID, or "CID" command [[here>>doc:||anchor="HIdentificationNumber28ID29"]]). Only the servo(s) which have been configured to a specific ID will act on a command sent to that ID. There is currently no CRC or checksum implemented as part of the protocol.
16 16  
... ... @@ -25,13 +25,13 @@
25 25  1. End with a carriage return **\r** or **<cr>** Unicode Character (U+000D)
26 26  
27 27  (((
28 -Ex: #5D18000<cr>
26 +Ex: #5D130000<cr>
29 29  
30 -This sends a serial command to all servo's RX pins which are connected to the bus and only servo(s) with ID #5 will move to a position (1800 in tenths of degrees) of 180.0 degrees. Any servo on the bus which does not have ID 5 will take no action when receiving this command.
28 +This sends a serial command to all servo's RX pins which are connected to the bus and only servo(s) with ID #5 will move to a position (13000 in hundredths of degrees) of 130.00 degrees. Any servo on the bus which does not have ID 5 will take no action when receiving this command.
31 31  
32 32  == Modifiers ==
33 33  
34 -{{html clean="false" wiki="true"}}
32 +{{html clean="false" wiki="true" __cke_selected_macro="true"}}
35 35  <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt">
36 36  Modifiers can only be used with certain **action commands**. The format to include a modifier is:<div class="wikimodel-emptyline"></div>
37 37  
... ... @@ -43,9 +43,9 @@
43 43  1. Modifier value in the correct units with no decimal
44 44  1. End with a carriage return **&#92;r** or **&lt;cr&gt;** Unicode Character (U+000D)
45 45  
46 -Ex: #5D1800T1500&lt;cr&gt;<div class="wikimodel-emptyline"></div>
44 +Ex: #5D13000T1500&lt;cr&gt;<div class="wikimodel-emptyline"></div>
47 47  
48 -This results in the servo with ID #5 rotating to a position (1800 in tenths of degrees) of 180.0 degrees in a time ("T") of 1500 milliseconds (1.5 seconds).<div class="wikimodel-emptyline"></div>
46 +This results in the servo with ID #5 rotating to a position (1800 in tenths of degrees) of 130.00 degrees in a time ("T") of 1500 milliseconds (1.5 seconds).<div class="wikimodel-emptyline"></div>
49 49  <div class="wikimodel-emptyline"></div></div></div>
50 50  
51 51  <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt">
... ... @@ -56,9 +56,9 @@
56 56  1. Query command (one to four letters, no spaces, capital or lower case)
57 57  1. End with a carriage return **&#92;r** or **&lt;cr&gt;** Unicode Character (U+000D)<div class="wikimodel-emptyline"></div>
58 58  
59 -Ex: #5QD&lt;cr&gt; Query the position in (tenth of) degrees for servo with ID #5<div class="wikimodel-emptyline"></div>
57 +Ex: #5QD&lt;cr&gt; Query the position in (hundredths of) degrees for servo with ID #5<div class="wikimodel-emptyline"></div>
60 60  
61 -The query will return a serial string (almost instantaneously) via the servo's Tx pin with the following format:
59 +The query will return a serial string (almost instantaneously) via the servo's Tx in the following format:
62 62  
63 63  1. Start with an asterisk * (Unicode Character: U+0023)
64 64  1. Servo ID number as an integer
... ... @@ -68,9 +68,9 @@
68 68  
69 69  There is currently no option to control how fast a servo replies after it has received a query command, therefore when sending a query command to the bus, the controller should be prepared to immediately "listen" for and parse the reply. Sending multiple queries to multiple servos on a bus in fast succession may result in replies overlapping and giving incorrect or corrupt data. As such, the controller should receive a reply before sending a new query command. A reply to the query sent above might be:<div class="wikimodel-emptyline"></div>
70 70  
71 -Ex: *5QD1800&lt;cr&gt;<div class="wikimodel-emptyline"></div>
69 +Ex: *5QD13000&lt;cr&gt;<div class="wikimodel-emptyline"></div>
72 72  
73 -This indicates that servo #5 is currently at 180.0 degrees (1800 tenths of degrees).
71 +This indicates that servo #5 is currently at 130.00 degrees (13000 tenths of degrees).
74 74  <div class="wikimodel-emptyline"></div></div></div>
75 75  
76 76  <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt">
... ... @@ -991,5 +991,3 @@
991 991  == RGB LED ==
992 992  
993 993  The LED can be
994 -
995 -
Copyright RobotShop 2018