Anthropomorphizing Microprocessors

Vintage microprocessors usually do something, be it just sitting in an idle loop, calculating something, or simply looking cool in a collector’s cabinet. [Lee] has come up with a vastly cooler use for an old microprocessor: he’s anthropomorphized it by wiring LEDs up to the address lines and arranged those LEDs into a face. After wiring up the right circuit, the face of LEDs slowly changes expressions, making this tiny little board react to random electronic fluctuations.

The CPU used for this project is the RCA 1802, best known for being the smarts in the COSMAC Elf, a very early microprocessor training computer, but still capable of teaching the basics of computing today, albeit on a processor that isn’t made any more with an instruction set that is barely supported by anything modern.

[Lee] apparently has a lot of these 1802s, and to show off how simple a microcomputer can get, he created the strangest use for a CPU we’ve ever seen. You can’t program this face of LEDs; the data bus is left floating so random values are ‘displayed’ on the face. Only one of the data lines is pulled high. This prevents the data bus from ever being 0x00, the HALT instruction.

If you’re looking for something a little more useful to do with an RCA 1802 MPU, [Lee] also has a COSMAC Elf membership card. It’s a reproduction of the famous COSMAC Elf, repackaged into a board the size of an Altoid tin. It has the 1802 onboard, a few switches and blinkenlights,  and a parallel port for interacting with peripherals.

