SPARK Flex Firmware Changelog

It is recommended to keep your SPARK Flex up-to-date with the latest firmware. The REV Hardware Client will automatically download the latest firmware, but you can also download the firmware manually below:

If notified by the REV Hardware Client, you may need to install your SPARK Flex Motor Controller's first firmware update via Recovery Mode.

Version 24.0.8

  • Fixes bug in velocity calculation when changing the encoder average depth

  • Fixes issue causing motor EEPROM to occasionally reload fully after disabling the motor, causing brief dropout of status frames

Version 24.0.7

  • Adds parameters for status frame periods

  • Performs contextual validation on the sensor type parameter

  • Always keeps the hall sensor active when in brushless mode, in addition to the specified sensor type

  • Recalculates the hall angle more frequently to prevent lockup

Version 24.0.6

  • Fixes issue where an invalid sensor type for a given motor type can cause a sensor fault

Version 24.0.5

  • Improves handling of errors on the CAN bus

  • Fixes incorrect EEPROM faults appearing

  • Reduces boot time

  • Properly handles the case where a CAN device sends a payload longer than 8 bytes

  • Improves internal watchdog

Version 24.0.4

  • Fixes issue where SPARK Flex constantly disables itself while running when certain third-party commands are being sent to the CAN bus

Version 24.0.3

  • Fixes position data inaccuracy when the position conversion factor is not 1

Version 24.0.2

  • Improves filtering of invalid PWM signals

    • Previously, noise on the signal wires could be occasionally be erroneously interpreted as a PWM signal, causing the motor to spin unexpectedly

  • Fixes issue where CAN errors would cause the device to switch between brake mode and coast mode, resulting in a clicking sound if you manually turned the motor

Version 24.0.0

Breaking Changes

  • Moves the IAccum value to periodic status frame 7

    • Periodic status frame 7 is new to this release, and by default is sent every 250ms.


  • Adds Orange/Green blink code to indicate temperature cutoff

  • Refuses to run in brushed mode when connected to a NEO Vortex

  • Improves the precision of the main encoder

    • Previously, the higher the position value was, the less precise the value would be

    • For the NEO Vortex's internal encoder, this change starts making a difference after only ~1,000 rotations

    • Requires REVLib 2024.2.0 or later or REV Hardware Client 1.6.2 or later to take advantage of the additional precision

  • Allows changing the CAN ID of a SPARK Flex connected directly via USB without affecting other SPARK devices on the CAN bus with the same CAN ID

  • Makes changes towards improving the reliability of saving and persisting parameters

Bug fixes

  • Fixes analog sensor values when it is configured to be inverted

  • Fixes setting the NEO encoder's position to values other than zero

  • Fixes the NEO encoder's position when the motor is inverted

Version 23.0.2

  • Adds support for updating the firmware via CAN and USB (without Recovery Mode)

Known issues

  • Setting the NEO encoder's position always resets the position to 0, regardless of the specified value

  • When the analog sensor is configured to be inverted, its reported values will be incorrect

Version 23.0.0

Initial version with intent to support equivalent features to SPARK MAX

  • Features requiring the SPARK Flex Dock (coming soon) are not yet supported, e.g. brushed motor driving and NEO/NEO550 brushless motor driving

  • Alternate Encoder Mode is not necessary for SPARK Flex, therefore it is replaced by the External Encoder Data Port feature:

    • Can be used simultaneously with the internal encoders in NEO class motors

    • Can be used simultaneously with an absolute encoder and limit switches

    • Virtually no RPM limit

    • No special configuration

Last updated