February 27

DIY CNC Part 8: LinuxCNC StepConf

LinuxCNC-A

In this part of the build, it is time to setup LinuxCNC.  With the computer insanity complete, I moved onto setting up LinuxCNC.  Setting up LinuxCNC is pretty straightforward and launching the StepConf Wizard you will be greeted with the following screen.  The StepConfWizard can be found under the CNC applications group.

StepConf Wizard in LinuxCNC
StepConf Wizard in LinuxCNC

Next, create a new configuration.  Later if you wanted to change the configuration of the machine you would return to the StepConf and select “Modify a configuration already created with this program”  Having the bottom checkboxes clicked will create the icon to launch LinuxCNC from the desktop when the configuration is completed.

LinuxCNC StepConf
LinuxCNC StepConf

Moving forward through the process brings you to the basic machine information.  Here you would enter the parallel port settings and base period jitter. Clicking “Text Base Period Jitter” will run a latency test.  Allowing the latency test to run for about 5 minutes will provide the value needed to enter into the Base Period Maximum Jitter box.  While the latency test was running, I ran several different tasks like browsing the internet, opening and closing programs, and opened and closed photos, ran video, etc.    The idea is to put the computer through its paces while the latency test checks to see what the worst case numbers are.

LinuxCNC Basic Machine Information
LinuxCNC Basic Machine Information

With the latency test complete and the Base Period Maximum Jitter number obtained (10024), I entered this number into its respective box.  Using a PCI card for my parallel port, I entered the address of the port into the Parallel Port Settings.  In order for me to know what the parport address was, I opened up a terminal window and ran at the command line  lspci -v.  The result of that command listed all my devices and I was able to obtain the parport address which was DD00 thru DD07.  I then entered the address into the First Parport Base Address and ended up leaving the “0x” in front of the “DD00” and moved onto the X axis setup to jog the X axis and test the parport address.  I was fortunate the first parport address of DD00 worked.  If it didn’t work, I would have come back to this screen and enter DD01, try it again, DD02, try it again, DD03, etc., and repeat the process up thru DD07 until I got the machine to start moving.    If it didn’t move after the DD07 address was given, then I would have checked the wiring on the parallel port cable and/or check to make sure the PCI card was seated properly in the slot in the computer.

SCparport

With the parport address set up, the next screen will take you through the steps of configuring the parallel port.  A couple of things to mention about this step is once the StepConf is complete, and you run the mill for the first time, you will have to check your axis for the correct travel direction.  For instance my X axis was reversed so I had to come back to StepConf and check the “invert” box under pin 3 so the direction of travel on the table matched.  Also, if you are using limit switches and they are wired in on the parallel cable you would have to select the appropriate pin and if necessary the invert button.  Although I have the limit switches and they are wired up to pin 11, pin 12, and pin 13, but not installed, I left these pins as “unused.”

LinuxCNC Parallel Port Setup
LinuxCNC Parallel Port Setup

Moving onto the next screen, here you would configure the X axis of the machine.  Under the leadscrew pitch, because I used 1/4 20 threaded rod, I entered 20 rev/inch.  This basically means there are 20 threads per inch, or it would take 20 revolutions of the rod to move one inch.  I also changed the Table Travel to the size of the workable area of my table.    

LinuxCNC X axis configuration
LinuxCNC X axis configuration

At this point, if your wiring is correct and you have the correct parport address entered in the Parallel Port Setup mentioned in an earlier step, you should be able to test the table travel.  I ran the “Test this axis” and was able to obtain the travel of the x axis which basically was 0 to 18 inches.  I used the Jog function to test the axis in both directions.    I noticed if you use the “Run” feature it will jog in both directions automatically.  For instance, I set the Test Area to 6 inches, and it would travel one direction 6 inches, then the opposite direction 12 inches, then back to the original 6 inch mark, technically another 12 inches.  It did not travel only 3 inches in one direction then 3 inches in the opposite direction, but 6 inches in one direction, then 12 in the opposite, then back to the original 6 inch mark.  I certainly had the hand on the emergency shutoff during this process so I wouldn’t run out the axis and strip out the stepper motor to threaded rod coupler.  I guess installing the limit switches would have taken care of that situation if it occurred.  It was easier for me to just jog the x axis almost to it’s limits and measure the travel with a tape measure.

SCxaxistest

Once the X axis setup is complete, it was time to do the Y axis following the same procedure as mentioned in the previous step.

LinuxCNC Y axis configuration
LinuxCNC Y axis configuration

Then the Z axis.  Note the Z axis travel will have a negative value as it travels away from the table.  Testing the axis gave me the correct value to enter into the Z axis travel.

LinuxCNC Z axis configuration
LinuxCNC Z axis configuration

Once your done with the Z axis that should do the trick and the configuration is complete.  Clicking apply will create the file and a desktop icon to launch LinuxCNC.

LinuxCNC StepConf complete
LinuxCNC StepConf complete

Clicking the desktop icon launches LinuxCNC.

LinuxCNC
LinuxCNC

Until next time,

Happy Building!

 

 

Category: DIY, DIY CNC | LEAVE A COMMENT
January 28

DIY CNC Part 5: NEMA Motors

nemamotors

