I'm Tom and today I'm going to give you a very basic walkthrough of configuring
uploading and debugging your 3D printers firmware so the firmware
controls basically every aspect on your printer from step of control over heater
management to the communication with the printer host everything is handled by
some part of the firmware now a 99.9% of all printers the firmware
runs on a atmega chip which makes a Control Board arduino compatible so
naturally we're going to be using the arduino environment to configure and
upload the firmware if you don't have arduino installed yet head over to
arduino.cc and download and install the latest stable arduino software check
the video description below for a link so I kind of lied when I said the
controllers are Arduino a compatible for many of them especially the ones
like the ramps where an actual Arduino board is the basis of the controller you
can use the Arduino environment just lightly comes out of the box however for
some boards like the sanguine or Lulu the melty or the printer board you need
to download a hardware configuration set so that the Arduino software knows how
to talk to the board you'll find these linked in the RepRap wiki or on the
board's manufacturers page once you get the file close the Arduino software if
you have it open and unzip the file you downloaded into arduino sketch book
folder on Windows and Mac that's usually documents Arduino on Linux it's the
sketchbook folder in your users home directory inside you'll find a folder
called hardware when unzipping the files make sure you end up with a folder named
after your control board that in turn has focused called bootloader cores and
so on if you installed it correctly you'll now be able to select your board
within arduino and upload firmware to it so the firmware I'm going to be using is
Marlin which is the most popular firmware at the moment again check the
video description for a download link to a fresh copy of Marlin
unpack the zip file and you'll find the Marlin.ino file which you can open
with the arduino software since the Marlin firmware is being very active
developed some of the options might look a bit different if you downloaded the
new version still the basics aren't going to change so that's what I'll be
covering in this video also if you're using a 3D printer kit or ready build
printer check with the manufacturer of your printer they might just have a
pre-configured version for download then you can either tweak to your heart's
content or use as a basis for a fresh configuration so is the open up Marlin
it will flood your Arduino software with heaps of tabs the important one for now
is configuration.h which contains all the basic settings what is really
important with these settings is that it don't change the punctuation or
separated by commas or brackets unless you know exactly what they're doing if
you're unsure if you mess things up hit the compile button up here and it will
throw an error if things aren't right so as we work our way through the
configuration file keep in mind that there are a lot of settings in here that
aren't crucial to running your printer so I'll be skipping those and focusing
on the ones that are really important for getting your printer running for the
first time the first important setting in here is the baud rate which is the
speed at which your printer communicates with the host the default is 250.000
if you're having trouble connecting to your printer try 115200
instead but for now we're just going to leave that at 250,000 as you scroll down
the next important setting is picking the right board each of the popular
boards has a number assigned to it and all you need to do is enter that number
down here and Marlin will use the proper settings for that board I'm using a
Melzi board so that's number 63 the next crucial setting is picking the right
thermistors the thermistor is the temperature sensor in your hotend and
your heated bed most manufacturers will tell you which thermistor they're using
for example E3D uses number five the semitech thermistor so down here where
it says temp sensor zero that is the first hotend so we're going to be
saying temp sensor zero is number five temp sensor one which will be a second
hot end is not used so that's zero and if you have a heated bed you can also
enter the thermistor using there so for example if you're just using a generic
100k thermistor you can use temperature table number one
so the next important block of settings are the PID settings the block up here
are the PID settings for your hotend if you don't know the KP KI and KD values
you should be putting here leave them at the defaults and run PID auto-tune this
is the spot where you'll be entering those values that the PID auto-tune
gives you next up is the bed temperature control now the bed works a bit
different to the hotend by default Marlin doesn't use PID for the bed and
it's just switching it on and off depending on where the temperature is
too high or too low to get a much better and more stable temperature control you
can enable PID for a bit now you do this by uncommenting this line up here where
it says define PID temp bed however you should not be using PID if you're
driving your bed through a relay or a solid state really if you're using the
default transistor the mosfet on your control board there's going to be
absolutely no problem in using PID now the same thing as with the hot end
applies here if you don't know KP KI and KD values that work for your bed run
Auto Tune and use the values that that gives you
so the next block of settings is the endstops settings regular printers have
X, Y & Z min endstops which means that the endstops are sitting at the zero position
of each axis now this setting right here tells the firmware whether or not the
endstop is putting out an inverted signal or not usually for opto endstops
you can set these settings to true if you're using micro switches set them to
false if you don't know which setting to use just leave them at true and try it out
the max endstops are normally not used so we can just ignore those settings for
now
now the invert X Direction invert Y direction and invert C Direction
settings don't matter much if your axis is moving in the wrong direction you can
just flip the motor connector around so we're just going to set all these to
false for now and adjust the direction with the motor connector so the next
setting the x y&z Max positions are going to tell the firmware how large
your printer is so by default this is set up for a Mendel or Ultimaker size
printer where X Y and Z are about 20 centimeters long for now we're just
going to leave it at 200 millimeters since that is a really common size next
up is our bed leveling that is an advanced feature and not crucial to
running your printer for the first time so so that's going to be a separate
video and the next block of setting that sits interesting is the movement
settings and the setting in here that is most important is the default access
steps per unit this is the steps per millimeter settings that is often talked
about so the values in here are basically X Y
Z & E for the extruder and what they tell the firmware is how many steps it
needs to send to the stepper driver and motor to get one millimeter of movement
out of the axis for X Y and Z use Prusas calculator to get proper values the
extruder steps per millimeter however should be calibrated so as a basic
starting value for a geared extruder use 500 steps per millimeters for a direct
drive extruder or use 250 millimeters and then do a calibration next up is the max feed
rate which is the maximum speed your printers axis will be able to run it so
the default settings in here are set up really fast almost none of the common
printers can do 500 millimeters per second so we're going to reduce that to
200 for now again this is X this is Y and this is the Z-axis if you have a
regular lead screw driven Z-axis use 3 millimeters per second for now the next
line is the max acceleration for each axis that is the speed at which the axis
accelerates at so again the defaults are set fairly high 9,000 millimeters per
second squared is something that an Ultimaker can achieve but it's going to
be almost impossible for a regular printer to manage so an acceptable value
for these are 3000 millimeters per second squared if you find that your
printer starts skipping steps during small moves reduce the acceleration for
that axis if it's skipping steps on longer moves reduce max feed rate so the
next setting down here is the default acceleration which is the acceleration
of the nozzle itself across the bed and the retract acceleration does the same
thing but for retracts you can leave those at the default so as we're
scrolling down there is one more setting that the Marlin firmware is known for
and that is the jerk setting the default of 20 is again set fairly high
setting of 15 or 18 will give you fairly nice prints at regular speeds if you're
printing really fast you should probably also increase the jerk again keep in
mind that that might lead to your printer skipping steps so that's
basically it as it's going down you'll find a couple more settings for LCD and
encoder support and so on but again those are not crucial to printing those
are comfort features so we're just going to leave them as they are for now so
that's the very basic configuration but wait there's more there is one more
setting that you really should enable and that's hidden in the configuration_adv.h file
which is the advanced configuration and that setting
is the heating sanity check that's setting make sure that in the case of
your thermistor failing or falling out of the hotend it doesn't melt your
hotend or set your printer on fire because it's overheating so to
enable that you move the comments here and in the next line and that will be a
basic but really effective protection for your hotend so the filament is
ready to be uploaded at this point connect your control board via USB make
sure you select the right serial port and hit upload the firmware will compile
and the Arduino software will upload it to the board wait till the LED stop
flashing and the Arduino says upload completed now your board is basically
ready to use here's a couple of basic checks that you can do to make sure you
don't have any major errors in the configuration before you power up your
12 or 24 volt power supply connect to the board with your RepRap host
software and check that the temperatures it's reporting a plausible if not you
probably selected the wrong thermistor as you turn on the power supply make
sure that the temperature is don't start rising on their own and that no part of
the control board starts cooking when it passes that test used to host to move
each axis by a bit and check that it moves in the right direction keep in
mind that the movements are taken from the nozzle relative to the bed so if you
have a moving bed and move y positive the bed should move towards you use the right
hand rule to get a basic idea of which axis has its positive direction at which end
hold your right hand out like this and from your point of view this is X this
is Y and this is Z positive when you're looking at the printer from the front if
an axis only moves in one direction you probably have the endstop inverted
sitting wrong if it always moves in the wrong direction
flip the motor connector around after turning the power off or invert the axis
in Marlins config next check the end stops functionality by homeing one axis
at a time but keep a finger on the power switch if the axis starts moving away
from the end stop the home direction is set wrong when the axis moves towards
the end stop try stopping it by triggering the end stop by hand so that
the axis doesn't crash into the end stop is something else to setup wrong if the
axis doesn't react to the end stop when homing you probably have it hooked up to
the wrong axis sending m119 to your printer will tell you which endstop
you're actually triggering at the moment now before you start printing anything
you should also calibrate your extruder if you use an estimate steps per
millimeter value in the config also set your Z endstop if you haven't done so
already and you should be able to get your first print up so that's basic
process of getting mall and running on your board I hope this video helped you
getting started so as always please like and subscribe and let me know in the
comments what do you like to see next