dorkhub

DIY-CNC-machine

How to build your own CNC machine from scratch

maxvfischer
1.9k149 forksupdated 4 years ago
git clone https://github.com/maxvfischer/DIY-CNC-machine.gitmaxvfischer/DIY-CNC-machine

main_gif

This guide goes through all the steps to build your own CNC machine from scratch. It includes a complete bill of materials (BOM), STL/OBJ-files for all the 3d-printed parts and detailed instructions of how everything is assembled. It also includes instructions of how all the necessary open-source softwares are installed.

The guide is based on Ivan Miranada's design and is a complement to Ivan's Youtube-videos:

  1. Original video: https://www.youtube.com/watch?v=_atw3e0nIrg
  2. Updates with geared stepper motors etc: https://www.youtube.com/watch?v=qpjf5D3WngY
  3. Updating to metal parts: https://www.youtube.com/watch?v=RDnGvhdGFEY

If you have any questions, feel free to contact me on LinkedIn: https://www.linkedin.com/in/max-fischer-92997281/

or

contact

cnc_top_gif


Featured on


Table of content

  1. License
  2. Parts (bill of materials)
  3. Build the CNC machine
    1. Main frame
      1. Drill holes in 900 mm profiles
      2. Rails to 900 mm profiles
      3. Assemble upper and lower frames
      4. Interlock upper and lower frames
    2. Y-axis
      1. Side plates to upper frame
      2. Y-axis motors, idlers and pulleys to side plates
      3. Y-axis belt tensioners and end-stop mounts
      4. Y-axis HTD5M belts
    3. X-axis and Z-axis
      1. Rails to bridge beams
      2. X-axis tensioner and end-stop mount to lower bridge beam
      3. Bridge beams to side plates
      4. Rod bearings to carriage
      5. Carriage to bridge beams
      6. X-axis motor, idlers and pulley to carriage
      7. X-axis HTD5M belt
      8. Acme nut and rails to carriage slider
      9. Acme rod and vertical slider to carriage
      10. Z motor mount and X-axis cable chain
      11. Y-axis cable chain
      12. Z stepper motor, pulleys and belt
    4. Stepper motors and end-stops
      1. Extend stepper motor wires
        1. Y-axis 1
        2. Y-axis 2
        3. X-axis
        4. Z-axis
      2. End-stops and end-stop wires
        1. X-axis (max)
        2. X-axis (min)
        3. Y-axis (max)
        4. Y-axis (min)
        5. Z-axis (max)
      3. Stepper motor and end-stop cable management
        1. Y-axis steppers and X-axis end-stops
        2. X-axis stepper, Z-axis stepper and Z-axis end-stop
    5. Router
      1. Attach router to carriage
      2. Router cable management
    6. Electronic boxes
      1. Small electronic box
      2. Large electronic box
    7. Electrical wiring and connect components
      1. Main power supply
      2. Prepare power to steppers and connect fans and LED
      3. Assemble stepper motor drivers and tune VRef
      4. Attach Arduino and solder USB cable
      5. Stepper and end-stop cable management to small electronic box
      6. Connect steppers to CNC shield
      7. Connect end-stops to CNC shield
      8. Set microstepping
      9. Router cable management and connect to main power supply
      10. Final test of electrical wiring
    8. Wasteboard
      1. Cut out wasteboard
      2. Attach wasteboard to CNC
    9. Dust shoe (updated Feb 4, 2022)
  4. Software
    1. Install CNC software (grbl) on Arduino Uno
      1. Install Arduino Software (IDE)
      2. Install GRBL
    2. G-Code sender
      1. Install G-Code sender
      2. Connect G-Code sender to GRBL
      3. Adjust GRBL configuration
        1. Enable end-stops/hard limits
        2. Calculate and set travel resolutions
        3. Other configurations
  5. Final notes

License

The following license is included when buying Ivan Miranda's blueprints of the CNC machine:

Everything that is in these files that I produced myself, apart from reselling the files, is allowed.
You can print and sell parts, sell machines, sell courses to build the machine. Modify the parts and post 
them for free, as long as you don’t sell the files and keep this license on everything you make with the 
files and credit me, we’re good. No DRM or anything, you are even allowed to repost the files as long as 
they’re kept free. Why buy this then? To support me and keep me encouraged to do more projects like this. 

Ivan does an amazing job putting these DIY builds together. I've posted his STL-files in this repository to simplify the build, but PLEASE buy his blueprints here: https://ivanmiranda.com/products/3d-printed-cnc. It's only $25 and helps him to continue build and share his awesome projects. Also, you will get access to a Discord channel that is really useful, where you can ask questions to a lot of people who have already built the machine.

Also, the Z-axis end-stop trigger, the ordinary end-stops and the rail supports all come from cello4's GitHub: https://github.com/4cello/mirandacnc-community.

Parts (bill of materials)

CLICK HERE TO OPEN THE BILL OF MATERIALS (BOM) MARKDOWN: Bill of materials

To simplify the build, I've created a separate markdown page with tables covering all parts needed to build the CNC-machine. The tables include a unique Item No. to easier refer to the parts in the guide. The tables also include images of all parts and .STL/.OBJ files of the parts that needs to be 3d-printed.

To get an even better understanding of how all the parts are used, I've created a detailed spreadsheet with comments:

To be able to continue with the build, you need to buy and 3d-print all needed parts found in the bill of materials.

Build the CNC machine

This section covers how all the parts is put together to build the CNC machine.

All the measurements, distances and a complete overview of how everything comes together can be found in the main Fusion 360 CAD design. It can be downloaded here:

Please note that the main Fusion 360 design is quite messy, which is one of the reasons why I've extracted the needed parts in a separate bill of materials.

Fusion 360 is a CAD program developed by Autodesk. It's free for personal use and can be downloaded here: https://www.autodesk.com/products/fusion-360/personal. After you've downloaded Fusion 360, import fusion_360_cad_files.f3z to load the main CAD design. This can also come in handy if you need to adjust some of the 3d-printed parts.

Main frame

Drill holes in 900 mm profiles

The main frame consists of two separate frames, the lower and the upper frame. The two frames are kept together using threaded rods, washers and nuts. To enable the threaded rods to slide through the aluminium profiles, holes needed to be drilled.

