SPARK MAX - Firmware Release v1.1.31
I want to thank all of the folks who have updated to the beta firmware and all of the feedback you have given us. We have made a few additional changes, run through extensive testing, and are ready to take this to a full release.
With this release includes an update for the C++/Java/LabVIEW APIs, as well as a GUI update. You can find all of this on our software resources page, or with the direct links below:
- SPARK MAX Client v1.0.0
- Firmware v1.1.31 (This is also auto-downloaded by the client)
- C++/Java API v1.1.8 Offline
- LabVIEW Installer v1.1.8
- Java Docs
- C++ Docs
- Online API Installer Link https://www.revrobotics.com/content/sw/max/sdk/REVRobotics.json
As always you can keep up to date on our development process on our public Trello board.
- There has been a reported issue with following Phoenix devices in modes other than Percent Output. Thank you @juju_beans for the suggested work-around. We have done what we can to support this feature, but unfortunately this has been a moving target as this has changed from our initial support. Without a spec it is difficult for us to officially support it. We have reached out to the vendor for a spec but have been unable to get the required information. As such, this feature is not officially supported. Instead of focusing support on this function we have worked to implement our new features such as REV Smart Motion and others on our roadmap to remove the necessity of following other motors/controllers.
- Adds new Smart Velocity mode - uses same constrains as the Smart Motion mode but outputs velocity instead of position. This is not a motion profiling mode, but rather provides acceleration limiting as opposed to simple ramp rates.
- Improvements to heartbeat implementation.
- CAN ID of 0 now considered ‘unconfigured’ and will not be enabled.
- Changes the default output range for all PID slots to be [-1,1] instead of [0,0]
- Changes setpoint commands to ‘stick’ instead of relying on periodic frames from the controller.
- Follow mode can now persists through a power-cycle.
- Periodic Status 2 (position data) frame rate default changed from 50ms to 20ms.
- Watchdog changed to 220ms.
- Proportional blink codes while driving now have a minimum blink rate (minimum is same as 10% applied output blink rate).
- Fault flag ‘over voltage’ replaced with ‘IWDT Reset’.
- Velocity and Position conversion factors are now used for all internal PID calculations.
- Adds new Smart Motion mode utilizing trapezoidal motion profiling
- Improvements to velocity decoding for low speeds and associated PID control loops requiring control at low speeds
- Improvements to gate driver fault handling
- Adds voltage compensation mode
- Adds ability to set the stored sensor position
- Adds ability to set the max PID integral accumulator value to prevent integral windup
- Adds ability to set the PID I accumulator value
- Adds filter function to PID derivative value
- Adds closed loop current control
- Adds closed loop ramp rate separate from open loop
- Adds ability to follow Phoenix 4.11 motor controllers
- Note: The ability of this feature depends on the firmware of the Phoenix controllers, and is not controlled by REV. We will do our best to build this functionality, but this is not an officially supported feature.
- Adds ability to set a unit conversion for both velocity and position units
- Adds ability to reset to factory defaults
- Improvements to smart current limits
- Improvements to current data sent over CAN
- Improvements to internal settings table implementation
- Calling the constructor no longer resets the encoder count, this must be done manually by running CANEncoder.setPosition()
- Adds smart velocity mode
- Fixes inversion issues for IMaxAccum and Output Range
- Updates heartbeat implementation
- Adds default slotID for setDFilter() functions
- Updates heartbeat rate from 50ms to 25ms
- Changes fault flag for Overvoltage to IWDTReset
- Improvements to setInverted()
- New API calls for new firmware features
- Better error message in Java when CAN is not connected
- Doc updates are in progress
SPARK MAX Client Changelog
- Added ‘Factory Reset’ option in the ‘Advanced’ tab
- All fields set when you change them and are only saved when you press ‘Save Configuration’
- MotorConfiguration class can now be completely serialized/deserialized into JSON format.
- All text fields now provide real-time feedback in terms of their validity to the SPARK Server
- Invalid fields will reveal a blinking question circle. Hover over it to see why the value is invalid.
- In brushless mode, only the ‘Hall Effect’ sensor may be selected, and will default when brushless is selected.
- ‘Run’ tab now provides feedback on invalid/valid PIDF values.
- Updated SPARK Server executable and Command/Types protocol buffers.
- The client now knows when the SPARK MAX controller is disconnected, and acts appropriately.
- Ramp rate has been changed to %/s (seconds to full speed)
- Motor deadband slider now only goes to values 0 to 0.3
- Client now waits for parameters from the SPARK Server before anything may be interacted with.
- Fixed firmware update requiring recovery update for firmware versions 1.1.x
- Properly disconnects SPARK MAX controller on application close.