Changes for page LSS Communication Protocol
Last modified by Eric Nantel on 2025/06/06 07:47
Change comment: There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -xwiki:XWiki. CBenson1 +xwiki:XWiki.ENantel - Content
-
... ... @@ -189,13 +189,13 @@ 189 189 | |[[**G**yre Direction>>||anchor="HGyreDirection28G29"]]|(% style="text-align:center" %)G|(% style="text-align:center" %)QG|(% style="text-align:center" %)CG|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|1| |Gyre / rotation direction: 1= CW (clockwise) -1 = CCW (counter-clockwise) 190 190 | |[[**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" %)✓|No value|1/10°|Reset required after change. 191 191 | |[[**M**aximum **M**otor **D**uty>>||anchor="HMaximumMotorDuty28MMD29"]]|(% style="text-align:center" %)MMD|(% style="text-align:center" %)QMMD|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓|1023|255 to 1023 integer| 192 -| |[[Maximum **S**peed in **D**egrees>>||anchor="HMaximumSpeedinDegrees28SD29"]]|(% style="text-align:center" %)SD|(% style="text-align:center" %)QSD|(% style="text-align:center" %)CSD|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|Max|°/s|SD overwrites SR / CSD overwrites CSR and vice-versa 192 +| |[[Maximum **S**peed in **D**egrees>>||anchor="HMaximumSpeedinDegrees28SD29"]]|(% style="text-align:center" %)SD|(% style="text-align:center" %)QSD|(% style="text-align:center" %)CSD|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|Max|0.1°/s|SD overwrites SR / CSD overwrites CSR and vice-versa 193 193 | |[[Maximum **S**peed in **R**PM>>||anchor="HMaximumSpeedinRPM28SR29"]]|(% style="text-align:center" %)SR|(% style="text-align:center" %)QSR|(% style="text-align:center" %)CSR|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|Max|RPM|SD overwrites SR / CSD overwrites CSR and vice-versa 194 194 195 195 |(% colspan="10" style="color:orange; font-size:18px" %)[[**Modifiers**>>||anchor="HModifiers"]] 196 196 |(% style="width:25px" %) |(% style="width:200px" %)**Description**|(% style="text-align:center; width:100px" %)**Modifier**|(% style="text-align:center; width:75px" %)**Query**|(% style="text-align:center; width:75px" %)**Config**|(% style="text-align:center; width:75px" %)**RC**|(% style="text-align:center; width:75px" %)**Serial**|(% style="width:100px" %)**Default**|(% style="width:170px" %)**Unit**|**Notes** 197 197 | |[[**S**peed>>||anchor="HSpeed28S2CSD29modifier"]]|(% style="text-align:center" %)S|(% style="text-align:center" %)QS|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |uS/s |For P action command 198 -| |[[**S**peed in **D**egrees>>||anchor="HSpeed28S2CSD29modifier"]]|(% style="text-align:center" %)SD|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |°/s|For D and MD action commands 198 +| |[[**S**peed in **D**egrees>>||anchor="HSpeed28S2CSD29modifier"]]|(% style="text-align:center" %)SD|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |0.1°/s|For D and MD action commands 199 199 | |[[**T**imed move>>||anchor="HTimedmove28T29modifier"]]|(% style="text-align:center" %)T|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |ms|Modifier only for P, D and MD. Time can change based on load 200 200 | |[[**C**urrent **H**old>>||anchor="HCurrentHalt26Hold28CH29modifier"]]|(% style="text-align:center" %)CH|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |mA|Modifier for D, MD, WD and WR 201 201 | |[[**C**urrent **L**imp>>||anchor="HCurrentLimp28CL29modifier"]]|(% style="text-align:center" %)CL|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |mA|Modifier for D, MD, WD and WR ... ... @@ -212,7 +212,7 @@ 212 212 |(% colspan="10" style="color:orange; font-size:18px" %)[[**RGB LED**>>||anchor="HRGBLED"]] 213 213 |(% 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:75px" %)**RC**|(% style="text-align:center; width:75px" %)**Serial**|(% style="width:100px" %)**Default**|(% style="width:170px" %)**Unit**|**Notes** 214 214 | |[[**LED** Color>>||anchor="HLEDColor28LED29"]]|(% style="text-align:center" %)LED|(% style="text-align:center" %)QLED|(% style="text-align:center" %)CLED|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓| |0 to 7 integer|0=Off; 1=Red; 2=Green; 3=Blue; 4=Yellow; 5=Cyan; 6=Magenta; 7=White 215 -| |[[**C**onfigure **L**ED **B**linking>>||anchor="HConfigureLEDBlinking28CLB29"]]|(% style="text-align:center" %) |(% style="text-align:center" %) QLB|(% style="text-align:center" %)CLB|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓| |0 to 63 integer|Reset required after change. See command for details.215 +| |[[**C**onfigure **L**ED **B**linking>>||anchor="HConfigureLEDBlinking28CLB29"]]|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)CLB|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓| |0 to 63 integer|Reset required after change. See command for details. 216 216 217 217 = (% style="color:inherit; font-family:inherit" %)Details(%%) = 218 218 ... ... @@ -313,9 +313,9 @@ 313 313 314 314 ====== __Baud Rate__ ====== 315 315 316 -{{html wiki="true"clean="false"}}316 +{{html clean="false" wiki="true"}} 317 317 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 318 -A servo's baud rate cannot be set "on the fly" and must be configured via the CB command described below. The factory default baud rate for all servos is 115200. Since smart servos are intended to be daisy chained, in order to respond to the same serial command, all servos in a project should be set to the same baud rate. Setting different baud rates will have the servos respond differently and may create issues. Available baud rates are: 9600 bps, 19200 bps, 38400 bps, 57600 bps, 115.2 kbps, 230.4 kbps, 250.0 kbps, 460.8 kbps, 500.0 kbps. Servos are shipped with a baud rate set to 115200.<div class="wikimodel-emptyline"></div> 318 +A servo's baud rate cannot be set "on the fly" and must be configured via the CB command described below. The factory default baud rate for all servos is 115200. Since smart servos are intended to be daisy chained, in order to respond to the same serial command, all servos in a project should be set to the same baud rate. Setting different baud rates will have the servos respond differently and may create issues. Available baud rates are: 9600 bps, 19200 bps, 38400 bps, 57600 bps, 115.2 kbps, 230.4 kbps, 250.0 kbps, 460.8 kbps, 500.0 kbps, 750.0 kbps, 921.6 kbps. Servos are shipped with a baud rate set to 115200.<div class="wikimodel-emptyline"></div> 319 319 320 320 Query Baud Rate (**QB**)<div class="wikimodel-emptyline"></div> 321 321 ... ... @@ -333,6 +333,14 @@ 333 333 </div></div> 334 334 {{/html}} 335 335 336 +====== __Automatic Baud Rate__ ====== 337 + 338 +{{html clean="false" wiki="true"}} 339 +<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 340 +A servo's baud rate cannot be set "on the fly" and must be configured via the CB command described below. The factory default baud rate for all servos is 115200. Since smart servos are intended to be daisy chained, in order to respond to the same serial command, all servos in a project should be set to the same baud rate. Setting different baud rates will have the servos respond differently and may create issues. Available baud rates are: 9600 bps, 19200 bps, 38400 bps, 57600 bps, 115.2 kbps, 230.4 kbps, 250.0 kbps, 460.8 kbps, 500.0 kbps, 750.0 kbps, 921.6 kbps. Servos are shipped with a baud rate set to 115200.<div class="wikimodel-emptyline"></div> 341 +</div></div> 342 +{{/html} 343 + 336 336 == Motion == 337 337 338 338 ====== __Position in Degrees (**D**)__ ====== ... ... @@ -464,7 +464,7 @@ 464 464 | |ex: *5Q3<cr>|3: Accelerating|Increasing speed from rest (or previous speed) towards travel speed 465 465 | |ex: *5Q4<cr>|4: Traveling|Moving at a stable speed 466 466 | |ex: *5Q5<cr>|5: Decelerating|Decreasing from travel speed towards final position. 467 -| |ex: *5Q6<cr>|6: Holding|Keeping current position 475 +| |ex: *5Q6<cr>|6: Holding|Keeping current position (in EM0 mode, return will nornally be holding) 468 468 | |ex: *5Q7<cr>|7: Outside limits|{More details coming soon} 469 469 | |ex: *5Q8<cr>|8: Stuck|Motor cannot perform request movement at current speed setting 470 470 | |ex: *5Q9<cr>|9: Blocked|Similar to stuck, but the motor is at maximum duty and still cannot move (i.e.: stalled) ... ... @@ -510,16 +510,20 @@ 510 510 511 511 ====== __Enable Motion Profile (**EM**)__ ====== 512 512 513 -{{html wiki="true"clean="false"}}521 +{{html clean="false" wiki="true"}} 514 514 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 523 +EM1 (Enable Motion Profile #1) is the default mode of the LSS and is an easy way to control the servo's position with a single (serial) position command. This mode uses a trapezoidal motion profile which takes care of acceleration, constant speed travel and deceleration. Once the actual position is within a certain value of the target, it switches to a holding algorithm. The LSS commands for Angular Acceleration and Deceleration (AA/CAA/AD/CAD) Angular Stiffness (AS/CAS) and Angular holding stiffness (AH/CAH) affect this motion profile. Modifiers like SD/S and T can be used in EM1.<div class="wikimodel-emptyline"></div> 524 + 515 515 Ex: #5EM1<cr><div class="wikimodel-emptyline"></div> 516 516 517 -This command enables a trapezoidal motion profile .By default, the trapezoidal motion profileisnabled. If the motion profile is enabled, angular acceleration (AA) and angular deceleration(AD) will have an effectonthemotion. Also, SD/S and T modifiers can be used.<div class="wikimodel-emptyline"></div>527 +This command enables a trapezoidal motion profile for servo #5 <div class="wikimodel-emptyline"></div> 518 518 519 519 Ex: #5EM0<cr><div class="wikimodel-emptyline"></div> 520 520 521 -This command will disable the trapezoidal motion profile. As such, the servo will move at full speed for D/MD action commands.Angularacceleration(AA)and angular deceleration(AD)won'thavean effecton motion in thismodeandmodifiersSD/SorTcannotbeused.<divclass="wikimodel-emptyline"></div>531 +This command will disable the built-in trapezoidal motion profile. As such, the servo will move at full speed to the target position using the D/MD action commands. Modifiers like SD/S or T cannot be used in EM0 mode. By default the Filter Position Counter, or "FPC" is active in EM0 mode to smooth out its operation. EM0 is suggested for applications where an external controller will be determining all incremental intermediate positions of the servo's motion, effectively replacing a trajectory manager. To prevent having to send position commands continuously to reach the desired position in EM0/FPC active (FPC >= 2), an internal position engine (IPE) repeats the last position command. Note that in EM0 mode, the servo will effectively always be in status: Holding (if using the query status command). 522 522 533 +<div class="wikimodel-emptyline"></div> 534 + 523 523 Query Motion Profile (**QEM**)<div class="wikimodel-emptyline"></div> 524 524 525 525 Ex: #5QEM<cr> might return *5QEM1<cr><div class="wikimodel-emptyline"></div> ... ... @@ -536,8 +536,10 @@ 536 536 537 537 ====== __Filter Position Count (**FPC**)__ ====== 538 538 539 -{{html wiki="true"clean="false"}}551 +{{html clean="false" wiki="true"}} 540 540 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 553 +The FPC value relates to the depth of a first order filter (exponential weighted average) over the position change. This has the effect of slowing down both acceleration and deceleration while still allowing the LSS to try to reach the desired position at maximum power at all times. A smaller FPC value will reduce the smoothing effect and a larger value will increase it. To prevent having to send position commands continuously to reach the desired position in EM0/FPC active (FPC >= 2), an internal position engine (IPE) has been put in place, which is also active by default. 554 +<div class="wikimodel-emptyline"></div> 541 541 Ex: #5FPC10<cr><div class="wikimodel-emptyline"></div> 542 542 This command allows the user to change the Filter Position Count value for that session. <div class="wikimodel-emptyline"></div> 543 543 ... ... @@ -773,7 +773,7 @@ 773 773 774 774 Ex: #5QMMDD<cr> might return *5QMMD512<cr> <div class="wikimodel-emptyline"></div> 775 775 776 -This co nfiguration commandmeans theservo, whenset to smart mode,willimmediatelymoveto 90.0 degreesuponpowerup.Sendinga CFD commandwithouta number(Ex. #5CFD<cr>)resultsintheservoemaininglimp uponpowerup.In order to remove the firstposition, send novalue,ex:#5CFD<cr>790 +This command returns the configured limit of the duty cycle value sent from the servo's MCU to the Motor Controller. The default value is 1023. 777 777 <div class="wikimodel-emptyline"></div></div></div> 778 778 {{/html}} 779 779 ... ... @@ -833,12 +833,12 @@ 833 833 834 834 ====== __Speed (**S**, **SD**) modifier__ ====== 835 835 836 -{{html wiki="true"clean="false"}}850 +{{html clean="false" wiki="true"}} 837 837 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 838 838 Example: #5P1500S750<cr><div class="wikimodel-emptyline"></div> 839 839 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> 840 840 Example: #5D0SD180<cr><div class="wikimodel-emptyline"></div> 841 -Modifier (SD) is only for a position (D) or relative position (MD) action and determines the speed of the move in 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 0degrees per second.<div class="wikimodel-emptyline"></div>855 +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> 842 842 Query Speed (**QS**)<div class="wikimodel-emptyline"></div> 843 843 Example: #5QS<cr> might return *5QS300<cr><div class="wikimodel-emptyline"></div> 844 844 This command queries the current speed in microseconds per second.<div class="wikimodel-emptyline"></div>