Wooden DIY 3D Printer

by Max K in Workshop > 3D Printing

4816 Views, 28 Favorites, 0 Comments

Wooden DIY 3D Printer

SideView3DP 2.jpg

Hi. In this tutorial, I want to show how I designed and built my DIY 3D Printer. This is not an extensive step-by-step guide, but an overview of all the different components of the printer and the choices I made. I hope this may help you start your journey in building your own 3D Printer, as other similar projects guided me.

Note: this 3D printer is an FDM-based one (Fused Deposition Modelling), meaning that a nozzle ejects plastic, one layer at a time, to form a 3D structure.

I will explain each of the parts in the order in which I built (or wrote) them:

  1. (Parts List)
  2. The Frame
  3. The 3 Axis
  4. Extruding System (Extruder + Hot End)
  5. Print Bed
  6. Electronics
  7. Software

Parts List

Frame:

  • MDF

Axis:

  • NEMA 17 Stepper Motors
  • Linear Guide Rails and Sliding Blocks
  • Lead Screws
  • GT2 Timing Belt with Pulley Bearings
  • Limit Switches

Extruding System:

  • NEMA 17 Stepper Motor with a Drive Gear
  • PTFE Tubing
  • Hotend (with heater, thermistor, cooling fan)
  • Filament

Print Bed:

  • Base plate
  • Aluminium heated bed
  • Glass build plate
  • Nuts, bolts, springs

Electronics:

  • MKS Gen Motherboard
  • Regulated Power Supply
  • A4988 Stepper Motor Driver
  • DC Cooling Fans
  • Thermistor
  • LCD

Note - I also designed and 3D printed custom parts (e.g. housings, connections), using Fusion 360 and a local Prusa i3 MK2.

The Frame

IMG_5168.jpeg

The first thing to note is the coordinate system and general printing mechanism. I opted for the popular standard Cartesian setup. It is a simple design and has lots of online support.

The next choice to make was the frame. I was inspired by the Prusa i3 MK2 and naturally considered an aluminium frame. However, metal is difficult to work with or even buy. A seemingly nonsense idea suddenly became tangible - MDF. It was an immediate cheap solution and allowed for lots of flexibility.

I used a CNC wood router to cut out two copies of the frame which I stuck together, creating a solid, free-standing structure. For the y-axis (horizontal slab), I screwed a wooden plate to the main frame as shown. The cut-out is for the y-axis motor and belt, more on that later.

There it is, a super easy wooden frame with high customisability.

The Axis

IMG_5853.jpeg
x-axis.png
y-axis.jpg
Screenshot 2021-04-19 at 09.57.34.png

With the frame in place, we need to consider how the extruder (the part which actually prints out the filament) is going to move. Let's discuss the axis guide system and the axis drive system.

The two main options for the axis guide system are linear guide shafts (round) and linear guide rails (square). I chose the linear guide rails, which have the following features:

  • Little rotational motion, sturdy
  • Run smoothly
  • Easy to fix onto the frame

They are more expensive than their shaft counterparts, but I found some decent second-hand ones on AliExpress.

I fitted five guide rails and seven bearing slider blocks, as in the picture above. I lined up the y- and z-axis rails to the edge of the frame allowing for precise positioning.

Tip: do not try to take the linear guide rail blocks apart, they are very tricky to put back together! I tried as I wanted to clean them out, but had to buy two new replacements. The YouTube video always looks far easier…

After installing the motion guides, the next step is the axis drive system.

Z-Axis: I used 2x Nema 17 stepper motors to rotate lead screws, which in turn drive a nut connected to the x-axis up and down.

X-Axis: 1x Nema 17 motor to drive a GT2 timing belt which pulls the extruder back and forth. The belt is clipped to the print head. I designed a basic belt tensioning system (right side). The motor (left side) is held in place by a housing I designed and 3D Printed.

Y-Axis: similar to the x-axis, but the GT2 timing belt drives the print bed back and forth. I used four sliding blocks, and two guide rails. Looking back at it, I could have got away using just one central guide rail with two sliding blocks, since the rails are so sturdy and limit rotational movement.

The final part of the axis system are the limit switches (endstops). They are used to home the printer, whereby each axis moves in the appropriate direction until it jogs the limit switch and is 'at home'. After homing, we know the exact location of each axis, and therefore the print head.

To calibrate the z-axis: (1) I used a single (not two, as can be seen originally) screws to hold the endstop in place, meaning I could pivot the endstop up/down for fine tuning; (2) the print bed uses a nut and bolt spring mechanism to level the bed (discussed in Step 5).

For (1): Next time I would use a Z probe which allows the software to do the fine tuning. The z-axis homes until the probe, attached to the print head, detects the optimum distance to the bed.

Extruding System

IMG_6767.jpeg
IMG_7480.jpeg
Screenshot 2021-04-19 at 10.12.28.png
Screenshot 2021-04-19 at 10.12.38.png

Together, the extruder and the hotend are responsible for ejecting the filament. The extruder drives the filament through the hotend where it is melted and directed onto the previous layer of the print.

Filament is melted so that it can join to other layers of the structure and unify.

The system is made up of the following:

  • Filament source - provides the filament as a roll, note the mechanism to 'unroll the roll'
  • Extruder (a motor with a drive gear) - drives the filament
  • Hotend:
    • Heatsink - guides the filament into the hotend, and with the help of a cooling fan it prevents the filament from melting too early and blocking the passage into the heat block
    • Heat block - melts the filament
    • Nozzle - directs the filament onto the print bed