First, a sharpie was used to indicate where all the holes were going in the 900mm profiles (O07). This was done by using a set square and a penn. A bradawl and a hammer were then used to make indentations at the center of the holes.

holes_main_frame_1

A 9 mm drill-bit and a bench drill was used to drill the holes straight through the profiles.

holes_main_frame_1

holes_main_frame_1

To be able to access the nuts and tight them with a socket wrench, some holes (facing outwards, see Fusion360 CAD file) needed to be enlarged. A sharpie was used to mark all the holes that needed to be enlarged.

holes_main_frame_1

A step drill was then used to enlarge the holes holes to 20 mm. A tip is to measure the size of your socket wrench and keep the holes as small as possible, while you're still able to tighten the nuts. To be able to see which step you're aiming for on the step drill, attach a small piece of masking tape on the step above.

holes_main_frame_1

holes_main_frame_1

holes_main_frame_1

holes_main_frame_1

The edges were finally smoothed out using a round metal file.

holes_main_frame_1

holes_main_frame_1

holes_main_frame_1

Rails to 900 mm profiles

Before the upper and lower frames were assembled, two 600 mm MGN12H rails (O21) were attached to the 900 mm aluminium profiles (O07) of the upper frame. They were attached to the sides facing outwards and above the three 80 mm vertical beams (connecting the lower and upper frame). A tip is to place all the profiles as they should go to make sure that you're attaching the rails to the correct faces (see the red boxes on the image below). Also, be very careful when removing the MGN12H blocks (O22) from the rails.

attach_rails_to_beams_2

rails_main_frame_1

rails_main_frame_0

3x 3d-printed support tools (P25) were used to center the rails on the profiles. A 57 mm wood block were cut out and used to attach the rails at the same distance from the end of the profiles on both sides. The rails were then clamped to the profiles.

rails_main_frame_2

rails_main_frame_3

rails_main_frame_4

rails_main_frame_5

A bradawl and a hammer were then used to make indentations at the center of the holes. Cutting fluid was applied and a 2 mm drill was used to drill all the holes.

rails_main_frame_6

rails_main_frame_7

rails_main_frame_8

rails_main_frame_9

rails_main_frame_10

rails_main_frame_11

Cutting fluid was then applied once more on the drilled holes and a M3 drill tap was used to create threads in the holes.

rails_main_frame_12

rails_main_frame_13

Finally, the rails were attached using 48x 16 mm M3 screws (S03).

rails_main_frame_14

rails_main_frame_15

rails_main_frame_16

rails_main_frame_17

Assemble upper and lower frames

The two frames were assembled using the 4x 717 mm M8 threaded rods (T03), 8x (20mm, 10mm, 2mm) washers (W04) and 8x M8 lock nuts (N03).

The profiles were first placed in their correct place and clamps were used to keep the profiles aligned. I used two jointed spanners (one one each side) to lock everything in place, but you can also use two socket wrenches. Just make sure that the bits fit into the drilled holes.

assemble_frames_1

assemble_frames_3

assemble_frames_2

assemble_frames_4

assemble_frames_5

assemble_frames_6

assemble_frames_7

Interlock upper and lower frames

The upper and lower frames and the 8x 80 mm vertical aluminium beams (O06) were first layed out in their correct place. The 803 mm horizontal bridge beams (used later in the tutorial) (O05) and clamps were then used to align the frames on top of each other.

assemble_frames_9

assemble_frames_10

8x 120 mm M8 threaded rods (T02), 16x (20mm, 10mm, 2mm) washers (W04) and 16x M8 lock nuts (N03) were then used to interlock the upper and lower frames, with the 80 mm vertical aluminium profiles in between.

assemble_frames_8

assemble_frames_12

assemble_frames_11

assemble_frames_13

Y-axis

Side plates to upper frame

Before attaching the side plates, the MGN12H blocks (O22) were added back onto the rails, 2x on each side. Be careful when sliding them onto the rails, there are multiple small bearing balls that easily fall out of the blocks.

assemble_side_plates_1

assemble_side_plates_2

The left (P20) and right (P29) side plates where then attached to the blocks using 16x 20 mm M3 screws (S04) (8x on each side plate). Make sure to attach the plates on the correct side (see images below).

I had to redesign the left side plate and reprint it later in the build (after the images were taken). Therefore, the left side plate seen in the upcoming images look a bit different than the one used (see next image for the left side plate used).

assemble_side_plates_3

assemble_side_plates_4

assemble_side_plates_5

assemble_side_plates_6

assemble_side_plates_7

assemble_side_plates_8

Y-axis motors, idlers and pulleys to side plates

Each idler were made up out of 1x idler blocker (P16), 2x 60 mm fully threaded M8 screws (S15), 6x 698zz bearings (O01) and 8x (15 mm x 8.5 mm x 1.5mm) washers (W03) (2x closest to the idler blocker and 6x closest to the side plate). The idlers were then attached to each side plate using two M8 nuts (N03). Make sure that the bearings are spinning freely.

attach_side_plate_motors_1

attach_side_plate_motors_2

As I designed and added the idler blocker later on in the build, some of the images doesn't have it and they also have 3x washers instead of 1x washer closest to the screw head. I left these images anyways in the guide so you can see how it looks when you attach the idlers, but please ignore the wrong number of washers. Also ignore all the other things around the idlers in the upcoming 2 images, they are taken later on in the build.

attach_side_plate_motors_3_0

attach_side_plate_motors_3_1

Should be idler blockers and a different number of washers in the upcoming images.

attach_side_plate_motors_3

attach_side_plate_motors_4

attach_side_plate_motors_5

attach_side_plate_motors_6

attach_side_plate_motors_7

To attach the stepper motors to the side plates, the 4x M3 screws (S07) locking the gear box to the motor were removed. Save these as they will be used later on to attach the power supply and Arduino to the electronic boxes.

attach_side_plate_motors_1

attach_side_plate_motors_1

