Last modified by Eric Nantel on 2025/06/06 07:47

From version < 15.1 >
edited by Coleman Benson
on 2018/04/13 11:04
To version < 27.1 >
edited by Coleman Benson
on 2018/05/07 12:45
< >
Change comment: There is no comment for this version

Summary

Details

Page properties
Tags
... ... @@ -1,0 +1,1 @@
1 +LSS|communication|protocol|programming|firmware|control
Content
... ... @@ -42,6 +42,28 @@
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 +
45 45  == Query Commands ==
46 46  
47 47  Query commands are sent serially to the servo's Rx pin and must be set in the following format:
... ... @@ -69,25 +69,21 @@
69 69  )))
70 70  
71 71  Indicates that servo #5 is currently at 144.3 degrees.
72 -)))
73 73  
74 -== Configuration Commands ==
95 +**Session vs Configuration Query**
75 75  
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]].
97 +By default, the query command returns the sessions' value; should no action commands have been sent to change, it will return the value saved in EEPROM from the last configuration command.
77 77  
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>'
99 +In order to query the value in EEPROM, add a '1' to the query command.
83 83  
84 -Ex: #5CO-50<cr>
101 +Ex: #5CSR20<cr> sets the maximum speed for servo #5 to 20rpm upon RESET (explained below).
85 85  
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.
103 +After RESET: #5SR4<cr> sets the session's speed to 4rpm.
87 87  
88 -Configuration commands are not cumulative, in that if two configurations are sent at any time, only the last configuration is used and stored.
105 +#5QSR<cr> would return *5QSR4<cr> which represents the value for that session.
89 89  
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.
107 +#5QSR1<cr> would return *5QSR20<cr> which represents the value in EEPROM
108 +)))
91 91  
92 92  = Command List =
93 93  
... ... @@ -105,8 +105,8 @@
105 105  | 9|Position in **D**egrees| D| QD| | | ✓| tenths of degrees (ex 325 = 32.5 degrees; 91 = 9.1 degrees)|
106 106  | 10|**W**heel mode in **D**egrees| WD| QWD| | | ✓| tenths of degrees per second (ex 248 = 24.8 degrees per second)|
107 107  | 11|**W**heel mode in **R**PM| WR| QWR| | | ✓| rpm|
108 -| 12|**S**peed in **D**egrees| SD| QSD| CSD| ✓| ✓| tenths of degrees per second (ex 248 = 24.8 degrees per second)|
109 -| 13|**S**peed in **R**PM| SR| QSR| CSR| ✓| ✓| rpm|
126 +| 12|Max **S**peed in **D**egrees| SD| QSD| CSD| ✓| ✓| tenths of degrees per second (ex 248 = 24.8 degrees per second)|Add modifier "2" for instantaneous speed
127 +| 13|Max **S**peed in **R**PM| SR| QSR| CSR| ✓| ✓| rpm|Add modifier "2" for instantaneous speed
110 110  | 14|**R**igidity| R| QR| CR| ✓| ✓|none|
111 111  | 15|//N/A (removed)//| | | | | | |
112 112  | 16|**LED** Color| LED| QLED| CLED| ✓| ✓| none (integer from 1 to 8)|0=OFF 1=RED 2=GREEN 3= BLUE 4=YELLOW 5=CYAN 6= 7=MAGENTA, 8=WHITE
... ... @@ -265,8 +265,15 @@
265 265  
266 266  Ex: #5QSD<cr> might return *5QSD1800<cr>
267 267  
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.
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/SR 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:
269 269  
289 +|**Command sent**|**Returned value (1/10 °)**
290 +|ex: #5QSD<cr>|Current session value for maximum speed (set by latest SD/SR command)
291 +|ex: #5QSD1<cr>|Current maximum speed configured (set by CSD/CSR)
292 +|ex: #5QSD2<cr>|Current speed.
293 +|ex: #5QSD3<cr>|Target travel speed.
294 +
270 270  Configure Speed in Degrees (**CSD**)
271 271  
272 272  Ex: #5CSD1800<cr>
... ... @@ -283,13 +283,20 @@
283 283  
284 284  Ex: #5QSR<cr> might return *5QSR45<cr>
285 285  
286 -Note that the QSD query will return the current servo speed. Querying the last maximum speed value set using SR or CSR is not possible.
311 +By default QSR will return the current session value, which is set to the value of CSR as reset/power cycle and changed whenever a SD/SR command is processed.
312 +If #5QSR1<cr> is sent, the configured maximum speed (CSR 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:
287 287  
288 -Configure Speed in Degrees (**CSR**)
314 +|**Command sent**|**Returned value (1/10 °)**
315 +|ex: #5QSR<cr>|Current session value for maximum speed (set by latest SD/SR command)
316 +|ex: #5QSR1<cr>|Current maximum speed configured (set by CSD/CSR)
317 +|ex: #5QSR2<cr>|Current speed.
318 +|ex: #5QSR3<cr>|Target travel speed.
289 289  
320 +Configure Speed in RPM (**CSR**)
321 +
290 290  Ex: #5CSR45<cr>
291 291  
292 -Using the CSD command sets the servo's maximum speed which is saved in EEPROM. In the example above, the servo's maximum speed will be set to 45rpm. When the servo is powered on (or after a reset), the CSD value is used. Note that CSD and CSR are effectively the same, but allow the user to specify the speed in either unit. The last command (either CSR or CSD) is what the servo uses for that session.
324 +Using the CSR command sets the servo's maximum speed which is saved in EEPROM. In the example above, the servo's maximum speed will be set to 45rpm. When the servo is powered on (or after a reset), the CSR value is used. Note that CSD and CSR are effectively the same, but allow the user to specify the speed in either unit. The last command (either CSR or CSD) is what the servo uses for that session.
293 293  
294 294  __14. Rigidity (R)__
295 295  
... ... @@ -343,7 +343,7 @@
343 343  
344 344  __17. Identification Number__
345 345  
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.
378 +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.
347 347  
348 348  Query Identification (**QID**)
349 349  
... ... @@ -359,7 +359,8 @@
359 359  
360 360  __18. Baud Rate__
361 361  
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
394 +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.
395 +\*: 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.
363 363  
364 364  Query Baud Rate (**QB**)
365 365  
Copyright RobotShop 2018