Skip to content

Releases: OctoPrint/OctoPrint-FirmwareUpdater

1.10.0

04 Mar 16:33
8e9def1
Compare
Choose a tag to compare
1.10.0 Pre-release
Pre-release

Changes

  • Adds the capability for multiple printer profiles to be configured.
    • Profiles are disabled by default and need to be enabled in the plugin options
    • Existing flash method and settings will be migrated to a new profile name 'Default'
    • Once enabled, profiles can be added, copied, and deleted
    • All flash method settings, including pre and post flash options, are stored in each profile
  • Settings UI has been updated to use tabbed pages
    • When profiles are disabled the settings are all accessed via the 'wrench' icon in the top right corner (same as prior versions)
    • When Profiles are enabled the settings are split into two screens
      • Plugin options are accessed via the 'wrench' icon in the top right corner
      • Flash / flash method settings are accessed via the 'cog' icon next to the update profile dropdown selection - the selected profile is always edited

Important: These changes have not yet been fully tested on Python 2!

Implementing these changes was a large re-write of the UI code, and many changes to the backend. Please test and report any problems in #74.

1.9.0

20 Feb 11:27
934559c
Compare
Choose a tag to compare

Changes

  • New plugin option to disable automatic reconnection after updating
  • New plugin option to allow disabling the file extension filters when browsing for a firmware file
    • Enhances compatibility with browsers which do not support the accept attribute, e.g. iOS and Android mobile browsers.
  • New options for lpc176x (and marlinbft) method to disable waiting for M997 command to complete and printer to come back online
    • Can be enabled to prevent 'Flashing failed' messages on printers which don't reset when M997 is sent, or don't return automatically
    • Can be combined with the 'Disable automatic reconnect' and 'Post-flash delay' options to prevent reconnection errors
  • New flash method, "marlinbft"
    Allows flashing LPC176x and STM32 boards using Marlin's Binary File Transfer protocol to copy firmware to the board (instead of mounting the SD card on the host)
    • Requires firmware compiled with #define BINARY_FILE_TRANSFER
    • Requires manual dependency installation
    • Read the warnings and caveats

Binary File Transfer Dependency

The plugin currently uses the marlin-binary-protocol package to implement the transfer protocol. This package has dependencies on heatshrink, which is hard to install automatically due to compatibility issues with Python 2 and Python 3. For this reason the marlin-binary-protocol package and the heatshrink dependency need to be installed manually using pip.

NB: If you are running OctoPrint in a VirtualEnv (as recommended) you need to run the appropriate pip commands below inside that environment. For OctoPi users, this is ~/oprint/bin/pip anywhere it says pip.

Python 2

  1. Install marlin-binary-protocol - the dependencies just work
    pip install marlin-binary-protocol
  2. Restart OctoPrint
    sudo service octoprint restart

Python 3

  1. Install a Python 3 compatible version of heatshrink to satisfy marlin-binary-protocol
    pip3 install https://github.com/p3p/pyheatshrink/releases/download/0.3.3/pyheatshrink-pip.zip
  2. Install marlin-binary-protocol
    pip3 install marlin-binary-protocol
  3. Restart OctoPrint
    sudo service octoprint restart

Binary File Transfer Warnings and Caveats

  1. The binary file transfer protocol is still work in progress
    While the current implementation works, it will change, and these changes will break the current version. As much as possible, I will try to support the current implementation and the final version, but my ability to do so may be limited due to dependencies on other libraries.

    If it comes to a choice, the final version will be the one which is supported.

  2. Your Raspberry Pi may crash, but it's not my fault
    While developing this I came across what seems to be a bug in the Raspberry Pi kernel, where it will sometimes panic (crash) when the printer board resets. To mitigate this, as of Feb 6th 2021, a 2s delay has been added to the LPC M997 reset routine which appears to stop the crash from happening. You will need to be running Marlin from the bugfix-2.0.x branch, after MarlinFirmware/Marlin@004bed8 to have the fix.

    On my test system, with the old reset code, I would easily crash my Pi anywhere between 1-25 resets. After the change I have flashed the board dozens of times and reset it 500+ times without crashing it.

    That said, the underlying bug still exists, so you may still experience your Pi crashing when the board resets. Caveat emptor.

