SPARK MAX Software Resources

All of the software resources for the SPARK MAX can be found below.

Table of Contents


SPARK MAX Client Application

Update, configure, and test your SPARK MAX Motor Controller with the SPARK MAX Client application.

Latest SPARK MAX Client - Version 0.11.15

The SPARK MAX Client will not work with SPARK MAX beta units distributed by REV to the SPARK MAX beta testers. It is only compatible with units received after 12/21/2018.

System Requirements

  • Windows 10 recommended
  • Internet connection for automatic updates

Installation Instructions

  1. Download the SPARK MAX Client installer above.
  2. Run the installer. Windows may require approval to install the application.
  3. Once installed, run the application. If prompted, be sure to grant network access. Without network access, the client software won't be able to download the latest SPARK MAX firmware and client updates.

    windowsfirewall.png

Troubleshooting

As we get feedback from users and identify exact causes for issues, please look back here for troubleshooting help. If you are running into issues running the SPARK MAX Client try the following BEFORE contacting support@revrobotics.com:

  • Try running the SPARK MAX Client as an Administrator
  • Make sure that Windows is fully up-to-date. Some computers have Windows Update disabled and need to be updated manually.
  • Check the Device Manager and verify that the SPARK MAX shows up as one of the following two devices with no caution symbols:
    • Normal operating mode: Device Manager -> Ports (COM & LPT) -> USB Serial Device (COMx)
    • Recovery mode: Device Manager -> Universal Serial Bus Controllers -> STM Device in DFU Mode

 


SPARK MAX Firmware Updates

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

Latest Firmware - Version

 

MD5:

This firmware will not work with SPARK MAX beta units distributed by REV to the SPARK MAX Beta testers. It is only compatible with units received after 12/20/2018.

Latest Firmware Change Log - Version 1.0.381

  • Improvement to the Smart Current Limit when changing direction (fixes forward/reverse delay)
  • CAN framing improvements for get/set parameter calls (required for C++/Java API)
  • Other small improvements

Firmware Update Instructions

Follow the steps below to update the firmware on your SPARK MAX:

  1. Connect your SPARK MAX Motor Controller to your computer with a USB C cable.
  2. Open the REV SPARK MAX Client application.
  3. If your SPARK MAX is running outdated firmware, you will be notified with a pop-up window like the one pictured below:

    Outdated Firmware Warning

  4. Click OK and then navigate to the Firmware tab. The client application should display the current firmware version on the screen:

    firmwaretab.png

  5. Click Load Firmware and select the latest firmware file in the firmware directory that the client created on startup. If there isn't a firmware directory, you can also navigate to a file that was downloaded manually. Click Open once the appropriate firmware file is selected:

    firmwarefileselection.png

  6. If this is the first time updating firmware on your SPARK MAX, there will be additional instructions to follow in the grey window before the firmware can be updated (pictured below). Otherwise, the firmware will download and verify automatically.

    recoveryupdate.png

  7. Once completed, the new firmware version number will be displayed under Current Firmware:

    firstfirmwareupdatecomplete.png

API Information

Below you will find information on how to download and install the SPARK MAX APIs for LabVIEW, Java, and C++.

LabVIEW API

Latest LabVIEW API - Version 1.0.0-26

LabVIEW API Installation Instructions

  1. Download the latest API package from the download link above.
  2. Make sure LabVIEW for FRC 2019 is installed and updated.
  3. Open the REV SPARK MAX LabVIEW Package. The NI Package Manager should automatically open.
  4. Click Next:

    nipackagemanager.png

  5. Once the installation is complete, you will be able to access the REV SPARK MAX VIs in the LabVIEW Functions Pallet -> WPI Robotics Library -> Third Party -> REV Robotics -> SPARK MAX.

    sparkmaxpallet.png

Java API

Java API Installation Instructions

Online Installation

You can use the online method to install the REV Robotics Java API if your development machine is connected to the internet:

  1. Open your robot project in VSCode.
  2. Click on the WPI icon in the corner to open the WPI Command Pallet.
  3. Select Manage Vendor Libraries.
  4. Select Install new library (online).
  5. Enter the following installation URL and press ENTER:

    https://www.revrobotics.com/content/sw/max/sdk/REVRobotics.json

Offline Installation

Latest Java API - Version 1.0.27

  1. Download and unzip the latest SPARK MAX Java API into the C:\Users\Public\frc2019\ directory.
  2. Follow the Adding an offline-installed Library instructions from WPI.

Java API Documentation

For a list and description of all classes:

C++ API

C++ API Installation Instructions

Online Installation

You can use the online method to install the REV Robotics C++ API if your development machine is connected to the internet:

  1. Open your robot project in VSCode.
  2. Click on the WPI icon in the corner to open the WPI Command Pallet.
  3. Select Manage Vendor Libraries.
  4. Select Install new library (online).
  5. Enter the following installation URL and press ENTER:

    https://www.revrobotics.com/content/sw/max/sdk/REVRobotics.json

Offline Installation

Latest C++ API - Version 1.0.27

  1. Download and unzip the latest SPARK MAX C++ API into the C:\Users\Public\frc2019\ directory.
  2. Follow the Adding an offline-installed Library instructions from WPI.

C++ API Documentation

For a list and description of all classes:


SPARK MAX Code Examples

At the link below you will find code examples in LabVIEW, Java, and C++ for common SPARK MAX control modes. We will be adding examples as we develop them, so please check back regularly. Examples included as of 1/16/19:

  • LabVIEW
    • Arcade Drive with CAN
    • Arcade Drive with PWM
    • Get and Set Parameters
    • Limit Switch
    • Position Closed-loop Control
    • Reading Encoder Values
    • Velocity Closed-loop Control
  • Java
    • Get and Set Parameters
    • Limit Switch
    • Motor Follower
    • Position Closed-loop Control
    • Reading Encoder Values
    • Tank Drive with CAN
    • Velocity Closed-loop Control
  • C++
    • Arcade Drive with CAN
    • Arcade Drive with PWM
    • Get and Set Parameters
    • Limit Switch
    • Position Closed-loop Control
    • Reading Encoder Values
    • Velocity Closed-loop Control

Even though some examples may only exist in a particular language, they can be a good place to start as the APIs are very similar between languages.