Oct 23 / David

Blogs; Candlesticks

I’m probably not going to stick with this blog format much longer. I’ll keep it around, but I don’t really have “periodic update” stuff so much as “here’s a project, BAM” stuff. It would work better to be organized differently, plus I wouldn’t have to keep updated WordPress and its plugins.

Here’s a project, BAM:

Wife’s aunt suggested rather than mere machines, I could make art “like a candlestick”.

Jun 21 / David

Try to follow the argument of my thread

Unfortunately, this is going to be complicated, text-heavy post. Fortunately, I managed to achieve my goal of a simple set of steps at the end.


The easiest way to put a thread on a piece of metal is to use a tap and/or die. But let’s say you need to make a size that won’t appear in the tap and die sets that are priced within range of an ordinary mortal. Like 1 1/8″ diameter.

If the tap and die won’t work, you’ll need to move to the lathe to cut it single-point style. The next most common tip is to cut it to fit the intended mating part. Start cutting in the normal way and stop when it fits. But let’s say you have no mating part yet because you are making both halves, bolt and nut. (In actual fact, I’m making a boiler body and screw-on lid.)

OK, you don’t have the mating nut but you could just use a nut of the right size for testing when you cut the boiler threads, then use the boiler threads to test the while cutting the lid. But a single 1″ diameter nuts cost like $5 and would only be used once. My hardware store didn’t have 1 1/8″ anyway. Besides, a test nut is not compulsory, merely a convenience. It should be possible to do both halves and know they are going to fit.

There’s also one other factor that complicates things. Real 60° threads have flat tops, not pointy ones. The thing I see most people advocating online is to cut them with pointy tops and then file them flat. However, then you aren’t at the right diameter anymore. This usually doesn’t matter but it still annoys me. (If you don’t file them flat, they are painfully sharp.) You could also just not cut them so deep and leave the top flat but how “not so deep” do you cut them? That’s exactly the question I intended to answer.


Here we have the thread geometry diagram from my 1950′s Machinery’s Handbook. This is for external threads.

external thread geometry

There are a bunch of lines drawn in there. We don’t care about most of them for right now. We care about the lines showing the total depth of thread from (truncated) top to (untruncated) bottom. 1 You can see that the truncated top is labeled “H/8″ so the rest of it is 7/8 H. What is H?

H is the height of the thread. Since this is a 60° thread, that is sqrt(3)/2 of the thread pitch (which is the base of the equilateral triangle formed by each idealized thread). Thus the note at the bottom of the illustration which says that H is .8660 * pitch. sqrt(3)/2 = .8660.

So now we are good, right? Not quite. I actually don’t care about thread depth itself at all because I can’t measure it. (There is some method involving wires, but this is actually a lot easier in the end.) What I care about is how far to feed in the compound. This is not a value given by any table, which is why I’m on this adventure in the first place.

The compound is set to 30°2. That basically means we can omit the .8660 nonsense. Or, put another way, we’ll be feeding the tool down the side of one thread. If that thread were a full sharp 60° thread, that distance would be equal to the thread pitch. But since we are omitting 1/8 of the top of the thread, we omit 1/8 of the distance we feed the compound, too.

What about internal threads?

internal thread geometry

The argument is exactly the same here except that the illustration shows the truncated “top” of the thread is H/4, so the total depth will be 3/4 H.

What To Do

So here is the total procedure after choosing diameter and thread pitch (I’m using 1 1/8″ and 12 tpi):

For the external thread (“bolt”)

  1. Cut the work to that diameter, in this case 1.125.
  2. If you want a relief, cut it to a depth of at least 7/8 * .866 * thread pitch, which is the total thread depth measured perpendicular to the work. You’ll want .005″-.010″ beyond that, probably. In my case, that’s 7/8 * .866 * 1/12 + a little = .070, read on the cross-slide.
  3. Cut threads as usual and measure the depth on the compound until you reach 7/8 * thread pitch. In my example, this is 7/8 * 1/12 = .073, read on the compound.

For the internal thread (“nut”) you’ll also need to either do an additional calculation (which I’ll leave to you to figure out) or look up an additional number. That’s the inside diameter of the hole you will be threading, which is known as the “minor diameter”. Since this is a 1 1/8″ 12tpi thread, that’s where I look on the chart.

threading chart

  1. Bore the work to size, in this case 1.035.
  2. If you want a relief, cut it to at least 3/4 * .866 * thread pitch. Again, this is perpendicular. In my case, that’s 3/4 * .866 * 1/12 + a little = .060″, read on the cross slide.
  3. Cut threads as usual, with the compound swung to the left and feeding outward until the reading on the compound is 3/4 * thread pitch, or in my case 3/4 * 1/12 = .063″, read on the compound.

