All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Changed
- Replaced moodycamel::ReaderWriterQueue with a custom ThreadSafeQueue.
- Added a wait to ensure the number of slaves stabilizes before starting initialization.
Fixed
- SPoE state changes now correctly determine success by comparing the returned state with the requested state, instead of relying on the previous success code.
Removed
- Removed 0x2041:01 (Motor current / Vector amplitude) from the default PDO mapping, as it is not present in firmware version v5.1.x.
5.0.7 - 2025-09-23
Changed
- Improved file read/write robustness by retrying when an undefined FoE error code occurs.
5.0.6 - 2025-09-19
Changed
- Server now starts before initiating the standalone auto-tuning process.
Removed
- Logging of the read Bode plot file content.
5.0.5 - 2025-09-19
Added
- Support for newer Circulo Integrated Encoder revisions by forcing them to use the older revision. (1301230668)
- Linting scripts and updated GitHub workflows.
Changed
- Added support for skipping specified files during firmware installation (e.g., SOMANET_CiA_402.xml.zip). (1723521044)
- Source code updated to comply with linting rules (cpplint).
- Removed unused IgH EtherCAT Master–related source code.
5.0.4 - 2025-09-17
Added
- Process GetSystemInformation request message. (1748104048)
5.0.3 - 2025-09-04
Changed
- Rename the command-line driver option from 'ethernet' to 'spoe'.
5.0.2 - 2025-09-04
Added
- Added a command-line option to configure the PDO mode of SPoE devices. (1741743151)
5.0.1 - 2025-08-14
Removed
- Dropped support for ZeroMQ and removed it as a dependency. (1727893901)
5.0.0 - 2025-07-31
Added
- Added support for the SOMANET Protocol over Ethernet (SPoE).
Changed
- Switched to a newer version of the standalone auto-tuning program featuring enhanced system identification, improved exception handling, and Bode plot generation.
Changed
- When the device enters the SAFEOP state, recovery attempt messages are now logged only in Motion Master and no longer sent to the UI.
Fixed
- Fixed an issue where gains were zero during iterative sharpening auto-tuning at the start of the Cogging Torque Compensation recording procedure, which caused sudden motion jumps. (1621619964)
Added
- Initial implementation of the UI PDO Mapping feature. (1654097885)
Added
- Initial implementation of the somepp static library.
Changed
- Log now displays SDO index and subindex values in hexadecimal instead of decimal.
Fixed
- Fixed checkstate to re-read the master state after acknowledging a SAFE-OP error, preventing it from getting stuck in SAFEOP-ERROR.
Added
- Added external_circulo_type attribute to the Encode Configuration procedure.
Changed
- Updated the standalone auto-tuning functions to use IPC, significantly improving performance compared to running the program via CLI. (1571985290)
Fixed
- Resolved the issue preventing Integro devices from recovering from the SAFE-OP+ERROR state. (1599593149)
Added
- Added the inclusion of the chrono library where necessary.
Added
- Added logging to capture parameters that exceed the allowed range for the specified entry type.
Changed
- Updated the list of SI unit velocity parameters and added new options for RPM and RPS, including kilo, mega, giga, and tera.
Added
- Added the "measurement only" flag to the Circulo encoder's narrow-angle calibration procedure. (1299302456)
Changed
- Manual mapping and configuration of FMMUs and Sync Managers in the PREOP EtherCAT state.
- Device recovery limited to transitioning from SAFE-OP to OP EtherCAT state.
- Sleeping for 80 milliseconds only when FoE returns as busy.
Changed
- On a failed roundtrip, read the number of slaves only once, with the timeout reduced from 500 ms to 100 ms.
Changed
- Skipping the initialization of third-party devices to reduce loading times.
Changed
- Modified the transition points for updating the sync managers.
- Revised CTC recording log and enhanced fault state logging.
- Prevented redundant updates to the local object dictionary PDO mapping.
Changed
- Upgraded standalone-autotuning to version 2.0.0, now including the duration time value for each operation.
Fixed
- Fixed write access error when running next-gen System Identification on Linux. (1582222631)
Changed
- Updated success criteria for Circulo encoder calibration. (1553641201)
Fixed
- Fixed an issue with SDO writes for BOOL values, which were always being set to 0. (1566713098)
Added
- Logging for changes in slave count.
Fixed
- Resolved an issue with slave count timeout that caused Motion Master to reinitialize all devices.
Changed
- Improved robustness of FoE operations, adding retries for program errors and flash disk full error codes. (1472154716)
- Updated the Quick Stop functions to reset the Torque Target and Offset values to 0 in CSP and PT modes. (1452182434)
Added
- Include the maximum acceleration for battery mode in the Circulo Encoder Configuration request. (1366713298)
- Enabled automatic configuration for detected SMM devices in SOEM. (1472147544)
- Enabled PDO remapping functionality with SOEM. (1484358597)
- Added support for specifying WebSocket ports as command-line arguments. (1150020418)
Fixed
- Prevented slicing of fs-buffer file content when the size exceeds the IgH maximum file size limit. (1242309971)
- Resolved segmentation fault triggered by the SIGTERM signal in Linux when using the IgH EtherCAT Master. (1377203870)
- Fixed 'GLIBC_2.34' not found error, and occasional failure to start with an 'Alarm clock' error on Linux. (1504138772)