# 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.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.