Last modified by Eric Nantel on 2024/09/06 14:52

From version < 75.1 >
edited by Eric Nantel
on 2024/07/22 11:15
To version < 60.1 >
edited by Coleman Benson
on 2023/07/27 14:47
< >
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -LSS-PRO Communication Protocol
1 +LSS-P - Communication Protocol
Parent
... ... @@ -1,1 +1,1 @@
1 -ses-pro.lss-pro.WebHome
1 +lynxmotion-smart-servo-pro.WebHome
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.ENantel
1 +xwiki:XWiki.CBenson
Hidden
... ... @@ -1,1 +1,1 @@
1 -false
1 +true
Content
... ... @@ -1,3 +1,7 @@
1 +{{warningBox warningText="More information coming soon"/}}
2 +
3 +
4 +
1 1  (% class="wikigeneratedid" id="HTableofContents" %)
2 2  **Page Contents**
3 3  
... ... @@ -91,7 +91,7 @@
91 91  
92 92  The ability to store a "virtual angular position" is a feature which allows for rotation beyond 360 degrees, permitting multiple rotations of the output horn, moving the center position and more. The "absolute position" would be the angle of the output shaft with respect to a 360.00 degree circle and can be obtained by taking the modulus (with respect to 360 degrees) of the value. For example if the virtual position is reported as 153350 (or 1533.50 degrees), taking the modulus would give 93.5 degrees (36000 * 4 + 9350 = 153350) as the absolute position (assuming no origin offset).
93 93  
94 -[[image:https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/ses-pro/lss-pro/lss-p-communication-protocol/WebHome/LSS-servo-positions.jpg||alt="LSS-servo-positions.jpg"]]
98 +[[image:https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/lynxmotion-smart-servo-pro/lss-p-communication-protocol/WebHome/LSS-servo-positions.jpg||alt="LSS-servo-positions.jpg"]]
95 95  
96 96  In this example, the gyre direction (explained below, a.k.a. "rotation direction") is positive (clockwise), and origin offset has not been modified. Each square represents 30 degrees. The following command is sent:
97 97  
... ... @@ -231,11 +231,9 @@
231 231  )))
232 232  
233 233  |(% colspan="2" %)(((
234 -====== (% style="color:inherit; font-family:inherit" %)__ID Number__(%%) ======
238 +====== (% style="color:inherit; font-family:inherit" %)__ID Number (**ID**)__(%%) ======
235 235  )))
236 236  |(% style="width:30px" %) |(((
237 -This assigns ID #5 to the servo previously assigned to ID 0
238 -
239 239  (% style="color:inherit; font-family:inherit" %)Configure ID Number (**CID**)
240 240  
241 241  (% style="color:inherit; font-family:inherit" %)Ex: #0CID5<cr>
... ... @@ -250,7 +250,7 @@
250 250  )))
251 251  
252 252  |(% colspan="2" %)(((
253 -====== (% style="color:inherit; font-family:inherit" %)__Enable CAN Terminal Resistor__(%%) ======
255 +====== (% style="color:inherit; font-family:inherit" %)__Enable CAN Terminal Resistor (**ET**)__(%%) ======
254 254  )))
255 255  |(% style="width:30px" %) |(((
256 256  Query Enable CAN Terminal Resistor (**QET**)
... ... @@ -267,7 +267,7 @@
267 267  )))
268 268  
269 269  |(% colspan="2" %)(((
270 -====== __USB Connection Status__ ======
272 +====== __USB Connection Status (**UC**)__ ======
271 271  )))
272 272  |(% style="width:30px" %) |(((
273 273  Query USB Connection Status (**QUC**)
... ... @@ -276,7 +276,7 @@
276 276  )))
277 277  
278 278  |(% colspan="2" %)(((
279 -====== __Firmware Release__ ======
281 +====== __Firmware Release (**FR**)__ ======
280 280  )))
281 281  |(% style="width:30px" %) |(((
282 282  Query Firmware Release (**QFR**)
... ... @@ -288,11 +288,7 @@
288 288  
289 289  == Motion ==
290 290  
291 -|(% colspan="2" %)(((
292 -====== __Position in Degrees__ ======
293 -)))
294 -|(% style="width:30px" %) |(((
295 -Position in Degrees (**D**)
293 +====== __Position in Degrees (**D**)__ ======
296 296  
297 297  Example: #5D1456<cr>
298 298  
... ... @@ -311,24 +311,15 @@
311 311  Ex: #5QDT<cr> might return *5QDT6783<cr>
312 312  
313 313  The query target position command returns the target virtual position during and after an action which results in a rotation of the servo horn. In the example above, the servo is rotating to a virtual position of 678.3 degrees. Should the servo not have a target position or be in wheel mode, it will respond with the last target position used.
314 -)))
315 315  
316 -|(% colspan="2" %)(((
317 -====== __(Relative) Move in Degrees__ ======
318 -)))
319 -|(% style="width:30px" %) |(((
320 -Move in Degrees (**MD**)
313 +====== __(Relative) Move in Degrees (**MD**)__ ======
321 321  
315 +
322 322  Example: #5MD123<cr>
323 323  
324 324  The relative move command causes the servo to read its current position and move the specified number of tenths of degrees in the corresponding position. For example if the servo is set to rotate CW (default) and an MD command of 123 is sent to the servo, it will cause the servo to rotate clockwise by 12.3 degrees. Negative commands would cause the servo to rotate in the opposite configured direction.
325 -)))
326 326  
327 -|(% colspan="2" %)(((
328 -====== __Wheel Mode in Degrees__ ======
329 -)))
330 -|(% style="width:30px" %) |(((
331 -Wheel mode in Degrees (**WD**)
320 +====== __Wheel Mode in Degrees (**WD**)__ ======
332 332  
333 333  Ex: #5WD90<cr>
334 334  
... ... @@ -339,13 +339,8 @@
339 339  Ex: #5QWD<cr> might return *5QWD90<cr>
340 340  
341 341  The servo replies with the angular speed in degrees per second. A negative sign would indicate the opposite direction (for factory default a negative value would be counter clockwise).
342 -)))
343 343  
344 -|(% colspan="2" %)(((
345 -====== __Wheel Mode in RPM__ ======
346 -)))
347 -|(% style="width:30px" %) |(((
348 -Wheel moed in RPM (**WR**)
332 +====== __Wheel Mode in RPM (**WR**)__ ======
349 349  
350 350  Ex: #5WR40<cr>
351 351  
... ... @@ -356,14 +356,8 @@
356 356  Ex: #5QWR<cr> might return *5QWR40<cr>
357 357  
358 358  The servo replies with the angular speed in rpm. A negative sign would indicate the opposite direction (for factory default a negative value would be counter clockwise).
359 -)))
360 360  
361 -|(% colspan="2" %)(((
362 -====== __(Relative) Move in Degrees__ ======
363 -)))
364 -|(% style="width:30px" %) |(((
365 -(% class="wikigeneratedid" %)
366 -Move in Degrees (**MD**)
344 +====== __(Relative) Move in Degrees (**MD**)__ ======
367 367  
368 368  (% class="wikigeneratedid" id="HExample:235M15003Ccr3E" %)
369 369  Example: #5M1500<cr>
... ... @@ -370,13 +370,8 @@
370 370  
371 371  (% class="wikigeneratedid" id="HTherelativemoveinPWMcommandcausestheservotoreaditscurrentpositionandmovebythespecifiednumberofPWMsignal.ForexampleiftheservoissettorotateCW28default29andanMcommandof1500issenttotheservo2Citwillcausetheservotorotateclockwiseby90degrees.NegativePWMvaluewouldcausetheservotorotateintheoppositeconfigureddirection." %)
372 372  The relative move in PWM command causes the servo to read its current position and move by the specified number of PWM signal. For example if the servo is set to rotate CW (default) and an M command of 1500 is sent to the servo, it will cause the servo to rotate clockwise by 90 degrees. Negative PWM value would cause the servo to rotate in the opposite configured direction.
373 -)))
374 374  
375 -|(% colspan="2" %)(((
376 -====== __Query Status__ ======
377 -)))
378 -|(% style="width:30px" %) |(((
379 -Query Status (**Q**)
352 +====== __Query Status (**Q**)__ ======
380 380  
381 381  The status query describes what the servo is currently doing. The query returns an integer which must be looked up in the table below.
382 382  
... ... @@ -389,7 +389,7 @@
389 389  | |ex: *5Q3<cr>|3: Accelerating|Increasing speed from rest (or previous speed) towards travel speed
390 390  | |ex: *5Q4<cr>|4: Traveling|Moving at a stable speed
391 391  | |ex: *5Q5<cr>|5: Decelerating|Decreasing from travel speed towards final position.
392 -| |ex: *5Q6<cr>|6: Holding|Keeping current position (in EM0 mode, return will normally be holding)
365 +| |ex: *5Q6<cr>|6: Holding|Keeping current position (in EM0 mode, return will nornally be holding)
393 393  | |ex: *5Q7<cr>|7: Outside limits|{More details coming soon}
394 394  | |ex: *5Q8<cr>|8: Stuck|Motor cannot perform request movement at current speed setting
395 395  | |ex: *5Q9<cr>|9: Blocked|Similar to stuck, but the motor is at maximum duty and still cannot move (i.e.: stalled)
... ... @@ -406,29 +406,18 @@
406 406  | |ex: *5Q1<cr>|Current limit has been passed|Something cause the current to either spike, or remain too high for too long
407 407  | |ex: *5Q2<cr>|Input voltage detected is below or above acceptable range|Check the voltage of your batteries or power source
408 408  | |ex: *5Q3<cr>|Temperature limit has been reached|The servo is too hot to continue operating safely.
409 -)))
410 410  
411 -|(% colspan="2" %)(((
412 -====== __Limp__ ======
413 -)))
414 -|(% style="width:30px" %) |(((
415 -Limp (**L**)
383 +====== __Limp (**L**)__ ======
416 416  
417 417  Example: #5L<cr>
418 418  
419 419  This action causes the servo to go "limp". The microcontroller will still be powered, but the motor will not. As an emergency safety feature, should the robot not be doing what it is supposed to or risks damage, use the broadcast ID to set all servos limp #254L<cr>.
420 -)))
421 421  
422 -|(% colspan="2" %)(((
423 -====== __Halt & Hold__ ======
424 -)))
425 -|(% style="width:30px" %) |(((
426 -Halt & Hold (**H**)
389 +====== __Halt & Hold (**H**)__ ======
427 427  
428 428  Example: #5H<cr>
429 429  
430 430  This command causes the servo to stop immediately and hold that angular position. It overrides whatever the servo might be doing at the time the command is received (accelerating, travelling, deccelerating, etc.)
431 -)))
432 432  
433 433  == Motion Setup ==
434 434  
... ... @@ -436,12 +436,12 @@
436 436  
437 437  Example: #5O2400<cr>This command allows you to change the origin of the servo in relation to the factory zero position for that session. As with all action commands, the setting will be lost upon servo reset / power cycle. Origin offset commands are not cumulative and always relate to factory zero. In the first image, the origin at factory offset '0' (centered).
438 438  
439 -[[image:https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/ses-pro/lss-pro/lss-p-communication-protocol/WebHome/LSS-servo-default.jpg||alt="LSS-servo-default.jpg"]]
401 +[[image:https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/lynxmotion-smart-servo-pro/lss-p-communication-protocol/WebHome/LSS-servo-default.jpg||alt="LSS-servo-default.jpg"]]
440 440  
441 441  
442 442  In the second image, the origin, and the corresponding angular range (explained below) have been shifted by +240.0 degrees:
443 443  
444 -[[image:https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/ses-pro/lss-pro/lss-p-communication-protocol/WebHome/LSS-servo-origin.jpg||alt="LSS-servo-origin.jpg"]]
406 +[[image:https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/lynxmotion-smart-servo-pro/lss-p-communication-protocol/WebHome/LSS-servo-origin.jpg||alt="LSS-servo-origin.jpg"]]
445 445  
446 446  
447 447  Origin Offset Query (**QO**)
... ... @@ -462,16 +462,16 @@
462 462  
463 463  This command allows you to temporarily change the total angular range of the servo in tenths of degrees. This applies to the Position in Pulse (P) command and RC mode. The default for (P) and RC mode is 1800 (180.0 degrees total, or ±90.0 degrees). The image below shows a standard -180.0 to +180.0 range, with no offset:
464 464  
465 -[[image:https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/ses-pro/lss-pro/lss-p-communication-protocol/WebHome/LSS-servo-default.jpg||alt="LSS-servo-default.jpg"]]
427 +[[image:https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/lynxmotion-smart-servo-pro/lss-p-communication-protocol/WebHome/LSS-servo-default.jpg||alt="LSS-servo-default.jpg"]]
466 466  
467 467  Below, the angular range is restricted to 180.0 degrees, or -90.0 to +90.0. The center has remained unchanged.
468 468  
469 -[[image:https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/ses-pro/lss-pro/lss-p-communication-protocol/WebHome/LSS-servo-ar.jpg||alt="LSS-servo-ar.jpg"]]
431 +[[image:https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/lynxmotion-smart-servo-pro/lss-p-communication-protocol/WebHome/LSS-servo-ar.jpg||alt="LSS-servo-ar.jpg"]]
470 470  
471 471  
472 472  Finally, the angular range action command (ex. #5AR1800<cr>) and origin offset action command (ex. #5O-1200<cr>) are used to move both the center and limit the angular range:
473 473  
474 -[[image:https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/ses-pro/lss-pro/lss-p-communication-protocol/WebHome/LSS-servo-ar-o-1.jpg||alt="LSS-servo-ar-o-1.jpg"]]
436 +[[image:https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/lynxmotion-smart-servo-pro/lss-p-communication-protocol/WebHome/LSS-servo-ar-o-1.jpg||alt="LSS-servo-ar-o-1.jpg"]]
475 475  
476 476  
477 477  Query Angular Range (**QAR**)

Recently Visited

Copyright RobotShop 2018