For a looser fit, feed the compound in a few extra thousandths.


  1. Why untruncated at the bottom? Because the tool you are using is probably not truncated either. So you want to cut all the way to the dotted line at the bottom of the sharp thread so you get the full width of the real thread at the real bottom. If your tool has a flat ground on the end to get the right width, you aren’t reading this post.
  2. OK OK, actually I’m set to 29° per standard practice. It doesn’t change the math appreciably.
May 27 / David

Lathe, Continued

Holy crap, I never posted a picture of the restored South Bend 10K!

I considered putting flame details on the headstock. I’ve done quite a few little things with this since then, the biggest of which is probably fitting a 4 jaw chuck. I was very nervous doing that as it requires quite a bit of precision and if you screw it up you can’t put metal back on. But it came out great, so there’s that. And the 4 jaw let me complete the starter project I was actually working on, which is this tiny “steam” engine:

Learned a lot on this, including how NOT to make a flywheel. I’d post a video but the only air source I have is a super-loud compressor.

Just got off the email with a guy who has an Atlas horizontal milling machine that I’m potentially pretty excited about. I can’t really fit a full size Bridgeport vertical mill in the shop and the import mini-mills in the same price range all seem of marginal quality at best.

I have a few little projects to do (various bolts and whatnots) and then I think I’m going to try a nicer engine that isn’t so blocky and…aluminum. It machines like butter but it’s so light it barely feels like metal at all.

Mar 9 / David

The Really Real Lathe

So about 9 months ago I still had this tiny lathe. It was so underpowered I couldn’t do much with it. I’ve also heard it described in more than one place as a “boat anchor”, which could explain why I was having so much difficulty. Another potential explanation is that I’m a n00b.

In any case, I sold that, took the money plus a bunch I’d saved up and was planning to buy a modern, bigger lathe. But just as I did, a peach fell into my lap.

Hard to tell the scale from this image, but that bench is at kitchen counter height. This is the South Bend 10k, slightly bigger brother to the famous and classic 9″ Workshop. The photo above is as I found it, after 15-20 years of storage in a garage. (It has a tailstock, I just removed it before this picture was taken on a prior dismantle-to-move trip.)

The condition seems excellent so far. Cross-feed backlash is, AFAICT, .000″ which is physically impossible but in a good way. No ridges or chips in on the ways or in the tapers. No rust on anything but the 3 way chuck. Filled with old oil, dirty grease and metal chips, obvs so I’m restoring it. Have to completely strip the entire thing, replace oil wicks and whatnot, adjust this and that and repaint. And replace the motor and switch. I’m in the middle of all that now, as can be seen from these progress photos.

Oct 31 / David

Quick Book Rec

I’ve only finished up through Chapter 3, but that much alone justifies $20 for this book1 2

You can download the hardware simulator and build logic gates, an ALU, memory registers, etc (you are given a NAND and a flipflop). Then you write an assembler on top of that, then a compiler on top of that then an operating system out of that. Super awesome.

The book is presented as a college-level integration of other, separate college-level classes. But really, the parts I’ve read so far (only about ¼ of the book) could be used in high school easily. In fact, my 12 year old computer nerd son isn’t having much trouble, although he’s only up through Chapter 1. I think he’ll have more trouble writing a compiler than making an XOR gate.

Jun 29 / David

Or Maybe It Won’t!

I said that now the serious spending could begin. And it kind of has, since I bought supplies for the countershaft, some measuring tools, a toolbox to put them in, a drill chuck, a tailstock spindle and a replacement carriage gib stock that I cleft in twain. HOWEVER.

I HAVE ALSO CREATED LIFE mwahahahahahaha!!!

In that last post, I was building the countershaft to get lower speeds. It turns out that this lathe has “back gears” which basically means “a whole nother set of speeds, lower than the regular ones so you don’t need to have a countershaft”. 1 I didn’t realize it had back gears because a) I didn’t have a manual (another thing I bought since the last post) and b) the back gears selection knob thingie was missing. But I built another forged from the molten core of the Earth itself. Observe!

indistinguishable from the drawing

It doesn't quite match the decor, but come on. It's my first project!

  1. Yes, that means all that work was for naught.
May 14 / David

Engine Difference Babbage’s

On my old blog, I once did a post on Babbage’s Difference Engine and how to run it backwards. However, I didn’t really finish the thought there and just recently it came up again IRL. 1 So this time, I think I’ll do the whole post.

