Introduction: Lego 3D Printer/plotter

Picture of Lego 3D Printer/plotter
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

Picture of 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

Picture of 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

Picture of 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

Picture of 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!

Picture of 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.


mrblank5 (author)2015-11-23

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

jnesselr (author)mrblank52015-11-24

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.

bazmarc (author)2015-10-09

You have very interesting project made from MINDSTORMS!

metalix (author)2015-01-24

dude the videos private

jnesselr (author)metalix2015-01-24

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

tom10122 (author)2013-01-16

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

jnesselr (author)tom101222013-01-16

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.

tom10122 (author)jnesselr2013-01-16

nice, I have a H-1 Huxley.

matstermind (author)2012-07-13

any progress in making it actually print?

jnesselr (author)matstermind2012-07-13

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.

Kyky Rocks1 (author)2012-03-11

Can this be made out of 1 Lego Mindstorms NXT 2.0 Kit?

jnesselr (author)Kyky Rocks12012-03-11

In terms of the motors and sensors used, yes, but not in terms of pieces. I have so many pieces that it would be impossible to separate them. I'm currently working on another printer that uses two different NXT kits.

But with just one kit, you cannot build this model. You need more pieces than that.

iproberry1 (author)2011-12-06

you won!!!

jnesselr (author)iproberry12011-12-06

The toy contest? Yes, I got first prize, but I didn't win the makerbot. I wish I did, though.

dscott4 (author)2011-10-10


I would love to see it added to the 3D print group I have just started


dombeef (author)2011-07-19

When you said this " I then had replicatorg try and connect to it." How did you get replicatorg to connect to it?

jnesselr (author)dombeef2011-07-20

relpicatorg can automatically connect to serial ports.

I'm re-writing part of the lejos firmware to be able to have custom USB configurations and endpoints while the program is running. In this case, it would be a CDC device. ie, it would emulate a serial port, and replicatorg can automatically connect to that serial port too. I'm not entirely sure how the bluetooth <-> serial port works. All I know is that I connected and paired it, and it showed up as that /dev/tty.nxt port.

dombeef (author)2011-07-19

Hey, I am making software for my own take on a nxt 3d plotter, When I am done I will make sure to tell you so you could actually use this for something :D

dombeef (author)dombeef2011-07-19

And it will use G-Code as the input

jnesselr (author)dombeef2011-07-19

I'm writing a driver that will be part of and will be able to talk to up to two NXT's and have configurable settings based on a lejos program. If you want to help me with it, just send me a PM and we can talk on IRC or whatever.

ricardowong (author)2011-07-06

you could try adding a [primitive] extruder made from legos and some rolled up wire, (molten wax/ crayolas), molten wax I believe doesn't melt legos

jnesselr (author)ricardowong2011-07-06

I was thinking of trying it with chocolate. But I'm also thinking I'll wait til version 3 for that. I'm taking everything I learned from this bot and putting it towards version 3. The crayons have a melting point of about 128-147 degrees Fahrenheit, and abs plastic has a melting point of about 221. So I think that would be fine. chocolate has a melting point of less than 100, though.

But yeah, I think I'll wait til v3. Thanks though, and I hope I get your vote!

ricardowong (author)jnesselr2011-07-06

I'll look forward to v3 then. You already won my heart since I first saw your lego toy. You see, I always had craved for a 3d lego printer machine, but was never corageous enough to make it real. You, on the other hand, did. Congratulations on a nice project.

jnesselr (author)ricardowong2011-07-06

Thanks, glad you like it. I hope v3 is easier to build and works better, as well.

dombeef (author)2011-07-04

Erm, it could be better, the stage that you builded was a bit wobbly, bit good job!

dombeef (author)dombeef2011-07-04

Whoops, I ment but good job!

jnesselr (author)dombeef2011-07-04

lol, that's fine, I understood it well enough. Thank you for commenting. If I make a 3rd version of this (This printer is actually v2, with v1 never being posted) I'm going to focus on that, and focus on trying to find a better way to drive the axes than with string. This version went through quite a few iterations to try and get that axis right, and I never really got it just oh so perfect, so I'll definitely try and fix that this next time.

Thank you, and I hope you vote for me!

dombeef (author)jnesselr2011-07-04

I see you took inspiration from the reprap design, with the triangle prism like design

It could be able to use an extruder for 3d printing if you make sure to not let the hot part hit any of the legos, it extrudes the plastic that legos are made of(just a fun fact)

Good job though and I will vote for you, if you vote back for an instructable that I am almost done with

jnesselr (author)dombeef2011-07-04

You're working on an instructable for this contest? Depending on if I think it deserves a vote, I'll vote for you. Just send me a link when you're done, I'll love to look at it.

Yeah, I took after a reprap mendel for this design. And yeah, I know about the ABS plastic limitation, which is why I didn't bother attempting to design a full one for this project. I guess I good for v3. I'll design it with that in mind.

But yes, thank you for the vote. Looking at some of your other projects, I'll probably give you a vote. I like origami and other paper craft related things too.

dombeef (author)jnesselr2011-07-04

I am about to press publish, I just have to check the grammar and spellings and how it looks, etc...

And thanks, I try to be unique and use what I have, As far as I know and i have looked up for anything like it, I couldn't find anything like a few of my instructables, no one has made it before

And I cant wait for v3 Subscribed :)

jnesselr (author)dombeef2011-07-04

Well, the reason I ask what contest it's for, is that the toy contest has closed, so I wasn't sure what contest you where referring to voting on it. I'll definitely rate it for you.

dombeef (author)jnesselr2011-07-04

The exact words
"Multiple entries are accepted, but each entrant can only win one prize. Contest is open to international entries. Contest closes for entries at 11:59pm PDT, July 4."

jnesselr (author)dombeef2011-07-04

oh my bad, I totally thought it was over the 3rd and they were going to get all the entries ready for voting on the 4th. Oh well. Yeah, sure, I like your project, and will be sure to give it a vote for a vote on mine. Thank you!

dombeef (author)jnesselr2011-07-04


dombeef (author)jnesselr2011-07-04

Not yet, it is over at 12:00 pm in california

And i just published it

tofu4tortoise (author)2011-07-03

really impressive. but i can't find the vote button :( and you uploaded this on my birthday!

jnesselr (author)tofu4tortoise2011-07-03

Glad to have uploaded it on your birthday, and happy birthday to you! As far as I can tell, it hasn't actually been added to the contest yet, and voting doesn't start until midnight tonight. But thank you for voting for me! (When you can later, I guess)

tofu4tortoise (author)jnesselr2011-07-03

thanks, definitely see the effort you put into this and how you would really benefit from the printer, that's why i'm voting for you.

jnesselr (author)tofu4tortoise2011-07-03

Excellent. Yeah, I put in a bit of work on it. I was originally going to just put up that video in the first page, because I didn't think I could get it all taken apart and put together in time, so I'm really glad it worked out! Thank's for voting for me, because I do love 3D printers!

About This Instructable




More by jnesselr:Lego CNC/3D printer/plotterLego 3D printer/plotter
Add instructable to: