# SOMANET Motion Drive >- `Added` for new features. >- `Changed` for changes in existing functionality. >- `Deprecated` for soon-to-be removed features. >- `Removed` for now removed features. >- `Fixed` for any bug fixes. >- `Security` in case of vulnerabilities. >- `Known Issue` for issues that are non-blocking. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## v5.0.9 - 2023-06-07 ### Added * `IvldPara` is raised when requesting a new position setpoint if a profiler parameter is zero. (496879513) * Added support for new hardware variants. (1080962197) ### Changed * The maximum value of `0x6087 Torque slope` has been set to 100 000 permils/s. (936962163) ### Fixed * The value shown in `0x2004:7 Brake status` when SBC is active in non safe motion drives has been fixed. (1072497407) * Gain scheduling position integral limit is only scaled if cascaded control structure is used. (1101078322) * Fixed drive getting stuck in `Switched on` when an ABI encoder and offset detection method 2 were configured. (717117788) * Velocity calculation has been fixed for multiturn encoders with low resolution. (1101097768) * Position demand wrapping for certain encoder configurations with multiturn has been fixed. (1110138597) * REM16 and Nikon A-Format encoders are now writing the supported sampling frequency in objects 0x2110:28 and 0x2112:28. * `EncMtLos` error is correctly reported in all cases. (1117139490) * `BisErBit` error that indicates a low Circulo internal encoder battery voltage can now be reset. (1119414453) * Velocity feed forward has been fixed to not occasionally disable. (1125225559) * Documentation, values and naming for the objects 0x20F0 and 0x200a have been fixed in the ESI. (1091533212, 1085211249) * The precision of REAL numbers that are saved to the configuration files has been increased. (905428565) ## v5.0.8 - 2023-03-16 ### Changed * Position and velocity controller gains are now PDO mappable. (1037674299) * Accuracy of torque feedback and torque demand value were increased. (964858971) * The warning `Intern04` was removed. (1051568867) * `PhFault` is now raised when a Circulo can't specify which type of protection triggered the error. * Updated ESI documentation for position integral limits when simple PID is used. (1065226952) ### Fixed * `0x607e` is now considered for blocking motion when a limit switch is active. (1008108000) * Removed incorrect warnings at startup. (1034576800) * Velocity feed forward filter in PP is now only used while a trajectory is being executed and not when controlling the current position. (955145705) * The torque setpoint is now correctly limited when the mechanical power limit is exceeded. (1038732559, 1042703814) * Default cutoff frequency of position and velocity feedback filters were set to reasonable values. (644803785) * Quick stop and disabling of the drive are now happening in all cases when master communication is not active. (1068449686, 1069379340, 1070171915) * Fixed torque demand value overflow when commanding a high torque in motors with a large torque constant value. (1064820312) * Fixed position profiler misbehavior when the controlword commanded transition 4 and a new position setpoint simultaneously. (1076658711) ## v5.0.7 - 2022-12-22 ### Added * Increased the maximum supported encoder resolution to 28 bits. (905350647, 954369563) * An option to select desired encoder sampling frequency was added to objects 0x2110 and 0x2112. This new parameter is set to 16 kHz by default. (1006421886, 976803053) ### Changed * Circulo internal encoder errors were reworked. (976325530, 976324185, 930148283) * `SkpCycls` error reported by the control loop was renamed to `CtrlCyEx` and it is now only reported in Operation enabled. (1006421886, 976803053) * `SkpCycls` error reported by sensor services was renamed to `EncSmplT`. (1006421886, 976803053) * Firmware warnings are now cleared only if they weren't reported during one second. (1006421886, 976803053) * Demand values related to a particular control mode are now updated if that control mode is active. (1020595471) ### Fixed * The maximum values of REAL data types were fixed in the object dictionary. (976803188) * Fixed OS command abortion when it was no longer allowed during its excution. (733064581) * Wrong behavior of CiA402 transition 16 was fixed. (983095547) * The occurence of `Intern04` error was mitigated and was changed to a warning. (1006421886, 976803053, 998240691, 976803053) * Allow OS commands that require movement to execute if no brake is configured. (767723663) ## v5.0.6 - 2022-09-30 ### Added * Added Open loop field mode to the documentation of objects 0x6060 and 0x6061 in the ESI. (879286766) * Support new Circulo variants. (948014034) ### Changed * The resolution of the torque reference was increased internally. (947742422) * Change the behavior of Raw position and Adjusted position and update their documentation in the ESI accordingly. (964182343) ### Fixed * The sign of actual velocity is now changed when the polarity (0x607E) is inverted. (931604750) * Increased the limits of field weakening start/end speed to support SI unit. (950454770) * Only parameters related to the current operational mode are validated. (959239477) * Fixed bug that caused Position demand internal value (0x60FC) to stop updating after a position profile ramp was executed. (966177600) * An invalid GPIO pin configuration (0x2210) is now properly handled. (964777654) * Fixed list of files when using fs-getlist. (964269699) ## v5.0.5 - 2022-08-04 ### Added * Added warnings to indicate what triggered an internal motion or control limit. (672439683) ### Changed * Replaced firmware error by CoE Abort Code 0x08000021 when an OS command collision happens. ### Fixed * Removed warning when opmode is set to 0 in Operation enabled. (931604750) * Added checks to prevent overflow of velocity values when scaling to SI units. (878549903) * Removed the scaling to SI units of position integral limit when simple PID controller is used. (937689087) * Improved the documentation of objects 0x203F:1, 0x2038:3 and 0x2023. (936911967, 807931650, 933196577) * Safety activation during quick-stop forces the controller to be disabled. (848615306) * Fixed wrong reported core temperature when it is negative. (936957435) * Adjusted the timestamps used in 0x2211 and 0x2212 according to the 0x20f0 Timestamp time frame. (536568452) ## v5.0.4 - 2022-07-05 ### Added * Safety state changes are logged. (796890971) * All supported homing options are added to ESI. (847489838) * The warning `SkpCycls` is raised when the firmware can't run at 4 kHz. (880028977) * Added detection of SSI data line being set low by the encoder during monoflop time. (841897729) ### Changed * Default SYNC0 Cycle Time and free run are added to ESI. (811112884) * Overtemperature warnings and errors are reworked, `PhOtDriv` and `PhOtCore` are used to report them. (733038173) * FIR filter is applied to the sum of velocity feed-forward and velocity offset, instead of just to velocity offset. (717608189) * User and factory parameter restore is allowed when drive is in Fault state. (837080071) * Improved ESI documentation of the objects 0x6073, 0x2003:2 and 0x6075. (697634555, 847454940, 847468136) * I2T protection is enabled by default in ESI. (733860760) * Unused bytes of OS command response are always cleared. (871991055) * `0x2210 GPIO pin configuration` subindexes are renamed and related documentation is updated. (908189833, 865461987, 890819672) ### Fixed * Fixed erroneous SDO abort error when writing to objects with large data types. (841091659) * Removed condition that occasionally prevents CIA402 transition 14. * Fixed polarity parameter on REM16 encoder. (825342841) * Field weakening effect is disabled when changing the movement direction. (833588531) * Fixed ESI documentation for objects affected by the value of SI unit velocity. (836276856) * Fixed variable overflow when scaling between internal and user defined units. * Fixed bitsize of objects 0x1C12 and 0x1C13 in ESI. (506973735) * Fixed velocity calculation of incremental encoders. (852670813) * Fixed internal time alignment when an encoder is reconfigured. * Gain scheduling configuration is properly applied while the feature is disabled. (887700756) * Endiannes and data ordering of SSI multiturn encoders is properly decoded. * Added mechanism to disable the drive if the SoC freezes. (909075809) ## v5.0.3 - 2021-12-03 ### Fixed * Avoid torque spike when dynamically switching to homing mode. (797698226) * Fixed inaccurate reported actual velocity when the encoder can't be oversampled. (803431786) * Add option codes in the ESI for the object 0x607E Polarity. (779496775) * Improved documentation for 0x2010:08. (766927958) * Fixed the documentation typo in 0x2001. (753911906) ## v5.0.2 - 2021-11-24 ### Fixed * Fixed incremental encoder behavior never reaching zero at low velocity with high velocity precision enabled. (789599292) * Cogging recording refuses to execute if the Hall sensor is used. (781934519) * Circulo devices allow slower transfer of PDO during SAFEOP, preventing ignored SDO requests. (773737816) * Allow very large velocity demand values, particularly when the position controller isn't following the target well. (796992455) ## v5.0.1 - 2021-11-09 ### Added * Failure to complete writing to the `config.csv` file is detected and reported at next boot. (761391821) ### Fixed * SAFETY: Prevent jump to limits when enabling the position controller from outside the position limits in some situations. (776484922) * Improve common mode voltage calculation to boost bus voltage efficiency. (784877824) * Improve maximum phase voltages at saturation. (784877824) * BiSS encoder multiturn is fixed. (780326586) * Home switch is properly initialized according to the configured GPIO setting. (778623699) * Allow proper maximum motor speed if gear ratio changes. ## v5.0.0 - 2021-10-29 This version drastically breaks compatibility with the v4 series. Please refer to our migration guide documentation for details. This official release includes the following major features since v4.4. * `0x60fe` Digital outputs and `0x60fd` Digital inputs objects replace the manufacture specific objects. * Digital IO can be configured to timestamp inputs and outputs on rising edge. * Digital IO voltage level configuration is available for hardware that supports it. * Digital outputs can be configured for Statusword bits, such as `Target reached` and `Internal limit active`. * A digital output can be configured to generate a pulsed output when crossing a position setpoint. * A digital input can be configured to reset faults at rising edge. * Added a digital output configuration to reflect `fault` and `switched on` bits of Statusword. * Digital inputs can be configured to handle home and limit switches with active high or low configurations. * Interlock configuration is now supported for executing quick-stop or disabling the drive with a digital input. * Hitting a defined limit switch will quick-stop the motor. * All switch-based homing modes are supported. * External scaled measurement has a configurable low pass IIR filter on the computed value. * External scaled measurement has an error threshold to throw an error if the value is exceeded and a warning after exceeding 95%. * Introduced upper and lower error thresholds for external scaled measurement. * Option to restore parameters to factory settings from the `.factory_config` file. * Torque controller learned auto-tuning. See `0x2010:10` Settling time and `0x2010:11` Damping ratio. Kp, Ki, and Kd are now disabled. * Offset detection has been completely reworked. There are now three different methods: the first uses a rate-limited field control, the second uses a PID direction-controlled field for very fast acquisition with minimal movement, and the third can find a rough estimate of the rotor position with no movement (the brake can and should be engaged, if possible). See `0x2009:3` Commutation offset: Measurement method. * Improved speed of offset detection procedures and diagnostics. * A `Diagnostics mode` replaces `Commutation offset detection mode` (object `0x6060` value -2), with individual OS Commands to execute commutation offset detection or hardware health checks. * Instead of finding the index for incremental encoders, the third commutation offset detection method can be used. The more precise, stored, method will be used as soon as the index is found. * Mechanical power limits have been added. See `0x200b` Max power for details. Hardware limitations are now respected. * Preset Drive and Core temperature limits will raise a warning at 5 degrees before the limit, and error when the limit has been hit. * Encoder sampling frequency increased to 32 kHz for feedback filtering, when possible. * Encoders with an absolute single-turn sensor no longer consider the MSB the sign. The value is always unsigned. Homing will need to be performed after upgrade. * OS Command 14 was added to temporarily disable acting on BiSS encoder errors. * A single-turn offset is available for all absolute encoders. * PDO maps are no longer saved to the internal configuration. However, they are still loaded, so the `config.csv` can be modified by hand and saved via FoE if you wish to have a different default PDO map. * A Synapticon logo has been added to the ESI file for the EtherCAT master to display. * Added support for CIA402 transition 16. * Cyclic heartbeat now uses the EtherCAT Slave Controller watchdog, and is therefore configurable.