Please report any testing results by commenting on issue #195.

1.8.1rc2

18 Feb 20:54
5f34bf5
Compare
Choose a tag to compare
1.8.1rc2 Pre-release
Pre-release

Release candidate for 1.8.1.

Changes

  • New plugin option to disable automatic reconnection after updating
  • New plugin option to allow disabling the file extension filters when browsing for a firmware file
    • Enhances compatibility with browsers which do not support the accept attribute, e.g. iOS and Android mobile browsers.
  • New options for lpc176x (and marlinbft) method to disable waiting for M997 command to complete and printer to come back online
    • Can be enabled to prevent 'Flashing failed' messages on printers which don't reset when M997 is sent, or don't return automatically
    • Can be combined with the 'Disable automatic reconnect' and 'Post-flash delay' options to prevent reconnection errors
  • New flash method, "marlinbft"
    Allows flashing LPC176x and STM32 boards using Marlin's Binary File Transfer protocol to copy firmware to the board (instead of mounting the SD card on the host)
    • Requires firmware compiled with #define BINARY_FILE_TRANSFER
    • Requires manual dependency installation
    • Read the warnings and caveats

Binary File Transfer Dependency

The plugin currently uses the marlin-binary-protocol package to implement the transfer protocol. This package has dependencies on heatshrink, which is hard to install automatically due to compatibility issues with Python 2 and Python 3. For this reason the marlin-binary-protocol package and the heatshrink dependency need to be installed manually using pip.

NB: If you are running OctoPrint in a VirtualEnv (as recommended) you need to run the appropriate pip commands below inside that environment. For OctoPi users, this is ~/oprint/bin/pip anywhere it says pip.

Python 2

  1. Install marlin-binary-protocol - the dependencies just work
    pip install marlin-binary-protocol
  2. Restart OctoPrint
    sudo service octoprint restart

Python 3

  1. Install a Python 3 compatible version of heatshrink to satisfy marlin-binary-protocol
    pip3 install https://github.com/p3p/pyheatshrink/releases/download/0.3.3/pyheatshrink-pip.zip
  2. Install marlin-binary-protocol
    pip3 install marlin-binary-protocol
  3. Restart OctoPrint
    sudo service octoprint restart

Binary File Transfer Warnings and Caveats

  1. The binary file transfer protocol is still work in progress
    While the current implementation works, it will change, and these changes will break the current version. As much as possible, I will try to support the current implementation and the final version, but my ability to do so may be limited due to dependencies on other libraries.

    If it comes to a choice, the final version will be the one which is supported.

  2. Your Raspberry Pi may crash, but it's not my fault
    While developing this I came across what seems to be a bug in the Raspberry Pi kernel, where it will sometimes panic (crash) when the printer board resets. To mitigate this, as of Feb 6th 2021, a 2s delay has been added to the LPC M997 reset routine which appears to stop the crash from happening. You will need to be running Marlin from the bugfix-2.0.x branch, after MarlinFirmware/Marlin@004bed8 to have the fix.

    On my test system, with the old reset code, I would easily crash my Pi anywhere between 1-25 resets. After the change I have flashed the board dozens of times and reset it 500+ times without crashing it.

    That said, the underlying bug still exists, so you may still experience your Pi crashing when the board resets. Caveat emptor.

Please report any testing results by commenting on issue #195.

1.8.1rc1

16 Feb 20:03
3aad0f8
Compare
Choose a tag to compare
1.8.1rc1 Pre-release
Pre-release

Release candidate for 1.8.1.

