Coder Social home page Coder Social logo

octoprint / octoprint-firmwareupdater Goto Github PK

View Code? Open in Web Editor NEW
350.0 23.0 76.0 1.5 MB

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

Home Page: https://plugins.octoprint.org/plugins/firmwareupdater/

License: GNU Affero General Public License v3.0

Python 51.50% JavaScript 24.74% CSS 0.10% Jinja 23.66%
octoprint octoprint-plugin

octoprint-firmwareupdater's Introduction

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/

octoprint-firmwareupdater's People

Contributors

andrivet avatar arekm avatar benlye avatar chatelao avatar cootue avatar cp2004 avatar foosel avatar fredrikwendt avatar gege2b avatar geminiserver avatar onovy avatar philverghese avatar samaelson avatar serial-comma avatar stevilknevil avatar trouch avatar ubershy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

octoprint-firmwareupdater's Issues

Other programmer types?

Why there are only four programmer types? Why I can't add other programmers supported by avrdude? Even there is no "linuxgpio" programmer which is best choice to use with Raspberry Pi and other single-board computers since it has GPIO pins.

plugin not in plugin repository

Hi,
this is really super useful, stumbeld on it by accident. Why is this not in the official plugin repository (thus your README suggests it should be)?

Cheers,
Markus

Upgrading firmware results in EEPROM CRC mismatch

Error reported by printer
Your printer's firmware reported an error. Due to that OctoPrint will disconnect. Reported error: EEPROM CRC mismatch - (stored) 31524 != 14490 (calculated)!

OctoPrint 1.3.7rc4 running on OctoPi 0.14.0, Firmware updater 1.0.0, LulzBot TAZ 6, Marlin 1.1.8.22

I believe this is caused by a recent "update" to Marlin 1.1.8 and it is resolved by doing a "Save Settings" from the LCD on the printer. It should also be resolved by sending an "M500" to the printer.

I checked "Enable post-flash gcode" and in "Post-flash gcode" I put "M500" but this fails because OctoPrint never gets a chance to send the post-flash gcode.

octoprint.log
serial.log

Create check to prevent bootloader burning

I have made the mistake of trying to load the compiled bianary with bootloader, this caused my board to stop responding to the USB port and essentially bricking the board from further updates and use with octoprint.

I had to buy an audrino Uno in order to upload the bootloader again via SPI.

It would be great if this updater could do a check to see that the user did not accidentally choose the binary with bootloader. (or at least a warning)
untitled

Velleman Vertex K8400 not supported

I have a Velleman Vertex 3D K8400 printer and I could not use the "Check for Updates" button. I think this should be fixed and I'm happy to hack away at this if someone could just point me in the right direction.

Documentation update

Can someone explain a bit more in detail on what you need to do to go from the marlin git repository to exualy flashing the firmware. There are some gaps.
So far I installed everything including the avrdude package.
I configured Marlin I verified marlin in the Arduino IDE.
But now I'm stuck.
Which file do I exactly need to upload to avrdude?
Thanks in advance.

Block files with bootloader

Block files with bootloader in name.
I tried sending a firmware with bootloader and it corrupted my card. After that the only solution was to write the bootloader again with another arduino.
Files without the bootloader work perfectly!

** Marlin.ino.with_bootloader.mega.hex

"automatic updates check" ?

I assumed this meant it will check automaticly if there are updates for your printer? How does this work? I dont see anything about this anywhere in the config?

Add smoothie firmware mks sbase

You can add mks sbase and other smoothie's bsases firmware. You need just add support mount sd card builtin an mks sbase and copy to the sd card firmware.bin and config.txt file. Add "Reset" nedd also, for reboot mks sbase for install the firmware.

RADDS serial issue

Hi,

I have an issue connecting my RADDS to octopi with serial connection.
Uploading the repetier firmware from my laptop wasn't an issue, everything worked fine.
But when I wanted to start the printer connection with octopi it won't work.

serial(2).log

I have attached the serial log.

Thanks in common

RFE: post-update g-code

normally there is a need to run small g-code snippet right after update
this request if to provide extra editable area in UI for such g-code

