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,6 +143,7 @@ 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. 146 146 | |[[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 147 147 | |[[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 148 148 ... ... @@ -372,13 +372,19 @@ 372 372 |(% style="width:25px" %) |***Value returned (Q)**|**Status**|**Detailed description** 373 373 | |ex: *5Q0<cr>|0: Unknown|LSS is unsure / unknown state 374 374 | |ex: *5Q1<cr>|1: Limp|Motor driving circuit is not powered and horn can be moved freely 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"]]) 376 +| |ex: *5Q2<cr>|2: Free moving|Servo is rotating in duty motion / free move using the RDM command 377 +| |ex: *5Q3<cr>|3: Accelerating|Increasing speed from rest (or previous speed) towards travel speed 378 +| |ex: *5Q4<cr>|4: Traveling|Moving at a stable speed 379 +| |ex: *5Q5<cr>|5: Decelerating|Decreasing from travel speed towards final position. 380 +| |ex: *5Q6<cr>|6: Holding|Keeping current position (in EM0 mode, return will normally be holding) 381 +| |ex: *5Q7<cr>|7: Outside limits|{More details coming soon} 382 +| |ex: *5Q8<cr>|8: Stuck|Motor cannot perform request movement at current speed setting 383 +| |ex: *5Q9<cr>|9: Blocked|Similar to stuck, but the motor is at maximum duty and still cannot move (i.e.: stalled) 384 +| |ex: *5Q10<cr>|10: Safe Mode|((( 385 +A safety limit has been exceeded (temperature, peak current or extended high current draw). 380 380 381 -*Value returned (Q)StatusDetailed description 387 +Send a Q1 command to know which limit has been reached (described below). 388 +))) 382 382 383 383 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. 384 384 ... ... @@ -394,10 +394,6 @@ 394 394 ))) 395 395 |(% style="width:30px" %) |((( 396 396 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. 401 401 ))) 402 402 403 403 |(% colspan="2" %)((( ... ... @@ -405,8 +405,6 @@ 405 405 ))) 406 406 |(% style="width:30px" %) |((( 407 407 Query Current Speed (**QCS**) 408 - 409 -Ex: #5QCS<cr> might return *5QCS1245<cr>, which indicate the actuator is moving currently at 12deg/s. 410 410 ))) 411 411 412 412 |(% colspan="2" %)((( ... ... @@ -555,6 +555,25 @@ 555 555 ))) 556 556 557 557 |(% colspan="2" %)((( 559 +====== __First Position__ ====== 560 +))) 561 +|(% style="width:30px" %) |((( 562 +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. 563 + 564 +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. 565 + 566 +Query First Position in Degrees (**QFD**) 567 + 568 +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. 569 + 570 +Configure First Position in Degrees (**CFD**) 571 + 572 +Ex: #5CFD900<cr> 573 + 574 +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> 575 +))) 576 + 577 +|(% colspan="2" %)((( 558 558 ====== __Maximum Speed in Degrees__ ====== 559 559 ))) 560 560 |(% style="width:30px" %) |((( ... ... @@ -730,10 +730,6 @@ 730 730 ))) 731 731 |(% style="width:30px" %) |((( 732 732 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. 737 737 ))) 738 738 739 739 |(% colspan="2" %)((( ... ... @@ -741,10 +741,6 @@ 741 741 ))) 742 742 |(% style="width:30px" %) |((( 743 743 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. 748 748 ))) 749 749 750 750 |(% colspan="2" %)((( ... ... @@ -753,11 +753,6 @@ 753 753 |(% style="width:30px" %) |((( 754 754 (% class="wikigeneratedid" id="HEx:236QIX3Ccr3Emightreturn2A6QIX303Ccr3E" %) 755 755 Query Temp Controller Error (**QTCE**) 756 - 757 - 758 - 759 -(% class="wikigeneratedid" %) 760 -Returns the value of the "ot" bit of the motor driver's DRV_STATUS register (addr: 0x6F). If the response is 1, the motor driver has detected overtemperature (over 150℃). 761 761 ))) 762 762 763 763 |(% colspan="2" %)((( ... ... @@ -766,10 +766,6 @@ 766 766 |(% style="width:30px" %) |((( 767 767 (% class="wikigeneratedid" id="HEx:236QIX3Ccr3Emightreturn2A6QIX303Ccr3E" %) 768 768 Query Temp Controller Warning (**QTCW**) 769 - 770 - 771 -(% class="wikigeneratedid" %) 772 -Returns the value of the "otpw" bit of the motor driver's DRV_STATUS register (addr: 0x6F). If the response is 1, the motor driver has detected overtemperature pre-warning (over 120℃). 773 773 ))) 774 774 775 775 |(% colspan="2" %)((( ... ... @@ -777,23 +777,6 @@ 777 777 ))) 778 778 |(% style="width:30px" %) |((( 779 779 Query Error Flag (**QEF**) 780 - 781 -Ex: #5QEF<cr> might return *5QEF<cr> 782 - 783 -|(% style="width:25px" %) |***Value returned (QEF)**|**Status**|**Detailed description** 784 -| |ex: *5QEF0<cr>|0: LSSP_ERROR_BITS_PCBOverTemerature| 785 -| |ex: *5QEF1<cr>|1: LSSP_ERROR_BITS_MCUOverTemerature| 786 -| |ex: *5QEF2<cr>|2: LSSP_ERROR_BITS_MotorProbeOverTemerature| 787 -| |ex: *5QEF3<cr>|3: LSSP_ERROR_BITS_MotorDriverOverTemerature| 788 -| |ex: *5QEF4<cr>|4: LSSP_ERROR_BITS_Blocked| 789 -| |ex: *5QEF5<cr>|5: LSSP_ERROR_BITS_ExceedSpeedLimit| 790 -| |ex: *5QEF6<cr>|6: LSSP_ERROR_BITS_ExceedAccelLimit| 791 -| |ex: *5QEF7<cr>|7: LSSP_ERROR_BITS_ExceedDecelLimit| 792 -| |ex: *5QEF8<cr>|8: LSSP_ERROR_BITS_CurrentPositionOutOfRangePlus| 793 -| |ex: *5QEF9<cr>|9: LSSP_ERROR_BITS_CurrentPositionOutOfRangeMinus| 794 -| |ex: *5QEF10<cr>|10: LSSP_ERROR_BITS_EEPROMHeaderDataError| 795 -| |ex: *5QEF11<cr>|11: LSSP_ERROR_BITS_EEPROMCheckSumError| 796 -| |ex: *5QEF12<cr>|12: LSSP_ERROR_BITS_EEPROMMapVersionIsNotSupported| 797 797 ))) 798 798 799 799 |(% colspan="2" %)((( ... ... @@ -803,8 +803,7 @@ 803 803 (% class="wikigeneratedid" %) 804 804 Query IMU Linear (**QIX QIY QIZ**) 805 805 806 -(% class="wikigeneratedid" id="HEx:236QIX3Ccr3Emightreturn2A6QIX303Ccr3E" %) 807 -Ex: #6QIX<cr> might return *6QIX30<cr> 792 +====== Ex: #6QIX<cr> might return *6QIX30<cr> ====== 808 808 809 809 This command queries servo 6's IMU's linear accelerometer in the X direction. The response is 30mm per second squared. 810 810 ))) ... ... @@ -815,8 +815,6 @@ 815 815 |(% style="width:30px" %) |((( 816 816 (% class="wikigeneratedid" id="HEx:236QIB3Ccr3Emightreturn2A6QIB443Ccr3E" %) 817 817 Query IMU Angular (**QIA QIB QIG**) 818 - 819 -(% class="wikigeneratedid" %) 820 820 Ex: #6QIB<cr> might return *6QIB44<cr> 821 821 822 822 This command queries servo 6's IMU's linear accelerometer in the X direction. The response is 4.4 degrees per second squared.