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
-
... ... @@ -462,156 +462,72 @@ 462 462 463 463 == Modifiers == 464 464 465 -====== __Speed (**S **, **SD**) modifier__ ======465 +====== __Speed (**SD**) modifier__ ====== 466 466 467 -{{html clean="false" wiki="true"}} 468 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 469 -Example: #5P1500S750<cr><div class="wikimodel-emptyline"></div> 470 -Modifier (S) is only for a position (P) action and determines the speed of the move in microseconds per second. A speed of 750 microseconds would cause the servo to rotate from its current position to the desired position at a speed of 750 microseconds per second. This command is in place to ensure backwards compatibility with the SSC-32 / 32U protocol.<div class="wikimodel-emptyline"></div> 471 -Example: #5D0SD180<cr><div class="wikimodel-emptyline"></div> 472 -Modifier (SD) is only for a position (D) or relative position (MD) action and determines the speed of the move in tenths of degrees per second. A speed modifier (SD) of 180 would cause the servo to rotate from its current position to the desired absolute or relative position at a speed of 18 degrees per second.<div class="wikimodel-emptyline"></div> 473 -Query Speed (**QS**)<div class="wikimodel-emptyline"></div> 474 -Example: #5QS<cr> might return *5QS300<cr><div class="wikimodel-emptyline"></div> 475 -This command queries the current speed in microseconds per second.<div class="wikimodel-emptyline"></div> 476 -</div></div> 477 -{{/html}} 467 +(% class="wikigeneratedid" id="HTimedmove28T29modifier" %) 468 +Example: #5D0SD180<cr> 478 478 479 -====== __Timed move (**T**) modifier__ ====== 470 +(% class="wikigeneratedid" %) 471 +Modifier (SD) is only for a position (D) or relative position (MD) action and determines the speed of the move in tenths of degrees per second. A speed modifier (SD) of 180 would cause the servo to rotate from its current position to the desired absolute or relative position at a speed of 18 degrees per second. 480 480 481 -{{html wiki="true" clean="false"}} 482 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 483 -Example: #5P1500T2500<cr><div class="wikimodel-emptyline"></div> 473 +(% class="wikigeneratedid" %) 474 +Query Speed (**QS**) 484 484 485 -Timed move can be used only as a modifier for a position (P, D, MD) actions. The units are in milliseconds, so a timed move of 2500 milliseconds would cause the servo to rotate from its current position to the desired position in 2.5 seconds. The onboard controller will attempt to ensure that the move is performed entirely at the desired velocity, though differences in torque may cause it to not be exact. This command is in place to ensure backwards compatibility with the SSC-32 / 32U protocol.<div class="wikimodel-emptyline"></div> 486 -**Note:** If the calculated speed at which a servo must rotate for a timed move is greater than its maximum speed (which depends on voltage and load), then it will move at its maximum speed, and the time of the move may be longer than requested.<div class="wikimodel-emptyline"></div> 487 -</div></div> 488 -{{/html}} 476 +(% class="wikigeneratedid" %) 477 +Example: #5QS<cr> might return *5QS300<cr> 489 489 490 -====== __Current Halt & Hold (**CH**) modifier__ ====== 479 +(% class="wikigeneratedid" %) 480 +This command queries the current speed in microseconds per second. 491 491 492 -{{html wiki="true" clean="false"}} 493 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 494 -Example: #5D1423CH400<cr><div class="wikimodel-emptyline"></div> 482 +(% class="wikigeneratedid" %) 483 +====== __Timed move (**T**) modifier__ ====== 495 495 496 -This has servo with ID 5 move to 142.3 degrees but, should it detect a current of 400mA or higher before it reaches the desired position, will immediately halt and hold position.<div class="wikimodel-emptyline"></div> 497 -This modifier can be added to the following actions: D; MD; WD; WR.<div class="wikimodel-emptyline"></div> 498 -</div></div> 499 -{{/html}} 485 +Example: #5D15000T2500<cr> 500 500 501 - ======__CurrentLimp(**CL**)modifier__======487 +Timed move can be used only as a modifier for a position (D, MD) actions. The units are in milliseconds, so a timed move of 2500 milliseconds would cause the servo to rotate from its current position to the desired position in 2.5 seconds. The onboard controller will attempt to ensure that the move is performed entirely at the desired velocity, though differences in torque may cause it to not be exact. This command is in place to ensure backwards compatibility with the SSC-32 / 32U protocol. 502 502 503 -{{html wiki="true" clean="false"}} 504 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 505 -Example: #5D1423CL400<cr><div class="wikimodel-emptyline"></div> 489 +**Note:** If the calculated speed at which a servo must rotate for a timed move is greater than its maximum speed (which depends on voltage and load), then it will move at its maximum speed, and the time of the move may be longer than requested 506 506 507 -This has servo with ID 5 move to 142.3 degrees but, should it detect a current of 400mA or higher before it reaches the desired position, will immediately go limp.<div class="wikimodel-emptyline"></div> 508 -This modifier can be added to the following actions: D; MD; WD; WR.<div class="wikimodel-emptyline"></div> 509 -</div></div> 510 -{{/html}} 491 +====== ====== 511 511 512 512 == Telemetry == 513 513 514 514 ====== __Query Voltage (**QV**)__ ====== 515 515 516 -{{html wiki="true" clean="false"}} 517 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 518 -Ex: #5QV<cr> might return *5QV11200<cr><div class="wikimodel-emptyline"></div> 519 -The number returned is in milliVolts, so in the case above, servo with ID 5 has an input voltage of 11.2V.<div class="wikimodel-emptyline"></div> 520 -</div></div> 521 -{{/html}} 497 +Ex: #5QV<cr> might return *5QV11200<cr> 522 522 499 +The number returned is in milliVolts, so in the case above, servo with ID 5 has an input voltage of 11.2V. 500 + 523 523 ====== __Query Temperature (**QT**)__ ====== 524 524 525 -{{html wiki="true" clean="false"}} 526 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 527 -Ex: #5QT<cr> might return *5QT564<cr><div class="wikimodel-emptyline"></div> 528 -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.<div class="wikimodel-emptyline"></div> 529 -</div></div> 530 -{{/html}} 503 +Ex: #5QT<cr> might return *5QT564<cr> 531 531 532 - ======__QueryCurrent(**QC**)__======505 +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. 533 533 534 -{{html wiki="true" clean="false"}} 535 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 536 -Ex: #5QC<cr> might return *5QC140<cr><div class="wikimodel-emptyline"></div> 537 -The units are in milliamps, so in the example above, the servo is consuming 140mA, or 0.14A.<div class="wikimodel-emptyline"></div> 538 -</div></div> 539 -{{/html}} 507 +====== __Query Motor Driver Current (**QC**)__ ====== 540 540 541 - ======__QueryModelString(**QMS**)__ ======509 +Ex: #5QC<cr> might return *5QC140<cr> 542 542 543 -{{html wiki="true" clean="false"}} 544 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 545 -Ex: #5QMS<cr> might return *5QMSLSS-HS1<cr><div class="wikimodel-emptyline"></div> 546 -This reply means that the servo model is LSS-HS1: a high speed servo, first revision.<div class="wikimodel-emptyline"></div> 547 -</div></div> 548 -{{/html}} 511 +The units are in milliamps, so in the example above, the servo is consuming 140mA, or 0.14A. It represents the RMS value. 549 549 550 -====== __Query Firmware (**QF**)__ ======513 +====== __Query Model String (**QMS**)__ ====== 551 551 552 -{{html wiki="true" clean="false"}} 553 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 554 -Ex: #5QF<cr> might return *5QF368<cr><div class="wikimodel-emptyline"></div> 555 -The number in the reply represents the firmware version, in this example being 368.<div class="wikimodel-emptyline"></div> 556 -The command #5QF3<cr> can also be sent and the servo will reply with a 3 numbers firmware version, for example, 368.29.14<div class="wikimodel-emptyline"></div> 557 -</div></div> 558 -{{/html}} 515 +Ex: #5QMS<cr> might return *5QMSLSS-HS1<cr> 559 559 560 - ======__QuerySerialNumber(**QN**)__======517 +This reply means that the servo model is LSS-HS1: a high speed servo, first revision. 561 561 562 -{{html wiki="true" clean="false"}} 563 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 564 -Ex: #5QN<cr> might return *5QN12345678<cr><div class="wikimodel-emptyline"></div> 565 -The number in the response (12345678) would be the servo's serial number which is set and should not be changed by the user.<div class="wikimodel-emptyline"></div> 566 -</div></div> 567 -{{/html}} 519 +====== __Query Firmware (**QF**)__ ====== 568 568 569 - ==RGBLED==521 +Ex: #5QF<cr> might return *5QF368<cr> 570 570 571 - ======__LEDColor(**LED**)__======523 +The number in the reply represents the firmware version, in this example being 368.The command #5QF3<cr> can also be sent and the servo will reply with a 3 numbers firmware version, for example, 368.29.14 572 572 573 -{{html wiki="true" clean="false"}} 574 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 575 -Ex: #5LED3<cr><div class="wikimodel-emptyline"></div> 576 -This action sets the servo's RGB LED color for that session.The LED can be used for aesthetics, or (based on user code) to provide visual status updates. Using timing can create patterns.<div class="wikimodel-emptyline"></div> 577 -0=Off (black); 1=Red 2=Green; 3=Blue; 4=Yellow; 5=Cyan; 6=Magenta; 7=White;<div class="wikimodel-emptyline"></div> 578 -Query LED Color (**QLED**)<div class="wikimodel-emptyline"></div> 579 -Ex: #5QLED<cr> might return *5QLED5<cr><div class="wikimodel-emptyline"></div> 580 -This simple query returns the indicated servo's LED color.<div class="wikimodel-emptyline"></div> 581 -Configure LED Color (**CLED**)<div class="wikimodel-emptyline"></div> 582 -Ex: #5CLED3<cr><div class="wikimodel-emptyline"></div> 583 -Configuring the LED color via the CLED command sets the startup color of the servo after a reset or power cycle. Note that it also changes the session's LED color immediately as well. The command above will configure the servo's LED to a Blue color.<div class="wikimodel-emptyline"></div> 584 -</div></div> 585 -{{/html}} 525 +====== __Query Serial Number (**QN**)__ ====== 586 586 587 - ======__ConfigureLED Blinking(**CLB**)__ ======527 +Ex: #5QN<cr> might return *5QN12345678<cr> 588 588 589 -{{html wiki="true" clean="false"}} 590 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 591 -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:<div class="wikimodel-emptyline"></div> 529 +The number in the response (12345678) would be the servo's serial number which is set and should not be changed by the user. 592 592 593 -(% style="width:195px" %) 594 -|(% style="width:134px" %)**Blink While:**|(% style="width:58px" %)**#** 595 -|(% style="width:134px" %)No blinking|(% style="width:58px" %)0 596 -|(% style="width:134px" %)Limp|(% style="width:58px" %)1 597 -|(% style="width:134px" %)Holding|(% style="width:58px" %)2 598 -|(% style="width:134px" %)Accelerating|(% style="width:58px" %)4 599 -|(% style="width:134px" %)Decelerating|(% style="width:58px" %)8 600 -|(% style="width:134px" %)Free|(% style="width:58px" %)16 601 -|(% style="width:134px" %)Travelling|(% style="width:58px" %)32 602 -|(% style="width:134px" %)Always blink|(% style="width:58px" %)63<div class="wikimodel-emptyline"></div> 603 - 604 -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:<div class="wikimodel-emptyline"></div> 605 -Ex: #5CLB0<cr> to turn off all blinking (LED always solid)<div class="wikimodel-emptyline"></div> 606 -Ex: #5CLB1<cr> only blink when limp (1)<div class="wikimodel-emptyline"></div> 607 -Ex: #5CLB2<cr> only blink when holding (2)<div class="wikimodel-emptyline"></div> 608 -Ex: #5CLB12<cr> only blink when accel or decel (accel 4 + decel 8 = 12)<div class="wikimodel-emptyline"></div> 609 -Ex: #5CLB48<cr> only blink when free or travel (free 16 + travel 32 = 48)<div class="wikimodel-emptyline"></div> 610 -Ex: #5CLB63<cr> blink in all status (1 + 2 + 4 + 8 + 16 + 32)<div class="wikimodel-emptyline"></div> 611 -RESETTING the servo is needed.<div class="wikimodel-emptyline"></div> 612 -</div></div> 613 -{{/html}} 614 - 615 615 == RGB LED == 616 616 617 - TheLED canbe533 +More information to come.