Changes for page LSS Firmware
Last modified by Eric Nantel on 2024/11/21 07:18
Change comment: Update document after refactoring.
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -LSS Firmware 1 +LSS - Firmware - Content
-
... ... @@ -1,3 +1,6 @@ 1 +(% class="wikigeneratedid" id="HTableofContents" %) 2 +**Page Contents** 3 + 1 1 {{toc depth="3"/}} 2 2 3 3 = Firmware Versions = ... ... @@ -4,116 +4,93 @@ 4 4 5 5 This section contains details about official firmware releases for the the Lynxmotion Smart Servos (LSS). Information includes release date (yyyy-mm-dd), and which new features / fixes / etc. were included. It also provides and any details about known issues or other warnings. If you are unsure how to proceed to update your LSS, please see [[this guide>>doc:ses-v2.lynxmotion-smart-servo.lss-configuration-software.lss-config-firmware-update.WebHome]]. 6 6 7 -|(% colspan="2" %)((( 8 -== Version 370 == 9 -))) 10 -| |Released 2021-09-20 11 -|(% style="width:25px" %) |((( 12 -**Fixes** 10 +== Version 367 == 13 13 14 -* Increase in supported baud rates up to 921k (adds 500k, 750k, 921.6k) 15 -* Fixed memory leak in MMD command 16 -* General firmware cleanup & improvements 17 -))) 18 -|(% style="width:25px" %) |((( 19 -**New features** 12 +Released 2019-10-07 20 20 21 -* Group commands: Allows multiple commands to be sent and received as a group and can include multiple servos without bus conflict / contention 22 -** #0QD#5QD#10QD\r - As an example, this single command queries three servos for their respective positions 23 -** #0QD0QC0#5QD0QC0 - This queries two servos for their position and current (milliamps). Note: 0 is required to separate commands QD and QC 24 -* **A**uto **B**aud **R**ate (ABR) which can be enabled (off by default): 25 -** #254ABR1 - Enable baud rate detection on first byte received after power-up. 26 -** #254ABR2,30 - Enable baud rate detection on first byte received after power-up. If no data for 30 seconds enable detection again on next byte. 27 -** Warning: ABR doesn't work well with LSS Config at the moment 28 -* Delayed & ordered query response. 29 -** #254QID120 - For example, this command can scan the entire bus at once for servos without conflict. 30 -** Servos use a simple formula to delay their response: 200usec + <id> * 120usec, where <id> is their servo ID 0 to 253. 31 -** The first parameter (ex. 120) indicates how many milliseconds to delay between IDs and 120usec is a safe number. 32 -** Warning: #254QID with no parameter will still conflict to remain backward compatible with the LSS Config software 33 -* Configure a **SLOT** # for each servo and using (ex.) 34 -** #254QD - An example of how all servos can be queried at once without conflict 35 -** Ex. Three servos with ID 0, 5, and 10 and want to configure them to be slots 0, 1, and 2 respectively: 36 -*** #254SLOTCOUNT3\r - configures 3 slots on the bus 37 -*** #0SLOT0\r - Don't really have to do this one, servos default to slot 0 on power-up 38 -*** #5SLOT1\r - Servo ID5 to slot 1 39 -*** #10SLOT2\r - Servo ID10 to slot 2 40 -*** #254QD\r - Query all servos for position 41 -*** #254QD0QC0\r - Query all servos for position and current (milliamps) 42 -** Note: You only need to configure slots once on power-up, #254<cmd> will offset all servo replies based on slot# after this is set. 43 -** Note: Why not just use servo ID as slot#? Many LSS bus setups are not using sequential IDs so it's more efficient to assign slot# then expect everyone to change their robot's logical servo IDs to be sequential. 44 -))) 14 +* Fixes: 15 +** Minor improvements to handling of low-speed motion control. More updates coming soon on this front! 16 +** Encoder issue that would sometimes cause random fast motion, ignoring speed restrictions. 45 45 46 -|(% colspan="2" %)((( 47 -== Version 369 (EXPERIMENTAL) == 48 -))) 49 -| |Released 2021-06-18 50 -| |((( 51 -**Fixes** 18 +== Version 365 == 52 52 53 -* Fixed race condition in communication resulting in occasional corrupt responses. Most prevelant but not limited to the QN command. 54 -))) 55 -|(% style="width:25px" %) |((( 56 -**New features ** 20 +Released 2019-09-12 57 57 58 -* Support for baud rates higher than 250k. Certified 9600, 19200, 38400, 57600, 230400, 250000, 460800 and 500000 baud but 750000 and 921600 have also passed our testing. Only these exact baud rates are recognized by the servo. 59 -* Improvement in query response time of around 15% at 250k baud and much greater now that higher baud rates can be used. 60 -))) 22 +* New commands: 23 +** New modifiers for position commands [[CH>>https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/lynxmotion-smart-servo/lss-communication-protocol/#HA7.CurrentHalt26Hold28CH29]] & [[CL>>https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/lynxmotion-smart-servo/lss-communication-protocol/#HA8.CurrentLimp28CL29]]. Allows moving "into" an object so it can be held without going into safe mode (limiting applied current in mA). CH holds position on collision and CL goes limp instead. 24 +* Fixes: 25 +** [[Mode 255>>https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/lynxmotion-smart-servo/lss-communication-protocol/#H16.IdentificationNumber28ID29]] would sometimes stay active or cause the LSS to respond to other servo IDs 61 61 62 -|(% colspan="2" %)((( 27 +== Version 362 == 28 + 29 +Released 2019-05-01 30 + 31 +Initial production version (first official release) 32 + 33 +* New commands: 34 +** CLB/QLB to control the blinking of the RGB LED during various phases of motion. 35 +* New features: 36 +** Added failsafe to go from RC mode back to serial mode by placing a HIGH signal (5 V DC) on RX for 30 s. 37 +* Fixes: 38 +** Improved LED patterns for clarity. 39 +** ID is now kept during a firmware update. 40 + 63 63 == Version 368 == 64 -))) 65 -| |Released 2020-04-07 66 -|(% style="width:25px" %) |((( 67 -**New features: ** 68 68 69 -* QF now reports more details on version number (QF, QF1, QF2, QF3) 70 -* Maximum motor duty cycle can be controlled using MMD, QMMD (min25%, max100% = 1023). 71 -** Can set it asymmetrical by passing 2 values separated by a comma (pos limit, neg limit). 72 -* Motion filter was added for EM0. 73 -** Can be controlled with FPC, CFPC, QFPC. 74 -* IPMS system was added for EM0. 75 -** Controlled with IPE and QIPE 76 -))) 43 +Released 2020-04-07 77 77 78 -|(% colspan="2" %)((( 79 -== Version 367 == 80 -))) 81 -| |Released 2019-10-07 82 -|(% style="width:25px" %) |((( 83 -**Fixes:** 45 +Many bug fixers and new features! 84 84 85 -* Minor improvements to handling of low-speed motion control. More updates coming soon on this front! 86 -* Encoder issue that would sometimes cause random fast motion, ignoring speed restrictions. 87 -))) 47 +* New features: 48 +** QF now reports more details on version number (QF, QF1, QF2, QF3) 49 +** Maximum motor duty cycle can be controlled using MMD, QMMD (min25%, max100% = 1023). 50 +*** Can set it asymmetrical by passing 2 values separated by a comma (pos limit, neg limit). 51 +** Motion filter was added for EM0. 52 +*** Can be controlled with FPC, CFPC, QFPC. 53 +** IPMS system was added for EM0. 54 +*** Controlled with IPE and QIPE 88 88 89 -|(% colspan="2" %)((( 90 -== Version 365 == 91 -))) 92 -| |Released 2019-09-12 93 -|(% style="width:25px" %) |((( 94 -**Fixes:** 56 +== Version 369 (EXPERIMENTAL) == 95 95 96 -* [[Mode 255>>url:https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/lynxmotion-smart-servo/lss-communication-protocol/#H16.IdentificationNumber28ID29]] would sometimes stay active or cause the LSS to respond to other servo IDs 97 -))) 98 -|(% style="width:25px" %) |((( 99 -**New features: ** 58 +Released 2021-06-18 100 100 101 -* (% style="background-color:transparent" %)New modifiers for position commands [[CH>>url:https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/lynxmotion-smart-servo/lss-communication-protocol/#HA7.CurrentHalt26Hold28CH29]] & [[CL>>url:https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/lynxmotion-smart-servo/lss-communication-protocol/#HA8.CurrentLimp28CL29]]. Allows moving "into" an object so it can be held without going into safe mode (limiting applied current in mA). CH holds position on collision and CL goes limp instead. 102 -))) 60 +* New features 61 +** Support for baud rates higher than 250k. Certified 9600, 19200, 38400, 57600, 230400, 250000, 460800 and 500000 baud but 750000 and 921600 have also passed our testing. Only these exact baud rates are recognized by the servo. 62 +** Improvement in query response time of around 15% at 250k baud and much greater now that higher baud rates can be used. 63 +* Fixes 64 +** Fixed race condition in communication resulting in occasional corrupt responses. Most prevelant but not limited to the QN command. 103 103 104 -|(% colspan="2" %)((( 105 -== Version 362 == 106 -))) 107 -| |Released 2019-05-01 108 -|(% style="width:25px" %) |((( 109 -**Fixes:** 66 +== Version 370 == 110 110 111 -* Improved LED patterns for clarity. 112 -* ID is now kept during a firmware update. 113 -))) 114 -|(% style="width:25px" %) |((( 115 -**New features: ** 68 +Released 2021-09-20 116 116 117 -* CLB/QLB to control the blinking of the RGB LED during various phases of motion. 118 -* Added failsafe to go from RC mode back to serial mode by placing a HIGH signal (5 V DC) on RX for 30 s. 119 -))) 70 +Major overhaul to the communication sub-system. Expect major performance improvements and bugs! Backwards compatibility is a priority. This firmware shouldn't affect existing code, please report any issues and include a reproductible command sequence if possible. 71 + 72 +* New features 73 +** Group commands: Allows multiple commands to be sent and received as a group and can include multiple servos without bus conflict / contention 74 +*** #0QD#5QD#10QD\r - As an example, this single command queries three servos for their respective positions 75 +*** #0QD0QC0#5QD0QC0 - This queries two servos for their position and current (milliamps). Note: 0 is required to separate commands QD and QC 76 +** **A**uto **B**aud **R**ate (ABR) which can be enabled (off by default): 77 +*** #254ABR1 - Enable baud rate detection on first byte received after power-up. 78 +*** #254ABR2,30 - Enable baud rate detection on first byte received after power-up. If no data for 30 seconds enable detection again on next byte. 79 +*** Warning: ABR doesn't work well with LSS Config at the moment 80 +** Delayed & ordered query response. 81 +*** #254QID120 - For example, this command can scan the entire bus at once for servos without conflict. 82 +*** Servos use a simple formula to delay their response: 200usec + <id> * 120usec, where <id> is their servo ID 0 to 253. 83 +*** The first parameter (ex. 120) indicates how many milliseconds to delay between IDs and 120usec is a safe number. 84 +*** Warning: #254QID with no parameter will still conflict to remain backward compatible with the LSS Config software 85 +** Configure a **SLOT** # for each servo and using (ex.) 86 +*** #254QD - An example of how all servos can be queried at once without conflict 87 +*** Ex. Three servos with ID 0, 5, and 10 and want to configure them to be slots 0, 1, and 2 respectively: 88 +**** #254SLOTCOUNT3\r - configures 3 slots on the bus 89 +**** #0SLOT0\r - Don't really have to do this one, servos default to slot 0 on power-up 90 +**** #5SLOT1\r - Servo ID5 to slot 1 91 +**** #10SLOT2\r - Servo ID10 to slot 2 92 +**** #254QD\r - Query all servos for position 93 +**** #254QD0QC0\r - Query all servos for position and current (milliamps) 94 +*** Note: You only need to configure slots once on power-up, #254<cmd> will offset all servo replies based on slot# after this is set. 95 +*** Note: Why not just use servo ID as slot#? Many LSS bus setups are not using sequential IDs so it's more efficient to assign slot# then expect everyone to change their robot's logical servo IDs to be sequential. 96 +* Fixes 97 +** Increase in supported baud rates up to 921k (adds 500k, 750k, 921.6k) 98 +** Fixed memory leak in MMD command 99 +** General firmware cleanup & improvements