For this build I am using NEMA 17 motors to transport the X, Y, and Z.   The NEMA motors have the same specs in the build plans and I was able to save quite a few bucks purchasing them through FoxyTronics.  Each NEMA motor cost me $14.00 dollars plus $6.00 dollars for priority mail shipping.

nemamotors
NEMA motors purchased from FoxyTronics

I initially had the impression the NEMA motors were big in order to transport the X,Y, and Z carriages, but as you can see in the photo below, they are actually quite small.

nemasize
NEMA 17 motor

The NEMA motors will be used to transport the X, Y, and Z axis.

nemamountwithmotor
NEMA 17 motor for the Z axis

It took several trips to Ace Hardware to find the proper length of screws in order to mount the NEMA motors.  I ended up using 15mm screws for the Y axis, and 10mm screws for the X and Z axis.  Each screw will be installed with with 2 washers to avoid stripping out the aluminum.  If the screws are too long they will push the screw which holds the motor together.  I noticed a little jiggle on one of the screws when I was tightening the NEMA motor mount bolt down.  Fortunately, I did not strip the screw out of the motor.

NEMAmountY
NEMA 17 motor for the Y axis

Prior to attaching the NEMA motors to the CNC machine with the threaded rod, I will be performing a simple test of the motors.  This is one reason why I haven’t mounted the X NEMA motor to the CNC machine.  I used the X motor for a mock up of how all the wires connect to the stepper motor drivers.  Once the test is completed, I will connect the Y/Z motors to the carriages and construct the X motor mount.  For the stepper motor specs please visit the FoxyTronics website.  A link has been provided below.

Onto the wiring of the power supply, the stepper motor drivers, and finding an old computer to run the software.

Until next time,

Happy Building!

 

Bill of Materials

3 – Small Stepper Motors from FoxyTronics

4 – M3 metric machine screws 15mm for Y axis

8 – M3 metric machine screws 10mm for X and Z axis

12 – M3 washers

Recommended Stepper Motor Drivers:

3 – MyDIYCNC Universal BiPolar Stepper Motor Driver Modules

 

 

 

Category: DIY CNC | LEAVE A COMMENT
January 27

DIY CNC Part 4: X Table and Gantry

Xtable2a

Being exiled to the garage for five days has given me the time to make some good progress on my DIY CNC. What started out as what I thought would be a simple build of the X table turned into somewhat of a project in itself.  Remember that “quality” plywood I had purchased for the table?   Well it turned out it had a bow in one of the corners and I was not able to use it.  I had to replace the “quality plywood” with some MDF from Home Depot.  A bill of materials is located at the bottom of the page.

xTable1
X table and rods

I had originally thought if the X table was smaller then I wouldn’t have to worry about the bow in the table or the little “wobble.”  There was a minor wobble in the X table when applying pressure to the Y axis.    I decided having a slight bow in the X table and a little wobble will cause problems later when cutting, so I replaced the plywood with the MDF.

Xtable
X Table and Gantry

Once again I had Home Depot cut me a piece of MDF and I was ready to install the X Table.    To give the X table a little support, I decided to install some supports as the MDF was quite a bit heavier than the plywood and I don’t want the rods to bend or the table to bind.  I installed four small coaster wheels I had purchased from Home Depot when I got the MDF.  After the installation I noticed the wheels were oblong and creating the X table to bind up along the axis.    This would make it hard for the stepper motors to move the table  so I removed the coaster wheels and just put a nice piece of pine underneath the X table.  I countersunk a few holes and screwed my newly created X table supports into position, tested for binding and proceeded to square up the X table and Y axis.

Xtablesupport
X Table support made from pine

Once the X table was complete and without any binding, the final assembly of the gantry was next.  I needed to make sure the Y axis was exactly square to the X table along the full length of the Y axis.  I used a speed square to check and make the adjustments.  Once I was satisfied with the Y axis being square to the X table all along it’s axis, I screwed the Gantry down on both sides of the frame and checked it again to make sure the Y carriage would transport across the Y axis without binding.

XY
Y axis square to the X table

At this point I thought I’m basically making a printer!  It’s looking like a printer anyway…  With the X and Y square to each other, the Z will also be square to the X table.  I had squared Z to Y when I constructed the Y/Z backplate.

GantryTopView
A look down the Z axis

Checking the X, Y, and Z axis I noticed the X table was slightly touching the clamps I had purchased to secure the 3/8 steel rods.  I trimmed the little rubber off the top so it was flush with the metal clamp and this provided enough clearance for the X table to move freely without touching anything other than the X table supports.  Was it time for a beer?

Xtable2a
X rod clamps from McMaster

With the machine pretty much constructed, I moved onto getting the stepper motors prepped for installation.  The stepper motors will be attached to the 1/4 20 threaded rod and transport each axis.

NEMAmountY
NEMA motor mounted on the Y axis

On the next post, I will go over the NEMA motors, the NEMA motor driver modules, and where I sourced those materials.  Yeah, it’s time for a beer or cough syrup.  Until next time,

Happy Building!

 

Bill of Materials to mount the steel rod on the X Table:

4 each – Vibration-Damping Clamp with SBR Rubber Insert, Zinc-Plated Steel, for 3/8″ OD, 3/8″ Tube Size  McMaster Part # 8981T62

 

Category: DIY CNC | LEAVE A COMMENT