The 2x geared stepper motors (E18) were then inserted into the large holes on the side plates, facing inwards. 4x 40 mm M3 screws (S06) and 4x M3 washers (W05) were used to lock each stepper motor to the side plates (I forgot to add the washers in the images below, therefore they're not visible). The motors should be attached so that the cables are facing in the direction of the two bridge beams (i.e. the longer vertical surface on the side plates).

attach_side_plate_motors_1

attach_side_plate_motors_1

attach_side_plate_motors_1

attach_side_plate_motors_1

attach_side_plate_motors_1

1x HTD5M timing pulley (O18) was attached to each motor shaft using set screws.

attach_side_plate_motors_1

attach_side_plate_motors_1

attach_side_plate_motors_1

attach_side_plate_motors_1

Y-axis belt tensioners and end-stop mounts

2x fixed belt tensioners (P19, P28) were attached to the longer aluminium profiles of the upper frame using 4x 20mm M5 screws (S12) (2x for each fixed belt tensioner). When aligning the fixed belt tensioners, make sure that the "belt opening" is pointing in the direction of the rails (1x fixed belt tensioner for each rail). Also make sure that the fixed belt tensioners are positioned on the correct side of the rail (see images). Similar to before, a bradawl and a hammer were used to make indentations at the center of the holes. Cutting fluid was applied and a 4 mm drill was used to drill the holes, followed by a M5 drill tap.

attach_tensioners_and_belts_12

attach_tensioners_and_belts_13

attach_tensioners_and_belts_14

attach_tensioners_and_belts_15

attach_tensioners_and_belts_16

attach_tensioners_and_belts_17

attach_tensioners_and_belts_18

2x belt tension sliders (P17, P26) were attached on the opposite side of the fixed belt tensioners, ontop of the aluminium profile, using 4x 20mm M5 screws (S12). To get them aligned at the exact same place on both sides, a 100 mm distance was cut out and a flat support was clamped to the inner side of the profile. The same drill and tap size were used as for the fixed belt tensioners (4mm drill, M5 drill tap). Make sure that the belt tension sliders are pointing outwards.

attach_tensioners_and_belts_19

attach_tensioners_and_belts_20

attach_tensioners_and_belts_21

attach_tensioners_and_belts_22

attach_tensioners_and_belts_23

attach_tensioners_and_belts_24

attach_tensioners_and_belts_25

attach_tensioners_and_belts_26

attach_tensioners_and_belts_27

2x end-stop mounts (P08) were then attached to the same side as the belt tension sliders using 4x 20mm M5 screws (S12), facing outwards and aligned with the rails. The same drill and tap size were used as for the fixed belt tensioners (4mm drill, M5 drill tap).

attach_tensioners_and_belts_1

attach_tensioners_and_belts_2

attach_tensioners_and_belts_3

attach_tensioners_and_belts_4

attach_tensioners_and_belts_5

attach_tensioners_and_belts_6

attach_tensioners_and_belts_7

attach_tensioners_and_belts_8

attach_tensioners_and_belts_9

attach_tensioners_and_belts_10

attach_tensioners_and_belts_11

The belt tensioners (P18, P27) were loosely attached to the belt tension sliders using 2x 60 mm fully threaded M8 screws (S15), 2x M8 nuts(N03) and 2x (20mm x 10mm x 2mm) washers (W04).

attach_tensioners_and_belts_28

attach_tensioners_and_belts_29

Y-axis HTD5M belts

The HTD5M belt (O17) was first inserted into one of the fixed belt tensioners using a flat screw driver. It was then stretched along the aluminium profile, below the first idler, around the timing pulley, below the second idler and all the way to the belt tensioner.

attach_tensioners_and_belts_30

attach_tensioners_and_belts_31

attach_tensioners_and_belts_32

attach_tensioners_and_belts_33

attach_tensioners_and_belts_34

A scissor was used to cut the belt at an appropriate length. The loose end was then inserted into the belt tensioner using a flat screw driver and the belt was stretched by tightning the M8 nut.

attach_tensioners_and_belts_35

attach_tensioners_and_belts_36

attach_tensioners_and_belts_37

attach_tensioners_and_belts_38

attach_tensioners_and_belts_39

Make sure that the belt is not too loose and not too tight.

attach_tensioners_and_belts_40

attach_tensioners_and_belts_41

Repeat on the other side.

X-axis and Z-axis

Rails to bridge beams

The last two 600 mm MGN12H rails (O21) were attached to two of the 803 mm aluminium bridge beams (O05, used for the X-axis). First, the MGN12H blocks (O22) were carefully removed from the rails.

attach_rails_to_beams_1

attach_rails_to_beams_2

The same 100 mm distance used to align the belt tension sliders were used to align the rails. Because they will be off center by 3 mm, make sure that you later attach the bridge beams to the side plates in a way so the rails line up.

The same 3d-printed support tools (P25) used to align the rails on the 900 mm aluminium profiles were used here as well. Everything was clamped into position. A bradawl and a hammer were used to make indentations and a 2 mm drill and a M3 drill tap was used to make the screw holes.

attach_rails_to_beams_3

attach_rails_to_beams_4

attach_rails_to_beams_5

attach_rails_to_beams_6

attach_rails_to_beams_7

attach_rails_to_beams_8

attach_rails_to_beams_9

attach_rails_to_beams_10

attach_rails_to_beams_11

The rails were finally attached using 16 mm M3 screws (S03) and the MGN12H rail blocks (O22) were gently slided back onto the rails.

attach_rails_to_beams_12

attach_rails_to_beams_13

attach_rails_to_beams_14

attach_rails_to_beams_15

X-axis tensioner and end-stop mount to lower bridge beam

The fixed tensioner (P28) and end-stop mount (P08) were attached to the lower bridge beam in the same fashion as on the 900 mm aluminium profiles, using 4x 20mm M5 screws (S12). When aligning the fixed tensioner, make sure that the "belt opening" is pointing in the direction of the rail. A bradawl and a hammer were used to make indentations at the center of the holes. Cutting fluid was applied and a 4 mm drill was used to drill the holes, followed by a M5 drill tap.

attach_tensioners_to_beams_1

attach_tensioners_to_beams_2

attach_tensioners_to_beams_3

attach_tensioners_to_beams_4

attach_tensioners_to_beams_5

attach_tensioners_to_beams_6

attach_tensioners_to_beams_7

attach_tensioners_to_beams_8

attach_tensioners_to_beams_9

attach_tensioners_to_beams_10

attach_tensioners_to_beams_11

attach_tensioners_to_beams_12

Bridge beams to side plates

All three bridge beams (O05) were then inserted into the slots on the side plates. Make sure that the two beams with the rails are on top of each other, with the rails pointing outwards. Also, make sure that you insert them in the correct orientation, so that the rails are lined up (due to the rails being 3 mm off center).

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

When the bridge beams were aligned, the blocker clips (P21, P22, P23, P30, P31, P32) were placed in their correct place and a sharpie was used to mark the center of the holes to be drilled. Similar to before, a bradawl and a hammer were used to make indentations at the center of the holes.

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

A 7 mm drill bit was used to drill the holes. As these holes were going straight through the profiles, a bench drill was used for precision. A metal file was used to remove all excess metal around the holes.

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

The bridge beams were then inserted into the slots on the side plates once more, along with all the blocker clips. 2x 140 mm threaded M5 rod (T01) was inserted through the bottom two beams and 2x 60 mm M5 (S14) screws was inserted through the top bridge beam. It was all tightened using M5 nuts (N02).

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

attach_beams_to_side_plates_1

Rod bearings to carriage

Before attaching the carriage (P07) to the bridge beams, two KFL08 rod bearings (O19) were attached on the top and the bottom of the carriage (inside) using 4x 20 mm M5 screws (S12) and 4x M5 nuts (N02). A tip is to temporarily use the acme rod (used in an upcoming step) to vertically align the two bearings.

assemble_carriage_1

assemble_carriage_2

assemble_carriage_3

assemble_carriage_4

assemble_carriage_5

Carriage to bridge beams

The carriage was attached to the 4x MGN12H blocks (O22) on the bridge beams, using 16x 25 mm M3 screws (S05).

attach_carriage_to_beams_1

attach_carriage_to_beams_2

attach_carriage_to_beams_3

attach_carriage_to_beams_4

X-axis motor, idlers and pulley to carriage

Each idler were made up out of 1x 60 mm fully threaded M8 screw (S15), 3x 698zz bearings (O01) and 4x (15 mm x 8.5 mm x 1.5mm) washers (W03) (1 closest to the idler blocker and 3 closest to the side plate). 2x idlers were then attached to each side plate using 2x M8 nuts (N03). Make sure that the bearings are spinning freely.

attach_side_plate_motors_1

attach_side_plate_motors_2

As I designed and added the idler blocker later on in the build, some of the images doesn't have it and they also have 3 washers instead of 1 washer closest to the screw head. I left these images anyways in the guide so you can see how it looks when you attach the idlers, but please ignore the wrong number of washers. Also ignore all the other things around the idlers in the upcoming image, they are taken later on in the build.

attach_idlers_motor_to_carriage_3

Should be idler blockers and a different number of washers in the upcoming images.

attach_idlers_motor_to_carriage_3

attach_idlers_motor_to_carriage_4

attach_idlers_motor_to_carriage_5

To attach the stepper motor to the carriage, the 4x M3 screws locking the gear box to the motor were removed.

attach_idlers_motor_to_carriage_6

attach_idlers_motor_to_carriage_7

attach_idlers_motor_to_carriage_8

The stepper motor was then inserted into the large hole on the carriage, facing towards the bridge beams/idlers. 4x 40 mm M3 screws (S06) and 4x M3 washers (W05) were used to lock the stepper motor onto the carriage. The motor should be attached so that the cables are facing upwards.

attach_idlers_motor_to_carriage_9

attach_idlers_motor_to_carriage_10

attach_idlers_motor_to_carriage_11

1x HTD5M timing pulley (O18) was attached to the motor shaft using set screws.

attach_idlers_motor_to_carriage_12

attach_idlers_motor_to_carriage_13

X-axis HTD5M belt

The HTD5M belt (O17) was first inserted into the fixed belt tensioner using a flat screw driver. It was then stretched along the aluminium profile, below the first idler, around the timing pulley, below the second idler and all the way to the other side.

The belt was cut at an appropriate length and inserted into the belt tensioner (P27) using a flat screw driver.

attach_x_axis_belt_1

attach_x_axis_belt_2

attach_x_axis_belt_3

attach_x_axis_belt_4

attach_x_axis_belt_5

The belt tensioner was then attached to the side plate using 1x 60mm fully threaded M8 screw (S15), 1x M8 nut (N03) and 1x (20mm x 10mm x 2mm) washer (W04). The M8 screw in the image is not fully threaded as I lost the one I was suppose to use and had to use another one, so please ignore :)

