Edge 3D Printer 1.0 - an Affordable Open Source 3D Printer!




Introduction: Edge 3D Printer 1.0 - an Affordable Open Source 3D Printer!

Hello everyone! In this instructable I will show you how to make a low cost 3d printer that I designed! It should cost around $150 US dollars or $175 Canadian dollars, if you buy from the links provided in this project (parts are from Aliexpress). You can also buy locally but it will cost more (about $300- $400 instead of $150).

The print bed size is 5.5"x6"x6".

Update: Version 3.0 will be posted on Feb 8 2016 at 3:00 (PT)

You WILL need to have at least some knowledge in 3d printing to complete this project.

***Please vote for this Instructable in the CNC challenge (upper right corner) ! I'm 13 and I designed and built this myself so please, if you like this instructable favourite, vote and comment. It encouages me to keep doing what I do.***

Step 1: Parts and Tools


GT2 pulley x2: http://tinyurl.com/qc4m6ez

GT2 Belt (about 2m): http://tinyurl.com/nr6wn25

USB type b to type b extender x1: http://tinyurl.com/ohcmybf

DC power socket x1: http://tinyurl.com/nwe8lv5

LM8UU Linear Bearing x4: http://tinyurl.com/n98ehwv

Acrylic x2 8"x12" (You can also buy it from a local plastics shop and it is about the same price as aliexpress): http://tinyurl.com/k4bzjge

30mm Fan x2: http://tinyurl.com/nqxgg8d

3d printer wiring pack: http://tinyurl.com/o8mont4

Direct Drive gear x1: http://tinyurl.com/on5sr2p

608 bearings x1 lot of 5: http://tinyurl.com/kqo2lpg

M3 8mm screws x1 lot of 50: http://tinyurl.com/kz48fcp

5mm to 8mm coupler x1: http://tinyurl.com/pmwtn8r

SC8UU linear bearing x2: http://tinyurl.com/pp9jquw

1m PTFE tube (bowden tube) x1: http://tinyurl.com/lowr6uq

Arduino Mega and RAMPS board kit x1: http://tinyurl.com/lzozwlw

Endstops x3: http://tinyurl.com/q47m5cq

Nema 17 motors x4: http://tinyurl.com/njwgj4l

All Metal hotend: http://tinyurl.com/l5b9xm2 you can also use a ceramic one instead.

Smooth Rods: 1272T38 Mcmaster Carr part #

Threaded Rod: Home depot 5/16 inch threaded rod and a nut that screws onto the rod


Laser Cutter

3D Printer and filament or buy the parts from 3dhubs.com


Soldering Iron and Solder

Computer with Arduino IDE, Pronterface, Slicer software

Step 2: Laser Cut and 3D Print Parts

Go to this thingiverse link to download the files: http://www.thingiverse.com/thing:725640

Extruder: http://www.thingiverse.com/thing:215010

Step 3: Mount Motors to Acrylic Parts

Using the m3 10mm screws mount the nema 17 stepper motor to the main acrylic piece. This is the piece that has the most mounting holes. Do this for both the both the x and z motors.

Step 4: Wire Motors to the RAMPS Board

Plug the motor cable into the connector board. On the board, there are headers that you connect the cable to. Don't worry about polarity: this won't affect the motor, it will just spin in reverse which you can invert in the firmware.

Step 5: Extend Arduino's USB Connector

Extend arduino's USB connector by desoldering the type b connector and just adding wires to each of the pins bringing the wires to the connector. It sounds complicated, but it is really simple.

Step 6: More Wiring

Wire the hotend using the schematic above, solder both of the red wires to D10 (the screw terminal) and +. Again the polarity does not matter at this moment because the hotend is just shorting out a flame proof resistor to heat up. Then wire the thermistor wires to T0 on the board. The polarity also does not matter on this one because it is a resistor.

Step 7: Mount SC8UU Bearings to Acrylic

Mount the SC8UU bearings to the same acrylic plate as the motors. To mount the bearings to the plate, put M3 25mm screws through the bearing then put the bearing onto the plate making sure that the screws are going through the screw holes that are placed in a rectangular pattern. These will be the bearings for the x axis.

Step 8: Couple Z Motor to Z Rod

Couple the Z motor shaft to the Z motor rod using the flexible coupler.

Step 9: Build the Extruder

3d print the parts for the extruder. Then with a stepper motor and the direct drive gear use an Allan key to secure the direct drive gear to the motor shaft. Then secure the 625zz bearing to the 3d printed part. Next mount the whole 3d printed part and the bearing onto the motor's mounting holes. To finish off the extruder, connect the bowden tube to the extruder assembly using super glue or JB weld. Now the extruder is finished. Now onto the next step.

Step 10: Mount USB and Power Jacks

