How to Learn Way Too Much About 3D Printers

January 7, 2017
I got a 3D printer for Christmas. Sort of. What I actually got was a large box of parts, that when properly assembled, could reasonably resemble a 3D printer.

For about 18 months now, I've had a 3D printer on my wishlist: the Flashforge Creator Pro with dual extruders. But it can be difficult to justify a > $1,000 price tag on what is arguably another toy for my home office. Parts, however, are a different story. Parts are inexpensive; it's the assembly, configuration, documentation, support, and the like that make up the bulk of the price tag. Parts I could justify.

I chose the He3D I3 printer, which is based on work that began in the RepRap community. The concept behind RepRap is pretty interesting. The objective is to create a self-replicating manufacturing machine. That is, a 3D printer that can print 3D printers. Several tiny manufacturers in China began spitting out part kits for variations of printer designs shared with RepRap; with some of these designs and manufacturers being more popular than others. While waiting for Christmas, I began to dig into all things 3D printers so that I could hit the ground running during my winter holiday.

He3d printer parts unpackaged

After unboxing, what you see above is what I had in front of me. At a glance, it looks fairly well organized. I smiled to myself, thinking what a piece of cake this was going to be. I was only slightly concerned when the assembly "manual" looked more like a brochure with scant diagrams. My anxiety level increased slightly upon realizing that this "manual" wasn't for my printer, but for a competing manufacturer's printer, and it was apparently copied with minor modifications. It ratcheted up another notch when I realized that there was absolutely no logical reference to these neatly numbered parts bags anywhere to be found. Surely there would be some instructions online, right?

My feedback is their motivation, what could go wrong?

Like most people (I assume), I began with the starting letters and numbers in sequence, figuring that "A" parts would be used before "B" parts, and "1" parts would be used before "2" parts. Spoiler alert: they weren't. So began the process of constructing the frame, and then deconstructing the frame when it became clearer where additional parts needed to be placed, then reconstructing the frame. The frame itself is relatively solid, made up of maker rails, those abominable t-nuts, and cut acrylic used as support in strategic areas. About 20% of my fasteners looked like they came from the reject pile, with misaligned holes, non-existent threads, cross threads, and other fun hurdles. When I began wiring the sensors, I was pleasantly surprised that the diagram in the assembly brochure matched my board correctly, and what I assumed would be laborious turned out to be the easiest part of the build. I consulted as many videos, blog posts, and forum posts as I could find, with each one getting me closer to the finish line. Along the way, the process made me learn much more about how these printers functioned mechanically than I could have possibly imagined. After all is said and done, while the build wasn't easy, I can fairly say that I know the purpose and function of every darn piece in that neat pile I laid out on the work table, and I fully appreciate having that understanding. It wasn't exactly what i was looking for in the project, but I'll take it.

From there, I got to work on the software side of things.

  • 3D Modeling: you create 3D models using a program that generates STL files. I tried 123D, TinkerCAD, and Fusion 360. TinkerCAD is a bit too simplistic, Fusion 360 is a bit too complex for my needs, and 123D is just right. But it's being phased out in 2017, so Fusion 360 it is. Blender is supposed to be another good open source option.
  • Meshing: once the 3D model is created, you need to convert that model into something that can be translated into a coordinate system, and perform functions like "healing" holes in the design and adding structure so that the print doesn't cave in on itself while it's printing. I used MeshMixer for this.
  • Slicing: from there, the mesh needs to be translated into precise instructions that can be read by the printer's firmware. These instructions tell the printer precisely where and how to lay down the hot plastic to form your creation. Simplify3D, Cura, and Slic3r are options here.
  • Hosting: when your model is sliced, another program can optionally manage the communication between your computer and your printer. Repetier Server, OctoPrint, Repetier Host, and Simplify3D are options here. I went with Repetier Host because the price is right (free), but a future project might be building a dedicated OctoPrint server with an extra Raspberry Pi.

Now we're rolling. I have several prints ready to test, and I run through all the diagnostics I can find. Everything looks aces except my hot end thermistor apparently thinks my office is a blazing 240 degrees Celsius. So it's time to follow that rabbit hole to see where it ends. After troubleshooting, testing, piecing together information from every thread I can find, I reach the painful conclusion that either my board is bad, or I have some damaged pins. Ever the optimist, I decide that the pins are the first thing to need some attention. It looks like I have an extra connection available, so if I can just reconfigure the firmware and flash my printer, maybe I'll be okay. The firmware I have is already compiled, so I reach out to the manufacturer for an uncompiled version, and they thankfully responded within a business day. I sift through firmware for about 30 different boards, make what I hope are the correct updates to remap the pins, and attempt to compile. No luck. For grins, I try to compile exactly what the manufacturer sent me. No luck. So the problem is with the firmware they sent to me, and not my updates themselves. I reach out to the manufacturer again, and they direct me to install an ancient version of Arduino for this effort. Against all better judgment, I uninstall my current version of Arduino, and install this unsupported, > 4 year old, 20-versions-in-the-past release of Arduino, and again make my changes and compile. The heavens are shining down upon me on this day, and it compiles just fine, so I flash my printer, and turn things on with a fire extinguisher at the ready. It doesn't explode, it doesn't make any funny noises, diagnostics check out okay, and the thermistor is now reading 20 degrees Celsius, so I assume I'm on the right track.

3-d printed poop emoji

At this point, I'm finally where most people are when they first unbox their pre-assembled printers. This is where troubleshooting usually starts. Because now I have to dial in my settings, get the heat bed and hot end temperatures just right, home the axes, adjust all the limit switches, tighten things down, level the bed, test different nozzle diameters, and so on. But anything is easy after what I've been through over the past 7 days. In what seems to be a miraculously short period of time, I'm beginning to spit out prints. If that sounds anti-climactic after what it took to get here, I agree with you. And I'm ecstatic about that. Because now I can print out poop emojis at will, and it's tough to put a price tag on that.

What I Learned
  • Choose a model with two threaded rods. Mine only has one, so the horizontal arm (X axis) is not entirely level, which means that my heat bed can't be entirely level because it must be precisely parallel to the path that the hot end takes. That leads to sub-optimal prints.
  • DIY kits are a painfully effective way to learn about the mechanics of 3D printing on both the hardware and software side of the equation.
  • Buck up for multiple extruders. I wanted my printer for prototyping and making, so I went for a single extruder, but it sure would be nice to print in multiple colors on the same print.
  • Automatic bed leveling: just get it, trust me.
  • You get what you pay for, and I mean that in a good and bad way. Good: to many who purchase DIY kits, the build is the project, and you definitely get that. For me, the build was a means to get an inexpensive 3D printer to use for making, and I sacrificed a lot of time in exchange for that cost savings.

As I write this, I wish I could say definitively if I would do this all over again. I'm grateful for the knowledge gained during this build, and I feel that I could do a much better job on the next go 'round, but I really don't know if I feel like sacrificing the amount of time it takes to assemble a printer from parts. On the other hand, I can't say with any measure of certainty that I wouldn't feel cheated of the experience if I just splurged for a pre-assembled model.

Ihave heard there are troubles of more than one kind. Some come from ahead, and some come from behind. But I've brought a big bat. I'm all ready, you see. Now my troubles are going to have troubles with me!

- Dr. Seuss


Hi, Shaun here. No, not the soccer player. And not the children's performer. Just me, a 40-something father of two, residing in Raleigh, NC, where the summer heat has me questioning my life choices.

I try lots of things. I'm okay at some of them. My hobby is collecting hobbies. I drink a lot of coffee. I'm susceptible to ear worms. I throw myself into the things I love. I can't wait for the weekend.