Firmware Upgrade

An Arm Controller firmware is compatible with a driver if their major and minor versions match exactly. For example, the driver v1.3.x is compatible with the Arm Controller firmware v1.3.x.

Typically an Arm Controller comes with the firmware compatible with the latest driver as of the manufacturing date. As a result, when a new driver is released, the Arm Controller firmware may need to be updated.

To upgrade, follow these steps.

  1. Install the Teensy Loader CLI if not already installed

    # Install the dependencies
    sudo apt update
    sudo apt install build-essential libusb-dev
    
    # Clone the repository
    git clone https://github.com/PaulStoffregen/teensy_loader_cli.git
    
    # Compile the source code
    cd teensy_loader_cli
    make
    
    # Copy the executable to the system path
    sudo cp teensy_loader_cli /usr/local/bin
    
    # Configure the udev rules
    sudo wget -O /etc/udev/rules.d/00-teensy.rules https://www.pjrc.com/teensy/00-teensy.rules
    
  2. Flash the firmware

    IMPORTANT! Use the driver compatible with the current firmware to backup all configurations as in configuration_in_yaml.

    Connect the Arm Controller to the Linux PC with a USB to micro-USB cable.

    Download the new firmware at Downloads.

    Unzip and flash the new firmware using the following commands.

    # Unzip the firmware
    unzip firmware-wxai_v0.zip
    
    # Flash the firmware
    teensy_loader_cli --mcu=TEENSY41 -s firmware-wxai_v0.hex
    

Warning

The expected behavior of Configuration through a firmware upgrade is as follows.

  • Upgrade, e.g., from v1.8.x to v1.9.x

    • Fields compatible with the new firmware will be retained.

    • Fields added in the new firmware will be set to default values.

  • Downgrade, e.g., from v1.9.x to v1.8.x

    • STRONGLY NOT RECOMMENDED

    • All fields will be reset to default values.

    • Default values of arm-specific fields calibrated at manufacturing, e.g., trossen_arm::JointCharacteristic, will be replaced by one-size-fits-all values leading to degraded performance.

What’s Next

With the firmware updated, continue to Configuration.