FirmwareUpdater not dettecting the firmware

Hi!

I've got a printer from a friend and I was trying to update it.

I set up an octoprint for it and it seems to be working.

The FirmwareUpdater is returning "Unable to get printer's data" though.

If I send M115 on the terminal I get:

Recv: FIRMWARE_NAME: Marlin 1.1.0-RC2 From Archive 
SOURCE_CODE_URL: https://github.com/fmalpartida/Marlin/tree/SAV-MkI-config 
PROTOCOL_VERSION: 1.0 
MACHINE_TYPE: SAV MkI 
EXTRUDER_COUNT: 1 
UUID: 00000000-0000-0000-0000-000000000000

which seems ok.

The issue will be FirmwareUpdater not dettecting current hardware or machine but I was not expecting that to work with a 2+ year old firmware.

I can provide some help debugging that or, otherwise, I would be happy to skip the detection step if you could provide me some guidance on how to query the web service myself so I can get the hex file and upload it.
(I'm assuming the plugin queries the web service with some information from the printer and it gets a compiled hex file back for the current printer. Please correct me if I'm wrong).

I would prefer not to need to compile the firmware if I can avoid it (and of course that would not be an issue for this plugin).

Thanks!

Enable post-flash gcode sends a command when the printer connects without a firmware update

serial.log
I have changed OctoPrint's Serial Connection Behavior from "disconnect on error" to "cancel print but stay connected". This allows the post-flash gcode to be executed after a firmware update (which works).

The problem is that when OctoPrint connects to the printer and there was not a firmware update, an unknown command is sent.

2018-04-11 07:34:51,840 - Changing monitoring state from "Connecting" to "Operational"
2018-04-11 07:34:51,858 - Send: N0 M110 N0125
2018-04-11 07:34:51,860 - Recv: echo:SD card ok
2018-04-11 07:34:51,866 - Recv: echo:Unknown command: ""
2018-04-11 07:34:51,869 - Recv: ok P15 B9
2018-04-11 07:34:51,871 - Send: N1 M115
39
2018-04-11 07:34:51,898 - Recv: FIRMWARE_NAME:Marlin FIRMWARE_VERSION:1.1.8.22 EXTRUDER_TYPE:DualExtruder v3 SOURCE_CODE_URL:https://code.alephobjects.com/diffusion/MARLIN PROTOCOL_VERSION:1.0 MACHINE_TYPE:LulzBot TAZ 6 EXTRUDER_COUNT:2 UUID:845f003c-aebd-4e53-a6b9-7d0984fde609

bossac and due issue

not sure if I'm doing something not right.. but i installed bossac-cli, set the path to it, it finds but from the firmware updater plugin it fails but I've discovered that if I run the command line minus the port, it works... not sure why

tail plugin_softwareupdate_console.log
2018-07-06 08:16:53,185 /usr/bin/bossac -i -p /dev/ttyACM0 -U false -e -w -v -b /tmp/tmpK8nR4b -R
2018-07-06 08:17:26,280 /usr/bin/bossac -i -p /dev/ttyACM0 -U false -e -w -v -b /tmp/tmpGDzNh4 -R
2018-07-06 08:18:29,534 /usr/bin/bossac -i -p /dev/ttyACM0 -U false -e -w -v -b /tmp/tmpZsU73e -R

but ran from command line, fails when the port is added but works if removed

root@bumblebee01:/home/pi/.octoprint/logs# /usr/bin/bossac -i -p /dev/ttyACM0 -U false -e -w -v -b /tmp/firmware.bin -R
No device found on /dev/ttyACM0
root@bumblebee01:/home/pi/.octoprint/logs# /usr/bin/bossac -i  -U false -e -w -v -b /tmp/firmware.bin -R               
Device found on ttyACM0
Erase flash
Write 193308 bytes to flash
[==============================] 100% (756/756 pages)
Verify 193308 bytes of flash
[==============================] 100% (756/756 pages)
Verify successful
Set boot flash true
Device       : ATSAM3X8
Chip ID      : 285e0a60
Version      : v1.1 Dec 15 2010 19:25:04
Address      : 524288
Pages        : 2048
Page Size    : 256 bytes
Total Size   : 512KB
Planes       : 2
Lock Regions : 32
Locked       : none
Security     : false
Boot Flash   : true
CPU reset.

Anet flash generating an error

Sorry to bother, I am trying to use the plugin and it is generating:

Avrdude says: 'not in sync: resp=0x73

I have the correct port and the software is installed. It is an Anet 1.0 board. Works good from the PC. I looked on the Octoprint discourse site and did not find much. Below is the screen shots.

Thanks

untitled-1
untitled-2

Flashing failed Avrdude says: 'not in sync: resp=0x00'

I have my printer working and I configured the plug in as specified in the interfase but the, I keep getting the message

Flashing failed
Avrdude says: 'not in sync: resp=0x00'

is there a way to get the command line that plugin is using?

image

the card is a ultimachine Einsy Rambo 1.1

Disconnect the printer or dont send the firmware

Hello,
We need to add a printer connection check before sending the firmware.
If the printer is connected or the USB is busy, we get an error message when sending the firmware and after difficulties in disconnecting and reconnecting.

Thank you

What is the compiled file type

Hi guys,

Im trying to flash the file, I thought it was .elf

But all I can see is .hex Is that the one I should be uploading?

Thanks

Please allow avrdude 'stk500v2' protocol

I need this avrdude line to programm:
avrdude -D -patmega2560 -P/dev/ttyUSB0 -cstk500v2 -b115200 -Uflash:w:applet/Marlin.hex:i

Would be great if one could select the "stk500v2" or have a manual entry field for overrides

Thanks!

Baudrate selection

This is more of a suggestion/enhancement. I recently installed this on octoprint on a raspberry pi connected to an Anet A8. I couldn't get this working until I created /home/pi/.avrduderc with the baud rate 57600 set. Once I did this, I was successful using the plugin. It would be great if there was either a drop down list or a text entry to put the baudrate and pass it to the flash command using -b baudrate.

Please add Due

Any plans to add support for the Atmel AT91SAM3X8E ARM Cortex-M3 microcontroller, For RADDSmain board users?

board request: Anet10

this board is included with the anet a8 and anet a6 and probably all other anet printers.
i currently use marlin-config (its here on github https://github.com/akaJes/marlin-config)

my only issue it is a pain to move my printer near my computer every time i need to upgrade my firmware. which happens often because i am always experimenting with a new part.

Get unknown error on every FW Update

When I try to update fw with the FirmwareUpdater I get through the flashing, but when it is supposed to reset I get FWUpdate fail - unknown error.

It looks like the FW is flashed to the tarantula, and it works great. Cant wrap my head around why the error occures.

Breaks Latest Octoprint

Installed on latest Octoprint image, no other plugins except TouchUI. After installing FirmwareUpdater, can no longer connect to printer.

"Error: EEPROM datasize error." after flashing

After flashing (Marlin bugfix-2.0.x branch) on my Ender-4 I get "Offline (Error: EEPROM datasize error.)" Is this a firmware bug or something with Octoprint/FirmwareUpdater?

I don't like having to physically go to the printer to "Initialize EEPROM" after flashing remotely...

Possible stm32flash support

I would like to ask if you would be open to include support for STM32 based systems (with the help of stm32flash). Just finished writing the SPI backend for it and started thinking about writing a fronted for OctoPrint for it.

Since this plugin already exists and seems to support multiple MCU types, it seems best to put my effort into extending this already existing plugin.

So how are the chances of such a PR written by me to be included?

I might need to extend some functionality quite heavily, since stm32flash support flashing over USART, I2C and SPI.

USBasp

Please add USBasp as an option, used like avrdude -patmega2560 -Pusb -Uflash:w:firmware.ino.hex:i

Select a printer model

Most people don't know which microcontroller is inside their printer and don't know how to find out. Instead of searching for your printer internals and fill in the settings, make a selectbox in which a user can select a printer model.

Flash failing to ramps 1.4

I was never able to get this plugin when it first came out with stock creality board but was able to do it manually in terminal and though I'd give it a go at its current updated version. I'm compiling a hex I know works as it's flashable over usb from PC. I swapped to ramps due to crealities horrible hardware and decaying performance (which ramps has almost revived).

Log is reporting this error:

2018-02-04 04:43:20,692 - octoprint.plugins.firmwareupdater - INFO - Got CONNECTED event
2018-02-04 04:43:20,705 - octoprint.plugins.firmwareupdater - INFO - Run postflash flag is not set
2018-02-04 04:43:20,820 - octoprint.plugins.softwareupdate - INFO - Saved version cache to disk
2018-02-04 04:43:20,823 - octoprint.util.comm - INFO - Printer reports firmware name "Marlin TH3D U1.R1"
2018-02-04 04:43:34,763 - octoprint.server.preemptive_cache - INFO - ... done in 31.02s
2018-02-04 04:43:34,764 - octoprint.server.preemptive_cache - INFO - Preemptively caching / (ui _default) for {'query_string': 'l10n=de', 'path': '/', 'base_url': 'http://192.168.1.16/'}
2018-02-04 04:43:34,854 - octoprint.server.util.sockjs - INFO - Client connection closed: 192.168.1.111
2018-02-04 04:43:36,636 - octoprint.server.util.sockjs - INFO - New connection from client: 192.168.1.111
2018-02-04 04:43:46,029 - octoprint.server.preemptive_cache - INFO - ... done in 11.27s
2018-02-04 04:44:21,695 - octoprint.plugins.firmwareupdater - INFO - Firmware update started
2018-02-04 04:44:21,703 - octoprint.plugins.firmwareupdater - INFO - Disconnecting from printer
2018-02-04 04:44:21,741 - octoprint.plugins.firmwareupdater - INFO - Running u'/usr/bin/avrdude -v -q -p m2560 -c arduino -P /dev/ttyUSB0 -D -b 115200 -U flash:w:/tmp/tmpmRzLeI:i' in /usr/bin
2018-02-04 04:45:13,757 - octoprint.plugins.firmwareupdater - ERROR - Flashing failed. Avrdude returned code 1.
2018-02-04 04:45:13,763 - octoprint.plugins.firmwareupdater - INFO - Reconnecting to printer: port=/dev/ttyUSB0, baudrate=115200, profile={'name': 'CR-10', 'color': 'default', 'axes': {'y': {'speed': 6000, 'inverted': False}, 'x': {'speed': 6000, 'inverted': False}, 'z': {'speed': 200, 'inverted': False}, 'e': {'speed': 300, 'inverted': False}}, 'heatedBed': True, 'volume': {'origin': 'lowerleft', 'formFactor': 'rectangular', 'depth': 300.0, 'width': 300.0, 'custom_box': False, 'height': 400.0}, 'model': 'Creality', 'id': '_default', 'extruder': {'count': 1, 'nozzleDiameter': 0.5, 'offsets': [(0.0, 0.0)], 'sharedNozzle': False}}
2018-02-04 04:45:13,864 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0
2018-02-04 04:45:14,941 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0
2018-02-04 04:45:23,334 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0
2018-02-04 04:45:23,350 - octoprint.plugins.firmwareupdater - INFO - Got CONNECTED event
2018-02-04 04:45:23,361 - octoprint.plugins.firmwareupdater - INFO - Run postflash flag is not set
2018-02-04 04:45:23,407 - octoprint.util.comm - INFO - Printer reports firmware name "Marlin TH3D U1.R1"
2018-02-04 04:44:21,744 /usr/bin/avrdude -v -q -p m2560 -c arduino -P /dev/ttyUSB0 -D -b 115200 -U flash:w:/tmp/tmpmRzLeI:i
2018-02-04 04:44:22,405 > 
2018-02-04 04:44:22,407 > avrdude: Version 6.1, compiled on Jul  7 2015 at 10:29:47
2018-02-04 04:44:22,408 >          Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
2018-02-04 04:44:22,409 >          Copyright (c) 2007-2014 Joerg Wunsch
2018-02-04 04:44:22,410 > 
2018-02-04 04:44:22,411 >          System wide configuration file is "/etc/avrdude.conf"
2018-02-04 04:44:22,412 >          User configuration file is "/home/pi/.avrduderc"
2018-02-04 04:44:22,413 >          User configuration file does not exist or is not a regular file, skipping
2018-02-04 04:44:22,414 > 
2018-02-04 04:44:22,416 >          Using Port                    : /dev/ttyUSB0
2018-02-04 04:44:22,417 >          Using Programmer              : arduino
2018-02-04 04:44:22,418 >          Overriding Baud Rate          : 115200
2018-02-04 04:44:22,419 > 
2018-02-04 04:44:28,434 > avrdude: stk500_recv(): programmer is not responding
2018-02-04 04:44:28,436 > avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
2018-02-04 04:44:28,437 > 
2018-02-04 04:44:33,443 > avrdude: stk500_recv(): programmer is not responding
2018-02-04 04:44:33,444 > avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
2018-02-04 04:44:33,445 > 
2018-02-04 04:44:38,452 > avrdude: stk500_recv(): programmer is not responding
2018-02-04 04:44:38,460 > avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
2018-02-04 04:44:38,462 > 
2018-02-04 04:44:43,467 > avrdude: stk500_recv(): programmer is not responding
2018-02-04 04:44:43,468 > avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
2018-02-04 04:44:43,470 > 
2018-02-04 04:44:48,484 > avrdude: stk500_recv(): programmer is not responding
2018-02-04 04:44:48,491 > avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
2018-02-04 04:44:48,493 > 
2018-02-04 04:44:53,463 > avrdude: stk500_recv(): programmer is not responding
2018-02-04 04:44:53,465 > avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
2018-02-04 04:44:53,466 > 
2018-02-04 04:44:58,473 > avrdude: stk500_recv(): programmer is not responding
2018-02-04 04:44:58,474 > avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
2018-02-04 04:44:58,476 > 
2018-02-04 04:45:03,482 > avrdude: stk500_recv(): programmer is not responding
2018-02-04 04:45:03,484 > avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
2018-02-04 04:45:03,485 > 
2018-02-04 04:45:08,498 > avrdude: stk500_recv(): programmer is not responding
2018-02-04 04:45:08,506 > avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
2018-02-04 04:45:08,508 > 
2018-02-04 04:45:13,743 > avrdude: stk500_recv(): programmer is not responding
2018-02-04 04:45:13,750 > avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
2018-02-04 04:45:13,752 > 
2018-02-04 04:45:13,753 > avrdude done.  Thank you.

can not find avrdude

i have a raspberry pi running octoprint i installed avrdude with "sudo apt-get install avrdude" but i do not know what the path is what is the path?

FirmwareUpdater can corrupt the bootloader on the Arduino...

Hey guys, I'm not sure what happened exactly but I set this up on 3 OctoPrint instances that were identical and then ran a firmware update on all 3. One of the machines said that the Flashing failed due to a timeout with the programmer, after that I wasn't able to connect nor upload new firmware. I had flash the hex file INCLUDING the bootloader that I had compiled from the Arduino IDE. I figured out that the bootloader had somehow been corrupted on that one Arduino but not the other two.

After a lot of frustration I found this page and was able to re-flash the bootloader using another Arduino. After that I was able to flash the firmware from the same machine but this time I used the hex file without the bootloader.....it worked!

I'm not sure what caused all this but in case this should happen to any of you then check out this page: http://www.gammon.com.au/bootloader

As for OctoPrint-FirmwareUpadter, I'm not sure if the plugin is to blame but I assume the hex file generated from the Arduino IDE was fine.

Allow different MCU and programer

I was able to use the plugin to flash a new .hex file to my Atmega1284p board, but only after changing the avrdude options at https://github.com/OctoPrint/OctoPrint-FirmwareUpdater/blob/master/octoprint_firmwareupdater/__init__.py#L179:

avrdude_command = [avrdude_path, "-v", "-p", "m1284p", "-c", "arduino", "-P", selected_port, "-U", "flash:w:" + hex_path + ":i", "-D"]

It would be nice to allow the user to pick the MCU part and programmer from a dropdown, or allow the avrdude command line to be edited in the settings.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.