This is a quick-start guide for my friends getting started with 3-D printing. It is mostly specific to the 3-D printer that we all have, the Creality Ender-3 Pro.
The latest version of this document is always found
at https://futureboy.us/blog/3d.html
When you first open the printer box, you may be wondering "where is my documentation?" There is a printed fold-out assembly guide, but not much else.
The printer's documentation is on the little USB drive that comes with your printer! Plug this into your computer and you will find assembly videos, manuals, and test files to print. I may have also printed out some of these manuals for you.
The USB drive contains a MicroSD card which is the way you will also print
your models! The MicroSD card pulls out of the USB drive carrier and is
inserted into the slot on the front of your printer. The 3-D printer will
read files with the .gcode
file extension and print them.
There is an assembly video on the USB drive that comes with the printer that you can play in your computer. There is also a fold-out assembly guide. Note that the order of assembly in the video does not exactly match the printed directions. Use the printed directions but refer to the video when necessary. We assembled the printer, having no idea what we were doing, in about 90 minutes working slowly and carefully. Try to figure out what each motor moves as you put it together! Here are a few things to double-check:
The most important thing you can do to ensure a good print is making sure your print bed is leveled and at the right initial height from the nozzle. For this, you will need a typical sheet of typing paper.
For your first attempts, I recommend that you manually level the bed by using the printer's built-in menus. You will learn a lot from this! The menu items you will need are under Prepare and are:
In short, you will first place the piece of paper on the print bed and then manually move the nozzle to all 4 corners and the center of the print bed, adjusting the bed height so that the nozzle just scrapes the piece of paper and the paper can slide with just a tiny bit of resistance. Make sure you raise the Z axis off of the bed before moving it on the X and Y axes!
To adjust the bed level at each corner, you will move the head to each corner and turn one of the 4 large black knobs on the bottom of the bed to make the nozzle just scrape the piece of paper. Turning clockwise raises the bed (makes it "tighter") and turning counterclocwise lowers the bed (makes it looser.) Repeat this several times for each corner and the middle of the bed. When adjusting the middle of the bed, you must raise or lower all of the 4 corner wheels! Repeat this process a couple of times.
In my experience, the bed may not be exactly flat, and the center of the bed may be higher or lower than the corners. Since smaller prints will be made in the middle of the bed, getting the middle of the bed height correct is the most important!
Once you've leveled the bed manually once or twice, and have learned which are the X, Y, and Z axes, there are some faster ways to help level the bed!
One of the best ways to help you level your bed is by running a program from your SD card that helps move the print head to each corner of the bed.
I have created a modified bed leveling tool which is a
short .gcode
program that you will "print" from your 3-D
printer (it doesn't actually print anything, but moves the print head to
various points on your print bed and lets you adjust the bed level.) The
file is here:
You will need to download this to your SD card, safely eject your SD card from your computer, insert the SD card into the 3-D printer, and choose "Print from TF card" from the printer's menu. This file is based on a file by Chuck Hellebuyck. He has a video below describing the process:
The page above contains videos and his original .gcode
file, CHEP_bed_level.gcode
, that you will extract to your SD
card (which the printer calls a TF card) and run on your printer to make it
easy to level your bed by moving the nozzle to all 4 corners and the center
of the bed.
Warning: I don't really think this is as safe as other methods. It requires disabling the stepper motors, and then manually shoving the print head around by hand. When doing this, you have to be careful not to move the print head up or down (but this means it may scrape the bed when you're moving it!)
This alternate method of leveling your bed is described in the video Ender 3 Pro Bed Leveling (Without Extra Tools or Upgrades).
This section of the document discusses working with different types of plastic filament for printing.
These printers can print with many different types of plastic.
If you'd just like to just watch a really interesting video, I recommend Josef Prusa's comparison of 3-D printing materials which compares static and layer strength and ductility, stiffness, impact resistance, and temperature response of PLA, PETG, and ASA (which is similar to ABS.)
Pros: It's easy to work with, doesn't shrink a lot, has a lowish melting point, and is made with renewable, nontoxic materials (it's often made from cornstarch or sugar cane.) It doesn't release harmful fumes when heated and can be worked with indoors. It adheres well to print beds and does not warp strongly.
Cons: PLA filament can degrade when subjected to humidity. Keep your PLA dry and keep the silica gel dessicant packet. PLA can warp under high temperatures. Under certain (very hot and high pressure) conditions, PLA is biodegradable.
You probably have PLA+. This is inexpensive and available in many colors at MicroCenter for $18.99 / kg. Amazon has PLA in lots of colors
Pros: It's strong (it's what Lego blocks are made from). It can be polished/dissolved using acetone (nail polish remover) fumes to give a shiny surface. It can be glued/melted together using acetone. It is more durable (less brittle) and more flexible than PLA.
Cons: It requires much higher nozzle and print bed temperatures than PLA, shrinks when cooling, and may release fumes while printing, so you want ventilation when printing with ABS. ABS can be degraded by direct sunlight (but it's still pretty strong.) Many people also note that you need to print ABS in a heated enclosure to get its full tensile strength. (There's a video comparing the strength of PLA, PLA+, ABS, and some other materials, and shows how to make them stronger by re-melting them in salt!)
Pros: It has strong chemical resistance and durability. It has higher temperature stability than PLA (which sags at intermediate temperatures.) In temperature tests, PLA softened at 140 F (60 C), and failed at 149 F (65 C) while PETG softened at 176 F (80 C) and failed at 185 F (85 C). For comparison, ASA softened at 230 F (110 C) and failed at 248 F (120 C). PETG is food-safe and fully recyclable. It has high impact resistance. It is odorless while it prints. While this may be a pro or a con, PETG is less rigid and brittle than PLA or ABS/ASA, and when subjected to high tension, it tends to deform and stretch slowly, rather than shatter.
Cons: PETG has a higher melting point than PLA, making it a bit more difficult to print. PETG can have bed adhesion issues. It is recommended that it be printed on a flexible substrate like the Ender 3 Pro's flexible "BuildTak"-like magnetic build plate. Otherwise, on glass, it may require blue painter's tape, glue stick, or other adhesion aid. It is also warned that it can bond very strongly to glass surfaces! In fact, it can bond so tightly that prints cannot be removed, or will remove chunks of glass! It tends to warp and disconnect from the bed while printing, and may require additional bed adhesion techniques. Support for PETG in many slicer software is not as good, and the default profiles may not provide good results. (The generic PETG settings in Cura don't adhere at all.) I have had the best results (in a small number of tests with Inland PETG) with setting the nozzle temperature to 240 C, the bed temperature to 80 C (Creality recommends 90±5 C on its glass build plate) and turning down the part-cooling fan (recommendations are between 20% to 50% by some manufacturers, especially for the first layers, where you want to set the cooling fan to 0%.) Higher temperatures have been better than lower temperatures. Printing the first layer very slowly (10 mm/s) also helps.
Pros: It's a flexible material! This increases the range of the parts you can make. You can make gripper feet, protective pads and bumpers, flexible joints, shock absorbers, strain relievers, tool grips, phone cases, and more.
Cons: TPU is quite tricky to print with because of its flexibility. It likes to bend and kink in the Bowden tube, and have uneven pressure in the nozzle. If it retracts, it does not retract instantly. When it is advanced, it does not instantly provide pressure. It kinks and sometimes fails to feed around the input to the extruder motor. (Unwind the reel partially for best results.) It requires lots of attention and fairly high temperatures to print (my only successful results were at 230 C. Lower temperatures usually eventually failed.) If the temperature in the nozzle is too low, sometimes the filament just stops extruding and the print globs and fails. TPU is not food-safe.
I was reticent to print at higher than 235 C because some people claim that the PTFE (Polytetrafluoroethylene, also known as "Teflon" which is a brand name) Bowden tube that feeds the filament to the extruder, as shipped by Creality, is not designed to be used at higher temperatures. I replaced it with some Capricorn XS PTFE tubing. Here's what Capricorn has to say about the safety of higher printing temperatures. The Capricorn XS tubing is their higher-end tubing with a smaller inner diameter which is necessary for printing flexible filaments like TPU. The narrower diameter helps the flexible filament feed straight through the tube without bending or delays in pressure.
Most slicers do not come with a useful profile for printing TPU. TPU must be printed very slowly (somewhere between 10 mm/s and 20 mm/s, with 10 mm/s being needed for the first layer) or it fails. The material produces lots of strings on the final print.
To insert filament into your printer, it is often most useful to snip the end of the filament at a 45 degree angle. Filament is inserted into the wee hole by the filament extruder motor by squeezing the spring next to the filament extruder motor with one hand (releasing the gear teeth) and inserting the filament with the other hand. Sometimes you have to rotate and jiggle the filament until it enters the hole. It can be fed by hand into the tube until it stops at the heater/extruder block.
I had difficulties figuring out how to remove/change filament from my printer. After a print, the filament is usually melted solidly into the extruder heater block, and you can't simply pinch the spring next to the extruder motor (to release the extruder motor teeth) and pull it out.
The secret is you have to preheat the extruder! Once you have preheated the extruder, a menu item will appear to let you change filament! There will be no menu item before that! This will retract the filament backwards, after which you can either squeeze the spring next to the filament motor and pull the filament out manually or control the stepper motor to retract the filament more.
While doing this, keep your filament neatly coiled! See the section Storing Filament below for tips on storing your filament.
You can then insert new filament following the instructions in Inserting Filament above. You should squeeze the spring near the extruder motor and feed the filament into the tube until it is at the extruder heater. The screen will prompt you to insert new filament. At this point, it will run the extruder motor to feed in the new filament. During this time, you will get a mixed-color ooze of old and new filament from the nozzle. Remove this before printing.
As noted above, PLA plastic (and all filaments) can be degraded by exposure to humidity. It is recommended that you store your plastic in a closed bag, and keep the dessicant packet in with it. If your filament just stops printing, or bubbles, or hisses, it may have taken on moisture!
In addition, it is important that you keep your spools of filament neatly coiled. Many people have noted problem with their prints if the filament is not neatly coiled on the spool and gets "tangled." You know you have this problem if your spool releases with a "sproing" during printing. Most filament spools have holes around their rims that you can tightly feed the end of your filament through to keep it neatly coiled.
Cut off the ends of your filament and discard it if it's bent too tight or too damaged from the extruder motor teeth.
What software do you need to print a 3-D object? The following sections will answer those questions, but the one piece of software you will almost always need is called a slicer.
The one piece of software you'll almost always need is called
a slicer. A slicer turns a 3-D model (usually in .stl
format or Wavefront .obj
format) into a set of commands that
control how a specific printer will move its print head, when to extrude
plastic, how thick to print layers, what temperatures to require, etc.
The slicer is the program that turns a general 3-D model into very specific printing commands for your 3-D printer and your type of plastic.
The slicer program will usually let you configure the print in many ways, including:
The USB drive that comes with the Ender-3 Pro contains the Creality Slicer software for Windows. You will need to install this on a Windows computer to generate your prints. (Warning: the software available at the link above is probably very different than the software that shipped with your printer!)
The output of a slicer program is a .gcode
file which is
specific to a certain printer and printer settings.
This .gcode
file is usually exported to the USB adapter/SD
card that comes with your printer.
You then must safely remove/eject the USB adapter from Windows (Creality Slicer has an option safely remove the USB adapter after you export/slice a file to the SD card, as long as no other window is using that SD card) and then the SD card is removed from the USB adapter and placed into the 3-D printer (label side down.)
I would recommend getting started with the Creality Slicer software that comes with your printer. It exposes a good set of beginner and more expert options to control your slicing and printing. Here are some other options for slicer software.
One difference I note when using official Cura software is that the default wall thicknesses are thicker (usually 3 passes instead of 2 when compared to Creality Slicer.) This is configurable but makes prints take longer and use more plastic by default under Cura.
To create new 3-D models for printing, you need some sort of modeling
software. This is where I have had the least experience
(but now I have built an entire 3-D modeling system in my
programming language Frink.) I started
trying to design exactly-dimensioned engineering models in some programs
but I had a hard time getting exact dimensions right. I ended up writing
my own 3-D modeling software in my programming
language Frink, which is nice because
it blends a capable, full-featured programming language with a 3-D modeling
library. See the 3-D in Frink section of this
document for more.
Here are some options for modeling software, most of which I haven't evaluated:
The OpenSCAD Tutorial looks nice and will get you started designing objects quickly.
The apparent drawbacks of OpenSCAD are that they explicitly warn you that you have to make parts overlap or OpenSCAD might think that they are separate objects and won't connect them. This problem does not exist in Frink's voxel-based 3-D routines.
Sometimes you might need to visualize, clean up or fix models that come from elsewhere. The following is a list of software that may help with that:
You may not need to design the object you're going to build! There are lots of sites on the web with downloadable 3-D models that you can slice and print!
There is also documentation
of Frink's 3-D libraries. You
will probably want to look at the VoxelArray
class.
Also see the 3-D in Frink section of this document for more.
The file formats that are usually produced by modeling software for 3-D
printing are .stl
format and Wavefront .obj
format. These files can both be simple text files that you can write by
hand or with a program! I created my first 3-D models by creating
Wavefront .obj
files with some simple Frink programs.
What does an .stl
or .obj
file format
represent? Well, all they usually represent is a bunch of triangles that
represent the external hull of a 3-D object! The coordinates of the
triangles are listed in counterclockwise direction as seen from
the "outside" of the object. That's it! Now you can write your own! See
the links below to format specifications.
When I'm generating 3D model files, I prefer Wavefront .obj
file format because it, unlike .stl
format, can contain planar
polygons and not just triangles, and you don't need to specify the
unnecessary/redundant normal vector like you do in .stl
format. Wavefront format also allows you to specify a list of vertices and
re-use them. This is very helpful to slicer software to know that
two vertices represent the same point, and results in smaller files.
Links to file formats:
.obj
format description including
a minimal example to generate a cube.
STL format notes: The surface normal in a .stl
file can often
be set to 0 0 0
.
Wavefront .obj
format notes: My slicer software can only
understand simple .obj
files with vertices and faces.
Vertex numbers cannot be negative.
To print an object, you need to give your printer a .gcode
file. These files contain the commands to move the printer nozzle around,
extrude plastic, etc. (These are just plaintext files so you can look
inside one of them with a text editor! You can learn a lot from
the .gcode
files, especially ones from good software that
includes comments!)
The SD card that comes with your printer comes with a few
sample .gcode
files that you could print right away, but most
of them are somewhat large and might take several hours.
These .gcode
files have already been "sliced" and you can't
modify any of their settings.
(This next part needs fleshing out.)
I suggest that you take a small .stl
or
Wavefront .obj
file (see
the Downloading Models section) and send
it through your slicer (see the Creality Slicer User Manual that comes with
your printer.) Make sure it is flat to the printer bed. Scale it to about
1 inch (25.4 mm) cube. Slice it, export the .gcode
file to
your USB drive, eject the USB drive safely, remove the SD card from the USB
carrier, place the SD card (label side down) in the slot in the front of
the printer, turn the printer on, level the bed, insert filament, preheat
PLA, choose print from TF, choose your .gcode
file, then
print.
My programming language Frink is rapidly becoming a highly-capable environment for 3-D printing.
Here are some Javadocs for Frink's 3-D
routines. These may change and are intended for use in 3-D printing,
and not realtime 3-D rendering. The class you want to look at
is VoxelArray
which contains a lot of methods for drawing
primitives (like cubes, rounded cubes, spheroids, cylinders, capped
cylinders, toroids, tapered cylinders, planes,) moving tools through
solids, performing constructive solid geometry (that is, taking the
intersection of two objects, the union of two objects, or the difference of
two objects,) extruding images and text, creating solids of rotation, and
more. It also contains algorithms for many 3-D operations such as cross
product, dot product, 3-D coordinate transformation (and inverse
transformation,) distances to points, distance to lines, distance to finite
line segments, inside/outside polygon algorithms, inside/outside plane
algorithms, plotting of arbitrary equations in 3-D, moving tools by
parametric equations along arbitrary paths, and many more.
To see samples of Frink's increasing support for 3-D printing, search the
sample programs
for voxel
.
For older programs that render Wavefront .obj
file formats
directly, search
for wavefront
.
The following are some videos that I've found interesting:
.gcode
file, CHEP_bed_level.gcode
, that you will extract to your SD
card (which the printer calls a TF card) and run on your printer to make
it easy to level your bed by moving the nozzle to all 4 corners and the
center of the bed. Recommended!
The Ender-3 Pro comes with a nice magnetic mat that makes it easy to remove prints from the printing bed. It works great for small prints or thin, fragile prints that might be hard to remove otherwise. You can just lift the magnetic mat and gently curve it, and your print will pop off! Be careful not to cut or crease it, and remove excess plastic from it between prints. You can clean it with isopropyl alcohol. Magnetic build plates and heated print beds used to be super-rare-and-expensive features that only experts had or made for themselves. And it comes standard with the Ender-3 Pro!
The nice thing about the Ender-3 Pro is how cheap, easy, and open it is to replacing parts or upgrading. (Look at Micro Center's 3-D Printer accessories page! They have almost all replacement parts in stock, for surprisingly low prices.)
One of the most common modifications is to replace the magnetic mat with a glass build plate. The helpful, knowledgable sales associate at Micro Center recommended a glass build plate when I was buying my printer. I didn't know if I needed one or not, but I bought one anyway because the Ender-3 Pro glass plate was only $17.99.
For 3 to 4 months, I happily printed smaller items in the middle of the build plate, and the magnetic mat worked for me. I knew that there were problems, though. No matter how perfectly I leveled the 4 corners of my print bed, the center of the bed was always low and loose! Since I only printed smaller single items in the middle of the print bed, I adjusted my leveling process to make sure the 4 corners were extremely tight, which just barely got the middle of the bed to adhere. Usually.
I knew that the magnetic bed was somewhat concave and I could probably never properly level large prints. Some people get around this by putting heat-proof tape underneath the center of the magnetic mat to make it more level. Or they physically bent the plate to make it flatter!
The issue that forced me to finally try the glass bed was multiple attempts to print a small version of Enzo Mari's beautiful "16 Animali" artwork. It was an artwork/puzzle/toy/sculpture made in 1954 that consisted of 16 charming animal pieces. You can reproduce your own using Frink's 16Animali.frink program and the associated files. Also see the charming 16Pesci.frink program for a puzzle with fish and marine animals.
It was the largest print that I had made (width 150 mm or about 6 inches) and no matter what I tried, I could not get all of the pieces to adhere properly to the bed. I tried 3 times, tweaking the bed leveling, but it was clear that the magnetic bed was concave enough that it was not possible to maintain levelness across the entire build.
So, finally, I decided it was time to try the glass bed.
This initially did not go smoothly. It's sort of silly that there is no attachment mechanism, but people use binder clips to hold the glass plate to the build plate. This is evidently what is recommended. I spent quite some time finding binder clips that were the right thickness and strength, and making sure that they were not in the way of the print head in normal usage.
The next, more serious problem, was that the nozzle dug into the buildplate, no matter how far I turned the leveling wheels! Nobody tells you about this! It was literally impossible to level the bed, or to keep the nozzle from digging into the glass bed!
The problem is that the glass bed is much thicker than the magnetic build plate, and the printer rams the nozzle into its surface before it hits the z-axis limit switch! This is a problem!
Important technical note: (The z-axis limit switch is on the left of your printer. It is triggered when the print head is low enough to be at its "bottom". (This will become important in the next paragraph.) There are 3 limit switches on your printer: one each for the x, y, and z axes. Each of them tell the printer when the head has moved to its limit on one of the axes. The y-limit switch is in the back and tells the printer that it has moved all the way to the back. The x-limit switch is on the left and tells the printer that it has moved all the way to the left.)
The thing that nobody tells you when you're installing a glass print bed is that you can never level it properly unless you move the z-axis limit switch!
Let me repeat that. If you're installing a glass print bed, you can never level it properly unless you move the z-axis limit switch!
What I finally found out after watching hours of videos about installing a glass bed, one dude finally mentioned that the glass bed was much thicker and that you had to "adjust" the z-limit switch on the left-hand-side of the printer.
After very much trial and error, what his comments meant was that I had to fiddle with the z-limit switch on the left-hand-side of the printer and move it upwards. There are 2 adjustment screws (that can go wonky) that you need to use to move the z-axis limit switch up properly a few millimeters. This will give you enough travel in the adjustment knobs to finally make the nozzle not dig into the glass bed. I fiddled with this at least 6 times over many hours and finally got it to work, after running the bed-leveling program many many times. I don't know if I have enough screw travel to level the bed again if I go back to the magnetic bed. There are also many reports that the glass plate may permanetly adhere, and you will not be able to remove it! Buyer beware.
However, it gave me a planar bed. That I can print many unconnected pieces on. Which was the intent.
The glass bed, if leveled correctly, gives great adhesion. It is very very hard to remove some models from the glass bed. I had a puzzle that could not be removed and had the most luck using bar clamps to squeeze the parts of the model together, which finaly popped them off.
Its also possible to use a light hammer (possibly combined with a painter's knife) to pop objects off the glass build plate.