attach_x_axis_belt_6

attach_x_axis_belt_7

Make sure that the belt is not too loose and not too tight.

attach_x_axis_belt_8

Acme nut and rails to carriage slider

1x acme nut (O03) was inserted from the outside, into the the center hole at the top of the vertical carriage slider (P36). It was locked in place using 4x 25mm M3 screws (S05).

assemble_carriage_6

assemble_carriage_6

assemble_carriage_7

assemble_carriage_8

2x smaller 200 mm MGN12H rails (O20) were then attached to the back of the vertical carriage slider. First, the MGN12H blocks (O22) were carefully removed from each rail. After that, the rails were screwed in place on the back of the vertical carriage slider using 16x 20 mm M3 screws (S04). The MGN12H blocks were then slided back on and each end were blocked using tape.

assemble_carriage_9

assemble_carriage_10

assemble_carriage_11

assemble_carriage_12

assemble_carriage_13

Acme rod and vertical slider to carriage

To attach the vertical slider to the carriage, 16x 25 mm M3 screws (S05) were first inserted into the holes on the carriage. You might need to "open up" the holes using a narrow tool (depending on the direction you 3d-printed the carriage).

assemble_carriage_17

assemble_carriage_18

assemble_carriage_19

1x acme rod (O02) was then inserted through the two KFL08 rod bearings and the acme nut, and the set screws on the bearings were tightened.

assemble_carriage_14

assemble_carriage_15

assemble_carriage_16

The vertical slider was finally attached to the carriage by attaching the previously mentioned 16x 25 mm M3 screws (S05) to the MGN12H blocks on the vertical slider.

assemble_carriage_20

assemble_carriage_21

Z motor mount and X-axis cable chain

