Hobbyist CNC

For the enthused hobbyist, it seems CAD, CAM, and CNC continues along the path of the rest of web application subscriptions and that is, it is relatively expensive.

Hobbyist Someone who is involved with and does constructive activities for pleasure not related to working or generating income. This can include automotive, collecting, gardening, ham radio, machining, sewing, woodworking, etc.

Wikipedia: In the 16th century, the term "hobby" had the meaning of "small horse and pony". The term "hobby horse" was documented in a 1557 payment confirmation for a "Hobbyhorse." This item, originally called a "Tourney Horse", was made of a wooden or basketwork frame with an artificial tail and head. It was designed as a child's toy to mimic riding a real horse. By 1816 the derivative, "hobby", was introduced into the vocabulary of a number of English people. Over the course of subsequent centuries, the term came to be associated with recreation and leisure. In the 17th century, the term was used in a pejorative sense by suggesting that a hobby was a childish pursuit. However, in the 18th century with more industrialization and more leisure time, hobbies took on greater respectability. A hobby, also called a pastime, was derived from the use of hobbies to pass the time. A hobby was said to become an activity that was practiced regularly and usually with some worthwhile purpose. Hobbies are usually, but not always, practiced primarily for interest and enjoyment, rather than financial reward.

Some might say it is a special interest that is a highly focused obsession held by autistic individuals. It is a form of hobby that is commonly associated with neurodivergent people. Neurotypical people also develop special interests in the form of hobbies.

Prior to the mid-19th century, hobbies were generally considered childish or trivial with negative implications. Today it is seen by many people as something the unusual person aspires to. Most Americans have their work and home responsibilities, and wish to be entertained the rest of their free time.

It is for this reason I really don't like the word hobby. It smacks of negative connotations. I prefer the word avocation.

Avocation An activity taken up in addition to one's regular work or profession, usually for enjoyment; a hobby.

I am presuming people have chosen work they enjoy and look forward doing. After all, a person's vocation is necessary to sustain one's livelihood. Why not endeavor to do something that is enjoyable and fulfilling.

I use the word "hobby" here because it is a term most will recognize.

Before retirement, my vocation (career) as a programmer was rewarding as well as gratifying. My avocations (hobbies) were and still are many and varied, usually involving engineering including electronics. These activities sometimes include manual machining with no automation. But with all the hype about 3D printing, CNC carving and milling, I decided it was high-time I stop cutting amateurish holes in electronic projects. So, I set about looking into building or modifying a mini-mill. What I found was, the hardware is relatively inexpensive. However, the design and controlling software is very expensive and difficult to use.

CNC Engraver

So now, my question is: are hobbyists willing to pay monthly premiums for the software? For most, their hobby is something they do part time for pleasure. It's usually not something they do for a living; hence it usually doesn't require an extraordinary amount of money.

But it seems CNC technology necessitates a certain commitment of money in the way of monthly fees for software. The equipment can be a onetime purchase and the owner has it for a long time. However, the line between hobbyist and professional is quite skewed when it comes to software with only one or two rudimentary systems freely available to the occasional user. The rest are rather costly.

As for me not wanting to pay monthly fees, I think I may have to take on a whole new learning experience in my 74-year life. This is G-Code, a programming script language that drive CNC capable devices.

LibreCAD Image

First Definitions:

CAD Computer Aided Design Design product, Setup tool paths.
CAM Computer Aided Manufacturing Verify and further setup tool changes, etc., Generate G-Code.
CNC Computer Numeric Control The Machines that use the generated G-Code.

CNC is a methodology of manufacturing where machines cut, carve and form parts based on a set of G-Code instructions that control the tool's position and movement.

1949 First British Numerically Controlled Mill

NC or numeric Control has been around for, well since the late 1940s. For a long time, this method of controlling equipment was exceedingly expensive and was only within the reach of major manufacturers. It has only been in the last 20 or so years when CNC methodologies became affordable enough such that smaller companies could afford to automate their processes. As for the hobbyist, this technology was still quite expensive, say around $20,000 for software and controller hardware. This did not include the machine itself. But then the hobby sector and the Chinese got into the act, and the hardware got really cheap.

My first exposure to this technology was to mess around with stepper motor controls. This occurred a year or so after the first Arduino Uno micro controller was released in 2012. I had watched a number of YouTube videos on controlling stepper motors and I was hooked. Back then stepper motors from China cost about $15. I used a hacked-together 2 phase pulse generator and a stereo amplifier to drive the stepper motor. All be it, the motor sort-of turned, but never-the-less it did turn. I Then purchased a small stepper motor driver which I used a cheap $10 Chinese pulse generator to drive it. I found I could vary the speed of the motor. It was from here where I discovered I could use an Arduino to control the stepper's speed and direction.

