Homebrew Cnc Machine (for Cutting/engraving)

kd8wdave

H-M Supporter - Gold Member
H-M Supporter Gold Member
Joined
Mar 5, 2013
Messages
21
Hi all, Have not posted much. Usually don't as others do a better job than I in most cases.
I have built from scratch a CNC simple machine. Here's what it looked like with the 'old dremel tool' I've had for 50 years as its spindle drive. Further down you can see the new spindle mounted.
CNC-Overview.jpg
The 'frame' is 1" black-iron pipe. The X & Z axis are my creations, and the Y-axis is a commercial guide given to me by a neighbor. My X & Z axis are 20 TPI 1/4-20 thread rod. Not the best threadrod, just what you can get from any hardware store. The Y axis is 4.25 TPI commercial guide with ball-bearings. The basic configuration is a Desktop(via USB port) downloads the 'g-code' file to the ARDUINO-UNO control module mounted on the vertical board on the rear of the CNC frame.
The "Z-axis" stepper controller & Dual H bridge driver are shown below.
The Arduino generates STEP/DIRECTION commands to each axis based on the 'g-code' passed. These commands are passed to three 'controllers' which I made. These controllers take the step/direction commands and converts them into a parallel string (4 bits wide) in a timing pattern that goes to the dual-H-bridge drivers , which in turns sends the pulses to actually drive the stepper motors. The 'Grbl' software handles the acceleration/deceleration functions, based on all of its 'tuning' parameters. [I only use the FULL-STEP mode as the stepper mode, because it gives the maximum torque!] My steppers are 1.8 deg/step or 200 step/rev, and the axes are 20 TPI and 4.25 TPI. The controllers use a PIC16F628(A) microprocessor as the control interface and the PIC software is written in assembler. I had some issues with electrical noise using my old dremel tool, but have been able to eliminate the noise issues with primarily software in the PIC's. All three PIC-boards are identical so far, so only one program to maintain for these.
I have the new spindle mounted and I really like the way it works. The design allows me to change spindle heads if I need to (aka a bigger one later!).
I am a retired(72 yr old) guy who used to work in process-control and networking in a steel mill. Now I spend time on my lathe, this machine and 'amateur radio' such as the wife puts up with me.

cheers

Was not sure where to put this, so just added to end of this one.
Here are a couple of pics showing the new spindle motor mounted on my machine.
Found out I can drive this as an AC or DC . Now I'm using a simple 'household' triac wall switch to control the speed. I have not yet put in a switch for the Arduino to turn it off/on, because my 'Grbl software' doesn't provide variable speed, but does provide ON/OFF only.
Just been lazy getting the ON/OFf working.

Spindle 002.jpg
NewCtrlPanekl.jpgINewCtrlPanekl.jpg

Finally got back to this project again. I decided I did not like the 'github grbl' software I had been running under windows. I now have the
machine running (under test) using an Optiplex-745 mach loaded with 'Lubuntu-linux', a USB port from the linux mach to the Arduino, UNO
and the new control panel using new homebrew-PIC control boards, that in turn control the L298 stepper boards. I have the step control
now setup so they don't overheat, and it all seems to work pretty well. I wrote the Arduino code and it is pretty well done, and now testing
the Python application program on the Optiplex as the machine gcode control to the the Arduino.
I am 77 years old, and I am still having fun!!
CNC-Overview.jpgSpindle 002.jpgNewCtrlPanekl.jpg

kd8wdave
 
Last edited:
This is absolutely outstanding and I love it! Well done!

I'm building my own as well, but I'm spending the extra to get professionally made and programmed stepper drivers. I know that when I complete this project, there will be a LOT of trouble shooting, especially with the software, and I wanted my drivers to work, work well and work right out of the box.

Software is the hardest part for me and I heartily commend you on doing a lot of it yourself. Personally, building code from scratch for a project with this many other variables is beyond me.

Once again, congratulations on a job well done!
 
This is absolutely outstanding and I love it! Well done!

I'm building my own as well, but I'm spending the extra to get professionally made and programmed stepper drivers. I know that when I complete this project, there will be a LOT of trouble shooting, especially with the software, and I wanted my drivers to work, work well and work right out of the box.

Software is the hardest part for me and I heartily commend you on doing a lot of it yourself. Personally, building code from scratch for a project with this many other variables is beyond me.

Once again, congratulations on a job well done!

Appreciate the compliment, Thanks
 
This is absolutely outstanding and I love it! Well done!

I'm building my own as well, but I'm spending the extra to get professionally made and programmed stepper drivers. I know that when I complete this project, there will be a LOT of trouble shooting, especially with the software, and I wanted my drivers to work, work well and work right out of the box.

Software is the hardest part for me and I heartily commend you on doing a lot of it yourself. Personally, building code from scratch for a project with this many other variables is beyond me.

Once again, congratulations on a job well done!

Sorry , didn't answer this sooner. I have been using the same home-made stepper controllers for five years now. The LN298 controllers are
still operating. I put a current limit on the surge that occurs when the step pulses are engaged. My actual intent is to be able to use the
Python interpreter as the PC controller over a USB port to the Arduino. One goal was to move the G02/G03 gcode commands over to the
python program, and eliminate that logice from the Arduino. It cut the size of the code in the arduino down to about 34% of the arduino's
capacity. I have the program where it will now do the G01 style rectangular coordinates okay, and am just decoding my syntac errors on the
arc G02/G03 commands. Been a fun project to work on, and the unit is working just fine. I was going to build a bigger one, but now other
issues within family circles is probably going to put a limit to that activity. I'm into other hobbies as well, so this is my winter project!.

Cheers
 
Wow, how time flies. I finally got back to this machine to do a little TLC. My old Optiplex machine crashed finally , so one
goal was to go with all laptops. Now I have two Win11 machines. One is my regular 'hamradio' station. I ported the Python
software over to it, and have been redoing the code on Python, Arduino, and the PIC16F628A, to do a little better job of
software-filtering for noise generated spikes (according to my scope) to protect the stepping pulses to the motors. This
effort keeps my now 80yr old brain functioning. The machine is still the same. For the last few years, I have used this system
to make nameplates for friends and family, but I spend a lot of time on radio activities.
 
That is an awesome build with basic parts kd8wdave. Way to go.
 
Back
Top