Hey, there’s a 63% chance that you’re
watching this video, but aren’t subscribed
yet.
So.. why don’t you do that right now?
Bottom right corner of the video.
Click that thing.
Super easy.
It’s free.
You’ll never miss a new video.
Done?
Ok, let’s move on
Alright, so you’ve seen the burning 3D printers
and hopefully have worked through my guide
on how to make yours safe, but there was one
thing I left out of that mega-video, and it’s
a really import component.
Firmware safety checks.
You know, normally, it’s the manufacturer’s
job to enable these checks, but in case you
own a machine from ANET or Creality or someone
else that disabled the safety features from
the factory, then it’s up to you to turn
them on.
And that’s exactly what I’m going to show
you today.
[INTRO]
This video is sponsored by Squarespace, stick
around ‘till the end for more info and a
discount code.
Ok, so first off, big shoutout to Gina Häußge,
developer of Octoprint, who actually took
the high road of pestering and annoying you
within the OctoPrint interface if you’re
using a machine that is known to have these
safety checks turned off.
But frankly, it is quite irresponsible to
run a machine without these checks, because
not only do they improve your odds when it
comes to fire safety, but can also serve as
an early indicator of things not working as
perfectly as they could.
So today, the Marlin firmware can check for
the following indicators: The first ones are
MINTEMP and MAXTEMP: These check whether the
thermistor reports reasonable temperatures
in the hotend and the heated bed at any given
time.
That goes twofold: If, for example, the hotend
overheats to 300C or you or your software
accidentally tell the firmware to heat above
that temperature, MAXTEMP will either have
Marlin refuse that command or emergency-shutdown
the machine and disable all heaters.
It will also read MAXTEMP if the thermistor
is shorted out, so in that case the firmware
has no real way of reading the real temperature
in the hotend.
MINTEMP, on the other hand, protects against
a failing thermistor that might read temperatures
that are unreasonably low, so the actual temperature
would actually be way higher than the printer
thinks it is, be it from a damaged thermistor
capsule itself or from a cable breaking or
the thermistor just not being plugged in at
all or the lead having fallen out.
You know, stuff happens.
And there’s one more and probably the most
important feature - THERMAL RUNAWAY PROTECTION.
This isn’t super straightforward to explain,
but essentially, in case the thermistor is
working and reporting reasonable numbers,
Marlin is checking that against what it expects
the hotend and heated bed to do.
So for example while everything is getting
up to temperature, it’s expecting a consistent
temperature increase over time.
Once everything is at temperature, yes, sure,
the hotend might see a sudden temperature
drop if, for example, the cooling fans kick
on, but if the temperature then keeps dropping,
well, maybe it wasn’t just the fans, but
instead the thermistor falling out of the
hotend.
So in that case, the firmware will turn off
the heaters instead of trying to bring what
it thinks is the hotend temperature back up
to what it’s set to by cranking the heaters
to full power.
Sounds reasonable, right?
So let’s get these enabled!
To get started, you’ll need, first of all,
a copy of the Marlin source code for your
3D printer, this is the actual code that you
can configure, and that gets compiled, so
translated to machine code, and then uploaded
to your 3D printer’s main processor.
Since Marlin is open-source and licensed as
GPL, if your 3D printer shipped with Marlin,
your manufacturer or reseller is required
to provide you with their customized source
code of the Marlin firmware and will happily
provide it to you on request or even have
it linked on their website already.
The easiest way to work with the firmware
files is by simply using the Arduino software.
If you’re using Windows 10, you can actually
install Arduino from the Windows store, super
easy, and it’s always going to be up to
date automatically.
In the firmware sources, you’ll find a “Marlin.ino”
file in the “Marlin” folder, open that,
and Arduino will come up with the entire firmware
in view.
To enable the basic checks, head over to the
configuration.h file, and either scroll down
until you find “Thermal Runaway Protection”
or simply hit control or command and “f”
and search for “Runaway”.
If you find the two lines “#define THERMAL_PROTECTION_HOTENDS”
and “#define THERMAL_PROTECTION_BED” with
two forward slashes in front of them, like
this, the runaway protection is turned off.
To turn it on, just remove the two forward
slashes from each line.
The same goes for MINTEMP and MAXTEMP, but
you should also make sure that the temperature
limits are set to reasonable levels.
Ideally, MINTEMP would be slightly below your
normal room temperature, so let’s say 15
for 15°C aka 59°F, down to 5 for 5°C or
41°F if you’re running your printer in
a cooler basement room.
MAXTEMP should simply be the maximum safe
temperature for your hotend, so if you’re
rocking a PTFE-lined one, that would be somewhere
around 245°C, while all-metal ones where
no PTFE touches the hot zone can usually run
up to 300°C or more.
If you want to dive deeper into the runaway
protection settings, for example because it
triggers too easily and leads to false positives
for you, you can do that in the “configuration_adv.h”
file.
If the defaults work for you, there’s no
reason to change them, but having a look at
what everything is set to will still help
you understand the functionality a bit better.
Again, search for “runaway”, and you’ll
find two pairs of settings for the hotend(s)
and the heated bed.
Let’s actually start with the second one,
“WATCH_TEMP”.
The “PERIOD” and “INCREASE” settings
basically say, in this case, that every 20
seconds, the firmware is expecting at least
a 2°C increase in hotend temperature while
things are heating up.
That might sound super slow, but keep in mind
that the temperature might only creep up to
the set temperature once it gets close.
The other settings, “THERMAL_PROTECTION”,
actually refer to the temperature once everything
is heated up, and, ideally, the machine is
printing.
The defaults values of 40 and 4 say that if
the temperature drifts more than 4°C away
from where it should be for longer than 40
seconds at a time, it will trigger the emergency
shutdown.
Again, the defaults are ok here, if they don’t
work for you, check that PID settings are
good, and re-tune them if necessary, make
sure that your cooling fans don’t blow over
the heaters too much, but if neither of those
make things run perfectly reliably, you can,
of course, make the settings a bit more lenient,
which is still better than turning the protection
features off entirely.
Okay, so we’ve done the configuration, but
we still need to get it uploaded onto the
printer.
So, the classic way to upload new firmware
is to plug in the printer via USB to your
computer, select a matching Arduino board
in the Arduino software, typically that’s
the Mega 2560, and its serial port, install
a few missing libraries and hit “upload”.
Like, that’s it.
The LEDs on the board will flash wildly for
a bit and once they stop, your printer will
start up with your freshly configured firmware.
However, some printers ship without the piece
of software called a “bootloader” installed
on their processor that would allow you to
upload firmware simply through USB.
For those, you’ll need a hardware programmer
like the USB tiny ISP, which you plug into
the “ICSP” header on the mainboard, and
then flash the firmware through the appropriate
menu in the Arduino software, or first install
the bootloader and then flash it the rest
of the firmware through USB like with any
other machine.
But the exact process can be different for
every machine, so I don’t think it makes
too much sense to explain all the variations
in full detail here.
Ok, so you’ve got the new firmware uploaded,
time to check if the safety features work.
You can do all these checks while the printer
is powered up, just make sure you don’t
touch any loose wire ends where they don’t
belong.
So first off, to check MINTEMP, just unplug
the thermistor while the printer is cold,
and it should immediately stop by itself,
turn off the heaters and refuse any further
commands from you.
Same with MAXTEMP, but this time you need
to short out the thermistor, for example by
using some tweezers and reaching into the
side of the crimp connector.
To test the runaway protection, you’ll need
to disconnect the heater element, once while
the hotend is still heating up, and once while
it’s at temperature.
A few seconds after the time period that is
set in the firmware, by default 20 and 40
seconds, the safety checks should trigger.
Now, for this, it’s probably ok to unplug
or disconnect the wiring while things are
powered up, but I’d recommend powering off
the entire machine before reconnecting them.
Alright, so with these checks enabled and
functional, your 3D printer has already become
a good bit safer.
But this shouldn’t be an excuse to just
ignore everything else on the machine that
could be a risk or fire hazard, so definitely
also check out that other video I did on general
fire safety on any 3D printer right up here.
Now, what definitely isn’t a fire hazard
is Squarespace.
Squarespace is the easy way to get yourself
seen on the Internet: Whether you’re creating
a portfolio for your work or want to set up
an online store, Squarespace lets you create
the website that is right for your needs.
They will take care of the entire tech backend
for you, and configure everything with the
checks that make sure nothing ever burns down,
for you there’s nothing to install, patch
or update, ever.
Simply open up your browser, choose any of
their award-winning templates, add your content,
and it’s going to look professional, no
matter if your visitors view it on a smartphone
or a big desktop monitor.
Go to squarespace.com/sanladerer now to get
a free trial and 10% off your first purchase.
Alright, so I hope that not only did you learn
something, but now actually these checks turned
on for your own 3D printer.
Don’t forget to get subscribed if you want
to see more videos like this one, hit that
thumbs up if this worked for you, and, yeah,
thanks for watching and I’ll see you in
the next one.
