Archive for the ‘OZO CNC Rebuild’ Category


Tuesday, July 22nd, 2008

Been sort of stalling. Trying to prepare, to move on with the project. I am trying to wrap my head around the feed rate, spindle speed, dry cut aluminum game. Going from ideas in my head to the finished product, there are still some weak links. The first project thats been getting focus, is a heat sink for a Luxeon Star. This is a 3 watt tri-color led that dissipates some heat when working. The heat sink is a simple milling operation, chunk of aluminum, holes for the star, holes for mounting. This is something that I would normally cut out with a saw, and drill with a hand drill. It seemed like a good first CNC trial, start to finish in aluminum. The first step was tracking down the material. Lots of aluminum alloys to choose from. I ended up with a stack of surplus 6105-T5 aluminum alloy. This is from 80/20 surplus on ebay, each piece is about 3″ x 5″ x .180 thick, total price about $1.50 a sheet including shipping.


…IT Can Cut IT…

Thursday, July 10th, 2008

Wow, at long last, some cuts in soft wood!

Nothing special, and certainly not perfect results, but, at least the machine is cutting instead of drawing, so thats something.  Learned a lot very quickly too!

First attempt was a pocket 4×6 inches by .08 inches deep.  Spindle speed was set at 12,000.  Used a 1/8″ two flute end mill and a Feed Rate of 7″ per min.  I tried cutting this in .020 inch passes.

The machine cut fine and the control software worked well, its just that a 4×6 pocket being made with a small end mill such as this, at this feed rate takes forever.  I stopped it after the second pass, it really would have taken several hours to complete, but it was a fine first run.

Next I used CamBam to knock up some text to cut, I used the pocket feature again.  Increased Feed Rate to 15 inches a min.  Went pretty smooth, but lost steps do timing errors, I think, associated with having the USB thumb drive plugged in while running the RTOS.  These two don’t seem to play nice together.  Still I was very pleased with the outcome.  Note the stab wounds in the wood were there before I started cutting 😉

The next day I tried again, same settings no thumb drive.  This resulted in no missed steps, but I had a fairly obvious alignment issue!

Still these were very good learning experiments, they quickly taught me about feed rate, and spindle speed.  CamBam is working the trick for quickly building up designs.  I may experiment around with some more wood or foam cuts, but I am really dieing to try aluminum.  That will be the real test.

This is a quick Tutorial on speed and feed rates I found useful for this step…

and a screenshot of EMC showing the OZO text tool path


Spindle Speed Control

Wednesday, July 9th, 2008

Finally got the spindle working with a square wave produced by the computer.

I am using the StepGen component of the Hal. I am using a type = 2 which produces a quadrature signal. One phase of this is fed to pin 1 on the parallel port which connects to pin 11 on the machine. This component is tied, in the Hal to the spindle control, the same as it was with the pwm signal that was giving me so much trouble.

Now I can finally change the spindle speed with M3 commands and get a variable square wave out of the parallel port pin. The spindle works much better with this type of signal and I am now able to control the speed.

I had a few problems trying to set this up and could not have done it at all without the help of Jepler on IRC freenode #EMC.  Thanks so much to him for his help and pointing me in the right direction.

First I had to learn something more about the Hal file and how Hal actually works. Up till this point I had been using the Wizard StepConf to configure EMC. There is only so far the Wizards can take you and this maneuver crossed the boundary.

Also, I migrated to a different machine, and installed Hardy, the newest LTS Ubuntu at the same time I was mucking around in my Hal file. I ended up with lots of screwy errors, never change everything all at once, its a bad idea.

Turns out I had commented something out in the Hal file that I shouldn’t have, days ago, and it was screwing everything else up after the computer migration. Once I braced up, went back to the original config and basically started over, I realized what was going wrong.

Trying to use the distro images I downloaded from the EMC web site did not work out well for me either, I tried a few times to install, with lots of disk errors after the restart and general flakiness. Finally, I downloaded an official Alternate CD from Ubuntu and installed that, breeze, then installed EMC, now everything seems to be working pretty well again. I did try two separate downloads and burns of the EMC image with no luck, it installed fine, just wouldn’t run afterwards worth a flip.

After I managed to get controllable square waves coming out of the proper pin I gathered some data on the speed of the spindle.  Hooking a scope to pin 15 on the  Spindle Motor Control Board I found that if you turn the spindle by hand you get two high outputs per revolution.  There is feedback from the spindle that comes to this pin (S1 & S2).  So, by sending the machine different M3 speed commands I was able to keep adjusting the Position-Scale variable in the Hal file until the speed commands almost matched the actual speed of the spindle.

Here is what I ended up with that worked out to be the best:

Position-Scale = .045

Set Speed Measured Speed
1000 2400
5000 6000
10000 11190
20000 21600
30000 27900
35000 28800

Helpful Documents for figuring this out:

StepGen overview that explains various step types.

Wiki page that covers types in some more detail.

Notes from jepler that I got on IRC (Thanks again!)

Ozo.hal file that I eventually ended up with.

Finally, I can cut some material…

Z-Axis Probe Update

Friday, June 27th, 2008

So, finally got the motherboard, back in the machine and everything, drilled, wired, soldered, etc… and… It don’t work 😉

Come to find out that the cool and groovy old green binding post I used has no conductivity from top to bottom.  That’s right folks if you have not learned the lesson all ready, you probably will again, never assume.

Lucky for me it was easy to figure out and I was able to remove the binding post without taking the motherboard back out.  I replaced it with a small bolt and lock nut. Added another ring connector for the wire on the top side of the board.   WahLah, it works!

I added a banana jack to the back of the machine so I can plug different types of probes in, I would really like to do some Scanning .

I spent some time last night trying to get the hang of Zeroing out the Z-axis with the probe.  Still having a bit of trouble with the concepts and the gcode.  The nice folks on #EMC irc freenode are helping me out.

The idea is you use G38.2 (May be for EMC only) like:

G38.2 Z-1 F1 (Tries to move Z axis below work surface stops at probe top)

G92 Z.060  (Moves Origin to new location, this is the tricky part, .060 just compensates for probe height)

Will post back more when I actually get a good system going.

EDIT: Thanks to SWPadnos Coordinate Systems in the wiki really helps.

Hold On, Hold Down

Tuesday, June 24th, 2008

I am almost to the point that I can actually start making chips, and have been thinking about material hold down options.  Ahhh, the little things 😉

Here are couple of articles I found interesting…

Drewtronics writeup on a vacuum table hold down system that looks really nice for circuit boards or other small flat objects.

I’ll probably start with some double face tape and see how that does.  Somewhere in my junk pile I have a couple of old, 1/4″ thick pieces of fiberglass that have an array of holes.  This may have been some kind of heavy duty prototyping breadboard back in the day.  It seems like it may work well as a hold down jig for the moment, while I get a feel for the machine and learn about other options.  I may add to this post as I find more hold down techniques.

Just a picture of one way to construct a t-slot table…

CNCzone Comprehensive list of different hold down techniques

MojoSofts site detailing some very interesting holdown tables etc…

Z-Axis Touch Plate

Tuesday, June 24th, 2008

A touch plate or zero plate is used to zero the toolbit on the Z-axis.  I first saw this in a Hackaday post about quick CNC setup routines.   This person uses a usb pendant, laser and touch plate to very quickly set up a piece of work in the machine.   Here is a link to the video and post…

My machine would really benefit from this setup.  First the machine is far enough away from the computer that I can’t easily see whats going on (I think this must change anyway),  second the spindle I am using has a brush on the bottom that blocks the view of the bit.  The brush is nice, as it locks in debris and helps the vacuum remove chips.  However, it touches down first before the bit makes contact and makes it hard to tell when the bit reaches the surface of the work.

To make this work you need an input pin on the parallel port pulled high and then connect this input pin to a conductive plate.  When the bit, which is at ground potential, touches the plate, it will pull the pin low and signify that the top of the work has been reached, just compensate for the thickness of the plate in software.

I had to pull the mother board out in order to see the bottom of the connector, find a 5 volt rail and map my pull-up resistor to one of the connector pins.  I have been wanting to pull this board off for a while just so I could get a picture of the underside.

Pin 10 goes to the small jumper board but no where else :) Its also an EMC software input.

I found a 5 volt rail close by

There are number of these old binding post in my parts bin, so I decided to use one, had to drill a hole in the board, however I love the way it matches the connectors.

I wired the connector pin for the parallel port to the 5 volt rail through a 10k pullup resistor and wired the connector pin to the binding post.  Now all I have to do is bring the binding post low and the probe pin output should change, indicting the bit has reached the surface of the plate.

Looks kind of orginal from the top, hope it works…

Some Software Success

Saturday, June 21st, 2008

As I am working through the hardware side of this CNC project I have been trying to figure out the software that will enable me to prep my designs for the machine. Really, this has been almost a bigger hurdle for me, though I realize once I get a tool chain figured out it will probably flow without difficulty.

One problem, is sorting through the tons of software that is available. Every package seems to have a different and often funky-clunky GUI with a different tack on how to organize the elements. After trying several methods some of the process is starting to jell.

It seems like there is no do all box for this process at least not yet. You have to find something to do drawings in, then find something to create tool paths and create gcode. Really, I also wanted something that could take images, like bmps, jpgs, etc and prep them for the machine, this would allow me to start with a drawing on actual paper.

What seems like it may work for now, is Inkscape to do tracing, converting from Raster to Vector, or just doing Vector drawings with. Save as DXF, looks like the linux version of Inkscape is the only one that will write AutoCad style DXF files, watch out for this if you try it. After I have the DXF I use CamBam to generate tool paths and GCode.

