Craftsman 101.02182 Table Saw Restoration

The latest antique machinery find: a Craftsman cabinet saw, model 101.02182 circa 1940. This saw was manufactured for Craftsman by Atlas Press Co. There is little information about this particular model, and reportedly was sold for only a year before being discontinued. It appears to be a variation on the more common 02180 model.

http://vintagemachinery.org/photoindex/detail.aspx?id=27664

The saw came complete including miter gauge and fence. The whole thing was covered in rust, most severe at the base of the cabinet where it likely was exposed to standing water. The arbor and related mechanism were in excellent working condition with little rust, though covered in saw dust and grime. After cleaning and some lubrication the mechanisms work smoothly. I used pastewax for the gears and screws, which I need to investigate if that is the best option. The bearing has a port on the bottom which appears to be for lubricant. There is a mess of goop in there, and it runs smoothly, so I am leaving it alone for now.

The cabinet was heavily rusted on the bottom, with consistent rust streaks across the cabinet. I used my disc sander and a cobbled together wire brush designed for an angle grinder to remove the rust from both the interior and exterior of the cabinet. The outer paint had faded to a dull grey, while the interior and under the label plates where closer to the blue of the original paint job. I used Rustoleum navy blue paint for a replacement paint. The color is lighter blue than the original paint, but still in keeping with the spirit of the original paint job. Since I removed all the paint from the exterior, the color is consistent; any mismatch on the interior is acceptable.

The table top consists of three pieces: the main table, a forward extension, and a side wing. Both the main table and the forward extension are cast iron, while the side wing is sheet metal. All were covered in a layer of rust. None of the pieces were flush with the others. After reassembly, the main and forward segments were able to be lined up to a high accuracy, but there are inconsistencies in the machining. One of the miter slots is a few thousands of an inch narrower, and the other has couple dozen thousands of an inch higher depth than the main table. Neither issue affects my crosscut sled, and will be dealt with later carefully with a file. The side extension was not particularly flat, but that should be acceptable as long as the main table provides the flat support. There are mounting points on either side of the main table. I chose to leave it on the right side to match the fence mount.

Tolerances for the saw were impressive without much adjustment. Using the miter gauge and a dial indicator, I was able to determine that the miter slot runs parallel to the blade within 3 thousands once I seated the table. The slots are parallel within 2 thousands. The blade runs true with little play. All of the measurements place the saw calibrated within my ability to measure.

The saw included two motors, an ancient induction motor and a swamp cooler motor. The swamp cooler motor was completely seized up and not a practical plant at 1/3 HP. The old motor was non-functional due to completely destroyed bakelite and cloth style wiring. The motor worked just fine once the cable was replaced. However it runs the wrong way, which indicates it likely is not the original motor for this saw. The motor is not reversible. I was able to test the operation of the saw using the motor from my lathe, but I will need to acquire a new motor.

I replaced the original bakelite and cloth wiring and switches with new wiring and hardware. The saw uses a standard lightswitch on the front as a start/stop switch. I replaced the old switch with a new one and was able to fit - with a little grinding - a punch out enclosure around the switch to cover the wiring. This switch controls a grounded plug that the motor can be plugged into. This makes it easy to change motors by eliminating the need to splice the motor in.

The fence system consistes of a cast iron fence, a ½ by 3 inch iron bar with scale mounted to the front as a rail, and an iron bracket to attach the fence to the rail. The fence and the rail are solid metal and very heavy. I scrubbed the rust off them and painted the non-milled fence surface. The bracket is pretty shot. At some point, it broke in half and was welded back together. The inside of bracket is supposed to have a flat surface mounted perpendicular to the fence and parallel with rail. This surface is bent into a curve, and a chunk is missing where the bracket broke. The bracket is useless, but I should be able to machine a replacement. There is a small threaded half cylinder on the bracket and a bracket of similar radius attached to the bottom of the rail with holes for another matching bracket. This appears to be part of some sort of threaded screw system for advancing the fence, or a reference to snap the fence to a specific fraction of an inch based off the threads per inch..

