Changes for page LSS-PRO Communication Protocol
Last modified by Eric Nantel on 2024/09/06 14:52
Change comment: There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -143,7 +143,6 @@ 143 143 | |[[**A**ngular **A**cceleration>>||anchor="HAngularAcceleration"]]|(% style="text-align:center" %)AA|(% style="text-align:center" %)QAA|(% style="text-align:center" %)CAA|(% style="text-align:center" %) |(% style="text-align:center" %)0.01°/s^2| 144 144 | |[[**A**ngular **D**eceleration>>||anchor="HAngularDeceleration"]]|(% style="text-align:center" %)AD|(% style="text-align:center" %)QAD|(% style="text-align:center" %)CAD|(% style="text-align:center" %) |(% style="text-align:center" %)0.01°/s^2| 145 145 | |[[**G**yre Direction>>||anchor="HGyreDirection"]]|(% style="text-align:center" %)G|(% style="text-align:center" %)QG|(% style="text-align:center" %)CG|(% style="text-align:center" %)1|(% style="text-align:center" %)1 or -1|Gyre / rotation direction: 1= CW (clockwise) -1 = CCW (counter-clockwise) 146 -| |[[**F**irst Position (**D**eg)>>||anchor="HFirstPosition"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QFD|(% style="text-align:center" %)CFD|(% style="text-align:center" %) |(% style="text-align:center" %)0.01°|Reset required after change. 147 147 | |[[Maximum **S**peed in **D**egrees>>||anchor="HMaximumSpeedinDegrees"]]|(% style="text-align:center" %)SD|(% style="text-align:center" %)QSD|(% style="text-align:center" %)CSD|(% style="text-align:center" %) |(% style="text-align:center" %)0.01°/s|SD / CSD overwrites SR / CSR 148 148 | |[[Maximum **S**peed in **R**PM>>||anchor="HMaximumSpeedinRPM"]]|(% style="text-align:center" %)SR|(% style="text-align:center" %)QSR|(% style="text-align:center" %)CSR|(% style="text-align:center" %) |(% style="text-align:center" %)RPM|SR / CSR overwrites SD / CSD 149 149 ... ... @@ -153,29 +153,31 @@ 153 153 | |[[**T**imed move>>||anchor="HTimedmove"]]|(% style="text-align:center" %)T|(% style="text-align:center" %) |(% style="text-align:center" %) | |ms|Time associated with D, MD commands 154 154 155 155 |(% colspan="8" style="color:orange; font-size:18px" %)[[**Telemetry**>>||anchor="HTelemetry"]] 156 -|(% 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** 157 -| |[[PCB **T**emperature>>doc:||anchor="HTemperaturePCB"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QT|(% style="text-align:center" %) | |0.1°C| 158 -| |[[**C**urrent>>doc:||anchor="HCurrent"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QC|(% style="text-align:center" %) | |mA|Nominal RMS value to stepper motor driver IC. 159 -| |[[**M**odel **S**tring>>doc:||anchor="HModelString"]]|(% 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) 160 -| |[[**F**irmware Version>>doc:||anchor="HFirmware"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QF|(% style="text-align:center" %) | | | 161 -| |[[Serial **N**umber>>doc:||anchor="HSerialNumber"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QN|(% style="text-align:center" %) | | |Returns the unique serial number for the servo 162 -| |[[**T**emperature **P**robe>>doc:||anchor="HTemperatureProbe"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QTP|(% style="text-align:center" %) | |0.1°C|Queries temperature probe fixed to the stepper motor 163 -| |[[**T**emp of **M**CU>>doc:||anchor="HTemperatureMCU"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QTM|(% style="text-align:center" %) | |0.1°C| 164 -| |[[**T**emp of **C**ontroller **E**rror>>doc:||anchor="HTempControllerError"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QTCE|(% style="text-align:center" %) | | |((( 155 +|(% 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="text-align:center; width:100px" %)**Default**|(% style="text-align:center; width:170px" %)**Unit**|**Notes** 156 +| |[[PCB **T**emperature>>doc:||anchor="HTemperaturePCB"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QT|(% style="text-align:center" %) | |(% style="text-align:center" %)0.1°C| 157 +| |[[**C**urrent>>doc:||anchor="HCurrent"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QC|(% style="text-align:center" %) | |(% style="text-align:center" %)mA|Nominal RMS value to stepper motor driver IC. 158 +| |[[**M**odel **S**tring>>doc:||anchor="HModelString"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QMS|(% style="text-align:center" %) | |(% style="text-align:center" %) |Returns the model of servo (ex: LSS-ST1, LSS-HS1, LSS-HT1) 159 +| |[[**F**irmware Version>>doc:||anchor="HFirmware"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QF|(% style="text-align:center" %) | |(% style="text-align:center" %) | 160 +| |[[Serial **N**umber>>doc:||anchor="HSerialNumber"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QN|(% style="text-align:center" %) | |(% style="text-align:center" %) |Returns the unique serial number for the servo 161 +| |[[**T**emperature **P**robe>>doc:||anchor="HTemperatureProbe"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QTP|(% style="text-align:center" %) | |(% style="text-align:center" %)0.1°C|Queries temperature probe fixed to the stepper motor 162 +| |[[**T**emp of **M**CU>>doc:||anchor="HTemperatureMCU"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QTM|(% style="text-align:center" %) | |(% style="text-align:center" %)0.1°C| 163 +| |[[**T**emp of **C**ontroller **E**rror>>doc:||anchor="HTempControllerError"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QTCE|(% style="text-align:center" %) | |(% style="text-align:center" %) |((( 165 165 Temperature error status of the motor controller (over-temp error) 166 166 ))) 167 -| |[[**T**emp of **C**ontroller **W**arning>>doc:||anchor="HTempControllerWarning"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QTCW|(% style="text-align:center" %) | | |Temperature error status of the motor controller (pre-warning) 168 -| |[[**E**rror **F**lag>>doc:||anchor="HErrorFlag"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QEF|(% style="text-align:center" %) | | | 169 -| |[[**I**MU Linear **X**>>doc:||anchor="HIMULinear"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIX|(% style="text-align:center" %) | |mm/s^2| 170 -| |[[**I**MU Linear **Y**>>doc:||anchor="HIMULinear"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIY|(% style="text-align:center" %) | |mm/s^2| 171 -| |[[**I**MU Linear **Z**>>doc:||anchor="HIMULinear"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIZ|(% style="text-align:center" %) | |mm/s^2| 172 -| |[[**I**MU Angular Accel **α** >>doc:||anchor="HIMUAngular"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIA|(% style="text-align:center" %) | |°/s^2|Query IMU Angular Accel α (Alpha) 173 -| |[[**I**MU Angular Accel **β**>>doc:||anchor="HIMUAngular"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIB|(% style="text-align:center" %) | |°/s^2|Query IMU Angular Accel β (Beta) 174 -| |[[**I**MU Angular Accel **γ**>>doc:||anchor="HIMUAngular"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIG|(% style="text-align:center" %) | |°/s^2|Query IMU Angular Accel γ (Gamma) 166 +| |[[**T**emp of **C**ontroller **W**arning>>doc:||anchor="HTempControllerWarning"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QTCW|(% style="text-align:center" %) | |(% style="text-align:center" %) |Temperature error status of the motor controller (pre-warning) 167 +| |[[**E**rror **F**lag>>doc:||anchor="HErrorFlag"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QEF|(% style="text-align:center" %) | |(% style="text-align:center" %) | 168 +| |[[**I**MU Linear **X**>>doc:||anchor="HIMULinear"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIX|(% style="text-align:center" %) | |(% style="text-align:center" %)mm/s^2| 169 +| |[[**I**MU Linear **Y**>>doc:||anchor="HIMULinear"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIY|(% style="text-align:center" %) | |(% style="text-align:center" %)mm/s^2| 170 +| |[[**I**MU Linear **Z**>>doc:||anchor="HIMULinear"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIZ|(% style="text-align:center" %) | |(% style="text-align:center" %)mm/s^2| 171 +| |[[**I**MU Angular Accel **α** >>doc:||anchor="HIMUAngular"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIA|(% style="text-align:center" %) | |(% style="text-align:center" %)°/s^2|Query IMU Angular Accel α (Alpha) 172 +| |[[**I**MU Angular Accel **β**>>doc:||anchor="HIMUAngular"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIB|(% style="text-align:center" %) | |(% style="text-align:center" %)°/s^2|Query IMU Angular Accel β (Beta) 173 +| |[[**I**MU Angular Accel **γ**>>doc:||anchor="HIMUAngular"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QIG|(% style="text-align:center" %) | |(% style="text-align:center" %)°/s^2|Query IMU Angular Accel γ (Gamma) 175 175 176 176 |(% colspan="8" style="color:orange; font-size:18px" %)[[**RGB LED**>>||anchor="HRGBLED"]] 177 -|(% 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** 178 -| |[[**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 176 +|(% 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="text-align:center; width:100px" %)**Default**|(% style="text-align:center; width:170px" %)**Unit**|**Notes** 177 +| |[[**LED** Color>>||anchor="HLEDColor"]]|(% style="text-align:center" %)LED|(% style="text-align:center" %)QLED|(% style="text-align:center" %)CLED|(% style="text-align:center" %)3|(% style="text-align:center" %)0 to 7 integer|0=Off; 1=Red; 2=Green; 3=Blue; 4=Yellow; 5=Cyan; 6=Magenta; 7=White 178 +| |[[**L**ED **B**linking>>doc:||anchor="HLEDBlinking"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QLB|(% style="text-align:center" %)CLB|(% style="text-align:center" %)0|(% style="text-align:center" %) | 179 +| |[[**L**ED **I**ndicator>>doc:||anchor="HLEDIndicator"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QLI|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) | 179 179 180 180 = (% style="color:inherit; font-family:inherit" %)Details(%%) = 181 181 ... ... @@ -371,19 +371,13 @@ 371 371 |(% style="width:25px" %) |***Value returned (Q)**|**Status**|**Detailed description** 372 372 | |ex: *5Q0<cr>|0: Unknown|LSS is unsure / unknown state 373 373 | |ex: *5Q1<cr>|1: Limp|Motor driving circuit is not powered and horn can be moved freely 374 -| |ex: *5Q2<cr>|2: Free moving|Servo is rotating in duty motion / free move using the RDM command 375 -| |ex: *5Q3<cr>|3: Accelerating|Increasing speed from rest (or previous speed) towards travel speed 376 -| |ex: *5Q4<cr>|4: Traveling|Moving at a stable speed 377 -| |ex: *5Q5<cr>|5: Decelerating|Decreasing from travel speed towards final position. 378 -| |ex: *5Q6<cr>|6: Holding|Keeping current position (in EM0 mode, return will normally be holding) 379 -| |ex: *5Q7<cr>|7: Outside limits|{More details coming soon} 380 -| |ex: *5Q8<cr>|8: Stuck|Motor cannot perform request movement at current speed setting 381 -| |ex: *5Q9<cr>|9: Blocked|Similar to stuck, but the motor is at maximum duty and still cannot move (i.e.: stalled) 382 -| |ex: *5Q10<cr>|10: Safe Mode|((( 383 -A safety limit has been exceeded (temperature, peak current or extended high current draw). 375 +| |ex: *5Q2<cr>|2: Accelerating|Increasing speed from rest (or previous speed) towards travel speed 376 +| |ex: *5Q3<cr>|3: Traveling|Moving at a stable speed 377 +| |ex: *5Q4<cr>|4: Decelerating|Decreasing from travel speed towards final position. 378 +| |ex: *5Q5<cr>|5: Holding|Keeping current position (in EM0 mode, return will normally be holding) 379 +| |ex: *5Q6<cr>|6: Error|If the status is Error, the error value consists of binary flags ([[HERE>>doc:||anchor="HErrorFlag"]]) 384 384 385 -Send a Q1 command to know which limit has been reached (described below). 386 -))) 381 +*Value returned (Q)StatusDetailed description 387 387 388 388 If a safety limit has been reached and exceeded, the LED will flash red and the servo will stop providing torque (no longer react to commands which cause the motor to rotate). In order to determine which limit has been reached, send a Q1 command. The servo must be RESET in order to return to normal operation, though if a limit is still detected (for example the servo is still too hot), it will revert back to Safe Mode. 389 389 ... ... @@ -399,6 +399,10 @@ 399 399 ))) 400 400 |(% style="width:30px" %) |((( 401 401 Query Motion Time (**QMT**) 397 + 398 +Ex: #5QMT9000<cr> might return *5QMT1000<cr>, which indicates the motor would take 1.000s to do that movement. 399 + 400 +This is really important for movement using the modifier "T" as asking a movement that could not be achieved in the time asked will result in no movement. 402 402 ))) 403 403 404 404 |(% colspan="2" %)((( ... ... @@ -406,6 +406,8 @@ 406 406 ))) 407 407 |(% style="width:30px" %) |((( 408 408 Query Current Speed (**QCS**) 408 + 409 +Ex: #5QCS<cr> might return *5QCS1245<cr>, which indicate the actuator is moving currently at 12deg/s. 409 409 ))) 410 410 411 411 |(% colspan="2" %)((( ... ... @@ -554,25 +554,6 @@ 554 554 ))) 555 555 556 556 |(% colspan="2" %)((( 557 -====== __First Position__ ====== 558 -))) 559 -|(% style="width:30px" %) |((( 560 -In certain cases, a user might want to have the servo move to a specific angle upon power up; we refer to this as "first position" (a.k.a. "initial position"). The factory default has no first position value stored in EEPROM and therefore upon power up, the servo remains limp until a position (or hold command) is assigned. 561 - 562 -Note that the number should be restricted to -1790 (-179.0 degrees) to +1790 (179.0 degrees) and values beyond this will be changed to 1800. 563 - 564 -Query First Position in Degrees (**QFD**) 565 - 566 -Ex: #5QFD<cr> might return *5QFD900<cr>The reply above indicates that servo with ID 5 has a first position of 90.0 degrees. If there is no first position value stored, the reply will be DIS. 567 - 568 -Configure First Position in Degrees (**CFD**) 569 - 570 -Ex: #5CFD900<cr> 571 - 572 -This configuration command means the servo, when set to smart mode, will immediately move to 90.0 degrees upon power up. Sending a CFD command without a number (Ex. #5CFD<cr>) results in the servo remaining limp upon power up. In order to remove the first position, send no value, ex: #5CFD<cr> 573 -))) 574 - 575 -|(% colspan="2" %)((( 576 576 ====== __Maximum Speed in Degrees__ ====== 577 577 ))) 578 578 |(% style="width:30px" %) |((( ... ... @@ -748,6 +748,10 @@ 748 748 ))) 749 749 |(% style="width:30px" %) |((( 750 750 Query Temp motor Probe (**QTP**) 733 + 734 +Ex: #5QTP<cr> might return *5QTP564<cr> 735 + 736 +The units are in tenths of degrees Celcius, so in the example above, the servo's motor 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. 751 751 ))) 752 752 753 753 |(% colspan="2" %)((( ... ... @@ -755,6 +755,10 @@ 755 755 ))) 756 756 |(% style="width:30px" %) |((( 757 757 Query Temp MCU (**QTM**) 744 + 745 +Ex: #5QTM<cr> might return *5QTM564<cr> 746 + 747 +The units are in tenths of degrees Celcius, so in the example above, the servo's microcontroller 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. 758 758 ))) 759 759 760 760 |(% colspan="2" %)((( ... ... @@ -778,6 +778,23 @@ 778 778 ))) 779 779 |(% style="width:30px" %) |((( 780 780 Query Error Flag (**QEF**) 771 + 772 +|(% style="width:25px" %) |***Value returned (QEF)**|**Status**|**Detailed description** 773 +| |ex: *5QEF0<cr>|0: LSSP_ERROR_BITS_PCBOverTemerature| 774 +| |ex: *5QEF1<cr>|1: LSSP_ERROR_BITS_MCUOverTemerature| 775 +| |ex: *5QEF2<cr>|2: LSSP_ERROR_BITS_MotorProbeOverTemerature| 776 +| |ex: *5QEF3<cr>|3: LSSP_ERROR_BITS_MotorDriverOverTemerature| 777 +| |ex: *5QEF4<cr>|4: LSSP_ERROR_BITS_Blocked| 778 +| |ex: *5QEF5<cr>|5: LSSP_ERROR_BITS_ExceedSpeedLimit| 779 +| |ex: *5QEF6<cr>|6: LSSP_ERROR_BITS_ExceedAccelLimit| 780 +| |ex: *5QEF7<cr>|7: LSSP_ERROR_BITS_ExceedDecelLimit| 781 +| |ex: *5QEF8<cr>|8: LSSP_ERROR_BITS_CurrentPositionOutOfRangePlus| 782 +| |ex: *5QEF9<cr>|9: LSSP_ERROR_BITS_CurrentPositionOutOfRangeMinus| 783 +| |ex: *5QEF10<cr>|10: LSSP_ERROR_BITS_EEPROMHeaderDataError| 784 +| |ex: *5QEF11<cr>|11: LSSP_ERROR_BITS_EEPROMCheckSumError| 785 +| |ex: *5QEF12<cr>|12: LSSP_ERROR_BITS_EEPROMMapVersionIsNotSupported| 786 + 787 + 781 781 ))) 782 782 783 783 |(% colspan="2" %)((( ... ... @@ -787,7 +787,8 @@ 787 787 (% class="wikigeneratedid" %) 788 788 Query IMU Linear (**QIX QIY QIZ**) 789 789 790 -====== Ex: #6QIX<cr> might return *6QIX30<cr> ====== 797 +(% class="wikigeneratedid" id="HEx:236QIX3Ccr3Emightreturn2A6QIX303Ccr3E" %) 798 +Ex: #6QIX<cr> might return *6QIX30<cr> 791 791 792 792 This command queries servo 6's IMU's linear accelerometer in the X direction. The response is 30mm per second squared. 793 793 ))) ... ... @@ -798,6 +798,8 @@ 798 798 |(% style="width:30px" %) |((( 799 799 (% class="wikigeneratedid" id="HEx:236QIB3Ccr3Emightreturn2A6QIB443Ccr3E" %) 800 800 Query IMU Angular (**QIA QIB QIG**) 809 + 810 +(% class="wikigeneratedid" %) 801 801 Ex: #6QIB<cr> might return *6QIB44<cr> 802 802 803 803 This command queries servo 6's IMU's linear accelerometer in the X direction. The response is 4.4 degrees per second squared. ... ... @@ -814,7 +814,7 @@ 814 814 ))) 815 815 816 816 |(% colspan="2" %)((( 817 -====== __ ConfigureLED Blinking__ ======827 +====== __LED Blinking__ ====== 818 818 ))) 819 819 |(% style="width:30px" %) |((( 820 820 (% class="wikigeneratedid" id="HEx:236QIB3Ccr3Emightreturn2A6QIB443Ccr3E" %)