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 (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 5 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -xwiki:XWiki. ENantel1 +xwiki:XWiki.CBenson - Content
-
... ... @@ -1,3 +1,8 @@ 1 +{{warningBox warningText="More information coming soon"/}} 2 + 3 + 4 + 5 + 1 1 (% class="wikigeneratedid" id="HTableofContents" %) 2 2 **Page Contents** 3 3 ... ... @@ -9,36 +9,20 @@ 9 9 10 10 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. 11 11 12 -= =Session ==17 += Action Commands = 13 13 14 -{{html clean="false" wiki="true"}} 15 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 16 -A "session" is defined as the time between when the servo is powered ON to when it is powered OFF or reset.<div class="wikimodel-emptyline"></div> 19 +Action commands tell the servo, within that session, to do something (i.e. "take an action"). The types of action commands which can be sent are described below, and they cannot be combined with other commands such as queries or configurations. Only one action command can be sent at a time. Action commands are session-specific, therefore once a servo is power cycled, it will not have any "memory" of previous actions or [[virtual positions>>||anchor="HVirtualAngularPosition"]] (described below). Action commands are sent serially to the servo's Rx pin and must be sent in the following format: 17 17 18 -**Note 1:** For a given session, the action related to a specific command overrides the stored value in EEPROM.<div class="wikimodel-emptyline"></div> 19 -**Note 2:** During the power-on / reset process the LSS cannot accept commands for a small amount of time (~1.25 s).<div class="wikimodel-emptyline"></div> 20 -**Note 3:** You can ensure the LSS is ready by using a query command to check for response (ex: #[id]Q\r or #[id]QID\r described below). If the LSS is ready for commands (initialized) it will respond to the query. A timeout between 50-100 ms is recommended to compensate for drivers, OS and buffering delays. 21 -<div class="wikimodel-emptyline"></div></div></div> 22 -{{/html}} 23 - 24 -== Action Commands == 25 - 26 -{{html clean="false" wiki="true"}} 27 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 28 -Action commands tell the servo, within that session, to do something (i.e. "take an action"). The types of action commands which can be sent are described below, and they cannot be combined with other commands such as queries or configurations. Only one action command can be sent at a time. Action commands are session-specific, therefore once a servo is power cycled, it will not have any "memory" of previous actions or [[virtual positions>>||anchor="HVirtualAngularPosition"]] (described below). Action commands are sent serially to the servo's Rx pin and must be sent in the following format:<div class="wikimodel-emptyline"></div> 29 - 30 30 1. Start with a number sign **#** (Unicode Character: U+0023) 31 31 1. Servo ID number as an integer (assigning an ID described below) 32 32 1. Action command (one or more letters, no whitespace, capital or lowercase from the list below) 33 33 1. Action value in the correct units with no decimal 34 -1. End with a carriage return ** \r** or **<cr>**25 +1. End with a carriage return **\r** or **<cr>** Unicode Character (U+000D) 35 35 36 36 ((( 37 -Ex: #5D1800 <cr><divclass="wikimodel-emptyline"></div>28 +Ex: #5D18000<cr> 38 38 39 39 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. 40 -<div class="wikimodel-emptyline"></div></div></div> 41 -{{/html}} 42 42 43 43 == Modifiers == 44 44 ... ... @@ -58,11 +58,7 @@ 58 58 59 59 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> 60 60 <div class="wikimodel-emptyline"></div></div></div> 61 -{{/html}} 62 62 63 -== Query Commands == 64 - 65 -{{html clean="false" wiki="true"}} 66 66 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 67 67 Query commands request information from the servo. They are received via the Rx pin of the servo, and the servo's reply is sent via the servo's Tx pin. Using separate lines for Tx and Rx is called "full duplex". Query commands are also similar to action and configuration commands and must use the following format:<div class="wikimodel-emptyline"></div> 68 68 ... ... @@ -87,11 +87,7 @@ 87 87 88 88 This indicates that servo #5 is currently at 180.0 degrees (1800 tenths of degrees). 89 89 <div class="wikimodel-emptyline"></div></div></div> 90 -{{/html}} 91 91 92 -== Configuration Commands == 93 - 94 -{{html clean="false" wiki="true"}} 95 95 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 96 96 Configuration commands and corresponding values affect a servo's defaults which are written to and read from the servo's EEPROM.<div class="wikimodel-emptyline"></div> 97 97 ... ... @@ -121,11 +121,7 @@ 121 121 122 122 #5QSR1<cr> would return *5QSR20<cr> which represents the value in EEPROM 123 123 <div class="wikimodel-emptyline"></div></div></div> 124 -{{/html}} 125 125 126 -== Virtual Angular Position == 127 - 128 -{{html wiki="true" clean="false"}} 129 129 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 130 130 The ability to store a "virtual angular position" is a feature which allows for rotation beyond 360 degrees, permitting multiple rotations of the output horn, moving the center position and more. The "absolute position" would be the angle of the output shaft with respect to a 360.0 degree circle and can be obtained by taking the modulus (with respect to 360 degrees) of the value. For example if the virtual position is reported as 15335 (or 1533.5 degrees), taking the modulus would give 93.5 degrees (3600 * 4 + 935 = 15335) as the absolute position (assuming no origin offset).<div class="wikimodel-emptyline"></div> 131 131 ... ... @@ -147,11 +147,13 @@ 147 147 148 148 If the servo loses power or is power cycled, it also loses the virtual position associated with that session. For example, if the virtual position was 480.0 degrees before power is cycled, upon power up the servo's position will be read as +120.0 degrees from zero (assuming center position has not been modified). The virtual position range at power-up is [-180.0°, 180.0°]. 149 149 <div class="wikimodel-emptyline"></div></div></div> 127 + 150 150 {{/html}} 129 +))) 151 151 152 152 = Command List = 153 153 154 -**Latest firmware version currently : 368.29.14**133 +**Latest firmware version currently : v0.0.780** 155 155 156 156 |(% colspan="10" style="color:orange; font-size:18px" %)[[**Communication Setup**>>||anchor="HCommunicationSetup"]] 157 157 |(% style="width:25px" %) |(% style="width:200px" %)**Description**|(% style="text-align:center; width:100px" %)**Action**|(% style="text-align:center; width:75px" %)**Query**|(% style="text-align:center; width:75px" %)**Config**|(% style="text-align:center; width:75px" %)**RC**|(% style="text-align:center; width:75px" %)**Serial**|(% style="width:100px" %)**Default**|(% style="width:170px" %)**Unit**|**Notes** ... ... @@ -1009,8 +1009,8 @@ 1009 1009 </div></div> 1010 1010 {{/html}} 1011 1011 1012 -== RGB LED Patterns==991 +== RGB LED == 1013 1013 1014 -The LED patterns below do not include those whichare part of the buttonmenu, which canbefound here: [[LSS Button Menu>>doc:lynxmotion-smart-servo.lss-button-menu.WebHome]]993 +The LED can be 1015 1015 1016 - [[image:LSS- LED Patterns.png]]995 +
- LSS-servo-ar-o-1.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.CBenson - Size
-
... ... @@ -1,0 +1,1 @@ 1 +11.8 KB - Content
- LSS-servo-ar.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.CBenson - Size
-
... ... @@ -1,0 +1,1 @@ 1 +11.8 KB - Content
- LSS-servo-default.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.CBenson - Size
-
... ... @@ -1,0 +1,1 @@ 1 +12.3 KB - Content
- LSS-servo-origin.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.CBenson - Size
-
... ... @@ -1,0 +1,1 @@ 1 +12.2 KB - Content
- LSS-servo-positions.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.CBenson - Size
-
... ... @@ -1,0 +1,1 @@ 1 +13.0 KB - Content