CNC‎ > ‎


I have looked at several different designs for home built CNC routers.  Construction on some is very simple while others would require access to a well equipped machine shop.

The design I am using was found on a forum at  This design has several nice features.  It uses MDF for the frame and black pipe for the axis guides.  The linear bearings are made from aluminum angle and roller skate bearings and the lead-screws are 1/2-10 acme-threaded rod.  All of these items are readily available and easy to cut and assemble.

I will need to modify the design for my specific space requirements.  If I want to park my truck in the garage the entire unit has to fit into an alcove that is 44 x 32 inches.  That should still give me a nice size machine with about a 28 x 18 working area.

I ordered more components tonight.  I decided to go with  dumpsterCNC delrin anti-backlash nuts.  I also ordered needle thrust bearings and washers to make sure that there will be no end play on the leadscrews and no thrust pressure against the motors.  I almost forgot, my skate bearings arrived today.  These will be used for the linear motion of the machine.

The components are coming together quickly.  I still need to look into couplers to attach the motors to the leadscrews.  I'm sure I've forgotten something but it will come to me.

Today I started construction on the MDF frame for the router.   The logical place to start was the torsion box for the Y-axis.  Everything else will be sized to fit around this part. 

I find that many people in CNC forums will build a simple machine then use that one to cut parts for a more complex or better machine.  Since I don't have a CNC machine already up and running, I will have to modified the design I have chosen to allow it to be built with my existing tools.

Y-axis torsion box laying on its side.  8-1/8 x 3 x 34-1/2.

The top and bottom are 3/4" thick while the inner ribs are 1/2" thick.  The ribs have been lightened to leave 5/8" all the way around.  The sides will be covered with a skin of 1/4" MDF.  This should provide a light but very strong assembly.  I will cut a beveled grove along the length of the top and bottom to anchor 36" long black-pipe with a 1" ID. 


router groove

On the top and bottom of the torsion assembly, I used a 90-degree v-groove router bit to cut out a beveled groove for the pipe rails to seat in.  It is a god idea to take two or three shallow passes over the tablesaw to remove some of the center material before routing.

torsion with groove

This view shows the assembly with the grooves.  You can see the  small holes drilled through the bottom and top pieces.  I drilled and tapped 10-32 threads in the rails and will bolt them to the torsion box from inside for extra stiffness.

pipe seat

This shows how the pipe will seat in the v-groove.  I left clearance at the bottom of the groove to make sure that the pipe seats on the bevels so it will remain centered.

torsion with pipe
A picture showing the upper rail in place.


I picked up several six-foot lengths of 1/4-20 threaded rod today at Grainger.  When I got home my acme lead screws were on the front porch.  I have most of the parts I will need to finish the build minus the small odds-and-ends stuff that I will pick up as I go.

I glued up the frame of the Y-axis torsion box tonight.  I will glue one of the outer skins on tomorrow leaving the other one off until I am sure that I will not have to remove the rails again during assembly.  I am hoping that I will be able to bore holes in the upright portion of the gantry accurately enough to support the ends of the y-axis pipe rails.   I have an idea for boring the holes to the correct diameter but accurate placement could be a challenge.

Today I cut and drilled all of the aluminum angle for the linear bearing assemblies.  I still need to get bolts and spacers to mount all the bearings .

aluminum angle
I only had enough bolts and washers to mount one pair of bearings.

bearing and rail
Here you can see how the bearings will ride on the upper rail of the y-axis.  I hope to replace the washers with a bushing or spacer that will be one piece and look a little cleaner.

circle cutter
Circle cutter I found at Sears.  I had to remove the aluminum part you see on the right to be able to bore a small enough hole.

hole  fit
It took four attempts to get the circle cutter adjusted to the right size but I have a perfect fit.--

I found some aluminum tubing at Home Depot to make spacers for my bearings.

new bushings
These look a little better than a stack of washers.  Maybe some shorter bolts too?

