Changes for page LSS-PRO Communication Protocol
Last modified by Eric Nantel on 2024/09/06 14:52
Change comment: There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
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 e verything onemight expecttobebletoconfigure forasmartservomotor isavailable.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: #5D1 8000<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 (1 800 intenths 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 **\r** or **<cr>** Unicode Character (U+000D) 45 45 46 -Ex: #5D1 800T1500<cr><div class="wikimodel-emptyline"></div>44 +Ex: #5D13000T1500<cr><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 1 80.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 **\r** or **<cr>** Unicode Character (U+000D)<div class="wikimodel-emptyline"></div> 58 58 59 -Ex: #5QD<cr> Query the position in ( tenth of) degrees for servo with ID #5<div class="wikimodel-emptyline"></div>57 +Ex: #5QD<cr> 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 pinwiththe 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: *5QD1 800<cr><div class="wikimodel-emptyline"></div>69 +Ex: *5QD13000<cr><div class="wikimodel-emptyline"></div> 72 72 73 -This indicates that servo #5 is currently at 1 80.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 -