Introduction: 3D Printer HeX V 1.1

If you are a hobbyist, you would know the importance of 3d Printer. We all know that 3d printer has revolutionized the prototyping industry and now it has started to take over many small manufacturing business too because there is no hassle of heavy machinery and equipment, all you need is a 3d printing farm and you can manufacture any project you desire. From a very simple design to a very complex geometry you can print anything.
So in this project, I will show you how I made a 3d printer for myself. I developed my own design as challenge to myself, It gives more excitement to a project, I faced many problems during the development and I have shared them in this instructables. I hope they would be useful for you guys too.
You might find a few pictures unclear because I wasn't planing on making a video or instructables on it but I thought why don't I give it a shot. I have done my best to explain everything and wherever I find less images I have attached the images of the 3d model for that particular thing, I hope things get clear.
Mind the mistakes and provide feedback. This is my first instructables hope you all would like it.
Here goes nothing.

Step 1: Supplies

For me the most convenient way for online shopping is aliexpress, so most of my supplies with the exact links for this project are list down, while the rest of the supplies will be mentioned.

Ramps 1.6 kit

https://www.aliexpress.com/item/32861626675.html?s...

The kit had no end stops so I have to put them separately

Endstop

https://www.aliexpress.com/item/32623871393.html?s...

12 Volt heat bed with 100K ohm NTC 3950 Thermistors

https://www.aliexpress.com/item/32596892035.html?s...

trianglelab MK8 Bowden Extruder BMG extruder + V6 HOTEND Dual Drive Extruder

https://www.aliexpress.com/item/32922611810.html?s...

GT2 Timing belt 6 mm width and 20 teeth Pulley 5 mm bore 6 mm width

https://www.aliexpress.com/item/32480715331.html?s...

Idler Pulley GT2 20 teeth 5 mm bore 6 mm width

https://www.aliexpress.com/item/32892385124.html?s...

Scs12uu Linear Motion Ball bearing

https://www.aliexpress.com/item/32840295989.html?s...

Spring for heat bed

https://www.aliexpress.com/item/32951835638.html?s...

17HS4401 Stepper Motor

https://www.aliexpress.com/item/32829022738.html

Shaft Coupler 5x8

https://www.aliexpress.com/item/32848391679.html?s...

Lead Screw with 2 mm lead and 2 mm pitch

https://www.aliexpress.com/item/32918910924.html?s...

Aluminium Tubes 39x39mm

6 feet x 2 (For X and Z axis)

Aluminium tubes 19x19mm

4.5 feet x 1 (For Z axis)
they would further cut into specified length pieces to design the frames

Bracket 39x39x13mm 36 unit to be exact but I throw in a couple more since they are handmade from where I bought so the holes are not align in some of them(and also they are cheap) so we'll make it around 50 units

Stepper Motor angle bracket

https://www.aliexpress.com/item/32338207156.html?s...

Water Proof Plywood 19 mm thick 6x4 feet(or you could use the simple plywood)

Screw, Washer and Nut
Dia 3mm Length 52mm Qty 88 Units

Allen Key screw with washer and nuts
dia 3mm Length 9mm Qty 8 units

dia 3mm Length 26mm Qty 24 units

dia 3mm Length 39mm Qty 6 units

dia 3mm Length 52mm Qty 4 units

dia 4mm Length 26mm Qty 4 units

dia 5mm Length 26mm Qty 6 units

dia 5mm Length 39mm Qty 20 units

Galvanized Wood Screws
dia 4 Length 26 Qty 20 unit

dia 4 Length 39 Qty 20 unit

Step 2: Making the Linear Actuator Frame

