• Stars
    star
    351
  • Rank 120,120 (Top 3 %)
  • Language
    Python
  • License
    GNU Affero Genera...
  • Created about 9 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OctoPrint plugin for flashing pre-compiled firmware images to a 3D printer.

OctoPrint Firmware Updater Plugin

The Firmware Updater plugin can be used to flash pre-compiled firmware images to your printer from a local file or URL.

Firmware Updater

Documentation Index

  1. Supported Boards
  2. Plugin Installation
  3. Plugin Configuration
  4. Flashing Firmware
  5. Advanced Options
    1. Customizing the Command Lines
    2. Pre and Post Flash Settings
    3. Plugin Options
  6. Troubleshooting
  7. Donations

Supported Boards

The plugin supports a variety of boards, based on the MCU (processor) they have:

Description Examples Flash Method
Atmel ATmega 8-bit MCUs RAMPS, Sanguinololu, Melzi, Anet, Creality, Ender, Prusa MK3, Prusa MMU, Prusa CW1 many others avrdude
Atmel AT90USB 8-bit MCUs Printrboard dfuprog
NXP LPC176x 32-bit MCUs MKS SBASE, SKR v1.1, v1.3, v1.4, v1.4 Turbo etc. lpc176x or marlinbft
Atmel SAM 32-bit MCUs Arduino DUE, etc. bossac
STM32 32-bit MCUs (via SD card) SKR Pro v1.1, SKR Mini E3 v2, etc. lpc176x or marlinbft
STM32 32-bit MCUs (ST Bootloader) FYSETC Cheetah stm32flash
STM32 32-bit MCUs (DFU Mode) MKS Rumba 32 dfu-util
OpenBLT Bootloader Any board with the OpenBLT bootloader lpc176x or bootcommander

Please open a Github issue if you would like a new board or MCU to be supported. If it's a new type of board which requires hardware testing please consider making a donation to help fund the costs.

Plugin Installation

Install via the bundled Plugin Manager or manually using this URL: https://github.com/OctoPrint/OctoPrint-FirmwareUpdater/archive/master.zip

Using OctoPrint's Software Update plugin you can choose one of three Release Channels to follow:

Release Channel Description
Stable (Recommended) Updated least frequently, features are stable
Release Candidate Updated when new features are ready for testing
Development Updated frequently, may be unstable, used for beta-testing new features

If you report a bug or request a new feature you will probalby be asked to test development or RC builds.

Plugin Configuration

The appropriate flashing tool for the board type needs to be selected. See the table in the supported boards section to choose the appropriate method.

Note: If your board is updated by copying a file named firmware.bin to the SD card and resetting the board, you should use the lpc176x method. This applies to SKR Pro v1.1 or SKR Mini E3 v2 boards and probably others.

Board-Specific Configuration

Plugin settings vary depending on the flashing tool and are documented on the page for each flash method. Follow the instructions on the appropriate page to install and configure any necessary tools:

Flashing Firmware

Once the plugin is configured, flashing firmware is a simple operation:

  1. Select the COM port to communicate with the board
  2. Select a firmware file, either located on the filesystem or via a URL
  3. Click the appropriate Flash from button
  4. Wait for the firmware update to complete

Advanced Options

Customizing the Command Lines

The command lines for avrdude, bossac, and dfu-programmer can be customized by editing the string in the advanced settings for the flash method. Text in braces ({}) will be substituted for preconfigured values if present.

String Description
{avrdude} Full path to the avrdude executable1
{bossac} Full path to the bossac executable2
{dfuprogrammer} Full path to the dfu-programmer executable3
{mcu} MCU type4
{programmer} Avrdude programmer1
{port} COM port the printer is connected to
{conffile} Full path to the avrdude configuration file1
{baudrate} Serial port speed1
{disableverify} Switch to disable write verification
{firmware} Path to the uploaded firmware file
  1. avrdude flash method only
  2. bossac flash method only
  3. dfu-programmer flash method only
  4. avrdude and dfu-programmer flash methods

Command Line Defaults

Command lines can be returned to the default by clicking the Reset button.

Avrdude

{avrdude} -v -q -p {mcu} -c {programmer} -P {port} -D -C {conffile} -b {baudrate} {disableverify} -U flash:w:{firmware}:i

Bossac

{bossac} -i -p {port} -U true -e -w {disableverify} -b {firmware} -R

Dfu-programmer

Erase: {bossac} -i -p {port} -U true -e -w {disableverify} -b {firmware} -R Flash:

