Apparently the stock firmware of my 3D printer (Monoprice Maker Select 3D v2) is missing a critical feature where it detects thermal runaway and safely shuts down. The failure mode would basically be if the thermocouple on the hotend breaks, the printer will continuously pump power into it trying to get it up to temperature, likely resulting in a lot of flames.
To fix this, there are a few firmware options available. Update the stock firmware Reptier, install Marlin, or use Klipper. I couldn’t find an updated copy of Reptier, though admittedly I didn’t search THAT hard. I did find a version of Marlin that someone one configured for my printer, but it’s fairly out of date (based on version 1.1 rather than 2.X. I could take the time to configure the latest release myself, but I’m more interested in trying out Klipper. For today, I opted to test out the older version of Marlin and then move on to Klipper. Before we can do either, we need to burn a new bootloader onto the Metzier board in the printer.
Burn the Bootloader
I basically just followed this YouTube video so I’m not going to plagiarize his steps. Partly because he does a good job explaining it and partly because I’m lazy.
Flash new Firmware
Once the bootloader is burned, we can flash the firmware via the USB port on the board so we can put the Metzier board back in the case and button everything back up.
I honestly didn’t give this much of a chance, I tested it out with some existing g-code I already generated but had never printed and it worked fine. Essentially I just plugged in the Metzier board, selected the Sanguino board that the YouTube video showed, opened the main .ino file for Marlin, verified that it compiled and then flashed it.
This firmware is a two part deal, it runs on the Raspberry Pi that I use for Octoprint and does a lot of the heavy lifting before pushing commands directly to the Metzier board. This apparently allows for the printer to run fast prints without stammering around corners. It also has a lot of built in optimization for various things. My favorite so far is the bed leveling routine. The install instructions were a little odd, partly because I found Klipper as a Octoprint plugin, but after it finished installing I noticed that it’s not part of the official instructions. I assume the documentation is just a little outdated, I still had to install some things onto the Pi via SSH and make a config file for the printer, but it was fairly easy to set up.
I honestly had high hopes for this to be a useful post, but after walking through everything it didn’t really seem worthwhile since the documentation around everything was fairly readily available. At the end of the day, at least it serves to save where I got my info from, but I don’t imagine it’ll be very useful for anyone else.
As for Klipper, I really like it so far. Occasionally the Pi side seems to have a hardtime connecting properly to the printer side and I need to reboot, but I suspect it might have been user error playing with some other plugins.