Changes for page LSS Communication Protocol
Last modified by Eric Nantel on 2025/06/06 07:47
Change comment: There is no comment for this version
Summary
-
Page properties (3 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -xwiki:XWiki. RB11 +xwiki:XWiki.CBenson - Tags
-
... ... @@ -1,1 +1,0 @@ 1 -LSS|communication|protocol|programming|firmware|control - Content
-
... ... @@ -42,28 +42,6 @@ 42 42 Modified commands are command specific. 43 43 ))) 44 44 45 -((( 46 - 47 -))) 48 - 49 -== Configuration Commands == 50 - 51 -Configuration commands affect the servo's current session* but unlike action commands, configuration commands are written to EEPROM and are retained even if the servo loses power (therefore NOT session specific). Not all action commands have a corresponding configuration and vice versa. Certain configurations are retained for when the servo is used in RC model. More information can be found on the [[LSS - RC PWM page>>doc:Lynxmotion Smart Servos (LSS).LSS - RC PWM.WebHome]]. 52 - 53 -1. Start with a number sign # (U+0023) 54 -1. Servo ID number as an integer 55 -1. Configuration command (two to three letters, no spaces, capital or lower case) 56 -1. Configuration value in the correct units with no decimal 57 -1. End with a control / carriage return '<cr>' 58 - 59 -Ex: #5CO-50<cr> 60 - 61 -Assigns an absolute origin offset of -5.0 degrees (with respect to factory origin) to servo #5 and changes the offset for that session to -5.0 degrees. 62 - 63 -Configuration commands are not cumulative, in that if two configurations are sent at any time, only the last configuration is used and stored. 64 - 65 -*Important Note: the one exception is the baud rate - the servo's current session retains the given baud rate. The new baud rate will only be in place when the servo is power cycled. 66 - 67 67 == Query Commands == 68 68 69 69 Query commands are sent serially to the servo's Rx pin and must be set in the following format: ... ... @@ -91,21 +91,25 @@ 91 91 ))) 92 92 93 93 Indicates that servo #5 is currently at 144.3 degrees. 72 +))) 94 94 95 - **SessionvsConfigurationQuery**74 +== Configuration Commands == 96 96 97 - Bydefault,thequerycommand returns the sessions'value;shouldnoaction commands havebeensenttochange,itwillreturn thevalue saved inEEPROMfromthelast configurationcommand.76 +Configuration commands affect the servo's current session* but unlike action commands, configuration commands are written to EEPROM and are retained even if the servo loses power (therefore NOT session specific). Not all action commands have a corresponding configuration and vice versa. Certain configurations are retained for when the servo is used in RC model. More information can be found on the [[LSS - RC PWM page>>doc:Lynxmotion Smart Servos (LSS).LSS - RC PWM.WebHome]]. 98 98 99 -In order to query the value in EEPROM, add a '1' to the query command. 78 +1. Start with a number sign # (U+0023) 79 +1. Servo ID number as an integer 80 +1. Configuration command (two to three letters, no spaces, capital or lower case) 81 +1. Configuration value in the correct units with no decimal 82 +1. End with a control / carriage return '<cr>' 100 100 101 -Ex: #5C SR20<cr>sets the maximum speed for servo #5 to 20rpm upon RESET (explained below).84 +Ex: #5CO-50<cr> 102 102 103 -A fterRESET:#5SR4<cr>sets the session'sspeedto4rpm.86 +Assigns an absolute origin offset of -5.0 degrees (with respect to factory origin) to servo #5 and changes the offset for that session to -5.0 degrees. 104 104 105 - #5QSR<cr>would return*5QSR4<cr>whichrepresentsthevalueforthat session.88 +Configuration commands are not cumulative, in that if two configurations are sent at any time, only the last configuration is used and stored. 106 106 107 -#5QSR1<cr> would return *5QSR20<cr> which represents the value in EEPROM 108 -))) 90 +*Important Note: the one exception is the baud rate - the servo's current session retains the given baud rate. The new baud rate will only be in place when the servo is power cycled. 109 109 110 110 = Command List = 111 111 ... ... @@ -283,15 +283,8 @@ 283 283 284 284 Ex: #5QSD<cr> might return *5QSD1800<cr> 285 285 286 -By default QSD will return the current session value, which is set to the value of CSD as reset/power cycle and changed whenever a SD command is processed. 287 -If #5QSD1<cr> is sent, the configured maximum speed (CSD value) will be returned instead. You can also query the current speed using "2" and the current target travel speed using "3". See the table below for an example: 268 +Note that the QSD query will return the current servo speed. Querying the last maximum speed value set using SD or CSD is not possible. 288 288 289 -|**Command sent**|**Returned value (1/10 °)** 290 -|ex: #5QSR<cr>|Current session value for maximum speed (set by latest SD/SR command) 291 -|ex: #5QSR1<cr>|Current maximum speed configured (set by CSD/CSR) 292 -|ex: #5QSR2<cr>|Current speed. 293 -|ex: #5QSR3<cr>|Target travel speed. 294 - 295 295 Configure Speed in Degrees (**CSD**) 296 296 297 297 Ex: #5CSD1800<cr> ... ... @@ -368,7 +368,7 @@ 368 368 369 369 __17. Identification Number__ 370 370 371 -A servo's identification number cannot be set "on the fly" and must be configured via the CID command described below. The factory default ID number for all servos is 0. Since smart servos are intended to be daisy chained, in order to respond differently from one another, the user must set different identification numbers. Servos with the same ID and baud rate will all receive and react to the same commands.346 +A servo's identification number cannot be set "on the fly" and must be configured via the CID command described below. The factory default ID number for all servos is 1. Since smart servos are intended to be daisy chained, in order to respond differently from one another, the user must set different identification numbers. Servos with the same ID and baud rate will all receive and react to the same commands. 372 372 373 373 Query Identification (**QID**) 374 374 ... ... @@ -384,8 +384,7 @@ 384 384 385 385 __18. Baud Rate__ 386 386 387 -A servo's baud rate cannot be set "on the fly" and must be configured via the CB command described below. The factory default baud rate for all servos is 9600. Since smart servos are intended to be daisy chained, in order to respond to the same serial bus, all servos in that project should ideally be set to the same baud rate. Setting different baud rates will have the servos respond differently and may create issues. Available baud rates are: 9.6 kbps, 19.2 kbps, 38.4 kbps, 57.6 kbps, 115.2 kbps, 230.4 kbps, 250.0 kbps, 460.8 kbps, 500.0 kbps, 750.0 kbps*, 921.6 kbps*. Servos are shipped with a baud rate set to 9600. The baud rates are currently restricted to those above. 388 -\*: Current tests reveal baud rates above 500 kbps are unstable and can cause timeouts. Please keep this in mind if using those / testing them out. 362 +A servo's baud rate cannot be set "on the fly" and must be configured via the CB command described below. The factory default baud rate for all servos is 9600. Since smart servos are intended to be daisy chained, in order to respond to the same serial bus, all servos in that project should ideally be set to the same baud rate. Setting different baud rates will have the servos respond differently and may create issues. Standard / suggested baud rates are: 4800; 9600; 14400; 19200; 38400; 57600; 115200; 128000; 256000, 512000 bits per second. Servos are shipped with a baud rate set to 9600. The baud rates are currently restricted to those above 389 389 390 390 Query Baud Rate (**QB**) 391 391