Mesa Setup Part 1: Hardware

This will be a 2 part post outlining the set up for testing of the hardware and software I plan to use with my CNC cutting table. The Mesa 5i25 is a PCI card that communicates via parallel cable with the 7i76 breakout card. The 7i76 sends step and direction signals to the stepper motor driver which then energizes the appropriate winding in the stepper motor to move the gantry. The 7i76 also has IO capabilities that I’ll use to set up limit and home switches on my table. Limit switches open when the gantry reaches the end of its travel and I’ll configure LinuxCNC to stop motion when the switch is opened. Home switches are used to re-reference the tool to a known position (say 0,0 on the table’s coordinate system).

I’ve spent the last several days reading (and re-reading) the manuals for Linux CNC, the Mesa IO and breakout cards, and my motors and controllers. I’ve also read a lot of forum posts and IRC logs. The goal was just to get the hardware up and running and see that the software is communicating with the switches and the motors. Last night I got a test motor and limit switch to function within LCNC. I could jog the motor both directions and the home switch functioned when I told LCNC to home the X axis. The following is a distillation of the process I followed to make that happen.

Installing the Mesa 5i25

Before installing the 5i25, make sure to move jumper W2 to the up position if you want to have 5V supplied to the 7i76 through the parallel cable. After reading the 7i76 manual more than a few times, I still haven’t figured out where else you would wire in this 5V supply- not that I see any reason to.

Sometimes in the documentation, you’ll see the 5i25 referred to as the “FPGA.” This stands for Field Programmable Gate Array, in case anyone was curious.


Move Jumper W2 to the UP position to have the 5i25 supply 5V power to the 7i76.


Getting ready to plug in my 5i25. Note I haven’t changed the W2 jumper yet..


5i25 installed in the Dell Optiplex 745’s pci port

Hooking up the Mesa 7i76

Once I had the 5i25 installed I moved on to the 7i76. There are two power levels on the board.  The pulse and direction signals that go to the stepper driver are 5V. The homing and position switches get hooked up to “Field Power” which you can supply with anywhere from 8V to 32V. For testing purposes, I just hooked it up to a 9V battery.  Each  bus has a status LED that lets you know it’s getting power.  Both LED’s should be lit. The diagram below is annotated to show how I had the card wired for testing. 20130910-140314.jpg

Home Switch

The switches I got for home and limit switches can be wired as either normally open or normally closed. The 7i76 manual suggests hooking them up as normally closed so an “open switch wire or wire shorted to ground will cause a detectable machine fault.” I connected the common terminal to Field input 0 on terminal bank 6 and the NC terminal to field power.


Testing a home switch.

Connecting the Keling 5056 Stepper Motor Driver

The pulse + and – terminals are wired to the pins labeled “step +” and “step -” on the 7i76 diagrams. The 5056 manual advises that the “ENA” (which stands for “enable”) pins are normally left disconnected. DIR + and – are labeled the same on both devices.

The A and B winding terminals are connected to the stepper motor. The data sheet for the motors should tell you which colors go to which terminals. If you can’t find that information, you can also do a continuity test between the wires to see which ones are paired together.


KL 5056 Stepper Driver. Arrows point to my dip switch positions.

Info supplied with the gantry kit specified 1/10 microstepping, and the stepper motor manual called for 5.0 Amps. I used the table printed on the 5056 to set the dip switches as seen below.


Dip switches correspond with values from the table.

Power supply

I hooked up the power supply with a 15 amp rated extension cord with one end stripped off. I connected the DC 48V side to the KL5056 with 12 gauge wire.


AC connection to power supply. Stripped 15 A rated extension cord.


All set up for testing.

In the next post I’ll go through how I installed the Mesa firmware and set up LinuxCNC using the Pncconfig Wizard.

Vertical and Horizontal Welding Practice Project

Before I started tacking the base of the table together, I decided I should organize a pile of scrap on the floor by using some of it to build a rack. In the process I’d have a chance to practice some out of position welding. All of the parts I’d made up to that point could be clamped flat onto the workbench. Once I got it tacked together, I’d have to start doing welds however they happened to be oriented.