The first step was to find a good length of the X-axis cable chain (O09). To simplify this process, the X-axis belt was removed to easier move the carriage along the X-axis.

assemble_carriage_22

The Z motor mount (P40) and the X-axis cable chain mount (P38) were then attached using 3x 25 mm M4 screws (S10), 3x M4 nuts (N01) and 3x (10mm x 5mm x 1mm) washers (W01).

assemble_carriage_23

assemble_carriage_24

assemble_carriage_25

assemble_carriage_26

assemble_carriage_27

assemble_carriage_28

assemble_carriage_29

assemble_carriage_30

They Z motor mount was then attached to the carriage using 2x 80mm M8 screws (S16), 2x M8 nuts (N03) and 1x (20mm x 10mm x 2mm) washers (W04). The vaccum mount was also inserted and attached to the right-side M8 screw. Please ignore the timing pulley attached to the acme rod in some of the images, it will be attached in a later step.

assemble_carriage_30

assemble_carriage_31

assemble_carriage_32

assemble_carriage_33

assemble_carriage_34

assemble_carriage_35

1x 1 meter cable chain (O09) were then clamped to the cable chain mount and to the back-side bridge beam. The carriage was then moved as far to the sides as possible. It's important that the chain doesn't touch any of the side plates when moved. In my case, I had to remove 3 links from the cable chain to get a good length of the chain.

assemble_carriage_36

assemble_carriage_37

assemble_carriage_38

assemble_carriage_39

assemble_carriage_39

The Z motor mount and cable chain mount were then disassembled and the cable chain was properly attached to the cable chain mount using 2x 25mm M4 screws (S10), 2x M4 nuts (N01) and 2x (10mm x 5mm x 1mm) washers (W01).

assemble_carriage_40

assemble_carriage_41

assemble_carriage_42

assemble_carriage_43

The Z motor mount and cable chain mount were then assembled again and attached to the carriage in the same fashion as before.

assemble_carriage_44

assemble_carriage_45

assemble_carriage_46

assemble_carriage_47

The carriage was move all the way to the right side plate and the cable chain was clamped to the lower back bridge beam.

assemble_carriage_48

assemble_carriage_49

A bradawl and a hammer were used to make indentations at the center of the two holes. Cutting fluid was applied and a 3 mm drill was used to drill the holes, followed by a M4 drill tap. The cable chain was then attached to the bridge beam using 2x 25 mm M4 screws (S10).

assemble_carriage_50

assemble_carriage_51

assemble_carriage_52

assemble_carriage_53

assemble_carriage_54

assemble_carriage_55

assemble_carriage_56

assemble_carriage_57

assemble_carriage_58

assemble_carriage_59

assemble_carriage_60

Finally, the X-axis belt was reattached and tightened.

assemble_carriage_61

Y-axis cable chain

The Y-axis cable chain (O09) was attached to the frame using 1x cable chain mount (P05) and 1x cable chain support (P06). The cable chain mount was clamped to the left side of the lower frame and aligned with the last vertial beam. A bradawl and a hammer were used to make indentations at the center of the two holes. Cutting fluid was applied and a 4 mm drill was used to drill the holes, followed by a M5 drill tap. The cable chain mount was then attached to the lower frame using 2x 20 mm M5 screws (S12).

assemble_cable_support_y_axis_1

assemble_cable_support_y_axis_2

assemble_cable_support_y_axis_3

assemble_cable_support_y_axis_4

assemble_cable_support_y_axis_5

The cable chain support was only attached to the lower frame for the cable chain to rest on. It was aligned and attached it at the center between the second and third vertical beam. Make sure that it does not go below the bottom frame!

In the same way as the cable chain mount, a bradawl and a hammer were used to make indentations at the center of the two holes. Cutting fluid was applied and a 4 mm drill was used to drill the holes, followed by a M5 drill tap. The support was then attached to the lower frame using 2x 20 mm M5 screws (S12).

assemble_cable_support_y_axis_6

assemble_cable_support_y_axis_6

assemble_cable_support_y_axis_7

assemble_cable_support_y_axis_8

assemble_cable_support_y_axis_9

assemble_cable_support_y_axis_10

assemble_cable_support_y_axis_11

The Y-axis cable chain (O09) was then attached to the left side plate (P20) and lower frame support using 4x 25 mm M4 screws (S10), 4x M4 nuts (N01) and 4x (10mm x 5mm x 1mm) washers (W01).

assemble_cable_support_y_axis_12

assemble_cable_support_y_axis_13

assemble_cable_support_y_axis_14

assemble_cable_support_y_axis_15

assemble_cable_support_y_axis_16

assemble_cable_support_y_axis_17

Z stepper motor, pulleys and belt

The non-geared NEMA17 stepper motor (E11) was attached to the Z-axis motor mount using 4x 8mm M3 screws (S08) and 4x M3 washers (W06). Make sure that the motor cable connector is pointing in the same direction as the opening of the X-axis cable chain.

1x 16 teeth GT2 timing pulley (O15) was then attached to the motor shaft and 1x 60 teeth GT2 timing pulley (O16) was attached to the acme rod. Both were locked in place using set screws. Make sure that they line up.

attach_z_stepper_pulleys_belt_1

attach_z_stepper_pulleys_belt_2

attach_z_stepper_pulleys_belt_3

attach_z_stepper_pulleys_belt_4

attach_z_stepper_pulleys_belt_5

attach_z_stepper_pulleys_belt_6

1x GT2 timing belt (O14) was looped around both timing pulleys and stretched. Before tightning the M3 screws and locking the motor into place, make sure that the belt is not too loose and not too tight.

attach_z_stepper_pulleys_belt_7

attach_z_stepper_pulleys_belt_8

attach_z_stepper_pulleys_belt_9

attach_z_stepper_pulleys_belt_10

Stepper motors and end-stops

Extend stepper motor wires

All 4 stepper motors (2x Y-axis, 1x X-axis and 1x Z-axis) get their power and movement instructions from the Arduino + CNC shield that in a later step will be attached in the small electronic box. Therefore, the stepper motor cables needed to be extended to reach through the cable chains all the way to the front of the machine, where the small electronic box will be located.

