<?xml version="1.0"?>
<!-- name="generator" content="blosxom/2.0" -->
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">
  <channel>
    <title>Magic Smoke   </title>
    <link>http://jmkasunich.dyndns.org/cgi-bin/blosxom</link>
    <description>Once the magic smoke comes out, it won't work any more.</description>
    <language>en</language>

  <item>
    <title>Surface grinder into the basement</title>
    <pubDate>Sat, 19 Jul 2008 23:21:00 EDT</pubDate>
    <link>http://jmkasunich.dyndns.org/cgi-bin/blosxom/2008/07/19#grinder1-07-19-08</link>
    <description>
&lt;p&gt;
One unfortunate fact about where I live is that my shop isn't limited by what machinery
I can afford - it is limited by what machinery I can find room for.  My garage is detached
and unheated, and in Cleveland's climate, that means I have to fight rust, especially in
the spring.  My Van Norman #12 mill is out there, but I'm not willing to put any other
machines in the garage.  So any new tools not only have to be small enough to fit in my
rather cramped basement, but they also have to be light enough to move down the steps.
&lt;/p&gt;

&lt;p&gt;
Today was the &quot;Saturday Sidewalk Sale&quot; at 
&lt;A href=&quot;http://www.hgrindustrialsurplus.com/index.aspx&quot;&gt;HGR Surplus&lt;/A&gt; (they're only open one
Saturday a month).  After spending a few minutes looking at a reasonably affordable and
very nice Mitsui surface grinder, sanity kicked in and I walked away - it probably weighed
over a ton.  But a little later I found a nice benchtop 6x12 grinder.  &quot;Targa&quot; brand, made in
Tiawan (a bit better than made in China), it seems to be identical to
&lt;A href=&quot;http://www.use-enco.com/CGI/INSRIT?PARTPG=INLMKD&amp;PMPXNO=16720603&amp;PMAKA=619-2879&quot;&gt;
this Enco one&lt;/A&gt; - 3/4HP, single phase 120V motor, 451 lbs.  But it was a LOT cheaper at
HGR - I paid about one-tenth the Enco price.
&lt;/p&gt;

&lt;p&gt;
HGR's forklift easily loaded it into my truck, but the hard work started when I got home.
Before I even unloaded it I started taking it apart to reduce weight.  The table lifts right
off - 65 pounds.  The &quot;saddle&quot; (dunno what the proper term is) slid off after I unscrewed it
all the way to the front and loosened the gibs - 74 lbs.  Four socket head capscrews and some
disconnected wires let me remove the motor/spindle assembly - 48 pounds.  And finally, screwing
the vertical slide all the way up and loosening the gib allowed it to be removed - 33 lbs.  The
remaining base casting is about 225 lbs - still too much to move by brute force.
&lt;/p&gt;

&lt;p&gt;
Step 1 was sliding it from the truck tailgate onto a rolling cart.  That wasn't too hard - the
cart is only a few inches higher than the tailgate, and the machine was on a small pallet.
&lt;/p&gt;
&lt;p&gt;
Step 2 was getting it onto
the back porch.  The cart is about level with the porch, so I moved it to the foot of the porch
steps and spanned the gap between cart and top porch step with a seven foot piece of 2x8.
I carefully slid the machine along the 2x8 until it was setting safely on the porch.
&lt;/p&gt;
&lt;p&gt;
Step 3 was getting it into the kitchen.  I left it on the 2x8 - it made a handy lever.  By
pushing the casting to one end of the board, I could lift the other end, and stick a moving
dolly under the middle.  Then I slid the casting back to the middle over the dolly.  The 2x8
very nicely bridged the threshold of the sliding glass door, and a bit of sliding and levering
was all it took to get the casting in the house with the dolly once again under it.  (See first
picture below.)
&lt;/p&gt;
&lt;p&gt;
Step 4 is the biggie - getting it down the steps.  There is a bathroom directly across from the
top of the steps, and I braced a piece of 2x6 across the inside of the bathroom doorway.  That
served as an anchor for a block-and-tackle that allowed me to ease the casting down the steps,
still sitting on the long 2x8.  The rigging allowed me to have total control of the casting
during what would otherwise have been some very hairy moments.  The second picture below shows
it just about to go &quot;over the edge&quot;, as the 2x8 tilts from level on the floor, to sliding on
the steps.  The third photo shows it about half way down - note the superviser at the top of
the stairs, making sure I'm doing it right.
&lt;/p&gt;
&lt;p&gt;
Step 5 was getting it from the basement floor up onto the bench.  I used a few deck screws to
fasten a short piece of 2x8 across three joists.  Then I wedged uprights on both ends, so the
screws and joists wouldn't need to carry the weight.  Rigged the block and tackle again, this
time to lift the casting straight up.  The next-to-last photo below shows it half-way up, and
the last photo shows it sitting on the bench.
&lt;/p&gt;

&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/grinderbase-indoors-2433.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/grinderbase-indoors-2433-thumb.jpg&quot; HEIGHT=&quot;250&quot; WIDTH=&quot;143&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/grinderbase-on-the-edge-2434.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/grinderbase-on-the-edge-2434-thumb.jpg&quot; HEIGHT=&quot;250&quot; WIDTH=&quot;122&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/grinderbase-almost-down-2438.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/grinderbase-almost-down-2438-thumb.jpg&quot; HEIGHT=&quot;250&quot; WIDTH=&quot;136&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/grinderbase-hoisting-2443.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/grinderbase-hoisting-2443-thumb.jpg&quot; HEIGHT=&quot;250&quot; WIDTH=&quot;140&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/grinderbase-onbench-2445.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/grinderbase-onbench-2445-thumb.jpg&quot; HEIGHT=&quot;250&quot; WIDTH=&quot;185&quot;&gt;&lt;/A&gt;

&lt;p&gt;
Tomorrow I'll bring in the rest of the pieces, clean everything, and put it back together.  It
still needs a magnetic chuck, but &lt;A href=&quot;http://www.smalltools.com/new.asp&quot;&gt;Small Tools Inc.&lt;/A&gt;
has some used ones in the $100-125 price range that look promising.
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Getting Organized</title>
    <pubDate>Sat, 31 May 2008 23:24:00 EDT</pubDate>
    <link>http://jmkasunich.dyndns.org/cgi-bin/blosxom/2008/05/31#new-bench-03-31-08</link>
    <description>
&lt;p&gt;
I've spent much of the last month remodeling one corner of the basement.  It's funny
how projects happen...
&lt;/p&gt;