Welding in the vertical and horizontal (not to be confused with flat…) positions is challenging because gravity is always trying to take the puddle of molten metal in directions you don’t want it to go. In the photo below, you can see how gravity caused the bead to sag to the bottom of the joint. That bead was done with a wire feed rate of 290 inches per minute. Once I slowed the feed down to 200 ipm, it got a lot easier to control the puddle. I still got some sagging on my last try. I think I was moving too slowly and therefore depositing too much metal.


I’m still too young to sag like this.



Got the Miller 250MP dialed down a bit to 200 ipm.



The smaller upper beads were at 200 inches/minute. Not pretty, but much easier to manage the puddle.



Ready to take another crack at the horizontal.



Started on the right. Thought I had it dialed in. Did the left and decided maybe not…

For the vertical up, I was practicing the technique described at welding tips and tricks which is basically an upside down V pattern. It took me a while to get the pace right on this one too.


Vertical up came together after a few tries. Think I got the gas off it too soon at the end causing the porosity.



Regular ol’ flat fillet.



Goal posts for our new hangar football league.



My first “completed” welding project.



Scrap holding scrap.

All in all, it was an afternoon well spent. I didn’t want my first experiments with out of position welding to be on my cnc table. I’m sure I’ll still have some beads on the table that I wish looked better, but now I know I should at least be in the ball park. Plus the workshop is a bit tidier now!

Electronics Rundown

So Adam, you’re building a robotic cutting machine… How do you plan on getting the cutting tool to draw the pretty pictures on your workpiece? Hopefully this post will answer that question at least from the hardware perspective.

30,000 ft View of Components

The machine has a gantry that moves across the x axis of the workspace. The cutting tool is mounted to a carriage that traverses the gantry in the y direction. I’m using x and y fairly arbitrarily as I’ve seen different machines oriented differently. This carriage also raises and lowers the tool in the z axis.

This motion is actuated by stepper motors through rack and pinion gears. More on steppers later, but for now just know that they’re a type of electric motor able to rotate a specified number of degrees and stop.  Some folks use servo motors here, but they’re beyond my requirements and budget, so I’m not going to get into that discussion at this point.

Stepper motors are connected to controllers that tell the motors when and how far to turn. Each controller is connected to the power supply and the break out board. The break out board interfaces with a PC via parallel port. The break out board may also have inputs for limit switches, emergency stops and torch height control. Torch height control measures the voltage of a plasma cutter’s arc to determine its distance from the workpiece. (Similar concept to why I kept blowing the breaker when I was stick welding and let the electrode get too far from the weld…) This is handy when you’re cutting material that isn’t perfectly flat.

Street View

There are several options when it comes to acquiring and assembling the electronics portion of a CNC table. One can purchase components separately, as part of a package deal that include various combinations of parts, or as a turn key kit including motors, controllers, power supply, torch height control, enclosure and wiring.

Ad Hoc Partial Kit Turn Key Kit
Motors  $296  incl.  incl.
Controllers / BOB  $260   incl.   incl.
Power Supply  $120   incl.   incl.
Enclosure  $100  $100   incl.
Torch Height Control  $268  $268   incl.
Misc. Cables, Switches, Cooling  $250?  $200?   incl.
Time  30 hrs?  20 hrs?   incl.
Kit  $0 $668  $1575
Support None None Included + 2 yr Warranty
Total  $1294 + time  $1256 + time  $1575

I put together the above table to try to compare the options for putting together the electronics for my table. The “Ad Hoc” column is basically sourcing different components off ebay. The “Partial Kit” column is using the supplier recommended in the Bill of Materials that came with my gantry kit.  This kit uses slightly less powerful motors than those quoted in the other two columns.  The “Turn Key Kit” column is the Dragon Cut 620-4 kit from candcnc.   The THC quoted in the first two columns is a really basic unit. I’ve seen it demoed on youtube, and it seems to work all right. The candcnc THC seems more robust though. It also has custom integration with Mach 3 software and is made and supported in the USA.

I think the table pretty much speaks for itself. There’s no way the time and (most likely) frustration of putting together one of the DIY options is worth the $300 difference.  This is especially true if you take into account the warranty and support going forward.