I have been trying to convert this bitmap that I found via google images for weeks now. So far this is the first method that has worked from start to finish. Seems remarkably easy now, but let me tell you, it was confusing getting here.

Another promising solution that I will probably also use is the GMAX CNC-toolkit combination. GMax is a 3D game scene builder. There is a script called CNC toolkit that you can plug into this software and use to generate toolpaths and gcode. All this ends up being free if you can figure out how to do it. There is a site with documentation and links to the software

Also check out Qcad for an easy to use 2D CAD drawing software. Perfect for drawing up a part with precision for the machine. Saves as DXF so that other CAM processing software can open them.

Here are some screen shots of the original image one with tool paths:

The original image is a mandala from The Mandala Coloring Book
by Monique Mandali

First the image was traced with the linux version of inkscape, the resulting image looks almost exactly like the original, however it is now made up of vector line segments instead of dots, all the better to do math on! The image was saved as a dxf in autocad format and then opened with CamBam.

Mandala converted to tool paths with cambam

Once you have the tool paths and cutters defined its a one click operation to generate the Gcode for the machine.

This is a copy of the mandala gcode if you want to run or look at in a gcode simulator, may have to do just a bit of tweaking with a text editor to make it suite your particular machine, spindle, feedrate etc…

A Donation Wow!!!

Saturday, June 21st, 2008

A reader of my progress on the OZO machine has offered to donate a compressor for the cause (see comments on last post). This is fantastic news, as the tank I have been using is not sealed enough to hold pressure for long periods. If I pressurize to about 80 PSI the tank holds air for about two days. I have not made a serious attempt with soapy water and a brush to find the leaks though.

It doesn’t take many trips out of the house to find air, to realize this idea is not going to work. The compressor will allow me to keep the tank topped off and may even provide auxiliary vacuum for a hold down platform.

I’ll post some pictures when the compressor arrives,

Thanks again Michael, this is very kind of you and a real surprise for me.

EDIT: Here are some pics of the compressor once I got it in the mail

I added the feets as I had them laying around, note how small this cute little guy is.

Here it is sitting on the tank, for perspective, tank is about 1.2 cubic feet and this little pump, pressureizes it to 60psi in about 10min or so…

The compressor is made by GAST, this is a link to the DataSheet

The info is not for this exact pump as the model number is SAA-PXXX-NA

and it states “Derivative Prototype”

Air for the Spindle

Tuesday, June 17th, 2008

Over the weekend, I managed to scrounge together enough plumbing pieces to resurrect an old air tank I have into a working portable air supply. Basically its a tank with air gauge, pressure relief, hose, quick connect, and valve that I can fill up and then attach to the spindle.

The idea was that I would get multiple open/close cycles on the collet without the need for an air compressor. While I managed to get the tank built and worked the collet several times, its still not completly tested.

One flaw in the plan was that they removed the free air line that was a couple of blocks from my house. So, I had to drive around and the only place I found near my house, has a pretty crappy compressor that would only pressurize the tank to about 40 psi.

I was able to actuate the compressor many times with this weak fill however. So… it remains to be seen, if I can fill up the tank and use it for about a week. Still even if it doesn’t work, I am not out much money and it will be a portable tank for filling tires etc…

My Kingdom For a Schematic

Wednesday, June 11th, 2008

You never know how handy a schematic is until you are without one. I tried various ways of enabling and controlling the spindle without success. Part of it was confusion with EMC however most of it was because I was unsure of the layout of the encoder board.

I knew that it boiled down to the signals being presented to the Enable and Vtrip input pins on on the Spindle control board. Enable needed to be held high and the voltage at Vtrip would control the speed of the spindle. I proved that to myself by removing the encoder board and hot wiring the Spindle card directly with the needed signals.

Still, I could not get the spindle to spin up with the encoder board in the machine. Finally I decided to take the time to trace out the circuit on the encoder card. It took a while, 4 opamps, 5 transistors and quite a few discretes on a double sided board can get fairly confusing. I just took it slowly worked on it a bit each evening and eventually came up with this.

Once the mysteries were revealed it was obvious that the control signals where going to have to be repetitive square waves as all the inputs ultimately go through a cap before they can induce voltage on Vtrip. Looks like there is some kind of feedback from the S1 and S2 encoder signals on the spindle itself too, so I am guessing once you set a speed it will maintain even if you encounter a load, this is good news if its true.

In the end I just removed the clamshell from the parallel port cable I was using. Removed all but the signal wires for the XYZ axis, then routed Pin1 from computer to Pin11 of the machine port. Added that control pin to my config file using stepconf, and joy oh joy. I now have control of the spindle from the computer.

Next step is air, the spindle collet opens and closes with air pressure, looks like it may finally be time to get a small compressor for the shop. 😉