&lt;p&gt;Back in March I ran across a great deal on a stereo microscope at &lt;A HREF=&quot;http://www.hgrinc.com/&quot;&gt;
HGR Surplus&lt;/A&gt;.  I've wanted one for quite a while, so I bought it.  When I brought it home
and took it downstairs, I realize that I didn't really have a place for doing precision work
like electronic soldering and surface plate work.  My surface plate has been living on the
floor for several years now, and I either use it there, or temporarily clear off a spot for
it somewhere.  So I decided I need a new workbench...
&lt;/p&gt;

&lt;p&gt;
I went back to HGR, and found some 95&quot; x 30&quot; blue formica workbenches with sturdy steel
frames for $35 each.  At that price, I figured I might as well get two.  I figured out
where I wanted to put the first bench, but I knew I would want storage space above the it.
That meant yet another project - framing and wallboarding the wall, so I wouldn't have
to anchor stuff directly to the concrete blocks.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/framing-2031.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/framing-2031-thumb.jpg&quot; HEIGHT=&quot;134&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/framed-and-insulated-2032.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/framed-and-insulated-2032-thumb.jpg&quot; HEIGHT=&quot;184&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;p&gt;
After the wall was done, I painted the wall and the floor while there was nothing to get
in the way.  Then did a little welding on the workbench frame - I decided that the front
crossmember at the bottom would interfere with legroom, so I ground off the welds and moved
it back about 8&quot;, then welded it back on.  That was my first real welding project.
&lt;/p&gt;
&lt;p&gt;
Once the bench was inside it was time for storage above it.  I spent at least two weeks building
the shelves in the photo below.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/new-bench-2109.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/new-bench-2109-thumb.jpg&quot; HEIGHT=&quot;148&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;p&gt;
I finished the shelves and got the area cleaned up last weekend, and since then I've been slowly
moving items over there.  Today I used some of the scrap wood from the shelves to make a box for
my ER20 collets.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/collet-box-2111.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/collet-box-2111-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;164&quot;&gt;&lt;/A&gt;
&lt;p&gt;
And that is how &quot;buying a microscope&quot; turns into about six or seven projects that take a couple of months...
&lt;/p&gt;</description>
  </item>
  <item>
    <title>Spring is here!</title>
    <pubDate>Thu, 08 May 2008 23:19:00 EDT</pubDate>
    <link>http://jmkasunich.dyndns.org/cgi-bin/blosxom/2008/05/08#north-chagrin-05-04-2008</link>
    <description>
&lt;p&gt;
I went to the park Sunday.  Spring is finally here to stay I think.  There were lots of small flowers
(most less than 3/4&quot; across) and I had fun with my 70-300mm macro lens.
&lt;/p&gt;

&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/flower-2044.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/flower-2044-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;138&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/flower-2045.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/flower-2045-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;168&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/flower-2074.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/flower-2074-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;176&quot;&gt;&lt;/A&gt;
&lt;br&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/flower-2060.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/flower-2060-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;174&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/flower-2081.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/flower-2081-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;151&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/flowers-2076.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/flowers-2076-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;154&quot;&gt;&lt;/A&gt;
&lt;br&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/flower-2105.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/flower-2105-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;197&quot;&gt;&lt;/A&gt;

&lt;p&gt;
One of the neatest sights was leaves just getting ready to explode out of their buds.  This is one of
my favorite photos - the fine silky fibers make the leaf seem almost like a butterfly trying to break
out of its cocoon.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/leaf-bud-2050.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/leaf-bud-2050-thumb.jpg&quot; HEIGHT=&quot;108&quot; WIDTH=&quot;300&quot;&gt;&lt;/A&gt;
&lt;p&gt;
On another branch I got several leaves in various stages of blossoming.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/leaves-breaking-out-2056.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/leaves-breaking-out-2056-thumb.jpg&quot; HEIGHT=&quot;197&quot; WIDTH=&quot;300&quot;&gt;&lt;/A&gt;

&lt;p&gt;
A little way down the path I was surprised by a large dragonfly - I think of them summer insects.  It
settled on a plant just long enough for me to grab a quick shot, then went flying again.  Another one
joined it, a mating dance maybe?  In any case they never stayed in one place long enough for me to
get another shot.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/dragonfly-2064.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/dragonfly-2064-thumb.jpg&quot; HEIGHT=&quot;250&quot; WIDTH=&quot;204&quot;&gt;&lt;/A&gt;

&lt;p&gt;
After a couple hours I wound up beside a pond not far from where I parked.  I noticed a turtle had climbed
out of the pond onto a log to bake in the sun:
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/turtle-1-2083.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/turtle-1-2083-thumb.jpg&quot; HEIGHT=&quot;115&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;

&lt;p&gt;
While I was taking its picture, another one climbed out:
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/turtles-2-2089.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/turtles-2-2089-thumb.jpg&quot; HEIGHT=&quot;120&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;

&lt;p&gt;
And then a third (the first one is out of the picture to the left).
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/turtles-3-2093.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/turtles-3-2093-thumb.jpg&quot; HEIGHT=&quot;107&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;

&lt;p&gt;
Turtle number three hadn't even made it out of the water when number four showed up:
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/turtles-4-2095.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/turtles-4-2095-thumb.jpg&quot; HEIGHT=&quot;98&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;

&lt;p&gt;
And then there were five:
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/turtles-5-2096.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/turtles-5-2096-thumb.jpg&quot; HEIGHT=&quot;105&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;

&lt;p&gt;
Still an empty spot on the log, so turtle number six made himself comfortable:
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/turtles-6-2097.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/turtles-6-2097-thumb.jpg&quot; HEIGHT=&quot;93&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;

&lt;p&gt;
I like this shot - I'm not sure why they are sticking their necks out and up, but it looks funny.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/turtles-staring-at-sky-2100.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/turtles-staring-at-sky-2100-thumb.jpg&quot; HEIGHT=&quot;103&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;







</description>
  </item>
  <item>
    <title>All the real welders can start laughing now</title>
    <pubDate>Thu, 01 May 2008 21:08:00 EDT</pubDate>
    <link>http://jmkasunich.dyndns.org/cgi-bin/blosxom/2008/05/01#welding-101-05-01-08</link>
    <description>
