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. ENantel1 +xwiki:XWiki.BDaouas - 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| 0.1°/s|SD overwrites SR / CSD overwrites CSR and vice-versa192 +| |[[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 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" %)✓| | 0.1°/s|For D and MD action commands198 +| |[[**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 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" %) 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. 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 clean="false" wiki="true"}}316 +{{html wiki="true" clean="false"}} 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 , 750.0kbps, 921.6 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. 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,21 +333,6 @@ 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 -This option allows the LSS to listen to it's serial input and select the right baudrate automatically.<div class="wikimodel-emptyline"></div> 341 - 342 -Query Automatic Baud Rate (**QABR**)<div class="wikimodel-emptyline"></div> 343 - 344 -Enable Baud Rate (**ABR**)<div class="wikimodel-emptyline"></div> 345 - 346 -Configure Baud Rate (**CABR**)<div class="wikimodel-emptyline"></div> 347 - 348 -</div></div> 349 -{{/html}} 350 - 351 351 == Motion == 352 352 353 353 ====== __Position in Degrees (**D**)__ ====== ... ... @@ -479,7 +479,7 @@ 479 479 | |ex: *5Q3<cr>|3: Accelerating|Increasing speed from rest (or previous speed) towards travel speed 480 480 | |ex: *5Q4<cr>|4: Traveling|Moving at a stable speed 481 481 | |ex: *5Q5<cr>|5: Decelerating|Decreasing from travel speed towards final position. 482 -| |ex: *5Q6<cr>|6: Holding|Keeping current position (in EM0 mode, return will nornally be holding)467 +| |ex: *5Q6<cr>|6: Holding|Keeping current position 483 483 | |ex: *5Q7<cr>|7: Outside limits|{More details coming soon} 484 484 | |ex: *5Q8<cr>|8: Stuck|Motor cannot perform request movement at current speed setting 485 485 | |ex: *5Q9<cr>|9: Blocked|Similar to stuck, but the motor is at maximum duty and still cannot move (i.e.: stalled) ... ... @@ -525,20 +525,16 @@ 525 525 526 526 ====== __Enable Motion Profile (**EM**)__ ====== 527 527 528 -{{html clean="false" wiki="true"}}513 +{{html wiki="true" clean="false"}} 529 529 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 530 -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> 531 - 532 532 Ex: #5EM1<cr><div class="wikimodel-emptyline"></div> 533 533 534 -This command enables a trapezoidal motion profile for servo #5<div class="wikimodel-emptyline"></div>517 +This command enables a trapezoidal motion profile. By default, the trapezoidal motion profile is enabled. If the motion profile is enabled, angular acceleration (AA) and angular deceleration(AD) will have an effect on the motion. Also, SD/S and T modifiers can be used.<div class="wikimodel-emptyline"></div> 535 535 536 536 Ex: #5EM0<cr><div class="wikimodel-emptyline"></div> 537 537 538 -This command will disable the built-in trapezoidal motion profile. As such, the servo will move at full speedtothe targetposition using theD/MD action commands.Modifierslike SD/S orT cannot beused in EM0 mode. By default theFilterPositionCounter,or "FPC" isactive inEM0 modeto smooth out its operation. EM0 is suggested for applications wherean external controller will bedetermining all incrementalintermediate positionsoftheservo's motion,effectivelyreplacing a trajectory manager.Topreventhaving tosendpositioncommands continuouslytoreachthedesiredpositionin EM0/FPCactive(FPC>= 2),aninternal positionengine(IPE) repeatsthe last position command. Note that in EM0 mode, the servo willeffectivelyalways beinstatus: Holding (if using thequery status command).521 +This command will disable the trapezoidal motion profile. As such, the servo will move at full speed for D/MD action commands. Angular acceleration (AA) and angular deceleration(AD) won't have an effect on motion in this mode and modifiers SD/S or T cannot be used.<div class="wikimodel-emptyline"></div> 539 539 540 -<div class="wikimodel-emptyline"></div> 541 - 542 542 Query Motion Profile (**QEM**)<div class="wikimodel-emptyline"></div> 543 543 544 544 Ex: #5QEM<cr> might return *5QEM1<cr><div class="wikimodel-emptyline"></div> ... ... @@ -555,10 +555,8 @@ 555 555 556 556 ====== __Filter Position Count (**FPC**)__ ====== 557 557 558 -{{html clean="false" wiki="true"}}539 +{{html wiki="true" clean="false"}} 559 559 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 560 -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. 561 -<div class="wikimodel-emptyline"></div> 562 562 Ex: #5FPC10<cr><div class="wikimodel-emptyline"></div> 563 563 This command allows the user to change the Filter Position Count value for that session. <div class="wikimodel-emptyline"></div> 564 564 ... ... @@ -854,12 +854,12 @@ 854 854 855 855 ====== __Speed (**S**, **SD**) modifier__ ====== 856 856 857 -{{html clean="false" wiki="true"}}836 +{{html wiki="true" clean="false"}} 858 858 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 859 859 Example: #5P1500S750<cr><div class="wikimodel-emptyline"></div> 860 860 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> 861 861 Example: #5D0SD180<cr><div class="wikimodel-emptyline"></div> 862 -Modifier (SD) is only for a position (D) or relative position (MD) action and determines the speed of the move in tenths ofdegrees 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>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 180 degrees per second.<div class="wikimodel-emptyline"></div> 863 863 Query Speed (**QS**)<div class="wikimodel-emptyline"></div> 864 864 Example: #5QS<cr> might return *5QS300<cr><div class="wikimodel-emptyline"></div> 865 865 This command queries the current speed in microseconds per second.<div class="wikimodel-emptyline"></div>