Changes for page LSS Communication Protocol
Last modified by Eric Nantel on 2025/06/06 07:47
Change comment: Update document after refactoring.
Summary
-
Page properties (3 modified, 0 added, 0 removed)
Details
- Page properties
-
- Parent
-
... ... @@ -1,1 +1,1 @@ 1 - lynxmotion:LSS- Overview(DEV).WebHome1 +Lynxmotion Smart Servo (LSS)1.WebHome - Author
-
... ... @@ -1,1 +1,1 @@ 1 -xwiki:XWiki. CBenson1 +xwiki:XWiki.RB1 - Content
-
... ... @@ -50,7 +50,7 @@ 50 50 51 51 == Configuration Commands == 52 52 53 -Configuration commands affect the servo's current session* but unlike action commands, configuration commands are written to EEPROM and are retained even if the servo loses power (therefore NOT session specific). Not all action commands have a corresponding configuration and vice versa. Certain configurations are retained for when the servo is used in RC model. More information can be found on the [[LSS - RC PWM page>>doc:LS S- Overview(DEV).LSS - RC PWM.WebHome]].53 +Configuration commands affect the servo's current session* but unlike action commands, configuration commands are written to EEPROM and are retained even if the servo loses power (therefore NOT session specific). Not all action commands have a corresponding configuration and vice versa. Certain configurations are retained for when the servo is used in RC model. More information can be found on the [[LSS - RC PWM page>>doc:Lynxmotion Smart Servo (LSS).LSS - RC PWM.WebHome]]. 54 54 55 55 1. Start with a number sign # (U+0023) 56 56 1. Servo ID number as an integer ... ... @@ -136,41 +136,41 @@ 136 136 = Command List = 137 137 138 138 |= #|=Description|= Action|= Query|= Config|= RC|= Serial|= Units|= Notes 139 -| 1|[[**L**imp>>||anchor="H1.Limp28L29"]]| L| | | | ✓| 140 -| 2|[[**H**alt & Hold>>||anchor="H2.Halt26Hold28H29"]]| H| | | | ✓| 141 -| 3|[[**T**imed move>>||anchor="H3.Timedmove28T29"]]| T| | | | ✓| 142 -| 4|[[**S**peed>>||anchor="H4.Speed28S29"]]| S| | | | ✓| 143 -| 5|[[**M**ove in **D**egrees (relative)>>||anchor="H5.28Relative29MoveinDegrees28MD29"]]| MD| | | | ✓| 144 -| 6|[[**O**rigin Offset>>||anchor="H6.OriginOffsetAction28O29"]]| O| QO| CO| ✓| ✓| 145 -| 7|[[**A**ngular **R**ange>>||anchor="H7.AngularRange28AR29"]]| AR| QAR| CAR| ✓| ✓| 146 -| 8|[[Position in **P**ulse>>||anchor="H8.PositioninPulse28P29"]]| P| QP| | | ✓| 139 +| 1|[[**L**imp>>||anchor="H1.Limp28L29"]]| L| | | | ✓|none| 140 +| 2|[[**H**alt & Hold>>||anchor="H2.Halt26Hold28H29"]]| H| | | | ✓|none| 141 +| 3|[[**T**imed move>>||anchor="H3.Timedmove28T29"]]| T| | | | ✓|milliseconds| Modifier only (P, D, MD) 142 +| 4|[[**S**peed>>||anchor="H4.Speed28S29"]]| S| | | | ✓|microseconds / second| Modifier only (P) 143 +| 5|[[**M**ove in **D**egrees (relative)>>||anchor="H5.28Relative29MoveinDegrees28MD29"]]| MD| | | | ✓|tenths of degrees (ex 325 = 32.5 degrees; 91 = 9.1 degrees)| 144 +| 6|[[**O**rigin Offset>>||anchor="H6.OriginOffsetAction28O29"]]| O| QO| CO| ✓| ✓|tenths of degrees (ex 325 = 32.5 degrees; 91 = 9.1 degrees)| 145 +| 7|[[**A**ngular **R**ange>>||anchor="H7.AngularRange28AR29"]]| AR| QAR| CAR| ✓| ✓|tenths of degrees (ex 325 = 32.5 degrees; 91 = 9.1 degrees)| 146 +| 8|[[Position in **P**ulse>>||anchor="H8.PositioninPulse28P29"]]| P| QP| | | ✓|microseconds|((( 147 147 See details below 148 148 ))) 149 -| 9|[[Position in **D**egrees>>||anchor="H9.PositioninDegrees28D29"]]| D| QD| | | ✓| 150 -| 10|[[**W**heel mode in **D**egrees>>||anchor="H10.WheelModeinDegrees28WD29"]]| WD| QWD| | | ✓| 151 -| 11|[[**W**heel mode in **R**PM>>||anchor="H11.WheelModeinRPM28WR29"]]| WR| QWR| | | ✓| rpm| 152 -| 12|[[Max **S**peed in **D**egrees>>||anchor="H12.SpeedinDegrees28SD29"]]| SD| QSD| CSD| ✓| ✓| 153 -| 13|[[Max **S**peed in **R**PM>>||anchor="H13.SpeedinRPM28SR29"]]| SR| QSR| CSR| ✓| ✓| 149 +| 9|[[Position in **D**egrees>>||anchor="H9.PositioninDegrees28D29"]]| D| QD| | | ✓|tenths of degrees (ex 325 = 32.5 degrees; 91 = 9.1 degrees)| 150 +| 10|[[**W**heel mode in **D**egrees>>||anchor="H10.WheelModeinDegrees28WD29"]]| WD| QWD| | | ✓|tenths of degrees per second (ex 248 = 24.8 degrees per second)|A.K.A. "Speed mode" or "Continuous rotation" 151 +| 11|[[**W**heel mode in **R**PM>>||anchor="H11.WheelModeinRPM28WR29"]]| WR| QWR| | | ✓| rpm|A.K.A. "Speed mode" or "Continuous rotation" 152 +| 12|[[Max **S**peed in **D**egrees>>||anchor="H12.SpeedinDegrees28SD29"]]| SD| QSD| CSD| ✓| ✓|tenths of degrees per second (ex 248 = 24.8 degrees per second)|QSD: Add modifier "2" for instantaneous speed 153 +| 13|[[Max **S**peed in **R**PM>>||anchor="H13.SpeedinRPM28SR29"]]| SR| QSR| CSR| ✓| ✓|rpm|QSR: Add modifier "2" for instantaneous speed 154 154 | 14|[[**A**ngular **S**tiffness>>||anchor="H14.AngularStiffness28AS29"]]| AS| QAS| CAS| ✓| ✓|none|-4 to +4, but suggested values are between 0 to +4 155 155 | 15|[[**A**ngular **H**olding Stiffness>>||anchor="H15.AngularHoldStiffness28AH29"]]|AH|QAH|CAH| | ✓|none|-10 to +10, with default as 0. 156 156 |15b|[[**A**ngular **A**cceleration>>||anchor="H15b:AngularAcceleration28AA29"]]|AA|QAA|CAA| | ✓|degrees per second squared|Increments of 10 degrees per second squared 157 157 |15c|[[**A**ngular **D**eceleration>>||anchor="H15c:AngularDeceleration28AD29"]]|AD|QAD|CAD| | ✓|degrees per second squared|Increments of 10 degrees per second squared 158 -|15d|[[**M**otion **C**ontrol>>||anchor="H15d:MotionControl28MC29"]]|MC|QMC| | | ✓|none|MC0 to disable motion control, MC1 to enable. Session specific159 -| 16|[[**LED** Color>>||anchor="H16.RGBLED28LED29"]]| LED| QLED| CLED| ✓| ✓| 160 -| 17|[[**ID** #>>||anchor="H17.IdentificationNumber"]]| | QID| CID| | ✓| 161 -| 18|[[**B**aud rate>>||anchor="H18.BaudRate"]]| B| QB| CB| | ✓| 162 -| 19|[[**G**yre direction (**G**)>>||anchor="H19.GyreRotationDirection"]]| G| QG| CG| ✓| ✓| 163 -| 20|[[**F**irst Position (**P**ulse)>>||anchor="H20.First2InitialPosition28pulse29"]]| | QFP|CFP | ✓| ✓| 164 -| 21|[[**F**irst Position (**D**egrees)>>||anchor="H21.First2InitialPosition28Degrees29"]]| | QFD|CFD| ✓| ✓| 165 -| 22|[[**T**arget (**D**egree) **P**osition>>||anchor="H22.QueryTargetPositioninDegrees28QDT29"]]| | QDT| | | ✓| 166 -| 23|[[**M**odel **S**tring>>||anchor="H23.QueryModelString28QMS29"]]| | QMS| | | | 167 -| 23b|[[**M**odel>>||anchor="H23b.QueryModel28QM29"]]| | QM| | | | 168 -| 24|[[Serial **N**umber>>||anchor="H24.QuerySerialNumber28QN29"]]| | QN| | | | 169 -| 25|[[**F**irmware version>>||anchor="H25.QueryFirmware28QF29"]]| | QF| | | | 170 -| 26|[[**Q**uery (general status)>>||anchor="H26.QueryStatus28Q29"]]| | Q| | | ✓| 171 -| 27|[[**V**oltage>>||anchor="H27.QueryVoltage28QV29"]]| | QV| | | ✓| 172 -| 28|[[**T**emperature>>||anchor="H28.QueryTemperature28QT29"]]| | QT| | | ✓| 173 -| 29|[[**C**urrent>>||anchor="H29.QueryCurrent28QC29"]]| | QC| | | ✓| 158 +|15d|[[**E**nable **M**otion control>>||anchor="H15d:MotionControl28MC29"]]|EM|QEM| | | ✓|none|EM0 to disable motion control, EM1 to enable. Session specific / does not survive power cycles 159 +| 16|[[**LED** Color>>||anchor="H16.RGBLED28LED29"]]| LED| QLED| CLED| ✓| ✓|none (integer from 1 to 8)|0=OFF 1=RED 2=GREEN 3= BLUE 4=YELLOW 5=CYAN 6=MAGENTA, 7=WHITE 160 +| 17|[[**ID** #>>||anchor="H17.IdentificationNumber"]]| | QID| CID| | ✓|none (integer from 0 to 250)|Note: ID 254 is a "broadcast" which all servos respond to 161 +| 18|[[**B**aud rate>>||anchor="H18.BaudRate"]]| B| QB| CB| | ✓|none (integer)| 162 +| 19|[[**G**yre direction (**G**)>>||anchor="H19.GyreRotationDirection"]]| G| QG| CG| ✓| ✓|none | Gyre / rotation direction where 1= CW (clockwise) -1 = CCW (counter-clockwise) 163 +| 20|[[**F**irst Position (**P**ulse)>>||anchor="H20.First2InitialPosition28pulse29"]]| | QFP|CFP | ✓| ✓|none | 164 +| 21|[[**F**irst Position (**D**egrees)>>||anchor="H21.First2InitialPosition28Degrees29"]]| | QFD|CFD| ✓| ✓|none | 165 +| 22|[[**T**arget (**D**egree) **P**osition>>||anchor="H22.QueryTargetPositioninDegrees28QDT29"]]| | QDT| | | ✓|tenths of degrees (ex 325 = 32.5 degrees; 91 = 9.1 degrees)| 166 +| 23|[[**M**odel **S**tring>>||anchor="H23.QueryModelString28QMS29"]]| | QMS| | | |none (string)| Recommended to determine the model| 167 +| 23b|[[**M**odel>>||anchor="H23b.QueryModel28QM29"]]| | QM| | | |none (integer)| Returns a raw value representing the three model inputs (36 bit)| 168 +| 24|[[Serial **N**umber>>||anchor="H24.QuerySerialNumber28QN29"]]| | QN| | | |none (integer)| 169 +| 25|[[**F**irmware version>>||anchor="H25.QueryFirmware28QF29"]]| | QF| | | |none (integer)| 170 +| 26|[[**Q**uery (general status)>>||anchor="H26.QueryStatus28Q29"]]| | Q| | | ✓|none (integer from 1 to 8)| See command description for details 171 +| 27|[[**V**oltage>>||anchor="H27.QueryVoltage28QV29"]]| | QV| | | ✓|millivolts (ex 5936 = 5936mV = 5.936V)| 172 +| 28|[[**T**emperature>>||anchor="H28.QueryTemperature28QT29"]]| | QT| | | ✓|tenths of degrees Celsius|Max temp before error: 85°C (servo goes limp) 173 +| 29|[[**C**urrent>>||anchor="H29.QueryCurrent28QC29"]]| | QC| | | ✓|milliamps (ex 200 = 0.2A)| 174 174 | 30|[[**RC** Mode>>||anchor="H30.RCMode28CRC29"]]| | |CRC| |✓|none|((( 175 175 CRC: Add modifier "1" for RC-position mode. 176 176 CRC: Add modifier "2" for RC-wheel mode. ... ... @@ -201,6 +201,8 @@ 201 201 202 202 Timed move can be used only as a modifier for a position (P) action. 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. This command is in place to ensure backwards compatibility with the SSC-32 / 32U protocol. 203 203 204 +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. 205 + 204 204 ====== __4. Speed (**S**)__ ====== 205 205 206 206 Example: #5P1500S750<cr> ... ... @@ -418,7 +418,7 @@ 418 418 419 419 {More details to come} 420 420 421 -====== __15d: Motion Control (**M C**)__ ======423 +====== __15d: Motion Control (**EM**)__ ====== 422 422 423 423 {More details to come} 424 424 ... ... @@ -563,12 +563,12 @@ 563 563 |ex: *5Q2<cr>|Free moving|Motor driving circuit is not powered and horn can be moved freely 564 564 |ex: *5Q3<cr>|Accelerating|Increasing speed from rest (or previous speeD) towards travel speed 565 565 |ex: *5Q4<cr>|Traveling|Moving at a stable speed 566 -|ex: *5Q5<cr>|Dec celerating|Decreasingspeed towardstravel speed towardsrest568 +|ex: *5Q5<cr>|Decelerating|Decreasing from travel speed towards final position. 567 567 |ex: *5Q6<cr>|Holding|Keeping current position 568 568 |ex: *5Q7<cr>|Stepping|Special low speed mode to maintain torque 569 -|ex: *5Q8<cr>|Outside limits|More details coming soon 571 +|ex: *5Q8<cr>|Outside limits|{More details coming soon} 570 570 |ex: *5Q9<cr>|Stuck|Motor cannot perform request movement at current speed setting 571 -|ex: *5Q10<cr>|Blocked|Similar to stuck, but the motor is at maxi umum duty and still cannot move (i.e.: stalled)573 +|ex: *5Q10<cr>|Blocked|Similar to stuck, but the motor is at maximum duty and still cannot move (i.e.: stalled) 572 572 573 573 ====== __27. Query Voltage (**QV**)__ ====== 574 574