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.CBenson - 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 ... ... @@ -207,11 +207,12 @@ 207 207 | |[[**Q**uery **C**urrent>>||anchor="HQueryCurrent28QC29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QC|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |mA| 208 208 | |[[**Q**uery **M**odel **S**tring>>||anchor="HQueryModelString28QMS29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QMS|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |Returns the model of servo (ex: LSS-ST1, LSS-HS1, LSS-HT1) 209 209 | |[[**Q**uery **F**irmware Version>>||anchor="HQueryFirmware28QF29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QF|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | | 210 +| |[[**Q**uery Serial **N**umber>>||anchor="HQuerySerialNumber28QN29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QN|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |Returns the unique serial number for the servo 210 210 211 211 |(% colspan="10" style="color:orange; font-size:18px" %)[[**RGB LED**>>||anchor="HRGBLED"]] 212 212 |(% 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** 213 213 | |[[**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 214 -| |[[**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. 215 215 216 216 = (% style="color:inherit; font-family:inherit" %)Details(%%) = 217 217 ... ... @@ -312,9 +312,9 @@ 312 312 313 313 ====== __Baud Rate__ ====== 314 314 315 -{{html clean="false" wiki="true"}}316 +{{html wiki="true" clean="false"}} 316 316 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 317 -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> 318 318 319 319 Query Baud Rate (**QB**)<div class="wikimodel-emptyline"></div> 320 320 ... ... @@ -332,28 +332,6 @@ 332 332 </div></div> 333 333 {{/html}} 334 334 335 -====== __Automatic Baud Rate__ ====== 336 - 337 -{{html clean="false" wiki="true"}} 338 -<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 339 -This option allows the LSS to listen to it's serial input and select the right baudrate automatically.<div class="wikimodel-emptyline"></div> 340 - 341 -Query Automatic Baud Rate (**QABR**)<div class="wikimodel-emptyline"></div> 342 - 343 -Ex: #5QABR<cr> might return *5ABR0<cr><div class="wikimodel-emptyline"></div> 344 - 345 -Enable Baud Rate (**ABR**)<div class="wikimodel-emptyline"></div> 346 - 347 -Ex: #5QABR1<cr><div class="wikimodel-emptyline"></div> 348 -Enable baudrate detection on first byte received after power-up.<div class="wikimodel-emptyline"></div> 349 - 350 -Ex: #5QABR2,30<cr><div class="wikimodel-emptyline"></div> 351 -Enable baudrate detection on first byte received after power-up. If no data for 30 seconds enable detection again on next byte.<div class="wikimodel-emptyline"></div> 352 - 353 -Warning: ABR doesnt work well with LSS Config at the moment.<div class="wikimodel-emptyline"></div> 354 -</div></div> 355 -{{/html}} 356 - 357 357 == Motion == 358 358 359 359 ====== __Position in Degrees (**D**)__ ====== ... ... @@ -485,7 +485,7 @@ 485 485 | |ex: *5Q3<cr>|3: Accelerating|Increasing speed from rest (or previous speed) towards travel speed 486 486 | |ex: *5Q4<cr>|4: Traveling|Moving at a stable speed 487 487 | |ex: *5Q5<cr>|5: Decelerating|Decreasing from travel speed towards final position. 488 -| |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 489 489 | |ex: *5Q7<cr>|7: Outside limits|{More details coming soon} 490 490 | |ex: *5Q8<cr>|8: Stuck|Motor cannot perform request movement at current speed setting 491 491 | |ex: *5Q9<cr>|9: Blocked|Similar to stuck, but the motor is at maximum duty and still cannot move (i.e.: stalled) ... ... @@ -533,18 +533,16 @@ 533 533 534 534 {{html clean="false" wiki="true"}} 535 535 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 536 -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>515 +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.<div class="wikimodel-emptyline"></div> 537 537 538 538 Ex: #5EM1<cr><div class="wikimodel-emptyline"></div> 539 539 540 -This command enables a trapezoidal motion profile for servo #5<div class="wikimodel-emptyline"></div>519 +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> 541 541 542 542 Ex: #5EM0<cr><div class="wikimodel-emptyline"></div> 543 543 544 -This command will disable the built-in trapezoidal motion profile. As such, the servo will move at full speedtothetargetposition usingtheD/MDactioncommands.ModifierslikeSD/S or T cannot be usedin EM0 mode. By default the Filter Position Counter, or "FPC" is active in EM0 mode to smooth out its operation.EM0 is suggestedfor applications where an external controller will be determining all incremental intermediate positions of the servo'smotion, effectively replacing a trajectory manager. To prevent having tosend position commands continuously to reach thedesired position in EM0/FPC active (FPC >= 2), an internalpositionengine (IPE) repeats thelast positioncommand. Notethat in EM0 mode, the servo will effectively always be in status: Holding (if using the query status command).523 +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. By default the Filter Position Counter, or "FPC" is active in EM0 mode to smooth out its operation.<div class="wikimodel-emptyline"></div> 545 545 546 -<div class="wikimodel-emptyline"></div> 547 - 548 548 Query Motion Profile (**QEM**)<div class="wikimodel-emptyline"></div> 549 549 550 550 Ex: #5QEM<cr> might return *5QEM1<cr><div class="wikimodel-emptyline"></div> ... ... @@ -860,12 +860,12 @@ 860 860 861 861 ====== __Speed (**S**, **SD**) modifier__ ====== 862 862 863 -{{html clean="false" wiki="true"}}840 +{{html wiki="true" clean="false"}} 864 864 <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 865 865 Example: #5P1500S750<cr><div class="wikimodel-emptyline"></div> 866 866 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> 867 867 Example: #5D0SD180<cr><div class="wikimodel-emptyline"></div> 868 -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>845 +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> 869 869 Query Speed (**QS**)<div class="wikimodel-emptyline"></div> 870 870 Example: #5QS<cr> might return *5QS300<cr><div class="wikimodel-emptyline"></div> 871 871 This command queries the current speed in microseconds per second.<div class="wikimodel-emptyline"></div> ... ... @@ -953,8 +953,15 @@ 953 953 </div></div> 954 954 {{/html}} 955 955 956 -====== ====== 933 +====== __Query Serial Number (**QN**)__ ====== 957 957 935 +{{html wiki="true" clean="false"}} 936 +<div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt"> 937 +Ex: #5QN<cr> might return *5QN12345678<cr><div class="wikimodel-emptyline"></div> 938 +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> 939 +</div></div> 940 +{{/html}} 941 + 958 958 == RGB LED == 959 959 960 960 ====== __LED Color (**LED**)__ ======