The DE computed polynomials and worked by simple addition. It consisted of a series of numerical columns each of which had multiple digits, each column representing different stages of the computation, as I’ll show below. Suppose you have a function like

f(x) = x^2 + 1

I can compute this using only addition by starting with a table like this:

\begin{tabular}{ r r r r } $x$ & $f(x)$ & $f'(x)$ & $f''(x)$ \\ \hline 1 & 2 & 3 & 2 \\ 2 & 5 & 5 & 2 \\ 3 & 10 & 7 \\ 4 & 17 \end{tabular}

The x and f(x) columns are pretty self-explanatory. The f' and f'' columns are the differences between successive entries in the column to the left of each. For instance, the 3 at the top of the f' column is the difference between the 2 and the 5 in the f(x) column. The 2 at the top of the f'' column is the difference between the the 3 and the 5 in the f' column. (There are exactly two difference columns because this is a 2nd degree polynomial.)

Once I have a table started, I compute the function using simple addition from the right to the left, starting with the constant in the rightmost column, like this:

\begin{tabular}{ r r r r } $x$ & $f(x)$ & $f'(x)$ & $f''(x)$ \\ \hline 1 & 2 & 3 & 2 \\ 2 & 5 & 5 & 2 \\ 3 & 10 & 7 & \rightarrow \textbf{2}\\ 4 & 17 \end{tabular}

\begin{tabular}{ r r r r } $x$ & $f(x)$ & $f'(x)$ & $f''(x)$ \\ \hline 1 & 2 & 3 & 2 \\ 2 & 5 & 5 & 2 \\ 3 & 10 & 7 & 2\\ 4 & 17 & \rightarrow \textbf{9} \\ \end{tabular}

\begin{tabular}{ r r r r } $x$ & $f(x)$ & $f'(x)$ & $f''(x)$ \\ \hline 1 & 2 & 3 & 2 \\ 2 & 5 & 5 & 2 \\ 3 & 10 & 7 & 2\\ 4 & 17 & 9 \\ 5 & \rightarrow \textbf{26}  \\ \end{tabular}

So all Babbage’s Difference Engine had to do was be able to add columns and it could compute tables of values for any polynomial (of degree n for some number of columns in his machine).

Not a lot of call for computing mathematical tables today and that goes double for mechanical computers. However, this technique can be used in reverse for something that’s slightly more helpful. Say I have a function that I can compute, but I don’t have a polynomial expression for it. I’m going to choose a simple one that probably has other ways to figure out:

\displaystyle{f(x) = \sum_1^x (k+1)}

Start by just computing a few values:

\begin{tabular}{ r r } $x$ & $f(x)$ \\ \hline 1 & 2 \\ 2 & 5  \\ 3 & 9 \\ 4 & 14 \\ \end{tabular}

Then the differences of those values

\begin{tabular}{ r r r } $x$ & $f(x)$ & $f'(x)$\\ \hline 1 & 2 & 3 \\ 2 & 5 & 4 \\ 3 & 9 & 5\\ 4 & 14 \\ \end{tabular}

Then the differences of those differences

\begin{tabular}{ r r r r } $x$ & $f(x)$ & $f'(x)$ & $f''(x)$ \\ \hline 1 & 2 & 3 & 1\\ 2 & 5 & 4 & 1\\ 3 & 9 & 5 \\ 4 & 14 \\ \end{tabular}

When the last column is constant, we are done and we know the degree of the polynomial we are looking for. 2 That polynomial can be expressed as

f(x) = ax^2 + bx + c

Which means the first differences column can be expressed as:

     \begin{eqnarray*} f'(x) & = & f(x+1) - f(x) \\       & = & \left[a(x+1)^2 + b(x+1) + c\right] - \left[ax^2 + bx + c\right] \\       & = & ax^2 + 2ax + a + bx + b +c - ax^2 - bx - c \\       & = & 2ax + a + b \end{eqnarray*}

Likewise, the second differences column can be expressed as:

     \begin{eqnarray*} f''(x) & = & f'(x+1) - f'(x) \\       & = & \left[2a(x+1) + a + b\right] - \left[2ax + a + b\right]\\       & = & 2a \end{eqnarray*}

This is the function for the last column, so now we know that in the searched-for polynomial a = \frac{1}{2}. With that, let’s back up a step and solve f'(x) using the known values of a, x and f'(x).

     \begin{eqnarray*} f'(x) & = & 2ax + a + b \\ f'(1) & = & 2(\frac{1}{2})(1) + (\frac{1}{2}) + b = 3 \\    b & = & \frac{3}{2}  \end{eqnarray*}

