# 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/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## v4.4.14 - 2023-08-18 ### Added * Added compatibility for updated SoC. (1177864197) ### Removed * The error code explanation of the object `0x203F` was removed from the ESI file. (1073379145) ### Fixed * Files with a size of multiple of 1012 bytes are now handled properly by FOE. (968332678) ## v4.4.13 - 2023-06-07 ### Added * Added support for new hardware variants. (1080962197) ### Fixed * The value shown in `0x2004:7 Brake status` when SBC is active in non safe motion drives has been fixed. (1072497407) * Position demand wrapping for certain encoder configurations with multiturn has been fixed. (1110138597) * Velocity feed forward has been fixed to not occasionally disable. (1125225559) * Position demand wrapping for certain encoder configurations with multiturn has been fixed. (1110138597) * Velocity feed forward has been fixed to not occasionally disable. (1125225559) * Documentation, values and naming for the objects 0x2010 and 0x20F0 have been fixed in the ESI. (1091533212, 865461987) * The precision of REAL numbers that are saved to the configuration files has been increased. (905428565) ## v4.4.12 - 2023-03-16 ### Changed * Corrected the ESI file to conform with the specification. (987165348) * Demand values related to a particular control mode are now updated if that control mode is active. (1020595471) * Position and velocity controller gains are now PDO mappable. (1037674299) * `PhFault` is now raised when a Circulo can't specify which type of protection triggered the error. ### Fixed * The maximum values of REAL data types were fixed in the object dictionary. (976803188) * Fixed the `Intern04` error when logging was requested while CSV configuration was being written or read. (998240691, 976803053) * Velocity feed forward filter in PP is now only used while a trajectory is being executed and not when controlling the current position. (955145705) * 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) ## v4.4.11 - 2022-09-29 ### Added * Added detection of SSI data line being set low by the encoder during monoflop time. (841897729) * Added warnings to indicate what triggered an internal motion or control limit. (672439683) * Support new Circulo variants. (948014034) ## Changed * ESI files were changed to conform with the specification. (890099148) * The resolution of the torque reference was increased internally. ### Fixed * 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) * 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) * Improved the documentation of objects 0x203F:1 and 0x2023. (936911967, 933196577) * Safety activation during quick-stop forces the controller to be disabled. (848615306) * Fixed wrong reported core temperature when it is negative. (936957435) * 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). * Fixed list of files when using `fs-getlist`. (964269699) ## v4.4.10 - 2022-04-29 ### Changed * I2t protection is enabled by default for peak time 3 sec. (733860760) * Add Option Code for Homing Methods 0x6098. (847489838) ### Fixed * Fix undue over-temperature warning thrown by software. (733038173) * Set default SYNC0 Cycle Time and add free run to ESI file. (811112884) * Log safe state changes. (796890971) * Limit Field weakening when changing the torque direction. (833588531) * Use FIR filter after adding velocity feed forward to velocity offset. * Prevent variable overflow when scaling between internal and user defined units. * Allow user and factory parameter restore when drive is in Fault state. (837080071) * Fix bitsize for objects 0x1C12 and 0x1C13 in ESI. (506973735) * Remove unnecessary ADC offset checks in torque controller. (882779422) * Several documentation updates. ## v4.4.9 - 2021-12-03 ### Fixed * Fix torque spike when dynamically switching to homing mode. (797698226) * Circulo devices allow slower transfer of PDO during SAFEOP, preventing ignored SDO requests. (773737816) * Block cogging torque recording if the Hall sensor configuration is not appropriate. (781934519) * Add option codes in the ESI for the object 0x607E Polarity. (779496775) * Add missing ESI documentation for 0x2010:8. (766927958) ## v4.4.8 - 2021-11-05 ### Added * Failure to complete writing to the config.csv file is detected and reported at next boot. (761391821) ### Fixed * SAFETY: Increased tolerance for inaccurate motor torque constant. (757732060) * Do not invalidate commutation offset after power up for a Hall+AB setup. (728617913) * Fixed Hall+AB bug that caused a wrong commutation angle. Now it can be used even if the Hall or motor phases are not in the right order. (748006407) * Several fixes were made to the behavior of the Statusword bits in Homing mode. (748235879) * Improved the Hall sensor speed estimation. (717509796) * Raise an error if acceleration is too high for the selected SI unit. (777043413) * Fixed reversal of RX and TX flag in PDO mappable objects. ## v4.4.7 - 2021-08-10 ### Changed * The 1 second timeout for torque quick-stop is removed. The timeout is computed based on the actual velocity and the quick-stop deceleration. * Target torque is actively controlled in torque modes CST and PT during the quick-stop timeout. ### Fixed * SAFETY: Prevent a runaway in cases when quick-stop is performed and actual position has exceeded the target. * Improved precision of acceleration and deceleration and velocity for profiled modes. * A bug leading to torque ripple is fixed in the torque controller. * Dynamically changing opmodes is restricted to CSP/V/T, PP/V/T, and Homing. * Fixed a rare synchronization error with the distributed clock. * Fixed multiple Nikon A-format encoder issues. * CANopen SDO abort request and SDO reply data fields are properly created. * Improved CANopen SDO and PDO processing to increase bus load. ## v4.4.6 - 2021-05-18 ### Fixed * Position software limits had some wrong behavior in some rare cases. * EDS file for CANopen now uses a generic node id and a blank default PDO map. * Fix default distributed clock settings in the ESI file. ### Changed * Allow parameter restore only when drive is disabled ## v4.4.5 - 2021-04-30 ### Fixed * ADC inputs for Circulo are fixed. * Incremental encoder read speed is restored. * Hold position and disable velocity offset during position controller disable delay period. * Fixed Circulo encoder multiturn jumps. * Fix sporadic error in BiSS register communication. * Default velocity feedforward cutoff frequency is lowered from 1000 to 20 Hz. ## v4.4.4 - 2021-04-09 ### Fixed * SAFETY: Wrap demanded position value when wrapping around the position range limits in cyclic position mode. * Cleaned up the log from commutation offset detection diagnostics. * Warning reports from the encoder services don't disappear too quickly. ## v4.4.3 - 2021-03-22 ### Fixed * When dynamically switching from position to velocity mode, always use last demand velocity. * Force soft reset to fix Circulo multiturn issue. * Velocity-based control effort is tweaked and documentation updated. * Following error position values are in the user reference frame instead of encoder. * Following error status bit is cleared when the window is disabled. * Avoid exception in the External scaled measurement calculation. * Following error actual value (`0x60F4`) is now being updated in all operational modes. * Raise the internal limit active warning if the integral limit has been reached. * Limit the demanded torque instead of target torque to prevent offset from being prematurely limited. * Removed 100 ms quick stop timeout period for position and velocity control modes. * Prevent loading the brake status from the user-defined config.csv settings. Always initialize to `engaged`. * Raise the internal limit active warning if profile velocity hits the max. motor speed limit. * Torque controller is enabled immediately before the pull time period when clutch-style brake is being used. * SDK: CAN-over-SPI protocol was made a bit more robust. ## v4.4.2 - 2021-02-09 ### Fixed * CANopen boot-up message is fixed. * Fixed error reporting race condition from sensor services. * Position filters are reset when wrapping around range limits. * Fixed enabling position profiler when entering homing mode. * REM16 internal errors are reported. * Allow missing newline and ensure proper types and signs are written for config.csv. * Avoid an error when Circulo encoders mis-read from EEPROM and fix error masking. * Reset quick-stop-active flag in case of forced transition 12 * Fix the initialization of position profiler after QEI index search routine. * External scaled measurement calculation was tweaked to be more accurate. * Initialize quick-stop before controlling on previous position setpoint. * Use Enabled/Disabled in FIR filter instead of Enable/Disable. * Fix EtherCAT mailbox addressing when a station address is configured. * Fix for several multiturn issues on the Circulo encoders. * Fix execution of brake release for pin brakes during offset detection. * Fix quick-stop initialization of deceleration after CSP mode. ### Changed * Increased tolerance for core temperature from 100 to 105 degrees C. * Increased effective resolution of current measurements for Circulo ADC. * Minimum distance threshold format for pin brakes increased from 16 to 32-bit. ### Added * Added logo to ESI file. * Support for Circulo rev. C hardware is added. ## v4.4.1 - 2020-11-26 ### Fixed * CANopen will throw a `CyclicHb` error if cyclic communication isn't maintained. * Velocity demand value (`0x606b`) now includes the Velocity offset (`0x60b1`) and considers speed limits. * The Target reached bit of the Statusword (bit 10) is reset when the window or controller are disabled. * The Torque window (`0x2014`) is read properly from the object dictionary instead of keeping it at zero. * Set-point acknowledge bit of the Statusword (bit 12) properly mirrors the new set-point bit of the Controlword (bit 4). * Drive and Core temperature error thresholds have been tweaked. Both will trigger a warning at 95 C and an error at 100 C. * Statusword fluctuation (bit 12) when FIR input filter is enabled has been resolved. * Minor tweak of Circulo graphics has been made for compatibility reasons. ## v4.4.0 - 2020-11-10 This official release incldues the following major features since v4.2. * Control input FIR filter (`0x2027`) can be used to interpolate or smooth input trajectories. * Brake field strength factor (`0x2004:12`) was added to support flash storage of a deprecated internal compensation mechanism. * The Controlword Halt bit can be used in homing modes. ### Fixed * Increased max torque resolution handling within the drive. * Corrected reference frame for Velocity demand value when a gearbox is defined. * Corrected initial position recorded for pin brake release mode when a gearbox is defined. * Maintain set velocity offset when quick-stop is executed in position control modes. ## v4.4.0-rc.2 - 2020-11-03 ### Fixed * Fix bugs in the EtherCAT handling of the BOOT stage. * Fix dynamic switching of op modes to avoid brake re-release, etc. * Set Zero velocity threshold of serial encoders to 0 by default, for better performance at low velocity. * Avoid `Intern01` error. ## v4.4.0-rc.1 - 2020-09-21 ### Fixed * Tweaked timing issue that sometimes caused intermittent issues with PWM output. * Velocity demand value is scaled properly in velocity control modes. * Gear and tachometer ratio is taken into account immediately when changed. * Implemented smoother transition from velocity to torque modes without disabling the controller. * Initial value of the Brake status (`0x2004:7`) is fixed. * Fixed occasional watchdog error for Drive 1000. * SDK: Fix external library build issue when SDK submodule is used. ## v4.4.0-rc.0 - 2020-08-12 ### Fixed * Circulo internal encoder error handling is improved. * CANopen devices will issue a `CyclicHb` error if the network isn't active for more than 100 ms. ### Changed * SDK: Organization of source code is much improved for use with Git submodules. ## v4.4.0-beta.0 - 2020-07-24 ### Added * The Controlword Halt bit can be used in homing modes. ### Fixed * SAFETY: Avoid motion during brake engagement when a quick-stop or fault is raised during cogging torque recording. * Various Polarity (`0x607e`) issues are resolved. * CANopen nodes now support 1000 kbaud communication rates. * `CyclicHb` communication error is suppressed in CANopen nodes with no PDO maps. * Four PDO maps are available in CANopen nodes. * Profile position mode requires a new-setpoint bit be requested before following the next setpoint. * Default FIR order is now 3 (4 taps) for accurate millisecond command interpolation. * Prevent jump when home position is set and FIR filter is enabled. * Scaled Velocity window (`0x606D`) and threshold (`0x606F`) by the SI unit velocity (`0x60A9`). * Scaled Gain scheduling velocity thresholds (`0x2013:2`, `0x2013:11`) by the SI unit velocity (`0x60A9`). * Fixed an issue with A-Format data parsing. * Initialization errors for REM16 encoders are cleared properly. ## v4.4.0-alpha.0 - 2020-07-14 ### Added * Control input FIR filter (`0x2027`) can be used to interpolate or smooth input trajectories. * Brake field strength factor (`0x2004:12`) was added to support flash storage of a deprecated internal compensation mechanism.