AWG22 cables (E08) of matching colors were used when increasing the length of the stepper motor cables. The same process was used for all the motors:

  1. The amount of wires needed to reach all the way to the electronic box was approximated and cut. Make sure to have an extra ~300 mm wire from the point where the wires exits the Y-axis cable chain, as this will be needed to reach the small electronic box.
  2. The ends of the original stepper wires and the extra AWG22 wires were stripped using a wire stripper.
  3. The colors of the original stepper wires and the extra AWG22 wires were matched up and the stripped ends of the wires were twisted around each other.
  4. The twisted wires where then locked in a steady position by a "third hand".
  5. Soldering grease was applied to the twisted wires and the wires were soldered together.
  6. 4 shrinking tubes (one per cable) were shrunk around the now soldered twisted wires, covering the soldering.
  7. A handful of larger shrinking tubes were shrunk around all 4 wires to keep them together.
  8. Finally, the wires were marked using tape and a penn, indicating which stepper motor the wires belonged to. This is important as it will help a lot later on, when the stepper motors are connected to the Arduino.

Y-axis 1

The extended wires of the first Y-axis stepper motor were cut at a length so that they reached through the lower front bridge beam (see red arrow on the next image) and through the Y-axis cable chain going to the front of the CNC machine.

solder_steppers_y_axis_1

solder_steppers_y_axis_2

solder_steppers_y_axis_3

solder_steppers_y_axis_4

solder_steppers_y_axis_5

solder_steppers_y_axis_6

solder_steppers_y_axis_7

solder_steppers_y_axis_8

solder_steppers_y_axis_9

solder_steppers_y_axis_10

solder_steppers_y_axis_10_1

Y-axis 2

The extended wires of the second Y-axis stepper motor were cut at a length so that they reached through the Y-axis cable chain going to the front of the CNC machine.

solder_steppers_y_axis_11

solder_steppers_y_axis_12

solder_steppers_y_axis_13

solder_steppers_y_axis_14

solder_steppers_y_axis_15

solder_steppers_y_axis_16

solder_steppers_y_axis_17

solder_steppers_y_axis_18

solder_steppers_y_axis_19

solder_steppers_y_axis_20

X-axis

I ran out of AWG22 wires when soldering the X-axis stepper motor cables, therefore you will see different type of cables in the upcoming images. Because of this, I had to insert the shrinking tubes before I soldered the cables. Please disregard this and follow the previous instructions.

The extended wire of the X-axis stepper motor were cut at a length so that they reached up and behind the Z-axis stepper motor, through the X-axis cable chain and through the Y-axis cable chain to the front of the CNC machine.

solder_steppers_x_axis_1.jpg

solder_steppers_x_axis_2.jpg

solder_steppers_x_axis_3.jpg

solder_steppers_x_axis_4.jpg

solder_steppers_x_axis_5.jpg

solder_steppers_x_axis_6.jpg

solder_steppers_x_axis_7.jpg

solder_steppers_x_axis_8.jpg

Z-axis

The non-geared NEMA17 motor used for the Z-axis had removable wires, in contrast to the 1:19 geared NEMA17 motors that had non-removable wires. The first step was therefore to connect the wires to the NEMA17 motor and cut of the connector on the other side using a scissor. Otherwise, the same procedure was followed as for the other motors.

The extended wires of the Z-axis stepper motor were cut at a length so that they reached through the X-axis cable chain and through the Y-axis cable chain to the front of the CNC machine.

solder_steppers_z_axis_1.jpg

solder_steppers_z_axis_2.jpg

solder_steppers_z_axis_3.jpg

solder_steppers_z_axis_4.jpg

solder_steppers_z_axis_5.jpg

solder_steppers_z_axis_6.jpg

solder_steppers_z_axis_7.jpg

solder_steppers_z_axis_8.jpg

solder_steppers_z_axis_9.jpg

solder_steppers_z_axis_9.jpg

End-stops and end-stop wires

End-stops are important, as they do not only enable you to home the CNC machine, but they also limit the CNC machine from moving past what is physically possible. When the end-stops are triggered, an alarm is fired and the machine automatically stops.

The wires used for end-stops were 0.75 mm^2 (E03).

X-axis (max)

A microswitch (E21) was attached to the thick X-axis (+) end-stop mount (P10) using 2x 12mm M3 screws (S02).

attach_endstoppers_x_axis_1

attach_endstoppers_x_axis_2

attach_endstoppers_x_axis_3

attach_endstoppers_x_axis_4

The end-stop mount was then pushed against the backside of the top bridge beam, which enabled the end-stop to trigger on the Z-axis stepper motor. The X-axis (carriage) was then moved to its maximum position and the end-stop mount was positioned in a way so that the end-stop triggered just before the X-axis reached its maximum position.

Please ignore the flexible conduit/hose in the next two images, it will be added in an upcoming step.

attach_endstoppers_x_axis_5

attach_endstoppers_x_axis_7

The end-stop mount was then clamped to the upper bridge beam and a small drill (-2 mm) was used to carefully make indentations at the center of the holes. The end-stop mount was then removed. Cutting fluid was applied and a 4 mm drill was used to drill the holes, followed by a M5 drill tap. The end-stop mount was then attached to the upper bridge beam using 2x 40 mm M5 screws (S13).

attach_endstoppers_x_axis_8

attach_endstoppers_x_axis_9

attach_endstoppers_x_axis_10

attach_endstoppers_x_axis_11

attach_endstoppers_x_axis_12

attach_endstoppers_x_axis_13

attach_endstoppers_x_axis_14

attach_endstoppers_x_axis_15

attach_endstoppers_x_axis_16

One black and one red 0.75 mm^2 wire (E03) were cut out at a length so that they reached from the X-axis max end-stop to the right side plate, through the top bridge beam and through the Y-axis cable chain to the front of the CNC machine. A handful of shrinking tubes (O24) were shrunk around the wires to keep them together.

attach_endstoppers_x_axis_17

attach_endstoppers_x_axis_18

attach_endstoppers_x_axis_19

One end of the wires were taped together and inserted through the upper bridge beam to the side plate on the other side.

attach_endstoppers_x_axis_20

attach_endstoppers_x_axis_21

attach_endstoppers_x_axis_22

