Last modified by Eric Nantel on 2025/06/06 07:47

From version < 208.2 >
edited by Eric Nantel
on 2022/05/10 15:18
To version < 191.1 >
edited by Coleman Benson
on 2020/05/01 13:10
< >
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.ENantel
1 +xwiki:XWiki.CBenson
Content
... ... @@ -7,7 +7,7 @@
7 7  
8 8  The Lynxmotion Smart Servo (LSS) serial protocol was created in order to be as simple and straightforward as possible from a user perspective ("human readable format"), while at the same time staying compact and robust yet highly versatile. The protocol was based on Lynxmotion's SSC-32 & SSC-32U RC servo controllers and almost everything one might expect to be able to configure for a smart servomotor is available.
9 9  
10 -In order to be able to control each servo individually with commands, the first step should be to assign a different ID number to each servo (see details on the Configure ID, or "CID" command [[here>>doc:||anchor="HIdentificationNumber28ID29"]]). Only the servo(s) which have been configured to a specific ID will act on a command sent to that ID. There is currently no CRC or checksum implemented as part of the protocol.
10 +In order to be able to control each servo individually with commands, the first step should be to assign a different ID number to each servo (see details on CID [[here>>doc:||anchor="HIdentificationNumber28ID29"]]). Once this has been done, only the servo(s) which have been assigned to the ID sent as part of the command will follow that command. There is currently no CRC or checksum implemented as part of the protocol.
11 11  
12 12  == Session ==
13 13  
... ... @@ -15,21 +15,21 @@
15 15  <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt">
16 16  A "session" is defined as the time between when the servo is powered ON to when it is powered OFF or reset.<div class="wikimodel-emptyline"></div>
17 17  
18 -**Note 1:** For a given session, the action related to a specific command overrides the stored value in EEPROM.<div class="wikimodel-emptyline"></div>
19 -**Note 2:** During the power-on / reset process the LSS cannot accept commands for a small amount of time (~1.25 s).<div class="wikimodel-emptyline"></div>
20 -**Note 3:** You can ensure the LSS is ready by using a query command to check for response (ex: #[id]Q\r or #[id]QID\r described below). If the LSS is ready for commands (initialized) it will respond to the query. A timeout between 50-100 ms is recommended to compensate for drivers, OS and buffering delays.
18 +**Note #1:** For a given session, the action related to a specific command overrides the stored value in EEPROM.<div class="wikimodel-emptyline"></div>
19 +**Note #2:** During the power-on / reset process the LSS cannot accept commands for a small amount of time (1.25 s).<div class="wikimodel-emptyline"></div>
20 +You can ensure the LSS is ready by using a query command to check for response (ex: #[id]Q\r or #[id]QID\r). If the LSS is ready for commands (initialized) it will respond to the query. A timeout between 50-100 ms is recommended to compensate for drivers, OS and buffering delays.
21 21  <div class="wikimodel-emptyline"></div></div></div>
22 22  {{/html}}
23 23  
24 24  == Action Commands ==
25 25  
26 -{{html clean="false" wiki="true"}}
26 +{{html wiki="true" clean="false"}}
27 27  <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt">
28 -Action commands tell the servo, within that session, to do something (i.e. "take an action"). The types of action commands which can be sent are described below, and they cannot be combined with other commands such as queries or configurations. Only one action command can be sent at a time. Action commands are session-specific, therefore once a servo is power cycled, it will not have any "memory" of previous actions or [[virtual positions>>||anchor="HVirtualAngularPosition"]] (described below). Action commands are sent serially to the servo's Rx pin and must be sent in the following format:<div class="wikimodel-emptyline"></div>
28 +Action commands tell the servo, within that session, to do something (i.e. "take an action"). The types of action commands which can be sent are described below, and they cannot be combined with other commands such as queries or configurations. Only one action command can be sent at a time. Action commands are session-specific, therefore once a servo is power cycled, it will not have any "memory" of previous actions or [[virtual positions>>||anchor="HVirtualAngularPosition"]]. Action commands are sent serially to the servo's Rx pin and must be sent in the following format:<div class="wikimodel-emptyline"></div>
29 29  
30 30  1. Start with a number sign **#** (Unicode Character: U+0023)
31 -1. Servo ID number as an integer (assigning an ID described below)
32 -1. Action command (one or more letters, no whitespace, capital or lowercase from the list below)
31 +1. Servo ID number as an integer
32 +1. Action command (one or more letters, no whitespace, capital or lower case)
33 33  1. Action value in the correct units with no decimal
34 34  1. End with a carriage return **&#92;r** or **&lt;cr&gt;** Unicode Character (U+000D)
35 35  
... ... @@ -42,15 +42,15 @@
42 42  
43 43  == Modifiers ==
44 44  
45 -{{html clean="false" wiki="true"}}
45 +{{html wiki="true" clean="false"}}
46 46  <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt">
47 47  Modifiers can only be used with certain **action commands**. The format to include a modifier is:<div class="wikimodel-emptyline"></div>
48 48  
49 49  1. Start with a number sign **#** (Unicode Character: U+0023)
50 50  1. Servo ID number as an integer
51 -1. Action command (one to three letters, no spaces, capital or lowercase from a subset of action commands below)
51 +1. Action command (one to three letters, no spaces, capital or lower case)
52 52  1. Action value in the correct units with no decimal
53 -1. Modifier command (one or two letters from the list of modifiers below)
53 +1. Modifier command (one letter to too letters)
54 54  1. Modifier value in the correct units with no decimal
55 55  1. End with a carriage return **&#92;r** or **&lt;cr&gt;** Unicode Character (U+000D)
56 56  
... ... @@ -62,7 +62,7 @@
62 62  
63 63  == Query Commands ==
64 64  
65 -{{html clean="false" wiki="true"}}
65 +{{html wiki="true" clean="false"}}
66 66  <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt">
67 67  Query commands request information from the servo. They are received via the Rx pin of the servo, and the servo's reply is sent via the servo's Tx pin. Using separate lines for Tx and Rx is called "full duplex". Query commands are also similar to action and configuration commands and must use the following format:<div class="wikimodel-emptyline"></div>
68 68  
... ... @@ -71,7 +71,7 @@
71 71  1. Query command (one to four letters, no spaces, capital or lower case)
72 72  1. End with a carriage return **&#92;r** or **&lt;cr&gt;** Unicode Character (U+000D)<div class="wikimodel-emptyline"></div>
73 73  
74 -Ex: #5QD&lt;cr&gt; Query the position in (tenth of) degrees for servo with ID #5<div class="wikimodel-emptyline"></div>
74 +Ex: #5QD&lt;cr&gt; Query position in (tenth of) degrees for servo #5<div class="wikimodel-emptyline"></div>
75 75  
76 76  The query will return a serial string (almost instantaneously) via the servo's Tx pin with the following format:
77 77  
... ... @@ -91,11 +91,11 @@
91 91  
92 92  == Configuration Commands ==
93 93  
94 -{{html clean="false" wiki="true"}}
94 +{{html wiki="true" clean="false"}}
95 95  <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt">
96 96  Configuration commands and corresponding values affect a servo's defaults which are written to and read from the servo's EEPROM.<div class="wikimodel-emptyline"></div>
97 97  
98 -These configurations are retained in memory after the servo is reset or power is cut / lost. Some configuration commands affect the session, while others do not. In the Command table below, the column "Session" denotes if the configuration command affects the session. Not all action commands have a corresponding configuration command and vice versa. More information about which configuration commands are retained when in RC mode can be found on the [[LSS - RC PWM page>>doc:lynxmotion-smart-servo.lss-radio-control-pwm.WebHome]]. Configuration commands are not cumulative. This means that if two of the same configuration commands are sent, one after the next, only the last configuration is used and stored.<div class="wikimodel-emptyline"></div>
98 +These configurations are retained in memory after the servo is reset or power is cut / lost. Some configuration commands affect the session, while others do not. In the Command table below, the column "Session" denotes if the configuration command affects the session. Not all action commands have a corresponding configuration command and vice versa. More information about which configuration commands are retained when in RC mode can be found on the [[LSS - RC PWM page>>doc:lynxmotion-smart-servo.lss-radio-control-pwm.WebHome]]. Configuration commands are not cumulative. This means that if two same configuration commands are sent, one after the next, only the last configuration is used and stored.<div class="wikimodel-emptyline"></div>
99 99  
100 100  The format to send a configuration command is identical to that of an action command:<div class="wikimodel-emptyline"></div>
101 101  
... ... @@ -153,71 +153,75 @@
153 153  
154 154  **Latest firmware version currently : 368.29.14**
155 155  
156 -|(% colspan="10" style="color:orange; font-size:18px" %)[[**Communication Setup**>>||anchor="HCommunicationSetup"]]
156 +|(% colspan="10" style="color:orange; font-size:18px" %)[[**Communication Setup**>>||anchor="COMMUNICATION_SETUP"]]
157 157  |(% 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**
158 -| |[[**Reset**>>||anchor="HReset"]]|(% style="text-align:center" %)RESET|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |Soft reset. See command for details.
159 -| |[[**Default** Configuration>>||anchor="HDefault26confirm"]]|(% style="text-align:center" %)DEFAULT|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |Revert to firmware default values. See command for details
160 -| |[[Firmware **Update** Mode>>||anchor="HUpdate26confirm"]]|(% style="text-align:center" %)UPDATE|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |Update firmware. See command for details.
161 -| |[[**Confirm** Changes>>||anchor="HConfirm"]]|(% style="text-align:center" %)CONFIRM|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |
162 -| |[[**C**hange to **RC**>>||anchor="HConfigureRCMode28CRC29"]]|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)CRC|(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |Change to RC mode 1 (position) or 2 (wheel).
163 -| |[[**ID** #>>||anchor="HIdentificationNumber28ID29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QID|(% style="text-align:center" %)CID|(% style="text-align:center" %) |(% style="text-align:center" %)✓|0| |Reset required after change. ID 254 is a "broadcast" which all servos respond to.
164 -| |[[**B**audrate>>||anchor="HBaudRate"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QB|(% style="text-align:center" %)CB|(% style="text-align:center" %) |(% style="text-align:center" %)✓|115200| |Reset required after change.
158 +| |[[**Reset**>>||anchor="RESET"]]|(% style="text-align:center" %)RESET|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |Soft reset. See command for details.
159 +| |[[**Default** Configuration>>||anchor="DEFAULT"]]|(% style="text-align:center" %)DEFAULT|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |Revert to firmware default values. See command for details
160 +| |[[Firmware **Update** Mode>>||anchor="UPDATE_CONFIRM"]]|(% style="text-align:center" %)UPDATE|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |Update firmware. See command for details.
161 +| |[[**Confirm** Changes>>||anchor="CONFIRM"]]|(% style="text-align:center" %)CONFIRM|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |
162 +| |[[**C**hange to **RC**>>||anchor="CHANGE_RC"]]|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)CRC|(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |Change to RC mode 1 (position) or 2 (wheel).
163 +| |[[**ID** #>>||anchor="ID"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QID|(% style="text-align:center" %)CID|(% style="text-align:center" %) |(% style="text-align:center" %)✓|0| |Reset required after change. ID 254 is a "broadcast" which all servos respond to.
164 +| |[[**B**audrate>>||anchor="BAUDRATE"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QB|(% style="text-align:center" %)CB|(% style="text-align:center" %) |(% style="text-align:center" %)✓|115200| |Reset required after change.
165 165  
166 -|(% colspan="10" style="color:orange; font-size:18px" %)[[**Motion**>>||anchor="HMotion"]]
166 +|(% colspan="10" style="color:orange; font-size:18px" %)[[**Motion**>>||anchor="MOTION"]]
167 167  |(% 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**
168 -| |[[Position in **D**egrees>>||anchor="HPositioninDegrees28D29"]]|(% style="text-align:center" %)D|(% style="text-align:center" %)QD/QDT|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |1/10°|
169 -| |[[**M**ove in **D**egrees (relative)>>||anchor="H28Relative29MoveinDegrees28MD29"]]|(% style="text-align:center" %)MD|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |1/10°|
170 -| |[[**W**heel mode in **D**egrees>>||anchor="HWheelModeinDegrees28WD29"]]|(% style="text-align:center" %)WD|(% style="text-align:center" %)QWD/QVT|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |°/s|A.K.A. "Speed mode" or "Continuous rotation"
171 -| |[[**W**heel mode in **R**PM>>||anchor="HWheelModeinRPM28WR29"]]|(% style="text-align:center" %)WR|(% style="text-align:center" %)QWR|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |RPM|A.K.A. "Speed mode" or "Continuous rotation"
172 -| |[[Position in **P**WM>>||anchor="HPositioninPWM28P29"]]|(% style="text-align:center" %)P|(% style="text-align:center" %)QP|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |us|Inherited from SSC-32 serial protocol
173 -| |[[**M**ove in PWM (relative)>>||anchor="H28Relative29MoveinPWM28M29"]]|(% style="text-align:center" %)M|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |us|
174 -| |[[**R**aw **D**uty-cycle **M**ove>>||anchor="HRawDuty-cycleMove28RDM29"]]|(% style="text-align:center" %)RDM|(% style="text-align:center" %)QMD|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |-1023 to 1023 integer|Positive values : CW / Negative values : CCW
175 -| |[[**Q**uery Status>>||anchor="HQueryStatus28Q29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)Q|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |1 to 8 integer|See command description for details
176 -| |[[**L**imp>>||anchor="HLimp28L29"]]|(% style="text-align:center" %)L|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |
177 -| |[[**H**alt & Hold>>||anchor="HHalt26Hold28H29"]]|(% style="text-align:center" %)H|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |
168 +| |[[Position in **D**egrees>>||anchor="POSITION_D"]]|(% style="text-align:center" %)D|(% style="text-align:center" %)QD/QDT|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |1/10°|
169 +| |[[**M**ove in **D**egrees (relative)>>||anchor="MOVE_D"]]|(% style="text-align:center" %)MD|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |1/10°|
170 +| |[[**W**heel mode in **D**egrees>>||anchor="WHEEL_D"]]|(% style="text-align:center" %)WD|(% style="text-align:center" %)QWD/QVT|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |°/s|A.K.A. "Speed mode" or "Continuous rotation"
171 +| |[[**W**heel mode in **R**PM>>||anchor="WHEEL_RPM"]]|(% style="text-align:center" %)WR|(% style="text-align:center" %)QWR|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |RPM|A.K.A. "Speed mode" or "Continuous rotation"
172 +| |[[Position in **P**WM>>||anchor="POSITION_PWM"]]|(% style="text-align:center" %)P|(% style="text-align:center" %)QP|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |us|Inherited from SSC-32 serial protocol
173 +| |[[**M**ove in PWM (relative)>>||anchor="MOVE_PWM"]]|(% style="text-align:center" %)M|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |us|
174 +| |[[**R**aw **D**uty-cycle **M**ove>>||anchor="MOVE_RAW"]]|(% style="text-align:center" %)RDM|(% style="text-align:center" %)QMD|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |-1023 to 1023 integer|Positive values : CW / Negative values : CCW
175 +| |[[**Q**uery Status>>||anchor="QUERY_STATUS"]]|(% style="text-align:center" %) |(% style="text-align:center" %)Q|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |1 to 8 integer|See command description for details
176 +| |[[**L**imp>>||anchor="LIMP"]]|(% style="text-align:center" %)L|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |
177 +| |[[**H**alt & Hold>>||anchor="HALT_HOLD"]]|(% style="text-align:center" %)H|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| | |
178 178  
179 -|(% colspan="10" style="color:orange; font-size:18px" %)[[**Motion Setup**>>||anchor="HMotionSetup"]]
179 +|(% colspan="10" style="color:orange; font-size:18px" %)[[**Motion Setup**>>||anchor="MOTION_SETUP"]]
180 180  |(% 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**
181 -| |[[**E**nable **M**otion Profile>>||anchor="HEnableMotionProfile28EM29"]]|(% style="text-align:center" %)EM|(% style="text-align:center" %)QEM|(% style="text-align:center" %)CEM|(% style="text-align:center" %) |(% style="text-align:center" %)✓|1| |EM1: trapezoidal motion profile / EM0: no motion profile
182 -| |[[**F**ilter **P**osition **C**ount>>||anchor="HFilterPositionCount28FPC29"]]|(% style="text-align:center" %)FPC|(% style="text-align:center" %)QFPC|(% style="text-align:center" %)CFPC|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|5| |Affects motion only when motion profile is disabled (EM0)
183 -| |[[**O**rigin Offset>>||anchor="HOriginOffset28O29"]]|(% style="text-align:center" %)O|(% style="text-align:center" %)QO|(% style="text-align:center" %)CO|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|0|1/10°|
184 -| |[[**A**ngular **R**ange>>||anchor="HAngularRange28AR29"]]|(% style="text-align:center" %)AR|(% style="text-align:center" %)QAR|(% style="text-align:center" %)CAR|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|1800|1/10°|
185 -| |[[**A**ngular **S**tiffness>>||anchor="HAngularStiffness28AS29"]]|(% style="text-align:center" %)AS|(% style="text-align:center" %)QAS|(% style="text-align:center" %)CAS|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|0|-4 to +4 integer|Suggested values are between 0 to +4
186 -| |[[**A**ngular **H**olding Stiffness>>||anchor="HAngularHoldingStiffness28AH29"]]|(% style="text-align:center" %)AH|(% style="text-align:center" %)QAH|(% style="text-align:center" %)CAH|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|4|-10 to +10 integer|
187 -| |[[**A**ngular **A**cceleration>>||anchor="HAngularAcceleration28AA29"]]|(% style="text-align:center" %)AA|(% style="text-align:center" %)QAA|(% style="text-align:center" %)CAA|(% style="text-align:center" %) |(% style="text-align:center" %)✓|100|°/s^^2^^|Increments of 10°/s^^2^^. Only when motion profile is enabled (EM1).
188 -| |[[**A**ngular **D**eceleration>>||anchor="HAngularDeceleration28AD29"]]|(% style="text-align:center" %)AD|(% style="text-align:center" %)QAD|(% style="text-align:center" %)CAD|(% style="text-align:center" %) |(% style="text-align:center" %)✓|100|°/s^^2^^|Increments of 10°/s^^2^^. Only when motion profile is enabled (EM1).
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 -| |[[**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 -| |[[**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-versa
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
181 +| |[[**E**nable **M**otion Profile>>||anchor="MOTION_PROFILE"]]|(% style="text-align:center" %)EM|(% style="text-align:center" %)QEM|(% style="text-align:center" %)CEM|(% style="text-align:center" %) |(% style="text-align:center" %)✓|1| |EM1: trapezoidal motion profile / EM0: no motion profile
182 +| |[[**F**ilter **P**osition **C**ount>>||anchor="FILTER_POSITION_COUNT"]]|(% style="text-align:center" %)FPC|(% style="text-align:center" %)QFPC|(% style="text-align:center" %)CFPC|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|5| |Affects motion only when motion profile is disabled (EM0)
183 +| |[[**O**rigin Offset>>||anchor="ORIGIN_OFFSET"]]|(% style="text-align:center" %)O|(% style="text-align:center" %)QO|(% style="text-align:center" %)CO|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|0|1/10°|
184 +| |[[**A**ngular **R**ange>>||anchor="ANGULAR_RANGE"]]|(% style="text-align:center" %)AR|(% style="text-align:center" %)QAR|(% style="text-align:center" %)CAR|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|1800|1/10°|
185 +| |[[**A**ngular **S**tiffness>>||anchor="ANGULAR_STIFFNESS"]]|(% style="text-align:center" %)AS|(% style="text-align:center" %)QAS|(% style="text-align:center" %)CAS|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|0|-4 to +4 integer|Suggested values are between 0 to +4
186 +| |[[**A**ngular **H**olding Stiffness>>||anchor="ANGULAR_HOLDING_STIFFNESS"]]|(% style="text-align:center" %)AH|(% style="text-align:center" %)QAH|(% style="text-align:center" %)CAH|(% style="text-align:center" %)✓|(% style="text-align:center" %)✓|4|-10 to +10 integer|
187 +| |[[**A**ngular **A**cceleration>>||anchor="ANGULAR_ACCELERATION"]]|(% style="text-align:center" %)AA|(% style="text-align:center" %)QAA|(% style="text-align:center" %)CAA|(% style="text-align:center" %) |(% style="text-align:center" %)✓|100|°/s^^2^^|Increments of 10°/s^^2^^. Only when motion profile is enabled (EM1).
188 +| |[[**A**ngular **D**eceleration>>||anchor="ANGULAR_DECELERATION"]]|(% style="text-align:center" %)AD|(% style="text-align:center" %)QAD|(% style="text-align:center" %)CAD|(% style="text-align:center" %) |(% style="text-align:center" %)✓|100|°/s^^2^^|Increments of 10°/s^^2^^. Only when motion profile is enabled (EM1).
189 +| |[[**G**yre Direction>>||anchor="GYRE_DIRECTION"]]|(% 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 +| |[[**F**irst Position (**D**eg)>>||anchor="FIRST_POSITION"]]|(% 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 +| |[[**M**aximum **M**otor **D**uty>>||anchor="MAXIMUM_RAW"]]|(% 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="MAXIMUM_SPEED_D"]]|(% 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 +| |[[Maximum **S**peed in **R**PM>>||anchor="MAXIMUM_SPEED_RPM"]]|(% 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 -|(% colspan="10" style="color:orange; font-size:18px" %)[[**Modifiers**>>||anchor="HModifiers"]]
195 +|(% colspan="10" style="color:orange; font-size:18px" %)[[**Modifiers**>>||anchor="MODIFIERS"]]
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 -| |[[**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 commands
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 -| |[[**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 -| |[[**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
197 +| |[[**S**peed>>||anchor="SPEEDS"]]|(% 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="SPEEDS"]]|(% 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 +| |[[**T**imed move>>||anchor="TIMED_MOVE"]]|(% 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 +| |[[**C**urrent **H**old>>||anchor="CURRENT_HOLD"]]|(% 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 +| |[[**C**urrent **L**imp>>||anchor="CURRENT_LIMP"]]|(% 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
202 202  
203 -|(% colspan="10" style="color:orange; font-size:18px" %)[[**Telemetry**>>||anchor="HTelemetry"]]
203 +|(% colspan="10" style="color:orange; font-size:18px" %)[[**Telemetry**>>||anchor="TELEMETRY"]]
204 204  |(% 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**
205 -| |[[**Q**uery **V**oltage>>||anchor="HQueryVoltage28QV29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QV|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |mV|
206 -| |[[**Q**uery **T**emperature>>||anchor="HQueryTemperature28QT29"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QT|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |1/10°C|
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 -| |[[**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 -| |[[**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
205 +| |[[**Q**uery **V**oltage>>||anchor="QUERY_VOLTAGE"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QV|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |mV|
206 +| |[[**Q**uery **T**emperature>>||anchor="QUERY_TEMP"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QT|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |1/10°C|
207 +| |[[**Q**uery **C**urrent>>||anchor="QUERY_CURRENT"]]|(% style="text-align:center" %) |(% style="text-align:center" %)QC|(% style="text-align:center" %) |(% style="text-align:center" %) |(% style="text-align:center" %)✓| |mA|
208 +| |[[**Q**uery **M**odel **S**tring>>||anchor="QUERY_MODEL"]]|(% 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 +| |[[**Q**uery **F**irmware Version>>||anchor="QUERY_FIRMWARE"]]|(% 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="QUERY_SERIAL"]]|(% 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
211 211  
212 -|(% colspan="10" style="color:orange; font-size:18px" %)[[**RGB LED**>>||anchor="HRGBLED"]]
212 +|(% colspan="10" style="color:orange; font-size:18px" %)[[**RGB LED**>>||anchor="RGB_LED"]]
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 -| |[[**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" %) |(% 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.
214 +| |[[**LED** Color>>||anchor="LED_COLOR"]]|(% 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="LED_BLINK"]]|(% 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  
219 +{{id name="COMMUNICATION_SETUP"/}}
220 +
219 219  == (% style="color:inherit; font-family:inherit" %)Communication Setup(%%) ==
220 220  
223 +{{id name="RESET"/}}
224 +
221 221  ====== __Reset__ ======
222 222  
223 223  {{html wiki="true" clean="false"}}
... ... @@ -228,6 +228,8 @@
228 228  </div></div>
229 229  {{/html}}
230 230  
235 +{{id name="DEFAULT"/}}
236 +
231 231  ====== __Default & confirm__ ======
232 232  
233 233  {{html wiki="true" clean="false"}}
... ... @@ -244,6 +244,8 @@
244 244  </div></div>
245 245  {{/html}}
246 246  
253 +{{id name="UPDATE_CONFIRM"/}}
254 +
247 247  ====== __Update & confirm__ ======
248 248  
249 249  {{html wiki="true" clean="false"}}
... ... @@ -260,6 +260,8 @@
260 260  </div></div>
261 261  {{/html}}
262 262  
271 +{{id name="CONFIRM"/}}
272 +
263 263  ====== __Confirm__ ======
264 264  
265 265  {{html wiki="true" clean="false"}}
... ... @@ -272,6 +272,8 @@
272 272  </div></div>
273 273  {{/html}}
274 274  
285 +{{id name="CHANGE_RC"/}}
286 +
275 275  ====== __Configure RC Mode (**CRC**)__ ======
276 276  
277 277  {{html wiki="true" clean="false"}}
... ... @@ -291,6 +291,8 @@
291 291  </div></div>
292 292  {{/html}}
293 293  
306 +{{id name="ID"/}}
307 +
294 294  ====== __Identification Number (**ID**)__ ======
295 295  
296 296  {{html wiki="true" clean="false"}}
... ... @@ -311,11 +311,13 @@
311 311  </div></div>
312 312  {{/html}}
313 313  
328 +{{id name="BAUDRATE"/}}
329 +
314 314  ====== __Baud Rate__ ======
315 315  
316 -{{html clean="false" wiki="true"}}
332 +{{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.0 kbps, 921.6 kbps. Servos are shipped with a baud rate set to 115200.<div class="wikimodel-emptyline"></div>
334 +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,28 +333,12 @@
333 333  </div></div>
334 334  {{/html}}
335 335  
336 -====== __Automatic Baud Rate__ ======
352 +{{id name="MOTION"/}}
337 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 -Ex: #5QABR&lt;cr&gt; might return *5ABR0&lt;cr&gt;<div class="wikimodel-emptyline"></div>
345 -
346 -Enable Baud Rate (**ABR**)<div class="wikimodel-emptyline"></div>
347 -
348 -Ex: #5QABR1&lt;cr&gt;<div class="wikimodel-emptyline"></div>
349 -Enable baudrate detection on first byte received after power-up.<div class="wikimodel-emptyline"></div>
350 -
351 -Ex: #5QABR2,30&lt;cr&gt;<div class="wikimodel-emptyline"></div>
352 -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>
353 -</div></div>
354 -{{/html}}
355 -
356 356  == Motion ==
357 357  
356 +{{id name="POSITION_D"/}}
357 +
358 358  ====== __Position in Degrees (**D**)__ ======
359 359  
360 360  {{html wiki="true" clean="false"}}
... ... @@ -380,6 +380,8 @@
380 380  <div class="wikimodel-emptyline"></div></div></div>
381 381  {{/html}}
382 382  
383 +{{id name="MOVE_D"/}}
384 +
383 383  ====== __(Relative) Move in Degrees (**MD**)__ ======
384 384  
385 385  {{html wiki="true" clean="false"}}
... ... @@ -390,6 +390,8 @@
390 390  <div class="wikimodel-emptyline"></div></div></div>
391 391  {{/html}}
392 392  
395 +{{id name="WHEEL_D"/}}
396 +
393 393  ====== __Wheel Mode in Degrees (**WD**)__ ======
394 394  
395 395  {{html wiki="true" clean="false"}}
... ... @@ -406,6 +406,8 @@
406 406  <div class="wikimodel-emptyline"></div></div></div>
407 407  {{/html}}
408 408  
413 +{{id name="WHEEL_RPM"/}}
414 +
409 409  ====== __Wheel Mode in RPM (**WR**)__ ======
410 410  
411 411  {{html wiki="true" clean="false"}}
... ... @@ -422,6 +422,8 @@
422 422  <div class="wikimodel-emptyline"></div></div></div>
423 423  {{/html}}
424 424  
431 +{{id name="POSITION_PWM"/}}
432 +
425 425  ====== __Position in PWM (**P**)__ ======
426 426  
427 427  {{html wiki="true" clean="false"}}
... ... @@ -439,6 +439,8 @@
439 439  <div class="wikimodel-emptyline"></div></div></div>
440 440  {{/html}}
441 441  
450 +{{id name="MOVE_PWM"/}}
451 +
442 442  ====== __(Relative) Move in PWM (**M**)__ ======
443 443  
444 444  {{html wiki="true" clean="false"}}
... ... @@ -449,6 +449,8 @@
449 449  <div class="wikimodel-emptyline"></div></div></div>
450 450  {{/html}}
451 451  
462 +{{id name="MOVE_RAW"/}}
463 +
452 452  ====== __Raw Duty-cycle Move (**RDM**)__ ======
453 453  
454 454  {{html wiki="true" clean="false"}}
... ... @@ -467,6 +467,8 @@
467 467  <div class="wikimodel-emptyline"></div></div></div>
468 468  {{/html}}
469 469  
482 +{{id name="QUERY_STATUS"/}}
483 +
470 470  ====== __Query Status (**Q**)__ ======
471 471  
472 472  {{html wiki="true" clean="false"}}
... ... @@ -484,7 +484,7 @@
484 484  | |ex: *5Q3<cr>|3: Accelerating|Increasing speed from rest (or previous speed) towards travel speed
485 485  | |ex: *5Q4<cr>|4: Traveling|Moving at a stable speed
486 486  | |ex: *5Q5<cr>|5: Decelerating|Decreasing from travel speed towards final position.
487 -| |ex: *5Q6<cr>|6: Holding|Keeping current position (in EM0 mode, return will nornally be holding)
501 +| |ex: *5Q6<cr>|6: Holding|Keeping current position
488 488  | |ex: *5Q7<cr>|7: Outside limits|{More details coming soon}
489 489  | |ex: *5Q8<cr>|8: Stuck|Motor cannot perform request movement at current speed setting
490 490  | |ex: *5Q9<cr>|9: Blocked|Similar to stuck, but the motor is at maximum duty and still cannot move (i.e.: stalled)
... ... @@ -506,6 +506,8 @@
506 506  | |ex: *5Q2<cr>|Input voltage detected is below or above acceptable range|Check the voltage of your batteries or power source
507 507  | |ex: *5Q3<cr>|Temperature limit has been reached|The servo is too hot to continue operating safely.
508 508  
523 +{{id name="LIMP"/}}
524 +
509 509  ====== __Limp (**L**)__ ======
510 510  
511 511  {{html wiki="true" clean="false"}}
... ... @@ -516,6 +516,8 @@
516 516  <div class="wikimodel-emptyline"></div></div></div>
517 517  {{/html}}
518 518  
535 +{{id name="HALT_HOLD"/}}
536 +
519 519  ====== __Halt & Hold (**H**)__ ======
520 520  
521 521  {{html wiki="true" clean="false"}}
... ... @@ -526,24 +526,24 @@
526 526  <div class="wikimodel-emptyline"></div></div></div>
527 527  {{/html}}
528 528  
547 +{{id name="MOTION_SETUP"/}}
548 +
529 529  == Motion Setup ==
530 530  
551 +{{id name="MOTION_PROFILE"/}}
552 +
531 531  ====== __Enable Motion Profile (**EM**)__ ======
532 532  
533 -{{html clean="false" wiki="true"}}
555 +{{html wiki="true" clean="false"}}
534 534  <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt">
535 -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>
536 -
537 537  Ex: #5EM1&lt;cr&gt;<div class="wikimodel-emptyline"></div>
538 538  
539 -This command enables a trapezoidal motion profile for servo #5 <div class="wikimodel-emptyline"></div>
559 +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>
540 540  
541 541  Ex: #5EM0&lt;cr&gt;<div class="wikimodel-emptyline"></div>
542 542  
543 -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).
563 +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>
544 544  
545 -<div class="wikimodel-emptyline"></div>
546 -
547 547  Query Motion Profile (**QEM**)<div class="wikimodel-emptyline"></div>
548 548  
549 549  Ex: #5QEM&lt;cr&gt; might return *5QEM1&lt;cr&gt;<div class="wikimodel-emptyline"></div>
... ... @@ -558,12 +558,12 @@
558 558  <div class="wikimodel-emptyline"></div></div></div>
559 559  {{/html}}
560 560  
579 +{{id name="FILTER_POSITION_COUNT"/}}
580 +
561 561  ====== __Filter Position Count (**FPC**)__ ======
562 562  
563 -{{html clean="false" wiki="true"}}
583 +{{html wiki="true" clean="false"}}
564 564  <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt">
565 -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.
566 -<div class="wikimodel-emptyline"></div>
567 567  Ex: #5FPC10&lt;cr&gt;<div class="wikimodel-emptyline"></div>
568 568  This command allows the user to change the Filter Position Count value for that session. <div class="wikimodel-emptyline"></div>
569 569  
... ... @@ -581,6 +581,8 @@
581 581  <div class="wikimodel-emptyline"></div></div></div>
582 582  {{/html}}
583 583  
602 +{{id name="ORIGIN_OFFSET"/}}
603 +
584 584  ====== __Origin Offset (**O**)__ ======
585 585  
586 586  {{html wiki="true" clean="false"}}
... ... @@ -609,6 +609,8 @@
609 609  <div class="wikimodel-emptyline"></div></div></div>
610 610  {{/html}}
611 611  
632 +{{id name="ANGULAR_RANGE"/}}
633 +
612 612  ====== __Angular Range (**AR**)__ ======
613 613  
614 614  {{html wiki="true" clean="false"}}
... ... @@ -637,6 +637,8 @@
637 637  <div class="wikimodel-emptyline"></div></div></div>
638 638  {{/html}}
639 639  
662 +{{id name="ANGULAR_STIFFNESS"/}}
663 +
640 640  ====== __Angular Stiffness (**AS**)__ ======
641 641  
642 642  {{html wiki="true" clean="false"}}
... ... @@ -669,6 +669,8 @@
669 669  <div class="wikimodel-emptyline"></div></div></div>
670 670  {{/html}}
671 671  
696 +{{id name="ANGULAR_HOLDING_STIFFNESS"/}}
697 +
672 672  ====== __Angular Holding Stiffness (**AH**)__ ======
673 673  
674 674  {{html wiki="true" clean="false"}}
... ... @@ -693,6 +693,8 @@
693 693  <div class="wikimodel-emptyline"></div></div></div>
694 694  {{/html}}
695 695  
722 +{{id name="ANGULAR_ACCELERATION"/}}
723 +
696 696  ====== __Angular Acceleration (**AA**)__ ======
697 697  
698 698  {{html wiki="true" clean="false"}}
... ... @@ -717,6 +717,8 @@
717 717  <div class="wikimodel-emptyline"></div></div></div>
718 718  {{/html}}
719 719  
748 +{{id name="ANGULAR_DECELERATION"/}}
749 +
720 720  ====== __Angular Deceleration (**AD**)__ ======
721 721  
722 722  {{html wiki="true" clean="false"}}
... ... @@ -741,6 +741,8 @@
741 741  <div class="wikimodel-emptyline"></div></div></div>
742 742  {{/html}}
743 743  
774 +{{id name="GYRE_DIRECTION"/}}
775 +
744 744  ====== __Gyre Direction (**G**)__ ======
745 745  
746 746  {{html wiki="true" clean="false"}}
... ... @@ -765,6 +765,8 @@
765 765  <div class="wikimodel-emptyline"></div></div></div>
766 766  {{/html}}
767 767  
800 +{{id name="FIRST_POSITION"/}}
801 +
768 768  ====== __First Position__ ======
769 769  
770 770  {{html wiki="true" clean="false"}}
... ... @@ -785,6 +785,8 @@
785 785  <div class="wikimodel-emptyline"></div></div></div>
786 786  {{/html}}
787 787  
822 +{{id name="MAXIMUM_RAW"/}}
823 +
788 788  ====== __Maximum Motor Duty (**MMD**)__ ======
789 789  
790 790  {{html wiki="true" clean="false"}}
... ... @@ -799,10 +799,12 @@
799 799  
800 800  Ex: #5QMMDD&lt;cr&gt; might return *5QMMD512&lt;cr&gt; <div class="wikimodel-emptyline"></div>
801 801  
802 -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.
838 +This configuration command means the servo, when set to smart mode, will immediately move to 90.0 degrees upon power up. Sending a CFD command without a number (Ex. #5CFD&lt;cr&gt;) results in the servo remaining limp upon power up. In order to remove the first position, send no value, ex: #5CFD&lt;cr&gt;
803 803  <div class="wikimodel-emptyline"></div></div></div>
804 804  {{/html}}
805 805  
842 +{{id name="MAXIMUM_SPEED_D"/}}
843 +
806 806  ====== __Maximum Speed in Degrees (**SD**)__ ======
807 807  
808 808  {{html wiki="true" clean="false"}}
... ... @@ -829,6 +829,8 @@
829 829  </div></div>
830 830  {{/html}}
831 831  
870 +{{id name="MAXIMUM_SPEED_RPM"/}}
871 +
832 832  ====== __Maximum Speed in RPM (**SR**)__ ======
833 833  
834 834  {{html wiki="true" clean="false"}}
... ... @@ -855,16 +855,20 @@
855 855  </div></div>
856 856  {{/html}}
857 857  
898 +{{id name="MODIFIERS"/}}
899 +
858 858  == Modifiers ==
859 859  
902 +{{id name="SPEEDS"/}}
903 +
860 860  ====== __Speed (**S**, **SD**) modifier__ ======
861 861  
862 -{{html clean="false" wiki="true"}}
906 +{{html wiki="true" clean="false"}}
863 863  <div class="cmdcnt"><div class="cmdpad"></div><div class="cmdtxt">
864 864  Example: #5P1500S750&lt;cr&gt;<div class="wikimodel-emptyline"></div>
865 865  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>
866 866  Example: #5D0SD180&lt;cr&gt;<div class="wikimodel-emptyline"></div>
867 -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>
911 +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>
868 868  Query Speed (**QS**)<div class="wikimodel-emptyline"></div>
869 869  Example: #5QS&lt;cr&gt; might return *5QS300&lt;cr&gt;<div class="wikimodel-emptyline"></div>
870 870  This command queries the current speed in microseconds per second.<div class="wikimodel-emptyline"></div>
... ... @@ -871,6 +871,8 @@
871 871  </div></div>
872 872  {{/html}}
873 873  
918 +{{id name="TIMED_MOVE"/}}
919 +
874 874  ====== __Timed move (**T**) modifier__ ======
875 875  
876 876  {{html wiki="true" clean="false"}}
... ... @@ -882,6 +882,8 @@
882 882  </div></div>
883 883  {{/html}}
884 884  
931 +{{id name="CURRENT_HOLD"/}}
932 +
885 885  ====== __Current Halt & Hold (**CH**) modifier__ ======
886 886  
887 887  {{html wiki="true" clean="false"}}
... ... @@ -893,6 +893,8 @@
893 893  </div></div>
894 894  {{/html}}
895 895  
944 +{{id name="CURRENT_LIMP"/}}
945 +
896 896  ====== __Current Limp (**CL**) modifier__ ======
897 897  
898 898  {{html wiki="true" clean="false"}}
... ... @@ -904,8 +904,12 @@
904 904  </div></div>
905 905  {{/html}}
906 906  
957 +{{id name="TELEMETRY"/}}
958 +
907 907  == Telemetry ==
908 908  
961 +{{id name="QUERY_VOLTAGE"/}}
962 +
909 909  ====== __Query Voltage (**QV**)__ ======
910 910  
911 911  {{html wiki="true" clean="false"}}
... ... @@ -915,6 +915,8 @@
915 915  </div></div>
916 916  {{/html}}
917 917  
972 +{{id name="QUERY_TEMP"/}}
973 +
918 918  ====== __Query Temperature (**QT**)__ ======
919 919  
920 920  {{html wiki="true" clean="false"}}
... ... @@ -924,6 +924,8 @@
924 924  </div></div>
925 925  {{/html}}
926 926  
983 +{{id name="QUERY_CURRENT"/}}
984 +
927 927  ====== __Query Current (**QC**)__ ======
928 928  
929 929  {{html wiki="true" clean="false"}}
... ... @@ -933,6 +933,8 @@
933 933  </div></div>
934 934  {{/html}}
935 935  
994 +{{id name="QUERY_MODEL"/}}
995 +
936 936  ====== __Query Model String (**QMS**)__ ======
937 937  
938 938  {{html wiki="true" clean="false"}}
... ... @@ -942,6 +942,8 @@
942 942  </div></div>
943 943  {{/html}}
944 944  
1005 +{{id name="QUERY_FIRMWARE"/}}
1006 +
945 945  ====== __Query Firmware (**QF**)__ ======
946 946  
947 947  {{html wiki="true" clean="false"}}
... ... @@ -952,6 +952,8 @@
952 952  </div></div>
953 953  {{/html}}
954 954  
1017 +{{id name="QUERY_SERIAL"/}}
1018 +
955 955  ====== __Query Serial Number (**QN**)__ ======
956 956  
957 957  {{html wiki="true" clean="false"}}
... ... @@ -961,8 +961,12 @@
961 961  </div></div>
962 962  {{/html}}
963 963  
1028 +{{id name="RGB_LED"/}}
1029 +
964 964  == RGB LED ==
965 965  
1032 +{{id name="LED_COLOR"/}}
1033 +
966 966  ====== __LED Color (**LED**)__ ======
967 967  
968 968  {{html wiki="true" clean="false"}}
... ... @@ -979,6 +979,8 @@
979 979  </div></div>
980 980  {{/html}}
981 981  
1050 +{{id name="LED_BLINK"/}}
1051 +
982 982  ====== __Configure LED Blinking (**CLB**)__ ======
983 983  
984 984  {{html wiki="true" clean="false"}}
Copyright RobotShop 2018