A stable mounted fence will make cuts easier. I was able to rip some oak boards for my desk legs by using a long piece of aluminum U-channel as a fence. I made a cross cut sled to do basic cuts out of two pieces of aluminum bar stock, some 2x4s and a sheet of MDF. The bar stock is the same size as the miter slot with a clearance of about 6 thousands on the side. I drilled and countersunk holes in the aluminum to screw the bars onto the base of the sheet. I was able to get the bars perfectly parallel and sliding well in the slots with no play. Using the four cuts method, I was able to adjust the rear fence to within a few thousandth off square over 24 inches, pushing the limits of my ability to measure.

Rather than permanently mounting the saw to the floor, I made a little cart out of plywood and some casters I bought at Harbor Freight. I can wheel the saw around the shop and stow it off to the side in a nook. The saw does not vibrate, even without being mounted to the floor. Locking the casters is sufficient to keep the saw from moving. The cart is the same size as the base of the cabinet. It is stable with just the saw and the motor from the lathe; but when I attached the older motor (which weighs maybe three times as much and needed to be mounted further back), the table was able to tip backwards with a solid push. The motor I ended up mounting did put this off balance.

The saw does kick up more dust out the top than I expected. The cabinet did collect most of the dust, but a little did come out the top. The arbor has a wide chute to direct the dust down. I will need to investigate futher ways to reduce the amount of dust. The cabinet has three openings for removable panels, but one of the side and the bottom panels are missing. New panels will close the cabinet on the bottom and cover the mechanism for safety. Adding suction to something like a hole in the base of the cabinet might encourage more dust to follow the blade. This doesn’t seem feasible at the moment, as there is a large opening below the table where the motor and mounting arm sticks out. I could seal this opening with a box around the motor supporting an outfeed table, which would be beneficial in both cases. I could also create a fitting to directly attach the vacuum to the dust chute.

Handplane tool holders

Hand plane holders based off an design by Matthias Wandel. The plane is held in by the top lip and the low center of gravity the plane has in the vertical axis. I originally was planning on making a similar style holder for my block plane, but felt that a shelf style holder worked better.

https://woodgears.ca/tool_holders/handplane.html

Rack mount amplifier enclosure

This is a rack mount enclosure for my modular amplifier project. The height is 3U. This was my first woodworking project, and sparked my interest in woodworking as a hobby. The sides are made from birch plywood, and the edges from oak. This project required a lot of experimentation and learning of technique. This was also my first foray into CAD. Schroff, the company that makes the modular rack system, has full detail models on their sit. I was able to design the rack layout and the surrounding case in Sketchup.

Principles of Building Software

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” Martin Fowler, 2008

If you can’t measure it, you can’t change it!

The Schizophrenia of Computing

Computer science is a branch of mathematics. Computer engineering is a branch of electrical engineering. Software engineering is a branch of sociology. Balance the three if you can.

Clean Code

  • Write code so the poor bastard after you doesn’t curse your name.
  • Code with intention.
  • Immutable > Mutable
  • Data > State
  • Separation of concerns > tight coupling
  • Composition > Inheritance
  • Explicit > Implicit
  • Polymorphism > Conditional
  • Polymorphism != Code sharing (OOP does not require inheritance or abstract classes)
  • Functional > Imperative
  • Declarative > imperative (i.e. what > how)
  • Abstraction > Code grouping
  • Clean code > needless optimization
  • referential transparency (account for all inputs, all outputs including exceptions)
  • small sharp tools (do one thing, and do it well)
  • Build composable tools.
  • high signal to noise ratio.
  • Separate structural changes from behavioral changes.
  • Limit inheritance.
  • Maintain locality of functionality.
  • Develop personal craftsmanship. Never stop learning.

Architecture

  • Domain > Code
  • Why -> What -> How
  • Build heirarchies of systems.
  • Asynchronous first.
  • Data > Code
  • Code > Configuration
  • Code > Convention
  • Tests > Documentation
  • Create APIs. Start with client/server
  • Establish boundaries and surfaces.
  • Choose the right tool not just the tool you have.
  • Caller > Callee. Don’t push concerns into the callee.
  • “First thing that compiles” is not an acceptable engineering decision.
  • Actors > Objects (or rather, actors encapsulate better than objects.)
  • Website is not an architecture
  • “There is nothing more permanent than a temporary fix.”
  • Encapsulate state in state machines.