&lt;p&gt;
I went to the NAMES (North American Model Engineering) show a couple weeks ago.  I've
been wanting to learn to weld for several years now.  There was a salesman doing demos of
the &lt;A href=&quot;http://www.cobratorches.com/7.html?sm=16078&quot;&gt;Cobra 2000 (aka Henrob 2000) Torch&lt;/A&gt;.
Of course the salesman makes it look easy.  I succumbed to the demo, and bought a torch.  Today
I finally got all the other bits and pieces, and started playing with it.
&lt;/p&gt;
&lt;p&gt;
The &quot;starter kit&quot; comes with a few pieces of steel for you to practice welding on.  My first
attempt at welding two of them together resulted in one piece of steel, but it wasn't very
pretty.  For real practice I'd probably need about 50 pieces.  But since I only had three,
I spent the next hour or so abusing the piece that I welded together - just running beads every
which way, melting holes in it and then trying to fix them, etc.
&lt;/p&gt;
&lt;p&gt;
When that got old, I started looking around for things to weld.  They say when the only tool you
have is a hammer, everything looks like a nail.  Well, when you have a brand new torch, everything
wants to get welded.  But I didn't really find much.  I did find a pair of brackets, I think they
once held reflectors on a bicycle.  So I welded them together:
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/welded-brackets-2035.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/welded-brackets-2035-thumb.jpg&quot; HEIGHT=&quot;179&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/welded-brackets-2036.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/welded-brackets-2036-thumb.jpg&quot; HEIGHT=&quot;167&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;p&gt;
The brackets were fairly thin - 0.040 by my calipers.  I looked around and found some thicker stuff.
A couple of pieces of 1/8&quot; x 3/4&quot; flat steel.  So I butt welded them together.  The first pass didn't
quite get complete penetration, but it stood up pretty well when I tried bending it.  I flipped it over
and did the back just to make sure.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/butt-weld-2033.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/butt-weld-2033-thumb.jpg&quot; HEIGHT=&quot;123&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;/p&gt;
&lt;p&gt;
I soon got tired of looking for pieces of metal to abuse, when I thought of nails.  My stock of 2-1/2&quot;
finishing nails is a bit depleted now - it took three tries (at six nails each) before I got this:
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/pyramid-2037.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/pyramid-2037-thumb.jpg&quot; HEIGHT=&quot;189&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;p&gt;
More practice is clearly needed - this weekend I'm gonna go digging through the scrap metal pile and
see what I can come up with.
&lt;/p&gt;

</description>
  </item>
  <item>
    <title>More Production - Tecumsah Intake Manifolds</title>
    <pubDate>Tue, 15 Apr 2008 22:15:00 EDT</pubDate>
    <link>http://jmkasunich.dyndns.org/cgi-bin/blosxom/2008/04/15#manifolds-2008-04-15</link>
    <description>
&lt;p&gt;
A friend of mine is very into minibikes.  These bikes use a Tecumsah engine that is identical
in most respects to a snowthrower engine.  However. the engine is mounted on an angle, and
needs a non-standard intake manifold to keep the carb level.  My friend had patterns made and
got 18 manifolds from an aluminum foundry, and then came to me for machining.
&lt;/p&gt;
&lt;p&gt;
Holding the raw casting was a bit tricky, but eventually I came up with a setup that located
the part using some features at the carb end flange.  The photo below shows the setup I used
to machine the carb end.  One program with one tool change, to mill the end flat, clean up the
inside of the manifold to make the opening round and concentric, and drill the screw holes.
The second pic shows 11 of the 18 parts after the first program.  The final step at the carb
end was to thread the holes.  That went rather quickly with a tapping head on the drill press.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/carb-flange-setup-1996.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/carb-flange-setup-1996-thumb.jpg&quot; HEIGHT=&quot;164&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/carb-end-machined-1999.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/carb-end-machined-1999-thumb.jpg&quot; HEIGHT=&quot;141&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;p&gt;
The block end had a lot of material to be removed.  Instead of nibbling at it with the Shoptask,
I screwed each manifold to a steel block, clamped the block in a tilt vise at the proper angle,
and let my Van Norman make a single pass with my 5-1/2&quot; face mill.  A slow shutter blurred the
cutter - it is only doing 140 RPM or about 200 SFPM.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/block-end-facing-2003.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/block-end-facing-2003-thumb.jpg&quot; HEIGHT=&quot;167&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/block-end-faced-2007.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/block-end-faced-2007-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;185&quot;&gt;&lt;/A&gt;
&lt;p&gt;
The cores were pretty far away from the desired shape at the block end, so the ports needed a
lot of work.  I used the same steel block and angle vise to mount the parts with the port facing
straight up on the Shoptask.  Jeff Epler let me use some alpha-stage offsetting software that he
has been working on.  The resulting g-code matches the port in the manifold to the one in the
engine block, and blends that profile down into the as-cast interior of the manifold.  The program
used a 5/16&quot; end mill for roughing, a 1/8&quot; mill for finishing, and a drill to make the mounting
holes.  Because of machining time, most of them were done with a 0.050 stepdown.  But I did a 
few with a much smaller step size, and they came out very nice.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/port-machined-2014.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/port-machined-2014-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;172&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/port-fine-machined-2019.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/port-fine-machined-2019-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;190&quot;&gt;&lt;/A&gt;
&lt;p&gt;
Both ends of the manifold needed tool changes during the program run.  My machine has totally
manual toolchanging.  However, I'm using the &lt;A href=&quot;http://www.tormach.com/Product_TTS.html&quot;&gt;
&quot;Tormach Tooling System&quot;&lt;/A&gt;. which works quite nicely.  Each tool has a 3/4&quot; straight shank that
goes up into a collet in the spindle.  As the collet draws tight, it pulls a 1-1/2&quot; diameter shoulder
up against the spindle nose for a very repeatable Z position.  It is quite fast and easy to change
tools - I was getting 30 to 40 seconds chip-to-chip, with very repeatable results.
&lt;/p&gt;
&lt;p&gt;
Tormach sells a variety of tooling for the system, but it is really pretty simple to convert other
tools.  For example, I'm too cheap to buy the Tormach collet chucks at about $80 each.  But I found
some very nicely made &lt;A href=&quot;http://www.maritool.com/Tool-Holders-Straight-Shank/c23_28/p68/ER16-3/4-2.0-STRAIGHT-SHANK-COLLET-CHUCK/product_info.html&quot;&gt;3/4&quot; straight shank ER20 chucks&lt;/A&gt; from &lt;A href=&quot;http://www.maritool.com/&quot;&gt;
MariTool Inc.&lt;/A&gt; for about $45 each.  I made 1-1/2&quot; diameter rings with a 0.749 bore and shrunk them
on to the 3/4&quot; straight shanks, and they work perfectly.  The photo below shows my current collection
of spindle tooling - the collet chucks with the homemade rings are on the right.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/mill-tooling-2012.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/mill-tooling-2012-thumb.jpg&quot; HEIGHT=&quot;100&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
</description>
  </item>
  <item>
    <title>Mass Production</title>
    <pubDate>Tue, 01 Apr 2008 20:07:00 EDT</pubDate>
    <link>http://jmkasunich.dyndns.org/cgi-bin/blosxom/2008/04/01#pull-blocks-2008-04-01</link>
    <description>
