Changes for page LSS-PRO Communication Protocol
Last modified by Eric Nantel on 2025/11/28 14:42
Change comment: There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 1 removed)
Details
- Page properties
-
- Content
-
... ... @@ -140,15 +140,10 @@ 140 140 |(% 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** 141 141 | |[[**O**rigin Offset>>||anchor="HOriginOffset"]]|(% style="text-align:center" %)O|(% style="text-align:center" %)QO|(% style="text-align:center" %)CO|(% style="text-align:center" %)0|(% style="text-align:center" %)0.01°| 142 142 | |[[**A**ngular **R**ange>>||anchor="HAngularRange"]]|(% style="text-align:center" %)AR|(% style="text-align:center" %)QAR|(% style="text-align:center" %)CAR|(% style="text-align:center" %)36000|(% style="text-align:center" %)0.01°| 143 -| |(% style="vertical-align:middle" %)[[**A**ngular **A**cceleration>>||anchor="HAngularAcceleration"]]|(% style="text-align:center; vertical-align:middle" %)AA|(% style="text-align:center; vertical-align:middle" %)QAA|(% style="text-align:center; vertical-align:middle" %)CAA|(% style="text-align:center; vertical-align:middle" %)((( 144 -L1: 10000 145 -S1: 10000 146 -M1: 147 -)))|(% style="text-align:center; vertical-align:middle" %)0.01°/s^2|(% style="vertical-align:middle" %) 148 -| |(% style="vertical-align:middle" %)[[**A**ngular **D**eceleration>>||anchor="HAngularDeceleration"]]|(% style="text-align:center; vertical-align:middle" %)AD|(% style="text-align:center; vertical-align:middle" %)QAD|(% style="text-align:center; vertical-align:middle" %)CAD|(% style="text-align:center; vertical-align:middle" %)L1: 10000 149 -S1: 10000 150 -M1: |(% style="text-align:center; vertical-align:middle" %)0.01°/s^2|(% style="vertical-align:middle" %) 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 +| |[[**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| 151 151 | |[[**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. 152 152 | |[[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 153 153 | |[[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 154 154 ... ... @@ -339,9 +339,6 @@ 339 339 340 340 Ex: #5WD90<cr> 341 341 342 -⚠️ //Note~:// The servo’s **Angular Range (AR)** must be disabled when using Wheel Mode. 343 -Set AR0 (or CAR0 to save) before sending this command, otherwise the servo **will not rotate**. 344 - 345 345 This command sets the servo to wheel mode where it will rotate in the desired direction at the selected speed. The example above would have the servo rotate at 90.0 degrees per second clockwise (assuming factory default configurations). 346 346 347 347 Query Wheel Mode in Degrees (**QWD**) ... ... @@ -359,9 +359,6 @@ 359 359 360 360 Ex: #5WR40<cr> 361 361 362 -⚠️ //Note~:// The servo’s **Angular Range (AR)** must be disabled when using Wheel Mode. 363 -Set AR0 (or CAR0 to save) before sending this command, otherwise the servo **will not rotate**. 364 - 365 365 This command sets the servo to wheel mode where it will rotate in the desired direction at the selected rpm. Wheel mode (a.k.a. "continuous rotation") has the servo operate like a geared DC motor. The servo's maximum rpm cannot be set higher than its physical limit at a given voltage. The example above would have the servo rotate at 40 rpm clockwise (assuming factory default configurations). 366 366 367 367 Query Wheel Mode in RPM (**QWR**) ... ... @@ -384,13 +384,19 @@ 384 384 |(% style="width:25px" %) |***Value returned (Q)**|**Status**|**Detailed description** 385 385 | |ex: *5Q0<cr>|0: Unknown|LSS is unsure / unknown state 386 386 | |ex: *5Q1<cr>|1: Limp|Motor driving circuit is not powered and horn can be moved freely 387 -| |ex: *5Q2<cr>|2: Accelerating|Increasing speed from rest (or previous speed) towards travel speed 388 -| |ex: *5Q3<cr>|3: Traveling|Moving at a stable speed 389 -| |ex: *5Q4<cr>|4: Decelerating|Decreasing from travel speed towards final position. 390 -| |ex: *5Q5<cr>|5: Holding|Keeping current position (in EM0 mode, return will normally be holding) 391 -| |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). 392 392 393 -*Value returned (Q)StatusDetailed description 387 +Send a Q1 command to know which limit has been reached (described below). 388 +))) 394 394 395 395 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. 396 396 ... ... @@ -406,10 +406,6 @@ 406 406 ))) 407 407 |(% style="width:30px" %) |((( 408 408 Query Motion Time (**QMT**) 409 - 410 -Ex: #5QMT9000<cr> might return *5QMT1000<cr>, which indicates the motor would take 1.000s to do that movement. 411 - 412 -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. 413 413 ))) 414 414 415 415 |(% colspan="2" %)((( ... ... @@ -417,8 +417,6 @@ 417 417 ))) 418 418 |(% style="width:30px" %) |((( 419 419 Query Current Speed (**QCS**) 420 - 421 -Ex: #5QCS<cr> might return *5QCS1245<cr>, which indicate the actuator is moving currently at 12deg/s. 422 422 ))) 423 423 424 424 |(% colspan="2" %)((( ... ... @@ -495,9 +495,6 @@ 495 495 Configure Angular Range (**CAR**) 496 496 497 497 This command allows you to change the total angular range of the servo in tenths of degrees in EEPROM. The setting will be saved upon servo reset / power cycle. 498 - 499 -⚠️ //Note~:// Setting AR0 removes angular limits and allows **continuous rotation**. 500 -This is required for **Wheel Mode (WD / WR)** otherwise the servo **will not move**. 501 501 ))) 502 502 503 503 |(% colspan="2" %)((( ... ... @@ -570,6 +570,25 @@ 570 570 ))) 571 571 572 572 |(% 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" %)((( 573 573 ====== __Maximum Speed in Degrees__ ====== 574 574 ))) 575 575 |(% style="width:30px" %) |((( ... ... @@ -745,10 +745,6 @@ 745 745 ))) 746 746 |(% style="width:30px" %) |((( 747 747 Query Temp motor Probe (**QTP**) 748 - 749 -Ex: #5QTP<cr> might return *5QTP564<cr> 750 - 751 -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. 752 752 ))) 753 753 754 754 |(% colspan="2" %)((( ... ... @@ -756,10 +756,6 @@ 756 756 ))) 757 757 |(% style="width:30px" %) |((( 758 758 Query Temp MCU (**QTM**) 759 - 760 -Ex: #5QTM<cr> might return *5QTM564<cr> 761 - 762 -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. 763 763 ))) 764 764 765 765 |(% colspan="2" %)((( ... ... @@ -768,11 +768,6 @@ 768 768 |(% style="width:30px" %) |((( 769 769 (% class="wikigeneratedid" id="HEx:236QIX3Ccr3Emightreturn2A6QIX303Ccr3E" %) 770 770 Query Temp Controller Error (**QTCE**) 771 - 772 - 773 - 774 -(% class="wikigeneratedid" %) 775 -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℃). 776 776 ))) 777 777 778 778 |(% colspan="2" %)((( ... ... @@ -781,10 +781,6 @@ 781 781 |(% style="width:30px" %) |((( 782 782 (% class="wikigeneratedid" id="HEx:236QIX3Ccr3Emightreturn2A6QIX303Ccr3E" %) 783 783 Query Temp Controller Warning (**QTCW**) 784 - 785 - 786 -(% class="wikigeneratedid" %) 787 -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℃). 788 788 ))) 789 789 790 790 |(% colspan="2" %)((( ... ... @@ -792,24 +792,6 @@ 792 792 ))) 793 793 |(% style="width:30px" %) |((( 794 794 Query Error Flag (**QEF**) 795 - 796 -Ex: #5QEF<cr> might return *5QEF64<cr> 797 - 798 - 799 -|(% style="width:25px" %) |***Value returned (QEF)**|**Status**|**Detailed description** 800 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_PCBOverTemerature| 801 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_MCUOverTemerature| 802 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_MotorProbeOverTemerature| 803 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_MotorDriverOverTemerature| 804 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_Blocked| 805 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_ExceedSpeedLimit| 806 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_ExceedAccelLimit| 807 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_ExceedDecelLimit| 808 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_CurrentPositionOutOfRangePlus| 809 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_CurrentPositionOutOfRangeMinus| 810 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_EEPROMHeaderDataError| 811 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_EEPROMCheckSumError| 812 -| |ex: *5QEF<cr>|LSSP_ERROR_BITS_EEPROMMapVersionIsNotSupported| 813 813 ))) 814 814 815 815 |(% colspan="2" %)((( ... ... @@ -845,25 +845,7 @@ 845 845 ))) 846 846 |(% style="width:30px" %) |((( 847 847 (% class="wikigeneratedid" id="HEx:236QIB3Ccr3Emightreturn2A6QIB443Ccr3E" %) 848 -The user defined LED color can be changed permanently (CLED) or until reboot (LED). 849 - 850 -(% class="wikigeneratedid" %) 851 -Ex: #5LED5<cr>, will set the user LED color to Cyan until reboot of the actuator. 852 - 853 -(% class="wikigeneratedid" %) 854 -Ex: #5CLED3<cr>, will set the user LED color to Blue and will be that way ever after rebooting the actuator. 855 - 856 - 857 -(% style="width:200px" %) 858 -|(% colspan="2" style="text-align:center; vertical-align:middle; width:35px" %)**Color vs Value** 859 -|(% style="text-align:center; vertical-align:middle; width:35px" %)[[image:[email protected]]]|0 = Off / Black 860 -|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]]]|1 = Red 861 -|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]]]|2 = Green 862 -|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]]]|3 = Blue 863 -|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]]]|4 = Yellow 864 -|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]||alt="SQUARE-Black.png"]]|5 = Cyan 865 -|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]]]|6 = Magenta 866 -|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]]]|7 = White 818 + 867 867 ))) 868 868 869 869 |(% colspan="2" %)((( ... ... @@ -871,21 +871,7 @@ 871 871 ))) 872 872 |(% style="width:30px" %) |((( 873 873 (% class="wikigeneratedid" id="HEx:236QIB3Ccr3Emightreturn2A6QIB443Ccr3E" %) 874 -This command allows you to control when the RGB LED will blink the user set color (see RGB LED command for details). This is very useful when visually seeing what the servo is doing. You can turn on or off blinking for various LSS status. The command requires that the servo be RESET. Here is the list and their associated value: 875 - 876 -(% style="width:200px" %) 877 -|**Blink While:**|(% style="text-align:center; width:35px" %)**#** 878 -|No blinking|(% style="text-align:center" %)0 879 -|Limp|(% style="text-align:center" %)1 880 -|Holding|(% style="text-align:center" %)2 881 -|Accelerating|(% style="text-align:center" %)4 882 -|Decelerating|(% style="text-align:center" %)8 883 -|Free|(% style="text-align:center" %)16 884 -|Travelling|(% style="text-align:center" %)32 885 -|Always blink|(% style="text-align:center" %)63 886 - 887 -(% class="wikigeneratedid" %) 888 -To set blinking, use CLB with the value of your choosing. To activate blinking in multiple status, simply add together the values of the corresponding status. See examples below:Ex: #5CLB0 to turn off all blinking (LED always solid)Ex: #5CLB1 only blink when limp (1)Ex: #5CLB2 only blink when holding (2)Ex: #5CLB12 only blink when accel or decel (accel 4 + decel 8 = 12)Ex: #5CLB48 only blink when free or travel (free 16 + travel 32 = 48)Ex: #5CLB63 blink in all status (1 + 2 + 4 + 8 + 16 + 32)RESETTING the servo is needed. 826 + 889 889 ))) 890 890 891 891 |(% colspan="2" %)((( ... ... @@ -893,11 +893,7 @@ 893 893 ))) 894 894 |(% style="width:30px" %) |((( 895 895 (% class="wikigeneratedid" id="HEx:236QIB3Ccr3Emightreturn2A6QIB443Ccr3E" %) 896 -The LED Indicator will reflect the blinking pattern from the LED at a given time. 897 - 898 -(% class="wikigeneratedid" %) 899 -Ex: #5QLI<cr> might return *5QLI4<cr>, and the actuator would be blinking 3 times as an Exceed speed limits error. 900 - 901 -(% class="wikigeneratedid" %) 902 -[[image:QLI-Info.png]] 834 + 903 903 ))) 836 + 837 +
- QLI-Info.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -xwiki:XWiki.ENantel - Size
-
... ... @@ -1,1 +1,0 @@ 1 -101.7 KB - Content