And now do the same thing to solve for c.

     \begin{eqnarray*} f(x) & = & ax^2 + bx + c \\ f(1) & = & \frac{1}{2}(1)^2 + \frac{3}{2}(1) + c = 2 \\ c & = & 0 \end{eqnarray*}

So the final polynomial is

 \displaystyle{\sum_1^x}(k+1) = f(x) = \frac{1}{2}x^2 + \frac{3}{2}x

And there we have it.

  1. Well, sort of. It was a math puzzle.
  2. Actually, we only know it for the data we have. If this were a function in the domain of the reals, it could be doing anything between the points we selected. This is sort of a least-complexity polynomial for the given data.
Apr 3 / David

Just in time for the future!

I’ve been exploiting Emacs for more than text editing recently. 1 So I was about to buy a copy of the GNU Emacs manual when I noticed that it was version 22. And $45 into the bargain. You can get version 23.3 for free but they don’t have it in hardcopy yet.

So I uploaded the PDF to Lulu to have them print and bind it for me.

It’s well worth reading. I’ve already dog-eared several pages of useful stuff I didn’t already know and I’m only on like page 30. I also just now noticed that I’m running Emacs 23.1. 2

  1. Which reminds me. notmuch is 100x better than sup. Completely awesome.
  2. But it looks like Debian 6.0 has Emacs 23.2 and I’ve been meaning to upgrade from Ubuntu to Debian for a while now anyway.
Jan 16 / David

Forensic GENIOUS

I really love tomato.1 One of my favorite things is the bandwidth graphs. I just happened to glance at them last night before bed and saw they were pegged at maximum and had been for several hours.

Me: Hey, are you uploading/downloading from your photo site?
Mrs: No.
Me: Hmmmmm

I go through all my processes: Nothing is downloading that much.
I shut down computers one at a time until only my computer is left: Still downloading.
I shut mine off: Downloading ceases.
I turn my computer back on: Downloading starts again.

Uh oh, I think, I’ve been hax0red. So I start looking more closely at netstat to see what net connections I’ve got. I see my email client in there, polling the server, so I decide to shut that off to clean up my display a bit….and the bandwidth drops down to a reasonable level. What the.

Background #1: I fetch my mail with offlineimap.2 I’ve found that it has a bug or something so that periodically it will get “stuck” and have to be killed. So I set up my cronjob to kill the previous instance, if any, before running the new one.

Background #2: My brother-in-law was going to use a file-sharing site to send me a ~10MB file. I actually typed out an email to suggest he just email to me, but then thought maybe I should learn to use these sharing sites for when I really do have a biggish file. So I just told him to do “whatevs”.

As it turned out, he did in fact email it to me. And offlineimap was downloading it. But it took more than a minute (my cronjob rate), so the next time it came around my script killed the previous instance and started over. All this pegged my bandwidth usage. I temporarily modified the script to not kill the previous instance, got the file in a little over a minute and then the bandwidth finally dropped.

So that problem is solved. However, I still have the issue of offlineimap periodically hanging. I guess I’ll have to make a more sophistimacated script. Run the script every minute, but let a particular instance go for several iterations before killing it. Or maybe it would simpler to just notify myself when an instance has to be killed. My local email (i.e. from cron, etc) doesn’t go into my regular email client, but maybe it should…

  1. I also really love that googling for “tomato” finds the firmware, not the fruit.
  2. It’s pretty nice, because it syncs a Maildir and an IMAP source, so you can work offline on two computers, although I don’t use it for that right now.
Dec 21 / David

Now the Serious Spending can begin

I’ve wanted a metal lathe for, ooohhh, probably 8 or 9 years. I half-heartedly began building one, but after some industrial espionage (delivery trunk rolled over my furnace) I gave that up.

What I really want is something like the awesome old South Bend 9″, but I haven’t saved up the $ for that yet. In the meantime, I thought I’d get my toes chopped offwet with a smaller, crappier and cheaper Craftsman 109. Mine isn’t in quite as nice a shape as that one (yet!) but that’s actually kind of by design. Fixing it up and training on a junker are all part of the plan.

Here it is more or less as I bought it:

craftsman 109 20630

And here I’m in the process of adding a countershaft for more granular speed control, including a much slower lowest speed. Was about 900 RPM(!), now hopefully about 100 RPM (actually, closer to 300 RPM but that’s OK for now).

new countershaft

In between those photos I’ve already learned a ton by fixing/adjusting the tailstock, lead screw, cross slide and all the gibs.