How to Build a CNC Mini MIll

 Here's a quick rundown of how I constructed my desktop CNC; I won't be able to offer a step-by-step instruction because this project has a lot of little details and some dubious design decisions. As a result, this post is aimed to inspire others who are considering a similar construction.


It's a compact three-axis CNC router driven by GRBL that can mill wood (plywood, MDF, and other materials), plastics (PE, HDPE, and acrylic), and aluminium with reasonable precision and speed.


This machine employs a 400w BLDC spindle motor with its own inverter - a relatively affordable and easy-to-find option that is a popular choice among enthusiasts. However, it requires a 40V/10A industrial power source. Something similar, but without the mounting bracket and power supply that came with the motor.

Don't forget to purchase tooling and collets as well.

The axes of the machine are driven by NEMA 17 40Ncm torque motors, which function OK, although more torque is ideal. These are ACME trapezoidal leadscrews, according to what I found online.

The Z axis is also supported by linear bearings, which are similar to those used in 3D printers. (SC8UU) (SC8UU) (SC8UU) (

In addition, the stepper motors have their own power source. An industrial power supply with a 12V/10A output.

That's all there is to it, at least in terms of the mechanical build...

I used a variety of tools to build this CNC, so I'm not going to mention them all. If you don't have the tools, you'll have to find something out. This building features a number of 3D printed pieces, which were manufactured on an Anet A8 printer with ABS plastics. I prefer ABS over PLA for these purposes since it is less brittle.

The frame is made up of mild steel box pieces that are soldered together.


There are a few distinct types of steel profiles that are used:


The X axis is 40x40 and the Y axis is 20x20.


The vertical supports of the X axis are 40x80.


The Y carriage and the 'legs' are 50x30.


Support for the primary Y axis is 50x50.


The roller mounts are made of 25x25x3 L profile steel.


Aluminium L profile 25x25x2.5 for the'sliders'


These were drilled, tapped, soldered, and painted after being trimmed to length.


Some of the box parts were filled with sand and gravel before welding them shut; this decreases vibration sounds while also making the foundation heavier and more difficult to move.


The machine's frame is built in such a way that there is room for a detachable baking pan at the bottom - it's supposed to catch chips, and it sort of works... but the shavings still get everywhere.


Obviously, appropriate linear sliders should be used in this type of equipment, but such are expensive...


As a result, I decided to construct my own linear-slider system. The ball bearings (608'skateboard' bearings) spin on the aluminium L brackets on both sides when the carriage moves along the X and Y axes. This can carry quite large weights, but it must be constructed with extreme precision, which takes a long time and is particularly difficult in this instance because welding is involved.


The components were screwed together, then test fitted onto the axis before welding. They were then tack welded, test fitted again, then welded again. Bolts and washers can be used to regulate the tension between the bearings and the rolling surface.


The Z axis carriage is built of box section steel with inner dimensions greater than the spindle motor diameter, allowing the motor to be housed inside the metal portion and secured by 3D printed shims (wedges) affixed to the box steel. As long as the shims and housing have a tight tolerance, this works perfectly.


The carriage is supported by 3D printed components and travels on 8mm steel shafts.


The mounting brackets for the engine are constructed of the same steel as the frame.


The shaft couplers are 3D printed pieces connected by a rubber block. This demonstrates 3D printing's capacity to produce functioning components quickly and inexpensively!


Because all of the holes were hand drilled and will not line up properly, the connection must be slightly flexible.


This is adequate, but actual flexible couplers would be preferable.

The controller is running GRBL firmware, which is a tiny CNC machine firmware that is simple to use and opensource:


https://github.com/grbl/grbl


The machine is controlled by an Arduino Nano running GRBL, which receives Gcode instructions over USB and uses A4988 stepper motor drivers to operate each NEMA 17 stepper. A 12V/10A power source provides power to the A4988 boards.


I wouldn't advocate using an Arduino Nano because the latest GRBL firmware doesn't support it, and this inexpensive CNC shield for the Nano has several design flaws: Because one side of the jumper header is connected to GND instead of 5V, stepper micro stepping cannot be activated; the power connector is prone to oxidation and can lose connection due to vibrations. These flaws were fixed using a soldering iron, and it now functions properly.


Overall, it's functional, however an Arduino UNO with its own CNC shield would be a better choice.


Because the circuit is simple enough, I decided to make my own CNC shield, which works OK but isn't particularly attractive...


Electrical noise was a major concern for me. For the time being, I took careful to ground all power supplies and the machine's structure, as well as utilise a properly grounded mains socket.


Soon, I'm going to construct my own good PCB shield!


Gcode commands from a computer are required to move the machine.


Gcode can be manually authored or created by software. Fusion 360 is my go-to tool for creating Gcode since it's simple to use and packed with capabilities. However, there are open-source alternatives like as Freecad, which is continually developing.


I'm a newbie machinist who usually works with 2.5D pieces, so any programme would suffice.


The Gcode will then be postprocessed. This step is optional; depending on the machine, there are postprocessors available for GRBL machines. I made my own python programme that runs on this system.


Finally, the Gcode lines must be transferred to the CNC control board via USB. There are programmes that can help you achieve this, such as Universal Gcode Sender. However, a simple python script can accomplish the job, therefore I developed my own python sender script.

Comments

Popular posts from this blog

Why Buy A CNC Router?

Timber Ridge Designs