The x, y, and z axis are built around Aluminium tubes frame. First of all we need to initialize the x, y and z axis travel, which in our case are
X>300mm
Y>200mm
Z>250mm(can be increase if needed so)
Now I chose to make my frames of 420mm(X, Z) and 460mm(Y) in travel distance just to ensure if i needed some room for adjustment in future.
For that we are required to cut the aluminium tube is the desired length which are,
For X-axis frame For Z-axis frame
2x 500mm 2x 500mm
2x 330mm 2x 200mm
From 39x39mm Aluminium Tube
For Y-axis frame
2x 500mm
2x 140mm
From 19x19mm Aluminium Tube
The process for making the frame is same for all axis, so lets get into it.
Frame
For X-axis, take the 500mm long Aluminium Tube and 330mm Tube, align the 330mm piece normal to the 500mm piece at the very end and fastened them both with an angle bracket of 39x39x13mm and 4 bolts and nuts of 3x52mm, repeat the same on the remaining two pieces 500mm and 330mm and now we have 2 L shaped tubes which can then easily fastened and made into a frame as shown in the figure.
Repeat the same process for rest of the axis. The Aluminium tubes dimensions are mentioned above.

Step 3: Making the Linear Guide Track for X and Z-axis

X-aXis
For X-axis, we have used 12mm cylindrical rods with SC12UU Linear bearing.
The two 12mm rods are mounted onto the frame with 8 angle brackets with about 83mm distance from the center of the 330mm long Aluminium tube (166mm b/w the rods). The rods are mounted in such a way that the 2 brackets are facing each other with a distance of 12mm, the 12mm cylindrical rods are being ground with a small notch and fastened between the angle brackets with a 3x26mm Allen key screw and nut. Also we need to grind the angle brackets that are extending upwards so that it would not block the Linear actuator.

Z-aXis
For Z-axis, only the frame size is changed which is 500x200mm. Hence the distance b/w the cylindrical rods also changes to 50mm. Keeping some room for the diving medium to pass through.

Step 4: X-axis Bed

X-bed
To make the X-axis bed I have used 10mm thick MDF sheet, I have cut a 210x110mm piece of MDF and drilled holes to mount 4 SC12UU. I used a very unprofessional/lazy hack here, which is that I placed 3 Linear Bearing together, using the middle one as the spacer which gives about 36mm distance b/w the two. I repeated the process/heck for the 2nd linear track also. Fastened the only corner holes with a 5x26mm Allen key screw. Now I cut another piece of 180x140mm but this time from a plywood of 19mm thickness which act as a X-Y coupler plate, I drilled 4 holes on this piece to fastened it with the bed through 5x39mm long Allen key screws onto the SC12UU linear bearing thread grove that are towards the center of the plate. Also I drilled 4 more holes for the belt Fastener Allen key screws and 4 more holes for Attaching the Y-axis Frame through the coupler using 5x39mm long Allen key screws and nuts. These 4 coupling holes are along the edge on each side 55mm away for the center with 10mm clearance from the edge.

Belt GT2 width 6mm
Pulley GT2 width 6mm Bore 5mm(For Nema 17)
Idler GT2 width 6mm Bore 5mm
Timing Belt
Now to fix the driving belt, I used 2 flat iron pieces that I cut out from the angle brackets that were at my disposal. Tracing out the flat iron I drilled 2 holes along the edge line in the center on both sides on the Bed, looping around about 50mm piece of the belt, I fastened it between the flat iron and MDF with 4x26mm Allen key screws.
Idler
After that, I mounted the Idler Pulley on the frame using 2 angle brackets opposing each other with a distance of 12mm, fastening them with 4 pieces of 3x52mm screws and nuts, using a 5x26mm long Allen key bolt I mounted the Idler pulley leaving a little room for the idler pulley to adjust according to the belt.
Motor Mount/Driver Pulley
Now, for the Driver pulley I used GT2 20 teeth Pulley which I fastened onto the shaft of my Nema 17 stepper motor. I mounted the Stepper Motor on the opposite side of the frame, I used a 90x60mm Acrylic Piece on which I mounted the Stepper motor Angle Bracket 20mm above to make sure that the Driving pulley is as high as the idler pulley. The angle bracket with the acrylic piece is bolt-on the Aluminium tube with Four 3x52mm long screws and nuts. The Nema 17 Stepper motor is mounted on the angle brackets with 3x9mm long 4 Allen key screws.

Step 5: Z-axis Tower and Cantilever Gantry

Z-Tower
The Z-axis Frame is mounted on a tower, which is required because the printing bed is about 150mm high.
The Tower is made up of 19mm thick plywood wood, to make the tower I used two 550x200mm pieces. I cut a width of 60mm upto 400mm long from one side, leaving 150mm extension to rest the frame of Z-axis. For clarification see the image above.
After that I used the same plywood to cut 3 pieces of 100x45mm, place them 50mm lower from the top with a distance of 150mm apart to bring everything together and fastened them with 4x39mm galvanized screws, also mentioning that the Z-Axis frame is also mounted onto these pieces.
Z-Frame Back Plate
To mount the Z-axis frame on the tower, I cut another piece of 320x200mm plywood, mount the frame on it with 4 pieces of 3x26mm long screws and nuts on the four corners of the plywood with a clearness of 20mm from the edge line of the Aluminium tube. With 2 of those 4x39mm long galvanized screws I mounted the Z-axis frame on the top and the bottom one plywood piece on the tower.
Z-Cantiliever Gantry
Now to make the Gantry for the Z-axis, I cut a piece of 430x100mm plywood of 19mm thickness, along the 430mm length on one side I gave 10mm clearness and trace out the holes for 4 linear bearings squeeze them together in there respective linear track and drilled holes to fastened them with the plywood with 8 of those 5x39mm Allen key screws. The distance b/w the pair of linear bearing is about 10mm which gives 2mm clearness for the Lead screw to pass through. The linear bearing take up to 72mm out of the 100mm long width leaving up to 28mm space that can be easily utilize for mounting the Lead Nut.
Lead Nut Mount
For that I used a 150mm long piece of 19x19mm Aluminium Tube. I mark the center for the lead screw and drilled a 10mm hole along with four 3mm holes to fastened the Lead nut on the tube with 3x9mm long Allen key screws. Leaving out the Lead nut portion I cut 3 sides of the Aluminium tube and only left one side facing the Plywood piece, marked two more holes 50mm any from the Lead nut and drilled with 3mm bit to fastened it on to the plywood with two 3x26mm Allen key screws and nuts.
For Z-axis I have used a Lead screw mechanism to drive the gantry,
Lead Screw
Diameter 8mm
Length 350mm
Lead 2mm
Pitch 2mm
Stepper Motor Mount
To mount the Stepper motor I cut another piece of 100x60mm 19mm thick plywood, about 80mm high and 10mm inside the tower body just below the frame, I fastened that piece with four pieces of 4x39mm galvanized screw. I fastened a Nema 17 on the stepper motor angle bracket using four 3x9mm Allen key screws, and to hold the angle bracket in place I used 4 Allen keys screws 3x39mm, and due to some human error I had to use a couple of washer underneath the angle bracket to rose it as few millimeter higher to make sure the Lead screw and motor shaft are lies in the same direction. I used a Aluminium Flexible Shaft Coupler 5x8mm to connect the lead screw to the motors shaft.
HOTEND
To mount the HOTEND, I cut a piece of acrylic trace out the holes of the DC fan of the HOTEND and drilled 4 corners and the center air intake hole of about 20mm also I drilled holes through the DC fan cover with 3mm drill bit fastened them all together to the acrylic sheet. Now I mounted the acrylic sheet onto the Gentry with 4 3x39mm long screws and nuts. I mounted the extruder on the top of the Z tower using stepper angle bracket fastened it on to the plywood with 4 galvanized screws and connecting the extruder with the HOTEND with a 4mm Teflon tube (pneumatic pipe) since I am using a 1.75mm filament extruder and HOTEND.
Precautions:
If you are using the Bowden Setup you should remember to check these things before you take a screw driver and start tuning the Stepper Driver to increase the current,

  • You Filament roll should be in the right place to have a direct insertion into the extruder.
  • Your Teflon tube should not get bend or twisted otherwise it will stop the filament to get pulled.
  • Keep the Teflon tube as short as you could possible manage because sometimes the stringiness of the filament bend it and make it harder for the extruder to pull the filament.

If you would see the last picture, you might notice a steel wire that is stuck into the Al.tube Frame and is looped around and zip tied to the Teflon tube, it was required because the filament was very bendy which was causing the Teflon tube to also bend and due to this the extruder was having a very hard time to pull the filament which was causing under extrusion.

