Diy Arduino Cheap 3d Printer Project RAMPS 1.4



Introduction: Diy Arduino Cheap 3d Printer Project RAMPS 1.4

This is my first 3D printer, most of the songs were bought from this website.
It took me almost a year to build the printer, of course I was not helped by anyone and I did a lot of tests and versions of each part of the printer I hope we have added enough executions and are on everyone's behalf. For a better understanding, I advise you to watch the footage we made at each stage. I hope to fascinate you and see the plaque Success!!!

Step 1: The Frame

What do you need for the frame :


Aluminum sheet

12 pieces 5 mm screw and nut

2 pieces 6mm screw 370 mm long

12 pieces 6mm nut

For the frame i use acrylic thickness of 10 mm one piece has a length of 340 mm and width 70 mm and the other

It has a length of 340 mm and width of 97 mm, See Figure 1.

In Figure 2 we have a piece of sheet 3 mm thick, 30 mm wide, 360 mm sheet is bent at both ends 30 mm each.

The sheet has a length of 300mm after bending.

On the both ends make 2 holes of 5 mm,after which pierce acrylic like in Figure 3 and use 4- 5 mm screws to mount.

Now we need to do two components as in Figure 4,just as one preserve it for later and do not make holes.

The component is 3 mm thick, 50 mm wide, 500 mm sheet is bent at both ends 100 mm each.The sheet has a length of 300mm after bending.And you have to make as in Figure 4 holes.

Once you have made holes, mount the component like in Figure 5,once mounted components they must be between 150mm.

Now take the second component and make 6 mm holes like in Figure 6.

In Figure7 we go through 6 mm holes with a 370 mm long screw.

The component from Figure 8 we have support motor for the z ax ,you must make 2 pieces in mirror one on left one on right.

I made a video to see fine details to construction

Step 2: Installation Display

What do you need for the display:

Aluminum sheet

4 pieces 5 mm screw and nut

4 pieces 3 mm screw and nut

RAMPS1.4 2004 LCD Screen Module buy from here

In Figure 1 we have a piece of sheet 3 mm thick, 100 mm wide, 400 mm sheet is bent at both ends 50 mm each.
The sheet has a length of 300mm after bending.On the both ends make 2 holes of 5 mm.

Now follows Figure 2 and make holes to match the lcd screen module.

Mounted module as in Figure 3.

Now attach the display to frame ,see Figure 4.

I made a video to see fine details to construction

Step 3: Make the Y Ax and Test

For this we need:

Aluminum sheet

12 pieces 4mm screw and nut

1 6 mm screw

3 pieces 6mm nut

1 stepper motor buy from here

4 pieces liner bearings buy from here

GT2 belt buy from here

2 GT2 Pulley buy from here

8mm aluminum bar 350mm lenght

First take your 8mm aluminum bar and make in both ends 3mm thread, the bar are 350mm length .

We may have to give 4mm 4 holes in frame as in Figure 1.

To ensure smooth movement we use linear bearings 8mm in,15mm out.I made acrylic housings for bearings,

I glued two pieces to get a greater thickness, see Figure 2 for more information.

Now put on the bar bearings and mounted on the frame as in figure 3.

After you have mounted on the frame, make 4mm thread on bearing housing like in Figure 4.

In Figure 5. we have 2 pieces of aluminum sheet 3mm thick, 280mm long, 40mm wide we copy carcasses bearing holes and we mount keeping 40mm between bearings.

To keep these two plates that slide voucher aligned and we've done a component of aluminum 3mm thick, 205mm long, 40mm wide, 10mm with the fold see Figure 6. on both ends give gripping holes 4mm ,component will be installed rivet as in Figure 7.

In Figure 8 we have the stepper motor support that we will mount on the frame, considering that GT2 Pulley to be in the middle like in FIgure 9.

To run GT2 Belt I've done a component (see Figure 10 construction detail) and mount the component in printer front as in Figure 11.

All that left to do is to pass the GT2 belt by the 2 GT2 Pulley and fixed part of Figure 6 . More details in Figure 12.

Now make the test ,

