Lego 3D Printer/plotter





Introduction: Lego 3D Printer/plotter

Toy Challenge

First Prize in the
Toy Challenge

Hello, thank you for looking at this!

First off, a slight update. I'm working on the 3rd version printer, which should actually be able to print. Since I won an NXT 2.0 in the Toy challenge with this, I should be able to make another one for the next contest that features a Makerbot.

I originally wanted to create a lego 3D printer for the makerbot challenge, but wasn't able to finish it in time. So, since another makerbot is up for grabs, I decided to do a second version of the printer. Since I have no extruder, I can't actually have it be a 3D printer. That's why it's currently configured as a pen plotter. Also, this takes a massive number of parts. I had to scrounge around for all the little pieces I need.

This is my first instructables, so I've decided to do the guide with a combination of two different techniques. I'm using Lego digital designer to design some of the sub-builds. I've exported each sub-build as an html file and html files are each given a number. (All of which are in the "building" file) I'll reference them by B#. ie, B1, B2 or whatever. So when I say build 2 of B1, I mean open up 1.html and build it twice. If you have Lego Digital Designer (LDD) and would rather use it, the "" file has all of them by the same number. It's just B1 is 1.lxf instead of 1.html. Sorry if that's confusing. The second approach was to take pictures of putting the sub-builds together.

Here is a video demonstrating what it can do:

Step 1: 3d Printer Sides: the Triangles

So the first thing to build is the sides.  I'm going to show you with the Z axis rail, but we will remove that later to put in the Z platform.  Don't worry, it's pretty easy to do.  I designed it mostly in Lego digital designer, but there were two pieces it didn't let me put in, so I'll show you that in the picture.  Go ahead and build 2 of B1 (Open 1.html in the building instructions folder, and build it twice).  I've also included the 1.lxf file if you have LDD and would rather use that.  The html file is just a little bit weird.  I think they need to work on their building instructions algorithm.  Anyway, see the pictures for the two pieces that were missing and where they go.  (One piece for each side.)

The main picture is one side fully assembled.

Step 2: Putting the Sides Together

Now that you have two side pieces done, we have to make the pieces that connect them together.  So go ahead and make B2 and B3.  Also, make two of B4.  You should have 4 pieces when finished.  (see picture)

The "feet" on the bot are actual lego feet.  See the second picture on what they are and how they go together.  Also see the third picture for how they attach to B2 and B3.

B4 is kinda weird.  See the fourth picture for how it should correctly go together.  LDD didn't like the way it should be for some reason, but all the pieces you need will be there.

See the fifth picture for how it will look when you're done!  See pictures six for where to place B2.  Pictures 7 and 8 show how one side of B3 should go.

And now, off to the next step!  You can already tell that it can stand pretty well by itself.

Step 3: Z Carriage

Now for a fun yet difficult part.  The Z carriage and pulley system.  We'll start off with the Z carriage which is B5, so go ahead and build that now.  Be careful, as the build instructions are slightly weird.  As in, they totally ignore physics a few times.  I would use the .lxf file if you have Lego Digital Designer.

See the pictures for what pieces to remove.  Basically, you remove the Z rails, slide the Z rails in through the slots on the side of the Z carriage, and put the Z rails back in place the same way you took them out.

Then, go ahead and build B6.  I know it's weird as well, considering it is made of multiple pieces, but see the pictures as to how it should be assembled.

Step 4: Y Platform and Carriage

And this is where I'm sure you're saying "yeah, I know, go build B7..."  (Guess what! It's also the last one!)  This model actually consists of both the Y carriage, Y axis, and the Y motor.  You build the Y axis first, and then (It doesn't say to in the model instructions) you have to build and put the Y carriage on the Y axis.  You'll see what I mean when you have a little bit of the Y axis built.  It's not that hard.  See the pictures for how it should go and how it attaches to the machine.  You can also just build through the entire thing, but you'll have to redo one side on the axis so you can slide the carriage on.

Now we get to put the Y motor on.  See the pictures.  I've also added a few pieces to try and brace it.  I'm not sure how that'll turn out, but you can add something like that if you want.

Step 5: Stringing It Up!