&lt;p&gt;
Most of the CNC work I've done so far has been one or two pieces.  But this job is
different.  I have a friend who works in a lab where they sometimes need the odd bit
of metal.  I've done jobs for her before, but this is the first one since I got the
CNC working.
&lt;/p&gt;
&lt;p&gt;
They needed 20 'pull blocks'.  These blocks get glued to samples of tile, then they
use a tensile tester to pull the blocks and tiles off of a substrate - it tests the
strength of the tile cement.
&lt;/p&gt;
&lt;p&gt;
The parts are made from 2&quot; square steel bar, one inch long.  Face one end, then face,
drill, and thread the other end for a pull stud.  I've been learning more about how
to use EMC, and for this job I learned all about lathe tool offsets.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/pull-block-setup-1940.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/pull-block-setup-1940-thumb.jpg&quot; HEIGHT=&quot;181&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;p&gt;
The above photo (blurry, sorry) shows the setup for the second operation.  The facing
tool is in the toolpost (on the left), the drill is in the tailstock, and the threading
tool is clamped down with a couple step blocks on the right.  I'm using tool offsets
when I switch from one tool to the next.
&lt;/p&gt;
&lt;p&gt;
The program first faces the block.  Then it prompts me to drill the hole.  It positions
the table so a strap clamp bolted to the table lets me know where to position the tailstock,
and I stop drilling when the nose of the chuck hits the clamp holding the threading tool.
Then I retract the tailstock and hit 'Resume'.  The program switches to the threading
tool and makes a couple of boring passes first, to make sure the drilled hole is on center.
Then it threads the hole M12-1.75.  While it is threading, I debur the previous part.
&lt;/p&gt;
&lt;p&gt;
The finished parts:
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/pull-blocks-finished-1993.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/pull-blocks-finished-1993-thumb.jpg&quot; HEIGHT=&quot;134&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;</description>
  </item>
  <item>
    <title>Spring is coming</title>
    <pubDate>Mon, 31 Mar 2008 21:40:00 EDT</pubDate>
    <link>http://jmkasunich.dyndns.org/cgi-bin/blosxom/2008/03/31#north-chagrin-03-30-2008</link>
    <description>
&lt;p&gt;
March in northern Ohio is still winter, but bird activity is starting to pick up.  I took a couple
walks in the woods over the weekend and got some nice pictures.
&lt;/p&gt;

&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/chickadee-1986.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/chickadee-1986-thumb.jpg&quot; HEIGHT=&quot;171&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/mystery-bird-1968.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/mystery-bird-1968-thumb.jpg&quot; HEIGHT=&quot;132&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;

&lt;p&gt;
One tree was very popular with woodpeckers.  Both male and female Hairy and Downy woodpeckers.  I don't
know which these are - I got photos of both but the others didn't come out so nice.
&lt;/p&gt;

&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/woodpecker-1966.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/woodpecker-1966-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;161&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/woodpecker-1972.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/woodpecker-1972-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;168&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/woodpeckers-1963.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/woodpeckers-1963-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;168&quot;&gt;&lt;/A&gt;

&lt;p&gt;
In addition to birds, I saw some ferns clinging to a steep hillside, and some kind of seeds left over from fall.
&lt;/p&gt;

&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/ferns-1954.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/ferns-1954-thumb.jpg&quot; HEIGHT=&quot;142&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/seeds-1988.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/seeds-1988-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;170&quot;&gt;&lt;/A&gt;

&lt;p&gt;
I think the last photo is my favorite
&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Variable-pitch, variable-diameter threadcutting</title>
    <pubDate>Mon, 31 Mar 2008 00:27:00 EDT</pubDate>
    <link>http://jmkasunich.dyndns.org/cgi-bin/blosxom/2008/03/31#fusee-1</link>
    <description>
&lt;p&gt;
In &lt;a href=&quot;http://jmkasunich.com/cgi-bin/blosxom/shoptask/eng-week-02-21-08.html&quot;&gt;this post&lt;/a&gt; I mentioned
making a 'fusee', as part of a rat-trap powered vehicle.  The trap pulls a wire, which unwinds off of a 
threaded spool.  The spool starts out large, to provide a lot of torque, then as the vehicle gets moving,
the diameter drops to get more distance.  The idea is the same as shifting gears in a car.  The picture
below shows the spool with the wire wound up, ready to go.
&lt;/p&gt;
&lt;A HREF=&quot;/pics/fusee-DSC00563.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/fusee-DSC00563-thumb.jpg&quot; HEIGHT=&quot;181&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;p&gt;
I promised a post and maybe a video about how that part was made, so here it is.  First the video (on YouTube):
&lt;/p&gt;

&lt;object width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/ACvRilmIKDQ&amp;hl=en&quot;&gt;&lt;/param&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/ACvRilmIKDQ&amp;hl=en&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;

&lt;p&gt;
Below is the G-code that was used to cut the spool.  I've broken it up into chunks so that I
can explain what is going on.
&lt;/p&gt;
&lt;p&gt;
Comments in g-code are in parenthesis.  I tend to use a lot of comments - it's not the most transparent
language, and I sometimes can't even read my own code a few weeks or months after I wrote it.  I added
even more comments when writing this post.
&lt;/p&gt;
&lt;p&gt;
The lines after the comments are the data that defines the shape of the spool.  I used a spreadsheet to
calculate the shape I needed, based on how much wire I had, how far the vehicle had to go, and so on.
Every project will need something different.  When I was done, I had three columns with the Z (length),
X (radius) and K (pitch) values.  I exported that chunk of the spreadsheet to a text file, and massaged
it into what you see below.
&lt;/p&gt;
&lt;p&gt;
EMC2s g-code has a bit of a split-personality as programming languages go.  It is a complete programming
language, with flow control, variables, etc.  In some ways it is quite high-level.  You can cut a circle with a
single line of code, the flow control is structured (no GOTO), etc.  But there are no data structures,
there are no arrays, in fact, there aren't even named variables.  The statement '#1100 = 0.3200' assigns the 
value 0.3200 to the variable at location 1100.  There 5000 possible variables, plus some dedicated ones
above 5000.  So what I'm doing here is making three &quot;arrays&quot;, each with 28 entries.  I'm wasting a bunch
of variable space, from 1028 through 1099, 1128 thru 1199, etc, but it doesn't matter.
&lt;/p&gt;

