SPARK MAX Smart Motion Beta - Firmware Release v1.1.26
Due to the number of new features added to the SPARK MAX software for the next release, the initial release will be a beta. We are working on additional documentation for the new modes added. During this time things are subject to change, however this will be kept to a minimum. Details are also reflected on the beta section of our site.
REV Smart Motion Trapezoidal Motion Profiling is now available on board the SPARK MAX. This feature combines the built in velocity PID controller with user defined constraints to provide easy and smooth motion for mechanisms such as elevators and arms, all on-board the SPARK MAX.
Voltage Compensation Add even more repeatability to your auton by using the built in voltage compensation mode. With this mode, you can now set a nominal voltage used to compensate the voltage output by the controller.
Built-in PID controller improvements Set max integral values, filter noisy derivative terms, pre-load the sensor position, and more.
Check out the release notes for a complete list of firmware changes and improvements, and as always, you can track our development on our public Trello board.
Links
Online API Installer Link https://www.revrobotics.com/content/sw/max/sdk/REVRobotics-Beta.json
Release Notes
Firmware
- 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()
Note: Upgrades to this firmware version will clear most parameters flashed into the controller except for CAN ID, Motor Type, Sensor Type, Idle Mode, Input Deadband
RoboRIO API
- 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
Special Thanks
We appreciate the assistance from the community for feedback, contributing and testing these new features, specifically a huge thank you to Team 195 CyberKnights