3D Printer With Lego EV3




About: I am 14 years old and I love DIY projects of all kinds! I live in, and love Las Cruces, NM where I have lived my whole life. I love Mountain Biking with my dad and hanging out with my family!


My name is Carson and this is my first Instructable! I am 14 years old and I have loved the idea of 3d printing ever since I first heard about it. I also enjoy building Lego creations, especially with my EV3 Mindstorm set . The result is a 3d printer made from Legos! I had this idea a while back when my friend and I built a copying machine out of the same EV3 set for a science fair. It was fun, but I thought, why not take it a step farther? Why not build a 3d printer out of Legos? At the time, I did not have a 3d pen so the idea kinda got stowed away in the, cool-project-that-I-want-to-do-sometime-later pile. A while later I received the 3d pen as a gift and suddenly the idea seemed much more possible. Seeing the 3d printing contest on Instructables was the final little motivator to finally do it! So here is my Instructable on how to make a 3d printer out of Legos! Hope you enjoy!

Please vote for my Instructable in the Design Now: In Motion Contest. Becoming a finalist would be seriously awesome and winning a 3d printer would be SUPER AWESOME!

Step 1: Here's What You Will Need

I have thought about how I was going to write this Instructable since it is very likely that if you are looking to make this, you will not have the exact pieces that I have. I decided that I am going to, rather than give step by step instructions, tell you what I used and how I made mine so that hopefully you get the basic idea and can use what you have to build your own.

What I Used

  • 31313 Mindstorms EV3 LEGO Set
  • Sky Writer 3D Hand Held 3D Pen
  • 3D Pen Filament
  • LEGO NXT Touch Sensor
  • LEGO NXT Interactive Servo Motor
  • LEGO Technics Linear Actuator 10-15 M (x2)
  • LEGO Technic Sliding Gear Rack
  • Various Lego pieces that I have collected over time
  • A large square piece of wood (to mount and secure everything down)

Step 2: The X-axis

The first step is to build the x-axis. In the pictures above you can see the base for the x-axis sliding table (first and second pictures), the mechanism which will make the x-axis table translate left and right (third picture), and the table itself (last two pictures). I used a large Lego motor and a linear actuator to move the x-axis table. The actuator is too slow to be powered directly by the main axle, gearing will be needed to make it faster. This can be seen in the third picture.

If you look at the fourth picture you can see where I have included a text box pointing out the touch sensor. The touch sensor is included so that I can find "zero" or home. This basically just allows the machine to "know where it is". It is also there to prevent binding in the mechanism by over or under extending the actuator by never letting it go so far as to do that.

The y-axis will look very similar to the x-axis except that the y-axis table and mechanism will mount to the x-axis so that it can be translated left and right.

Step 3: The Y-axis

The y-axis is very similar to the x-axis except for that it is attached to the top of the x-axis and will be moved by it. In the first picture the blue arrows are showing what will be moved along the x-axis and the green arrows show what will move along y-axis.

Both the x and y sliding tables are basically a rectangular frame made of two Lego beams that will slide along a smooth Lego piece and are held together by two more beams that are perpendicular to the first two.

(NOTE: it is important that the y-axis motor , actuator ,and sliding table, are moved by the x-axis mechanism. I tried to show this in the first diagram.)

The Printing Platform

You can also see in the last picture, the printing platform that is attached to the top of the y axis sliding table . I did not actually use LEGO pieces to build the platform since the hot plastic would probably meld together with the LEGO. Instead I cut out a piece of cardboard that was the right size and placed some blue painters tape on the cardboard piece. I used the tape so that the filament would still stick but not rip the cardboard when I try to take the 3D printed piece off.

Step 4: The Z-axis

What I am calling the y-axis consists of: the 3d pen, the mechanism that will move the pen up and down, and the mechanism which will push the dispense button. In the pictures you can see the red sliding gear rack that I mentioned above in the materials list. (this gear rack and pinion mechanism that I am using is what moves the 3d pen upward) I had bought this piece for an earlier project and I decided to use it for this, but know that I have, I would probably use something more stable. The way I have the z-axis set up also limits the range of the y-axis.

I have also noticed that, over time, the pen will overheat and stop working right. The pen is ,after all, probably not meant for such lengthy and continuous use and I would advise periodic breaks when using.

For the filament dispensing mechanism I attached the motor on the side of the pen opposite the button, and used a large gear so that I could attach the beam (see 4th picture) to the motor but not through the center axle. This causes the beam to move like a reciprocating piston on a train. I then used a rubber band to hold the beam across the pen and in position to press the button. (see last three pictures)

I found that the beam itself was not wide enough so I added an extra 2M beam to the end to give it extra button-pressing-surface-area. The plastic also tended to slide across the button too easily so I added a few pieces of tape to add friction and thickness to the pressing pad. The pen is quite heavy too so I had a hard time finding a system where it did not sag. I ended up using a zip-tie to keep it held up strong.

