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

From version < 161.1 >
edited by RB1
on 2020/03/11 09:53
To version < 147.1 >
edited by Coleman Benson
on 2019/10/08 09:30
< >
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.RB1
1 +xwiki:XWiki.CBenson
Content
... ... @@ -13,9 +13,7 @@
13 13  
14 14  A "session" is defined as the time between when the servo is powered ON to when it is powered OFF or reset.
15 15  
16 -Note #1: For a given session, the action related to a specific commands overrides the stored value in EEPROM.
17 -Note #2: During the power-on / reset process the LSS cannot accept commands for a small amount of time (1.25 s).
18 -You can ensure the LSS is ready by using a query command to check for response (ex: #[id]Q\r or #[id]QID\r). If the LSS is ready for commands (initialized) it will respond to the query. A timeout between 50-100 ms is recommended.
16 +Note that for a given session, the action related to a specific commands overrides the stored value in EEPROM.
19 19  
20 20  == Action Commands ==
21 21  
... ... @@ -132,55 +132,55 @@
132 132  
133 133  == Regular ==
134 134  
135 -|= #|=Description|=Mod|= Action|= Query|= Config|=Session|= RC|= Serial|= Units|=(% style="width: 510px;" %) Notes|=(% style="width: 113px;" %)Default Value
136 -| 1|[[**L**imp>>||anchor="H1.Limp28L29"]]| | L| | | | | ✓|none|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
137 -| 2|[[**H**alt & **H**old>>||anchor="H2.Halt26Hold28H29"]]| | H| | | | | ✓|none|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
138 -| 3|[[**T**imed move>>||anchor="H3.Timedmove28T29modifier"]]|T| | | | | | ✓|milliseconds|(% style="width:510px" %)Modifier only for {P, D, MD}. Time is estimated and can change based on load|(% style="text-align:center; width:113px" %)
139 -| 4|[[**S**peed>>||anchor="H4.Speed28S29modifier"]]|S/SD| |QS| | | | ✓|microseconds per second / degrees per second|(% style="width:510px" %)S modifier only for {P}. SD modifier only for {D, MD}.|(% style="text-align:center; width:113px" %)
140 -| 5|[[**M**ove in **D**egrees (relative)>>||anchor="H5.28Relative29MoveinDegrees28MD29"]]| | MD| | | | | ✓|tenths of degrees (ex 325 = 32.5 degrees)|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
141 -| 6|[[**O**rigin Offset>>||anchor="H6.OriginOffsetAction28O29"]]| | O| QO|CO|✓| ✓| ✓|tenths of degrees (ex 91 = 9.1 degrees)|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)(((
133 +|= #|=Description|= Action|= Query|= Config|=Session|= RC|= Serial|= Units|=(% style="width: 510px;" %) Notes|=(% style="width: 113px;" %)Default Value
134 +| 1|[[**L**imp>>||anchor="H1.Limp28L29"]]| L| | | | | ✓|none|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
135 +| 2|[[**H**alt & **H**old>>||anchor="H2.Halt26Hold28H29"]]| H| | | | | ✓|none|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
136 +| 3|[[**T**imed move>>||anchor="H3.Timedmove28T29modifier"]]| | | | | | ✓|milliseconds|(% style="width:510px" %) Modifier only for {P, D, MD}. Time is estimated and can change based on load|(% style="text-align:center; width:113px" %)
137 +| 4|[[**S**peed>>||anchor="H4.Speed28S29modifier"]]| |QS| | | | ✓|microseconds per second|(% style="width:510px" %) Modifier only {P}|(% style="text-align:center; width:113px" %)
138 +| 5|[[**M**ove in **D**egrees (relative)>>||anchor="H5.28Relative29MoveinDegrees28MD29"]]| MD| | | | | ✓|tenths of degrees (ex 325 = 32.5 degrees)|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
139 +| 6|[[**O**rigin Offset>>||anchor="H6.OriginOffsetAction28O29"]]| O| QO|CO|✓| ✓| ✓|tenths of degrees (ex 91 = 9.1 degrees)|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)(((
142 142  0
143 143  )))
144 -| 7|[[**A**ngular **R**ange>>||anchor="H7.AngularRange28AR29"]]| | AR| QAR| CAR|✓| ✓| ✓|tenths of degrees |(% style="width:510px" %) |(% style="text-align:center; width:113px" %)(((
142 +| 7|[[**A**ngular **R**ange>>||anchor="H7.AngularRange28AR29"]]| AR| QAR| CAR|✓| ✓| ✓|tenths of degrees |(% style="width:510px" %) |(% style="text-align:center; width:113px" %)(((
145 145  1800
146 146  )))
147 -| 8|[[Position in **P**ulse>>||anchor="H8.PositioninPulse28P29"]]| | P| QP| | | | ✓|microseconds|(% style="width:510px" %)(((
145 +| 8|[[Position in **P**ulse>>||anchor="H8.PositioninPulse28P29"]]| P| QP| | | | ✓|microseconds|(% style="width:510px" %)(((
148 148  Inherited from SSC-32 serial protocol
149 149  )))|(% style="text-align:center; width:113px" %)
150 -| 9|[[Position in **D**egrees>>||anchor="H9.PositioninDegrees28D29"]]| | D| QD / QDT| | | | ✓|tenths of degrees |(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
151 -| 10|[[**W**heel mode in **D**egrees>>||anchor="H10.WheelModeinDegrees28WD29"]]| | WD| QWD| | | | ✓|tenths of degrees per second (ex 248 = 24.8 degrees per second)|(% style="width:510px" %)A.K.A. "Speed mode" or "Continuous rotation"|(% style="text-align:center; width:113px" %)
152 -| 11|[[**W**heel mode in **R**PM>>||anchor="H11.WheelModeinRPM28WR29"]]| | WR| QWR| | | | ✓|revolutions per minute (rpm)|(% style="width:510px" %)A.K.A. "Speed mode" or "Continuous rotation"|(% style="text-align:center; width:113px" %)
153 -| 12|[[Max **S**peed in **D**egrees>>||anchor="H12.MaxSpeedinDegrees28SD29"]]| | SD| QSD|CSD|✓| ✓| ✓|degrees per second (°/s)|(% style="width:510px" %)(((
148 +| 9|[[Position in **D**egrees>>||anchor="H9.PositioninDegrees28D29"]]| D| QD / QDT| | | | ✓|tenths of degrees |(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
149 +| 10|[[**W**heel mode in **D**egrees>>||anchor="H10.WheelModeinDegrees28WD29"]]| WD| QWD| | | | ✓|tenths of degrees per second (ex 248 = 24.8 degrees per second)|(% style="width:510px" %)A.K.A. "Speed mode" or "Continuous rotation"|(% style="text-align:center; width:113px" %)
150 +| 11|[[**W**heel mode in **R**PM>>||anchor="H11.WheelModeinRPM28WR29"]]| WR| QWR| | | | ✓|revolutions per minute (rpm)|(% style="width:510px" %)A.K.A. "Speed mode" or "Continuous rotation"|(% style="text-align:center; width:113px" %)
151 +| 12|[[Max **S**peed in **D**egrees>>||anchor="H12.MaxSpeedinDegrees28SD29"]]| SD| QSD|CSD|✓| ✓| ✓|degrees per second (°/s)|(% style="width:510px" %)(((
154 154  QSD: Add modifier "2" for instantaneous speed.
155 155  
156 156  SD overwrites SR / CSD overwrites CSR and vice-versa.
157 157  )))|(% style="text-align:center; width:113px" %)Max per servo
158 -| 13|[[Max **S**peed in **R**PM>>||anchor="H13.MaxSpeedinRPM28SR29"]]| | SR| QSR|CSR|✓| ✓| ✓|revolutions per minute (rpm)|(% style="width:510px" %)(((
156 +| 13|[[Max **S**peed in **R**PM>>||anchor="H13.MaxSpeedinRPM28SR29"]]| SR| QSR|CSR|✓| ✓| ✓|revolutions per minute (rpm)|(% style="width:510px" %)(((
159 159  QSR: Add modifier "2" for instantaneous speed
160 160  
161 161  SR overwrites SD / CSR overwrites CSD and vice-versa.
162 162  )))|(% style="text-align:center; width:113px" %)Max per servo
163 -| 14|[[**LED** Color>>||anchor="H14.LEDColor28LED29"]]| | LED| QLED| CLED|✓| ✓| ✓|none (integer from 0 to 7)|(% style="width:510px" %)0=Off (black); 1=Red 2=Green; 3=Blue; 4=Yellow; 5=Cyan; 6=Magenta; 7=White;|(% style="text-align:center; width:113px" %)0 (OFF)
164 -| 15|[[**G**yre direction (**G**)>>||anchor="H15.GyreRotationDirection28G29"]]| | G| QG| CG|✓| ✓| ✓|none |(% style="width:510px" %)Gyre / rotation direction: 1= CW (clockwise) -1 = CCW (counter-clockwise)|(% style="text-align:center; width:113px" %)1
165 -| 16|[[**ID** #>>||anchor="H16.IdentificationNumber28ID29"]]| | | QID| CID| | | ✓|none (integer from 0 to 250)|(% style="width:510px" %)Note: ID 254 is a "broadcast" which all servos respond to. |(% style="text-align:center; width:113px" %)0
166 -| 17|[[**B**aud rate>>||anchor="H17.BaudRate"]]| | | QB| CB| | | ✓|none (integer)|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)115200
167 -| 18|//{coming soon}//| | | | | | | | |(% style="width:510px" %) |(% style="text-align:center; width:113px" %)(((
161 +| 14|[[**LED** Color>>||anchor="H14.LEDColor28LED29"]]| LED| QLED| CLED|✓| ✓| ✓|none (integer from 0 to 8)|(% style="width:510px" %)0=Off (black); 1=Red 2=Green; 3=Blue; 4=Yellow; 5=Cyan; 6=Magenta; 7=White;|(% style="text-align:center; width:113px" %)0 (OFF)
162 +| 15|[[**G**yre direction (**G**)>>||anchor="H15.GyreRotationDirection28G29"]]| G| QG| CG|✓| ✓| ✓|none |(% style="width:510px" %)Gyre / rotation direction: 1= CW (clockwise) -1 = CCW (counter-clockwise)|(% style="text-align:center; width:113px" %)1
163 +| 16|[[**ID** #>>||anchor="H16.IdentificationNumber28ID29"]]| | QID| CID| | | ✓|none (integer from 0 to 250)|(% style="width:510px" %)Note: ID 254 is a "broadcast" which all servos respond to. |(% style="text-align:center; width:113px" %)0
164 +| 17|[[**B**aud rate>>||anchor="H17.BaudRate"]]| | QB| CB| | | ✓|none (integer)|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)115200
165 +| 18|//{coming soon}//| | | | | | | |(% style="width:510px" %) |(% style="text-align:center; width:113px" %)(((
168 168  
169 169  )))
170 -| 19|[[**F**irst Position (**D**eg)>>||anchor="H19.FirstA0Position28Degrees29"]]| | | QFD|CFD|X| ✓| ✓|none |(% style="width:510px" %) |(% style="text-align:center; width:113px" %)No Value
171 -| 20|[[**M**odel **S**tring>>||anchor="H20.QueryModelString28QMS29"]]| | | QMS| | | | |none (string)|(% style="width:510px" %) Returns the type of servo (ex: LSS-ST1, LSS-HS1, LSS-HT1)|(% style="text-align:center; width:113px" %)
172 -| 21|[[Serial **N**umber>>||anchor="H21.QuerySerialNumber28QN29"]]| | | QN| | | | |none (integer)|(% style="width:510px" %) Returns the unique serial number for that servo|(% style="text-align:center; width:113px" %)
173 -| 22|[[**F**irmware version>>||anchor="H22.QueryFirmware28QF29"]]| | | QF| | | | |none (integer)|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
174 -| 23|[[**Q**uery (gen. status)>>||anchor="H23.QueryStatus28Q29"]]| | | Q| | | | ✓|none (integer from 1 to 8)|(% style="width:510px" %) See command description for details|(% style="text-align:center; width:113px" %)
175 -| 24|[[**V**oltage>>||anchor="H24.QueryVoltage28QV29"]]| | | QV| | | | ✓|millivolts (ex 5936 = 5936mV = 5.936V)|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
176 -| 25|[[**T**emperature>>||anchor="H25.QueryTemperature28QT29"]]| | | QT| | | | ✓|tenths of degrees Celsius|(% style="width:510px" %)Max temp before error: 85°C (servo goes limp)|(% style="text-align:center; width:113px" %)
177 -| 26|[[**C**urrent>>||anchor="H26.QueryCurrent28QC29"]]| | | QC| | | | ✓|milliamps (ex 200 = 0.2A)|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
178 -| 27|[[**C**hange to** RC**>>||anchor="H27.ConfigureRCMode28CRC29"]]| | | |CRC|✓| | ✓|none|(% style="width:510px" %)(((
168 +| 19|[[**F**irst Position (**D**eg)>>||anchor="H19.FirstA0Position28Degrees29"]]| | QFD|CFD|X| ✓| ✓|none |(% style="width:510px" %) |(% style="text-align:center; width:113px" %)No Value
169 +| 20|[[**M**odel **S**tring>>||anchor="H20.QueryModelString28QMS29"]]| | QMS| | | | |none (string)|(% style="width:510px" %) Returns the type of servo (ST, HS, HT)|(% style="text-align:center; width:113px" %)
170 +| 21|[[Serial **N**umber>>||anchor="H21.QuerySerialNumber28QN29"]]| | QN| | | | |none (integer)|(% style="width:510px" %) Returns the unique serial number for that servo|(% style="text-align:center; width:113px" %)
171 +| 22|[[**F**irmware version>>||anchor="H22.QueryFirmware28QF29"]]| | QF| | | | |none (integer)|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
172 +| 23|[[**Q**uery (gen. status)>>||anchor="H23.QueryStatus28Q29"]]| | Q| | | | ✓|none (integer from 1 to 8)|(% style="width:510px" %) See command description for details|(% style="text-align:center; width:113px" %)
173 +| 24|[[**V**oltage>>||anchor="H24.QueryVoltage28QV29"]]| | QV| | | | ✓|millivolts (ex 5936 = 5936mV = 5.936V)|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
174 +| 25|[[**T**emperature>>||anchor="H25.QueryTemperature28QT29"]]| | QT| | | | ✓|tenths of degrees Celsius|(% style="width:510px" %)Max temp before error: 85°C (servo goes limp)|(% style="text-align:center; width:113px" %)
175 +| 26|[[**C**urrent>>||anchor="H26.QueryCurrent28QC29"]]| | QC| | | | ✓|milliamps (ex 200 = 0.2A)|(% style="width:510px" %) |(% style="text-align:center; width:113px" %)
176 +| 27|[[**C**hange to** RC**>>||anchor="H27.ConfigureRCMode28CRC29"]]| | |CRC|✓| | ✓|none|(% style="width:510px" %)(((
179 179  Change to RC mode 1 (position) or 2 (wheel).
180 180  )))|(% style="text-align:center; width:113px" %)Serial
181 -| 28|[[**RESET**>>||anchor="H28.RESET"]]| | | | | | | ✓|none|(% style="width:510px" %)Soft reset. See command for details.|(% style="text-align:center; width:113px" %)
182 -| 29|[[**DEFAULT**>>||anchor="H29.DEFAULTA026CONFIRM"]]| | | | | | |✓|none|(% style="width:510px" %)Revert to firmware default values. See command for details|(% style="text-align:center; width:113px" %)
183 -| 30|[[**UPDATE**>>||anchor="H30.UPDATEA026CONFIRM"]]| | | | | | |✓|none|(% style="width:510px" %)Update firmware. See command for details.|(% style="text-align:center; width:113px" %)
179 +| 28|[[**RESET**>>||anchor="H28.RESET"]]| | | | | | ✓|none|(% style="width:510px" %)Soft reset. See command for details.|(% style="text-align:center; width:113px" %)
180 +| 29|[[**DEFAULT**>>||anchor="H29.DEFAULTA026CONFIRM"]]| | | | | |✓|none|(% style="width:510px" %)Revert to firmware default values. See command for details|(% style="text-align:center; width:113px" %)
181 +| 30|[[**UPDATE**>>||anchor="H30.UPDATEA026CONFIRM"]]| | | | | |✓|none|(% style="width:510px" %)Update firmware. See command for details.|(% style="text-align:center; width:113px" %)
184 184  
185 185  == Advanced ==
186 186  
... ... @@ -195,8 +195,8 @@
195 195  
196 196  Blink while: 1=Limp; 2=Holding; 4=Accel; 8=Decel; 16=Free 32=Travel;
197 197  )))
198 -| A7|(% style="width:182px" %)[[**C**urrent **H**alt & **H**old>>||anchor="HA7.CurrentHalt26Hold28CH29"]]|(% style="width:56px" %)CH|(% style="width:70px" %) |(% style="width:71px" %) |(% style="width:77px" %) |(% style="width:77px" %)|(% style="width:56px" %) |(% style="width:151px" %)|milliamps (ex 400 = 0.4A)|(% style="width:510px" %)Modifier for D, MD, WD, WR
199 -| A8|(% style="width:182px" %)[[**C**urrent **L**imp>>||anchor="HA8.CurrentLimp28CL29"]]|(% style="width:56px" %)CL|(% style="width:70px" %) |(% style="width:71px" %) |(% style="width:77px" %) |(% style="width:77px" %)|(% style="width:56px" %) |(% style="width:151px" %)|milliamps (ex 400 = 0.4A)|(% style="width:510px" %)Modifier for D, MD, WD, WR
196 +| A7|(% style="width:182px" %)Current Halt & Hold|(% style="width:56px" %) |(% style="width:70px" %) |(% style="width:71px" %) |(% style="width:77px" %) |(% style="width:77px" %) |(% style="width:56px" %) |(% style="width:151px" %) | |(% style="width:510px" %)
197 +| A8|(% style="width:182px" %)Current Limp|(% style="width:56px" %) |(% style="width:70px" %) |(% style="width:71px" %) |(% style="width:77px" %) |(% style="width:77px" %) |(% style="width:56px" %) |(% style="width:151px" %) | |(% style="width:510px" %)
200 200  
201 201  == Details - Basic ==
202 202  
... ... @@ -220,15 +220,12 @@
220 220  
221 221  Note: If the calculated speed at which a servo must rotate for a timed move is greater than its maximum speed (which depends on voltage and load), then it will move at its maximum speed, and the time of the move may be longer than requested.
222 222  
223 -====== __4. Speed (**S**, **SD**) modifier__ ======
221 +====== __4. Speed (**S**) modifier__ ======
224 224  
225 225  Example: #5P1500S750<cr>
226 -Example: #5D0SD180<cr>
227 227  
228 -Modifier (S) is only for a position (P) action and determines the speed of the move in microseconds per second. A speed of 750 microseconds would cause the servo to rotate from its current position to the desired position at a speed of 750 microseconds per second. This command is in place to ensure backwards compatibility with the SSC-32 / 32U protocol.
225 +This command is a modifier only for a position (P) action and determines the speed of the move in microseconds per second. A speed of 750 microseconds would cause the servo to rotate from its current position to the desired position at a speed of 750 microseconds per second. This command is in place to ensure backwards compatibility with the SSC-32 / 32U protocol.
229 229  
230 -Modifer (S) is only for a position (D) or relative position (MD) action and determines the speed of the move in degrees per second. A speed modifier (SD) of 180 would cause the servo to rotate from its current position to the desired absolute or relative position at a speed of 180 degrees per second.
231 -
232 232  Query Speed (**QS**)
233 233  
234 234  Example: #5QS<cr> might return *5QS300<cr>
... ... @@ -453,11 +453,11 @@
453 453  
454 454  ====== __17. Baud Rate__ ======
455 455  
456 -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 115200. Since smart servos are intended to be daisy chained, in order to respond to the same serial bus, all servos in a 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: 9600 bps, 19200 bps, 38400 bps, 57600 bps, 115.2 kbps, 230.4 kbps, 250.0 kbps, 460.8 kbps, 500.0 kbps. Servos are shipped with a baud rate set to 115200. The baud rates are currently restricted to those above.
451 +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 115200. Since smart servos are intended to be daisy chained, in order to respond to the same serial bus, all servos in a 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: 9600 bps, 19200 bps, 38400 bps, 57600 bps, 115.2 kbps, 230.4 kbps, 250.0 kbps, 460.8 kbps, 500.0 kbps. Servos are shipped with a baud rate set to 9600. The baud rates are currently restricted to those above.
457 457  
458 458  Query Baud Rate (**QB**)
459 459  
460 -Ex: #5QB<cr> might return *5QB115200<cr>
455 +Ex: #5QB<cr> might return *5QB9600<cr>
461 461  
462 462  Since the command to query the baud rate must be done at the servo's existing baud rate, it can simply be used to confirm the CB configuration command was correctly received before the servo is power cycled and the new baud rate takes effect.
463 463  
... ... @@ -491,7 +491,7 @@
491 491  
492 492  ====== __20. Query Model String (**QMS**)__ ======
493 493  
494 -Ex: #5QMS<cr> might return *5QMSLSS-HS1<cr>
489 +Ex: #5QMS<cr> might return *5QMSLSS-HS1cr>
495 495  
496 496  This reply means the servo model is LSS-HS1, meaning a high speed servo, first revision.
497 497  
... ... @@ -577,7 +577,6 @@
577 577  Ex: #5RESET<cr> or #5RS<cr>
578 578  
579 579  This command does a "soft reset" (no power cycle required) and reverts all commands to those stored in EEPROM (i.e. configuration commands).
580 -Note: after a RESET command is received the LSS will restart and perform initilization again, making it unavailable on the bus for a bit. See [[Session>>||anchor="HSession"]], note #2 for more details.
581 581  
582 582  ====== __29. **DEFAULT** & CONFIRM__ ======
583 583  
... ... @@ -715,22 +715,6 @@
715 715  
716 716  RESETTING the servo is needed.
717 717  
718 -====== __A7. Current Halt & Hold (**CH**)__ ======
719 -
720 -This modifier, released in firmware v367, can be added to the following actions: D; MD; WD; WR.
721 -
722 -Ex: #5D1423CH400<cr>
723 -
724 -This has servo with ID 5 move to 142.3 degrees but, should it detect a current of 400mA or higher before it reaches the desired position, will immediately halt and hold position.
725 -
726 -====== __A8. Current Limp (**CL**)__ ======
727 -
728 -This modifier, released in firmware v367, can be added to the following actions: D; MD; WD; WR.
729 -
730 -Ex: #5D1423CH400<cr>
731 -
732 -This has servo with ID 5 move to 142.3 degrees but, should it detect a current of 400mA or higher before it reaches the desired position, will immediately go limp.
733 -
734 734  = RGB LED Patterns =
735 735  
736 736  The LED patterns below do not include those which are part of the button menu, which can be found here: [[LSS Button Menu>>doc:lynxmotion-smart-servo.lss-button-menu.WebHome]]
Copyright RobotShop 2018