Vacuum Variable Capacitor Stepper Driver with Max Range Limit Switches

I have subsequently used this methodology for a variety of projects including an automated ham radio antenna tuner. More recently I've had a desire for some kind of device that would neatly cut sophisticated holes in project boxes. I made an attempt at designing an X-Y router using a Dremel tool and two stepper motors. But then, I happened upon the following.

Tiny CNC Mill

Genmitsu 3018-PROVer CNC Router $319 (for the money, the best)

In looking on the web, reading a variety of reviews, and viewing a number of YouTube videos, I decided on the above. With a coupon, I got this little machine for less than $200. After the UPS guy delivered it, I thought I was in CNC heaven. It was beautifully packaged. I set about carefully assembling and calibrating the machine. I then ran on the included Candle CNC software a G-Code program that engraved a flower onto a piece of wood.

This CNC controlled tiny mill is basically driven by 3 stepper motors (X, Y, and Z). The micro-processor electronics on the back, controls three Cartesian coordinates, X table left and right, Y table forward and backward, and Z drill/milling motor up and down. A fourth parameter is the rotational speed of the milling motor itself.

It was wonderful. I sat there watching a machine make something beautiful. But then, troubles began. The machine suddenly became useless. By that I mean, I found this methodology of computer aided manufacturing to be fraught with considerable expense and very difficult to use software.

I think most people reading this who did blindly purchased one of these machines understands the eye-opening hell I went through. It's all about the available software and the steep learning curve. Various YouTube videos made the process of generating CNC G-Code seen easy. But the reality is a very different story.

I have been watching abomb79's YouTube channel waiting for further videos on using CAD to generate the necessary programs for the CNC machines he has in his new shop. It's been over a year and he still hasn't really had any actual instructional videos. I think it's because the two platforms of CAD-CAM and manual machining are two very different methodologies. It seems Adam went through what it is I am now going through. There's a steep learning curve in using this methodology.

The only way out for me to do CAD-CAM might be to manually hand-write G-Code scripts.

My career has been as a computer programmer. During the span of my 39-year career, I programmed in a large number of languages such as a bunch of assemblers, Basic, C, Pascal, COBOL, Fortran, Java, JSP, EDL, SQL, the Microsoft visual language systems including ASP.NET, C#, MVC, VB, etc. Now I am taking on a new language. This is a programming language called G-Code, a set of instructions that drives CNC capable devices.

Let me explain. Significant issues lie with the highly proprietary software. Inexpensive hobbyist hardware is now available. But there really aren't any easy to use free or inexpensive software packages available. Everyone says Easel is free and easy to use and, they are kind of right. The problem is, the free version has a time limit and then becomes stripped down such that if the user wants to do something slightly out of the ordinary, they are screwed unless they subscribe to the pro-version for $25 a month or $600 for three years? It must be noted that Easel is a cloud-based software system requiring an internet connection to use. No standalone support.

These are the problems I'm having now.

There are a few CAD packages available such as FreeCAD and LibreCAD. The problem is, FreeCAD, being quite a robust tool, is very difficult to use. It was designed for manufacturing three dimensional objects. All I want to do is cut accurately placed holes in a project box. LibreCAD is said to be more down to earth, but it is still a bit difficult to use.

Monthly Subscription Fees New Way of Life

My Woodshop

I have a number of manual machines in my shop. I don't pay any monthly fees to be able to have the freedom to make anything I want. I'm not a company, so therefore, I cannot afford to become umbilically attached to a proprietary software provider.

As for me learning G-Code, in my programming career, I did and do still use what is called an Interactive Development Environment (IDE) to develop and debug software. Regardless of whether I program for Apple IOS, Android, Arduino, Linux, Microsoft, Raspberry Pi, etc., all of these development environments and compilers are free to use. However, there are no real free G-Code IDEs available except through the various paid CAD-CAM software systems.

What I'm talking about is, there are no real ways of designing and simulating how something will be done except using hideously expensive packages. Also, there's the problem of obsolescent here today, gone tomorrow software systems.

With my shop tools as well as my programming systems, nothing grows obsolete such that I can no longer use it. All these CNC systems are highly proprietary such that they could conceivably just go away. Then what. The hobbyist can no longer use the piece of equipment or recall that project's G-Code. Everything is in the cloud. With my shop, there are no monthly fees. Everything is tangible. I purchase a tool once and I have it for life.

In the digital world, everything requires monthly charges. The whole internet now has this persona of being fee based. Then if one desires to purchase rather than rent, the cost is exceedingly exorbitant that is if the provider even offers a one-time charge. Finally, the purchased or leased software requires a constant internet connection, without which, the system won't work.

