Once upon a time, microcomputers were simple and easy to understand. So simple in fact that a kid like me, with no computer experience whatsoever, could actually understand them, build them, program them, and put them to work in his very own projects!
The COSMAC 1802 was created in the 1970's at the dawn of the microcomputer revolution, by Joseph Weisbecker of RCA Corporation. It used their new CMOS fabrication process, which had very low power consumption, high noise immunity, and was very simple to use. It was intended for military and aerospace; applications too tough for other microcomputers to survive.
But Joe was a hacker at heart. He wrote a series of articles starting in the August 1976 issue of Popular Electronics magazine called "Build the COSMAC ELF". It described a simple low-cost computer, using the 1802 microprocessor. At the time, microcomputer systems cost hundreds to thousands of dollars. (Hmm... they still do today!) But Weisbecker's ELF cost less than $100! Yet, it was an honest-to-goodness real live computer, able to do anything its much bigger cousins could do -- albeit a bit slower and cruder.
It was the ideal computer trainer. Hobbyists built thousands of ELFs, learning about computer design, construction, and programming in the process. A dozen companies produced versions of the ELF, also selling for low prices. It was the "Legos" of computers; a simple building-block computer that could be assembled many ways to become almost anything, limited only by your imagination.
I learned about computing on my ELF. It set me on a career in engineering, as it did for thousands of others. 1802's got designed into all sorts of amazing things; video games, music synthesizers, auto engine controllers, military weapon systems, and even NASA missions such as the Galileo spacecraft. Eat stardust, PCs and Macs!
Today's computers are far more powerful than the 1802. But they have also become so complicated that virtually no one can build them or truly understand how they work. We depend on someone else to make them for us, and to provide us with the megabytes of pre-written software needed to do anything with them. You can't learn the basics if there is nothing "basic" to learn on! I decided to do something about it.
The Membership Card is a reproduction of the original Popular Electronics Elf computer, repackaged to fit in a pocket-sized Altoids(R) tin. It uses no custom parts, no surface mount assembly, no need for PCs, no megabyte compilers, or secret software to use it. Now you can learn about computers right from the ground up, and really understand how they work!
Inside are two circuit boards, each the size of a credit card. One is the Membership Card itself. It has the 1802 microprocessor, up to 32k bytes of memory, 22 bits of I/O, and the needed clock, reset and power supply circuits, and a supercapacitor to maintain memory contents without power. It can be used by itself as a microcontroller for projects like the Parallax BASIC Stamps or Arduino microcontrollers. All power and input/output signals are available on the 30-pin header along the bottom.
The second board is the Front Panel. It provides the switches and lights to implement a control panel, just like the classic computers of old. The front panel lets you read and write to memory and I/O ports manually, without any help from software or external devices. The Front Panel also brings the power and I/O signals out to a standard PC Parallel Port connector. It's a simpler way to connect external devices, and can also be plugged into a PC for software loading or downloading, or to use the PC's keyboard and screen for 1802 programs.
The Membership Card can be purchased as a bare board with manual, or as a complete kit with all parts including the RCA 1802 microcomputer, 32k bytes of RAM, and even an empty Altoids tin to put it all in. An optional Cover Card is also available to provide a finished cover with holes and labels for all the lights, switches, and connectors.
The Membership Card is your ticket to the fascinating world of microcomputing. Return with me now to those thrilling days of yesteryear, when the heroic pioneers of the microcomputer revolution built their own computers from scratch, and learned to program them to do incredible things, all for a tiny amount of money!
OK, so you now have your "Elf" computer. What can you do with an 1802? How about a digital alarm clock? It's a project that I just started. I'll be describing it here as I go along, so you can build one yourself, or contribute (or kibitz, or heckle) as you see fit.
It all started because my son loves Minecraft. And, he is very hard to get out of bed in the morning. So how about an alarm clock that is truly "alarming"?
Minecraft has a character called the "creeper". He's like a suicide bomber -- he sneaks up on you, and then EXPLODES! So I decided to build a "creeper" alarm clock. I bought a cheap creeper mask (actually nothing but a cardboard box printed to look like the creeper's head) on a post-Halloween sale on eBay. I'll put the clock display in the eyes (hours on the left, minutes on the right). Put a real LOUDspeaker in it (not the wimpy little things found in commercial alarm clocks). As it gets close to the set time, it will start ticking like approaching footsteps. Louder and louder, closer and closer, until a big KABOOM! explosion sound at the end. The only way to stop it is to get out of bed (because the alarm's "off" button is a weight-sensing switch under a foot of the bed)!
The Membership Card has 8 output bits. A clock display made with 7-segment LEDs (18:88) has 2+7+7+7 = 23 LEDs. I also want LEDs for AM, PM, Alarm, and a colon between the hours and minutes; that's another 5, for a total of 28 LEDs. To drive 28 LEDs with 8 output bits, I need to multiplex them, i.e. divide the 28 LEDs into 7 rows and 4 columns.
I don't have 11 output bits (7 rows + 4 columns), so I used a 74LS145 1-of-10 decoder to drive the 7 rows. 3 output bits select 1 of 7 rows (the LED cathodes). Then 4 more output bits drive the 4 columns (LED anodes). This uses 3+4=7 bits, so I actually have one bit left over. :-)
Each output comes from a 74HC373, which can source 6ma with a 0.3v drop; so it acts like a 0.3v/6ma = 50 ohm resistor. Each 74LS145 output can sink 24ma with a 0.35v drop, which can handle 6ma from 4 rows all on at once.
Can I use the 74HC373's 50 ohm output resistance instead of physical resistors? Let's see... With a 5v supply, the 74HC373 drops 0.3v and the 74LS145 drops 0.35v, leaving 4.35v for the LEDs. I have a bag of orange rectangular LEDs left over from a previous project that happen to measure:
I can use two in series to make each segment of the 7-segment LED display. This neatly provides about a 4v drop, so I can get by without adding series resistors. (Yeah, I could also put a resistor in series with each of the 4 anode outputs and use standard common-anode 7-segment displays. But then I'd have a boring display that looks just like everyone else's). Here's a photo of what my LED display looks like:
The multiplexing here is a little different than the usual method of scanning digit-by-digit (light all needed segments of the 1st digit, then all needed segments of the 2nd digit, etc.) Here, I need to scan by segment (light the "a" segments of all digits, then light the "b" segments of all digits, etc.) This is a consequence of not having enough output pins, and not wanting to add more chips to get around it. It will make the software "entertaining".
Check here for additions, corrections, and the latest version.
The 1802 Membership Card Microcomputer, © 2006-2013 by Lee A. Hart. Created 8/5/2012. Last update 4/16/2013.
Go to TOP ........ Go to HOME ........ Questions? Comments? Email me for details.
Web hosting provided by Turtlehut Internet Marketing http://www.turtlehut.com/