&lt;pre&gt;

    (program to cut a variable-pitch, variable-diameter threaded pulley)
 
    (the profile - each segment is defined by its ending Z,X coordinates)
    (and by the distance per rev along that path - the pitch)
    (note that even though the profile is defined from left to right, )
    (the part will be cut from right to left)

    (Z values stored in #1000 and up)
    (X values stored in #1100 and up)
    (K values - pitch - stored in #1200 and up)

    #1000 = 0.0000   #1100 = 0.3200   #1200 = 0.0450
    #1001 = 0.0450   #1101 = 0.2560   #1201 = 0.0450
    #1002 = 0.1530   #1102 = 0.2560   #1202 = 0.0450
    #1003 = 0.2190   #1103 = 0.2406   #1203 = 0.0440
    #1004 = 0.2620   #1104 = 0.2189   #1204 = 0.0430
    #1005 = 0.3040   #1105 = 0.1920   #1205 = 0.0420
    #1006 = 0.3450   #1106 = 0.1651   #1206 = 0.0410
    #1007 = 0.3850   #1107 = 0.1480   #1207 = 0.0400
    #1008 = 0.4240   #1108 = 0.1390   #1208 = 0.0390
    #1009 = 0.4620   #1109 = 0.1330   #1209 = 0.0380
    #1010 = 0.4990   #1110 = 0.1280   #1210 = 0.0370
    #1011 = 0.5350   #1111 = 0.1280   #1211 = 0.0360
    #1012 = 0.5700   #1112 = 0.1280   #1212 = 0.0350
    #1013 = 0.6040   #1113 = 0.1280   #1213 = 0.0340
    #1014 = 0.7294   #1114 = 0.1280   #1214 = 0.0330
    #1015 = 0.7644   #1115 = 0.1219   #1215 = 0.0350
    #1016 = 0.7994   #1116 = 0.1132   #1216 = 0.0350
    #1017 = 0.8324   #1117 = 0.1025   #1217 = 0.0330
    #1018 = 0.8634   #1118 = 0.0918   #1218 = 0.0310
    #1019 = 0.8924   #1119 = 0.0831   #1219 = 0.0290
    #1020 = 0.9194   #1120 = 0.0790   #1220 = 0.0270
    #1021 = 0.9584   #1121 = 0.0770   #1221 = 0.0260
    #1022 = 1.4334   #1122 = 0.0770   #1222 = 0.0250
    #1023 = 1.4604   #1123 = 0.0770   #1223 = 0.0260
    #1024 = 1.4894   #1124 = 0.0770   #1224 = 0.0280
    #1025 = 1.5204   #1125 = 0.0770   #1225 = 0.0300
    #1026 = 1.6854   #1126 = 0.0770   #1226 = 0.0320
    #1027 = 1.7154   #1127 = 0.0770   #1227 = 0.0320

&lt;/pre&gt;
&lt;p&gt;
Now that I have my profile, there is some preamble code - every program needs to
start off with a few lines of this.  Select the units to be used, set blending mode,
turn off tool length offsets and tool shape compensation, etc.  See the
&lt;A href=&quot;http://www.linuxcnc.org/docview/html//gcode_main.html&quot;&gt;EMC2 G-code documentation&lt;/A&gt;
for the details of these commands.  Finally, start the spindle, at a speed of 580 RPM.
&lt;/p&gt;
&lt;pre&gt;

    G20 (inches)
    G64 P0.002 (round corners with tolerance)
    G18 (XZ plane)
    G40 G49 (cancel compensation)
    G92.1 (cancel offsets)

    M3 S580 (start spindle)

&lt;/pre&gt;
&lt;p&gt;
The first step is to rough out the part from a solid cylinder to the tapered shape.  The traditional
way to do this is a CAM (Computer Aided Machining) program, but those are expensive.  EMC2's 'O-word'
extensions make g-code into a complete programming language, and it can do a lot of things that would
normally be considered CAM.  I was able to write code that roughs out the shape using the profile data
stored in variables #1000-1027 and #1100-1127.  The following code was written by a programmer who
happens to be a hobby machinist.  It will probably make more sense to programmers (even those who have
never seen g-code) than it will to a machinist who isn't a programmer.  This ain't your father's g-code.
&lt;/p&gt;
&lt;p&gt;
A key thing to remember when looking at the rest of the g-code - this is generic code to rough and
thread a part, based only on the profile data above, and on a few control variables.  If you have a
different profile, this code would be able to cut it with minimal changes.  I've basically embedded
the CAM right into the part program.
&lt;/p&gt;
&lt;p&gt;
First, I set a number of variables to tell the code what it is supposed to do:
&lt;/p&gt;
&lt;pre&gt;

    #100 = 0.330    (initial blank radius)
    #101 = 0.050    (material to leave during roughing)
    #102 = 0.075    (depth per pass during roughing)
    #106 = 0.500    (Z offset, per inch of X offset - sets infeed angle)
    #107 = 0.400    (safe X - beyond OD of workpiece)
    #108 = 1.900    (safe Z - beyond end of workpiece)
    #109 = 6.0      (roughing feed)

&lt;/pre&gt;
&lt;p&gt;
The first step is to find out what part of the profile is the deepest.  In my case, it is the first
part to be cut (last entry in the profile data), but the program doesn't know that, or care.  If the
shape was an hourglass, this loop would find the skinniest part.  The radius (X coordinate) of the
skinniest part is stored in variable #103.
&lt;/p&gt;
&lt;pre&gt;

    (find #103 = X coordinate of deepest part of profile)
    #200 = 26  (loop counter)
    #103 = 100 (this will be the deepest cut)
    O100 while [ #200 GE 0 ]   (loop through all segments of the profile)
        O101 if [#[#200+1100] LT #103]
            #103 = #[#200+1100]
        O101 endif
        #200 = [#200-1]  (decrease loop counter by 1)
    O100 endwhile

&lt;/pre&gt;
&lt;p&gt;
The code above includes two of EMC2's 'O-word' extensions, a while loop and an if statement.
The while loop starts at &quot;O100 while&quot; and ends at &quot;O100 endwhile&quot;.  I indented the loop body
to make it easier to read, EMC2 ignores indenting.  The if statement starts at &quot;O101 if&quot; and
ends at &quot;O101 endif&quot;.  O-numbers must be unique - they are used by the interpreter to match
up the beginning and ends of statements.  The while loop starts at segment 26, and loops until
it get to zero.  &quot;GE&quot; means &quot;greater than or equal&quot;.
&lt;/p&gt;
&lt;p&gt;
&quot;#[#200+1100]&quot; might need some explaining.  #200 is the loop variable - it starts at 26 and
counts down to zero.  1100 is the location of the first X value.  &quot;[#200+1100]&quot; adds the loop
counter to 1100 to get the location of a specific X value, and the outer &quot;#&quot; looks at that
location to get the actual X value.  So in the first pass, when #200 is 26, [#200+1100] is 1126,
and #[#200+1100] is the same as #1126, which is 0.0770.
&lt;/p&gt;
&lt;p&gt;
The next step is to figure out how many roughing passes are needed.  The code below does
that by adding #102 (the depth per pass) and checking to see if the skinniest spot is still
inside the diameter of the blank.  If it is, it adds another pass.
&lt;/p&gt;
&lt;pre&gt;

    (find #104 = offset for first pass, and #105 pass count)
    #104 = [#101+#102]
    #105 = 1
    O102 while [[#103+#104] LT #100]
        #104 = [#104+#102]
        #105 = [#105+1]
    O102 endwhile

&lt;/pre&gt;
&lt;p&gt;
Now that those preliminary calculations are out of the way, its time to cut some metal.  This
next chunk of code is pretty complex.  When I started writing this post, I was planning on explaining
everything in lots of detail.  That was an hour ago, and its getting late.  So instead, I'm going to
rely on the comments in the g-code.  If anyone has any questions, please email me.  If people want it,
I'll come back and add more details later.
&lt;/p&gt;
&lt;p&gt;
I will mention one detail here:  the &quot;if&quot; statements at O105 and O106 are used to speed up the program
by rapiding though any segements that are outside the blank.  If you watch the first and second roughing
passes in the video you will see the tool speed up.  Those rapids were computed automatically by the
g-code - there was no CAM involved, and no manual conversion of slow moves to rapids.
&lt;/p&gt;
&lt;pre&gt;

    (go to safe start point)
    G0X#107Z#108
    #104 = [#104-#102]  (move in by one step, so first pass will remove some metal)
    (loop through roughing passes)
    O103 while [#105 GT 0]  (#105 is the number of passes, it counts down)
        #200 = 26 (loop counter - counts through the segments on each pass)  
        #110 = [#[#200+1100]+#104]              (X at start of first segment)
        #112 = [#[#200+1000]+[#104*#106]]       (Z at start of first segment)
        (rapid to #102 outside start of pass)
        G0X[#110+#102]Z[#112+#102]
        (is start of segment inside the blank?)
        O105 if [#110 LE #100]
            (yes, cut to that point)
            G1F#109X#110Z#112
        O105 else
            (no, rapid to that point)
            G0X#110Z#112
        O105 endif
        (loop thru rest of segments)
        #200 = [#200-1]
        O104 while [ #200 GE 0 ]
            #111 = [#[#200+1100]+#104]          (X at end of segment)
            #113 = [#[#200+1000]+[#104*#106]]   (Z at start of segment)
            (is either start or end of segment inside the blank?)
            O106 if [[#110 LE #100] OR [#111 LE #100]]
                (yes, cut to the end)
                G1F#109X#111Z#113
            O106 else
                (no, rapid to the end)
                G0X#111Z#113
            O106 endif
            (previous end becomes next start)
            #110 = #111
            #112 = #113
            (next segment)
            #200 = [#200-1]
        O104 endwhile
        (move out to safe X if not already out)
        O107 if [#111 LT #107]
            G0X#107
        O107 endif
        (move over to safe Z)
        G0X#107Z#108
        (next pass)
        #104 = [#104-#102]
        #105 = [#105-1]
    O103 endwhile
    (roughing complete)

&lt;/pre&gt;
&lt;p&gt;
After roughing out the part, the next step is the threading.  The code to do the threading looks very
similar to the roughing code, except that it uses G33 spindle-synchronized moves instead of ordinary
G1 linear moves.
&lt;/p&gt;
&lt;p&gt;
Another detail: the code after the comment &quot;(next pass)&quot; is designed to reduce the depth of cut as
it gets closer to the finished size, so the final cuts will be very light and avoid tool deflection.
Once the amount of metal to be removed is less than the initial depth per pass, the O118 and O119
&quot;if&quot; statements reduce the depth of cut in half every time, until it reaches the minimum that was
specified in #116.
&lt;/p&gt;
&lt;pre&gt;

    #101 = 0.100 (space to allow for accel)
    #104 = [#104+#102] (reset to offset of last pass)
    #102 = 0.007 (depth per pass during threading)
    #116 = 0.0004 (smallest finish pass)
    #105 = 1 (pass counter)
    (loop through threading passes)
    O113 while [#104 GE 0]
        #200 = 26 (loop counter)
        #110 = [#[#200+1100]+#104]		(X at start of first segment)
        #112 = [#[#200+1000]+[#104*#106]]	(Z at start of first segment)
        #114 = [#[#200+1200]]			(K value for first segment)
        (rapid start of pass)
        G0X[#110]Z[#112+#101]
        (start sync move to segment start)
        G33K#114X#110Z#112
        (loop thru rest of segments)
        #200 = [#200-1]
        O114 while [ #200 GE 0 ]
            #111 = [#[#200+1100]+#104]		(X at end of this segment, start of next)
            #113 = [#[#200+1000]+[#104*#106]]	(Z at end of this segment, start of next)
            #115 = [#[#200+1200]]		(K value for next segment)
            (cut this segment)
            G33K#114X#111Z#113
            (previous end becomes next start)
            #110 = #111
            #112 = #113
            #114 = #115
            (next segment)
            #200 = [#200-1]
        O114 endwhile
        (move out to safe X if not already out)
        O117 if [#111 LT #107]
            G0X#107
        O117 endif
        (move over to safe Z)
        G0X#107Z#108
        (next pass)
        O118 if [#104 LE [2*#102]]
            O119 if [#102 GT #116]
                #102 = [#104/2]
            O119 endif
        O118 endif
        #104 = [#104-#102]
        #105 = [#105+1]
    O113 endwhile

    M5 (stop spindle)
    G0X1Z3 (move clear of work)
    M2 (end program)
    %

&lt;/pre&gt;
</description>
  </item>
  <item>
    <title>March Snowstorm</title>
    <pubDate>Sun, 09 Mar 2008 16:19:00 EDT</pubDate>
    <link>http://jmkasunich.dyndns.org/cgi-bin/blosxom/2008/03/09#snowstorm-03-09-08</link>
    <description>
&lt;p&gt;
I'm really glad I have a snowblower.  We had snow starting Friday morning and running nonstop
until late Saturday night, along with plenty of wind to spread it around.  I cleared the driveway
Saturday morning, but within hours you couldn't even tell.  Today it is nice and sunny, and I
spent a couple hours this morning digging out.  I'm VERY glad this didn't happen on a work day.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/garage-before-1896.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/garage-before-1896-thumb.jpg&quot; HEIGHT=&quot;134&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/garage-after-1897.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/garage-after-1897-thumb.jpg&quot; HEIGHT=&quot;134&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;br&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/driveway-before-1894.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/driveway-before-1894-thumb.jpg&quot; HEIGHT=&quot;115&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/driveway-after-1898.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/driveway-after-1898-thumb.jpg&quot; HEIGHT=&quot;114&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;p&gt;
Pet peeve: snowplow guys who clear people's driveways and pile the snow on the sidewalk.  Hey guys,
some people still like to walk places.  Common courtesy and local ordinances both say not to block
the sidewalk.  This guy came along after I had cleared the sidewalks in front of my house and a 
couple of the neighbors.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/sidewalk-blocked-1901.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/sidewalk-blocked-1901-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;198&quot;&gt;&lt;/A&gt;

&lt;p&gt;
My dog Buddy doesn't seem to mind the snow.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/buddy-in-deep-1906.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/buddy-in-deep-1906-thumb.jpg&quot; HEIGHT=&quot;142&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;p&gt;
When it gets deep, he stops walking through it and starts bouncing over it to get from
place to place.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/buddy-leaping-1-1909.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/buddy-leaping-1-1909-thumb.jpg&quot; HEIGHT=&quot;124&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/buddy-leaping-2-1904.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/buddy-leaping-2-1904-thumb.jpg&quot; HEIGHT=&quot;140&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;</description>
  </item>
  <item>
    <title>Engineering Week Project</title>
    <pubDate>Fri, 22 Feb 2008 23:05:00 EDT</pubDate>
    <link>http://jmkasunich.dyndns.org/cgi-bin/blosxom/2008/02/22#eng-week-02-21-08</link>
    <description>
&lt;p&gt;
Every year, my employer holds a contest as part of &lt;A href=&quot;http://www.eweek.org/&quot;&gt;National Engineers Week&lt;/A&gt;.
Teams of employees design and build contraptions to complete some task, and on Friday of Engineers Week, we have
a competition to see which one works best.  As in prior years, I teamed up with a co-worker for the contest.
&lt;/p&gt;
&lt;p&gt;
The task is different every year.  This year, we needed to build a vehicle powered by the classic
Victor &lt;A href=&quot;http://ace.imageg.net/graphics/product_images/pACE-963447reg.jpg&quot;&gt;rat-trap&lt;/A&gt;.  The
vehicle had several tasks to perform:
&lt;ol&gt;
&lt;li&gt;Pop a balloon on the right edge of the 8 foot wide course, 15 feet from the start&lt;/li&gt;
&lt;li&gt;Pick up a 1-1/2&quot; diameter steel washer one foot right of center, 24 feet from the start&lt;/li&gt;
&lt;li&gt;Pick up another washer at the center of the course, 30 feet from the start&lt;/li&gt;
&lt;li&gt;Pick up third washer one foot left of center, 36 feet from the start&lt;/li&gt;
&lt;li&gt;Pop a second balloon on the right edge of the course, 45 feet from the start&lt;/li&gt;
&lt;li&gt;Stop with all wheels on a 24 inch square of sheet steel, centered in the course, 55 feet from the start&lt;/li&gt;
&lt;/ol&gt;
Points are awarded for accomplishing each task, as well as for making it to the 30 and 50 foot marks.
In addition, points are awarded to the three fastest times from start to the 50 foot line.  And finally,
a significant bonus goes to any design that is autonomous - that is, does not use remote control.
&lt;/p&gt;
&lt;p&gt;
We quickly decided that we wanted to go for the autonomous bonus.  If it wasn't for the strict
weight constraints implied by rat-trap power, I would have used a laptop running EMC2's Hardware
Abstraction Layer (HAL), which provides functional blocks such as encoder counters, etc.  But
we needed something lighter, so I ordered an inexpensive AVR microcontrollerboard.  I also got
some optical sensors that I hoped would be able to sense the black electrical tape that was going
to outline the course.  My plan was to make a tricycle shaped vehicle, with the front wheel powered
by the rat trap, and the rear wheels turning encoders (made from old mice).  The wide spacing of the
rear wheels would allow fairly accurate navigation, and the optical sensors would provide additional
guidance.  The AVR would provide a control signal to a standard RC 
servo for steering.
&lt;/p&gt;
&lt;p&gt;
My first mistake was not starting on the software side right away.  Instead, I had fun with my
newly CNC'ed Shoptask working on the rat-trap powered &quot;engine&quot;.  After the first week or so, I
had the engine nearly complete, but work on the rest of the vehicle was had barely started.
We had a frame but not much else.
&lt;/p&gt;
&lt;p&gt;
About half of the allotted time had passed before we did the first tests.  We improvised a pair of
rear wheels, and tested the &quot;engine&quot;.  It managed to travel an underwhelming 25 feet before stopping.
We knew that the improvised wheels had a lot of friction and the real ones would be better, but we
had no idea how much better.  We immediately started focusing on &quot;less weight, less friction&quot;.  The
same day I tested the optical sensors.  Although they do a fine job of differentiating between
&quot;something&quot; and &quot;nothing&quot;, they could not tell apart different kinds of &quot;something&quot;.  In particular,
the difference between &quot;floor&quot; and &quot;black electrical tape on the floor&quot; was virtually non-existant.
&lt;/p&gt;
&lt;p&gt;
With half the time gone, my trip to Wichita looming, the software not even started, and faced with
much mechanical work to get the weight and friction down, I recuited another team member, a software
engineer.  Instead of using the AVR board with its learning curve, he planned to use a small board
from one of our products, with his existing development environment.  He began coding, while I worked
on the rear wheels and encoders, and my other teammate worked on the frame, magnet assembly (for
picking up washers), and other parts.
&lt;/p&gt;
&lt;p&gt;
By Wednesday of E-Week, we had rear wheels with encoders.  Test runs showed that the rat-trap could
move the vehicle at least 60 feet at a nice pace.  But time simply ran out to get the software working.
By mid-day Thursday we all had to admit that autonomous wasn't going to happen, and drop back to radio
control.  The encoders came off to save weight and drag, and we concentrated on finishing up.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;The Vehicle&lt;/b&gt;
&lt;/p&gt;
First an overall view, as seen from behind at the starting line (click on pic to enlarge):
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/e-week-vehicle-back-00554.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/e-week-vehicle-back-00554-thumb.jpg&quot; HEIGHT=&quot;210&quot; WIDTH=&quot;250&quot;&gt;&lt;/A&gt;
&lt;p&gt;
Across the back is a row of six magnets taken from scrapped hard-disks, to pick up the washers.  On the right
rear corner is the balloon popper - pushpins pressed into an upright strip of aluminum, and sharpened.  The rear
wheels are small and have O-ring &quot;tires&quot; because we thought we were going to be driving encoders from them.  We
needed many counts per inch and no slippage.  If we had been doing RC control from the beginning I would have
probably used CD-ROMs as wheels, they are light and have very low rolling resistance.  In the center of the rear
&quot;axle&quot; is a lever, connected to a tube running forward.  The rule for awarding points for &quot;all wheels on the
metal plate&quot; at the end of the course actually can be read as &quot;nothing touching the floor outside the plate&quot;.
So the RC servo on the left pulls a pin, the tube slides forward, and the rear wheels pop up off the floor.
If we don't hit the plate centered, it won't matter - the magnets that are on the plate will hold the vehicle,
and the ones hanging off the plate will be above the ground by the thickness of the plate.
&lt;/p&gt;
&lt;p&gt;
Now a front right view, showing the rat-trap &quot;engine&quot;.
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/e-week-vehicle-engine-00565.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/e-week-vehicle-engine-00565-thumb.jpg&quot; HEIGHT=&quot;188&quot; WIDTH=&quot;250&quot;&gt;&lt;/A&gt;
&lt;p&gt;
The trap drives the large aluminum arm on top, which turns the large black (metal) gear through slightly less
than half a revolution.  The two stages of gears (salvaged from old printers) make the 3.3&quot; diameter pulley
at the front bottom turn about 3-1/2 revolutions.  That winds up about 33&quot; of 30AWG wire, which unwinds from
the tapered threaded spool that drives the main wheel.  The spool starts out large for good starting torque,
like low gear in a car.  Then it tapers to a smaller diameter, like upshifting for higher speed and better
economy.  The thread on the spool changes both diameter and pitch - cutting it was a fun exercise of EMC's 
G33 spindle synchronized motion.  I'm planning a separate post about that, and maybe a video.  I clearly
had lots of fun with CNC - the trap arm, the wheel, the wire pulley, the bearing brackets, the cutouts in the
plate that the trap is screwed to, the cutouts in the main frame rails, and the rear wheel mounts, were all
done on my Shoptask in mill mode.  The wire spool, several shafts and bushings, the groove in the wire pulley,
and the rear wheels were also done on the Shoptask in lathe mode.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;The Competition&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;
I believe there were twelve teams signed up, but a couple dropped out.  That left ten entries.  We got photos of seven besides our own, here they are (click to enlarge):
&lt;/p&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/e-week-veh-5-00546.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/e-week-veh-5-00546-thumb.jpg&quot; HEIGHT=&quot;200&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/e-week-veh-6-00548.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/e-week-veh-6-00548-thumb.jpg&quot; HEIGHT=&quot;147&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;br&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/e-week-veh-3-00543.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/e-week-veh-3-00543-thumb.jpg&quot; HEIGHT=&quot;147&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/e-week-veh-4-00545.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/e-week-veh-4-00545-thumb.jpg&quot; HEIGHT=&quot;148&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;br&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/e-week-veh-1-00540.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/e-week-veh-1-00540-thumb.jpg&quot; HEIGHT=&quot;139&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/e-week-veh-2-00542.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/e-week-veh-2-00542-thumb.jpg&quot; HEIGHT=&quot;125&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;br&gt;
&lt;A HREF=&quot;http://willepadnos.net/jmkasunich/e-week-veh-7-00549.jpg&quot;&gt;&lt;IMG SRC=&quot;/pics/e-week-veh-7-00549-thumb.jpg&quot; HEIGHT=&quot;68&quot; WIDTH=&quot;200&quot;&gt;&lt;/A&gt;
&lt;p&gt;
Several competitors took advantage of a loophole in the rules that allowed you to recharge the rat-trap,
using things like windshield wiper motors to pull a wire attached to the trap arm, etc.  Not exactly the
&quot;green&quot;, energy efficient way to do things, but anticipated and allowed by the rulemakers.  I was pleased
to observe that our vehicle with its single &quot;trap load&quot; of energy was faster than all of the ones that
recharged the trap.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;The Results&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;
We lost.  Badly.  Simple human error, based on a lack of practice runs.  When you are driving a radio
control vehicle that is coming towards you, the steering works one way.  When the same vehicle is going
away from you, the steering is reversed, because you are seeing it from the back instead of the front.
My teammate was driving, and stood about two-thirds of the way down the course.  He did great as the 
vehicle approached him - popped the first balloon, and got all three washers.  But when it got close to
him, instead of backing up as he did during practice, he stood still and turned around to track it.
Turning around reversed the direction of the steering, and at a critical moment a few inches short of
the second balloon, he turned right instead of left.  The vehicle crashed into the balloon support, and
we were out of the running.
&lt;/p&gt;
&lt;p&gt;
Based on the performance of the other vehicles, we would have definitely been near the top if we had
autonomous control - software simply doesn't make that kind of mistake.  But we had too little time.
I should have recruited the software guy a couple of weeks earlier.  Oh well, that's how things go.
It was still a lot of fun.
&lt;/p&gt;</description>
  </item>
  </channel>
</rss>