28 thoughts on “Anthropomorphizing Microprocessors

        1. Running at 1hz in itself is not amazing. Any CMOS CPU, MCU can do it. Name it AVR, PIC, MSP430. What is interesting about the CDP1802 is that it is one of the first (if not the first) CPU that used CMOS technology. Nowadays all of them are CMOS and consequenly their clock can be stopped without loosing their internal states. First CPUs where in NMOS technology and where consuming more current and the clock coudn’t be stopped. It’s the reason why NASA used CDP1802 in some of interplanary probe like Galeleo, it could be run at slow pace to save energy. Harris still manufacture radiation hardened version of it.

      1. There is no multplexing, no software. The CPU is running a random instruction stream, provided by noise on the unconnected data lines that should normally go to a memory chip. The LEDs are connected to the address lines, with multiple LEDs on most individual lines, so that it always maintains enough shape/symmetry to be face-like.

      1. The phrase is “fully static”, and can apply to other bits than the CPU. If a design is “fully static” then it can be run down to DC, no minimum clock rate.

        Early computers generally weren’t, because they used “dynamic logic”, instead of “static logic”, to save components on the ICs. Jeri Ellsworth made an interesting video about it a few years ago. In dynamic logic, everything only works as long as expected as long as you’re pumping it along at least at the minimum rate.

    1. Yup, it’ll clock right down to zero and won’t loose state. You can debounce a switch and clock an 1802 with it.

      It’s a seriously cool 8-bit CPU to play with. It doesn’t require a bootloader to get it to communicate with the outside world either. Give is some RAM, a clock, a bank of switches for input and bank of Led’s for output and you can start coding. Lee has an Altoids sized kit that’s pretty much a full blown Cosmac Elf computer from back in the day (http://www.sunrise-ev.com/membershipcard.htm).

      There’s another guy who’s taken that kit and created an adapter to run Arduino shields on top of it (http://olduino.wordpress.com/about/). He’s got a web server running on it from time to time as well as various robotic projects. He’s even built a C compiler: https://sites.google.com/site/lcc1802/

    1. My ‘guess’ is that there is no video because the images above are “ideal”. I can only imagine that much of the time the “face” doesn’t look like much of a face. I could be wrong, but I don’t think so. It’s hard to decide which situation would be truer without more information and/or study. It’s a nice little project, though, regardless. It would be nice to see a real-time and sped up video of it, though.

      1. There’s no video simply because I don’t have a digital video camera. :-) But to answer your question: The face *always* looks like a face. The LEDs aren’t multiplexed, and they don’t blink. They are wired in symmetrical sets, so you can’t have (say) a gap in the smile or only one eyebrow.

        A video would show that it displays some expression for a few seconds, then it instantly changes to a new expression for a few seconds, then another new one, etc. The video would have a hundred identical frames, then an instant change and another hundred identical frames, etc. An animated GIF would probably be a more effective way to see it in action than a video.

  1. This makes me extraordinarily happy… All those ancient microprocs I’ve got sitting in boxes were never going to have their code broken by me; hard to find documentation, assemblers only exist for operating-systems now long-defunct, data-sheets are nearly impossible to find, and instruction-sets lost in time… Knew *something* could be done to make ’em useful again and show off their pretty packages (some have gold, and white ceramic! Others have sockets mounted atop for EEPROMs, how cool is that?).

    This hack is a truly excellent use of such things.

    I’m certain similar can (and likely will) be done with most of these ancient beautiful micros I happened to inherit, but I also wonder, can similar be done with the much more widely-available and completely useless–by today’s standards–x86 procs piling up in the junk-piles…?

    Does anyone know if, e.g., x86’s can be clocked at such low rates? Are the standard-packages these days making actual address/data lines directly-available, or are they something more complex (e.g. some sort of hyper-transport that only a North-bridge can decode? or maybe something similar to the really-low-voltage or odd-format signals used by DDR?) Are they even capable, these days, of running off voltage(s) easily-available to the typical hobbiest? I dunno why x86 is even remotely appealing to me for a use like this, maybe just accessibility… e.g. in a hacker-space “getting-started” course, maybe “give your old CPU new life” sorta thing. Could have the pinouts for various socket-formats readily-available, maybe even PCBs. Or just point-to-point solder to a header… Probably absurd, but just a thought.

    Alls that really needs to be stated is that this hack makes me extraordinarily happy.

    1. That’s one of the chief reasons the 1802 is ideal for this. It operates on a single + voltage source (pins 16 & 40) and can operate on a variety of voltages and clock speeds. The maximum frequency and voltage is somewhat dependent on the version of the chip you have but they will all clock down to nothing. I don’t believe there are any other chips that can clock down like this without loosing state but I haven’t spent a lot of time looking.

    2. LOL, glad to hear this made yah extraordinarily happy! It’s perty slick, indeed… Memorable, in fact. Nice job, Lee! And thanks for those thought-points.
      A little bit of research in a not particularly-easy document to locate (URL long-lost, unfortunately):
      486s come in two varieties, those with PLLs and those without. Those with can only run down to 8/16MHz, depending on the model. Those without allegedly are “guaranteed by design, but not 100% tested” to run between 0-8MHz, and the speed can be “dynamically-varied.”
      But why the fixation on x86’s when we’ve both a box full of pretty CPU/MCUs?

      1. The 486 was the first Intel chip to do clock-multiplying, where you feed a 33MHz clock, and the chip doubles it on-board to 66MHz. So that would account for the difference between the PLL and non-PLL version. Anything with a DX2 or DX4 in the name will have the PLL.

        Equally the first Pentiums, 60 and 66MHz, used direct clock driving, everything above that, I think, used a PLL. Eg the 75MHz Pentium ran at 50MHz x 1.5. I think.

  2. Thanks to all for your kind comments. :-) Yes, it really is running at 1 Hertz (1 cycle per second). Any CMOS CPU can do this, though I don’t know of any NMOS CPU that can do it.

    It would be an interesting challenge to do this with an x86 CPU. Most of them are NMOS, so you might have to use a faster clock with wait states or something to slow it down. Power consumption will probably be a lot higher, so battery operation may be impractical. There are also more instructions than HALT to avoid to prevent locking into a trivial pattern. Someone will have to try it and see how it works. :-)

  3. It’s a real fun kit to build. In fact, all of Lee’s kits are extremely well designed. If you like LED kits, you should ask him about his Christmas Tree kits. I have built several of Lee’s kits, you’ll love them too! Nice write up Brian!

    Sincerely,
    Josh Bensadon

Leave a Reply to RPCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.