HOMEBREW My Own Relay Computer
By Harry Porter, Ph.D.
When I was a small boy, my dad brought even procedure call and return. Other than main
home relays salvaged from a decommissioned tele- memory, this is an electromechanical computer,
phone exchange. With abundant enthusiasm, I set out not an electronic computer.
to build a computer from a dozen dusty, nonfunction- Hand-assembled machine code programs
ing telephone relays. I worked on it for a while, but are toggled in bit by bit, by flipping switches on
eventually gave up and moved on to other things. the front panel. The only output is from glowing
However, I became mesmerized with the idea LEDs that reveal the internal state of the machine.
that machines might someday be made to think, Designing it forced me to think through the question
and the possibility of mechanizing consciousness of what truly constitutes the core of any computer.
itself. I spent years studying computation in the My design makes clear the big picture of how
abstract, but I never lost my fascination with simple computers work, which so often gets lost in the
machines. This unfinished project remained in the complexity of contemporary processor designs
back of my mind, long after my mom tossed out and society’s relentless quest toward efficiency,
those grimy old relays. optimization, miniaturization, and specialization.
Then one day I realized that I had really, truly Although the machine contains only 415 relays
grown up. I could now do things I could only dream and runs at a mere 6Hz, the sound of the clicking
about as a child. I now had the time, the money, the relays makes this the most physical, alive computer
knowledge, the patience, and the determination to I’ve ever encountered. The experience of finally
complete this long-abandoned project. completing a project once dreamt of as a kid has
My relay computer contains eight general-purpose been enormously gratifying. I can finally check
8-bit registers, a 16-bit program counter, and an 8-bit “build a computer out of relays” off my to-do list!
ALU capable of performing addition, logical operations, and shifting. The CPU can execute all common
instructions including conditional branching and
Harry Porter teaches computer science at Portland State
University. He’s married with a sixth child on the way, which
he looks forward to programming. makezine.com/go/relay
Photograph by Harry Porter
208 Make: Volume 13