Good progress this week.  I came up with a method to accurately place the holes in the gantry sides to accept the pipe rails on the Y-axis.

I setup an oversize table with a fence along the back and the left side.  This gives me placement for the lower hole. 
You can see the boring tool in the chuck.

This view shows the spacer block against both fences.  It ended up being 8-15/16" long.

Here you can see a part in place with the first hole already bored.  The spacer block is in place and the part clamped down ready to bore the second hole.  I put a couple of 1/4" plywood shims under the part to keep from boring a hole in the table.

The left-inside leg of the gantry after boring and layout.  If you squint really hard you can just see the layout lines for the final shape.  This one will be cut out and sanded to final shape then used as a router template to cut out the other three.  Each side uses two of these glued together for a 1" thick finished part.

The carriage for the Y-axis is almost ready to glue up.  I have a few more holes to drill first.

The carriage dry fitted. 

There will be two vertical pipe rails when it is finished, I only had one ready to go for the photo.  You can see the lower bearings in place.  The upper bearings are still missing.  The four shiny screws to the right hold the lead-nut in place.  In addition to glue, the six small holes will allow 1/4" all-thread to run through the assembly to securely hold it together.

The back view of the carriage showing the Dumpster CNC lead nut.

More bearing assemblies waiting in the wings.  I haven't finished the Z-axis bearings since they will have a different length spacer because of the smaller diameter pipe, 3/4" instead of 1".


The carriage with a fresh coat of paint.  It looks white here but it's actually more of a tan color.

The first of four pieces that will make up the legs of the gantry.
This one was used as a router template to cut the others to finished size.  The grooves are to hold two sets of bearings in place.

Two short pieces of pipe were used to line up the holes while gluing the two pieces that form each gantry side.


gantry test fit
Test fitting the gantry parts.

In the photo above, the carriage is finished while the other parts need a bit more work.  I really thought I would have to shim between the torsion box and the pipes to get them to line up with the holes in the legs.  This is why I chose to leave the front panel off of the torsion box.  Otherwise I would not have had access to the machine screws holding the pipe to the box.  However, it was a perfect fit on the first try.

gantry test fit02
The back side showing the rear torsion box panel in place and painted, a much cleaner look than the first picture.  The front side will look similar to this once the front panel is added.

A closeup of the upper bearings.

I tested the motion of the carriage on the Y-axis by just pushing it back and forth.  I was surprised at how easily it moves and how little pressure needs to be applied to the four adjusting screws that preload the bearings.  Obviously I don't have the router, drive motor, leadscrew, or any bearings hanging on this thing yet, that may have some impact on how it adjusts and how well it slides.  For now, it rocks!

I need to pick up a bathroom scale so I can start weighing parts to get an idea of how my modified design compares to the original.  I suspect it will be very close.

The next step will be to build the lower torsion box to hold the gantry legs together at the bottom.  This will hold the X-axis lead nut which will drive the entire gantry along the long axis of the machine.


This week I have been working on the lower torsion box for the gantry.  After gluing the skeleton together I realized that I had not drilled the holes for the threaded rod to pass through.  This rod will hold the bottom of the gantry together, so it's kind of important.

long drill
Giant Harbor Freight drill to the rescue.

I had purchased a set of long drill bits for another project.  They were cheapos so I sharpened them with a split-point on my Dad's Drill Doctor before using them.  This one cut really well, much better than my standard drill bits in MDF.  I might have to get a Drill Doctor for myself.

drill jig
Drilling in progress.

I had made an extra rib when I cut out the parts for this box.  I used it to make a drill jig to keep the hole location consistent.  I just clamped it in place drilled then moved it to the next location.  The holes on the left side are farther from the side so that the rod will clear the mounting flange on the lead nut.

lower torsion box
Drilled with one of the skins glued in place and ready for trimming.

I picked up a bathroom scale at the local discount store so I could start recording the weight of the parts and assemblies.  So far I have weighed the gantry as it appears on the previous page.  It came in at 42 lbs.