This step is all about the string.  Well... yeah, actually.  I used yarn in the pulley system.  I know, not the most ideal material, but hey, it's workable.  I also can't quite describe all of this well in words, so I'll just explain the basic concept behind doing the X and Y carriages.  The Z carriage is slightly different, as it takes two different points to pull it up and down.

The X and Y axis however, are much different.  They only take one string, but they are a bit harder to do.  You essentially have to connect one side of the string to the pulleys, run it through and connect it to the carriage, go around the idler (either the wheel in the Y axis, or the two little knobs in the X axis) and back through the carriage to the opposite side of the motor from where you started.  This one will have to wind up and down the opposite way as the first one.  This is because as the first one is unwinding, the other side should be winding up.  So spin the motor a few times to wind up one side so that the carriage is at one side.  Then, connect the string to the other side of the motor so that you can rotate the motor and the carriage goes back and forth.

The Y carriage gave me a lot of troubles, and if I had time and more pieces, I would probably completely redo it, but I'm afraid I don't/didn't have either.  Maybe in another version.  A side note about the two wheels on the bottom with the Z motor.  Only use one of them.  It's up to you which one.  Technically, it's a design flaw, but hey, it's doesn't hurt to have both, right?

Again, see the pictures for some stringing guidelines.  If I make another version of this, I'll have to figure out how to do that better.  In the meantime, that'll have to do.

After connecting all the strings up, you might have to tighten or loosen them, but you can then put the build plate on, and you're done!

Step 6: Programming!

Okay, so now for the part I actually claim to be good at. Programming! That's right, as America's past time...

So I decide to use lejos for this, because I like it, and was I kinda in a rush.  It makes code fairly easy to turn out.  Okay, so our printer needs a few functions.  It needs to be able to:
1) calibrate the printer (Demonstration video at the beginning)
2) accept commands, most likely from USB, detailing how the printer should move.  (Probably not gonna be full GCode support though)
3) dance???

I used A, B, and C motors for X, Y, and Z respectively.  I gave it the options to Connect, Calibrate, Check calibration, or Exit.  Sorry, no dancing for this bot.

To make it easy, I just set up Bluetooth to connect using the serial port /dev/tty.nxt on my computer.  I then had replicatorg try and connect to it.  Unfortunately, it was so slow that replicatorg gave up on it before any data was even sent to the printer!  So that's a no go.  I would try USB, but I've never dealt with USB and replicatorg, and I don't even know if that's supported.  I still left the option in there, because it will print in hex what it receives over bluetooth, and write it to "log.txt".

It can calibrate the printer, which really doesn't do much except find the bounds of the printer, and write them to the LG3DP.pref file.  Checking only checks what's in that file. ie, the current calibration settings.  They represent the degrees of rotation (The tachometer count) where the axis would start on one side and be 0, rotate that measurement, and be at the other side.  It's basically the distance from one side to the other on the axis.

And of course, exiting.  Sad to see you go.



    • Epilog Challenge 9

      Epilog Challenge 9
    • Paper Contest 2018

      Paper Contest 2018
    • Science of Cooking

      Science of Cooking

    We have a be nice policy.
    Please be positive and constructive.




    I had a weekend so I built it and, well it works it is t great but it is still a printer

    15, 3:50 PM.jpg15, 3:50 PM.jpg15, 3:50 PM.jpg

    That's amazing! Are you telling the NXT how to move manually? It's been so long since I built this, I forgot how I wrote the code lol.

    You should check out my second one:

    It should prove far more stable if you remove the motor and section that handles the CNC drill and replace it with the 3D pen.

    You have very interesting project made from MINDSTORMS!

    dude the videos private

    Fixed! Thanks for letting me know! I did an account transfer which seems to have made my videos private.

    why not make a printrbot instead? Just don't have money for the parts?

    If I recall correctly, this was built before printrbot existed. The second version ( was based on a printrbot. I am currently the proud owner of a Prusa mendel 3d printer.

    At the time I built this, I did not have enough for a pl3d printer.

    nice, I have a H-1 Huxley.

    any progress in making it actually print?

    This is the first version. The second version is

    I already commented about the second version, but as for this version: I don't think I'll go back to this design. It's too unstable. Especially the build platform. It could never work for actual printing. The second one was designed to, so I know that it can.

    I'm currently working on a delta Robot out of Legos, though, so stay tuned.