Ever wanted to get rid of the buggy or outdated version of the Marlin firmware that shipped with your printer? Just update it to the most current one! I show you how to set up the mainline Marlin firmware on your kit 3D printer using the Arduino software package.
The Marlin firmware essentially is the brain and mind of a lot of the 3D printers we have around here. It’s ultimately what runs and controls every little bit of these machines from making a stepper motor turn to reading and interpreting the gcode, so your print files, planning motion for optimal smoothness and speed, monitoring and controlling temperatures, you know, just, everything. And by now it’s really good software – it’s reliable, has a ton of features, and best of all, it’s free and open source! The thing is, though, if you have a 3D printer that shipped with Marlin installed, and let’s face it, that’s basically every low- to mid-range printer on the market, then you’ll probably have an outdated version. Or even down the road, you use it for a few months and the manufacturer just doesn’t release any updates to the firmware.
Updating Marlin to the newest “official” version is not only going to make your printer more reliable, chances are it’s also going to print better because of improved motion planning and it’s probably also going to be safer since the checks for an overheating hotend and such are enabled by default in the mainline Marlin firmware. So today, I’m going to show you how to upgrade your firmware on basically any kit or pre-built printer.
Okay, so Marlin has picked up easy-to-use starting point configurations for a bunch of different machines. Most of these are not maintained by the manufacturer, but by the Marlin developers, so they might not give you the exact same setup as what your printer came with out of the box, but it’s going to be at least functionally the same, so you can keep on slicing your parts with the same profiles. Things like menus on the LCD might not look exactly the same, but they’re still going to give you the same functionality as what you got out of the box.
I’m using the Creality Ender-3 as an example for the configuration, it is an open-source machine, but it’s still going to show most of the things you’ll run into when going through this process. It works basically the same for most other printers as well, there are a few caveats when it comes to actually uploading the firmware to some machines including the Ender-3, but we’ll get to those towards the end of the video.
So to actually upload the firmware to your 3D printer, all you need to do is to connect your printer to your computer through USB, select the right serial port in Arduino, it’s typically the one with the highest number, as that’s the most recent one, and hit upload! On most machines with a “standard” setup, this should just run through with no issues, but there are two snags you might catch. On is if the board doesn’t support the automatic reset the upload routine needs to work, which you can really easily work around by just pressing the reset button right before the Arduino software starts the upload, the other is if your manufacturer picked a cheaper processor and ran out of space to include a boot loader, which Arduino needs to actually write the firmware to the chip.
In that case, and, in fact, in the Ender-3’s case, you can not just go through the printer’s USB port, but you need extra hardware to flash the firmware, which I’m going to go through in another video as explaining that properly is plenty of a topic on its own.
But if everything went through smoothly and you get the “Upload completed” message in Arduino, you’ve just successfully updated your Marlin firmware. Settings you made through the printer’s LCD, like bed levelling offsets or acceleration limits might have been reset to the defaults from the firmware configuration – or not. Definitely check that everything is where it should be.
You can also choose “Initialize EEPROM” through the LCD just to reset everything to whatever is stored in your config files.
And there you go, that’s the update done! If you did run into trouble, let me know in the comments below and I’ll try to work out what’s going wrong.
Anyway, thanks for watching, and I’ll see you in the next one!