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

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

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -LSS-P - Communication Protocol
1 +LSS-PRO Communication Protocol
Parent
... ... @@ -1,1 +1,1 @@
1 -lynxmotion-smart-servo-pro.WebHome
1 +ses-pro.lss-pro.WebHome
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.CBenson
1 +xwiki:XWiki.ENantel
Hidden
... ... @@ -1,1 +1,1 @@
1 -true
1 +false
Content
... ... @@ -1,7 +5,3 @@
1 -{{warningBox warningText="More information coming soon"/}}
2 -
3 -
4 -
5 5  (% class="wikigeneratedid" id="HTableofContents" %)
6 6  **Page Contents**
7 7  
... ... @@ -95,7 +95,7 @@
95 95  
96 96  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).
97 97  
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"]]
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"]]
99 99  
100 100  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:
101 101  
... ... @@ -292,7 +292,11 @@
292 292  
293 293  == Motion ==
294 294  
295 -====== __Position in Degrees (**D**)__ ======
291 +|(% colspan="2" %)(((
292 +====== __Position in Degrees__ ======
293 +)))
294 +|(% style="width:30px" %) |(((
295 +Position in Degrees (**D**)
296 296  
297 297  Example: #5D1456<cr>
298 298  
... ... @@ -311,15 +311,24 @@
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 +)))
314 314  
315 -====== __(Relative) Move in Degrees (**MD**)__ ======
316 +|(% colspan="2" %)(((
317 +====== __(Relative) Move in Degrees__ ======
318 +)))
319 +|(% style="width:30px" %) |(((
320 +Move in Degrees (**MD**)
316 316  
317 -
318 318  Example: #5MD123<cr>
319 319  
320 320  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 +)))
321 321  
322 -====== __Wheel Mode in Degrees (**WD**)__ ======
327 +|(% colspan="2" %)(((
328 +====== __Wheel Mode in Degrees__ ======
329 +)))
330 +|(% style="width:30px" %) |(((
331 +Wheel mode in Degrees (**WD**)
323 323  
324 324  Ex: #5WD90<cr>
325 325  
... ... @@ -330,8 +330,13 @@
330 330  Ex: #5QWD<cr> might return *5QWD90<cr>
331 331  
332 332  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 +)))
333 333  
334 -====== __Wheel Mode in RPM (**WR**)__ ======
344 +|(% colspan="2" %)(((
345 +====== __Wheel Mode in RPM__ ======
346 +)))
347 +|(% style="width:30px" %) |(((
348 +Wheel moed in RPM (**WR**)
335 335  
336 336  Ex: #5WR40<cr>
337 337  
... ... @@ -342,8 +342,14 @@
342 342  Ex: #5QWR<cr> might return *5QWR40<cr>
343 343  
344 344  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 +)))
345 345  
346 -====== __(Relative) Move in Degrees (**MD**)__ ======
361 +|(% colspan="2" %)(((
362 +====== __(Relative) Move in Degrees__ ======
363 +)))
364 +|(% style="width:30px" %) |(((
365 +(% class="wikigeneratedid" %)
366 +Move in Degrees (**MD**)
347 347  
348 348  (% class="wikigeneratedid" id="HExample:235M15003Ccr3E" %)
349 349  Example: #5M1500<cr>
... ... @@ -350,8 +350,13 @@
350 350  
351 351  (% class="wikigeneratedid" id="HTherelativemoveinPWMcommandcausestheservotoreaditscurrentpositionandmovebythespecifiednumberofPWMsignal.ForexampleiftheservoissettorotateCW28default29andanMcommandof1500issenttotheservo2Citwillcausetheservotorotateclockwiseby90degrees.NegativePWMvaluewouldcausetheservotorotateintheoppositeconfigureddirection." %)
352 352  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 +)))
353 353  
354 -====== __Query Status (**Q**)__ ======
375 +|(% colspan="2" %)(((
376 +====== __Query Status__ ======
377 +)))
378 +|(% style="width:30px" %) |(((
379 +Query Status (**Q**)
355 355  
356 356  The status query describes what the servo is currently doing. The query returns an integer which must be looked up in the table below.
357 357  
... ... @@ -364,7 +364,7 @@
364 364  | |ex: *5Q3<cr>|3: Accelerating|Increasing speed from rest (or previous speed) towards travel speed
365 365  | |ex: *5Q4<cr>|4: Traveling|Moving at a stable speed
366 366  | |ex: *5Q5<cr>|5: Decelerating|Decreasing from travel speed towards final position.
367 -| |ex: *5Q6<cr>|6: Holding|Keeping current position (in EM0 mode, return will nornally be holding)
392 +| |ex: *5Q6<cr>|6: Holding|Keeping current position (in EM0 mode, return will normally be holding)
368 368  | |ex: *5Q7<cr>|7: Outside limits|{More details coming soon}
369 369  | |ex: *5Q8<cr>|8: Stuck|Motor cannot perform request movement at current speed setting
370 370  | |ex: *5Q9<cr>|9: Blocked|Similar to stuck, but the motor is at maximum duty and still cannot move (i.e.: stalled)
... ... @@ -381,18 +381,29 @@
381 381  | |ex: *5Q1<cr>|Current limit has been passed|Something cause the current to either spike, or remain too high for too long
382 382  | |ex: *5Q2<cr>|Input voltage detected is below or above acceptable range|Check the voltage of your batteries or power source
383 383  | |ex: *5Q3<cr>|Temperature limit has been reached|The servo is too hot to continue operating safely.
409 +)))
384 384  
385 -====== __Limp (**L**)__ ======
411 +|(% colspan="2" %)(((
412 +====== __Limp__ ======
413 +)))
414 +|(% style="width:30px" %) |(((
415 +Limp (**L**)
386 386  
387 387  Example: #5L<cr>
388 388  
389 389  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 +)))
390 390  
391 -====== __Halt & Hold (**H**)__ ======
422 +|(% colspan="2" %)(((
423 +====== __Halt & Hold__ ======
424 +)))
425 +|(% style="width:30px" %) |(((
426 +Halt & Hold (**H**)
392 392  
393 393  Example: #5H<cr>
394 394  
395 395  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 +)))
396 396  
397 397  == Motion Setup ==
398 398  
... ... @@ -400,12 +400,12 @@
400 400  
401 401  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).
402 402  
403 -[[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"]]
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"]]
404 404  
405 405  
406 406  In the second image, the origin, and the corresponding angular range (explained below) have been shifted by +240.0 degrees:
407 407  
408 -[[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"]]
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"]]
409 409  
410 410  
411 411  Origin Offset Query (**QO**)
... ... @@ -426,16 +426,16 @@
426 426  
427 427  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:
428 428  
429 -[[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"]]
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"]]
430 430  
431 431  Below, the angular range is restricted to 180.0 degrees, or -90.0 to +90.0. The center has remained unchanged.
432 432  
433 -[[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"]]
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"]]
434 434  
435 435  
436 436  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:
437 437  
438 -[[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"]]
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"]]
439 439  
440 440  
441 441  Query Angular Range (**QAR**)
Copyright RobotShop 2018