- Beginning
- Design
- Parts
- The Framework
- The X Axis
- The Y Axis
- The Z Axis
- Control System
- End Stops
- Testing
Beginning
I’ve always wanted to make a CNC machine, knowing that it basically moves objects in 3 axes in a straight line, with some magic of software. I bought a pair of linear rails from Aliexpress in 2017 along with a stepper motor and a screw rod, to try this out. I made a single axis, and got it moving up and down with a stepper driver circuit. At this point I knew my next step would be to repeat this on two more axes.

2024 – The new design
Fast Forward to 2024, after this axis had gathered enough dust, I decided to go for the other two axes, and actually design a proper CNC machine, not really knowing what it would be used for, but at least to get the general concept working. So this is what I came up with. I had to draw each component from the data sheets, and use these drawings to design the scale model of the machine. I used Corel Draw, because I’m not yet too versatile in Blender 3D, which I recently installed.

Parts
I already had three stepper motors, two NEMA 17 and one NEMA 23 that I had bought in the past. As well as a bunch of random steppers I salvaged from a condemned laser printer.

I like the quality and price of these parts. This is the 12mm linear shaft support. It’s quite handy when laying out the shafts and bearings. I also got the 12mm linear shaft 500mm chrome plated linear motion guide rails because I wanted to be sure of the quality of the gliding. They aren’t so cheap, and I could save costs by salvaging these from old printers. However, finding the desired length and diameter would be a bit tricky.
The Main Framework

For this prototype, I decided to work with to materials I knew I could precisely manipulate – MDF and Acrylic. Not the strongest wood available, MDF is easy to cut using a router but firm enough to get me off the ground. For the tougher parts, I opted for acrylic, which comes in thickness up to 10mm. I did the layout of all the sides I would need in CorelDraw, and took the boards to ‘UTC’ for them to cut them using the CNC routers and laser cutters there.
The MDF cuts were the first ones I collected, and they looked nice.

I particularly liked the idea that they could engrave to a specified depth, some holes I needed for securing nuts that would hold some of the moving parts on the MDF.
Assembling the framework was quite straight forward, using nuts and bolts to couple the sides and the rails together. Having made provisions for the holes from the design, I didn’t have to do any drilling. The nuts and bolts were readily available from a local hardware store we refer to as ‘Lagos street’ from the street it’s on. They have an interesting assortment of nuts, bolts and screws. It’s important to know the sizes of nuts and bolts for each of the holes, and I got most of these from data sheets.

The X Axis
This is the most straight forward of the axes, and is basically a reproduction of the single axis I’d made before. however chose to use the more powerful NEMA 23 stepper motor on this one because it was going to move the Y and Z axes up and down.
I decided to put it’s T8 Lead Screw under the board. I mounted the stepper motor on the outside. The guide rails are mounted on the right and left sides.

The Y Axis

The Y axis is the one that acts like a moving bridge across the board. I had to think about the fact that it would also carry the Z axis while moving about.
I made provision for the NEMA 17 Motor to be mounted on the inside of this axis, but later realized that it was a bit of a mistake, as the motor took away from the total active board area.
I used 8 bolts on either side to firmly hold this onto the side rail blocks.
The T8 Lead Screw came in very handy at this level. There is minimal room for error. I also got the Bearing Shaft Pillow Block Housing to support the Lead screw.
To hold the Z axis, I had to make a base plate from 10mm acrylic. These were bolted onto the Linear Ball Bearing Aluminum Slide Blocks. It turned out quite fine.


The Z Axis
I’d bought a pre assembled Z axis, that came with a NEMA 17 Stepper. It has a 100mm stroke length. I bolted this onto the acrylic plates on the Y Axis.



The Control System
I chose to control these motors using an Arduino, with a CNC shield mounted on top. I’d already got these components over time, as well as the 4 stepper drivers, of which I would use just three, one for each axis.
They have little heatsinks, but I chose to add a small cooling fan to make sure they stay cool.


Power came from a 200w power unit which I stripped from its case and mounted in my ‘control box’

I made the control box cover from laser cut acrylic, with the control labels engraved in place.
The End Stops
I decided to put in end stops to make it possible to home the device each time it is started. I chose to use cheap switches which were readily available in Microscale and Hub 360, both in a plaza 5 mins away.
They were a bit tricky to install, as I had to resort to 4 min glue, and some custom made acrylic brackets to hold them in place.



Testing the unit
Pen mount
I decided to test the unit using a pen plotter. so I got some old pens and tinkered till I ended up with a spring loaded plotting pen.



The Software

I looked for a graphics program that could Generate G code from graphics. This was how I found Inkscape. I found that I could copy CorelDraw graphics directly. I also used GCode Sender to send the G code to the Arduino via USB.
The Results
The plotter worked quite well, though a bit slow. I plan to calibrate it at higher speeds till I find the speeds that work without missing steps.
In the mean time, I’ve got a mini router motor and a set of router bits. I plan to replace the pen with a router to be used for engraving and light cutting.


Added a cable chain to tidy up the wires.