Nearly a month since my last update.  Progress has been a bit slower these past few weeks.  I consider priming, sanding, and painting a necessary evil but the final results are starting to look pretty good.

The gantry painted and assembled, weighing in at 57 lbs as shown.

The next step will be the Z-axis parts and the bearing blocks to support the Y-axis and Z-axis lead-screws.  These parts will be made from MDF.  I haven't decided on the material for the motor mounts.  I would like to use aluminum since it would help dissipate excess heat from the motors but I may use HDPE or MDF to start with.

I have started on the Z-axis but today I decided to make the bearing blocks which support each end of the lead-screw.  I used 1/2" MDF since the bearings are only about 5/16" thick I really didn't see a reason to use 3/4".  I tapped 1/4-20 threads in the outer holes on half of the blocks then coated the threads with superglue. After the glue dried, I ran the tap through again to clean-up the now much stronger threads.  I drilled 1/4" through holes in the remaining three blocks.  These blocks will be sandwiched between the frame and the motor mounts when the assembly is complete.

A view of the back of the gantry.

Above you can see the lead-screw, lead-nut, an unpainted bearing block, and the end of the Lovejoy coupler that will connect the lead-screw to the motor.  I still need to round the corners on the bearing blocks.

Worked on the Z-axis lead-screw today. 

Z-axis leadscrew
Test fit of the bearing blocks and lead-screw for the Z-axis.

I hoped to paint the bearing blocks today but the wind is blowing like crazy and I don't really want to spray paint in the confines of the garage.  Hopefully the weather will cooperate tomorrow.


It has been a long while since I last worked on the router.  I hope to finish it before other things get in the way.  I have also started a build log on

The gantry with motors mounted and under power of the controller.

In 1/8 stepping mode I am getting 93 ipm rapid travel.  I may try changing to 1/4 stepping and see how that works out.

Today I started building a router template for the eight pipe supports that run across the table torsion box.  I had a piece of 1/4" Masonite that used to be the spoil board for my bench top.  That is why you see paint on the template.

This is the setup I used to build a template for the pipe support part of the table.

I set a fence at the back of the table and another at the right end.  Between the fence and the template is a 4" wide board used as a spacer.  The way this works is, set the part against the fences and use a forstner bit to drill the first hole.  Next, use the 4" spacer fence to locate the part precisely for the second hole (pictured below).  Then flip the part over and repeat on the other end.  I also clamped the template to the table before drilling.  The pipe that I have measures 1.310" so I used a 1-5/16" forstner bit.  A hole saw would have worked as well.  One other thing that I did before drilling was to cut out a small "V" for the pilot point of the bit.  This would keep the point from riding off the edge of the template and pulling the bit to that side.

A closer look at the setup with the two half circles drilled.

When I drilled the second end, I flipped the template over so that the other side was down, keeping the same reference edge against the fence.  That was all I got done before supper time so I will get back to it tomorrow.

I didn't make it into the shop very early today but I did manage to make some progress.  Since I needed several duplicate notches cut in my template, I decided to make a router guide just for that.  I started with a couple of strips of 1/4" birch plywood which I notched out then put together to form the guide.

temp guide

I placed the two pieces together with some 1/2" MDF in the notch for spacers.  I placed a steel rule on each side to set the distance from the top of the notch to the guide board which you see held with spring clamps and glued it in place.  This will act as a fence to position the guide.


Next, I set the template on the guide and glued a second fence which will capture the template while routing.  I couldn't clamp it while sitting on the saw table so I took a page from the Wile E. Coyote playbook and dropped an anvil on it.

Here is a closer look at the finished guide.


On the right you can see that the two halves don't quite meet at the seam.  I left an allowance so that I could get a good fit on the 1/2" MDF.  Since I have a fence glued perpendicular on both ends, it's not going anywhere.

Here is the guide set onto the template.  Just clamp everything down and start cutting.