A flexible conduit/hose (O13) was then cut out and the other side of the cables were inserted through the conduit. The flexible conduit was then inserted ~50 mm into the upper bridge beam and the other side was attached to the outside of the upper bridge beam using cable ties (O11).

attach_endstoppers_x_axis_23

attach_endstoppers_x_axis_24

attach_endstoppers_x_axis_25

The end of the wires were stripped and twisted. Two 2.8 mm spade connectors (E25) were then attached to the stripped wires using a plier. The red wire was then attached to C (Common terminal) pinout on the end-stop and the black cable was connected to the NO (Normally Open) pinout.

attach_endstoppers_x_axis_26

attach_endstoppers_x_axis_27

attach_endstoppers_x_axis_28

attach_endstoppers_x_axis_29

attach_endstoppers_x_axis_30

Finally, the open end of the wires were marked using tape (O23) and a penn, indicating which end-stop the cables belonged to. This is important as it will help a lot later on, when the end-stops are connected to the Arduino.

attach_endstoppers_x_axis_31

X-axis (min)

A microswitch (E21) was attached to the X-axis end-stop (-) mount (P08) using 2x 12mm M3 screws (S02).

attach_endstoppers_x_axis_32_0

attach_endstoppers_x_axis_32_1

attach_endstoppers_x_axis_32_2

One black and one red 0.75 mm^2 wire (E03) were cut out at a length so that they reached from the X-axis end-stop (-), around the left side plate, through the Y-axis cable chain to the front of the CNC machine. A handful of shrinking tubes (O24) were shrunk around the wires to keep them together.

attach_endstoppers_x_axis_32

attach_endstoppers_x_axis_33

attach_endstoppers_x_axis_34

The end of the wires were stripped and twisted. Two 2.8 mm spade connectors (E25) were then attached to the stripped wires using a plier. The red wire was then attached to C (Common terminal) pinout on the end-stop and the black cable was connected to the NO (Normally Open) pinout.

The wires were initially strapped around the lower front bridge beam (seen in the first two images), but as it turned out it blocked the belt tensioner. So they were instead strapped around the M8 tensioner screw, using a cable tie (O11).

attach_endstoppers_x_axis_36

attach_endstoppers_x_axis_37

attach_endstoppers_x_axis_38

Finally, the open end of the wires were marked using tape and a penn, indicating which end-stop the cables belonged to.

attach_endstoppers_x_axis_39

Y-axis (max)

The tall Y-axis end-stop (+) mount (P09) was clamped to the inner side of the upper frame and a sharpie was used to indicate the center of the holes. Note that this end-stop mount can probably be redesigned to gain an extra ~10 mm of Y-axis movement, something I will probably do in the future.

attach_endstoppers_y_axis_1

attach_endstoppers_y_axis_2

attach_endstoppers_y_axis_3

attach_endstoppers_y_axis_4

A bradawl and a hammer were then used to make indentations at the center of the holes. Cutting fluid was applied and a 4 mm drill was used to drill the holes, followed by a M5 drill tap. The end-stop mount was then attached to the inside of the upper frame using 2x 20 mm M5 screws (S12).

attach_endstoppers_y_axis_5

attach_endstoppers_y_axis_6

attach_endstoppers_y_axis_7

attach_endstoppers_y_axis_8

attach_endstoppers_y_axis_9

attach_endstoppers_y_axis_10

attach_endstoppers_y_axis_11

attach_endstoppers_y_axis_12

One black and one red 0.75 mm^2 wire (E03) were cut out at a length so that they reached from the Y-axis end-stop (+) and through the 900 mm aluminium profile of the upper frame to the front of the CNC machine.

attach_endstoppers_y_axis_13

attach_endstoppers_y_axis_14

attach_endstoppers_y_axis_15

A microswitch (E21) was attached to the tall Y-axis end-stop (+) mount using 2x 12mm M3 screws (S02).

attach_endstoppers_y_axis_17

attach_endstoppers_y_axis_18

attach_endstoppers_y_axis_19

A flexible conduit/hose (O13) was then cut out and the wires were inserted through the conduit. The flexible conduit was then inserted ~50 mm into the 900 mm aluminium profile of the upper frame. The other side was bent around and attached to the outside of the upper frame using cable ties (O11).

attach_endstoppers_y_axis_20

attach_endstoppers_y_axis_21

attach_endstoppers_y_axis_22

The end of the wires were stripped and twisted. Two 2.8 mm spade connectors (E25) were then attached to the stripped wires using a plier. The red wire was then attached to C (Common terminal) pinout on the end-stop and the black cable was connected to the NO (Normally Open) pinout.

attach_endstoppers_y_axis_23

attach_endstoppers_y_axis_24

Finally, the open end of the wires were marked using tape and a penn, indicating which end-stop the cables belonged to.

attach_endstoppers_y_axis_16

Y-axis (min)

A microswitch (E21) was attached to the Y-axis end-stop (-) mount (P08) using 2x 12mm M3 screws (S02).

attach_endstoppers_y_axis_25

attach_endstoppers_y_axis_26

attach_endstoppers_y_axis_27

One black and one red 0.75 mm^2 wire (E03) were cut out at a length so that they reached from the Y-axis end-stop (-) and to the front of the CNC machine.

The end of the wires were stripped and twisted. Two 2.8 mm spade connectors (E25) were then attached to the stripped wires using a plier. The red wire were then attached to C (Common terminal) pinout on the end-stop and the black cable was connected to the NO (Normally Open) pinout.

attach_endstoppers_y_axis_28

attach_endstoppers_y_axis_29

attach_endstoppers_y_axis_30

attach_endstoppers_y_axis_31

A flexible conduit/hose (O13) was cut out and the wires were inserted through the conduit. The flexible conduit was attached to the outside of the upper frame using cable ties (O11).

attach_endstoppers_y_axis_33

attach_endstoppers_y_axis_34

attach_endstoppers_y_axis_32

attach_endstoppers_y_axis_35

Finally, the open end of the wires were marked using tape and a penn, indicating which end-stop the cables belonged to.

Z-axis (max)

The main purpose of the Z-axis end-stop (+) is, apart from homing the machine, to limit the CNC machine from moving past what the length of the rails allow. As the MGN12H blocks contains a lot of small bearing balls, there's a high risk of them falling out if the blocks move past the rail.

