Last modified by Eric Nantel on 2024/09/06 14:52

From version < 44.1 >
edited by Coleman Benson
on 2023/07/26 14:34
To version < 60.1 >
edited by Coleman Benson
on 2023/07/27 14:47
< >
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -141,19 +141,15 @@
141 141  
142 142  |(% colspan="8" style="color:orange; font-size:18px" %)[[**Motion Setup**>>||anchor="HMotionSetup"]]
143 143  |(% 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="width:100px" %)**Default**|(% style="width:170px" %)**Unit**|**Notes**
144 -| |[[**E**nable **M**otion Profile>>||anchor="HEnableMotionProfile28EM29"]]|(% style="text-align:center" %)EM|(% style="text-align:center" %)QEM|(% style="text-align:center" %)CEM|1| |EM1: trapezoidal motion profile / EM0: no motion profile
145 -| |[[**F**ilter **P**osition **C**ount>>||anchor="HFilterPositionCount28FPC29"]]|(% style="text-align:center" %)FPC|(% style="text-align:center" %)QFPC|(% style="text-align:center" %)CFPC|5| |Affects motion only when motion profile is disabled (EM0)
146 146  | |[[**O**rigin Offset>>||anchor="HOriginOffset28O29"]]|(% style="text-align:center" %)O|(% style="text-align:center" %)QO|(% style="text-align:center" %)CO|0|1/10°|
147 147  | |[[**A**ngular **R**ange>>||anchor="HAngularRange28AR29"]]|(% style="text-align:center" %)AR|(% style="text-align:center" %)QAR|(% style="text-align:center" %)CAR|1800|1/10°|
148 -| |[[**A**ngular **S**tiffness>>||anchor="HAngularStiffness28AS29"]]|(% style="text-align:center" %)AS|(% style="text-align:center" %)QAS|(% style="text-align:center" %)CAS|0|-4 to +4 integer|Suggested values are between 0 to +4
149 -| |[[**A**ngular **H**olding Stiffness>>||anchor="HAngularHoldingStiffness28AH29"]]|(% style="text-align:center" %)AH|(% style="text-align:center" %)QAH|(% style="text-align:center" %)CAH|4|-10 to +10 integer|
150 150  | |[[**A**ngular **A**cceleration>>||anchor="HAngularAcceleration28AA29"]]|(% style="text-align:center" %)AA|(% style="text-align:center" %)QAA|(% style="text-align:center" %)CAA|100|°/s^^2^^|Increments of 10°/s^^2^^. Only when motion profile is enabled (EM1).
151 151  | |[[**A**ngular **D**eceleration>>||anchor="HAngularDeceleration28AD29"]]|(% style="text-align:center" %)AD|(% style="text-align:center" %)QAD|(% style="text-align:center" %)CAD|100|°/s^^2^^|Increments of 10°/s^^2^^. Only when motion profile is enabled (EM1).
152 152  | |[[**G**yre Direction>>||anchor="HGyreDirection28G29"]]|(% style="text-align:center" %)G|(% style="text-align:center" %)QG|(% style="text-align:center" %)CG|1| |Gyre / rotation direction: 1= CW (clockwise) -1 = CCW (counter-clockwise)
153 153  | |[[**F**irst Position (**D**eg)>>||anchor="HFirstPosition"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QFD|(% style="text-align:center" %)CFD|No value|1/10°|Reset required after change.
154 -| |[[**M**aximum **M**otor **D**uty>>||anchor="HMaximumMotorDuty28MMD29"]]|(% style="text-align:center" %)MMD|(% style="text-align:center" %)QMMD|(% style="text-align:center" %) |1023|255 to 1023 integer|
155 155  | |[[Maximum **S**peed in **D**egrees>>||anchor="HMaximumSpeedinDegrees28SD29"]]|(% style="text-align:center" %)SD|(% style="text-align:center" %)QSD|(% style="text-align:center" %)CSD|Max|0.1°/s|SD overwrites SR / CSD overwrites CSR and vice-versa
156 156  | |[[Maximum **S**peed in **R**PM>>||anchor="HMaximumSpeedinRPM28SR29"]]|(% style="text-align:center" %)SR|(% style="text-align:center" %)QSR|(% style="text-align:center" %)CSR|Max|RPM|SD overwrites SR / CSD overwrites CSR and vice-versa
152 +| |[[Step Mode>>doc:||anchor="HStepMode28SM29"]]|(% style="text-align:center" %)SM|(% style="text-align:center" %)QM|(% style="text-align:center" %)CSM|2|1, 2, 4|Numbers represent fractions: full step, &frac12; step, &frac14; step
157 157  
158 158  |(% colspan="8" style="color:orange; font-size:18px" %)[[**Modifiers**>>||anchor="HModifiers"]]
159 159  |(% style="width:25px" %) |(% style="width:200px" %)**Description**|(% style="text-align:center; width:100px" %)**Modifier**|(% style="text-align:center; width:75px" %)**Query**|(% style="text-align:center; width:75px" %)**Config**|(% style="width:100px" %)**Default**|(% style="width:170px" %)**Unit**|**Notes**
... ... @@ -167,36 +167,41 @@
167 167  | |[[**Q**uery **M**odel **S**tring>>||anchor="HQueryModelString28QMS29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QMS|(% style="text-align:center" %) | | |Returns the model of servo (ex: LSS-ST1, LSS-HS1, LSS-HT1)
168 168  | |[[**Q**uery **F**irmware Version>>||anchor="HQueryFirmware28QF29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QF|(% style="text-align:center" %) | | |
169 169  | |[[**Q**uery Serial **N**umber>>||anchor="HQuerySerialNumber28QN29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QN|(% style="text-align:center" %) | | |Returns the unique serial number for the servo
170 -| |**Q**uery **T**emperature **P**robe|(% style="text-align:center" %) |(% style="text-align:center" %)QTP|(% style="text-align:center" %) | | |Queries temperature probe fixed to stepper motor
171 -| |**Q**uery **T**emp of **C**ontroller|(% style="text-align:center" %) |(% style="text-align:center" %)QTCW, QTCE|(% style="text-align:center" %) | | |(((
166 +| |[[**Q**uery **T**emperature **P**robe>>doc:||anchor="HQueryTemperatureProbe28QTP29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QTP|(% style="text-align:center" %) | | |Queries temperature probe fixed to the stepper motor
167 +| |[[**Q**uery **T**emp of **M**CU>>doc:||anchor="HQueryMCUTemperature28QTM29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QTM|(% style="text-align:center" %) | | |
168 +| |[[**Q**uery **T**emp of **C**ontroller>>doc:||anchor="HQueryTempofController28QTCW29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QTCW, QTCE|(% style="text-align:center" %) | | |(((
172 172  QTCW: Queries the temperature status of the motor controller (pre-warning)
173 173  
174 174  QTCE: Queries the temperature status of the motor controller (over-temp error)
175 175  )))
176 -| |**Q**uery **C**urrent **S**peed |(% style="text-align:center" %) |(% style="text-align:center" %)QCS|(% style="text-align:center" %) | | |Queries the motor controller's calculated speed
177 -| |**Q**uery **I**MU Linear **X**|(% style="text-align:center" %) |(% style="text-align:center" %)QIX|(% style="text-align:center" %) | |mm/s^2|
178 -| |**Q**uery **I**MU Linear **Y**|(% style="text-align:center" %) |(% style="text-align:center" %)QIY|(% style="text-align:center" %) | |mm/s^2|
179 -| |**Q**uery **I**MU Linear **Z**|(% style="text-align:center" %) |(% style="text-align:center" %)QIZ|(% style="text-align:center" %) | |mm/s^2|
180 -| |**Q**uery **I**MU Angular Accel **α** |(% style="text-align:center" %) |(% style="text-align:center" %)QIA|(% style="text-align:center" %) | |°/s^2|Query IMU Angular Accel α (Alpha)
181 -| |**Q**uery **I**MU Angular Accel **β**|(% style="text-align:center" %) |(% style="text-align:center" %)QIB|(% style="text-align:center" %) | |°/s^2|Query IMU Angular Accel β (Beta)
182 -| |**Q**uery **I**MU Angular Accel **γ**|(% style="text-align:center" %) |(% style="text-align:center" %)QIC / QIG|(% style="text-align:center" %) | |°/s^2|Query IMU Angular Accel γ (Gamma)
173 +| |[[**Q**uery **I**MU Linear **X**>>doc:||anchor="HQueryIMULinear28QIXQIYQIZ29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIX|(% style="text-align:center" %) | |mm/s^2|
174 +| |[[**Q**uery **I**MU Linear **Y**>>doc:||anchor="HQueryIMULinear28QIXQIYQIZ29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIY|(% style="text-align:center" %) | |mm/s^2|
175 +| |[[**Q**uery **I**MU Linear **Z**>>doc:||anchor="HQueryIMULinear28QIXQIYQIZ29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIZ|(% style="text-align:center" %) | |mm/s^2|
176 +| |[[**Q**uery **I**MU Angular Accel **α** >>doc:||anchor="HQueryIMUAngular28QIAQIBQIC29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIA|(% style="text-align:center" %) | |°/s^2|Query IMU Angular Accel α (Alpha)
177 +| |[[**Q**uery **I**MU Angular Accel **β**>>doc:||anchor="HQueryIMUAngular28QIAQIBQIC29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIB|(% style="text-align:center" %) | |°/s^2|Query IMU Angular Accel β (Beta)
178 +| |[[**Q**uery **I**MU Angular Accel **γ**>>doc:||anchor="HQueryIMUAngular28QIAQIBQIC29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIC / QIG|(% style="text-align:center" %) | |°/s^2|Query IMU Angular Accel γ (Gamma)
183 183  
184 184  |(% colspan="8" style="color:orange; font-size:18px" %)[[**RGB LED**>>||anchor="HRGBLED"]]
185 185  |(% 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="width:100px" %)**Default**|(% style="width:170px" %)**Unit**|**Notes**
186 186  | |[[**LED** Color>>||anchor="HLEDColor28LED29"]]|(% style="text-align:center" %)LED|(% style="text-align:center" %)QLED|(% style="text-align:center" %)CLED| |0 to 7 integer|0=Off; 1=Red; 2=Green; 3=Blue; 4=Yellow; 5=Cyan; 6=Magenta; 7=White
187 -| |[[**C**onfigure **L**ED **B**linking>>||anchor="HConfigureLEDBlinking28CLB29"]]|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)CLB| |0 to 63 integer|Reset required after change. See command for details.
188 188  
189 189  = (% style="color:inherit; font-family:inherit" %)Details(%%) =
190 190  
191 191  == (% style="color:inherit; font-family:inherit" %)Communication Setup(%%) ==
192 192  
193 -====== (% style="color:inherit; font-family:inherit" %)__Reset__(%%) ======
188 +|(% colspan="2" %)(((
189 +====== __Reset__ ======
190 +)))
191 +| |(((
192 +Ex: #5RESET<cr>
194 194  
195 -(% style="color:inherit; font-family:inherit" %)Ex: #5RESET<cr>
196 -This command does a "soft reset" and reverts all commands to those stored in EEPROM (i.e. configuration commands). 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, note #2 for more details.
194 +This command does a "soft reset" and reverts all commands to those stored in EEPROM (i.e. configuration commands). 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, note #2 for more details.
195 +)))
197 197  
197 +|(% colspan="2" %)(((
198 198  ====== (% style="color:inherit; font-family:inherit" %)__Default & confirm__(%%) ======
199 -
199 +)))
200 +|(% style="width:30px" %) |(((
200 200  (% style="color:inherit; font-family:inherit" %)Ex: #5DEFAULT<cr>
201 201  
202 202  (% style="color:inherit; font-family:inherit" %)This command sets in motion the reset of all values to the default values included with the version of the firmware installed on that servo. The servo then waits for the CONFIRM command. Any other command received will cause the servo to exit the DEFAULT function.
... ... @@ -206,9 +206,12 @@
206 206  (% style="color:inherit; font-family:inherit" %)Since it it not common to have to restore all configurations, a confirmation command is needed after a firmware command is sent. Should any command other than CONFIRM be received by the servo after the firmware command has been received, it will exit the command.
207 207  
208 208  (% style="color:inherit; font-family:inherit" %)Note: After the CONFIRM command is sent, the servo will automatically perform a RESET.
210 +)))
209 209  
212 +|(% colspan="2" %)(((
210 210  ====== (% style="color:inherit; font-family:inherit" %)__Update & confirm__(%%) ======
211 -
214 +)))
215 +|(% style="width:30px" %) |(((
212 212  (% style="color:inherit; font-family:inherit" %)Ex: #5UPDATE<cr>
213 213  
214 214  (% style="color:inherit; font-family:inherit" %)This command sets in motion the equivalent of a long button press when the servo is not powered in order to enter firmware update mode. This is useful should the button be broken or inaccessible. The servo then waits for the CONFIRM command. Any other command received will cause the servo to exit the UPDATE function.
... ... @@ -218,16 +218,22 @@
218 218  (% style="color:inherit; font-family:inherit" %)Since it it not common to have to update firmware, a confirmation command is needed after an UPDATE command is sent. Should any command other than CONFIRM be received by the servo after the firmware command has been received, it will leave the firmware action.
219 219  
220 220  (% style="color:inherit; font-family:inherit" %)Note: After the CONFIRM command is sent, the servo will automatically perform a RESET.
225 +)))
221 221  
227 +|(% colspan="2" %)(((
222 222  ====== (% style="color:inherit; font-family:inherit" %)__Confirm__(%%) ======
223 -
229 +)))
230 +|(% style="width:30px" %) |(((
224 224  (% style="color:inherit; font-family:inherit" %)Ex: #5CONFIRM<cr>
225 225  
226 226  (% style="color:inherit; font-family:inherit" %)This command is used to confirm changes after a Default or Update command.
227 227  Note: After the CONFIRM command is sent, the servo will automatically perform a RESET.
235 +)))
228 228  
237 +|(% colspan="2" %)(((
229 229  ====== (% style="color:inherit; font-family:inherit" %)__ID Number (**ID**)__(%%) ======
230 -
239 +)))
240 +|(% style="width:30px" %) |(((
231 231  (% style="color:inherit; font-family:inherit" %)Configure ID Number (**CID**)
232 232  
233 233  (% style="color:inherit; font-family:inherit" %)Ex: #0CID5<cr>
... ... @@ -239,9 +239,12 @@
239 239  Ex: #254QID<cr> might return *254QID5<cr>
240 240  
241 241  In this case, the broadcast ID is used to ensure the servo connected will reply with the ID. This can be used in case the ID assigned to a servo is forgotten.
252 +)))
242 242  
254 +|(% colspan="2" %)(((
243 243  ====== (% style="color:inherit; font-family:inherit" %)__Enable CAN Terminal Resistor (**ET**)__(%%) ======
244 -
256 +)))
257 +|(% style="width:30px" %) |(((
245 245  Query Enable CAN Terminal Resistor (**QET**)
246 246  
247 247  Ex: #5QET<cr> might return *QET0<cr>
... ... @@ -253,20 +253,27 @@
253 253  (% style="color:inherit; font-family:inherit" %)Ex: #5CET1<cr>
254 254  
255 255  (% style="color:inherit; font-family:inherit" %)This commands sets servo with ID 5 as being the last in the CAN Bus. The last servo in a CAN bus must be configured this way.
269 +)))
256 256  
271 +|(% colspan="2" %)(((
257 257  ====== __USB Connection Status (**UC**)__ ======
258 -
273 +)))
274 +|(% style="width:30px" %) |(((
259 259  Query USB Connection Status (**QUC**)
260 260  
261 261  Ex: #5QUC<cr> might return *5QUC1<cr> meaning the servo is connected via USB
278 +)))
262 262  
280 +|(% colspan="2" %)(((
263 263  ====== __Firmware Release (**FR**)__ ======
264 -
282 +)))
283 +|(% style="width:30px" %) |(((
265 265  Query Firmware Release (**QFR**)
266 266  
267 267  Ex: #5QFR<cr> might return *QFR11<cr> meaning it has a (random) firmware release version number 11.
268 268  
269 269  This is used to verify if the firmware on the servos is up to date, or which version is running on the microcontroller.
289 +)))
270 270  
271 271  == Motion ==
272 272  
... ... @@ -472,8 +472,10 @@
472 472  
473 473  This command will cause servo #5's positions to be inverted, effectively causing the servo to rotate in the opposite direction given the same command. For example in a 2WD robot, servos are often physically installed back to back, therefore setting one of the servos to a negative gyration, the same wheel command (ex WR30) to both servos will cause the robot to move forward or backward rather than rotate.
474 474  
475 -Query Gyre Direction (**QG**)Ex: #5QG<cr> might return *5QG-1<cr>
495 +Query Gyre Direction (**QG**)
476 476  
497 +Ex: #5QG<cr> might return *5QG-1<cr>
498 +
477 477  The value returned above means the servo is in a counter-clockwise gyration. Sending a #5WR30 command will rotate the servo in a counter-clockwise gyration at 30 RPM.
478 478  
479 479  Configure Gyre (**CG**)
... ... @@ -510,6 +510,24 @@
510 510  
511 511  Configure Speed in RPM (**CSR**)Ex: #5CSR45<cr>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) received is what the servo uses for that session.
512 512  
535 +====== __Step Mode (**SM**)__ ======
536 +
537 +Ex: #8SM2<cr>
538 +
539 +This sets servo with ID 8 to 1/2 step mode. Since this is an action as opposed to a configuration, it only affects that session.
540 +
541 +Note that the torque and max RPM of the actuator will be affected.
542 +
543 +Query Step Mode (**QSM**)
544 +
545 +Ex: #8QSM<cr> might return *8QSM2<cr> meaning servo with ID 8 is set to half step mode.
546 +
547 +Configure Step Mode (**CSM**)
548 +
549 +Ex: #8SM2<cr>
550 +
551 +This sets servo with ID 8 to 1/2 step mode. Since this is a configuration as opposed to a configuration and the servo will be in 1/2 step mode when powered.
552 +
513 513  == Modifiers ==
514 514  
515 515  ====== __Speed (**SD**) modifier__ ======
... ... @@ -541,23 +541,27 @@
541 541  
542 542  == Telemetry ==
543 543  
544 -====== __Query Voltage (**QV**)__ ======
584 +====== __Query PCB Temperature (**QT**)__ ======
545 545  
546 -Ex: #5QV<cr> might return *5QV11200<cr>
586 +Ex: #5QT<cr> might return *5QT564<cr>
547 547  
548 -The number returned is in milliVolts, so in the case above, servo with ID 5 has an input voltage of 11.2V.
588 +The units are in tenths of degrees Celcius, so in the example above, the servo's internal temperature is 56.4 degrees C. To convert from degrees Celcius to degrees Farenheit, multiply by 1.8 and add 32. Therefore 56.4C = 133.52F.
549 549  
550 -====== __Query Temperature (**QT**)__ ======
590 +====== __Query Temperature Probe (**QTP**)__ ======
551 551  
552 -Ex: #5QT<cr> might return *5QT564<cr>
592 +Ex:
553 553  
554 -The units are in tenths of degrees Celcius, so in the example above, the servo's internal temperature is 56.4 degrees C. To convert from degrees Celcius to degrees Farenheit, multiply by 1.8 and add 32. Therefore 56.4C = 133.52F.
594 +====== __Query Temp of Controller (**QTCW**)__ ======
555 555  
556 -====== __Query Motor Driver Current (**QC**)__ ======
596 +Ex:
557 557  
598 +An alternative is QTCE
599 +
600 +====== __Query Current (**QC**)__ ======
601 +
558 558  Ex: #5QC<cr> might return *5QC140<cr>
559 559  
560 -The units are in milliamps, so in the example above, the servo is consuming 140mA, or 0.14A. It represents the RMS value.
604 +The units are in milliamps, so in the example above, the servo is consuming 140mA, or 0.14A. It represents the RMS value. The query calculates the RMS value of the current sent from the motor driver to the stepper motor.
561 561  
562 562  ====== __Query Model String (**QMS**)__ ======
563 563  
... ... @@ -576,3 +576,17 @@
576 576  Ex: #5QN<cr> might return *5QN12345678<cr>
577 577  
578 578  The number in the response (12345678) would be the servo's serial number which is set and should not be changed by the user.
623 +
624 +====== __Query IMU Linear (**QIX** **QIY** **QIZ**)__ ======
625 +
626 +Ex: #6QIX<cr> might return *6QIX30<cr>
627 +
628 +This command queries servo 6's IMU's linear accelerometer in the X direction. The response is 30mm per second squared.
629 +
630 +====== __Query IMU Angular (**QIA** **QIB** **QIC**)__ ======
631 +
632 +Ex: #6QIB<cr> might return *6QIB44<cr>
633 +
634 +This command queries servo 6's IMU's linear accelerometer in the X direction. The response is 4.4 degrees per second squared.
635 +
636 +
Copyright RobotShop 2018