Programmable Computer Built From A Humble ATtiny84

attiny84-computer

Here’s a way to play around with simple computing concepts without going too crazy with the hardware side of things. [John Eisenmann] calls it the DUO tiny. It’s a programmable computer based around the ATtiny84. He wrote the operating system himself, building in a set of commands that make it quite functional, but allow the user to manipulate or even write the programs using the four button interface. Editing and running programs (which include some games) is demonstrated in the clip after the break.

The three major components used in the system are the ATtiny84, and EEPROM chip with 64 KB capacity to hold the programs, and the 102×64 pixel LCD screen seen above. The project began on a breadboard, but as he brought each part into being it transitioned to a strip-board prototype and finally this fab-house version.

19 thoughts on “Programmable Computer Built From A Humble ATtiny84

  1. Should be possible to make it even smaller with a ATTiny85 and software i2c.
    Though then it would more likely be a project centered around the idea of using a single MCU with a few pins as possible to accomplish as much as possible.

  2. Typing could be sped up by implementing a “binary search”. Divide all characters in two equal groups, and show them on the screen. Then let the user choose the group where the character is in using two buttons. After each choice, divide left over chars in two smaller groups. Repeat until only one is left. This lets you choose each one of 64 chars in only 6 clicks.

    1. I’ve been wanting a smart watch for decades! Since those first cheezy little “database” watches you could get with a plug-on keyboard.

      The IBM Ruputer looked good but was too expensive. Currently there’s the Inpulse with a nice looking CPU and small colour screen, but one (1) button for input! It claims to do a half-arsed version of Bluetooth, meant for it’s intended use as a phone accessory, to send you messages from your phone to your wrist. But would it work with a Bluetooth keyboard or the Zeemote joystick?

      What I want is something like the 8-bit micros of the 80s. About 64K of RAM or more, couple meg of flash storage, and some sort of teeny keyboard. Or better, a touchscreen plus a joystick for games and menus. Bluetooth too would be good.

      There must be plenty of people want a hacker’s watch. The Chinese ones look quite impressive and they have cellphones in them! Look a bit too flimsy tho and don’t usually support Java. I just want something to tinker on, maybe play a few games, and wear on my wrist! Out of the half-dozen computer-watches of the last decade, none of them have been suitable.

  3. It’s Jack Eisenmann and although I think he’s still in school he’s generated a massive collection of computer projects from 4-bit TTL CPU’s that play pong to more advanced stuff. I’ve been checking his projects out for about the last year and a half.

  4. “Easy to program”
    *Watches him program “hello”*
    Yeah, thanks but not thanks. It’s kinda neat, but tbh, if I need something cheap and small to program, I’d rather buy an old graphical calculator on eBay, say a TI-85 (got mine for like £5), programmable in native BASIC-like program with nice fast IDE, serial interface through the jack via an assembly library. It might be a bit larger, but larger screen, full keyboard that makes it a helluva easier to program, has already got a massive library of programs (and great games), interfaces with your PC via TI-link and Tilp… and it’s also a full blown calculator.

    1. Just a note: many of the commands entered in the video were not dedicated to printing HELLO. Other commands included clearing display, resetting branch stack, prompting a key, and returning control to the OS

      Regardless, you still have a point. There exist easier to program devices.

Leave a Reply to JustinCancel 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.