Mount the two ports with some hot glue or JB weld. Onto the back piece that has a Canada flag on it (yes I'm canadian). I designed it so I have the maple leaf on it.

Step 11: Put Enclosure Together

Once all of the wiring is complete from step 10 you can route all of the wiring from the RAMPS board out of the opening in the front piece. Mount the RAMPS board into the bottom piece and then you can assemble the whole enclosure with some of the m3 screws and nuts. DO NOT OVERTIGHTEN. If you do the acrylic will eventually crack that's what happened to my acrylic so keep that in mind while tightening the screws. The enclosure comes together like a puzzle and there should be only one possible way to put it together.

Step 12: X Axis

Now we build the x axis. Glue the endstop for the X-Axis to the left side of the top piece in between the two bearings. Mount the 3d printed part onto the motor using m3*15mm screws. Once the part is mounted to the motor push fit two 625zz bearings onto the part. After that mount the gt2 pulley onto the motor shaft, it's teeth should be about the same height as the bearings.

Step 13: Z Axis

Lets work on the Z axis. First lets start with the stabilizer piece. Mount the stabilizer piece to the Z axis motor with two M3*10mm bolts. Then push the 8mm smooth rods through the two parallel holes at the front. After that, put a nut through the threaded rod about halfway down the rod.

Step 14: Power Supply

You need a way to power the 3d printer of course! A really cheap and simple power supply is an ATX power supply from a computer so if you have an old computer power supply laying around you can put it to good use. To use it you must solder the green wire (Power Good) to any ground wire (Black wire) these wires are normally used to detect if the motherboard of the computer is connected to the power supply so if you don't solder those wires together the power supply will not turn on. Then wire any yellow wire (+12v) to the voltage in connector on the RAMPS board and any ground wire to the negative input connector.

An alternative to this is ordering a laptop power supply from the internet. the laptop power supply MUST be able to provide at least 5AMPs at 12 volts.

Step 15: Upload Marlin Firmware to Arduino

Download the Marlin firmware here: https://github.com/MarlinFirmware/Marlin

Then put the Marlin folder into your libraries folder under arduino. Do this by going into Documents --> Arduino--> Libraries and place the marlin folder into the libraries folder and rename the marlin folder to "Marlin" or anything without spaces or non-ASCII character.

Then open Marlin_for_edge.ino and compile it. If there is an error make sure you have the right board selected (Mega 2560) and the correct serial port selected.

Step 16: Calibration

To calibrate your printer find this line in marlin's "Configuration.h" folder:

// default settings

#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 2618, 90}





Once you find this part, open Printrun Pronterface or whatever your favourite 3D printer controller is. Then having some calipers handy, press the move 10 units button (It should have a 10 on it) and measure the actual distance that your printer moved and write down that number for each axis.

Once you have the number of mm that your printer moved for each axis (for example 8 instead of 10mm), go into the code and find the default axis steps per mm. Use this formula to find out the new steps per mm :

S = (OS x SD) / RD

Where S= The correct step amount; the number that we are trying to find.

OS = The old steps per mm in our case this is 80.

SD = The number of mm's that the printer thinks that it moved in our case, 10mm.

RD = The actual distance that you wrote down for each axis

So if our 3d printer moves 8mm/10mm and our old steps per mm is 80 it will =

(80 x 10) / 8 = 100

So our new steps per mm = 100. If that is the number for the x axis replace the first number in the steps per unit line of code (we replace the first number because in the array the pattern is X,Y,Z,E).

Do this for all axes and yor 3d printer is calibrated.

Step 17: Room for Upgrades:

If you want to upgrade this 3d printer if you build it here are some upgrades that are worthwhile:

Auto bed leveling:

To do this you will need a limit switch, some 3d printed parts (I will provide links soon) and some modification in the marlin firmware. I will have another instructable showing how to do this.

LCD for 3D printing without a computer conected to it:You will need to buy an LCD like this one: http://tinyurl.com/mhnze3l they are fairly cheap and are definitely worth it. you will also have to change some things in marlin. Look for these lines in the configuration.h and make sure that these are un-commented:

//LCD and SD support
#define ULTRA_LCD





Build volume upgrade:For this upgrade you will need to buy longer rods for any of the axes that you would like to extend. you will need to make a larger print bed and you will need to change the print bed size in marlin:

// Travel limits after homing
#define X_MAX_POS 150 // change the x axis number to the print bed size in mm

#define X_MIN_POS 0

#define Y_MAX_POS 150 // change the x axis number to the print bed size in mm

#define Y_MIN_POS 0

#define Z_MAX_POS 150 // change the x axis number to the print bed size in mm

#define Z_MIN_POS 0

So if the old print bed size is 150mmx150mmx150mm and the new one is 200mmx200mmx200mm change the max pos numbers to 200 because it is 200mm in a cube.

Adding a Raspberry Pi with Octoprint:For this upgrade you need a raspberry pi, an SD card with at least 4GB, and optionally a raspberry pi camera. See this page fro more info: https://github.com/guysoft/OctoPi

Step 18: Slicing Settings and How to Use

Here are the slicing settings that I currently use: (Use images)

These also work if you use them in Slic3r or any other slicer I just prefer Cura because it is fast and accurate.

To actually print something from the printer download an STL file from a site like youmagine or thingiverse. Once you have downloaded an STL file you can drag the file into your slicer or choice and click "Export Gcode" and save it to your desktop. To control the printer I like Printrun pronterface ( http://koti.kapsi.fi/~kliment/printrun/ ). Once it is downloaded you can select "open" and select your G-code that you wnat to print. Connect your printer using a usb cable and press the "connect" button in pronterface. You are now connected to your printer and now you can press print. It will take a few minutes to heat up. When it is commpletely heated up it will start homing all axes.

Step 19: Things Printed

I still need to calibrate my printer a bit but here is my first print.

CNC Challenge

First Prize in the
CNC Challenge

Tools Contest

Third Prize in the
Tools Contest

Automation Contest

Participated in the
Automation Contest

Be the First to Share


    • Tinkercad to Fusion 360 Challenge

      Tinkercad to Fusion 360 Challenge
    • Make It Modular: Student Design Challenge

      Make It Modular: Student Design Challenge
    • Frozen Treats Speed Challenge

      Frozen Treats Speed Challenge



    3 years ago on Step 4

    Hello, Awesome project! What stepper drivers are you using in the RAMPS board?


    5 years ago

    this is awesome i built a kit for someone who couldn't wire or build

    you designed and built this printer I'm in grade 11 and I think your talented

    John T MacF Mood
    John T MacF Mood

    6 years ago

    As well, the suggestions we "compile this" and use that , WITHOUT explicitly stating what language and where said compilers or languages can be had, or even which type controller the language is intended to be EEPROM burned to....

    PLEASE leave specifications and links to compilers and code senders and WHAT controller you're sending to. You're assuming all people reading this have your level of expertise on this topic, when that is rarely the case.

    John T MacF Mood
    John T MacF Mood

    6 years ago

    I'd love to see a project that doesn't ask you to 3D print a part, when you don't have a 3D Printer completed yet...

    Great concepts and project, just where do you suggest we print the parts we don't have when some of us have no mates or local 3D Hobbyist shops to rely on?


    6 years ago

    About how much was the final price of this?

    Zach Sousa
    Zach Sousa

    Reply 6 years ago

    This version cost me about
    $175 US, but I have made a 3.0 that works several times better for $200.


    6 years ago on Introduction

    You have to change the Motherboard Value in Configuration.h from



    or it wont work.

    Got it too work with an 20x4 lcd by now.


    Reply 6 years ago on Introduction

    Also forgot to mention i needed to change line 693 and 694 from

    #define LCD_WIDTH 20

    #define LCD_HEIGHT 5


    #define LCD_WIDTH 20

    #define LCD_HEIGHT 4


    6 years ago on Introduction

    The parts list for the bearings is wrong. You have a link to 608 bearings and specify 608 in your parts list, but then in the text you say using the 625zz bearings in the extruder. I bought what you had in the parts list and indeed the bearing is too big for the extruder 3d printed part. Please update the parts list. Thanks! I'm buying these bearings instead: http://www.aliexpress.com/item/10pcs-free-shipping-Miniature-deep-groove-ball-bearing-625ZZ-5-16-5-mm/32306788099.html


    7 years ago on Step 19

    wow this is amazing and thanks to it being so cheap I might just be able to build it

    p.s can you use the raspberry pi for it or do you need a computer



    Reply 7 years ago

    Of course you can but you will need to make sure your raspberry works with the software


    7 years ago

    How much did it cost and how long does it take to build please?


    7 years ago on Introduction

    The instructions state:

    Using the m3 10mm screws mount the nema 17 stepper motor to the main acrylic piece. This is the piece that has the most mounting holes. Do this for both the both the x and z motors.

    My sheets came without mounting holes. Is there a template I am missing?


    7 years ago on Introduction

    Great instructable!

    Problem: The instructions state:

    "Using the m3 10mm screws mount the nema 17 stepper motor to the main acrylic piece. This is the piece that has the most mounting holes. Do this for both the both the x and z motors."

    The acrylic I got through your parts list are plain sheets with NO mounting holes.


    7 years ago

    I'm so gonna do this


    7 years ago

    can you add a cnc machine to this

    Zach Sousa
    Zach Sousa

    Reply 7 years ago on Introduction

    You could add a burning laser diode, but I don't thing that the motors have a high enough torque for spindle for a CNC router.