The Grill Traege

After lusting after a Traeger for some time, the Traeger sales men at Costco had my number.  The primary resistance happened to be tagging along, and saw the look on my face that I was going to be walking out the door with a Traeger Junior.  Somehow she convinced me to think it over while we shopped.  I do have to admit when she is right, and we walked away with the Traeger Century, twice as large as the Junior.

The Traeger is a smoker that burns wood pellets.  It is simple to use, almost inspired by the Ronco slogan. A couple of hours at low-and-slow can result in some delicious BBQ.

Traeger FlowThe cooking station is a steel cylinder.  The meat sits on grill grates, which are suspended above the firebox.  Small pellets (think rabbit food) are fed into the firebox by an auger from the pellet storage.  During startup, an electric ignition hotrod ignites the pellets.  Since this is an exothermic reaction,the firebox fire is self sustaining after ignition.  A small fan run continuously to provide oxygen to the firebox, and force the smoke to flow from the bottom of the cylinder out the chimney.  Therefore, there are only 3 electronic components, the fan, auger, and igniter.  All 3 components run at 120V AC.

The name of the game is low, steady, heat.  The temperature of the grill is regulated by augering more pellets in to the firebox.  The original Traeger controller had a few settings, that corresponded to particular auger duty cycle (the auger is either on or off).  However, there are many factors in play such as outside temperature, wind, and pellet type.  Therefore, open-loop control is not very effective.  Traeger introduced the "elite" line, which offered digital controllers.  By adding a RTD temperature probe to measure the grill temperature, the controller is able to vary the auger duty cycle with the goal of maintaining a set temperature.  However, the interface remains simple, with a knob that changes the set temperature.  Furthermore, the Traeger digital controller implements simplicit control algorithms, has can easily swing +- 50F.2016-01-03 11.17.25

The Goal

Much like Everest, my new Traeger immediately needed a new controller, because it was there.  I was certainly not the first to add an aftermarket controller to Traegers, often with impressive results.  Although there were off the shelf solutions, what fun is that?  My goals:

  • Tighter temperature control (+- 10F)
  • Internet control
  • Grill and meat temperature plotting

Platform Selection

The controller has to be capable of toggling 3 relays, reading two RTDs, and performing simple calculations.  Additionally, I want it to have WiFi capability for backhauling this information.  Raspberry Pi 2

When you start talking about DIY controllers, a microcontroller such as the Arduino always pops to mind.  However, perhaps only similar in size and relative cost, the a minicomputer such as the Raspberry Pi is also capable of achieving similar results.

Microcontrollers do one thing, and they do them well.  They are typically programmed over serial, and begin execution as soon as they are powered up.  Since the program is held in nonvolatile memory, they are good for embedded solutions.  They generally run C or C-like code.  These can be had for approximately $10, ready to run.

At the other end of the spectrum, are Raspberry Pis.  These little devices run an ARM version of linux, and are very capable.  While the board itself is $35 (now $5 with Raspberry Pi Zeros!), they require an SD card, power supply, and WiFi adapter.  Therefore, the costs can easily exceed the cost of a microcontroller.

Pros of RPi vs. Microcontroller:

  • Flexibility - No different than operating a Linux box, but with input and output pins!  This allows the programmer to leave the network stack to the OS, and program in any language.  I am a big fan of Python.  Furthermore, this lets you leverage ANY python module.
  • Ease of programming - The RPi can be SSH'd to via Wifi.  A microcontroller requires a physical link.  This either forces the grill inside (dangerous) or the programmer outside (cold).
  • Debugging - The RPi is inherently interactive over an SSH session.  Therefore, you can manually read and write to pins and immediately observe the results.  With a microcontroller, you would have to setup a debugging framework by writing to the serial port.  Although I am ashamed to admit it, I do not own an oscilloscope.  However, the pigpio allows you to have a virtual oscilloscope that displays the state of the RPi pins!  Very cool, and proved useful.
  • Familiarity - Well, that is particular to me