Testing and Error handling

  • Test around separation of concerns
  • Test for behavior.
  • Fail loud, fail fast
  • Edge case handling > Make it go away
  • Understanding how things work > sacrificing to the elder gods and hoping things happen
  • test for stability
  • Errors are a failure in the design or implementation of code. Exceptions are output of your function.
  • Mocking is a smell that you have too many dependencies.

Data

  • Data > State. State is data that is variant over time.
  • structured types > dynamic data
  • explicit schema > implicit schema
  • Immutability > mutability
  • Data transforms > tickling
  • Serialize at boundaries only.
  • Cannot promote derived data.
  • Null considered harmful. Use explicit definitions to indicate “value may not be present”.
  • Objects and structures should be in a stable state once they leave the constructor.

Concurrency

  • Event-driven / Reactive > Explicit calls
  • Asynchronous > Synchronous
  • Can treat local as remote, but not vice versa.
  • Time is a continuum.
  • Communication > synchronized state
  • Separate context of execution from behavior.
  • Threads and processes are contexts of execution, not concurrency primitives.
  • Share nothing.

Code reviews

  1. Does this represent one change?
  2. Does it present clean system surfaces? (Does everything fit together.)
  3. Does it present clean public surfaces? (Is it useable)
  4. Automated tests. (Does it do what it should around the surfaces?)
  5. Style (Is it clear and readable?)

Office desk

This is the table top for my office desk.

The base is 2x6 boards joined together to make a 8 foot by 3 foot board. I manually planed the joint, and used dowels to center the joined edges. Without a thickness planer, the surface ended up being fairly rough. I made a track jig to run the router across the top of the surface, using the track as a reference for a flat surface. This worked very well, and the base was very flat. Unfortunately, the next day I went in to find the table had warped and bowed significantly. The gap in the center was nearly an inch. Attempts to dry the surface passively failed. I ended up using a spray bottle to add moisture to the concave side which restored the surface to a reasonable level.

The cap is made for oak flooring I purchased at the Habitat ReStore. The flooring was cut into a set of trapezoids and parallelograms to create the tesselation. The pieces were then glued onto the table. The glue up proved less flat than antipicated, and the tesselation made the grain vary enough that planing was impossible without ruining the surface. I ended up using a disk sander with a rough grit to grind the surface down. Once the top was finished, overhanging pieces where trimmed off the edge and a strip of flooring glued to the side, then planed carefully flush.

Stain is a red oak, which still maintains the chatoyancy of the wood with a subtle red color. I used a satin polyurethane finish.

The top was intalled in my office on a set of temporary cinder block legs. Final oak legs are in process of being made.

Phaser pedal

This is my phaser pedal. The design is quite unique. The phase filter stages are based off the MXR Phase 90. This design uses four stages. The input/output and regenerative circuit is based on the Boss PH-1. The oscillator started out life as the design from the Phase 90, but eventually evolved into something different. I tried to use 5457 JFETs for the phase stages, but was unable to get the oscillator into the active resistance range of the FET. The oscillator was changed in response to this problem to work in an acceptable range to match the JFETs. In addition to the changes necessary to get the oscillator in the appropriate range, I added in two additional controls. The depth control adjusts the amplitude of the oscillator to vary the depth of the filter sweep range. The range control adjusts the bias of the oscillator, which adjusts the base frequency the filter is sweeping across. This allows a wide range of tonal options.

Ibanez Tube Screamer clone

This is the first effects pedal I made. It is a clone of the Ibanez Tube Screamer. while I made no real modifications to the circuit, it has proved a reliable and nice sounding pedal.

Workshop tool wall

I recently put up a tool wall in my shop. Having everything easily on hand makes it pleasent to work and easy to cleanup.