Changes for page LSS-P - Communication Protocol
Last modified by Eric Nantel on 2024/07/03 09:42
Change comment: There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -163,19 +163,20 @@ 163 163 | |[[**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) 164 164 | |[[**Q**uery **F**irmware Version>>||anchor="HQueryFirmware28QF29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QF|(% style="text-align:center" %) | | | 165 165 | |[[**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 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 motor167 -| | [[**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" %) | | |(((166 +| |**Q**uery **T**emperature **P**robe|(% 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|(% style="text-align:center" %) |(% style="text-align:center" %)QTM|(% style="text-align:center" %) | | | 168 +| |**Q**uery **T**emp of **C**ontroller|(% style="text-align:center" %) |(% style="text-align:center" %)QTCW, QTCE|(% style="text-align:center" %) | | |((( 169 169 QTCW: Queries the temperature status of the motor controller (pre-warning) 170 170 171 171 QTCE: Queries the temperature status of the motor controller (over-temp error) 172 172 ))) 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) 173 +| |**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 174 +| |**Q**uery **I**MU Linear **X**|(% style="text-align:center" %) |(% style="text-align:center" %)QIX|(% style="text-align:center" %) | |mm/s^2| 175 +| |**Q**uery **I**MU Linear **Y**|(% style="text-align:center" %) |(% style="text-align:center" %)QIY|(% style="text-align:center" %) | |mm/s^2| 176 +| |**Q**uery **I**MU Linear **Z**|(% style="text-align:center" %) |(% style="text-align:center" %)QIZ|(% style="text-align:center" %) | |mm/s^2| 177 +| |**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) 178 +| |**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) 179 +| |**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) 179 179 180 180 |(% colspan="8" style="color:orange; font-size:18px" %)[[**RGB LED**>>||anchor="HRGBLED"]] 181 181 |(% 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** ... ... @@ -185,19 +185,13 @@ 185 185 186 186 == (% style="color:inherit; font-family:inherit" %)Communication Setup(%%) == 187 187 188 -|(% colspan="2" %)((( 189 -====== __Reset__ ====== 190 -))) 191 -| |((( 192 -Ex: #5RESET<cr> 189 +====== (% style="color:inherit; font-family:inherit" %)__Reset__(%%) ====== 193 193 194 - Thiscommand doesa "softreset"and reverts allcommands tothose storedinEEPROM (i.e. configuration commands). Note:after a RESET command is received,the LSS will restart and performnitilizationagain, making it unavailable on thebus fora bit.See Session,note#2 formore details.195 -) ))191 +(% style="color:inherit; font-family:inherit" %)Ex: #5RESET<cr> 192 +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. 196 196 197 -|(% colspan="2" %)((( 198 198 ====== (% style="color:inherit; font-family:inherit" %)__Default & confirm__(%%) ====== 199 -))) 200 -|(% style="width:30px" %) |((( 195 + 201 201 (% style="color:inherit; font-family:inherit" %)Ex: #5DEFAULT<cr> 202 202 203 203 (% 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. ... ... @@ -207,12 +207,9 @@ 207 207 (% 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. 208 208 209 209 (% style="color:inherit; font-family:inherit" %)Note: After the CONFIRM command is sent, the servo will automatically perform a RESET. 210 -))) 211 211 212 -|(% colspan="2" %)((( 213 213 ====== (% style="color:inherit; font-family:inherit" %)__Update & confirm__(%%) ====== 214 -))) 215 -|(% style="width:30px" %) |((( 207 + 216 216 (% style="color:inherit; font-family:inherit" %)Ex: #5UPDATE<cr> 217 217 218 218 (% 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. ... ... @@ -222,23 +222,15 @@ 222 222 (% 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. 223 223 224 224 (% style="color:inherit; font-family:inherit" %)Note: After the CONFIRM command is sent, the servo will automatically perform a RESET. 225 -))) 226 226 227 -|(% colspan="2" %)((( 228 228 ====== (% style="color:inherit; font-family:inherit" %)__Confirm__(%%) ====== 229 -))) 230 -|(% style="width:30px" %) |((( 219 + 231 231 (% style="color:inherit; font-family:inherit" %)Ex: #5CONFIRM<cr> 232 232 233 233 (% style="color:inherit; font-family:inherit" %)This command is used to confirm changes after a Default or Update command. 234 234 Note: After the CONFIRM command is sent, the servo will automatically perform a RESET. 235 -))) 236 236 237 -|(% colspan="2" %)((( 238 -====== (% style="color:inherit; font-family:inherit" %)__ID Number__(%%) ====== 239 -))) 240 -|(% style="width:30px" %) |((( 241 -This assigns ID #5 to the servo previously assigned to ID 0 225 +====== (% style="color:inherit; font-family:inherit" %)__ID Number (**ID**)__(%%) ====== 242 242 243 243 (% style="color:inherit; font-family:inherit" %)Configure ID Number (**CID**) 244 244 ... ... @@ -251,12 +251,9 @@ 251 251 Ex: #254QID<cr> might return *254QID5<cr> 252 252 253 253 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. 254 -))) 255 255 256 -|(% colspan="2" %)((( 257 -====== (% style="color:inherit; font-family:inherit" %)__Enable CAN Terminal Resistor__(%%) ====== 258 -))) 259 -|(% style="width:30px" %) |((( 239 +====== (% style="color:inherit; font-family:inherit" %)__Enable CAN Terminal Resistor (**ET**)__(%%) ====== 240 + 260 260 Query Enable CAN Terminal Resistor (**QET**) 261 261 262 262 Ex: #5QET<cr> might return *QET0<cr> ... ... @@ -268,27 +268,20 @@ 268 268 (% style="color:inherit; font-family:inherit" %)Ex: #5CET1<cr> 269 269 270 270 (% 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. 271 -))) 272 272 273 -|(% colspan="2" %)((( 274 -====== __USB Connection Status__ ====== 275 -))) 276 -|(% style="width:30px" %) |((( 253 +====== __USB Connection Status (**UC**)__ ====== 254 + 277 277 Query USB Connection Status (**QUC**) 278 278 279 279 Ex: #5QUC<cr> might return *5QUC1<cr> meaning the servo is connected via USB 280 -))) 281 281 282 -|(% colspan="2" %)((( 283 -====== __Firmware Release__ ====== 284 -))) 285 -|(% style="width:30px" %) |((( 259 +====== __Firmware Release (**FR**)__ ====== 260 + 286 286 Query Firmware Release (**QFR**) 287 287 288 288 Ex: #5QFR<cr> might return *QFR11<cr> meaning it has a (random) firmware release version number 11. 289 289 290 290 This is used to verify if the firmware on the servos is up to date, or which version is running on the microcontroller. 291 -))) 292 292 293 293 == Motion == 294 294 ... ... @@ -583,27 +583,23 @@ 583 583 584 584 == Telemetry == 585 585 586 -====== __Query PCB Temperature (**QT**)__ ======560 +====== __Query Voltage (**QV**)__ ====== 587 587 588 -Ex: #5Q T<cr> might return *5QT564<cr>562 +Ex: #5QV<cr> might return *5QV11200<cr> 589 589 590 -The unitsareintenths of degreesCelcius, so in theexample above,theservo'sinternaltemperatureis56.4degreesC. To convertfrom degrees Celciustodegrees Farenheit, multiply by 1.8and add 32. Therefore56.4C =133.52F.564 +The number returned is in milliVolts, so in the case above, servo with ID 5 has an input voltage of 11.2V. 591 591 592 -====== __Query Temperature Probe(**QTP**)__ ======566 +====== __Query Temperature (**QT**)__ ====== 593 593 594 -Ex: 568 +Ex: #5QT<cr> might return *5QT564<cr> 595 595 596 - ======__QueryTemp ofController(**QTCW**)__======570 +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. 597 597 598 - Ex:572 +====== __Query Motor Driver Current (**QC**)__ ====== 599 599 600 -An alternative is QTCE 601 - 602 -====== __Query Current (**QC**)__ ====== 603 - 604 604 Ex: #5QC<cr> might return *5QC140<cr> 605 605 606 -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.576 +The units are in milliamps, so in the example above, the servo is consuming 140mA, or 0.14A. It represents the RMS value. 607 607 608 608 ====== __Query Model String (**QMS**)__ ====== 609 609 ... ... @@ -623,13 +623,13 @@ 623 623 624 624 The number in the response (12345678) would be the servo's serial number which is set and should not be changed by the user. 625 625 626 -====== __Query IMU Linear (**QIX** 596 +====== __Query IMU Linear (**QIX**, **QIY**, **QIZ**)__ ====== 627 627 628 628 Ex: #6QIX<cr> might return *6QIX30<cr> 629 629 630 630 This command queries servo 6's IMU's linear accelerometer in the X direction. The response is 30mm per second squared. 631 631 632 - ======__Query IMU Angular (**QIA**======602 +__Query IMU Angular (**QIA**, **QIB**, **QIC**)__ 633 633 634 634 Ex: #6QIB<cr> might return *6QIB44<cr> 635 635