Cons of RPi vs Microcontroller:

  • Longer boot time
  • Expects graceful shutdown - This is remedied by mounting the SD card read only
  • Cost

I am sure this entire discussion is biased, and you have a good sense of what direction I chose.  I picked up a Raspberry Pi 2 (the additional cost was minimal compared to a Raspberry Pi 1, with more umph) and the necessary accouterments and was well on my way.

Part List

Item Part Quantity Price Subtotal
Controller Raspberry Pi 2 1 $36.99 $36.99
SD Card SanDisk 8 GB microSDHC Class 10 1 $8.05 $8.05
WiFi 802.11g/n /w Antenna 1 $9.99 $9.99
Case Clear Case 1 $8.79 $8.79
Power Supply 20W AC/DC 5V Power Supply 1 $11.07 $11.07
Total $73.89

The Hardware

With the RPi selected, all that was required was to fill in the gap between the Traeger and the RPi, which wasn't too difficult.

Traeger Control (Output)

Relay BoardAs mentioned earlier, the Traeger has 3 components, the fan, auger, and igniter that run at 120V AC.  These components connect to the controller (any controller) with a total of 4, 2-Pin molex connectors (AC + 3 Components).  However, the RPi is not capable of switching 120V.  Therefore relays would be required.  At another level of annoyance, most relays run at 5V to reliably energize the relay coil while the RPi General Purpose Input Output (GPIO) pins operate at 3.3V.Traeger Connectors

However, a little relay board, similar to one by SainSmart comes through to save the day.  It is capable of switching large loads at 120V, can take a 5V power supply and the input pins are simply connected to ground to energize the relay.  Fortunately, the RPi has a 5v output (from the power supply) and can be used to trigger the relay.  Since each board can switch a pair of relays, two boards were needed.

Part List

Item Part Quantity Price Subtotal
Relays SainSmart 4-Channel Relay 1 $8.99 $8.99
Plug Molex Plug 4 $0.27 $1.08
SSOP Breakout SSOP20 to Breadboard Breakout 2 $5.42 $10.84
Pins Molex Pins 8 $0.13 $1.04
Total $19.68

Temperature Reading (Input) Pt100

Now that we can control the Traeger components, time to make some informed decisions.  I wanted to be able to read the grill and meat temperature.  Since the grill already had an RTD temperature probe, I acquired another RTD probe for the meat temperature.  An RTD, or Restive Thermometer (D?), consists of a metal (typically platinum) that changes resistance as the temperature changes.  The temperature can be determined from the measured resistance.  They are commonly Pt100 or Pt1000 with a nominal resistance of 100 or 1000 ohms, respectively.  The RTD probe in the traeger is Pt1000 (despite the annoying part number Pt100).

MAX31865So, you are probably wondering what use an analog RTD is to a RPi living in a digital world.  Meet the MAX 31865.  This little IC reads RTDs and communicates over SPI, which as you guessed, the RPi speaks.  The MAX 31865 comes in a SSOP 20 package, which requires surface mount soldering.  Although I had never done it before, it was pretty easy with some solder paste and a heat gun.  I connected them to breakout boards that are compatible with the standard 0.1" breadboard spacing.

SPI is a nifty little protocol.  It uses 4 wires, Master-Input Slave Output (MISO), Master-Output Slave-Input (MOSI), Clock (CLK), and Chip Select (CS).  Multiple SPI devices can be used on the same bus, each with shared wires except CS.  CS gets pulled low for the slave the master is talking to.  CLK indicates a clock cycle, and the master and slave pull high or low the MOSI or MISO respectively.  With this in place, we can write (and read) bytes from registers of the MAX 31865.  The datasheet MAX 31865 has excellent documentation, describing configuration and the value of each register.

In the end, I was able to leverage the python SPI library to handle the RPi <-> MAX 31865 communication.  I was then able to put together a module that reports the current RTD temperature.

Part List

Item Part Quantity Price Subtotal
RTD Input MAX31865 (SSOP20) 2 $3.47 $6.94
Reference Resistor 1k Ohm Resistor +- 0.1% 2 $0.65 $1.3
Capacitor 0.1 uF Capacitor 4 $0.10 $0.40
Capacitory 10 nF Capacitor 2 $0.10 $0.20
Total $8.84


The RPi requires a (quality) 5V input.  Typically this is provided over a micro-usb header.  Conveniently, the relay boards can be powered from the RPi 5V GPIO pins.  However, the Traeger provides us with 120V AC via a molex connector.  Rather than add an ugly USB power supply externally, I added a AC/DC 5V 20W power supply to the circuit.

Assembly Solderable Breadboard

I began prototyping on the standard breadboards with 0.1" hole spacing.  However, lose wires are a receipt for disaster.  I certainly didn't want to debug a lose connection years down the road.  A PCB would have been a great solution, but the effort and cost were not justified.  Therefore, I used a solderable breadboard which has the advantage of permanence and transition from the prototype breadboard.

An Adafruit Cobler was used to provide an interface for the RPi.  This provides access to all of the GPIO pins via a 40-Pin IDE cable.

Part List

Item Part Quantity Price Subtotal
Breadboard Solderable Breadboard 1 $6.5 $6.5
Cobbler Adafruit Pi Cobbler Plus 1 $6.95 $6.95
Jumpers DC Connections
Wire 18 GA for AC Connections
Total $13.45

LCD Display

LCDYou may wish to add an LCD for direct control from the smoker.  I find that I rarely actually use the LCD/button on the device, and primarily use my phone.  The Adafruit LCD Kit is a great use, and the PiSmoker software is written to take advantage of it.  The LCD connects using the IC2 bus, and requires 5V power. I leave it up to you to implement the waterproof casing and external buttons.

Wiring Diagram

Where's the beef?  Well, you aren't getting it.  A good wiring diagram would do wonders for repeating this project.  However, it would also discourage understanding the logic.  Plus, since good wiring diagrams are hard to make, I am going to skip that step.  However, the connections that need to be made.

  • Traeger AC -> AC/DC Power supply
  • Traeger Fan -> Relay Board
  • Traeger Auger -> Relay Board
  • Traeger Igniter -> Relay Board
  • 5V DC Power -> RPi, Relay Boards
  • 3.3V DC Power -> MAX 31865s
  • SPI: MISO, MOSI, CLK, CS1 & CS 2 -> MAX 31865s
  • Resistors and Caps for MAX 31865 (See datasheet)
  • RTD -> MAX 31865
  • GPIO for Fan, Auger and Igniter -> Relay Boards [Double check with]

I suggest you understand the flow of information, study the MAX 31865 datasheet, and make the connections. I realize this is probably unsatisfying, and I'd be happy to post a good wiring diagram if someone else makes it.



pythonA Raspbian based linux distrubution was used on the Raspberry Pi.  DietPi was select since it is relatively lightweight, however, I am a bit concerned about the long term maintenance.  Therefore, if I were to do it again, I would likely us Raspbian lite.  However, the goal was to keep the installation as light-weight as possible, avoding booting a GUI and other unnecessary services.  Python was used for the PiSmoker implementation.  The required code, and modules is available on GitHub.  The script runs as root, primarily due to access control to access the underlying pins.
FirebaseThe local service reports states (temperatures, on/off toggles, etc) to a great webservice, Firebase.  Conversely, the client pushes parameters (hold temperature, mode, etc) to Firebase, which PiSmoker implements. The web clients use a static HTML/JS page that interfaces with the Firebase database.  Therefore, PiSmoker does not need to be internet addressable, and the load of serving content is handled by Firebase.  I have been extremely impressed by Firebase, and think this is a perfect use.