A closeup view of my guide bushing in the router.  Does this look centered to you, because it's not even close?  It's a good thing I am only using this to rough cut the slot.  I will finish with a flush-trim bit in the router table.

Nearly finished template.

I still need to cut out the lightening holes and drill the holes for the all-thread but all of the critical dimensions are cut.

I had a small problem when I used a laminate trimming bit to flush cut the template.  It turns out that it didn't quite cut flush.  The MDF wouldn't fit through the slot.  I had to go back over it with a 3/8" bearing guided bit which fixed the problem.  When I use this template to cut my parts I think I will drill 1/4" holes at each corner before I route the pattern.

After getting feedback form my posts on, I am re-thinking the way I will build the torsion box for the table.  Madclicker gave me this link on torsion box construction.  This will simplify assembly and glue up.   I will be able to use v-grooves to support the pipe rails like I did on the gantry.  Also, there will be a lot less sawdust since I don't plan to lighten the parts.

After a little bit of CAD work it looks like I will be building the table about 3/8" thicker than its namesake.  This shouldn't cause any clearance problems but will give me more material at the top and bottom of the v-grooves.

I didn't get much done today as I found myself being really tired.  Power tools and drowsiness are a bad combination.  So I closed up the shop and came inside for some rest.  Hopefully, I will have better luck tomorrow.

Today was a productive day.  I cut all the parts for the torsion box, set up a flat work surface to do the assembly, and routed the v-grooves for the pipe rails.

assy table & parts

The sawhorses have been shimmed level.  On top of them are four 2x4s jointed and planed parallel.  These are in turn shimmed level and flat to each other across and lengthwise.  On top of that are two layers of MDF.  This is the method found on the DIY website for a flat assembly table.  The boards on the table are all ripped to 5.8" wide to be used for the torsion box frame.  I plan to let this settle for a day or two then check it for flat and shim it again if necessary.

test sides
The long sides grooved with a dado cutter to remove waste along with three test pieces that I will use to fine tune the size and location of the v-grooves before cutting the actual parts.

This is the fence setup that I used to cut the v-grooves.

The small strip in the front is equal to the width of the bottom of the v-groove (.418-inch).  I placed it between the wider board and the table saw fence then clamped the wide one to the table to keep it from sliding as I pushed the parts along its length.  Through trial and error with my test pieces, I was able to set the distance to the center of the 90-degree v-cutter so that I could run one side then flip the part around and run the other.  Next, I removed the small strip, re-clamped the wide one and ran both sides of the part again.  The tablesaw fence was never moved.

test rails
The test piece with rails set in place.  The grooves are 3/8" deep and allow for 1/16" clearance between the bottom of the groove and the pipe.  This keeps them solidly centered between the sides of the groove.

The part in the background was my first attempt.  The grooves were a little too close together. After adjusting the fence, the second one was a winner.  The test part was about 11" long and with rails in place I could test its fit in the bearings mounted on the gantry.

I was able to get the torsion box frame glued together today. 

When I had cut the parts for the frame I set the rip fence on my saw and cut all the pieces.  When I started preparing to assemble the torsion box I discovered my parts were not exactly the same width.  There was about a .040" variation from widest to narrowest.  The 3/4" parts were the widest while the 1/2" pieces tended to be narrower.

To solve the problem I needed to cut everything down to 5.060, since that was the width of the narrowest piece.  I set up the saw with a feather board in front of and behind the blade then made some test cuts.  Everything looked good. 

I cut my first piece then checked it with dial calipers, 5.075.  I re-measured my test part and it was 5.060.  So I flipped the part end-for-end, leaving the same side to the fence and took another pass.  It took off additional material.  I measured it again to find that it was still too big but closer.  I continued to flip it over and take additional passes measuring after each until it was within -.000 to +.004 of my goal.  Apparently the thin kerf blade was deflecting during the cut.  I can't prove this but I have no other explanation.  I any event, all of the parts fell within a .004 window.

