Introduction: Multifunctional Hobby CNC Machine

About 5 years ago, I made a plotter for making drawings in quite big size. It was a 2 and half axis CNC machine, because the pen had only up or down position. It turned out soon, that it is one of the painful disadvantages of the machine. The other was that I moved the whole table with the paper in the X direction, so it required large room during operation.

I decided to rebuild the whole thing to have real Z axis, fix table and ability to move others than a pen. After a long planning and printing time of components I made a second version. It was already a real 3 axis machine. Its disadvantage was that the mechanical construction was not able to hold properly a spindle motor, so it bent down in the middle. Furthermore the flying particles contaminated the threaded rod of the X axis. Furthermore the mechanical and the electrical parts limited the size of longer materials. Furthermore I ran out of other ideas in my mind so I designed and build this machine I show now.

Step 1: Frame and Housing

I used 15mm beech plywood for the main elements. For fix wood joints I glued them together, sometimes I made the joint more stable with screws too.

For metal/plastic connections I used wood screws for smaller parts. The bigger parts are fixed with metric screws and wood insert nuts.

The drilling of holes for screws must be very accurate otherwise they will not fit the bearings and they will not run smoothly.

For fixing material on the table, I put M6 T-nuts in a matrix. On the other side I use wing screws and if they are too long, then wing nuts too. A too deeply driven screw would make crash under the table


Step 2: Movement

All the 3 axis slides with SBR12UU bearing blocks on SBR12 linear rails. This type of linear rails help to keep the rails rigid and straight, furthermore it is easy to fix them to plywood elements. The X axis is 700mm, so I doubled the plywood behind to enforce it.

8mm threaded rods and nuts move the axises. The threaded rods are fixed with KP08 (Z,Y) and KFL08 bearings (X).

I used nema23 steppers, 4.2A version for the X and Y axises, and 2 pcs 3A for the Z. The connection between the motors and the threaded rods are made with 20T GT2 pulleys and 9mm belts.

Under the KFL08 I made plastic elements to solve the belt tensioning, otherwise the motors also can be slided slightly for the same purpose.

Step 3: Endstops

I made optical endstops with ITR 20005 opto interrupters, and a circuit for their handling and logic. One circuit handles 2 channel (2 pairs) of interrupters, so I made 2 circuits for the 3 axeses (1 channel is not used). It could be made on one PCB but I wanted to keep them close to the optos.

The plastic Z form elements cut the light in the opto interrupters.

Step 4: Buttons and Connections

I ordered fancy push buttons and rotational switch from Aliexpress. The buttons are ok, but you should avoid the switch, it is a poor quality, doesn't have stable contact. The switch is to choose plotter/laser/mill mode, it could have been on the controller's house too. The push buttons are for stop/pause/resume functions. The laser mode has to be switched on by $32=1 and off by $32=0 terminal commands. It would be more convenient somehow avoid this and keep the switch only.

On the other side, there are 2pcs 9pin connectors for steppers, 1pcs GX16 3pin connector for splindle motor, 1pcs 25pin D-Sub connector for the rest.

On the gantry I placed 1pcs 7pin GX16 for the laser and the spindle and a 6.3mm jack socket for the probe.

Step 5: Gantry

I wanted an universal surface to mount either the pen holder, or the laser, or the stepper motor. I made a matrix of M6 nuts on the plywood plate to mount the different equipment.

To assure the proper push force for the pencil, I created a socket with a spring and adjustable angle.

Step 6: Wireing

The cables inside are plain UTP and alarm cables with shield. For the spindle I used shielded industrial flexible cables.The shielding is important because of long cables and the noise coming from the motors and the spindle and their cables. The printed cable guides are to protect the against jamming and early break. The other cable channels are from the local electric shop, I printed only the corners and ends.

Step 7: Controller

The controller is based on the Arduino grbl. I have put everything into an old HP PC house.

The PC power supply is started with closing the green and black cable. Originaly the PC house had a pushbutton to start, but I replaced it to an on/off switch in the same size.

The PC power supply doesn't supply 24V so there is an additional 24V power supply inside. I placed a 12V relay and a socket inside the PC PS for the 24V power supply, so it starts when I start the PC PS.

The X stepper is driven by a DM556 stepper driver, the X and the Z steppers are driven by TB6600 stepper driver. They are operating at 3.2A / 800pulse/revolution mode.

The Arduino grbl provides a TTL output for the stepper, but my controller needs 0-10V input so a converter module is needed.

I put a 6 channel optocoupler to filter out the noise of 3 endstops and the 3 push buttons.

The relay board is for the function switch, in laser mode switches the laser driver on, in milling mode it switches the spindle power supply on.

Step 8: Future Plans

I will make the gantry's plate wider to gain room for a fixture of vacuum and ventillation. The vacuum can be solved manually, but the smoke of laser needs a continuous ventillation.

The max speed is about 1500mm/min in X, 1200mm in Y, and 2000mm in Z direction now, but with a little play with the stepper driver and $$ parameters can lead to a bit faster movements.

The ratio of the GT2 pulleys is 1:1 now, 3:1 ratio would lead to higher speed but less force.

I have ordered an USB cable socket to the back panel of controller's housing, but it is still not arrived. With that I can close the housing.

CNC Contest

Participated in the
CNC Contest