There are two types of extruding mechanisms: Direct Drive and Bowden. In direct drive, the extruder sits on the printhead at the entry of the hotend such that the filament is directly inserted into the hotend. A bowden setup positions the extruder away from the printhead, and passes the filament from the extruder to the hotend via a tubing system.

Both setups have advantages. Direct drive is close to the hotend, and can more easily push/retract the filament. The process is quicker, more reliable and requires less power. Bowden simplifies the printhead setup and reduces the weight, therefore taking pressure off the rest of the system (e.g. less strain on the x-axis motor).

As a beginner, I went for the friendly-looking and cheaper bowden setup. I bought e3D's entry-level Lite6 Hotend, some PTFE tubing, a Nema17 stepper motor, and an extruder drive gear. I designed and 3D printed a part to attach the hotend to the linear guide rail sliding block. I then used a laser cutter to create another part to screw the extruder to the top of the frame. As you may be able to tell from the pictures, I originally positioned the extruder in the center of the frame, but then moved it to the left-hand side to allow room for my on-the-frame filament roll.

I would like to try converting to a direct drive and see how the print results differ.

The filament roll: I took apart an old bicycle pedal, which contains the perfect bearings for the filament roll to rotate around. Two 3D printed parts fitted around this pedal axle, allowing the filament roll to sit nicely.

Any system should do, as long as the motor can tug hard enough to unravel the filament. Other setups have the filament roll hanging off a horizontal rod, but this is not so space-efficient.

Print Bed

Screenshot 2021-04-19 at 10.23.34.png

The print bed is the base onto which the filament is ejected. It is part of the y-axis, as described in Step 3. The main characteristics are:

  • It has a smooth surface
  • It heats up
  • It can measure the temperature
  • It is adjustable

I'll cover each point in more detail.

It has a smooth surface - the build plate: I used a glass sheet, as it is hard, warp-resistant, smooth, and easy to buy in any size.

It heats up - the heated bed: we don't heat the print bed up directly, but via another component, the heated bed. It is typically an aluminium sheet that sits underneath the glass build plate. I soldered positive and ground connection wires which heat up the bed, doubled up for safety reasons.

It can measure the temperature - the thermistor: I glued a thermistor to the central hole in the heated bed, using high thermal-resistance epoxy putty. This means we can control the temperature of the heated bed. Not only does this stop overheating, but also means we can have the perfect bed temperature for a given filament type.

It is adjustable - the base plate: I used a nut-bolt-spring mechanism to tune the bed positioning (effectively the z-axis). In each corner I had a spring between the two plates (base plate and heated bed), with a nut and bolt allowing me to squeeze the spring and close the distance between the two plates. The base plate, CNC milled, bolts to the guide rail sliding blocks, and the heated bed bolts to the base plate using the mechanism above.

Electronics

wiringDiagram.png
Screenshot 2021-04-19 at 10.28.54.png
Screenshot 2021-04-19 at 10.28.40.png

The motherboard is the brain of the 3D Printer and connects to all the electrical components. I was recommended the MKS Gen motherboard (based on the ATMega2560 microcontroller) and it does the job well at a good price. It has five motor outputs, supports 12-24V power inputs, is LCD compatible and can use Marlin firmware (see the next section).

The most important step in the electronics is setting up the power supply. To run off mains, you need to step down the voltage using a regulator and convert to DC. I chose a 12V specific converter (to run the motherboard off 12V), but if using more power-hungry components, consider running the motherboard off 24V.

With power in place, we need to connect the motors, limit switches, heaters, fans, thermistors, and the LCD to the motherboard. We also need to install the motor drivers which convert low current signals to high current output for the motors. I have attached a generic wiring diagram for the MKS Gen motherboard.

I should mention that I connected the two z-axis motors to one connection in order to ensure that they both move in sync. I also connected three DC fans (via a 5V output) to cool the motherboard while in operation.

Finally, I enclosed my motherboard and power supply regulator in housings attached to the back of the frame:

Software

The final step is to set up the software, more specifically, the firmware. This is what actually runs the printer, by executing g-code commands. It also provides a basic UI via the LCD, allowing you to move the axis, set temperatures, and start a print, etc.

I used Marlin, which is open-source and free to download: https://marlinfw.org/. The code is ready to run, but there is one file (well two if you want exceptional control) that you should customise to fit your printer requirements - configuration.h.

Start by opening the file in the Arduino IDE. I would recommend going through it line by line and setting your printer-specific values. You can see how I configured my configuration.h file here: https://github.com/Mkrefting/3DPrinterMarlinFirmwa...

Note - if using an LCD, you may need to install the U8glib library.

Up and Running

IMG_6770.jpeg

At this point, the printer is now built. The remaining steps are to:

  1. Install your chosen slicing software
  2. Fine-tune the printer

(1) Slicing software is what turns your 3D model (as an STL file, from a CAD design) into the g-code that the printer can understand. You can change the way your model is printed via the print settings. For example, you can change the infill percentage or the temperature at which you print. I would recommend Cura, which is free too.

(2) Fine-tuning your printer can take time. I thought of the process in two parts. First, I tuned the basic printer mechanics using the LCD UI controls. E.g. How far does the x-axis actually move if I tell it to move 100mm?, or, How close to the bed does the z-axis home to? Secondly, I tuned the print settings by printing test parts. There are lots of test prints you can download online. Look out for under/over extrusion, stringing, warping, etc. Here is a troubleshooting guide I used: https://www.matterhackers.com/articles/3d-printer-...

Check out some designs on Thingiverse, and of course, give the 3D Benchy a go.

///

Thanks for reading, and please do ask any questions below.