Last modified by Eric Nantel on 2025/10/02 08:47

From version < 81.1 >
edited by Eric Nantel
on 2024/07/22 19:37
To version < 92.1
edited by Eric Nantel
on 2025/10/02 08:47
<
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -333,6 +333,9 @@
333 333  
334 334  Ex: #5WD90<cr>
335 335  
336 +⚠️ //Note~:// The servo’s **Angular Range (AR)** must be disabled when using Wheel Mode.
337 +Set AR0 (or CAR0 to save) before sending this command, otherwise the servo **will not rotate**.
338 +
336 336  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).
337 337  
338 338  Query Wheel Mode in Degrees (**QWD**)
... ... @@ -350,6 +350,9 @@
350 350  
351 351  Ex: #5WR40<cr>
352 352  
356 +⚠️ //Note~:// The servo’s **Angular Range (AR)** must be disabled when using Wheel Mode.
357 +Set AR0 (or CAR0 to save) before sending this command, otherwise the servo **will not rotate**.
358 +
353 353  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).
354 354  
355 355  Query Wheel Mode in RPM (**QWR**)
... ... @@ -372,19 +372,13 @@
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: Free moving|Servo is rotating in duty motion / free move using the RDM command
376 -| |ex: *5Q3<cr>|3: Accelerating|Increasing speed from rest (or previous speed) towards travel speed
377 -| |ex: *5Q4<cr>|4: Traveling|Moving at a stable speed
378 -| |ex: *5Q5<cr>|5: Decelerating|Decreasing from travel speed towards final position.
379 -| |ex: *5Q6<cr>|6: Holding|Keeping current position (in EM0 mode, return will normally be holding)
380 -| |ex: *5Q7<cr>|7: Outside limits|{More details coming soon}
381 -| |ex: *5Q8<cr>|8: Stuck|Motor cannot perform request movement at current speed setting
382 -| |ex: *5Q9<cr>|9: Blocked|Similar to stuck, but the motor is at maximum duty and still cannot move (i.e.: stalled)
383 -| |ex: *5Q10<cr>|10: Safe Mode|(((
384 -A safety limit has been exceeded (temperature, peak current or extended high current draw).
381 +| |ex: *5Q2<cr>|2: Accelerating|Increasing speed from rest (or previous speed) towards travel speed
382 +| |ex: *5Q3<cr>|3: Traveling|Moving at a stable speed
383 +| |ex: *5Q4<cr>|4: Decelerating|Decreasing from travel speed towards final position.
384 +| |ex: *5Q5<cr>|5: Holding|Keeping current position (in EM0 mode, return will normally be holding)
385 +| |ex: *5Q6<cr>|6: Error|If the status is Error, the error value consists of binary flags ([[HERE>>doc:||anchor="HErrorFlag"]])
385 385  
386 -Send a Q1 command to know which limit has been reached (described below).
387 -)))
387 +*Value returned (Q)StatusDetailed description
388 388  
389 389  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.
390 390  
... ... @@ -400,6 +400,10 @@
400 400  )))
401 401  |(% style="width:30px" %) |(((
402 402  Query Motion Time (**QMT**)
403 +
404 +Ex: #5QMT9000<cr> might return *5QMT1000<cr>, which indicates the motor would take 1.000s to do that movement.
405 +
406 +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.
403 403  )))
404 404  
405 405  |(% colspan="2" %)(((
... ... @@ -407,6 +407,8 @@
407 407  )))
408 408  |(% style="width:30px" %) |(((
409 409  Query Current Speed (**QCS**)
414 +
415 +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" %)(((
... ... @@ -483,6 +483,9 @@
483 483  Configure Angular Range (**CAR**)
484 484  
485 485  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.
492 +
493 +⚠️ //Note~:// Setting AR0 removes angular limits and allows **continuous rotation**.
494 +This is required for **Wheel Mode (WD / WR)** otherwise the servo **will not move**.
486 486  )))
487 487  
488 488  |(% colspan="2" %)(((
... ... @@ -730,6 +730,10 @@
730 730  )))
731 731  |(% style="width:30px" %) |(((
732 732  Query Temp motor Probe (**QTP**)
742 +
743 +Ex: #5QTP<cr> might return *5QTP564<cr>
744 +
745 +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.
733 733  )))
734 734  
735 735  |(% colspan="2" %)(((
... ... @@ -737,6 +737,10 @@
737 737  )))
738 738  |(% style="width:30px" %) |(((
739 739  Query Temp MCU (**QTM**)
753 +
754 +Ex: #5QTM<cr> might return *5QTM564<cr>
755 +
756 +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.
740 740  )))
741 741  
742 742  |(% colspan="2" %)(((
... ... @@ -745,6 +745,11 @@
745 745  |(% style="width:30px" %) |(((
746 746  (% class="wikigeneratedid" id="HEx:236QIX3Ccr3Emightreturn2A6QIX303Ccr3E" %)
747 747  Query Temp Controller Error (**QTCE**)
765 +
766 +
767 +
768 +(% class="wikigeneratedid" %)
769 +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℃).
748 748  )))
749 749  
750 750  |(% colspan="2" %)(((
... ... @@ -753,6 +753,10 @@
753 753  |(% style="width:30px" %) |(((
754 754  (% class="wikigeneratedid" id="HEx:236QIX3Ccr3Emightreturn2A6QIX303Ccr3E" %)
755 755  Query Temp Controller Warning (**QTCW**)
778 +
779 +
780 +(% class="wikigeneratedid" %)
781 +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℃).
756 756  )))
757 757  
758 758  |(% colspan="2" %)(((
... ... @@ -760,6 +760,24 @@
760 760  )))
761 761  |(% style="width:30px" %) |(((
762 762  Query Error Flag (**QEF**)
789 +
790 +Ex: #5QEF<cr> might return *5QEF64<cr>
791 +
792 +
793 +|(% style="width:25px" %) |***Value returned (QEF)**|**Status**|**Detailed description**
794 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_PCBOverTemerature|
795 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_MCUOverTemerature|
796 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_MotorProbeOverTemerature|
797 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_MotorDriverOverTemerature|
798 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_Blocked|
799 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_ExceedSpeedLimit|
800 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_ExceedAccelLimit|
801 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_ExceedDecelLimit|
802 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_CurrentPositionOutOfRangePlus|
803 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_CurrentPositionOutOfRangeMinus|
804 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_EEPROMHeaderDataError|
805 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_EEPROMCheckSumError|
806 +| |ex: *5QEF<cr>|LSSP_ERROR_BITS_EEPROMMapVersionIsNotSupported|
763 763  )))
764 764  
765 765  |(% colspan="2" %)(((
... ... @@ -795,7 +795,25 @@
795 795  )))
796 796  |(% style="width:30px" %) |(((
797 797  (% class="wikigeneratedid" id="HEx:236QIB3Ccr3Emightreturn2A6QIB443Ccr3E" %)
798 -
842 +The user defined LED color can be changed permanently (CLED) or until reboot (LED).
843 +
844 +(% class="wikigeneratedid" %)
845 +Ex: #5LED5<cr>, will set the user LED color to Cyan until reboot of the actuator.
846 +
847 +(% class="wikigeneratedid" %)
848 +Ex: #5CLED3<cr>, will set the user LED color to Blue and will be that way ever after rebooting the actuator.
849 +
850 +
851 +(% style="width:200px" %)
852 +|(% colspan="2" style="text-align:center; vertical-align:middle; width:35px" %)**Color vs Value**
853 +|(% style="text-align:center; vertical-align:middle; width:35px" %)[[image:[email protected]]]|0 = Off / Black
854 +|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]]]|1 = Red
855 +|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]]]|2 = Green
856 +|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]]]|3 = Blue
857 +|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]]]|4 = Yellow
858 +|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]||alt="SQUARE-Black.png"]]|5 = Cyan
859 +|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]]]|6 = Magenta
860 +|(% style="text-align:center; vertical-align:middle" %)[[image:[email protected]]]|7 = White
799 799  )))
800 800  
801 801  |(% colspan="2" %)(((
... ... @@ -803,7 +803,21 @@
803 803  )))
804 804  |(% style="width:30px" %) |(((
805 805  (% class="wikigeneratedid" id="HEx:236QIB3Ccr3Emightreturn2A6QIB443Ccr3E" %)
806 -
868 +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:
869 +
870 +(% style="width:200px" %)
871 +|**Blink While:**|(% style="text-align:center; width:35px" %)**#**
872 +|No blinking|(% style="text-align:center" %)0
873 +|Limp|(% style="text-align:center" %)1
874 +|Holding|(% style="text-align:center" %)2
875 +|Accelerating|(% style="text-align:center" %)4
876 +|Decelerating|(% style="text-align:center" %)8
877 +|Free|(% style="text-align:center" %)16
878 +|Travelling|(% style="text-align:center" %)32
879 +|Always blink|(% style="text-align:center" %)63
880 +
881 +(% class="wikigeneratedid" %)
882 +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.
807 807  )))
808 808  
809 809  |(% colspan="2" %)(((
... ... @@ -811,7 +811,11 @@
811 811  )))
812 812  |(% style="width:30px" %) |(((
813 813  (% class="wikigeneratedid" id="HEx:236QIB3Ccr3Emightreturn2A6QIB443Ccr3E" %)
814 -
815 -)))
890 +The LED Indicator will reflect the blinking pattern from the LED at a given time.
816 816  
817 -
892 +(% class="wikigeneratedid" %)
893 +Ex: #5QLI<cr> might return *5QLI4<cr>, and the actuator would be blinking 3 times as an Exceed speed limits error.
894 +
895 +(% class="wikigeneratedid" %)
896 +[[image:QLI-Info.png]]
897 +)))
QLI-Info.png
Author
... ... @@ -1,0 +1,1 @@
1 +xwiki:XWiki.ENantel
Size
... ... @@ -1,0 +1,1 @@
1 +101.7 KB
Content
Copyright RobotShop 2018