Light At the End of the Tunnel Necessity is the Motherhood of Invention

In the days of old when programmers were bold, it was thought that PC-DOS could be had for free. But then IBM and Microsoft had better ideas. They started attaching verification routines to their installed offerings. In the 1990s, A licensed copy of Windows sold for over $100 ($240 today). Back then this was a lot of money.

To counter this, Linus Torvalds came up with an OS that was FREE and much more robust. Then what happened? Because of the emerging alternatives, the cost of windows today is relatively cheap and sometimes free.

With the two existing CAD freeware systems (FreeCAD and LibreCAD), the trend is changing such that everyone can freely explore, experiment, and used automated CAD CAM processes. Without a doubt, there'll soon be more.

Now the hobbyist supposedly has OK CAD design tools. The problem remains is to take the drawing and convert it into CNC commands.

So, you thought the above tools would be similar to Easel, a one step process. No. the drawing file is missing a bunch of stuff. This is tool paths, depths, etc. For this you need a CAM package. The only somewhat reliable freeware tool is DXF2GCODE.

Subscriptions, Subscriptions, Everywhere Subscriptions

For me to cut holes in a project box, I've found that this process has gotten exceptionally complicated. The free version of Easel was a good alternative. But, the producer of this package continually removes helpful elements from the free version.

I guess CAD, CAM, and CNC continues along the path of the rest of computer technology and that is, more expensive.

It seems the Internet has lost its original purpose. Today it's all about the accumulating random monthly subscription fees clogging the user's monthly credit card statements. Now the user will have to use a monthly paid subscription tracking service to keep track of all their subscriptions.

Maybe it is time I List the CNC router on eBay, or get my act together and learn to program in raw G Code. I'll then make templates for all the project box connectors.

As for CAD is every system different? All the computer programming IDEs are intuitively similar as well as configurable allowing the use of different components and APIs. I just hope the various CADs are as intuitively similar.

I think what's missing from a lot of CAD systems is a full properties dialog. At least, this is missing from the two freeware systems. I want to create an object using a dialog similar to Microsoft Visual Studio. There upon creating the ... whatever, there needs to be a properties dialog where I am free to change the different individual parameters such as placement, size, color, etc. Then when I'm done with the object, it remains an object. However, in CAD, they don't have objects, Instead, the closest thing they have is layers. An object grows as one adds elements such as holes.

As for parameters in CAD, these are restrictive after the object is created. To specify exact parameters for the creation of an object such as a rectangle, this is done not through a dialog, rather via individual cryptic commands in the command line interface.

For me, cutting simple precision holes in a project box, I guess this'll have to do.


1. Use LibreCAD and create the shape of the hole. This step merely creates a kind of drawing.
    a. Key in rect then enter;
    b. Key in the lower left part of the hole at 0,0 X and Y coordinates, enter;
        I set this coordinate to 0,0 such that I can locate where to position the bit.
    c. Key In the size @100,60 X and Y coordinates, enter;
    d. Key in close
    e. Save DXF File.

2. Use DXF2GCODE to convert the output from LibreCAD to G-Code.
    a. Open DXF file;
    b. If need be, alter toolpaths and depth;
    c. Export to NGC file.

3. Use Candle GRBL to drive the CNC router.
    a. Open NGC file.
    b. Position the CNC router bit to the (0, 0, 0) X, Y and Z axis marked on the work piece.
        The router's Z position is where the bit is lowered till it touches the work.
        Click these buttons to zero the X-Y and Z axis.
    c. Execute the G-Code Script and hope for the best.

It looks like most CAD drawing tools that output a DXF file will work with DXF2GCODE.

AutoCAD DXF File Format (Drawing Interchange Format, or Drawing Exchange Format) is a CAD data file format developed by Autodesk for enabling data interoperability between AutoCAD and other programs.

DXF2GCODE will create a set of default toolpaths based upon predefined values. These values can be modified.

The tool path is the center of the tool. If you need to cut a hole of a certain size, the outer edge is the path plus half the diameter of the tool. Meaning, the drawing measurements need to be the size of the desire hole minus the cutter's diameter.

Easel does a lot of this stuff for you. But as you know, Easel is not exactly free. Also, it's kind of wacky to get everything right. It tends to have a mind of its own and think's it knows better what you want than you do; at least the free version does.

Beveled edge cut with 1/8th inch 20o engraving bit.
For LCD Display

So, with your favorite CAD app, DXF2GCODE CAM package, Candle: GRBL Control and a bunch of fiddling, the Genmitsu 3018-PROVer CNC Router is OK. It does a good job at cutting holes pretty much where I want them to be.

I still have a lot to learn.


November 15th, 2023