Press "Enter" to skip to content

Tag: CNC

Universal Bulkhead Ring Part 2

I’ve been bounding around design and work on some different parts of the AUV but had been meaning to get back to working on the bulkhead ring prototypes. I’ve made some tweaks to the design, mostly so that I can mount internal components directly to the inside of the ring, necessitating the creation of some flat spots on the inner surface, where I can drill and tap mounting holes. These should be fairly easy to cut out on the mill when doing the finishing drill steps.

Universal Bulkhead Ring

I had some time today to sit down and make some progress on the machining and managed to get most of the lathe work done, minus the external grooves which will seal up against the body tube. For the most part, things went well, although I made a fairly stupid mistake and zeroed off the wrong side of the grooving bit when cutting the face grooves — Luckily, not all the rings will need seals and o-rings, so I can put this one into a “wet” compartment where that mistake won’t matter.

Inside Turning large parts on the Sherline

One frustrating battle I did have to fight, however, was with chatter. I had significant chatter on the external turning operation. I think I’ve tracked that down (a little too late) to one of the gibs in the slide, so will need to tweak that before spinning anything more.

One tricky part about the setup is that the part needs to be flipped part way through. To make sure that everything is lined up, I had to place a dial indicator behind the part and very carefully adjust it in the chuck to make sure that I had very little runout. In the end, I got about 2-3 thou peak-to-peak deviation at 2.7″ radius. Not too shabby, and good enough for my purposes.

Aligning the part after flipping, using a dial test indicator on the back face

All in all, however, the g-code works well, and future rings should be much faster/smoother to machine. I ended up settling on a feed speed of 145mm/min and 0.1mm depth of cut with the mill’s motor geared down (~1400rpm with carbide tooling, so a very fast surface speed). I wouldn’t push the machine any harder than this at these large diameters (~5″), especially since the chucking method isn’t super secure, and subject to going out of alignment relatively easily. I suspect I’m feeding too fast with too light of a cut, so on the next ring I’ll experiment with deeper cuts and slower feeds to see if I can improve the chatter/finish/headaches. — Disclaimer: Do not take any of this as good advice. I’m not an expert machinist! This a very non-ideal method for clamping large parts on a small lathe, and can be dangerous if not secured properly. 

Next steps will be to finish this part, and work on the next batch. I’ll need about 8 with my current design, so it may take a bit of time to get them all done…

Universal Ring Progress! Most of the cutting is done at this point.
Leave a Comment

Fiberglass Nosecone Part 1 – Making a Plug

The AUV’s nosecone will be a free-flooded chamber but needs hold its form for hydrodynamic purposes. I had originally planned to make the nose cone have a spherical form at the front with a radius something smaller than the AUV’s diameter, then blending into the body. The purpose of that was to eventually be able to put a phased-array forward-looking sonar in the nose for mapping and obstacle avoidance, and the spherical form looking forward would reduce the refractive effects of the water-fiberglass-water transition.

However, given the magnitude of the scope of building an AUV and a side looking Synthetic Aperture Sonar, any kind of additional forward-looking sonar would be so far down the road that I opted for a simpler, more hydrodynamic and more aesthetically pleasing elliptical nose-cone form instead.

 

AUV Nosecone CAD

The first step in making the nose cone was to build a plug, to be used to make a mold. Using 0.75″ blue insulation foam, I cut out profiles using the CNC machine. The profiles were slightly oversized to compensate for any slop in the assembly and cutting, with the excess to be sanded down to the correct dimensions.

CNC Cut profiles, for the Nosecone Plug Stackup.

The pieces were then glued together, onto a wooden dowel which served to keep everything aligned and to give something for the lathe chuck to bit onto. To keep things tight, I used the mill itself to act as a “clamp”. The joy of working with foam is that you can get away with doing things you shouldn’t do with harder materials…

The plug profiles glued together and mounted on the mill to act as a vice. This is the same configuration I used to turn the part.

I cut out another profile, and lined the inside with sandpaper — This was used to help sand the foam to the right shape. Once in the spackle stage, the form was used to help evenly spread the spackle. It would have been better to use a more rigid material for the form, like wood, but I didn’t have any kicking around, so opted to work with what I had.

Sanding Form for the Nosecone with my CAM software running in a virtual machine in the background.

The first sanding step was to sand the foam past the target dimensions, and then build up a layer of spackling filler – The spackling will help give a smoother, stronger finish than is achievable with foam, which is essential for a good fiberglass mold, and hydrodynamic surface. I used quick-dry spackle to speed up working time, although since it off-gases quite a bit as it dries, I had to use it outside and the cold weather slowed the dry time back down to a crawl. The quick-dry spackle does shrink somewhat as it dries, causing cracking in thick layers, but that’s okay as the cracks are filled in over subsequent, finer applications.

Nosecone Plug after initial sanding and two layers of spackle, ready for a spin on the lathe. (LinuxCNC with test program in the background)

Once a decent layer of spackle was built up over top of the foam, I used the CNC lathe to bring the plug to the correct dimensions and symmetry. To create the G-Code, I used e-Cam running in my Windows VM. Since I didn’t have to rough away all the material from a full cylinder, I created a DXF file with offset profiles from the final shape, starting at 0.25mm and building up to 1mm steps. Importing these, I created a series of “finishing” profiles, which resulted in tracing the final lines.

Generating the G-Code to finalize the nosecone shape.

Normally the Sherline lathe can’t handle very large diameters, but using riser blocks and some custom made tool risers (Another thing I worked on over the break, which I’ll need to finish other AUV parts) I managed to swing the large diameter part. Luckily, the plaster is relatively soft and easy to work with. I’ve run it through the CNC program once, and then added some extra plaster to fill in some gaps where it wasn’t thick enough and will run it through again once that’s dry.

Next steps will be to seal the surface with epoxy resin, polish smooth and wax to perfection — The more time spent working on the plug, the better the end result will be. Since I don’t have a suitable indoor workshop for curing resin (fumes), I’ll need to use a resin formulated to cure at temperatures near freezing so that I can do the epoxy/fiberglass work on the patio. Winter in my neck of the woods is more akin to spring in the rest of Canada and doesn’t go below freezing very often. Unfortunately, this year winter has been a bit colder than usual, so it may be a while before it warms up enough for fiberglass work…

Otherwise, AUV design is slowly progressing. I’ve been taking some more test cuts and refining the CNC programs to generate the universal rings. I’ve been putting more thought into the electronics and control of the AUV, but will leave that as a topic for a future post.

Leave a Comment

A Lesson in Rigidity

After getting some metal stock this week, I was anxiously waiting for the weekend so I could start machining some prototypes for the AUV’s universal ring bulkheads.

Now, I need to throw out a disclaimer — I’m not an expert machinist by any stretch of the imagination. In fact, quite the opposite and I’m learning as I go, which is what this post is all about.

Having read through different things on feeds and speeds, I set up some programs with what I thought were somewhat aggressive cuts (for the Sherline) that I hoped the machine could handle — 1mm depth with a 3/8″ end mill into 6061 aluminum, with a feed of about 260 mm/minute. I’d read complaints about the rigidity of the 2000 series mill, but figured I’d try anyways.

The intent was to mill out the center of a 6″ diameter piece of Aluminum, so I could use the 3.1″ Sherline chuck to clamp from the inside onto the lathe for all the turning operations I’d need to do. I was hoping to salvage the inside chunk, since the stock wasn’t cheap. I planned on accomplishing this by milling in half way from one side, then flipping the part and milling in from the other side.

Now, the Sherline motor handled the first cuts like a champ. The 2000 series vertical column? Not so much. Unfortunately, as the machine went through the cuts, it put enough stress on the vertical column causing it to pivot along the vertical axis and throwing it off center. You can see the steps caused by this in the picture below, due to the column gradually pivoting at each cut, throwing off the alignment more and more. Luckily this was a roughing cut, so the the stock wasn’t lost.

Stepped profile caused by the wandering alignment of the mill's vertical column
Stepped profile caused by the wandering alignment of the mill’s vertical column

Eventually, I tightened the column well enough that it finished the last cuts without too much added deflection. Figuring I could tighten up the mill just a little bit more before flipping the part and trying the other side, I put the wrench on again, applied some torque and snapped the bolt clean off, leaving me with a Z-axis no longer attached to my mill, and the mill out of commission!

Not to be deterred, I figured I would try and see how well the the part fit in the lathe’s chuck using the pocket that was milled in one side. Not too bad, I must say:

6" diameter part on a 3,1" diameter chuck
6″ diameter part on a 3,1″ diameter chuck

I then screwed the chuck inot the lathe. I had to use two riser blocks to get clearance on the large part, causing some inappropriate cutter geometry. I needed that much offset to get the part below 6″ diameter, after which the intent is to only use a single riser block, and some special tool holders I’m planning to make in order to hold tools perpendicular to the part.

Turning large diameter parts
Turning large diameter parts

Turning the large diameter part was easier than I’d thought I used 0.2mm depth of cut and a 60 mm/min feed rate, which the machine handled well. The part stayed solidly affixed to the chuck, even when I accidentally crashed the tool into the part.

