Sunday, March 4, 2012

Success!

Had some time today, and so I finished putting together the bed support and worked on tramming the bed and aligning all of the axis.  I still need to work on the Z, however I was able to get the X and Y square to the bed within about .03" which isn't too bad.  To do the alignment, I clamped a small bit of steel to my toolhead, and then attached a magnetic base dial indicator.  As I moved the X and Y position, the dial indicator swept the bed, and I was able to watch for height fluctuations.  Picture forthcoming.

I'm going to write some test G code to help ensure that the X and Y are perpendicular later this week.  it should be fairly easy to draw a couple of lines and measure with a square.  For Z, I'm going to use a square relative to the tool frame.  Since I know the bed is good, that should be a fairly simple solution.

I'm working on a better loading solution for the G code.  Since all TinyG needs is to have a streaming program that knows software flow control (Xon/Xoff), there's really no need to have a full-blown PC attached to the unit when milling.  Since I'd rather not burn the workspace space (and power) if I don't have to, I've been thinking about other options.  I've decided to take a Chumby One that I had lying around and use it as the serial link to the TinyG.  At the moment, I have minicom running on the Chumby, and I'm feeding it instructions manually.  My hope is to write a simple menu and status program to take advantage of the Chumby color LCD touchscreen, rotary encoder and button.

Saturday, March 3, 2012

First test of CNC plotter

Pretty exciting today, since I was able to get the system functioning for the first time.  Since I haven't decided what kind of cutting head I want to use, and I haven't finished all of the alignment steps, I wanted to start with a simple 2d plotter test.  I mocked up a simple pen holder, and put a handy whiteboard grid I had on the bed to use as a worksurface.

I decided to use Inkscape, and to treat the plotter head as an engraver.  Inkscape has a nice extension called Gcodetools that will allow you to export paths to G-code.  I used the text function to type a few simple words in, broke them down into paths, and exported the file.  I used the serial terminal I had on my Ubuntu test system to send the file to the TinyG board.  After a couple of issues tweaking the feed rates, homing the pen, and inverting the X axis, I was able to get a pretty nice first result!





 I still have several small tweaks to do to the system, including tramming, getting the bed support attached to the bed, routing the hold down channels, and bolting/screwing the base to the sides.  Right now I'm just using a couple of pipe clamps to hold everything in alignment as I tweaked various things.  I'm pretty surprised about the amount of parallelism I have even without tramming - the pen didn't really drift much.


I also don't seem to have any issues with backlash or overheating, at least for now.  I rewired all of the steppers to be in parallel mode, which theoretically draws 2.8A, over the 2.5A the tinyG drivers can support.  I should be able to manage that using the current pots on the board however, and even in my current configuration I see the benefit.  I'm looking to get another power supply from Jameco, which I think will also allow me to run at higher seek rates - right now I'm running about 225 mm/min max.

Before I move on, I'm going to play with this setup for a bit.  I believe I can take a photo, run some edge detection, then have Inkscpae build me a vector path to plot the image.

Thursday, March 1, 2012

TinyG Update

Now that I have a working TinyG and enough of a platform for some basic tests, I've started to think more about the software side of things.  I chose the TinyG because I liked the idea of making the device smarter - a lot of designs rely on software packages on a PC like Mach 3 to do all of the low-level pulse timing, interacting with the hardware and stepper controllers using parallel port breakout boards, etc.  I'm sure it works well and is quite modular, but it doesn't take into account the huge advances in microcontrollers over the past decade or so.  Since I have a background in computing and electronics as well as a fully stocked machine shop, I don't feel bad about trying something a little out of the norm.

The other reason I thought it would be nice to try TinyG is that, at some point, I want to convert my existing manual metal lathe to CNC.  The spindle control capability that is being developed for TinyG looks like it could be useful.