I used Arduino and easydriver with software grbl.

Step 4: Make the X Ax and Test

For this we need:
Acrylic Aluminum sheet

16 pieces 4mm screw and nut

1 stepper motor buy from here

5 pieces liner bearings buy from here

GT2 belt buy from here

2 GT2 Pulley buy from here

8mm aluminum bar 350mm lenght

First 2 pieces of 3 mm thick aluminum are taken.
And they get 2 pieces of 10 mm thick as shown in Fig The measures are in fig.1

The next step is building blocks from Fig. 2 of acrylic, the dimensions are alpha in the picture.

The pieces of Fig. 2 are mounted on the pieces of Fig. 1 as in Fig. 3.

Make 2 8 mm holes in the 10mm aluminum pieces as in Fig. 4

For the left piece, a 30mm hole for motor mounting and 4 holes for mounting as in Fig. 5

In figure 6 we will see how to fit the parts of Figures 1 and 2.

Then we will mount bearings as in fig 7

The next step is to mount the 8mm alumina bars and lock them with screws, make sure the bars are parallel, see fig.8.

Also in Figure 8 we will see how to mount the aluminum plate to support the extruder hot end .

In Figure 9 we have the hot end tip and how the strap is attached.

Step 5: Make the Z Ax and Test

For the Z ax you need

Aluminum sheet

8pieces 4mm screw and nut

8pieces 3mm screw

2 stepper motor buy from here

2 Flexible Helical Coupling buy from here

2 300mm Stainless Steel + Chrome Steel Lead Screw buy from here

To build z axes we need to drill the aluminum parts that were built into the frame to mount the motors as in fig1.
After drilling we will mount the engines and Flexible Helical Coupling as in fig.2

The aluminum bars of Fig. 3 will be taken and mounted as in Fig. 4.

Next we will execute the pieces in fig. 5 the dimensions are in the picture.

Now that we have executed the pieces in figure 5 we will mount x ax on the 8mm aluminum bars and fix them as in fig.6.

The next step is to mount the 2 300mm Stainless Steel + Chrome Steel Lead Screw shown in Figure 7

And now it has to be tested, watching video.

Step 6: Mount the Extrusion Head ,extruder , Heat Bed

What do you need :

Extrusion head buy from here

Extruder kit buy from here buy from here

Stepper motor buy from here

Heat bed buy from here

In fig.1 is show how in mounted Extrusion head.

The extruder kit must be mounted on the stepper motor as shown in Fig. 3 but before the aluminum piece of Fig. 2 is made.

For the heat bed make 4 hole and snaps with 3 mm screws but between the aluminum frame and the bed mounts the spring on each bolt, see fig. 4

Step 7: Make the Electronic Connections

For electronic you need :

RAMPS 1.4 3D Control Board Kit buy from here

Pc power supply or this power supply buy from here

If you use pc power you need to open the source and give it all the yellow yarns to get 12 v see fig.1
But I recommend buying a voltage source.

On the left acrylic plate it will be bent as in Fig. 2 to catch the Control Board Kit

To see how everything gets crawled watching the video.

Step 8: Install Software

