Flashing firmware for mmu2s still not working from PrusaSlicer on macOS Catalina
Hi,
I'm still unable to flash the latest firmware into the MMU2S using PrusaSlicer. The problem appears to be the AVR tools delivered with the "Drivers & Apps - 2.2.8" package.
Here's what I'm seeing:
------------------------------------
Flashing Original Prusa MMU 2.0 Control, looking for VID/PID 0x2c99/3 or 0x2c99/4 ...
Found VID/PID 0x2c99/4 at `/dev/cu.usbmodem1441401`, rebooting the device ...
Found VID/PID 0x2c99/3 at `/dev/cu.usbmodem1441401`, flashing ...
avrdude-slic3r -v -p atmega32u4 -c avr109 -P /dev/cu.usbmodem1441401 -b 57600 -D -U flash:w:0:/Users/stephen/Desktop/prusa3d_fw_3_8_1_MK3S_1_0_6_MMU2S/prusa3d_fw_MMU2board_1_0_6.hex:i
avrdude-slic3r: Version 6.3-20160220-prusa3d, compiled on Sep 16 2019 at 02:08:32
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
Using Port : /dev/cu.usbmodem1441401
Using Programmer : avr109
Overriding Baud Rate : 57600
AVR Part : ATmega32U4
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 9000 9000 0x00 0x00
flash 65 6 128 0 yes 32768 128 256 4500 4500 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : butterfly
Description : Atmel AppNote AVR109 Boot Loader
Connecting to programmer: avrdude-slic3r: butterfly_recv(): programmer is not responding
avrdude-slic3r: ser_recv(): read error: Device not configured
avrdude-slic3r: butterfly_recv(): programmer is not responding
avrdude-slic3r: ser_drain(): read error: Device not configured
avrdude-slic3r: ser_send(): write error: Device not configured
avrdude-slic3r: ser_recv(): read error: Device not configured
avrdude-slic3r: butterfly_recv(): programmer is not responding
avrdude-slic3r: ser_send(): write error: Device not configured
avrdude-slic3r: ser_recv(): read error: Device not configured
avrdude-slic3r: butterfly_recv(): programmer is not responding
avrdude-slic3r: ser_recv(): read error: Device not configured
avrdude-slic3r: butterfly_recv(): programmer is not responding
avrdude-slic3r: ser_send(): write error: Device not configured
avrdude-slic3r: ser_recv(): read error: Device not configured
avrdude-slic3r: butterfly_recv(): programmer is not responding
Found programmer: Id = ""; type = Software Version = Hardware Version = avrdude-slic3r: ser_send(): write error: Device not configured
avrdude-slic3r: ser_recv(): read error: Device not configured
avrdude-slic3r: butterfly_recv(): programmer is not responding
avrdude-slic3r: ser_send(): write error: Device not configured
avrdude-slic3r: ser_recv(): read error: Device not configured
avrdude-slic3r: butterfly_recv(): programmer is not responding
avrdude-slic3r: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude-slic3r: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude-slic3r: ser_send(): write error: Device not configured
avrdude-slic3r: ser_recv(): read error: Device not configured
avrdude-slic3r: butterfly_recv(): programmer is not responding
avrdude-slic3r: error: programmer did not respond to command: leave prog mode
avrdude-slic3r: ser_send(): write error: Device not configured
avrdude-slic3r: ser_recv(): read error: Device not configured
avrdude-slic3r: butterfly_recv(): programmer is not responding
avrdude-slic3r: error: programmer did not respond to command: exit bootloader
avrdude-slic3r: ser_close(): can't reset attributes for device: Device not configured
avrdude-slic3r done. Thank you.
------------------------------------
Do you have plans to release a new version with the latest AVR tools?
Anxious to hear.
Regards,
Stephen
RE: Flashing firmware for mmu2s still not working from PrusaSlicer on macOS Catalina
FYI- I'm running the latest macOS Catalina v10.15.1
-Stephen
RE: Flashing firmware for mmu2s still not working from PrusaSlicer on macOS Catalina
I am very sorry, but Apple change the way in OSX Catalina, how the USB serial ports are handled. Namely, all the original Arduino Leonardo bootloaders are non-functional under OSX Catalina.
https://github.com/arduino/Arduino/issues/9290
This breaking change at the Apple side is only solvable by us re-programming the MMU2 bootloader. Currently the recommended way for you to flash the MMU2 board under OSX Catalina is either through virtualized Windows or Linux, or using another computer.
You may virtualize Linux on your OSX Catalina box for free with Virtual Box.
RE: Flashing firmware for mmu2s still not working from PrusaSlicer on macOS Catalina
Yes, I already understood this.
So what are the procedures for reflashing the boot loader so we're back on the air? It is NOT practical to have to keep an older machine / Licensed Windows ($$) for use in VM around just for updating one controller within our printers.
It would be really great for Prusa to publish instructions / recommended methods to accomplish this.
--
Long time software engineer
Embedded systems designer/developer
iOS developer
Maker
LEGO Enthusiast
RE: Flashing firmware for mmu2s still not working from PrusaSlicer on macOS Catalina
@stephen-m18
I’m running the latest Catalina 10.15.2 (I’m on the public beta - but it was released to the general public on Dec 10th) on an iMac 5K and was able to flash my MMU2 - so I think this issue has been fixed by Apple? I also skimmed through the GitHub issue linked above and saw others confirm the issue is fixed.
RE: Flashing firmware for mmu2s still not working from PrusaSlicer on macOS Catalina
As far as I can tell the "problem" is that Apple is forcing us all to join the future and get rid of all 32-bit software including drivers. 64 bit is the way everything is going so all the old stuff has to be updated. This is not something that Apple has to "fix" but rather something that all developers have to get up to speed with. This is also why Pronterface no longer works, it is 32 bit software. Apple doesn't need to "fix this" the developers of software that are still 32-bit need to update their software.