All this may sound a bit overzealous for woodworking but I would like a perfectly flat table.  However, even when purchasing precision granite surface plates there is always a tolerance range.  By getting each part as close as my machinery will allow I can minimize the cumulative error and have the best machine possible.

The outside of the frame clamped up with corner squares.

With the above setup I was able to begin squaring the sides before gluing began.  I glued the two short sides to the long side on the left.  I clamped it in place then shot some brads in each joint to hold it while the glue dried.  I clamped the long side to the assembly table at each end.  Next, I put two more clamps on the long side but not too tight.  I used a four foot level and a dead-blow hammer to adjust the side until it was straight then tightened the clamps.  I measured diagonally to check for square.  With my corner squares in place it was dead on.

The frame partially assembled.

I cut some extra cross pieces to clamp at each end to help position the long sections inside the box.  These were removed after each section was glued and nailed in place.  To glue up the last section, I had to remove the right side.  So I clamped the short side in front to the table.  I left the short side in back unclamped so I could flex it out of the way during assembly.

I numbered the pipe support grooves so my tapped holes would line up.  Since I had to cut some off of the sides, I marked the top so I wouldn't glue one side up and the other down.

The finished frame.

Something else I did to ensure strong glue joints was to give the raw edges of the MDF a thin coat of glue, give it a short time to soak in, then apply additional glue.

Time to start gluing the skins on the torsion box.  I rough cut the top skin about a 1/4" oversize in each direction.  I decided to go with 3/4" MDF on the top of the table.  This will give me enough thickness to machine slots for t-tracks.  Since I will be cutting slots in the top I decided not to use nails to tack it down during gluing.  I just clamped the edges and looked for anything heavy I could find in the shop to weight the center.

Gluing the top skin.

I let the top have about 2 hours before I removed the weights and clamps.  I used a flush trim router bit to trim the top even with the sides.  I turned the table over and mounted the pipe rails to the sides with three 10-32 machine screws each.  With the rails in place I didn't have room for the bearing on the flush trim bit so I cut the bottom skin to finished size before I glued it in place.  I lined it up and transfered the lines from the sides then drew a grid on the bottom showing where the frame members were so I could brad nail it in place after applying glue.

Finished torsion box with pipe rails in place.  I still added weight to the bottom after nailing it down.

I spent most of two evenings setting up the drill press to drill the four holes in each table support so that they would all line up and fit well.  The pipe measures 1.310 and the forstner bit I used for the holes was 1.312.  With just a little sanding on one hole everything lined up and fit together.

pipe rail fit
A close look at the pipe rails fitting into the table support.

table support glue up
Gluing the second piece of MDF to the table support.

I have found that for gluing large surfaces it works well to spread the glue on both parts using a j-roller that I bought for applying plastic laminate.  It has a rubberized roller about 4 or 5 inches wide and washes off easily.

table supports painted
The freshly painted table supports.

thread inserts
Thread inserts in place.

I installed six 1/4-20 brass thread inserts into each end of the table to attach the table supports.  You can see the matching holes in the table supports in the previous picture.  I set each support in place, drilled 1/4" holes through support and table, removed the support and drilled the table holes out to 21/64", then installed the inserts.

adjuster box
Gluing up the adjuster box.  The bearing plate was used to keep it square during  glue up.

Rather than using HDPE for my adjuster box, I have gone with MDF.  Since it won't be strong enough to thread for bolts I decided to use a joint with mechanical strength and glue it together.

joint detail
A closeup of the corner joint.

I clamped the adjuster box into place on the gantry and checked the fit on the table.  This allowed me to make any adjustments before drilling the mounting holes.

gantry test 
Adjuster box clamped on right side of gantry with the gantry temporarily in place.

I adjusted the bearings then clamped a dial indicator to the carriage to see if I would need to move the adjuster box up or down on the gantry to get good alignment with the table surface.  In the photo I have the indicator set to zero.  As I moved the carriage to the left the dial went to -.004 in the center of the table then up to +.005 at the left edge of the table.  That's pretty much dead-on for a wooden box like this.