So I pulled enough parts out of the scrap bin to build a fairly nice Ubuntu CNC computer, which I've connected to TinyG via USB.  The PC and TinyG are currently sharing a beefy PC power supply, however I think I'm going to split those up once I find another junk supply.  It seems to work just fine, but I don't know how the supply will behave with "high" current motor loads - if it introduces ripple, it might annoy the CPU which also uses the 12V supply.

For a toolchain, I'm thinking of using PyCAM and/or Skeinforge to generate G code, and Inkscape and FreeCAD to generate the appropriate STL or other files.  I'm going to give the free software a good shot before I start looking at commercial packages, but things like CamBam are viable alternatives if the free stuff doesn't suit my needs.

Since there doesn't appear to be any really good software for talking to TinyG, handling status information and uploading G code, I might write something up.  If you know of something, let me know in a comment.  I saw someone who used the status info to graphically draw the tool path as output from TinyG, and that would be a great place to start - if I can find it again!

JGRO CNC Progress

The first unit I got from Synthetos was defective in some way - we couldn't figure out why.  They were very gracious about sending me a replacement.  The new unit is working well in my test config.

I'm about 90% complete with my JGRO-based CNC router.  I have the entire gantry setup done, the motors and leadscrews for the Z and X axes are complete, and the ends of the Y axis are built, etc.  I needed to take a break for a bit to rearrange my shop so I had room for the completed unit, and I took the time to build a table for it to sit on.  It's the details that take all the time!


So tonight I'm going to get the rough alignment of the Y axis going.  My initial assessment indicates that there might be something wrong with my guides on the gantry, since there seems to be a significant gap on part of the bearing assembly.  I took the time to level the table, and then used that to ensure that the Y axis pipes were level and fairly close to alignment, and since I have a fairly big gap I have to assume it's a goof somewhere else.


Another thing I learned while working on this is that since I subbed out a lot of the MDF for birch plywood, that small fractional dimension difference is starting to matter in a few critical areas.  3/4" MDF is just that.  3/4" plywood is typically 1/32" or so thinner.  In the case of the gantry width, the design has you stack 6 pieces together (bearing block, gantry side, corner block for each side), and so that small difference starts to add up.  I suspect I'll want to redrill the Y axis pipe guide holes so that I have more alignment space.


I've been taking pictures here and there, but I haven't been particularly good about uploading them, since at the moment I think this blog is mostly a diary for myself.  Here are a couple of older shots as I was putting together the alignment blocks and bearing assemblies.  You can see I was using layout fluid and taking advantage of the fact I have some decent layout and metalworking tools.




I still need to figure out what kind of router I'm going to start with and build an appropriate mount.  I think for my initial testing and tramming I'm going to build a pen mount, making this an extremely overdesigned plotter.

Friday, February 17, 2012

TinyG

Got the TinyG, but I'm having some problems getting it to talk to all of the axis.  Hopefully I'll be able to work it out with the guy who did the design.  I also got the 3 steppers, and I'm in the process of building a wiring harness.  I plan to make my own shaft couplers, and it looks like I'll need to space the motors off at least the Z axis for clearance with the axis trim bolts.

Sunday, February 12, 2012

CNC Build Status

I've got all of the parts cut, and I'm in the process of building it from the Z axis out.  Z axis is done with the exception of the lead screw, which I'm waiting on the motors to complete.  I've got most of the carriage for the X axis complete as well, but need to do some final assembly.  The X axis gantry is next.  Pictures soon, really.

CNC Router 2

I think I mentioned in the last post that I'm building off of the JGRO CNC design.  For my initial try, I'm replacing the alignment blocks with aluminum.  I'm also looking at potentially replacing the lead screws, but that will likely wait until I've assembled things and tinkered with the design a bit more.

The biggest changes are related to the electronics and software.  I just got a Tiny G and I'm waiting on some NEMA 23 motors from http://buildyourcnc.com/.  I'm planning to drive these from an old PC power supply I've got - I may need to get a second one depending on the overall power requirements.  Right now I'm looking at different CAM and CAD systems that will work well with GRBL.