.

Step 6: The Linear Guide Track of Y-axis

Note
The Linear guide track of Y-axis was supposed to be similar to that of X and Z-axis and I had made it that way but due to some abnormality I had to evolved it to minimize the error. You might find some additional parts in Y-axis which I'm intended to remove in further development since they are taking up almost 60mm of dead printing bed space.
Y-Axis Guide
For Y-axis Linear Guide, I used two pieces of 19mm thick plywood with a dimension of 275x45mm. On those 2 pieces along the center line I drilled two 12mm holes 116.5mm from the center for the cylindrical rods. Now these plywood pieces can be easily fastened on the frame using 2 angle brackets and 8 Allen key screws and nuts(3mm x 26mm) each as shown in the picture(in Total 4 angle brackets and 16 Allen key screws). I have also drilled a 15mm hole in the center of these plywood pieces to pass through the timing belt. Now we can easily place the 12mm cylindrical rods, and to make sure they do not move, since drilling into the plywood is not always a pleasant task that somehow accompany some human error, so I have ground a small notch at the end of the rods and tightened a zip tie at both ends of each linear track.
I have attached the images of the 3d model of the part that have less detailed pictures.

OLD Design Problems
The abnormality that arose in the old design was that the printing bed was vibrating at the edges and it was very visible, about 1.5mm of periodic oscillations were observed. The flaw was actually in the designing,

  • The print heat bed got to much high, about 150mm higher.
  • The print bed axis(Y-AXIS) was mounted onto another linear actuator(X-AXIS) which means that the Print bed was about 68 to 70mm higher with its on axis mounted onto another moving body with a constantly changing center of mass.
  • Also the most significant reason was that the Y-axis frame had too small width which is 100mm, so for the implementation of the linear tracks I used MDF pieces on both sides and mounted the 12mm cylindrical rods on them with a very small distance b/w them( about 50mm). Which caused the abnormality, since the print bed was 320x220mm and it was mounted with 4 SC12UU linear bearing for the center, so whenever a motion was generated, every single particles started to resonate which was normal since 3d printer do have a resonance frequency but the resonance could be easily felt at the edges on the bed because they were less supportive and hanging too far away to transfer there Vertical resonance through the frame and down into the plywood base.
  • Also, by the attached GIF we could clearly see that the two rods were acting as fulcrum since they both had a very strong joint at the edges, so all the acting forces could easily impact the motion of the linear actuator.

I have added some pictures of the old design.

Step 7: Y-Axis Bed

Y-Bed and Heat Bed
For Y-axis bed, again I used the 12mm cylindrical rods which runs through SC12UU. For the bed I cut a 320x220mm piece of plywood (19mm thickness). I trace out the holes for 2 of those linear bearing in there respective tracks with 67.5mm away from the center of the plywood and drilled holes to fastened them with 8 of those 5x39mm long Allen key screws. To mount the Heat bed on it I used 3x52mm long 4 Allen key screws, drilled 4 holes of 3mm with 5mm clearness from the corner of the plywood and fastened them with washers sandwiching a Heat bed spring for bed leveling purpose, for all 4 corners respectively. For Printing surface I used glass of 270x180mm size and clamp it on the heat bed with 4 paper clamps.
Belt Holder
Now with the linear bearing in place, I fastened 2 MDF pieces particularly 6mm thick and 30x30mm in size with a hole in the center for a 3x52mm long screw to hold them in place with a 25mm clearness, fastened them along the edge line in the center of the plywood bed with one 4x26mm long galvanized screw respectively. Repeat the same process for the other side. looping the belt around the 3x52mm long screws, I squeezed the belt teeth together and fastened a zip tie around it to lock them in place, making sure that the belt is tensioned enough for the linear guide.