On that note, I wrote Tom at candcnc an email asking for clarification on which of his systems would be best suited for my project. His site advises using the 620 oz. in. motor kit for gantry weights over 50 lbs.  I figure that’s almost exactly what my gantry will weigh. I wasn’t sure if that advice was assuming one or two motors to drive the gantry. He responded within an hour with a very informative email.  He informed me that they assumed two motors driving the gantry, so the 620’s are the way to go.

Water Table Design and Checking Squareness

Hello! I got a message this morning that the rest of the steel I need for the frame is waiting for me to pick it up next time I’m in Seattle.  I’m trying to think of things I can work ahead on. Finally got around to adding the water table and gantry (with my own digital versions of the shopdroid brackets) to my design in Blender. I was happy to see the gantry (shown in white) fit up nicely.

Latest Blender Render

Latest Blender Render. Purple in honor of my Kansas State Wildcats!

I really haven’t decided if I’m going to do the water table right away or not. I did this mostly to make sure it could be retrofitted if I decided not to put it in initially.  As I understand it, the argument for is that the water traps the vaporized metal and greatly reduces dust in the shop and in your lungs.  Since I’m in borrowed shop space, I’m leaning toward installing water from the start so I don’t coat my benefactor’s airplanes with metal dust. In either case, it’ll work. I’ll just have to alter the design of the slats (a grid of vertical strips of metal that supports the work piece during cutting) a little based on which way I decide to go.

If I go with the water table, it’d be 50″ x 98″ and could sit on top of the frame, unattached. On my list of things to do is looking into sheet metal sizes to figure out if I could make this out of one piece.  I actually haven’t even determined what material and thickness would be best for this.  I’ve heard of some folks using spray on truck bed liner for their water tables. Any thoughts?

Hip to be Square

I went to the hangar this morning to check the squareness of the one end of the frame I’ve fabricated. Pythagorean Theorem said it should be 59.1 inches diagonally across this section. Both diagonals were just over 59 inches. That should  mean it’s  pretty square. I’m planning on using this section as a jig for the other side and keeping them clamped together till the new one cools. Thanks to John (aka zappafan1 on for the tips!




Stay tuned!

Blender as CAD

Hello again! As mentioned in a previous post, I decided to use Blender to design my table. Blender is not designed to do CAD. It’s more geared toward 3D modeling and animation. Blender is to Maya or 3ds Max what GIMP is to Photoshop. That said, folks are using it to create designs for 3d printing and milling. I used it to create this pendant for my fiancee last Valentine’s day. I had it printed at Shapeways.

I’m not going to get into the basics of Blender here. There are tons of great tutorials out there. Some of my favorites are at Blender Guru and Blender Cookie. I did have a difficult time getting Blender set up to use real world measurements though, so I’ll give a brief explanation of how I finally got it working.

Step 1

Go to the Scene menu and click on the Units drop down. Then click on Metric or Imperial depending on which units you’re working in. Scale of sets the scale to 1 foot in imperial or 1 meter in metric.

Step 2

Hit the ‘N’ key to bring up the Transform Properties menu.  Under ‘Display’, make sure that ‘Grid Floor’ is checked. Set the scale to 1 for meters of feet, 1/12 (.08333) for inches, .01 for centimeters, etc.

Easy, Right?

WRONG!! Say you’re a goofy American like me and you want to use imperial units. You’re Trying to model a leg for your table and you want it to be 12″ tall. You’d hit shift + A to add a plane and ‘e, z, 1′ to extrude the plane along the z axis 1 ft. However, due to an apparent bug, your new leg will be 3.2808 feet tall. This happens to be 1 meter. Therefore if you insist out of national pride, ignorance, or practicality on using imperial units, you must convert your z measurements into meters. For example, if you wanted to extrude a 2′ long leg you’d type ‘e, z, 2*.3048′

Alternatively, you can click the little magnet icon on the bottom of your screen and instead of entering a distance to extrude you can drag your mouse the direction of extrusion and it will snap to the nearest grid line. If you set 1/12 in your grid floor scale window, you’ll be extruding 1″ at a time.

Don’t forget to name the pieces that you model. I found it helped to name the piece its length and orientation, i.e. ’3_ft_vertical’ or ’50_in_horizontal’. This helped later when I went back to add up how much steel I was going to need.

Here’s what I ended up with for a frame: