February 2019's Guitar Of The Month is now open - ENTER HERE!
Search the Community
Showing results for tags 'luthiery'.
Found 5 results
2D or even 3D CAD software is familiar to the majority of people, with packages like AutoCAD or TurboCAD. being more or less universally known. CAM software on the other hand is not so familiar. The simplest difference is that CAM takes work produced in CAD and uses it as the basis for a real-world manufacturing process. In this instance, a CNC machine. Numerous CAD and CAM packages are available to the user, from free to painfully expensive. For this tutorial we will focus on QCAD by Ribbonsoft. The software is relatively inexpensive (licenses start at 33EUR) and is available for a resettable trial period. This enables users to get to grips with the basics, and is reasonably easy for a CAD novice to understand. QCAD is also cross-platform compatible available on Windows, Mac or Linux machines, and it includes a basic CAD -> CAM interface adequately servicing our needs. On opening QCAD the user is presented with a blank document. I am working in Metric, however if you choose to work in Imperial units it is easy to switch between the two units of measurement in the program Preferences. The underlying methods are unchanged of course. To begin with, we will draw a rectangle with dimensions of 35mm by 45mm. The keyboard shortcut, typing 're' activates the 'Rectangle' command. The cursor will change to a set of yellow crosshairs, indicating a command has been invoked and is active. The command line at the bottom of the screen indicates that the rectangle command is waiting to for the user to specify the coordinates of the lower-left corner of the rectangle. With the rectangle command still active, click in the command line window where it requests 'First corner:' and type '0,0' (note the comma separating the two zeroes) and press <ENTER>. To complete the rectangle command we also need to specify the coordinates of the upper-right corner. In the command line window type '35,45' and press <ENTER>. The rectangle is drawn on the screen with the exact dimensions of 35mm x 45mm. Often when drawing in CAD packages, it is useful to add guidelines to help you work. These are erased when the drawing is complete. In this example it is handy to draw a centreline for our trussrod cover. Click the right mouse button to cancel the Rectangle command or press <ESCAPE>. Same as we did to invoke the 'Rectangle' command, type 'li' to activate the 'Line' command. By moving the yellow cursor near the top edge of the rectangle you will note that the word 'Middle' appears. This is an automatic object-oriented snap that allows us to select a key property of items already drawn on the screen with absolute accuracy. Other object-oriented snaps include the centre of a circle, an intersection between two objects or the end of a line, amongst others. In our case we will draw a line from the middle of the top edge to the middle of the bottom edge of the rectangle. Click the middle of the top edge to start drawing the line and click again on the middle of the bottom edge to complete the line. Right-click to stop drawing additional Line segments and right-click again to cancel the Line command. To give the trussrod cover a bit more visual appeal we will curve the sides in a kind of bullet shape. To achieve this we will take advantage of object oriented snaps again. Type 'a2' to start the 'Arc With 2 Points and Angle' command. Using the object oriented snaps click on the top of the centreline to start drawing an arc. While the end of the arc is 'attached' to the cursor, click in the Angle box at the top of the screen and type '45'. To complete drawing the arc click on the lower-left corner of the rectangle. The mirror image can be drawn while the Arc command is still active. Left-click the lower-right corner of the rectangle and click again at the top of the centreline. Note that this time we have gone from bottom to top. This is because the Arc command relies on an anticlockwise rotation when being defined. Clicking top to bottom would generate an arc facing the opposite direction. While this can be reversed so that the arc is drawn clockwise by changing the drawing preferences, it is quicker to remain in anticlockwise notation while the command is still active from the first arc. Right-click to cancel the Arc command. Now that the trussrod cover is starting to look roughed out, lets refine the shape a little. The three corners of the cover can be rounded over slightly by invoking the 'Round' command. Type 'rn' to start it. In the radius box at the top of the screen type '2.5'. Left-click one of the two arcs on the trussrod cover near the peak. Note that as you go near each entity it changes colour to grey. Move the cursor near to the other arc. Notice how QCAD offers 'suggestions' as to where the round-over will be if you left-click again. Click when the round-over of the peak becomes one of the suggested options on the screen. The two remaining bottom corners can also be rounded over using the same process. Right-click to cancel the Round command when finished. To finish off the cover we'll add some screwholes at each corner. The easiest way to achieve this is to use the existing outline and offset the edges inwards to provide some useful guidelines (we'll delete these once finished). Type 'lp' to invoke the 'Parallel Lines with Distance' command. In the distance box at the top of the screen type '2.5'. As for the 'Round' command, hover the cursor near each edge of the trussrod cover, and when QCAD's suggested location for the parallel line appears inside the boundary of the cover, click the left mouse button to create the new parallel line. Repeat for all three edges. Cancel the Parallel Lines command when finished. The screwholes are simply circles placed at the intersections of the parallel guideline we just created. Type 'ca' to start the 'Circle With Diameter' function. In the diameter box at the top of the screen type '2'. Move the mouse over each of the corners of the parallel guidelines and left-click when the object oriented snap 'Intersection' appears. Cancel the Circle command when complete. All the unwanted guides can now be removed from the screen. To do this simply select all of the unwanted entities in turn while holding the <SHIFT> key to create a multiple selection. When all have been selected (indicated by the colour changing to brown) press <DELETE>. So we now have the drawing of the trussrod cover complete, but there is still a little more work to do before we can pass it on to the CNC machine. The main issue we have to resolve is that the diameter of the cutter needs to be compensated for in order to properly cut the outline of the cover. Without any toolpath compensation the cutter will follow the outline of the part and create a profile too small by the radius of the cutter. This is perhaps best illustrated by overlaying a representation of the cutter on top of the trussrod cover. In the above image the green circle represents the diameter of the cutter we want to use on the CNC machine. If the cutter follows the outline of the cover it will create a part that is represented by the yellow dotted line, which is obviously smaller than we want and also encroaches on the screwholes. What we need to do is offset the outline of the cover by a distance equal to the radius of the cutter and have the cutter follow this path instead. The other issue to be dealt with is the drilling of the screwholes. Again, if no compensation is performed with our basic drawing the CNC machine will simply move the cutter in a circular motion around every screwhole and leave us with oversized holes. What we really want to do is use a cutter with the same diameter as the holes we want to drill and simply plunge the cutter in and out of the centre of each screwhole location. Turning first to the outline path, we need to create a separate drawing layer that contains only the toolpath we want the cutter to follow. To create a new layer click the red '+' button in the Layer List menu box on the right of the screen. In the popup dialogue give this layer the name 'Toolpath' and change the colour to red. Click OK when done. Make sure the new Toolpath layer is selected in the Layer List and invoke the Parallel Lines command ('lp'). We will use a 2mm diameter cutter on the CNC machine, so we want the toolpath to be offset from the outer edge of the trussrod cover by the radius of the cutter. Enter 1 in the Distance box. Hover over each of the outline entities and click to create an outside offset. Cancel the 'Parallel Lines' command when done. The screwholes are easier to deal with. Assuming we continue to use the same 2mm cutter on the CNC machine, this will drill a 2mm diameter hole when plunged in and out of the workpiece. To create a toolpath that only moves the cutter in a vertical drilling action we simply place a Vertex or Point in the centre of each screwhole. Type 'po' to invoke the 'Point' command and using the 'Reference' object snap, click in the centre of each screwhole. We can now export the drawing as a G-Code file that can be interpreted by the CNC motion control software. Hide the original drawing of the trussrod cover by clicking the 'eye' symbol in the Layer List next to the '0' layer. The original white outline disappears from the screen leaving only the red Toolpath layer visible. Click on the 'CAM Export' button on the toolbar to bring up the CAM Configuration dialogue box. Select the 'LinuxCNC' configuration from the dropdown menu and set the other options as shown below. The important settings to take note of are: Cut inner paths before outer paths - the order that the CNC machine cuts the object from the material can be important. For this reason we want to drill the screwholes before the outline is cut out. If the outline were cut first there is a risk that the part may move as it becomes free of the surrounding material, rendering the drilling of the screwholes innacurate. Z Safety - the distance the CNC machine raises the cutter by to a safe amount from the workpiece to allow for the machine to be started and stopped. Z Clear - the distance the CNC machine will raise the cutter above the workpiece when rapidly jogging between different areas of the workpiece. Z Cutting - the distance the CNC machine will plunge into the workpiece when performing a cut. As we are wanting to cut the full thickness of the trussrod cover material and drill all the way through for the screwholes, this depth should equal the thickness of the material we are attaching to the cutting bed. In our case we are using some black plastic pickguard material 0.095" thick. Feedrate - The speed at which the CNC machine will move the tool when cutting through the workpiece. In all the above cases the units are expressed in inches or inches per minute. Once all parameters have been set click 'OK', specify a file name and select a convenient location on the computer to save the G-Code to. Start LinuxCNC and open the G-Code file for the trussrod cover. You will notice that the program is drawn such that all cuts are made in one pass at the full depth of 0.095". Doing such a heavy cutting manoeuvre with the tiny bits that the CNC machine uses is likely to destroy the cutting tool. The forces involved are too great for a small machine and such fine cutters. While the three screwholes are fine to be cut to full depth in one go, the outline is not and would be better performed if the cut was made in several passes. Fortunately this can be achieved with some minor tweaking of the G-Code file within LinuxCNC. Different modifications or approaches can be used to achieve the same end result. For the purposes of simplicity, we'll use the easiest approach. With the truss rod cover G-Code file loaded in Axis click File -> Edit... A text editor window opens with the G-Code loaded. The section of code that details the outline cut is highlighted below, beginning with the G1 plunge to Z-0.095 at line 14 and ending with G3 X0.0982 Y-0.0394 I0.1378 J-0.0026 at line 20. By repeating this section of code several times over and incrementally plunging a little deeper each time we can complete the cut in several passes without stressing the cutting tool. The easiest way to achieve this is to simply copy this block of G-Code several times over and increment the initial Z depth a little during each pass until the final depth is achieved. With the above code modified as shown click the 'Save' button in the text editor. Return to Axis and click the 'Reload' button or press <CTRL-R>. The G-Code is reloaded into Axis, but notice that the truss rod cover outline now contains three identical tool paths stacked on top of each other. Leave the CNC machine switched off at this stage, home all three axes and run the G-Code. By running the code with the machine switched off it is possible to see a simulation of what will be cut before committing the cutting tool to the material. As the program runs note that the outline cut is made in several progressive layers; each time the tool passes the start of the outline at the lower-left corner it plunges to the next depth and continues around again until the final, lowest outline is completed. If the simulation appears OK turn the CNC machine on, fit a fresh piece of material to the cutting bed (double-sided sticky tape is sufficient for such a small piece), install a 2mm diameter cutter to the collet, home and touch-off the tool and run the G-Code again. In a couple of minutes you should have a perfectly formed truss rod cover ready to be fitted to an instrument. ---------- Over the course of this four-part series we have demonstrated how the compact CNC machine can open up a whole new world of possibilities in guitar construction. While we have created a rudimetary truss rod cover from scratch, we have barely scratched the surface of what the CNC machine can achieve - from carving out custom pickup rings, creating workshop tools and aids to assist with instrument building and setting up, to engraving and carving intricate designs onto headstocks and fretboards. For a modest outlay of money it is possible to have a device in the workshop capable of precision that, up until the last 15 years, was the domain of the largest manufacturing firms. After mastering basics such as those described above, experimenting with more complex ideas and demanding designs quickly allows a small CNC to transform your working procedures.
"Make Your Own Acoustic Guitar" was released into a very expectant audience of people brought up on Melvyn's first release, "Make Your Own Electric Guitar". The volume of content is a magnitude greater than that of his already-comprehensive book on solidbody building without being either overwhelming or redundant. Drawing on over thirty years of experience, Melvyn informatively details the full range of information one could require on the subject; a brief history of acoustic guitars, design choice and reasoning, the ins and outs of material selection through to building techniques and the tools used. The core of Melvyn's books are his demonstration builds. These serve to bring together the concepts and ideas which form the majority of the information presented, walking the reader through a real-world set of design characteristics and working situations. To cap off this already excellent subject coverage, Melvyn describes his visit to the Martin factory demonstrating how the same acoustic building concepts translate through in a manufacturing setting. Acting as a very suitable segue, one demonstration build covers the assembly of a Martin kit guitar. Melvyn's writing style is friendly, pragmatic and engaging. Subjects are built from the ground upwards avoiding presumption of existing skills or knowledge, whilst Melvyn's light approachable tone to the comprehensive nature of the information presented makes it a great read for the experienced builder wanting to broaden or consolidate their existing skill set. Hundreds of intelligently composed full-colour photographs complement the textual content, building an excellent visual parallel to each chapter's narrative. Flicking through the book to let the eye choose a random section is just as pleasurable as reading the book chapter-to-chapter. Like its predecessor, "Make Your Own Acoustic Guitar" works perfectly as a self-contained read, taking anybody with zero knowledge of instrument making to the point where they could confidently complete their own unique guitar with informed choices in design, material selection and building processes. Both "Make Your Own Acoustic Guitar" and "Make Your Own Electric Guitar" are readily available via Amazon, IPG Publishers in US/Canada or directly from Melvyn via his website for those of us UK/EU-side.
After going through the StepConf Wizard to set up our CNC router LinuxCNC will have created a shortcut on the desktop to allow us to run the CNC machine with our configuration. Double-clicking this icon will launch Axis, the default graphical user interface. Upon opening Axis the user is presented with a 3D representation of the physical machinable cutting area of our CNC machine. A default test cutting program is loaded on startup featuring the LinuxCNC logo and a small cone object in the preview window represents the position of the CNC cutting tool. The maximum bounds of movement of the CNC machine, as defined by StepConf Wizard in part 2 of this series, are represented as a rectangular cuboid object with dotted red edges. In our case the cube is 200mm wide, 300mm long and 50mm high, which aligns with the maximum limits of travel of our particular CNC router. Take a fresh piece of plywood, MDF or other flat material at least 150mm x 150mm and secure it to the table. Fit a small engraving cutter to the spindle and tighten the collet. Open a blank text document using whatever text editor you prefer to use on your system and enter the following G-Code. If your machine is set up for millimetres use the left column. If you’re running your machine in inches use the right column: Save this file as ‘100square’ with the file extension ‘.ngc’ to a convenient location on your computer. Using the metric version, let’s break the code down into its components: G21 – This command tells Axis that the units of measure contained in the following code is expressed in millimetres. If G20 is used then the units of measure are inches. G0 Z15 – the G0 command instructs the CNC machine to linearly move its axis or axes at maximum velocity. This is useful to speed up moving from one area to another in preparation for the next cut, but should not be used when actually cutting as the speeds and forces involved could damage the tool. Z is the axis that is to be moved and the number immediately following is the position the axis is required to move to. In effect this line is commanding the CNC router to raise the Z axis to 15mm above the surface of the workpiece at maximum speed. G0 X0 Y0 Z5 – The CNC machine is again required to execute a rapid move, but this time we have also included destinations for the X and Y axes (X0 and Y0). Z axis is also instructed to lower to 5mm (Z5). G1 X0 Y0 Z-0.5 F300 – G1 tells the machine to linearly move at a rate which is specified by F300, expressed in units per minute. Because the Z axis is required to move to a negative value (Z-0.5) we are now plunging the tool into the workpiece to begin cutting and a slower axis velocity is required. X and Y axes are set at 0, but because we already moved to X0/Y0 in the previous step there will be no change in these two axes. G1 X100 Y0 Z-0.5 F300 – G1 again instructs the machine to use the feed rate F300. The X axis is requested to move to 100 while maintaining Y at 0. This will result in the X axis moving to the right in a straight line to a distance of 100mm. The Z axis remains at the same value as previously commanded by the G1 instruction. G1 X100 Y100 Z-0.5 F300 – The machine will move Y up to 100 at low feed while keeping X at 100 and Z at -0.5. G1 X0 Y100 Z-0.5 F300 – The CNC router will move X axis back to 0 at low feed G1 X0 Y0 Z-0.5 F300 – The Y axis is reduced to 0 at low feed. G0 X0 Y0 Z15 – The Z axis is raised to 15mm above the surface at maximum rate. The cutter is withdrawn from the work piece. M2 – This command signifies the end of the program and the CNC can stop operation. Many G-Code commands and variables are ‘modal’ and remain in effect until another contradictory command is executed. As an example the above program could be re-written for maximum modality and provide the exact same output. The drawback is that it can become difficult to read to the user, as much of the detail is removed: You will note that the F300/F12 feed rate that originally appeared at the end of each G1 line now features at the top of the program. This is because each successive G1 command will utilise the last known feed rate, which is now defined at the beginning of the code. Returning to Axis it can be seen that on start-up the location of the cutting tool is exactly at the upper-left corner of the machine limits of travel (X=0 and Y=0) and the tip of the cone is positioned at maximum height (Z=0). This corresponds with the home position that was defined earlier while running the StepConf Wizard. In reality the cutting head could be physically located anywhere within the limits of travel, as is the case below: Before the CNC router can be operated it needs to be returned to its home position. On more advanced machines this procedure can be automatic, with the axes seeking their home positions when the user commands the machine to home itself. In our case we will home the machine manually. Click the File open button or press <O>, navigate to where you saved the G-Code program we created and load ‘100square.ngc’. You should be presented with the following in the preview window: Check the Emergency Stop pushbutton on the CNC router control interface has been reset, and press <F2> or click the ‘Toggle Machine Power’ orange button on the top menu bar. A number of greyed-out options under the ‘Manual Control’ tab become active. With the CNC machine connected to the PC and powered-up, use the four arrow keys on the computer keyboard to move the machine around the cutting bed in the X and Y directions. The <page up> and <page down> keys will also move the Z axis up and down. Manually moving the cutting head around the table is called jogging. As the cutting head moves around the display updates the position of the cone object and shows the path taken as a solid yellow line. In the below example the cutter has been jogged towards the front edge of the table by 31.739mm (Y axis), across to the left 21.547mm (X axis) and up 20.545mm (Z axis). These values appear in the upper-left corner of the display; the Digital Read-out or DRO: The CNC machine, having now executed the above moves is sitting with its cutting head physically home, but well away from the workpiece at a distance which does not yet correspond to the values shown in the preview window: Now that the CNC machine itself is at its home position Axis needs to be told that this is now the position that corresponds with the upper-left corner of the red dotted-edged cuboid object, ie the 'soft' home position. The ‘Home Axis’ button is then clicked for each of the X, Y and Z axes. As each axis is homed the DRO updates to indicate that the associated axis is at position ‘0’ and a symbol is added next to the readout. Note also that the position of the cutting head in the preview window returns to the upper-left corner of the work area box to reflect the fact that it has now had its home position reset. The second step to perform before we can run a job is to ‘touch off’ the cutter against the workpiece. This is the process of setting the position of the workpiece relative to the home position of the machine. With the CNC router homed the job can be run, but unless the tool is touched-off Axis does not know where the workpiece lies relative to the tip of the cutting tool. In the above example the square object looks as if it sits bang-up against the top of the limits of travel, when in actuality the workpiece is about 25mm below the tip of the cutter and a few inches inside the edges of the table. Without touching-off, at best the machine may run the job with the tool completely missing the workpiece. At worst the CNC may try to drive the cutting tool through the workpiece into the table, ruining the job, damaging the table and destroying the cutting tool. To touch off manually jog the cutting head to the point at which you require the origin of the job to be positioned on the material. In the below example the cutting head has been jogged right 34.071mm (X axis), jogged away from the front of the table 42.856mm (Y axis) and jogged vertically down by 22.156mm (Z axis) to place the tip of the cutter at exactly the spot where the job origin is required to be. In our case I have marked the workpiece with a cross to indicate where I want the square shape to begin: As each axis is moved into position click the ‘Touch Off’ button. A dialogue box opens to allow the user to manually specify an additional offset to the workpiece relative to the axis being touched off, but in most cases it is sufficient to use the default of 0. After touching off the axis the DRO updates to show the position of the cutter has now been reset to 0. Note also that the square object has now moved 'deeper' into the red cuboid object that defines the limits of machine movement. Click the ‘Clear Live Plot’ button or press <CTRL-K>. This clears the preview window of any paths that were created by the manual jogging of the cutting head. Manually jog the cutter away from the workpiece a few centimetres. With the machine homed and touched-off we are now ready to run the job. If the CNC machine has a manual spindle control turn it on and set the spindle speed appropriately. Click the blue ‘Play’ button or press <R>. The CNC machine and preview window will now begin stepping through the code and manoeuvring around the workpiece. Note that the movement of the cutting head in the preview window is indicated by pale red lines for slow cutting motions, and for rapid jogging motions between each cut the tool follows the cyan dotted lines without leaving a trail. After a few minutes the program completes and the cutter retreats away from the workpiece to a safe distance where the spindle can now be turned off. If all things have gone to plan you should now have the 100 x 100 square engraved on your workpiece. Take a good quality ruler or Vernier calipers and measure each of the four sides of the engraved square and confirm that they each measure 100mm. If the sides of the square do not equal 100mm then some tuning of the configuration file must be undertaken to correct this error. The most likely culprit is that the lead screw pitch has been incorrectly set. The correction factor to apply to bring the axis scale back to the correct value is: If the square is exactly out of scale by a factor of two the other possibility is that the 'Motor Steps Per Revolution' setting is out by a factor of two. Doubling the value of 'Motor Steps Per Revolution' will make the edge of the square twice as big, whereas halving this setting will reduce the length of the square’s edge by half. ---------- Now that we have the CNC router actually cutting something and each axis is scaled correctly, we can move on to creating something a little more exciting. In the next instalment in the CNC series we will create a truss rod cover from scratch using CAD and mill it on the CNC router.
So you’ve decided to launch yourself into the world of CNC machining. You’ve done some research and lurked around many online forums and resources looking for information regarding which model to choose and what features the unit needs. You’ve plonked down your hard earned cash and a big cardboard box has arrived in the mail containing a bright, shiny new CNC router. It’s been assembled and set up on your desk. Now what? Fundamentally, most basic CNCs will have a bed which workpieces are secured onto and a overhead gantry that travels the length of the table. Onto this gantry a secondary carriage travels over the width of table. The spindle itself is attached to this carriage and can move vertically. The spindle rotates a cutting tool at high speed to remove material from the workpiece. The three movement directions (side-to-side across the table, up and down the length of the table, vertically up and down perpendicular to the table) are the three axes of motion that the machine can operate in; X, Y and Z respectively. Each axis is independently controlled by specialised motors known as steppers, which are designed to rotate either direction by precisely known amounts. The rotation of these motors is translated into simple linear movement (backwards and forwards). Commonly, threaded rods ("lead screws") pulleys or toothed belts are used for this purpose. Larger machines can sometimes use these in combination (such as pulleys for X and Y, leadscrew for Z). Each have their respective advantages and disadvantages in accuracy, cost, speed, load capacity, etc. Lead screws are most common in small CNCs for all three axes. The precise rotation of the stepper motors is controlled through the application of electrical pulses. By co-ordinating the number, length and frequency of the electrical pulses, the CNC machine can be made to execute precise synchronous motions to move the cutting tool around the workpiece in complex paths. The generation of these control pulses is performed either by dedicated standalone control consoles or by software on a common computer. Non-production level CNC tends to utilise the second option; the steppers driven by a simple external interface unit that sits between the machine and PC which handles the translation of the software stepper signals into the heavier-duty control signals that drive the motors. Software generation requires that a motion control application be installed on the host computer. Two of the most popular motion control solutions at the moment are Mach3 or Mach4 (for Windows based computers) and LinuxCNC for (Linux-based operating systems). In this article we will use LinuxCNC to illustrate how to set up the desktop CNC router; fundamentally the operating principles are similar between the Mach-series software and LinuxCNC. Both options require the host computer to have a parallel port for communicating with the control interface. Laptops and USB-to-parallel adaptors are not recommended for software stepper pulse generation. The main advantage of favouring the "old" parallel port standard is that many signals can be sent simultaneously; despite being far faster, USB is purely serial and asynchronous; one piece of information at a time and "arrives when it arrives". Parallel is far closer to being a real-time interface, which USB to parallel adaptors do not reliably replicate. PCI parallel port cards on the other hand are a satisfactory option if your host computer doesn't feature a parallel port. Installation of a Linux operating system and the LinuxCNC application is beyond the scope of this article, however it is extremely simple; LinuxCNC is available as a LiveCD installation, whereby the user has the ability to boot a pre-compiled version of LinuxCNC from a CD, DVD or USB memory stick without installing the operating system onto the computer. This operating system image is available to be downloaded from the LinuxCNC website. A permanent installation of Linux and LinuxCNC can be performed from the LiveCD if the user so chooses at a later date. The first requirement in setting up the CNC machine is to create a configuration file. This contains the specifications of the CNC motors so that they are driven at the correct speed/rate, acceleration, direction, etc. From the menu bar Click ‘Applications’, navigate to ‘CNC’ and select ‘LinuxCNC StepConf Wizard’. If this is the first time that StepConf Wizard has been run a new configuration must be made. The user also has the option of opening an existing configuration to either adjust existing settings in their recently created configuration, or use another configuration as the basis for their new CNC router. In this case we will create a new configuration from scratch. Click ‘Forward’ to move to the next page in the StepConf Wizard. In the next screen the configuration can be given a meaningful name and basic setup parameters defined, such as units of operation (millimetres or inches), how many axes the machine operates with (in our case three axes – XYZ), parallel port addresses and driver signal timing. If your CNC machine comes with data or a user manual then use this to set the driver timing settings. If there is no data supplied you may have to search online to find some information regarding the suggested timing parameters, or experiment to find the best trade-off for reliable operation of the CNC router. Step Time and Step Space - the width of the electrical pulse applied to each stepper motor and the subsequent gap between each successive pulse, expressed in nanoseconds. Too small a step pulse or space and the motor will miss a step. Too long and the CNC axis movement can become unacceptably slow. Direction Hold and Direction Setup - In addition to the step pulses themselves, secondary signals are generated by the motion control software that change the order of the pulses being applied to the steppers. Changing the order of the pulses changes the rotation of the motors from clockwise to anti-clockwise. The "Direction Hold" and "Setup" parameters define the amount of time the direction signal applied to a stepper motor needs to remain activated after a step pulse has been issued, and the amount of time the direction signal needs to be applied to the stepper before issuing the next step pulse. Too small a direction hold or setup and the motor can miss a change in direction and overshoot its intended stop point. Too long and the CNC axis movement can become unacceptably slow. In most cases the values shown will work as-is and require no further adjusting. The last key item that requires attention on this page is the ‘Base Period Maximum Jitter’ setting. Instructions to the CNC (via the interface) are generated by software, so there is a potential that something occurring in the computer or operating system outside the control of the CNC machining application may interrupt the continuous supply of timely instructions (eg. graphics redrawing on the screen, hard drives being accessed, etc). Consequently we need to ensure that any interruptions that do occur do not interfere with the normal operation of the CNC machine. To find out what this minimum safety net should be the StepConf Wizard includes a ‘Jitter Base Period Test’ function. After running the test for a few minutes this returns a suitable ‘Base Period Maximum Jitter’ value. This states how much the system might be expected to be delayed during normal operation; the configuration then makes sufficient allowance to avoid interruptions in the generation of the stepper control signals. Click ‘Forward’ when all fields have been filled in. Leave the Advanced Configuration Options unchecked at this stage and click ‘Forward’ again. The Parallel Port Setup screen is where we define what each pin of the parallel port on the computer is expected to do when connected to the CNC machine. Again, consult any data or the manual supplied with the CNC router to determine how each pin is to be connected. As we are configuring a basic 3-axis machine the minimum required pins to be configured will be X Step, X Direction, Y Step, Y Direction, Z Step and Z Direction. The other important pin to configure is the Emergency Stop (or E-Stop) input from the machine. Nearly all CNC machines will be fitted with a large E-Stop switch that the user can hit in the event that the machine begins executing some unintended moves, and signals the motion control software to unconditionally stop moving the axes. The next three screens are used to configure the behaviour of each stepper motor; their speed, acceleration and limits of travel. Each axis is configured independently but the options presented are identical: Motor Steps Per Revolution – how many steps the motor needs to perform to complete one full rotation of the shaft. Manufacturers of stepper motors often express this value as degrees per step. If your stepper motor has this value specified as 1.8 degrees per step then Motor Steps Per Revolution is equal to 360 degrees divided by the degrees-per-step value, or 360/1.8 = 200. Driver Microstepping – the resolution of a stepper motor can often be increased by the action of microstepping. The basic degrees-per-step specification of the motor is enhanced by the driver forcing the motor to make an intermediate ‘soft’ step in between each 1.8 degree ‘hard’ step. In the same way that a picture with higher resolution can display more detail on a computer screen, a stepper motor with more resolution can perform finer movements. The trade-off is that the more microstepping you add the less torque that motor is able to generate. In practice a microstepping value of either 2 or 4 is a good compromise. Note that if you set microstepping to 2 it will require that Motor Steps Per Revolution be increased to 400 to maintain the relationship of the number of steps to complete one revolution of the motor shaft. Setting microstepping to 4 will require Motor Steps Per Revolution to be set to 800. Pulley Teeth – only required for CNC machines that use pulley systems to drive the axis. This is where you would specify the gearing ratio of the pulleys. We are using a lead screw in the desktop CNC machine so leave these two fields set to 1. Leadscrew Pitch – the pitch determines how far each axis will travel when the lead screw is rotated one full revolution, and its setting is critical to ensure that the axis travels the correct distance when commanded to do so. If the units of operation specified earlier were inches then the lead screw pitch is expressed as threads per inch. If millimetres were specified then this value is expressed as millimetres per revolution. Consult your CNC machine datasheet for information on the specifications of lead screw fitted. As an alternative most lead screw pitches can be measured reasonably accurately by using a ruler to count the number of thread ‘peaks’ within one inch, or the distance in millimetres between two successive thread peaks. Maximum Velocity and Maximum Acceleration – sets the maximum speed and acceleration of the axis before the CNC machine starts missing steps or losing accuracy when changing directions. As no real life object can accelerate from a standstill to full speed instantaneously, we need to specify a value in the ‘Max Acceleration’ field to limit how quickly the CNC motion control software tries to make the machine change its speed when either accelerating from zero, coming to a stop at the end of a manoeuvre, or changing directions suddenly when transitioning between two trajectories. In general this is set by experimentation with your particular machine, but the values presented here should work with the smaller desktop CNC routers as a starting point. Home Location – the default location the axis will set itself to when the machine is told to ‘return home’. The home location can actually be anywhere you like within the axis limits of travel, but is typically set at 0 (which would equate to the lower-left corner of the table with the Z axis at maximum height). Every time the software is started up the physical location of the CNC machine is undefined. Until the CNC machine is homed it cannot know where its limits of travel are (below) and therefore cannot commence a machining job. Table Travel – specifies the ‘soft’ limits of motion that the axis can move within, and is expressed as either millimetres or inches depending on how the units of operation were set earlier. For each axis this is typically set to the maximum travel that the axis can move to before reaching the end stops. When the motion control software detects that the axis has reached its soft limit it will not attempt to drive the CNC router beyond this value. Note that when setting the Z axis the Table Travel fields are normally set as a negative number to zero, rather than as zero to a positive number. The convention here is that the Z axis moves negatively with respect to the surface it is bearing down upon. The last option for each axis is the ‘Test this Axis’ function. Clicking on this will bring up a window that allows the user to see if the configuration created thus far is appropriate for their machine. With the CNC router connected to the computer and powered up the axis under test can be manually moved using the two ‘Jog’ arrow buttons, or the axis can be set to automatically swing back and forth by a set amount according to the ‘Test Area’ fields. This is useful for determining if the axis is moving by the correct amount based on the ‘Motor Steps Per Revolution’ and ‘Lead screw Pitch’ settings, and also if the ‘Max Velocity’ or ‘Acceleration’ settings are going to result in missed motor steps. Assuming that step direction was set up correctly earlier under the ‘Parallel Port Setup’ window for each axis, clicking the right ‘Jog’ arrow should make the X axis move towards the right of the table, the Y axis move away from the front of the table and the Z axis move vertically upwards. Clicking ‘Forward’ after configuring the last axis and then ‘Apply’ will create an icon on the desktop allowing the user to launch the motion control software using the created configuration file. And that’s it! If you’ve made it this far you’ve successfully created a configuration file to suit your CNC router. By double-clicking the 'launch CNC-router' icon on the desktop, the configuration file will pre-load all the necessary parameters for the CNC machine and start up the motion control software. ---------- In the next article we will begin creating a basic G-Code file to run the CNC router with. In doing so we will also verify that the machine operates correctly, and the axis motion is correctly scaled to create 1:1 cuts in preparation for applying the CNC machine's abilities to creating luthiery-related components.
Recently I made the decision to step into the world of CNC routing machines and augment my small workshop and tool collection with a modestly-sized unit. With the rise in quality of low-end Chinese-made machines in recent years it has become easier than ever to purchase a small CNC router for home use capable of high precision. A quick search on online auction sites will reveal a vast array of pre-assembled units for sale starting in price from less than $700, with cutting beds up to 600mm x 900mm in size. While I am still a novice at CNC, hopefully my experiences can help others decide if taking the plunge is for them too. So, why choose a small CNC router? There were several reasons why I personally decided to purchase a desktop machine with the intention of applying it to guitar work: I had a limited budget and a small area where I could set up such a machine. A CNC router capable of directly milling a guitar body from a timber blank is physically large, noisy and expensive; I was after a way to improve the appearance of my builds by including professional-looking headstock logos and markings, and had thus far been dissatisfied with many of the solutions that utilised decals or transfers; I wanted a quicker and safer way to create templates for routing smaller shapes and components used in guitar construction (eg, pickup cavities, headstock outlines, truss rod covers); Having decided to explore multi-scale instruments I needed a way to make accurate drilling templates for the individual bridge assemblies commonly used for these instruments; Despite wanting to automate some of the construction process, I still wanted to retain the hands-on nature of building an instrument rather than transfer the bulk of the cutting and shaping work directly to a machine; The increased accuracy afforded by the machine for particular tasks was attractive (eg, scribing fret slots directly onto a fretboard blank, creating perfectly-fitted control cavity covers). The CNC machine I eventually settled on was at the smaller end of the scale; a 3-axis desktop unit with a similar footprint to a mid-sized inkjet printer, having a cutting bed of 200mm by 300mm (X- and Y-axis respectively) and a vertical travel of 50mm (Z-axis). The spindle is rated at 200W, with a 1/8” collet which allows the changing of cutters using a wrench system similar to that used on many handheld routers. The build quality of the frame and gantry seems quite acceptable, although for the price paid I would expect some shortfalls in terms of frame flex and milling accuracy of the spindle due to runout and eccentricity. However if you don’t work the CNC router too hard any errors in the finished milling process will be minimal, and achieving sub-micron precision in a material such as timber is probably a moot point anyway. A separate controller interface unit is supplied featuring variable spindle speed via a dial on the front panel and PC connectivity through a parallel port on the back. It is worth noting that most of the models which utilise a parallel port to interface with the computer require a desktop PC rather than a laptop, as the battery power management features of the latter are not conducive to reliable operation of the CNC router. Commonly available USB-to-Parallel Port adaptor cables are also incompatible with these units. However, if your host computer does not have a built-in parallel port you can purchase and install an aftermarket PCI parallel port card, which is exactly the path I chose. The unit also came equipped with a selection of endmills, a set of rudimentary work piece holding clamps, a number of allen wrenches and spanners and an evaluation copy of the Mach3 CNC motion control software. While the supplied endmills are satisfactory for learning the ropes and experimenting with different cutting operations, you may wish to invest in a small collection of higher quality endmills, which afford a far superior finish and longer working life than the factory-supplied ones. The controller is connected to the CNC mill via several cables with locking collars to prevent them inadvertently working loose. An unexpected bonus feature of the particular model I chose was that the controller circuit board is fitted with several unpopulated connectors that allow the retro-fitting of axis limit switches. On more fully-featured units these limit switches are fitted to the moving components as a safety measure to prevent the software accidentally driving the CNC machine past its maximum limits of travel, or to allow automatic homing of the cutting head (more in this in future articles). On the subject of software, there are two main options for driving a parallel port-based CNC router; the above-mentioned Mach Series software which is for Windows-based machines and LinuxCNC (formerly known as EMC2) for Linux-based systems. As LinuxCNC is a well-supported open-source option for these machines I elected to take this option and install a Linux partition on my host computer. Conveniently, LinuxCNC offer several LiveCD versions of their software, which has the motion control software pre-installed on a Linux operating system. The operating system can be run directly from CDROM or DVD without having to be installed on the PC. If the user decides that they would like to continue using Linux, they can choose to install the operating system and motion control software directly from the LiveCD. As these machines are directly exported from China or imported via an agent, technical support tends to be quite limited. The units require some software configuration in order to move the axes in the correct direction at the correct rate. The machine itself is incapable of knowing where it is positioned relative to the cutting bed, or how many turns of the axis motors are required to move it an exact distance without some form of calibration data maintained by the host software. Fortunately there are several online resources to help users configure their CNC routers in order to achieve precise operation. Once configured to run from the motion control software, the user can load files into the application to direct the cutting head to manoeuvre around the work piece at pre-determined directions, speeds and depths in order to create the final object. The language used in these files is known as G-Code and consists of text entries directing the axis motors to move in a specific direction at a certain rate. Other specialised commands in G-Code are used to command the spindle motor to turn on and off, make the program pause at key steps in the routine, or cause the axes to move in predefined ways such as cutting an arc or drilling a hole. While it is possible to create a G-Code file from scratch by typing commands one at a time in a text editor, it is far easier and quicker to use a Computer Aided Drafting or Computer Aided Machining (CAD/CAM) application to draw the intended cutting paths and convert the subsequent drawing to its component G-Code commands. The user has the ability to quickly mock up an outline of, say a pickup routing template, export the resultant drawing as a G-Code file, open the file in the motion control package and cut out the routing template from a sheet of MDF with sub-millimetre accuracy in a few minutes. While some CAD and CAM applications are integrated into one common application, there are also many offered as separate software solutions. Some packages are open-source and free while others cost anywhere from a few tens of dollars to well in excess of $1000, all with varying levels of ease of use, feature sets and functional integration. Below are a few examples of what operations are possible using the small desktop CNC machine when applied to guitar building. This headstock logo was first engraved while being held in a simple jig to allow the workpiece to be accurately positioned without moving. The work was done in two passes, with the larger of the two pieces of text milled using a 0.8mm diameter endmill, and switching to a 0.7mm endmill for the smaller text. The resultant cavities were filled with black-tinted epoxy and sanded flush: Cavity covers can be directly cut on the CNC router from thin timber stock, including drilling the screw holes in one pass. To create a matching routing template for recessing the cover into a body it is a trivial matter to take the original cavity outline and scale it in CAD. The resultant file will create a perfectly fitting routing template for that cover. As I was unsure if the machine would struggle to mill such a thick piece of perspex, I milled a 'master' template from 6mm MDF and then used a handheld router fitted with a pattern-following bit to transfer the MDF template to the perspex sheet: If your router has a bushing guide or pattern-following plate attachment you can use it in combination with a small diameter bit to cut cavities with tighter radius corners than woud be possible using a typical 1/2" template bit with integrated bearing. The problem with using a bushing guide is that the template used must be created oversize by the radius of the bushing minus the radius of the cutter. Creating such a template in CAD and then milling it on the CNC router is simple. In the following example I have created a routing template to suit the bushing guide for my router. The cutter used was a 1/4" straight bit and the bushing guide is 16mm in diameter, so the template has been created with a consistent (8mm - 3.175mm) 4.825mm offset to achieve the intended cutting profile for a humbucking pickup cavity: Accurately positioning the independent saddles used on multi-scale instruments can be tricky, as the risk of misalignment is increased compared to a one-piece bridge. Determining the angle of the saddles for the differing scale lengths can be problematic, and if you are constructing instruments where the scale lengths used differ from build to build, making a drilling jig by hand is time consuming. This drilling template was milled and engraved into 1/8" perspex in about 15 minutes and includes the mounting holes for the saddles, the through-body holes at the rear of each saddle, a centreline to assist in positioning the template on the body and the intonation reference mark for the scale lengths used: The CNC machine can also be used to create simple tools for use in building and setting up instruments. The time taken to create this four-sided radius gauge was about half an hour, from mocking up the basic shape in CAD to removing the perspex sheet from the machine's cutting bed. If the tool was to get lost or damaged, creating a replacement should only take a few minutes: Pros: A ready-to-go solution out of the box with minimal assembly required Competitively priced with good accuracy and construction quality Excellent finish achievable on the object being machined Capable of machining a wide range of raw materials (MDF, plywood, timber, plastic, soft aluminium) Good support from open-sourced software solutions Small footprint for installations where space is at a premium Cons: Generally not suitable for direct cutting/shaping of the major components used in guitar construction (eg, cutting body outlines, neck profiles, cavity routing) or machining harder materials (eg, making custom metal components for bridges) Minimal after-sales technical support The control interfaces supplied with the smaller and cheaper units usually require a desktop PC fitted with an archaic parallel port. The software used can be challenging to get to grips with if you’re not familiar with Computer Aided Drafting principles and terminology. Hidden costs associated with using a CNC – purchasing good quality cutters and CAD/CAM software for example ---------- In future articles I will explore calibrating the desktop CNC router and covering some of the basic operations of the associated CAD, CAM and motion control software packages.