Pre and Post-flash Settings

The flash sequence is:

  1. Execute the pre-flash system command(s) on the host
  2. Send the pre-flash gcode commands(s) to the printer
  3. Pause for the pre-flash gcode delay
  4. Disconnect the printer
  5. Execute the firmware update
  6. Pause for the post-flash delay
  7. Execute the post-flash system command(s) on the host
  8. Reconnect the printer
  9. Send the post-flash gcode command(s) to the printer
Option Description
Pre-flash System Command Specify a system command or script to run on the host prior to flashing. Multiple commands can be separated with a semicolon.
Pre-flash Gcode Specify gcode commands to run on the printer prior to flashing. Multiple commands can be separated with a semicolon. Commands are only run if the printer is connected when flashing is initiated
Pre-flash Gcode Delay Delay after sending pre-flash gcode. Allows time for code to complete before initiating flash.
Post-flash Delay This setting can be used to insert a delay of up to 180s after the firmware has been uploaded. This can be useful if the board takes some time to restart. A delay of 20-30s is usually enough.
Post-flash System Command Specify a system command or script to run on the host after flashing. Multiple commands can be separated with a semicolon.
Post-flash Gcode You can use the post-flash gcode settings to run gcode commands after a successful firmware flash. The post-flash code will run more or less immediately if the printer was connected before the flash started (so reconnects automatically when the flash finishes), or whenever the printer is manually reconnected after the firmware is flashed.

Plugin Options

Option Description
Enable Navbar Icon Enables an icon in the OctoPrint Navbar which can be used to quickly access the Firmware Updater.
Remember URL The last URL will be remembered when using 'Flash from URL.

Troubleshooting

Log messages can be found in the OctoPrint log octoprint.log and the Firmware Updater's console log plugin_firmwareupdater_console.log.

Both log files can be downloaded from OctoPrint's logging interface, found under 'Logging' in the settings page.

If you have trouble using the plugin please check these logs for any error messages. If you need help, please include both logs when reporting a problem.

Donations

Donations to help with the cost of test hardware are gratefully received using any of the methods below.

Currency Link
Bitcoin 1GjUmcjnAxCr9jFPUtVrr6gPQz8FhYddZz
Bitcoin Cash bitcoincash:qzqys6mv9rgg7dxx0m4jzgqjezu9sryk2vmdexcr56
Ethereum 0xA1788874E851b425F65FF5bcB6180b0d9F50fB6d
USD https://www.paypal.com/

More Repositories

1

OctoPrint

OctoPrint is the snappy web interface for your 3D printer!
Python
8,197
star
2

octoprint-docker

The dockerized snappy web interface for your 3D printer!
Dockerfile
466
star
3

OctoPrint-MQTT

An OctoPrint Plugin that adds support for MQTT.
Python
155
star
4

plugins.octoprint.org

Sources of the OctoPrint Plugin Repository
Less
131
star
5

OctoPrint-Slic3r

Slic3r plugin for slicing within OctoPrint
Python
88
star
6

CustoPiZer

A customization tool for Raspberry Pi OS images like OctoPi
Shell
86
star
7

OctoPi-UpToDate

Latest OctoPi image with OctoPrint already updated to the latest release
Shell
58
star
8

OctoPrint-MalyanConnectionFix

Fixes connection issues with Malyan/Monoprice printers
Python
36
star
9

OctoPrint-PiSupport

OctoPrint plugin that provides additional information about your Pi in the UI
Python
26
star
10

Plugin-Examples

Python
20
star
11

octoprint.org

Sources of the OctoPrint homepage
CSS
19
star
12

OctoPrint-CuraEngineLegacy

Plugin for slicing via Cura Legacy from within OctoPrint
Python
19
star
13

OctoPrint-FirmwareCheck

Checks for unsafe or broken printer firmwares
Python
19
star
14

OctoPrint-AutomaticShutdown

Plugin for automatically shutting down the system after print is finished
Python
18
star
15

OctoPrint-DisplayProgress

Displays the job progress on the printer's display
Python
18
star
16

mkdocs-site-urls

A MkDocs plugin that adds support for site-relative `site:` URLs.
Python
15
star
17

OctoPrint-Pushbullet

Pushes notifications via Pushbullet
Python
13
star
18

cookiecutter-octoprint-plugin

Cookiecutter template for creating OctoPrint plugins.
Python
11
star
19

OctoPrint-Autoselect

Automatically selects freshly uploaded files for printing if no print job is currently active.
Python
9
star
20

OctoPrint-ForceLogin

Disables guest mode by forcing users to login to access the regular web interface. Now integrated into OctoPrint. Provided for historical reasons as is, no support, no maintenance.
Python
9
star
21

OctoPrint-FileCheck

Checks for common issues in uploaded files
Python
8
star
22

OctoPrint-Netconnectd

Client for netconnectd that allows configuration of netconnectd through OctoPrint's settings dialog. It's only available for Linux right now. Provided as is, no support, no maintenance.
JavaScript
8
star
23

codemods

Codemods based on LibCST
Python
7
star
24

OctoPrint-PluginSkeleton

A skeleton plugin to base your own plugins on - do not install this, it's just for other developers to build upon!
Python
7
star
25

OctoPrint-FixCBDFirmware

Fixes communication with a broken firmware making its rounds that identifies as "CBD make it"
Python
6
star
26

OctoPrint-Growl

[Abandoned] Get Growl notifications from OctoPrint. Up for adoption, currently provided as is, no support, no maintenance.
Python
5
star
27

Unraid-Template

4
star
28

actions

GitHub Actions for OctoPrint
JavaScript
4
star
29

camera-streamer-stack

These are the files of the new camera-streamer based webcam stack for OctoPi-UpToDate.
Shell
4
star
30

OctoPrint-CuraEngine

[Abandoned] Plugin to slice from OctoPrint using CuraEngine 15.10. Provided as is, no support, no maintenance.
Python
4
star
31

OctoChrome

[Abandoned] A chrome extension which injects "Send to OctoPrint" functionality into YouMagine (and in the future other sites too). Provided for historical reasons as is, no support, no maintenance.
JavaScript
3
star
32

OctoPrint-MfaTotp

Plugin to support TOTP based Two Factor Authentication in OctoPrint >= 1.11.0
Python
3
star
33

OctoPrint-Setuptools

Setuptools helpers for installing OctoPrint & OctoPrint plugins
Python
3
star
34

OctoPrint-FindMyOctoPrint

Makes your OctoPrint instance discoverable via `find.octoprint.org`.
Python
3
star
35

bundleviewer.octoprint.org

JavaScript
2
star
36

OctoPrint-AutoLoginConfig

Configure AutoLoginLocal from the UI with ease.
Python
2
star
37

OctoPrint-RequestSpinner

Shows a little spinner in the web frontend when background requests are active
Python
2
star
38

OctoPrint-CommandSplitter

Splits multiple commands on one line in GCODE files into multiple lines
Python
2
star
39

Open-in-Bundle-Viewer

Adds 'Open in bundle viewer' to the context menu to open a link in the OctoPrint bundle viewer
JavaScript
2
star
40

OctoPrint-Remove-ttyS-Ports

Removes any matched /dev/ttyS* ports from the serial port list again and thus works around auto detection issues with 1.4.0 on systems with such ports
Python
1
star
41

data.octoprint.org

JavaScript
1
star
42

OctoPrint-Yamlpatcher

Allows patching up config.yaml through the web interface
JavaScript
1
star
43

docs

WIP New documentation built with mkdocs
Python
1
star
44

statuspage

📈 Uptime monitor and status page for OctoPrint, powered by @upptime
Markdown
1
star
45

OctoPrint-FixCRLFProgressReporting

OctoPrint plugin that fixes progress reporting on GCODE files with CRLF line endings
Python
1
star
46

OctoPrint-Terminalstats

Get an indicator of lines/s sent to/received from the printer in the frontend. Coded during OctoPrint Code & Chat, WIP
Python
1
star
47

OctoPrint-Commfilter

[Abandoned] Filters out lines matching certain criteria instead of queuing for/sending to the printer. Provided as is, no support, no maintenance.
Python
1
star
48

github-star-proxy

A small flask/flask-dance app that makes GitHub starring work on plugins.octoprint.org
Python
1
star
49

Kudo3d-OctoPrint-Fork

OctoPrint fork by Kudo3d that supports their DLP printer line-up. Based on OctoPrint 1.2.0.dev from 2015. No support, no maintenance.
JavaScript
1
star
50

docs.octoprint.org

Source & deployment files of docs.octoprint.org
Python
1
star
51

OctoPrint-FixSettingsDeepMerge

Fixes an issue with merging settings in the frontend in OctoPrint 1.5.x
JavaScript
1
star