Changes

  • New plugin option to allow disabling the file extension filters when browsing for a firmware file
    Enhances compatibility with browsers which do not support the accept attribute, e.g. iOS and Android mobile browsers.
  • New flash method, "marlinbft"
    Allows flashing LPC176x and STM32 boards using Marlin's Binary File Transfer protocol to copy firmware to the board (instead of mounting the SD card on the host)
    • Requires firmware compiled with #define BINARY_FILE_TRANSFER
    • Requires manual dependency installation
    • Read the warnings and caveats

Binary File Transfer Dependency

The plugin currently uses the marlin-binary-protocol package to implement the transfer protocol. This package has dependencies on heatshrink, which is hard to install automatically due to compatibility issues with Python 2 and Python 3. For this reason the marlin-binary-protocol package and the heatshrink dependency need to be installed manually using pip.

NB: If you are running OctoPrint in a VirtualEnv (as recommended) you need to run the appropriate pip commands below inside that environment. For OctoPi users, this is ~/oprint/bin/pip anywhere it says pip.

Python 2

  1. Install marlin-binary-protocol - the dependencies just work
    pip install marlin-binary-protocol
  2. Restart OctoPrint
    sudo service octoprint restart

Python 3

  1. Install a Python 3 compatible version of heatshrink to satisfy marlin-binary-protocol
    pip3 install https://github.com/p3p/pyheatshrink/releases/download/0.3.3/pyheatshrink-pip.zip
  2. Install marlin-binary-protocol
    pip3 install marlin-binary-protocol
  3. Restart OctoPrint
    sudo service octoprint restart

Binary File Transfer Warnings and Caveats

  1. The binary file transfer protocol is still work in progress
    While the current implementation works, it will change, and these changes will break the current version. As much as possible, I will try to support the current implementation and the final version, but my ability to do so may be limited due to dependencies on other libraries.

    If it comes to a choice, the final version will be the one which is supported.

  2. Your Raspberry Pi may crash, but it's not my fault
    While developing this I came across what seems to be a bug in the Raspberry Pi kernel, where it will sometimes panic (crash) when the printer board resets. To mitigate this, as of Feb 6th 2021, a 2s delay has been added to the LPC M997 reset routine which appears to stop the crash from happening. You will need to be running Marlin from the bugfix-2.0.x branch, after MarlinFirmware/Marlin@004bed8 to have the fix.

    On my test system, with the old reset code, I would easily crash my Pi anywhere between 1-25 resets. After the change I have flashed the board dozens of times and reset it 500+ times without crashing it.

    That said, the underlying bug still exists, so you may still experience your Pi crashing when the board resets. Caveat emptor.

Please report any testing results by commenting on issue #195.

1.8.1b3

14 Feb 12:44
129abc6
Compare
Choose a tag to compare
1.8.1b3 Pre-release
Pre-release

Should be the final beta version for 1.8.1.

Changes

  • New plugin option to allow disabling the file extension filters when browsing for a firmware file
    Enhances compatibility with browsers which do not support the accept attribute, e.g. iOS and Android mobile browsers.
  • New flash method, "marlinbft"
    Allows flashing LPC176x and STM32 boards using Marlin's Binary File Transfer protocol to copy firmware to the board (instead of mounting the SD card on the host)
    • Requires firmware compiled with #define BINARY_FILE_TRANSFER
    • Requires manual dependency installation
    • Read the warnings and caveats

Binary File Transfer Dependency

The plugin currently uses the marlin-binary-protocol package to implement the transfer protocol. This package has dependencies on heatshrink, which is hard to install automatically due to compatibility issues with Python2 and Python3. For this reason the marlin-binary-protocol package and the heatshrink dependency need to be installed manually using pip.

NB: If you are running OctoPrint in a VirtualEnv you need to run the appropriate pip commands below inside that environment.

Python 2

  1. Install marlin-binary-protocol - the dependencies just work
    pip install marlin-binary-protocol
  2. Restart OctoPrint
    sudo service octoprint restart