The smoker application, known as PiSmoker consists of a few modules that run on the RPi:

  • - Main loop that handles communication with the Traeger, RTDs, and Firebase.
  • - In the spirit of future extension, the toggle of states (fan/auger/igniter) is handled by this library.  In this implementation, it toggles relays.
  • - Subprocess that initializes each MAX31865 RTD, and reports the current temperature.
  • - This module provides a fairly straightforward PID implementation.  It is initialized with PID parameters, is updated with the current reading, and responds with a new command.
  • - Subprocess that displays pertinent information of interest to the operator.  Also updates PiSmoker parameters on button push

In my opinion, most of these modules are fairly self-documented.  Therefore, I suggest that you read through them and understand what is going on.

PID Controller

PIDI spent more time thinking about this than I would care to admit.  PID controllers are commonly used in industry, and calculate control based on the Error in a Proportional, Integral, and Differential sense.  While PID basics are easy to understand, very few implementation examples are provided.  What I finally settled on is cobbled together from Wikipedia, Control Texbooks, and the experiences of the fine folks at Pellet Heads.

W have a Process Variable (PV) that we want to control [Grill Temp] to the Set Point (SP) [Target Temp].  We can calculate the Error (E) as the difference of the two:

error = GrillTemp - TargetTemp

IF the GrillTemp is at the TargetTemp, no need to make any changes.  The controller gains, K_p, K_i, K_id are defined by the operator. For a timestep dT, the proportional component of the new command can be computed:

P = error * K_p + 0.5

The integral component sums up the error over time:

Integrand = Integrand + error*dT

I = Integrand* K_i

The derivative component attempts to predict the future position based on the change in error:

Derivator= error(i) - error(i-1) / dT

D = Derivator* K_d

The new command, u, can be calculated as the sum of each of the PID components:

u = P + I + D

A couple of quick thoughts on what this all means in our context.  What is the command, u?  How can we control the grill temperature?  Well, the only thing we can do is turn the auger on and off.  Therefore, u is defined as the auger duty-cycle.  Therefore, it is the proportion of the time the auger is on.  A command of 1.0 would be constantly running the auger, so maximum temperature.  A command of 0.0 would turn the smoker off.

It appears to be more common to use different definitions for the gains, rather than K_p, K_i, K_d directly.

  • Proportional Band (PB): This is the temperature band centered around the set point, that the controller is active.  If the error is greater than PB/2, the command is 0.  If the error is less than PB/2, the command is 1.0
  • Integral Time (T_i): Time (in seconds) to eliminate the integral error.
  • Derivative Time (T_d): Time (in seconds) to predict the future value.

These three parameters can be used to calculate the appropriate  K_p, K_i, K_d values.

So, what is that 0.5 doing hanging out in the P term?  This centers the control at 0.5 if there is no errors.  While this is likely not the case, it provides a starting point.  The integral term will produce a constant offset to determine the steady-state control signal.

While PID control is (relatively) easy to understand, tuning is not.  Therefore, I leverage what other values had been used for Traegers.  I stand on the shoulders of giants, and used the recommendations from BMerril on Pellet Heads.

Firebase Authentication

Firebase defaults to allowing all users read and write access.  To limit write access to those authorized, add the following to the rules:

"rules": {
".read": true,
".write": "auth !== null"

The PiSmoker and webclient use Firebase tokens for authentication.  Firebase provides documentation for generating each token.

Web Client

PiSmokerThe webclient is a static HTML page with several custom JS scripts to provide realtime updating.  The client pushes and pulls from Firebase.  The webclient is available in the GitHub repository, and can be served from anywhere.  In fact, the FireBase static hosting would make the most sense.

The web client displays the current grill and meat temperature, and their history.  It shows the current status of each of the Traeger states (fan/auger/igniter).  It allows the operator to set the current mode (temperature hold, smoke, etc) and the appropriate parameters.  If desired the operator can queue up commands in a program, with specific targets, such as time or meat temperatures, to advanced to the next mode.  In general, it is simplistic, but suites my needs well.  It works well on my phone as well.

If the user accesses the URL without an authentication string, they are only able to view your progress.  If a "?" and then a firebase authentication token is provided (and verified), they will be able to change the smoker settings.  Be careful with this!

What needs changed

For the most part, PiSmoker was written to be as generic as possible.  However, every implementation is different.  You should be able to get away with changing the following:

  • - The top 20 lines allow you to set static parameters.  This will let you change the RPi pins associated with each relay, etc.
    • f = open('/home/pi/PiSmoker/AuthToken.txt','r') will read the Firebase authentication token (required)
    • firebase = firebase.FirebaseApplication('') This should be changed to target your Firebase instance
  • www/js - These files should be updated to target your firebase instance.


It is a bit of a cobbled together set of tools, but they work together well.  The end result is a controller that meets all of my goals.  I can control the smoker remotely, and hold the temperature generally +-3F.  Furthermore, I enjoy monitoring the process remotely.  I love giving my guests the URL, and letting them know to come over when the meat is 165F.

I would certainly love your input.  The code is free to use, and I'd love to incorporate any improvements you may think of.  I also realize everybody has their unique style, and I am no different.  However, if I little community popped up with PiSmokers, I would be more than happy to participate.

I needed approximately 30 BF of walnut.  I checked all of the local stores, and found the availability of walnut in the quantities I needed was fairly limited. One store wanted $15/BF, however $8-10/BF seemed to be closer.  It wasn't terribly eager to spend $450 on wood.  The only available boards were < 10", therefore, I was going to have to glue up panels for the sides.

I scoured Craigslist, and even went to a garage sale that had 300-400 BF.  However, the boards were a bit too rough for my comfort level, almost all with live edges.  Again, getting wide enough and long enough boards was going to be a challenge.

I found a very assuming Craigslist post of someone trying to sell Walnut.  We exchanged a few emails, but I wasn't overly optimistic.  I borrowed the neighbors truck, and headed to his property.  It was nestled in the woods, with piles of wood and logs everywhere.  It was run by two gentlemen.  As soon as I got there, they had 6 boards, 5/4+ that were 9 3/4" wide and over 14' long.   It was exactly what I was looking for!  They had milled it that morning.  The wood itself has a beautiful grain pattern.  We did some quick math based on assumed yields (6 boards @ 12', 9" width, 1" thick).  Approximately 50 BF, he wanted $5/BF.  We agreed on $200.

We went to load them in to the truck, and quickly discovered that was going to be a disaster.  Fourteen feet boards just don't fit in a pickup. They offered to throw it on their trailer and drop it off at my house.  Very generous and convenient.

MillingI also mentioned that I would love to get a 15"x15" piece to use for the clockface.  We walked around his yard, looking at various logs, and seeing if we could find something large enough.  We located a good looking burl that had good potential.  They tossed in on the mill and started slicing it up.  Unfortunately, there was a bit of rot on the inside, and a 15"x15" piece just wasn't in the cards.  They were confident they would find something that would work and let me know.


2015-05-30 16.32.32The wood made it home without any issue.  I now have it stickered and end sealed with polyeurethane.  The tough part is now going to be waiting for it to reach the proper moisture content.  It currently is in the 25-35% range.  I believe 12% is a reasonable target.

I did a quick recalc on the total volume.  14.5' x 9 3/4" x 8" (total thickness) = 94 BF!  That works out to $2.13/BF!  It is hard to complain about that.

2015-05-31 08.53.07Also, since the boards are 9 3/4" wide, I believe I can make the sides without gluing two together.  A 9" depth should work great.  Since they are 14.5' long, I can use a single board to make both sides, and another board to make the back.  Figure another board for the rest, and suddenly I have twice as much wood as I need.  My original figures (8 boards) were based on requiring glueups and 8' lengths.  I really scored on this one.  And I know I'll be back to visit these gentleman.

3DRenderingThis post concentrates on the design of the wood case.  It is based on the dimensions determined in a previous post.

Autodesk Inventor was used for the modeling. See the Drawings for the details.

A couple of notes:

  • All material from 4/4 black walnut.  I am still looking for a reasonable source of the material.  The best bet so far is from a local supplier with 4/4, approximately 7" wide and 7' long for $8.50/BF.  However, I am still looking around for wider or cheaper stock.
  • It looks like all pieces will require a glue up of multiple boards.  I do not own a jointer, so planer and tablesaw jigs will be required.  I have never done panel glue ups, and that makes me the most nervous.
  • All Dados will be 3/8" deep.  A router with a 1/2" upspiral bit will be used to create them.
  • The mounting of the movement will require a specialized piece.  It will need to have holes for the weights, and not interfere with the pendulum or chimes.  There are taped holes on the bottom for mounting screws.  The layout of these holes is going to be a pain, and will be done closer to game time.
  • I will design the doors after the case is built.

The Movement

The case will be built around the movement.  The critical dimensions are shown below.  The majority of them were measured with a tape measure.  Not exact, but sufficient for this exercise.



Face Width

  • 2(Hand shaft to edge of lever): 2(6 7/16") = 12 7/8"
  • Movement width: 7 7/8"
  • Hand width: 2(4 3/4") = 9 1/2"

Use a 14" wide face (Case ID). For reference, Hermle 1161-853 round dials are 13" wide, with a 11" diameter timetrack.  This will yield a total width of 14" + 1" + 1" = 16".

Face Height

  • Hand shaft to top of chime block: 10" - 2 13/16" = 7 3/16"

WIthout making the face wider, the face is not going to be able to be square.  We should also give ourselves some room in the top depending on the angle of the chime rods.  Therefore, go with 7 3/4" on top, and 7" on bottom.  Use a 14 3/4" tall face.

Case Depth

The depth of the case, neglecting the door.  The slimmer the profile the better.  The door will add about 1"

  • Tip of winding shaft to back of hammer: 1 1/2" + 1 7/16" + 4 1/4" = 7 3/16"
  • Back of hammer to back of chimes: 5/8"
  • Minimum depth: 7 13/16"

Use 9" deep case.  

Case Height

  • Face: 14 3/4"
  • Bottom for square: 14"

Use 78" tall case.  This was determined based on the space.


See the complete design here.

The Setup

IMG_2599I finally got tired of having a movement, and not having it in action.  However, a reasonable case is way to far away, so I put together a test rig.  The rig consisted of some 2x4s, and a cedar top plate that allowed the cables for the weights to pass through.  I picked up some lead shot (for making shot gun shells) for weight.  The left two weights are 7.7 lb mason jars.  The right weight is a 9.9 growler.  The horizontal bar was required to keep the weights from interfering with the pendulum.

It actually took me more time than I care to admit to attach the pendulum (a 1x2) to the leader.  Getting a rigid connection proved to be a challenge.  The best solution ended up slotting the pendulum, and sliding it on the leader.

How it Works

It runs!  It ticks! It tocks!  When I put hands on it, they even move.  I spun the minute hand a little bit and the hammers started firing.  A quick beat count with a stop watch yields it is 14% fast.  Adding a clamp to the bottom of the pendulum got it to within 4%.  Not bad for no calibration.

The pendulum is the most important parameter in keeping accurate time.  Therefore, it is critical to get the pendulum design correct.

The Period

The only parameter governing the period of an ideal pendulum (on earth), is the length.

The 1161-853/94 is geared for 3960 beats per hour [Hermle Service Manual].  In order to make the math work out correctly, I presume that each half-cycle of the pendulum is a beat.

f = \frac{3960 beats}{hour} \cdot \frac{1 hour}{3600 seconds} = 1.1 \frac{beats}{second}

f = 1.1 \frac{beats}{second} \cdot \frac{1 cycle}{2 beats} = 0.55 Hz

 T = \frac{1}{f} = \frac{1}{0.55Hz}

\boxed{T = 1.\overline{81} seconds}

Therefore, we are going to have to target a pendulum design that maintains a 1.8181 second period.

Let's see how that compares with an ideal 94cm pendulum.

 T \approx 2 \pi \sqrt{\frac{L}{g}} = 2 \pi \sqrt{\frac{94 cm}{981 cm/s^2}}

 T = 1.95 seconds

Well, it looks like an ideal pendulum isn't going to do the trick at 94 cm.  Therefore, what we really want is a pendulum with an effective length, \bar{L}, of

T = 2 \pi \sqrt{\frac{\bar{L}}{g}}

\bar{L} = \left( \frac{T}{2 \pi} \right)^2 g

\bar{L} = \left( \frac{1.81818181s}{2 \pi} \right)^2 (980.665 cm/s^2)

\boxed{\bar{L} = 82.1175 cm = 32.3 in}

Therefore, what we really want, is a pendulum with an effective length of 32.3 in!

Physical Design

The pendulum will consist of two components.  See the Introduction for the inspiration for this design.


A bit arbitrarily, the bob was selected to be a 4" diameter, 1" thick, 6061 aluminum disc.  Assuming a density of 0.0975 lb/in^3, the bob will weight 1.23 lb.


The rod will consist of a 3/8" x 3/8" x 1/16" U-Shaped 6061 aluminum channel with a walnut inlay.  Using the same assumed density of aluminum, and a density of walnut of 0.0243 lb/in^3, the rod will weigh 0.012lb.



I have to admit, I put together a fairly comprehensive spreadsheet to calculate the effective length and period.  I attempted to account for the moment of inertia of the rod and the bob itself.  However, at the end of the day, the eccentricity of the bob outweighs the other factors.  Therefore, the distance to the center of the bob should be 32.3 in.

Connection to Movement

PendulumLeaderThe movement has a pendulum leader that is 5.5" long (should be included in the total pendulum length.  There are hooks available that are designed to interface with the pendulum that I will likely use. However, I still need to develop a way to tweak the length.


The heart of any clock is the movement [which is apparently what horologists (which is apparently what clock people call themselves) call the mechanism].  Obviously the case must accompany the motions of the clock, therefore the general principle is to design the case around the movement.  So, here we are at step 1, select a movement.

If I am going to go to all of the effort of building a grandfather clock, I want it to have the guts of a real grandfather clock.  No electric or quartz movements here.  For some reason, the mechanical movements are more "honorable".  With them, they come with these great advantages:

  • More expensive
  • More complicated
  • Less accurate
  • Require more tweaking
  • Require winding

But, to hell with technology, we are doing it the way Galileo intended; with gears, weights, chimes, and we can't forget the pendulum.

 Selecting a Movement


My first step was to jump on eBay and look for grandfather clock movements.  I am not entirely sure why, but I quickly zoned in on the Hermle movements.  I am not going to say they are superior movements to others, but they appear to be popular and in the appropriate price range.  Additionally, once a manufacturer was selected, it significantly reduces the search space, easing the selection of a particular model.

To my surprise, there is limited knowledge on the internet about grandfather clock movements.  For some reason, clock knowledge in old white men's heads appears to be air-gaped from the internet.  Hermle movements have model numbers such as 451-050/94, and I wanted to know what these numbers meant so I could select the proper movement.  This site proved helpful to determine the proper movement.  Jump to there, and you can follow my logic.


Group A: I wanted something weight driven.  That leaves the 260, 451/461/471 or 1151/1161/1171 series'.

Group B: I wanted pendulum regulated.  That eliminates the 260.

Group C: Chain or cable drive?  Eh, what do I care.

Group D: All of the grandfather clocks I have seen have a separate set of hammers for chime (at the top of the hour) and strike (on the quarter hour).  Therefore, we are looking for something with a "5" in the middle slot of the second set of digits.

Group E: This group indicates the hand shaft length.  Since the clock face is going to be wood, it will likely be about an inch thick.  Therefore, the 53 mm (about 2 inches) hand shaft is the way to go.   Therefore, we are looking for something that ends in a "3".

That leaves just one variable, the most important variable, the pendulum length.  It is a bit ironic that the variable that defines the entire mechanism is missing from the model number, but is indicated following it.  The mechanisms of interest come in either a 94 or 117 cm pendulum length.  Since I am not building a massive clock, I decided the 94 cm (37 in) pendulum would make the most sense.

The Search

With that, I thought the 451-050/94 would be suitable, and went to ask the experts at the National Association of Watch & Clock Collectors (NAWCC).  They have a forum for clock lovers, that has a moderate level of activity.  I laid down my goals, and asked the experts.  Their first advice, was to call Mark Butterworth (recall the air-gap?).

I gave Mark a call, and he advised me to hit up some online stores, and give him a call back.  However, he did mention that cable driven movements are superior, and that narrowed the search down to 1151, 1161 or 1171 movements.  Cable movements are wound using a hole in the face.  That is what the clock I had at home growing up required (hmmm, projecting?), so I decided cable drive it was.  Next step, determine what differentiated the 1151, 1161 and 1171.  It turns out, the 1161 can be equipped with Auto Night Shut Off (ANSO), and the 1171 is always equipped with ANSO.  I hadn't even considered ANSO, and that would have been a critical mistake.  I know the first time the thing "bonged" in the middle of the night, my wife would have stopped it, never for it to be revived.

So that leaves the 1161 and 1171 as options.  More specifically, either an 1161-853 or 1171-853.  I jumped on eBay and looked at several used 1161s.  However, it wasn't always clear if ANSO was included.  Additionally, since I know almost nothing about these things, I wanted one that was working well.  I spoke with a retired man in Arizona, who writes repair guides, who had a working 1161-853 that had ANSO.  However, after he was paid, he realized it did not have ANSO and reversed the transaction.  Oh well, time (ha) to keep looking.

There are plenty of new movements on eBay as well. I found 3 major vendors that sold the 1161-853.  I called the first one, who promised phone support, and got a full voicemail box.  Moving on.  The second vendor I called was a retail operation in Milwaukee, Earl at Hawkins Clocks.  Earl was very friendly and knowledgeable, and I now have an 1161-853/94 on the way.  He was kind enough to throw in some extras, such as hands, push rods and mounting brackets all for less than the cost of the movement in his eBay listing.

It Arrives!

The movement came a few days after I ordered it.  It showed up in a custom styrofoam box that appears to have treated it well.


Modern Grandfather Clock Inspiration

I would be lying if said this modern grandfather clock didn't inspire me.  Credit is certainly due, and I first stumbled upon it in a Reddit thread by the creator.

Since taking an amateur interest in woodworking about six months ago, I am always looking for projects.  However, the overlap of projects that I am interested in, capable of, and wife pleasing are fairly limited.  However, the lady took a look at that grandfather clock and told me to "make it happen", so that is what this series is about.

Let me start with my credentials:

  • Clock knowledge (the fact that I am calling it "clock knowledge" is a pretty good indicator)
    • None
  • Woodworking experience
    • Workbench
    • Shop furniture
    • Porch swing the lots of "character"
    • Cutting board which was mis-finished, and cracked before use

So, there you have it.  I set out to create a piece of furniture that typically constructed by ornate artists, and is operated by mechanisms developed based on years of experience and extreme precision.

First things first, let's start with the guts...

Welcome to Engineered Musings!  This is a site to document my random projects that engulf my mind.

You'll notice I haven't bothered to design a logo, customize the color scheme, or write an about page.  That doesn't interest me.  So, let's get started!