Get the Marlin Firmware
Go and download the Marlin 3D printer Firmware, which is version 1.0.2 as of this writing, and place it somewhere you can find it. Click the Download Zip in the right hand side. See my images here if you can't find it. The file you downloaded is named which will create a folder named Marlin-Development when you unpack it. Put it someplace convenient like the desktop. Setup the Marlin Firmware in Arduino program From inside Arduino IDE: File -> Open Browse to your Marlin-Development folder and into the Marlin folder. Select and open the Configuration.h or Marlin.ino file (both opens a linked set of tabs/sketches, so it doesn't matter which one you choose). A new window opens containing the Marlin.ino. Close the other/old window. You have a lot of tabs in the open window. Select the Configratuin.h tab - see images.Defining Motherboard as RAMPS 1.4 with accessories. We need to define which Motherboard we are using. You can see all available board types in the boards.h file. Many guides around the web tell us to either edit at boards. or pins file or similar, to define motherboard. We do not have to do that anymore. The variables we need are all placed in Configuration.h Configuration.h -> Press CTRL+F to open the find window and write RAMPS Click Find to find the line containing: #define MOTHERBOARD...Here we need to define our board as pr. definitions in the boards.h file. Aside from defining we are using a RAMPS board, it is the the devices connected to the D8 (Heat-bed), D9 (fan) and D10 (heater)we define here. E is for Extruder, F for Fan, B for Bed.Make sure the line reads: #define MOTHERBOARD BOARD_RAMPS_13_EFBSay we had two fans and no heatbed we would define the last part a EFF instead. Save the file if you made any changes.Defining Baud rate, Extruders and Power Supply Default baud rate is 250000 now. If it gives you any problems (with your computer) you can change it to 125000. These steps are only for people WHO need to change it to the non-default 125000 configuration. Open Configuration.hFind the line containing #define BAUDRATE 250000 and put two slashes in front of it, like this: // #define BAUDRATE 250000 On a new line you write: #define BAUDRATE 125000 Save the fileExtruders are default defined as 1, so leave that alone. Power Supply is configured as standard ATX. PSU can be defined as X-Box as well. Defining Thermal Settings Temperature sensors There is a list with 20-25 different options for each sensor. Below the options is the list which defines our sensor inputs on the RAMPS 1.4 board. Default defines SENSOR_0 with option 1 which Means it is a // 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup) or in other words: the standard thermistor used for temperature Measurements for 3D printers (that I know). The TEMP_SENSOR_0 is your Hot-end thermistor. The other sensors are configured with option 0, which translates to being disabled. #define TEMP_SENSOR_0 1 #define TEMP_SENSOR_1 0 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_3 0 #define TEMP_SENSOR_BED 1 Heater settings We need to define minimum and maximum temperature of our Hot-end and Hot-bed Minimal temperature First is the Minimum settings, which are default at 5, which is just to test the Thermistor is working. Ie: to make sure wires aren't melted or otherwise damaged etc. Comment out 1 ,2 and 3 as we don't have those. You will get a compile error if you comment out the BED_MINTEMP (maybe only if it enabled under Temperature sensors). You can define MINTEMP as 0. #define HEATER_0_MINTEMP 5 //#define HEATER_1_MINTEMP 5 //#define HEATER_2_MINTEMP 5 //#define HEATER_3_MINTEMP 5 #define BED_MINTEMP 5 Maximal temperature Here we define maximum temperature for our Hot-end and Hot-bed. Defaults: Hot-end: 275 Hot-bed: 150 Comment out 1,2 and 3 as we do not have those (not sure you have to really) If you print ABS, you want to do it around 230 degrees or so. Remove the // on the line with BED_MAXTEMP if you install a heated bed. #define HEATER_0_MAXTEMP 240 //#define HEATER_1_MAXTEMP 275 //#define HEATER_2_MAXTEMP 275 //#define HEATER_3_MAXTEMP 275 //#define BED_MAXTEMP 120 If you make any bigger changes, you must change the Preheat Constants way farther Down in the file where (use CTRL+F) Preheat for PLA is listed at 180 for hotend and 70 for bed and ABS is 240/110 respectively. Preheat Constants These are mostly relevant if you use an LCD display, as these settings will be listed as "Preheat PLA" and "Preheat ABS" in there. It is a good idea to Insert a comment with the original temperatures so we don't forgot those. #define PLA_PREHEAT_HOTEND_TEMP 180 #define PLA_PREHEAT_HPB_TEMP 70 #define PLA_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 #define ABS_PREHEAT_HOTEND_TEMP 240 #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 Extruder settings As default the Extruder is configured to not start unless the hot-end is at least 170c degrees. This function is enabled as default with PREVENT_DANGEROUS_EXTRUDE and a default definened minimum temperature at 170c. I have uncommented these lines as I want to test the Extruder motor first without attaching the hot-end. Remember to remove the slashes later on. // #define PREVENT_DANGEROUS_EXTRUDE // #define EXTRUDE_MINTEMP 170 Defining End-Stops End stops are small contacts/switches placed at one or both ends of axis to tell the system it should stop. These can be used to automatically calibrate the printer for Home and end-posistions. Some of the technical electronical parts of End stops are allready defined as the different PULLUPS resistor configurations. You can read about pull-up-resistors in the wiki. I'm not all into the specifics so i'm leaving most settings at default for now. One thing of importance though: there are Pullup resistors on the Arduino board, which can be used, so you do not have to solder anything in yourself. If you do not install endstops, you need to remove the slashes in front of one or both lines according to your system. I removed both as I don't have any endstops. #define DISABLE_MAX_ENDSTOPS #define DISABLE_MIN_ENDSTOPS You can also define which way the printer should move to get to home posision. Read in the Axis movement directions below. Axis movement directions There is no real way to know which way the beds are going to move, except to try it out. After connecting everything you move alle beds to the center position and move one of them a bit. If it move the wrong way, you can either change the configuraitons or swap the wire pairs on the RAMPS 1.4 - AFTER you have powered everything off and disconnected the USB as well. If you just want to change the configurations file, you change false to true as fits your system: // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. #define INVERT_X_DIR false #define INVERT_Y_DIR false #define INVERT_Z_DIR false #define INVERT_E0_DIR false After your have configured the motors to move the right way, you should configure which way the motors have to move to get to the home position: // Sets direction of endstops when homing; 1=MAX, -1=MIN If a endstop is configured to be at the 0 position for that axis, the setting here needs to be -1. Otherwise, it needs to be 1. #define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1 I don't think you would ever really need to change this?! Printer printing area This defines how large an area we can print on. It is listed as 200mm in each direction as default, which is rather much more than our printer can do. Our machine can do around 40mm in each direction. I'll set it at 37, just to start at a safe distance. // Travel limits after homing (units are in mm) #define X_MIN_POS 0 #define Y_MIN_POS 0 #define Z_MIN_POS 0 #define X_MAX_POS 37 #define Y_MAX_POS 37 #define Z_MAX_POS 37 You can also define bed-leveling but you have to play with that on your own printer to make any sense of it. If you use a floppy drive for Z axis it is around 15mm or so. Movement Settings We need to define how many steps the motors needs to make in order to move the beds 1mm. We will need to use the values as calculated for the different printer axes and extruder. The order is {X, Y, Z, E} //#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,4000,500} #define DEFAULT_AXIS_STEPS_PER_UNIT {215.12,215.12,8034.69,196.52} We define the fastest mm/s the printer is allowed to move. . //#define DEFAULT_MAX_FEEDRATE {300, 300, 5, 25} #define DEFAULT_MAX_FEEDRATE {100, 100, 2, 25} We need to tune this. Listed is the default settings. //#define DEFAULT_MAX_ACCELERATION {3000,3000,100,10000} #define DEFAULT_MAX_ACCELERATION {200,200,50,5000} We need to define how fast our printer is allowed to accellerate. The default for all 3 are 3000, but I change that to 100 to start up easy. #define DEFAULT_ACCELERATION 100 #define DEFAULT_RETRACT_ACCELERATION 100 #define DEFAULT_TRAVEL_ACCELERATION 100 Upload the firmware to the printer Press the "tick" (if that is the Word) icon to the left of the arrow icon to verify the code. If it makes an error you need to find it and correct it. It is most likely a typo or maybe an extra \ or similar. If it does give an error but not showing you anything, you can choose to copy it and paste it into notepad or similar, to see what the error is. You can press the arrow-icon to upload the configuration to your printer. A common error I've done was being connected to my printer with Pronterface (or another USB controller program) as Arduino can't connect to it in that case.

Step 9: Let's Do Some Tests

Watch the video to see the first tests of the printer.

Automation Contest 2017

Participated in the
Automation Contest 2017

Plastics Contest

Participated in the
Plastics Contest

Be the First to Share


    • Puzzles Speed Challenge

      Puzzles Speed Challenge
    • CNC Contest 2020

      CNC Contest 2020
    • Secret Compartment Challenge

      Secret Compartment Challenge