Belt GT2 width 6mm
Pulley GT2 width 6mm Bore 5mm(For Nema 17)
Idler GT2 width 6mm Bore 5mm
Idler
For Idler pulley, I used the same dimensions as for the X-axis one, as you can see by the pictures that the Idler pulley is mounted onto a piece of MDF, unfortunately that piece is from the old design that I mentioned in previous step, The idler pulley is fastened on the plywood pieces for the linear track using 2 angle brackets with around 20mm of clearness b/w them, fastened them onto the plywood piece with four 3x26mm long Allen key screws and nuts. Now we can easily hold the idler in place using a 5x26mm long Allen keys screw and a couple extra nuts to properly position it in front of the 15mm hole.
Motor Mount
To mount the motor, I cut a 70x60mm piece of 5mm thick acrylic sheet, Drilled two holes at the bottom to fastened it onto the frame with 3x52mm long screws and nuts keeping the motor pulley in the center line of that 15mm hole in the plywood. I mounted the stepper motor angle bracket about 19mm higher along the 70mm length, hold it in place with four 3x26mm long screws and nuts and fastened the Nema 17 with 4 3x9mm Allen key screws.

Step 8: Base and Wire Management

Base Plate
Now to bring everything together I made a base of plywood of 19mm thickness of about 815x550mm in size. After that I placed the Print bed axis and the tower is such a way that all axis met at (0,0,0) in there respective Cartesian coordinates. I used 4 4x39mm galvanized screws to bolt-on the tower in place. To mounted the Printing bed axis, I drilled 4 holes on the X-axis frame 70mm away from the corner and on the base to fastened them together with 4 3x52mm long screws and nuts.
After that I cut about 12 100x40mm pieces of plywood, stack 2 of them together to make a pair and fasten 4 pairs on all four corners and for the remaining 2 pair I fasten them in the center along the edge line of the plywood using 4x52mm long galvanized screws.
Wire Management
To prevent the wires to get tangled, I try to reduce wire visibility as much as possible. I utilize the Aluminium tubes in the frame and drilled holes in the plywood to pass the wires through it to keep everything manage. I have also used the Cable winding pipe spiral warping for the HOTEND and the heat bed wires.

Step 9: Firmware and Electronics

For firmware I chose Marlin since it is the far most common firmware for 3d printers.
Arduino Mega is the brains and RAMP 1.6 is the Muscle for this project, to drive the stepper motors I used is Nema 17 and stepper driver is DRV8825, for the Hotend I used Triangelab V6 Dual Drive Extruder. For homing sequence I used Limit switch module and for Print bed I used 12 Volt heat bed with 100K ohm NTC 3950 Thermistors, Mounted the Ramp 1.6 on the base plate infornt of the Z-axis tower and cover it with a cheap plastic food container and also fastened it on the base plate, I used the REPRAP discount graphic smart controller that is mounted on to the plastic container. I ordered a separate MOSFET module for the heat bed but it came faulty so the replacement is still in transaction. To power up the entire thing I used a 12v 30A Industrial power supply. In addition, I connected the HOTEND Barrel fan directly to the Power supply and I have added another DC fan that is mounted on to the plastic container to cool everything. Wiring is done according to the schematic.

Step 10: Programming

For Downloading Marlin Firmware, u used 1.1.8
http://marlinfw.org/meta/download/

The programming of the firmware is actually just the calibration of it. If someone is developing there own design they are required to edit the Code of marlin accordingly. When you launch the Marlin.h program you will find a tab bar, go to "configuration.h" tab because most of the editing is done in the configuration.h tab.

