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 (4 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -xwiki:XWiki. ENantel1 +xwiki:XWiki.RB1 - Hidden
-
... ... @@ -1,1 +1,1 @@ 1 - false1 +true - Tags
-
... ... @@ -1,1 +1,1 @@ 1 -LSS|communication|protocol|programming|firmware|control 1 +LSS|communication|protocol|programming|firmware|control|LSS-Ref - Content
-
... ... @@ -1,4 +1,5 @@ 1 -= Table of Contents = 1 +(% class="wikigeneratedid" id="HTableofContents" %) 2 +**Table of Contents** 2 2 3 3 {{toc depth="3"/}} 4 4 ... ... @@ -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]].54 +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,42 @@ 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| | | ✓| 140 +| 1|[[**L**imp>>||anchor="H1.Limp28L29"]]| L| | | | ✓|none| 141 +| 2|[[**H**alt & Hold>>||anchor="H2.Halt26Hold28H29"]]| H| | | | ✓|none| 142 +| 3|[[**T**imed move>>||anchor="H3.Timedmove28T29"]]| T| | | | ✓|milliseconds| Modifier only (P, D, MD) 143 +| 4|[[**S**peed>>||anchor="H4.Speed28S29"]]| S| | | | ✓|microseconds / second| Modifier only (P) 144 +| 5|[[**M**ove in **D**egrees (relative)>>||anchor="H5.28Relative29MoveinDegrees28MD29"]]| MD| | | | ✓|tenths of degrees (ex 325 = 32.5 degrees; 91 = 9.1 degrees)| 145 +| 6|[[**O**rigin Offset>>||anchor="H6.OriginOffsetAction28O29"]]| O| QO| CO| ✓| ✓|tenths of degrees (ex 325 = 32.5 degrees; 91 = 9.1 degrees)| 146 +| 7|[[**A**ngular **R**ange>>||anchor="H7.AngularRange28AR29"]]| AR| QAR| CAR| ✓| ✓|tenths of degrees (ex 325 = 32.5 degrees; 91 = 9.1 degrees)| 147 +| 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| ✓| ✓| 150 +| 9|[[Position in **D**egrees>>||anchor="H9.PositioninDegrees28D29"]]| D| QD| | | ✓|tenths of degrees (ex 325 = 32.5 degrees; 91 = 9.1 degrees)| 151 +| 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" 152 +| 11|[[**W**heel mode in **R**PM>>||anchor="H11.WheelModeinRPM28WR29"]]| WR| QWR| | | ✓| rpm|A.K.A. "Speed mode" or "Continuous rotation" 153 +| 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 154 +| 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 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)| 160 +| 16|[[**LED** Color>>||anchor="H16.RGBLED28LED29"]]| LED| QLED| CLED| ✓| ✓|none (integer from 0 to 8)|0=Off (black); 1=Red 2=Green; 3=Blue; 4=Yellow; 5=Cyan; 6=Magenta; 7=White; 161 +| 16b|[[**C**onfigure **L**ED **B**linking>>||anchor="H16b.ConfigureLEDBlinking28CLB29"]]| | | CLB| ✓| |none (integer from 0 to 63)|0=No blinking, Blink while: 1=Limp; 2=Holding 3=Accel; 4=Decel; 5=Free 6=Travel; 63=Always blink; 162 +| 17|[[**ID** #>>||anchor="H17.IdentificationNumber"]]| | QID| CID| | ✓|none (integer from 0 to 250)|Note: ID 254 is a "broadcast" which all servos respond to 163 +| 18|[[**B**aud rate>>||anchor="H18.BaudRate"]]| B| QB| CB| | ✓|none (integer)| 164 +| 19|[[**G**yre direction (**G**)>>||anchor="H19.GyreRotationDirection"]]| G| QG| CG| ✓| ✓|none | Gyre / rotation direction where 1= CW (clockwise) -1 = CCW (counter-clockwise) 165 +| 20|[[**F**irst Position (**P**ulse)>>||anchor="H20.First2InitialPosition28pulse29"]]| | QFP|CFP | ✓| ✓|none | 166 +| 21|[[**F**irst Position (**D**egrees)>>||anchor="H21.First2InitialPosition28Degrees29"]]| | QFD|CFD| ✓| ✓|none | 167 +| 22|[[**T**arget (**D**egree) **P**osition>>||anchor="H22.QueryTargetPositioninDegrees28QDT29"]]| | QDT| | | ✓|tenths of degrees (ex 325 = 32.5 degrees; 91 = 9.1 degrees)| 168 +| 23|[[**M**odel **S**tring>>||anchor="H23.QueryModelString28QMS29"]]| | QMS| | | |none (string)| Recommended to determine the model| 169 +| 23b|[[**M**odel>>||anchor="H23b.QueryModel28QM29"]]| | QM| | | |none (integer)| Returns a raw value representing the three model inputs (36 bit)| 170 +| 24|[[Serial **N**umber>>||anchor="H24.QuerySerialNumber28QN29"]]| | QN| | | |none (integer)| 171 +| 25|[[**F**irmware version>>||anchor="H25.QueryFirmware28QF29"]]| | QF| | | |none (integer)| 172 +| 26|[[**Q**uery (general status)>>||anchor="H26.QueryStatus28Q29"]]| | Q| | | ✓|none (integer from 1 to 8)| See command description for details 173 +| 27|[[**V**oltage>>||anchor="H27.QueryVoltage28QV29"]]| | QV| | | ✓|millivolts (ex 5936 = 5936mV = 5.936V)| 174 +| 28|[[**T**emperature>>||anchor="H28.QueryTemperature28QT29"]]| | QT| | | ✓|tenths of degrees Celsius|Max temp before error: 85°C (servo goes limp) 175 +| 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. ... ... @@ -442,6 +442,10 @@ 442 442 443 443 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. 444 444 447 +====== __16b. Configure LED Blinking (**CLB**)__ ====== 448 + 449 +??? 450 + 445 445 ====== __17. Identification Number__ ====== 446 446 447 447 A servo's identification number cannot be set "on the fly" and must be configured via the CID command described below. The factory default ID number for all servos is 0. Since smart servos are intended to be daisy chained, in order to respond differently from one another, the user must set different identification numbers. Servos with the same ID and baud rate will all receive and react to the same commands.