Move Over, Arduino: Here Comes the Cosmac Elf

A modern version of a 1976 computer may be surprisingly useful

5 min read
Move Over, Arduino: Here Comes the Cosmac Elf
Photo: Randi Klett

Regular readers of this column may have noticed that I have a fondness for  new takes on old technologies. So you won’t be surprised that when I came across Lee Hart’s Membership Card kit, I leapt at the chance to build it. The Membership Card is a modern version of the 1976 Cosmac Elf. The Elf was an influential early microcomputer built around RCA’s CDP1802 processor. What may be more surprising is that the Membership Card might be just the ticket for modern makers looking to build microcontroller-based devices that can run for a year on a few AA batteries.

The original Elf dates from the heroic age of personal micros, a time before QWERTY keyboards and bitmapped displays became standard and made us all soft. Input was via a set of toggle switches, hand-setting each bit in a byte. You wrote programs in pure machine code. You read the output via a two-digit LED display capable of showing one hexadecimal digit apiece, plus one additional so-called Q LED. The Membership Card is even more severe on the output front than the original: “Numeric” output is via a row of eight LEDs that display a byte in binary. You can’t get closer to raw computation without an erasable marker and a really long piece of tape.

Elf in a Tin

img HRStephenCass3337

img HRStephenCass3218

img HRStephenCass3233

img HRStephenCass7712A Cosmac Squeeze: This remake of the 1976 Cosmac Elf uses the same CDP1802 processor (top) and a stripped-down version of the front panel found on early micros (second photo from top). The processor and panel board are sandwiched together (third photo). The computer is externally powered: I used an Arduino as a 5-volt regulated power supply (bottom).Photos, from top: Stephen Cass (3); Randi Klett

The Q LED is tied to one of the unusual features of the 1802 processor, and these features help explain how the Elf and its descendants maintained their popularity well into the 1980s and still find some uses today, particularly in aerospace. The Q LED is directly connected to a processor pin that can be turned on or off with a single instruction. The ease of hooking up external circuitry to this Q pin, and the relative ease of writing software to control it, meant that the pin was used to communicate with all kinds of external devices, such as serial interfaces or loudspeakers. Connecting the Q output to a speaker and turning it on and off at the right frequencies generates musical tones. So the Elf was popular among synthesized music pioneers, as demonstrated by the Elf’s prominence at the First Philadelphia Computer Music Festival, in 1979.

The 1802 also features four special input pins. The state of these pins can be read and branched upon using a single instruction apiece, greatly simplifying the physical circuitry and software required to accept input from peripherals. Another handy quirk of the 1802 is that its clock speed can be dynamically adjusted, from about 1.8 megahertz (in the case of the Membership Card) right down to zero. Stopping the clock doesn’t cause the processor to reset, and the clock can be restarted without the 1802 missing a beat. At low speeds the 1802 needs little voltage and draws only a tiny amount of power. These features should make the 1802 of interest to anyone who needs a reliable embedded controller that could potentially be run on a small solar cell.

The standard Membership Card Kit, from Hart, costs US $79—I paid an extra $10 for a version that includes a cover for the kit’s front panel. Hart also sells a bare-bones printed circuit board without any components, but buying the components with the kit means getting an 1802 processor without the hassle of dealing with resellers on eBay. (Intersil, the current manufacturer of 1802 processors, sells only a few thousand military-spec versions a year, at $124 apiece, bulk orders only.)

The kit takes the form of two interconnected boards sandwiched together. The bottom board is actually a complete computer that holds the 1802, system memory, and some supporting circuitry. The top board is the “front panel” and holds the toggle switches and LEDs used for input and output, as well as a power socket and a 25-pin socket. The latter can be used to connect the kit to a PC parallel port.

The bottom board can function without the front panel. It comes equipped with a 32-kilobyte static RAM chip, but if you buy some additional third-party components, you can install a second RAM chip or EEPROM. These chips would make boot loaders and other code permanently available to you. Hart has also included a hefty capacitor that can maintain the contents of the RAM chip for several hours.

Squeezing the Elf into a form factor that can fit inside an Altoids tin means that assembly is a pretty fiddly operation (although most of the difficulties I had were due to insanely bad luck rather than Hart’s design). And programming software more than a few dozen bytes long is tedious and error prone.

Fortunately, as of a hardware revision from last February, the Membership Card now includes improved support for serial communications, which allows you to load programs from, and communicate with, a host computer much as you would with an Arduino.

There are two wrinkles: First, you must decide in advance if you want to use “TTL” voltage levels for the serial interface (which works with many serial-to-USB adapters) or “RS-232” levels (for interfacing with the serial ports found on older PCs). The circuitry is slightly different for each. Second, you’ll have to provide your own software to handle the serial interface (this is where the ability to install an EEPROM comes in handy). Fortunately, you can get lots of help and advice on this—and many other matters related to the Membership Card and the 1802—on Hart’s website as well as on the pages of

As I don’t have an EEPROM burner, I’m currently working on an Arduino-based interface that will connect via the parallel port provided by the front panel. The goal is to duplicate the functions of the original hexadecimal keypad and display while also allowing longer programs to be uploaded from a PC, but this will have to be the subject of a follow-up article. For now I’ve contented myself with toggling in some of the sample programs available for the Elf, including a few from the original series of articles in Popular Electronics that introduced the computer to the world. One of these is ETOPS-256, a 32-byte-long operating system. It’s not exactly a sophisticated OS, but it is the only one I can say I have the pleasure of fully understanding.

This article originally appeared in print as “You Can’t Keep a Good Elf Down.”

This article is for IEEE members only. Join IEEE to access our full archive.

Join the world’s largest professional organization devoted to engineering and applied sciences and get access to all of Spectrum’s articles, podcasts, and special reports. Learn more →

If you're already an IEEE member, please sign in to continue reading.

Membership includes:

  • Get unlimited access to IEEE Spectrum content
  • Follow your favorite topics to create a personalized feed of IEEE Spectrum content
  • Save Spectrum articles to read later
  • Network with other technology professionals
  • Establish a professional profile
  • Create a group to share and collaborate on projects
  • Discover IEEE events and activities
  • Join and participate in discussions