Bed Size
Press Ctrl+F and type "X_BED_SIZE" below the comment "The size of the Print bed" here you can change the size of X and Y axis, the default size would be 200 for both X and Y axis, change it according to your desired size, for me it was 270 for X and 140 for Y. Below that you would also find Z_MAX_POS or if just press CTRL+F and type "Z_MAX_POS", change it to your requirement, in my case 250 but I can increase it up to 300.
Speed Controlling
Read this carefully because it is the most important step of the editing. Whatever you do if your printer speed is to high your printing quality will get effected unless you don't require print quality and your 3d print is very large.
But for someone whose is new, this much speed seems abnormal and also generates vibrations, to much vibration effect the printing quality and also damages you machine. For someone new it is necessary to know that your machine resonate whenever it changes axis direction or go back and forth rapidly which generates to much vibrations. To minimize this resonance we are required to manage these below mentioned factors:
Acceleration
Jerk
here, acceleration is the factor required to maintain a constant speed(Velocity) and the Jerk is the factor that jumps the stepper motor to reach the specified acceleration. As far as I have experienced if the acceleration is higher and the jerk value is also high resonance will be also high, so to manage these two factor we need to decrease the value in a certain way. I will post another instructables to elaborate the use of this function, also in the newer version of the Marlin 2.0 they have changed this setting to some sort of factor. For now my settings are shown in the picture which are,
Xmax=300 with X jerk 5
Ymax=300 with Y jerk 5
Zmax=100 with Z jerk 100(you don't need to change unless your axis is very out)
Thermal Runaway
Make sure that your stock firmware has already enabled the Thermal runaway feature. If not click CTRL+F and find "THERMAL_PROTECTION_" you will find the Thermal Runaway Protection, just remove the two // from the the two lines shown in picture for HOTEND and BED.
Extruder and Filament
Find "DEFAULT_NOMINAL_FILAMENT" and when to get to it change it to your desired diameter of filament, for me it is 1.75(make sure you check it because the stock firmware is for 3mm). Just above it you'll see the extruder code which defines how many extruder you have, change it to your requirement.
LCD
First you need to understand that this Marlin firmware is used by not only DIY hobbyist but also most of the commercial 3d printers are burn with it, so it is a collection of so many different options to pick from. For my 3d printer I chose REPRAP_DISCOUNT_FULL_GRAPHIC_SMART, so for your desired LCD just click CTRL+F and search LCD and we you stumble on the list of LCD find yours and uncomment it.
Endstops
For endstops CTRL+F to find "software endstop" and chose to uncomment for minimum or maximum positions if you have endstops install for them. For mine I only have 3 endstops for minimum position so I only enable the minimum side. For those who get confuse here, let me clear that when you define the Bed size you see these following lines
#define X_BED_SIZE 270
#define Y_BED_SIZE 140
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 200
they define the max position to stop the steppers where as to define the 0 of an axis you need a feedback which is given by the Endstop or any sort of other sensor or switch. Sometimes it is not necessary because if you are not using any endstop you can just invert there logic. I'm not defining the entire coding here, just for a brief explanation the inverting of logic let the firmware amuse that the endstops are already meet so when you Autohome it will stay in its possible and define all axis to (0,0,0) there origin, there will be another instructables for that in future for better understanding of this function.
Further more, if you are not using the heat bed you can always disable it, click CTRL+F find "MOTHERBOARD" you'll get MOTHERBOARD BOARD_RAMPS_14_EFB to EFF or if you have another setting than just go to board.h from the tab bar and see it for yourself your best requirement. Or you could also change it through a deep dive into the configuration.h tab.
Steps per mm calibration is also very crucial for preciseness but i'll explain it in another instructable. Just for now I am showing that I calibrated the machine from tip to toe.

Step 11: 3d Model

I have attached the 3d model for this project so that anyone can have the Plans and modify them as they wish.

X-axis
https://drive.google.com/open?id=18t7ftya7MNIMZOj_...

Y-axis
https://drive.google.com/open?id=1p-Pl12MA53x6UfVt...

Z-axis
https://drive.google.com/open?id=1qVeQ2fn7nx3kOjER...

Full model
https://drive.google.com/open?id=1DTEus4JLZqfkt_ll...

I use soildworks for all my 3d modelling. For Slicing I have Cura.

Step 12: Obviously the Result

The Print quality is very good, I am using a 0.4mm nozzle.
Sometimes you might get a sound of your extruder clicking or if you see closely it would be skipping steps all you need to do is look out following instructions.

  • Make sure your filament roll in free to move.
  • look out for filament to get tangled. If you have a proper filamnet holder you would not face this problem (i'll install one later).
  • Again with the Teflon tube make sure it is not bending or twisting.
  • One more factor could be the steps per mm, if your extruder is over extruding than you need to adjust that.

FYI it is already sold to a local business.