When my freshman-year college roommate was in medical school, he told me that surgeons were trained to say “There!” instead of “Oops” when they made a mistake like cutting the wrong organ, so as not to panic everyone around them.
There. As far as I can tell, my Metal Plus is back in commission, minus one hot end. I would like to thank Lincomatic for writing a post with most of the information needed to fix things, and for making a selection of At90usb1286 bootloaders available for download, and the folks who wrote the reprap wiki page on the Printrboard, who supplied crucial additional information about beating Ubuntu into submission so that the bootloader and the host computer could actually talk to each other. And of course Adafruit for designing an AVRisp that. Just. Works.
My experience may be useful to anyone else who manages to bork their board in just this way. I found that the fuse settings on the reprap wiki page ultimately worked; the ones on the lincomatic page didn’t, although they might for someone else. Also: the CDC bootloader reliably stopped working exactly halfway through uploading the main firmware. The DFU bootloader worked, even though dfu-programmer is a slightly less convenient program to use. I probably should have written a shell script to automate the process of removing the usbACM driver and (re)installing the generic USB driver, but a shell with an up-arrow for history works about as well (and hopefully I won’t be doing this that often).
Oh, and once I got the printrbot firmware reloaded, it identified itself to the lsusb command as a Teensyduino serial device, so maybe it’s no surprise that the Teensy loader extension attached to my Arduino software thought it was OK to talk to. (I also have a theory about why all this was able to happen even though Repetier was controlling the printer at the time. Imagine a program so polite that for each read and write to a device, it opens the necessary port, does its business, and then closes it again. Nah…) So it looks as if there’s an Octoprint server in my future too.
Pingback: And this is why you make really sure which USB port you’re writing to | proof of concept