I had pre-drilled the mounting holes in the adjuster box.  I removed the gantry from the table and used the holes in the adj. block as guides to drill the gantry.  I drilled the top six holes then bolted the box in place before unclamping it to remove the lower torsion box from the gantry.  I needed to do this in order to drill the remaining two holes in the adj. box.  Once drilled they got bolts and nylock nuts like the others.  The bolts were inserted from the inside with the nuts on the outside.  I used #12 flat washers on both sides.

box installed
#12 flat washers are self centering on the 1/4" bolts and have a smaller O.D. than 1/4" flats.  They just look better.

I rounded the top corners of the box to allow for additional steel bracing to be added later.  The steel straps will attach the adj. box to the lower torsion box.

Brackets I found at Home Depot.

The brackets will fit over the top of the adj. box and run down the sides.  They are a little long so I will cut off the excess.  Several screws will attach them to the adj. box and the torsion box.  Nothing should move or sag after these are installed.

Gantry and supports in place.  12" rule on table for scale.

The machine weighs 227 lbs. with the z-axis parts and lead screws.  I will need to recruit some help to get the supports up on the sawhorses before I can run the gantry the full length of the table.

The gantry will have to come off at least one more time.  The left side lower pair of bearings on the upper rail don't quite contact the rail.  As careful as I have been, the aluminum angles that hold the bearings are a little too close together on that side.  I should be able to shave a little off the top slot and get a better fit.

z-axis back
I didn't have a picture of the business side of the z-axis assembly so here it is.

Since I used MDF for these parts I had to adapt them slightly to gain some strength.  The block that holds the leadnut is made from 3 pieces of 3/4" glued together, drilled completely through and bolted to the bearing plate.  The leadnut is held in place by machine screws with brass thread inserts in the MDF.  I put the leadnut on the bottom so that the machine screws would not hold the weight of the router and z-axis assembly.  They just have to keep the nut from turning.

I continued working on the router this weekend.  Saturday I was able to adjust things so that all of the bearings are in contact with the table rails. Additionally, I got the table sitting on its own feet so that I can run the gantry the full length of the table.  I am pleased with how flat the table turned out.  Not more than .010 variation along its length.  It is very similar along the width except for the last three inches or so on the right side.  It curls up slightly on that side an additional .015 to .020.

I initially considered sanding that edge, but once you sand through the hard surface of the MDF it becomes very soft.  If I did this I would need to add a hard surface, possible plastic laminate over the entire table.  I'll keep that in mind, it might look pretty good.

I started working on the router holder for the z-axis.  I cut out 3/4 MDF into two 6x6-inch blocks to make the clamps.  Then I needed to somehow cut holes into them at 3.8" dia. to fit the router motor.  I used my circle cutter and it worked perfectly.  It doesn't have a fine adjustment so it took some time to get it set for the hole size.  Also, the cutting tool can't go through 3/4" in one pass.  I had to go halfway through then flip the part and finish it from the other side.

cutting router holder
The drill press setup for cutting holes to make clamps for the router motor.

To make sure that both parts came out the same, I clamped the two pieces together and drilled a pilot hole through both.  I used these holes to line up the parts to the tool before I clamped each to the table to begin cutting.  I also used this hole to align the cutter when I flipped the part to make the second half of the cut.

router holder cutout
Freshly cut hole along with the waste.

router holder glueup
Router holder being assembled.

After cutting the holes it was time to shape the parts and assemble.  I glued the clamps into 1/4" dados in the sides.  I modified this setup from what Joe had done.  Again, using MDF instead of HDPE, I decided it would be stronger if I had two dados rather than a dado and a rabbet.  I moved the clamps up by 3/4" and drilled the holes for the mounting bolts all the way through the sides.  I had to modify the shape of the sides to make sure that I had flat spots for the blots to seat so I moved the transition from 2-1/2 to 1" up the side a bit. 

While measuring the router motor before building what you see pictured above, I did some rewiring.  The router I am using is a Sears VS fixed base 2HP unit.  The power switch was in the handle and had a separate lead cable running up to the motor.  Since the handle was part of the base, and I won't be using the base for this setup I had to eliminate the switch.  This won't be a problem since I have a relay that will allow me to power the router on and off through the controller software.

router wiring
The power cable, switch cable and speed controller circuit board before rewiring.  I put this picture here in case I ever need to put the router back the way it was.

router collet
Quick change router collet in the open position.

Above is the quick change collet I will be using.  It comes with tool holders that snap into it.  A push on the outside collar unlocks
and ejects the tool.  Several of the guys on CNCzone are using a different quick change setup,, that allows use of an automatic tool changer.  I plan to go to that one later but it is only rated to 10,000 rpm, and my router won't go that slow.

No pictures, but I did get the parts for the z-axis painted and ready for final assembly.

Just some photos of the assembled router holder on the z-axis.

router holder installed
Router holder installed.

router installed
Router installed with z-axis at the top of its travel.

After a few hours of bearing adjustments on the gantry, I have everything running straight and square.

I got the bearings adjusted last night and it seems to be running with x and y perpendicular to one another. I started with a pencil clamped to the z-axis. I would make an adjustment then draw a line and check it against the front edge of the table. When I got close, I drew perpendicular lines and measured 3, 4 and 5 and it looked good. Last, I found a board that had a good square corner used a test indicator to align it on one axis then clamped it to the table. I turned the indicator 90 degrees and checked the other edge and it was dead on. It sounds simple when I tell the story but I probably spent 2 or 3 hours on the process. I also mounted the long leadscrew before I quit for the day.

test indicator
Checking gantry for square.

Leadscrews and motor mounts installed.

Today I got the motors mounted and wired up the controller and computer.  Everything seems to work.  I have all axis working with Mach3 and its really great to see this thing come to life after such a long build.

motors installed
Motors installed on all axis.

The computer and controller box.

The Mach3 software screen.  This is the trial version that can run programs up to 1000 lines of code.

I haven't cut any parts yet and may not until I have the limit/home switches installed but the temptation may be too much to resist.

Earlier this week I cut a six-foot parallel cable in half and soldered on some new ends to make two three-foot long cables. 
Today I worked on wiring the limit/home switches by creating a temporary break-out-box between the two cables.

A scrap of 1/4-ply used to hold the connectors for wiring.

To keep the wiring out of the way, I built two brackets and mounted a length of Pex tubing between them.  I will use this as a cable carrier over the top of the gantry.

Brackets mounted on gantry leg and carriage.

The tubing was .375 O.D. so I drilled a.377 diameter hole two-inches deep for a very snug fit.

The tubing makes a nice stiff arch.

I had seen this type of setup on a water-jet machine a number of years ago.  I just went to the lumber yard and started looking for something that would flex and this is what I came up with.  They had five foot lengths pre-cut and it appeared to be just what I needed.  The Pex tubing is flexible enough to move with the carriage and stiff enough to support the cables and keep them from getting caught on anything.

For today I just used masking tape to hold the cables on the tubing.  After I get everything wired and working I plan to use split wire loom to clean things up.

After getting the limit/home switches wired and configured in Mach3, I decided to  put a cutter in the spindle and see if this thing would cut perpendicular on x and y.  I wrote a simple g-code program to cut two sides of a piece of MDF.  I set it to take a 1/4" wide cut .600 deep in six passes at 25 ipm.

x-axis cut.
y-axis cut.
It looks pretty good.  I'll have to use a dial indicator to see how close.

I have added t-track to the table to allow parts to be clamped down.

I used the router to cut the grooves in it's own table.

Here I have the grooves cut.  The track was 48" long so I had to lengthen the grooves with a hand held router.  Notice the temporary dust collection skirt.  MDF makes an enormous amount of fine dust.

The finished table.