Now that I’ve gotten the stock cut such that I can mount it on the lathe, and turn it freely on the lathe, hopefully soon I’ll be able to start working it to the final shape. Unfortunately, I ran out of time to machine today and had to start cleaning up at this point.

Next steps, I’ll have to fix the mill. From what I’ve read online, the rigid column Sherlines fare much, much better than the fancy articulating column mills, and luckily the part to do the conversion is fairly inexpensive. Although perhaps the Sherline isn’t the right tool for machining large parts en-masse, for the quantities of parts I need and considering it’s what I already had available, it looks like it’ll fit my needs just fine.

2 Comments

Setting up a CNC Mill and Lathe Part 2

I didn’t write a post for it, but I did the CNC conversion on the Mill and Lathe about a month back, and for the most part, it went well. This weekend, I finally had enough spare time to get back to working on getting it actually up and running. I’ve somewhat trammed the machine and gotten rid of most of the backlash, but will need to do a bit more work on that before working on real parts — The big “fun” thing I did was get some g-code running on the mill, and do some practice engravings with a sharpie and some paper. Things are working pretty well, and there’s definitely something cathartic about the sound of the steppers working through circular profiles. (Even if the knobs on the handwheels are rattling somewhat. I’ll need to tape those down)

eCam Engraving Test
eCam Engraving Test

For a CAM program, I’ve been looking for something that can handle non-trivial profiles on the lathe, so that I can use it to machine the profiles of the AUV’s Kort nozzle and nose-cone. Affordable lathe CAM programs are hard to find, but one that has piqued my curiosity is eCam — I’m playing around with the trial version right now, and it seems to be working well for my uses so I think I’ll shell out and purchase a copy once I’ve confirmed it can output effectively to LinuxCNC for some specific uses cases I have. It’s definitely in the lower price range for CAM software, at least for hobby usage.

Some minor modifications to eCam’s post-processor were needed for the basic engraving routine:

  • Update the “Head New Program” section by removing the line “O{PRG_NUM}({PRG_NAME})” and splitting the line “G0G28G91Z0” into three unique lines, one for each G code command. (LinuxCNC doesn’t support multiple G-code commands with a coordinate in a single line. Multiple G-code commands without coordinates appear to be fine)
  • Disable incremental moves.
CNC Testing, "Engraving" With a Sharpie.
CNC Testing, “Engraving” With a Sharpie.

Loading up the code was pretty painless, and the milling machine is working well so far! The lathe tests are showing I need to do a bit more work on the postprocessor to get it to play nicely with LinuxCNC, but it doesn’t look like it will be too onerous.

I’ll try to get some materials soon, after which if all goes well I can start working on some of the AUV’s structural components.

Leave a Comment

Setting up a CNC Mill and Lathe Part 1

One of the key factors to getting my AUV project underway was converting my mill and lathe to CNC, something I’ve been meaning to do for a while. After much research, I settled on the Gecko 540 and some decent steppers and put in a parts order.

With those parts en-route, I talked getting LinuxCNC running on a machine from 2006 — An AMD 64 X2 3800+ based computer, with a Radeon X850 video card. Initially trying the latest and greatest LinuxCNC, I got atrocious latency results. I ended up trying out old releases, starting with 8.04 (Hardy Heron was a flash from the past!) up to 12.04 and settled on 10.04 as the best compromise in terms of latency performance vs new distro. After a lot of painstaking work, I finally got good latency results:

Final Latency Test Results
Final Latency Test Results

It ended up being a bit of a paint to tweak everything just right to minimize latency spikes and in the end, I think I’ve actually made my BIOS inaccessible with a USB Keyboard, so next time I want to get into it I’ll need to scrounge up an old PS2 keyboard… To get this relic of a computer running reliably, I ended up having to:

  • Install of the 10.04 ISO and then update the LinuxCNC install to 2.6
  • Turn off _everything_ in the BIOS, or at least set it to manual (e.g. overclocking, power savings)
  • Modify Grub to pass “acpi=disable isolcpu=1” plus the additional options in the next link
  • Applying the IRQ tweaks listed here (This dropped the regular latency by an order of magnitude!)
  • Still using the stock open-source Radeon driver — Vesa improved the “resting” latency by a factor of 2, but when running glxgears it popped back to the same range.

The frustrating part is that I still experience large spikes when opening Firefox or other applications while 2x glxgears are running, I suspect due to some HDD access issue. Either way, I’m not planning on using this machine for anything else while machining, so hopefully I won’t run into problems with that. Without opening large programs and running 2x glxgears, I’m getting a latency of about 5000ns — Not too bad!

 

 

 

Leave a Comment