...
When compiling on Windows, the Atmel provided GCC based tool chain is recommended: https://github.com/eerimoq/avr-toolchain-windows , as the WinAVR contains an old GCC toolchain, which optimizes purely and the resulting binary does not fit the reserved FLASH space.
Programming the Caterina bootloader:
You may try to run
make program
or type
avrdude -p atmega32u4 -P usb -c usbasp -U flash:w:Caterina.hex
FIXME: The current bootloader is part of the "Original Prusa i3 MK3 Multi Material 2.0 upgrade" board definition for Arduino, see below, but the flashing of a boot loader from Arduino does not seem to work correctly. Fix it!
bootloader built for an initial timeout of 2 resp. seconds
Installing the "Original Prusa i3 MK3 Multi Material 2.0 upgrade" board into Arduino
...
arduino_debug.exe --pref build.path=output --upload --port COMxx --board PrusaResearch:avr:prusa_mm_control -v --preserve-temp-files MM-control-01.ino
Debugging the USB descriptors on Windows:
The following application is useful to inspect USB descriptors:
https://www.nirsoft.net/utils/usb_devices_view.html
Programming the application into the MMU Control Board (on Linux):
If you have the modemmanager installed, you either need to deinstall it, or blacklist the Prusa Research USB devices:
/etc/udev/rules.d/99-mm.rules
# Original Prusa i3 MK3 Multi Material 2.0 upgrade
ATTRS{idVendor}=="2c99", ATTRS{idProduct}=="0003", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="2c99", ATTRS{idProduct}=="0004", ENV{ID_MM_DEVICE_IGNORE}="1"
$ sudo udevadm control --reload-rules
A request has been sent to Ubuntu, Debian and ModemManager to blacklist the whole Prusa Research VID space.
https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/1781975
https://bugs.debian.org/cgi-bin/pkgreport.cgi?dist=unstable;package=modemmanager
and reported to
https://lists.freedesktop.org/archives/modemmanager-devel/2018-July/006471.html
Preliminary .inf for windows: