# 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.2.1] - 2020-07-03 ### Fixed * Improved signal sampling for BiSS and SSI encoders. Max attainable clock speed may be higher for some encoders. * Avoid needing to clear some faults twice. * User-defined Overcurrent setpoint (`0x2006:3`) now properly considers calibration offsets. ## [v4.2.0] - 2020-06-15 This official release includes the following major features over v4.1. * Increased voltage efficiency across motor phases. * PWM frequency can be increased (16, 32, 64 kHz) and operates with higher efficiencies. * Motor position prediction improves torque efficiencies at high speed. * QEI and Hall sensors can be configured for motor commutation without requiring index detection. * An input counter is supported for slow frequencies (under 8 kHz). Good for fans, pumps, bike odometers. * Notch filter is available on the input to the torque controller. * Network synchronization via the EtherCAT distributed clock prevents drift from the master. * Torque control frequency is now 16 kHz (from 15), position and velocity run at 4 kHz (from 3). * Velocity feed-forward is available. * Homing modes 33, 34, and 35/37 are implemented. * Controller supervision objects are available to monitor the performance of the controllers. * Profile modes for position, velocity, and torque are available. * Brake control has learned to allow a manually-controlled 4th phase voltage. * The brake has a selectable switching frequency (16, 32, and 64 kHz). * High resolution data buffer has been made available as a prototype. This allows you to read the phase currents at 16 kHz in real-time without buffering constraints. * PDO mapping is expanded; four PDO maps in both directions with 10 objects per map (so, a total of 40 objects in each direction). * The drive controller can handle 4 kHz cyclic communication. The data throughput lag has also been optimized to be as low as possible from the sensors to the EtherCAT object dictionary. * Improved encoder support and performance (Nikon A-Format is new). * A scaled external ADC measurement can be used to convert measurements to user units on the drive. * Cogging torque compensation recording is much better in more situations. * The commutation offset detection procedure is faster and travels within one electrical angle. ## [v4.2.0-rc.1] - 2020-06-10 ## Fixed * QEI index search properly reverses direction in case of being blocked (i.e. pin brake mode). * Prevent jump in torque after QEI index detection and before velocity controller is enabled. * Brake can be manually released again at first boot. * Made Circulo rev. B fixes for ADC ratios and encoder board support. * Improved Circulo rev. B product images. * EtherCAT fixed reporting of mailbox errors. ## Removed * Real time clock (`0x20f1`) was deprecated and finally removed. ## [v4.2.0-rc.0] - 2020-05-29 ## Fixed * Initialize quick stop ramp with demand value and offset in velocity control mode. * Rotate with a defined mechanical speed during index detection (about 24 RPM). * Increase precision of Torque offset when converting from per mille. * Files transferred via FoE allows spaces. * FoE file list (`fs-ls`) returns full maximum list (up to 32 files). * Disable the drive when quick stop is requested during transition to Operation enabled. * Update commutation offset value only if procedure succeeds. * Profile velocity acceleration and deceleration values are applied in the velocity reference frame. * Position PID parameters are updated cyclically. These may be PDO-mapped if master-based gain scheduling is needed. * EtherCAT conformance test improvements include variable mailbox size, sync manager updates, and CoE abort request. * SDK: Avoid crash when defining very long parameter object names. Capped at 50 characters. ## [v4.2.0-beta.23] - 2020-05-15 ### Fixed * Allow CIA402 state transitions when Opmode is unknown. Allows faults at startup to be reset. * Prevent command jump when dynamically switching to position profile mode when velocity feed forward is active. * Avoid `CyclicHb` error when switching from EtherCAT OP back to PREOP mode. * Activating quick-stop from cyclic position mode uses previous target to initialize the profile. Prevents small discontinuity at start. * Maintain control state at end of position quick-stop to avoid relaxing control effort. ### Changed * PDO mapping objects are no longer saved to flash (`config.csv` ). Reading is still enabled. ## [v4.2.0-beta.22] - 2020-05-07 ### Fixed * SAFETY: Initialize the position quick-stop profiler properly for some sensor configurations. * Quick stop deceleration (`0x6085`) default value is set to 10000 and min. value to 1 rpm/s. * Demand position is now unmodified during brake controller disable delay. * Velocity profiler is limited using max motor speed. * Fixed small initial position jump when using velocity feed-forward. * Fixed ADC ratios for node 1700102-01 for temperature and bus voltage. * New profile position setpoint will be ignored if Halt bit is set. * Add support for Circulo rev. B, including new encoder connector. * Fix end condition of the position and velocity profilers to avoid oscillation. * Disengage the brake when starting offset detection procedure. * Resetting a fault after power-cycling was sometimes not possible. ## [v4.2.0-beta.21] - 2020-04-20 ### Fixed * Improvements were made to timing when control parameters are updated. * Updates to software position limits are applied during cogging recording. * Fix single-cycle lag of held position when QEI index is found. * Tweak log to show intent to enter Operation Enabled as well as when the state is actually changed. * Halt bit is working again for the position profiler. * Quick-stop from profile position mode properly ignores previous target when decelerating. ## [v4.2.0-beta.20] - 2020-04-03 ### Fixed * Circulo encoder phase adjustment is removed in favor of OBLAC encoder calibration. * `PhWtdg` error was thrown multiple times unnecessarily. * Controllers are enabled while a clutch brake is being released, instead of after the pull time. ### Changed * The device product ID and version are available in object (`0x1008:0`) Manufacturer device name. ## [v4.2.0-beta.19] - 2020-03-27 ### Fixed * Updated velocity feed forward gain documentation. * Reset notch filter when controller is disabled to prevent reported non-zero demand value. * Fixed ghost spikes in received data. * Prevented I2T computation overflow and imposed limits for very large inputs. * Fixed aborting issues with offset detection. * Restored offset detection state only if the process was not finished. * Reduced frequency during offset detection measurement and increased time for phase polarity check. * Resolved rare race condition on loading `config.csv` to prevent a partial crash. * Set the offset state properly when loading from `config.csv`. * SDK: Removed voltage setting from SPI and BiSS/SSI BSP configuration. ## [v4.2.0-beta.18] - 2020-03-17 ### Fixed * Index detection procedure is properly aborted when requested. ## [v4.2.0-beta.17] - 2020-03-17 ### Fixed * SAFETY: Position and velocity mode quick-stop will disable the drive 100 ms after the drive has commanded zero velocity, even if velocity doesn't reach zero. * SAFETY: Torque mode quick-stop will disable the drive after 1 second, even if measured velocity doesn't reach zero. * Fixed initialization of position profiler. * Built-in control derivative filter had a cutoff frequency of 160 Hz. This has been increased to 1 kHz. * Drive is properly reported to be in Operation enabled state in all control modes. ### Changed * The commutation offset detection procedure has been optimized to run faster and restrict movement to within one pole-pair. * The measurement of the motor torque constant during diagnostics has been disabled to avoid unnecessary movement. * Software position limits (`0x607D`) can be modified while the device is in Operation enabled modes. ## [v4.2.0-beta.16] - 2020-03-06 ### Fixed * Transient warnings are automatically dismissed after 1 second. Other warnings are dismissed when corrective action is taken. * EtherCAT conformance update was rolled back temporarily to address connectivity with some masters. * Minor improvements to position and velocity control loop timing, especially in profiled modes. * Renamed (`0x2004:5`) Engage delay to Controller disable delay. This should make it much more clear. * Fix direction of cogging recording by moving to the furthest away position limit. * Rename (`0x2023:3`) Notch filter Bandwidth to Rejection band and add reasonable default values. ### Changed * SDK: Removed quick-stop profile in favor of the built-in profilers. ## [v4.2.0-beta.15] - 2020-02-28 ### Added * Profile position mode supports the Halt bit. * EtherCAT mailboxes support smaller sizes if requested by the master. * SDK: Circulo board support files are available. * If the Software position limits (`0x607D`) exceed the Position range limit (`0x607B`) as reported by the maximum encoder measurement, warning `SwLimOut` will be raised. * If the cogging torque recording procedure is executed while the drive it outside the Position range limit (`0x607B`), error `SwLimOut` will be raised. ### Fixed * Velocity demand value (`0x606B`) under cascaded position control is scaled properly to the velocity encoder reference frame. * I2T issues with updating the load percent have been resolved. * Supported drive modes (`0x6502`) is no longer loaded from flash storage. * Homing issues have been resolved, and Software position limits (`0x607D`) are properly ignored. * Cogging torque recording is tweaked to move less distance. * Position reference frames properly handle Home offset (`0x607C`), home position, and Software position limits (`0x607D`). * FET detection diagnostic is aborted properly when the drive is disabled (not just quick-stop). * Profile position mode accepts the target only when demanded by the Controlword (`0x6040`) new setpoint bit. * Position profiler uses absolute value of accelerations when a dynamically changed target is demanded. * EtherCAT sync manager was updated to improve conformance. * Software position limits (`0x607D`) can be disabled by setting min to `INT32_MIN` (-2147483648) and max to `INT32_MAX` (2147483647). Previously, the limit was set to INT32_MIN+1, leaving one point valid, but outside of the range. ### Changed * Control effort (`0x60FA`) under cascaded position control reports the output of the velocity controller. * The QEI+Hall configuration driver adjusts commutation angle after first Hall transition and performs diagnostics on the Hall signals. * Target torque (`0x6071`) maximum has been extended from about 131 Nm to 2000 Nm. ## [v4.2.0-beta.14] - 2020-02-07 ### Fixed * SAFETY: Allow motion toward software range limits without jumping back within the limit. * Encoder services are properly synchronized again. * Use percentage of rated torque for all open-loop field control modes. * Velocity profiler reliably computes motion direction near target. * Profile position parameters can be configured in operation enabled state. * Accel and decel are applied to absolute value of commanded velocity, in profile velocity mode. ### Known Issue * The Home offset (`0x607C`) must be set to zero to work properly with the Software position limits (`0x607D`). * Software position limits (`0x607D`) cannot be disabled by setting them to zero. ## [v4.2.0-beta.13] - 2020-01-28 ### Fixed * When QEI and Hall sensors are both used for commutation, invalid state errors are not clearable. * Open-loop vector control modes more quickly increase commanded currents to better control axes with load. * Brake engage delay is ignored in manual output mode. * Brake engage delay default is now set to 100 ms. This is the time from engaging the brake to disabling the controller. * QEI index detection procedure is now executed immediately, rather than waiting for the brake pull time to expire. * Enable forced transition 12 when in Quick stop active state. * Torque demand value is now properly computed in all control modes. * Control effort for position control is computed properly for both controller types. * Properly finish index detection even if pulse was found during brake release. * Fix BiSS/SSI angle calculation overflow for high resolution encoders. * Various documentation improvements. ## [v4.2.0-beta.12] - 2019-12-20 ### Added * GPIO global options: Voltage level (`0x2214:1`) was added to change the voltage level for GPIO on devices that support it (Circulo). ### Fixed * SAFETY: The quick-stop performed in fault-reaction state now properly disables the control profile, if active. * All velocity and acceleration units are now scaled according to the SI unit velocity (`0x60a9`) object. * Fix quick-stop ramp acceleration in profile velocity mode. * Fix monitoring time for zero velocity at the end of the quick-stop profile. * Reset of PID parameters is now performed with the same input used to compute error. * Error `IvldPara` is thrown if the homing acceleration or speed are zero. * Error `SfeFault` can now be reset when safe state is active. * Offset detection is now allowed to use the full rated current of the motor. * If the brake is set to Manual mode, the brake will remain in the current state when the controllers are enabled or disabled. * Position profile uses the Profile velocity (`0x6081`) object in the proper reference frame. * Integral limits remain in RPM instead of being improperly scaled. * Input counter (`0x2040`) is no longer saved to the config.csv file. * Invalid objects in the PDO map are ignored, data is zeroed, and expected size of frame is preserved. ## [v4.2.0-beta.11] - 2019-12-06 ### Fixed * Commutation velocity was using the wrong encoder in some configurations. * SII file for the LAN9252 updated to support enhanced link detection and PDO assign flag * Fixed the velocity feedback filter type units. * Warning `MtrPara` was removed, and will not be issued. * Safety error for safe digital inputs (`SfeDiIvd`) will not be reset unless safe state is active. * Reading Store parameters (`0x1010`) object conforms to the CiA301 standard. Zero will be returned while the store command is in progress. * Reading Restore default parameters (`0x1011`) object conforms to the CiA301 standard. Zero will be returned while the restore command is in progress. * Adjusted Circulo encoder registers for improved performance. * SDK: SPI master configuration fixes. ## [v4.2.0-beta.10] - 2019-11-05 ### Fixed * Object naming now conforms to the IEC 61800-7-201 (and related) specifications. * PDO-mappable flag is fixed for all objects. * Cleaned up the list of objects saved to flash memory on save. * Prevent starting profiled control modes until QEI index detection has completed. * Circulo encoder ring phase adjustment made to improve accuracy. * Circulo 700 encoder ring resolution is fixed. ## [v4.2.0-beta.9] - 2019-10-25 ### Fixed * ADC-to-current conversion precision was improved. * Fix position drift when the position profiler reaches the target. * Fixed documentation for Velocity feed-forward objects. * Object dictionary values are again updated while in EtherCAT `PREOP` and `SAFEOP`. * Protection hardware is no longer automatically reset when over-current is triggered for Circulo hardware. * Velocity demand value reference frame now matches the velocity control encoder. ## [v4.2.0-beta.8] - 2019-10-18 ### Added * Circulo encoder configuration is built into the firmware. * Circulo images for the firmware packages are included. ### Fixed * Dual sensor resolution is properly interpreted in all modules. * Enabled position window no longer affects the final profile step. * BiSS reduced frame is improved. * Position profile computations are optimized. * FoE file system command `fs-ls` (or `fs-getlist`) prevents duplicate names and garbage file names. * FoE 'dot files' are protected by a password. * External scaled measurement uses updated resistor values in A.2 Circulo builds. * Torque demand value conversion from target prevents loss of precision, so Profile Torque feedback is correct. * Velocity demand feedback resolution is preserved when sending to the object dictionary. * Reported velocity feedback is now properly scaled by the gear ratio when the encoder is on the drive shaft. * Fixed save and restore of SyncManager assignments. * Prevent network startup before restoring PDO assignments. ## [v4.2.0-beta.7] - 2019-09-23 ### Changed * Updated build process for Circulo and CAN nodes with official part numbers. ### Fixed * PDO maps are now saved to the config.csv so they aren't lost on power cycle. * Fix position jump in BiSS sensors with relative counter. * Fix wrong Half-Duplex and SPI encoder configuration for Drive2000/400-rev-e boards. * Fix 0x60F4 'Following errror actual value' typo in object dictionary. * Fix dead-time and WD error for high-temperature conditions. * Fix user position reference in Motion control and Drive control services. * Homing profiler is now properly configured. * Write polarity to MA302 register. * Properly initialize profiler when recording cogging torque. * Start QEI index detection even if pin brake is configured. * Fix documented units of Brake Options: Maximum torque (pin brake). ## [v4.2.0-beta.6] - 2019-09-06 ### Added * The Circulo STO and SBC features are now fully supported. ### Changed * Brake engage delay is now the time between when the brake is engaged and the controller is disabled, instead of the other way around. ### Fixed * Brake engage delay can be set to zero. * Various fixes to the application of home offset. * Wait for the incremental encoder index to be found before starting homing procedure. * Do more than one rotation before raising QeiNoIdx error. * Always report homing bits when in homing mode. ## [v4.2.0-beta.5] - 2019-08-09 ### Fixed * Velocity demand value is updated with position controller effort and feed-forward value. * Following error is fixed for position profile mode. * Position and timestamps are written atomically to the object dictionary. * Quick-stop status bits are reset only when the controller has been disabled. ## [v4.2.0-beta.4] - 2019-08-08 ### Fixed * Corrected analog input pins for Circulo. * Enable position profiler for cogging torque recording. * Optimized execution time for position profiler algorithm. * Fixed exception when log buffer is full and log files are swapped. ## [v4.2.0-beta.3] - 2019-08-01 ### Added * Added POSTIX names to FoE operations (`fs-ls`, `fs-rm`, `fs-h`). ### Deprecated * REM14 encoder support has been dropped. ### Fixed * Internal limit bit is no longer active if the limit has been reached but not exceeded. * Removed a faulty configuration warning in the sensor services. * Report an error if the pin brake release procedure fails. * Limit min and max of BiSS clock frequency. * Fixed homing procedure not zeroing the position for modes 33 and 34. * Activate an anti-saturation control monitoring concept for the torque controller. * Improve linear detrending of cogging torque table. * Release the pin brake before enabling the controller for absolute encoders. * Control effort of position controller (velocity) is now properly scaled to motor shaft reference. * Dynamic Opmode switching properly updates the gains. * Velocity feed-forward parameters are properly loaded from flash. * Quick-stop now works properly in profiled modes. * Multiple fixes and updates for Circulo support including build configurations and 4th sensor connector. ## [v4.2.0-beta.2] - 2019-07-15 ### Fixed * Fixed some compatibility issues in the EtherCAT state machine. * Profile settings are preserved when PID parameters are updated dynamically. * Fixed reading empty files over FoE. * Re-initialize the velocity and torque profiler when the controller is disabled. * Do not load the Supported drive modes objects from flash and fixed the default value. * Start the cogging recording algorithm after the QEI index search is finished * Report the "torque demand" unit from mNm to "per thousand of rated torque". * Fixed CANopen handling objects 0x1010 save and 0x1011 restore. * Configuration of the velocity controller is updated properly when switching to profile mode. ## [v4.2.0-beta.1] - 2019-07-08 ### Added * Position, velocity, and torque demand values are added to the PDO map by default. * Add filter (debounce interval) to STO and SBC signal diagnostics. * Second PDO map is possible for CANopen networks. * Report error (`HallSeq`) when there is an invalid hall state. * New notch filter warning (`NhFiFcHi`) when cutoff frequency is too high. * New notch filter warning (`NhFiPara`) when parameters are invalid. * New velocity feed-forward filter warning (`VffFcLo`) when cutoff frequency is too low. * New velocity feed-forward filter warning (`VffFcHi`) when cutoff frequency is too high. * Config.csv file reader writes format v1 and can read v0 and v1. * Report error for SSI resolution bigger than ST bits and frame size is too small. ### Changed * Implement encoder index search as a non-blocking function. * Warning `MtrParam` is renamed `MtrPara` for consistency with other warnings. ### Fixed * SAFETY: Fixed the communication timeout! Delay was 2.5 seconds instead of 100 ms. * Fix small position error when crossing QEI index after changing direction. * Fix BiSS communication issue with low frequency and large frame size * Fix DIO configuration by re-reading after transition to network OP state. * Add return STO/SBC status as 1 for fault states. * Fix wrong handling of input counter in SSI service. * Performance improvements were made in the Cogging recording procedure. * Cogging compensation is no longer disabled when a fault is thrown. * Fixed various A-Format encoder bugs regarding resolution and numerical formatting. * Drive rev.C works again. * Fixed writing floating point values to the config.csv file. * Control mode is enabled only after the pin brake was successfully released. * Fixed behavior of controller when actual position is outside of position limits. * Target reached set bit will be set/cleared based on the target value, instead of internal demand values. ## [v4.2.0-alpha.6] - 2019-06-14 ### Fixed * Torque controller integral limits were disabled. * Velocity feed-forward low pass filter is properly initialized. ## [v4.2.0-alpha.5] - 2019-06-14 ### Added * The ability to measure and scale an ADC measurement with a 5th order polynomial and optional pull-up resistor is available at (`0x2038`) External scaled measurement. * Circulo support for the internal pull-up resistor selection and temperature conversion is available (`0x2038` is used and automatic resistor selection on the hardware is performed). * Support for the SOMANET Safety Module is added. See (`0x2611`) Safety digital input diagnostics and (`0x6621`) Safety statusword. * CANopen works with slower baudrates; 100k, 125k and 250k. ### Changed * Cogging torque recording returns to the original position and limits motion to about 2 full rotations. * Cogging torque recording has improved the recording procedure and post-recording data analysis. * Data shuffling lags from motion control to object dictionary have been minimized. ### Fixed * Proper index alignment and negative velocity estimate is fixed for incremental encoders. * Incremental encoder counter improvements result in some increased speed. * Run-time error fixed for Safety module. * iC-MD and iC-NQC sensor port masks are corrected. * CANopen PDO init ignores long PDO maps and reconfigures at switch to operational mode. * Quick-stop bit in the Statusword was not being updated properly. * Position internal values are updated if the target has hit the software limit. ## [v4.2.0-alpha.4] - 2019-06-07 ### Added * Scaling is now possible for velocity objects to provide more precision. See SI unit velocity (`0x60A9`). * Added object for reading the Supported homing modes (`0x60e3`). * Preliminary support for CANopen (over CAN). * Preliminary support for the SOMANET Safety Module. * Support for the Synapticon SinCos module. * Support for the Synapticon Fast ABI module. * SDK: Added lots of BiSS configuration abilities. ### Changed * REM16 does not perform a reset on initialization; the position is now preserved. * SDK: the object dictionary memory access has been optimized for speed. * BiSS registers are written only after restart of the service. ### Removed * `app_demo_slave_sdo_handling` is retired. ### Fixed * A-format frame error was corrected. * Target ignored bit is set/cleared in CSV mode according to the specification. * Cogging torque recording has been improved for reliability in many ways. * Undervoltage is not an error if the drive is not yet in an operational state. * QEI sensor velocity estimation is fixed at low velocities. * QEI resolution can be higher without overflow. * Velocity-based angle prediction for commutation is more accurate. * Encoder error clearing has been improved. * Extra long Assigned name in the `config.csv` file will not cause a crash. * Maximum torque will be sustained near the voltage limits of the inverter. ## [v4.2.0-alpha.3] - 2019-05-10 ### Added * An Input counter (`0x2040`) has been added for devices that support it. * Motor switching frequency (`0x2010:9`) is now selectable (16, 32, 64 kHz). * Brake output switching frequency (`0x2004:11`) is now selectable (16, 32, 64 kHz). * Torque controller increased voltage efficiency across motor phases. Roughly 14% higher torque is available. * Profile position mode is available (Op mode +1). * Profile velocity mode is available (Op mode +3). * Profile torque mode is available (Op mode +4). * Nikon A-Format v2.0 protocol encoders are now supported. * Homing modes 33 and 34 are supported. See Homing speeds (`0x6099`) and Homing acceleration (`0x609A`). * Velocity feed-forward (`0x2015`) for the cascaded position controller is available. * Bit 11 ("internal limit active") of the Statusword is operational. This will be set to 1 when control values are saturated or other configured limit is reached. * Support for the Synapticon Fast ABI Module is added. * The log now reports the product ID and version numbers that the firmware was built for. ### Changed * Hall pin-out of the Drive boards rev C, D, and E were wrong! This fix requires re-running Commutation offset detection to properly detect the Hall sensor polarity! * Angle estimation is more accurate at high speeds. The (`0x2010:8`) Commutation angle measurement delay value may need to be re-tuned (or zero) for optimal performance. * Maximum size of PDO frames is raised from 64 to 1000 bytes. * PDO mapping objects have been reorganized and expanded. Three new Rx and Tx PDO mapping objects (`0x160n` and `0x1a0n` objects) are added, and the default mapping is spread out across the four maps (data index location in a PDO frame has been preserved). For both Tx and Rx, each map supports 10 objects, for a total of 40 objects in each direction. ### Fixed * Reference input for field weakening percentage is corrected to match the documentation (rated current). * Field weakening will better follow a high acceleration. * Angle measurement delay compensation units now match the documentation (microseconds) * Optimize torque controller performance at the control limits of the inverter when field weakening is applied. * Bus voltage measurement is a bit more accurate. * High resolution data objects have been reworked to be mappable to a PDO. * Velocity estimate is more accurate and stored with more precision. * Disengage the brake before QEI index detection is executed. * High resolution data object types have been changed to octet strings instead of visible strings. * Prevent DC synchronization drift for cases when internal cycle times are extended. * Statusword "operation enabled" bit is raised only after the controller is ready to receive commands. * Third-order low-pass filter parameters were tweaked to be exactly Butterworth. * Calculate torque even when disabled. Fixes feedback graph when the controller is disabled. * LED blink rate is updated for the faster cycle frequency. * Inverter errors for the Drive 100 rev C are fixed. * The previous log file is now properly deleted when the new log is rolled over. * Fixed calculation of third phase current for user-based over-current protection. * EtherCAT mailbox processing is much faster. * Improved hall position prediction at low speeds * Lots of minor issues were resolved. ## [v4.2.0-alpha.2] - 2019-03-22 ### Added * The drive control frequency has been increased from 1.0001 kHz to 4 kHz. This enables the use of an EtherCAT sync frequency of 4 kHz. * The motion controller frequency has been increased from 3.0003 kHz to 4 kHz. * The torque controller frequency has been increased from 15.0015 to 16 kHz. * Distributed clock support is available as a prototype. Use with caution. Supports clock frequencies up to 4 kHz. * When using the distributed clock, clock drift up to 100 ns per DC cycle is tolerated. Otherwise, warning `SynDifHi` is raised. * High resolution data (`0x20E1`) object was added. A prototype implementation is available. See the documentation for details. * The PWM component has been rewritten to support clock drift correction and boost bus voltage efficiency. This will enable faster max motor speeds and higher max torque! * Torque constant is being measured and reported in the log. This measurement takes place during the commutation offset detection procedure. * Notch filter on the velocity controller output is now available (`0x2023: Notch filter`). * Core temperature (`0x2030`) was added. This reports the measured temperature on the Core board near the SOMANET SoC. * Brake options (`0x2004:8`) Minimum displacement was added for pin brake configuration. * Brake options (`0x2004:9`) Maximum torque was added for pin brake configuration. * Brake options (`0x2004:10`) Output voltage was added for manual control of the 4th phase. * Following error tracking was added. See Following error window (`0x6065`), Following error timeout (`0x6066`), and Following error actual value (`0x60F4`). * Target window monitoring was added. See Position window (`0x6067`), Position window time (`0x6068`), Velocity window (`0x606D`), and Velocity window time (`0x606E`). * Motion control supervision was added. Position demand value (`0x6062`), Position demand internal value (`0x60FC`), Velocity demand value (`0x606B`) and Control effort (`0x60FA`) objects. * If a Hall sensor and QEI sensor are configured for commutation, the Hall sensor will be used at startup to avoid index detection. Hall, QEI, and motor phases have to be configured perfectly for this to work. See documentation for instructions. ### Changed * Brake options (`0x2004:4`) Release strategy has been changed to support manual operation. Check your brake settings. * The pin brake release procedure has been improved to be vastly smoother and more configurable. See Brake options (`0x2004`) for details. * Improved I2C service gathers data from devices in the background, and makes them available on a non-blocking interface call. ### Deprecated * The DC bus voltage (0x2004:6) sub-object is deprecated and will be removed in a future version. Use DC link circuit voltage (`0x6079`) instead. ### Removed * Pin brake disengage strategies for configurable torques has been removed completely. Use the (`0x2004:9`) Maximum torque parameter instead. ### Fixed * QEI services are now synchronized more reliably with the base cycle period. * QEI input frequency has been increased about 20%. ## [v4.2.0-alpha1] - 2018-12-14 ### Added * Homing mode 37 was added. This allows the master to 'zero' the drive at the current position. See the Homing Method (`0x6098`). * Motor parameters inductance, resistance, and pole pair number are being measured during commutation offset detection. Check the log for details. A warning will appear if the entered motor R and I values differ by 50%.