To reduce the complexity and amount of wires, I chose not to include a Z-axis end-stop (-), as you are likely to mill straight through your waste board before there's a risk of moving past the Z-axis min limit. But if you want to add a Z-axis min end-stop, just repeat the process in this section with the new switch flipped around.

First, the vertical carriage slider was moved upwards to its maximum point, where the MGN12H blocks are just about to move past the limit of the rails. The Z-axis end-stop trigger (P39) was then pressed against the outside of the vertical carriage slider and a sharpie was used to mark the center of the holes.

attach_endstoppers_z_axis_1

attach_endstoppers_z_axis_2

attach_endstoppers_z_axis_3

A 2.5 mm drill was used to drill the holes into the vertical carriage slider. A tip is to mark the drill depth needed using tape. The Z-axis end-stop trigger was then attached to the vertical carriage slider using 2x 12 mm M3 screws (S02).

attach_endstoppers_z_axis_4

attach_endstoppers_z_axis_5

attach_endstoppers_z_axis_6

attach_endstoppers_z_axis_7

A microswitch (E21) was pressed against the carriage and positioned and aligned to be triggered by the maximum state of the Z-axis end-stop trigger.

attach_endstoppers_z_axis_8

attach_endstoppers_z_axis_9

A 2.5 mm drill was used to drill the first hole into the carriage and the microswitch was attached to the carriage using 1x 12 mm M3 screw (S02). After the microswitch was locked into position, the second hole was drilled and the second 12 mm M3 screw (S02) was attached.

attach_endstoppers_z_axis_10

attach_endstoppers_z_axis_11

attach_endstoppers_z_axis_12

One black and one red 0.75 mm^2 wire (E03) were cut at a length so that they reached over the top bridge beam, through the X-axis cable chain and through the Y-axis cable chain to the front of the CNC machine. A handful of shrinking tubes (O24) were shrunk around the wires to keep them together.

attach_endstoppers_z_axis_13

attach_endstoppers_z_axis_14

attach_endstoppers_z_axis_15

The end of the wires were stripped and twisted. Two 2.8 mm spade connectors (E25) were then attached to the stripped wires using a plier. The red wire was then attached to C (Common terminal) pinout on the end-stop and the black wire was connected to the NO (Normally Open) pinout.

attach_endstoppers_z_axis_16

attach_endstoppers_z_axis_17

attach_endstoppers_z_axis_18

The wires were strapped around the M8 screw keeping the Z motor mount attached to the carriage, using a cable tie (O11).

Finally, the open end of the wires were marked using tape and a penn, indicating which end-stop the cables belonged to.

attach_endstoppers_z_axis_19

attach_endstoppers_z_axis_20

Stepper motor and end-stop cable management

To keep a nice structure of all the wires, braided cable sleeves (O08) and flexible conduits/hoses (O13) were used.

Y-axis steppers and X-axis end-stops

First, the wires from the right-side Y-axis stepper motor were inserted into a small flexible conduit and pushed through the lower bridge beam closest to the carriage.

stepper_motor_cable_management_1

stepper_motor_cable_management_3

stepper_motor_cable_management_4

The wires from the two geared Y-axis stepper motors and the two X-axis end-stops were bundled together into the same cable sleeve.

stepper_motor_cable_management_6

stepper_motor_cable_management_6_1

stepper_motor_cable_management_6_2

stepper_motor_cable_management_5

stepper_motor_cable_management_6_3

To simplify pushing the wires and the cable sleeve through the cable chain, the wires were taped together, leaving no loose ends to get stuck in the cable chain. This was needed as the wires were longer than the cable sleeve (to reach all the way to the small electronic box in the front of the CNC machine).

A cable tie (O11) was used to close the entrence of the cable sleeve.

stepper_motor_cable_management_6_4

stepper_motor_cable_management_6_5

stepper_motor_cable_management_6_6

X-axis stepper, Z-axis stepper and Z-axis end-stop

First, the wires from the X-axis stepper motor were inserted into a flexible conduit (O13). The conduit was then bent over the upper bridge beam, strapped to the vaccum mount and Z motor mount, and then pushed behind the Z-axis stepper motor.

stepper_motor_cable_management_9

stepper_motor_cable_management_10

stepper_motor_cable_management_11

stepper_motor_cable_management_12

The wires from the X-axis stepper, Z-axis stepper and the Z-axis end-stop were bundled together into the same cable sleeve. The cable sleeve was cut at a length so that it reached through the X-axis cable chain, around the left side-plate and through the Y-axis cable chain.

To simplify pushing the wires through the cable chains, the wires were taped together, leaving no loose ends to get stuck in the cable chains. This was needed as the wires were longer than the cable sleeve (to reach all the way to the small electronic box in the front of the CNC machine).

A cable tie (O11) was used to close the entrence of the cable sock.

stepper_motor_cable_management_13

stepper_motor_cable_management_13_1

stepper_motor_cable_management_13_2

stepper_motor_cable_management_13_3

stepper_motor_cable_management_13_4

stepper_motor_cable_management_13_5

stepper_motor_cable_management_13_6

stepper_motor_cable_management_13_7

stepper_motor_cable_management_13_8

A cable tie (O11) was used to strap the cable sleeve to the left side-plate.

stepper_motor_cable_management_13_9

Router

Attach router to carriage

A Makita RT0700CJ (E20) trimming router was used as I was not able to get my hands on the Makita RT0700C that Ivan is using. To my knowledge, the RT0700CJ is just an upgraded European version of the RT0700C, with the same dimensions.

The trimming router was locked in place by using the router bracket (P24), 4x 40mm M5 screws (S13), 4x M5 nuts (N02) and 4x (10mm x 5mm x 1mm) washers (W01).

attach_router_to_carriage_1

attach_router_to_carriage_2

attach_router_to_carriage_3

attach_router_to_carriage_4

attach_router_to_carriage_6

attach_router_to_carriage_7

Router cable management

more like this

FyWorld

FyWorld - Base-Building / Simulation Game & Tutorial in Unity

C#331

purecutcnc

PureCutCNC is a 2.5D CAD / CAM workspace for designing parts, defining machining operations, previewing toolpaths, and…

TypeScript52

search

search projects, people, and tags