Step 5: The Wooden Base and Positioner for the Z-axis

(Note the spacer part is not necessary if you build one out of legos)

The wooden base is simply the platform that holds the machine down and allowed me to create and attach a little spacer for the z-axis. First I found a square wooden board that I knew would fit the project. I measured out where the x-y tables would need to go in order to fit on the board and from there made plans for the spacer. I cut out the pieces for the spacer using a miter saw, however you could hand cut them or use whatever else you have.

I basically cut out some small rectangular pieces that I stacked and used as legs for a larger piece that would hold up the z-axis. The table top piece also needed to have a hole in it so that I could fit the bottom of the z-axis motor and wire through it.To create the hole in the top piece I used a forstner bit that the end of the motor would fit in.

In order to attach the whole piece down to the main board I had to first drill some pilot holes through the smaller leg pieces and screw them down. (The pilot holes were to prevent the pieces from splitting) I then, after screwing them down to the board, drilled more starting holes; one in the middle of each leg and two in the corresponding points on the table piece. I then screwed the tabletop down to the legs.

To attach the project to the board I found screws that fit well in the holes in Lego beams and screwed them down wherever it seemed necessary. For the x-y tables, since there were no convenient beams, I used some lego tires and extra beams to sandwich the base plate of the tables down.

Step 6: Programing

I will also briefly go over programing but because no one's project will be the exact same mine it will be more of an overview. Here is a list of the type of programing blocks you will need to know for this program:

Green = action blocks

Orange = flow control (this category consists of start,wait,loop,if-then,and also loop interrupt)

Dark Blue = Advanced (all I used is the stop program block which is pretty self explanatory and simple)

In the first picture you can see the open program is called "Basic Square Test" this is the program that prints a basic square shape. This was really just the program I made to do some tweaking and get a feel for how I would program the machine.

In the second picture you can see that I have highlighted the first two blocks after the start block. The first block is a motor movement block and it activates the dispensing button. The second button is simply a pause because it takes a about 3/4 of a second for the pen to start dispensing. (it makes a big difference)

The third picture highlights the inner loop of the program. This part is the loop that makes the basic square shape. The program is basically five motor commands that makes 5 layers in a square shape. The first four movements are what make the square. The final motor command moves the pen up slightly so that another layer can be made. The sequence is then repeated 5 times.

After repeating that sequence five times there is a 25 second pause. As I mentioned above the pen does not do well with the continuous use so I have a pause built into the program. This is highlighted in the fourth picture. The four highlighted blocks stop the dispensing mechanism, pause the program for 25 seconds, resumes dispensing and pauses for 3/4 of a second so that the pen has time to dispense filament again. I then goes into a second loop which takes the program back to the basic square shape that I talked about in the paragraph above. After repeating this second loop 3 times the program stops. I highlighted the stop in the last picture.

Step 7: Conclusion

In conclusion I have gone over the x,y,and z axis, the wooden base + z-axis spacer, and gone a little bit into the programing. As you can tell from the pieces that I have printed there are still some bugs to work out. After all, this is only version one of the project! I will definitely continue working on it and making improvements. If you have any ideas for improvements or see mistakes in this instructable please comment! I would love to hear what you think!

Also don't forget to vote! It is much appreciated! Thank You!

Until next time,




    • Backyard Contest

      Backyard Contest
    • Fandom Contest

      Fandom Contest
    • Pets Challenge

      Pets Challenge

    20 Discussions


    2 years ago

    Awesome job! Truly hope you win the contest and keep building cool stuff ;)

    1 reply

    2 years ago

    Wow! Do you have a video of it in action? You should embed it in the Instructable!

    1 reply

    Reply 2 years ago

    I had thought about trying to that but decided that with the limited time left for the contest that I would go ahead and post the instructable and do it later! so I do hope to make and attach a video soon!


    2 years ago

    Even though hand held 3D pens are not great quality like the machines as you mentioned earlier, what you have created makes them so much better. Since you automated the process the prints look really good. I think this is awesome! I am going to show my students and my Maker's Club. Your motivation and persistence is admirable. You definitely have a bright future ahead of you. Keep posting!

    1 reply

    Reply 2 years ago

    Wow! Thank You! I appreciate the comment! The automated process definitely does help the quality of the prints compared to trying to make the same thing by by hand.


    2 years ago

    I hope you win, because you're project is awesome!!! I can tell you put a lot of effort into doing this, and I know that it was your effort not your dad's. Great job, Carson!

    1 reply

    Reply 2 years ago

    Thank You Mr. Leonard, for taking the time to write that comment! it means alot!


    2 years ago

    im suprised by the quality of your prints! that must be a really good 3d pen for the print not to warp

    1 reply

    Reply 2 years ago

    Getting the clean prints was a matter of adjusting the speed on both the machine and the pen. it was hard to find the right balance. I'm pretty happy with the prints, though there is no comparison to any real 3d printer.