Python3

  1. Install a Python 3 compatible version of heatshrink to satisfy marlin-binary-protocol
    pip3 install https://github.com/p3p/pyheatshrink/releases/download/0.3.3/pyheatshrink-pip.zip
  2. Install marlin-binary-protocol
    pip3 install marlin-binary-protocol
  3. Restart OctoPrint
    sudo service octoprint restart

Binary File Transfer Warnings and Caveats

  1. The binary file transfer protocol is still work in progress
    While the current implementation works, it will change, and these changes will break the current version. As much as possible, I will try to support the current implementation and the final version, but my ability to do so may be limited due to dependencies on other libraries.

    If it comes to a choice, the final version will be the one which is supported.

  2. Your Raspberry Pi may crash, but it's not my fault
    While developing this I came across what seems to be a bug in the Raspberry Pi kernel, where it will sometimes panic (crash) when the printer board resets. To mitigate this, as of Feb 6th 2021, a 2s delay has been added to the LPC M997 reset routine which appears to stop the crash from happening. You will need to be running Marlin from the bugfix-2.0.x branch, after MarlinFirmware/Marlin@004bed8 to have the fix.

    On my test system, with the old reset code, I would easily crash my Pi anywhere between 1-25 resets. After the change I have flashed the board dozens of times and reset it 500+ times without crashing it.

    That said, the underlying bug still exists, so you may still experience your Pi crashing when the board resets. Caveat emptor.

Please report any testing results by commenting on issue #195.

1.8.1b2

10 Feb 13:01
2796d9f
Compare
Choose a tag to compare
1.8.1b2 Pre-release
Pre-release

Changes

  • New plugin option to allow disabling the file extension filters when browsing for a firmware file
    Enhances compatibility with browsers which do not support the accept attribute, e.g. iOS and Android mobile browsers.
  • New flash method, "marlinbft"
    Allows flashing LPC176x and STM32 boards using Marlin's Binary File Transfer protocol to copy firmware to the board (instead of mounting the SD card on the host)
    • Requires firmware compiled with #define BINARY_FILE_TRANSFER
    • Requires manual dependency installation
    • Read the warnings and caveats

Binary File Transfer Dependency

The plugin currently uses the marlin-binary-protocol package to implement the transfer protocol. This package has dependencies on heatshrink, which is hard to install automatically due to compatibility issues with Python2 and Python3. For this reason the marlin-binary-protocol package and the heatshrink dependency need to be installed manually using pip.

NB: If you are running OctoPrint in a VirtualEnv you need to run the appropriate pip commands below inside that environment.

Python 2

  1. Install marlin-binary-protocol - the dependencies just work
    pip install marlin-binary-protocol
  2. Restart OctoPrint
    sudo service octoprint restart

Python3

  1. Install a Python 3 compatible version of heatshrink to satisfy marlin-binary-protocol
    pip3 install https://github.com/p3p/pyheatshrink/releases/download/0.3.3/pyheatshrink-pip.zip
  2. Install marlin-binary-protocol
    pip3 install marlin-binary-protocol
  3. Restart OctoPrint
    sudo service octoprint restart

Binary File Transfer Warnings and Caveats

  1. The binary file transfer protocol is still work in progress
    While the current implementation works, it will change, and these changes will break the current version. As much as possible, I will try to support the current implementation and the final version, but my ability to do so may be limited due to dependencies on other libraries.

    If it comes to a choice, the final version will be the one which is supported.

  2. Your Raspberry Pi may crash, but it's not my fault
    While developing this I came across what seems to be a bug in the Raspberry Pi kernel, where it will sometimes panic (crash) when the printer board resets. To mitigate this, as of Feb 6th 2021, a 2s delay has been added to the LPC M997 reset routine which appears to stop the crash from happening. You will need to be running Marlin from the bugfix-2.0.x branch, after MarlinFirmware/Marlin@004bed8 to have the fix.

    On my test system, with the old reset code, I would easily crash my Pi anywhere between 1-25 resets. After the change I have flashed the board dozens of times and reset it 500+ times without crashing it.

    That said, the underlying bug still exists, so you may still experience your Pi crashing when the board resets. Caveat emptor.

Please report any testing results by commenting on issue #195.

1.8.1b1

08 Feb 13:25
09c8798
Compare
Choose a tag to compare
1.8.1b1 Pre-release
Pre-release

Changes

  • New plugin option to allow disabling the file extension filters when browsing for a firmware file
    Enhances compatibility with browsers which do not support the accept attribute, e.g. iOS and Android mobile browsers.
  • New flash method, "marlinbft"
    Allows flashing LPC176x and STM32 boards using Marlin's Binary File Transfer protocol to copy firmware to the board (instead of mounting the SD card on the host)
    • Requires firmware compiled with #define BINARY_FILE_TRANSFER

Warnings and Caveats

  1. The binary file transfer protocol is still work in progress
    While the current implementation works, it will change, and these changes will break the current version. As much as possible, I will try to support the current implementation and the final version, but my ability to do so may be limited due to dependencies on other libraries.

    If it comes to a choice, the final version will be the one which is supported.

  2. Your Raspberry Pi may crash, but it's not my fault
    While developing this I came across what seems to be a bug in the Raspberry Pi kernel, where it will sometimes panic (crash) when the printer board resets. To mitigate this, as of Feb 6th 2021, a 2s delay has been added to the LPC M997 reset routine which appears to stop the crash from happening. You will need to be running Marlin from the bugfix-2.0.x branch, after MarlinFirmware/Marlin@004bed8 to have the fix.

    On my test system, with the old reset code, I would easily crash my Pi anywhere between 1-25 resets. After the change I have flashed the board dozens of times and reset it 500+ times without crashing it.

    That said, the underlying bug still exists, so you may still experience your Pi crashing when the board resets. Caveat emptor.

Please report any testing results by commenting on issue #195.

1.8.1b0

06 Feb 13:06
0e90022
Compare
Choose a tag to compare
1.8.1b0 Pre-release
Pre-release

Changes

  • New flash method, "marlinbft"
    Allows flashing LPC176x and STM32 boards using Marlin's Binary File Transfer protocol to copy firmware to the board (instead of mounting the SD card on the host)
    • Requires firmware compiled with #define BINARY_FILE_TRANSFER

Warnings and Caveats

  1. The binary file transfer protocol is still work in progress
    While the current implementation works, it will change, and these changes will break the current version. As much as possible, I will try to support the current implementation and the final version, but my ability to do so may be limited due to dependencies on other libraries.

    If it comes to a choice, the final version will be the one which is supported.

  2. Your Raspberry Pi may crash, but it's not my fault
    While developing this I came across what seems to be a bug in the Raspberry Pi kernel, where it will sometimes panic (crash) when the printer board resets. To mitigate this, as of Feb 6th 2021, a 2s delay has been added to the LPC M997 reset routine which appears to stop the crash from happening. You will need to be running Marlin from the bugfix-2.0.x branch, after MarlinFirmware/Marlin@004bed8 to have the fix.

    On my test system, with the old reset code, I would easily crash my Pi anywhere between 1-25 resets. After the change I have flashed the board dozens of times and reset it 500+ times without crashing it.

    That said, the underlying bug still exists, so you may still experience your Pi crashing when the board resets. Caveat emptor.

Please report any testing results by commenting on issue #195.

1.8.0

02 Feb 20:59
f8d2d40
Compare
Choose a tag to compare

Changes

  • Reorganized the settings UI to make things easier to configure
  • Renamed lpc1768 to lpc176x in drop down list
  • For lpc176x method
    • Added short delay after sending M22 to give board time to release the SD card
    • Improved progress messages during lpc176x flashing

1.8.0rc3

01 Feb 19:30
15edef8
Compare
Choose a tag to compare
1.8.0rc3 Pre-release
Pre-release

Release candidate for 1.8.0

Changes

  • Settings UI re-org
  • Rename lpc1768 to lpc176x in UI
  • Add short delay after sending M22 to give board time to release the SD card
  • Improve progress messages during lpc176x flashing