Arduino Forum

Community => Exhibition / Gallery => Topic started by: kiwimew on Sep 24, 2011, 06:57 am

Title: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: kiwimew on Sep 24, 2011, 06:57 am
This is an Arduino-based emulation of the KENBAK-1 http://en.wikipedia.org/wiki/Kenbak-1 (http://en.wikipedia.org/wiki/Kenbak-1), considered by some to be the first "personal computer", first advertised for sale in the September 1971 issue of Scientific American.


(http://farm7.static.flickr.com/6155/6176560133_8c46e1934a.jpg) (http://www.flickr.com/photos/funnypolynomial/6176560133/)
The KENBAK-uino (http://www.flickr.com/photos/funnypolynomial/6176560133/) by funnypolynomial (http://www.flickr.com/people/funnypolynomial/), on Flickr

(http://farm7.static.flickr.com/6160/6177064688_ac50d86f5b.jpg) (http://www.flickr.com/photos/funnypolynomial/6177064688/)
Core Memory (http://www.flickr.com/photos/funnypolynomial/6177064688/) by funnypolynomial (http://www.flickr.com/people/funnypolynomial/), on Flickr

(http://farm7.static.flickr.com/6176/6177070588_5c4cdc4a67.jpg) (http://www.flickr.com/photos/funnypolynomial/6177070588/)
Assembled -- Top (http://www.flickr.com/photos/funnypolynomial/6177070588/) by funnypolynomial (http://www.flickr.com/people/funnypolynomial/), on Flickr


(http://farm7.static.flickr.com/6177/6176535679_abf1ba9c1d.jpg) (http://www.flickr.com/photos/funnypolynomial/6176535679/)
Scientific American (http://www.flickr.com/photos/funnypolynomial/6176535679/) by funnypolynomial (http://www.flickr.com/people/funnypolynomial/), on Flickr


I'd been thinking for a while that emulating an old-school switches-and-lamps computer would be a fun Arduino project, but had stalled looking at things like the Altair 8800 with its 30+ lights and 20+ switches.  However, when I stumbled upon the Kenbak I thought it was something I could pull off as my first real Arduino project.  Naturally I called it the KENBAK-uino
This is the end-product, it can be programmed via the buttons on the front panel and show outputs on the LEDs.  It's a faithful emulation of the original CPU but with a few enhancements thrown in like pre-loaded sample programs and access to a real time clock.
See the set on flickr with more photos and a couple of videos http://www.flickr.com/photos/funnypolynomial/sets/72157627738613990/ (http://www.flickr.com/photos/funnypolynomial/sets/72157627738613990/).
Get the Sketch from here:http://www.funnypolynomial.com/software/arduino/kenbak.html (http://www.funnypolynomial.com/software/arduino/kenbak.html).
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: robtillaart on Sep 24, 2011, 10:15 am
Never heard of KENBAK until today,

Do you have a movie (youtube) that shows how it works?

Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: keeper63 on Sep 24, 2011, 11:06 am
Awesome job! :)

Do you happen have the files and other info for the case/panel/switches used (so it can be replicated like your original)?
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: kiwimew on Sep 24, 2011, 01:57 pm
There are a couple of videos of the KENBAK-uino at the end of my flickr set, http://www.flickr.com/photos/funnypolynomial/sets/72157627738613990/ (http://www.flickr.com/photos/funnypolynomial/sets/72157627738613990/)
The first one shows me entering a simple program on the front panel, the second shows the sample programs I include in the sketch.
The only youtube video I've found of the original is this http://youtu.be/lxsdL_OWumw (http://youtu.be/lxsdL_OWumw).


Here in New Zealand, I used these buttons http://www.jaycar.co.nz/productView.asp?ID=SP0603 (http://www.jaycar.co.nz/productView.asp?ID=SP0603) and this case http://www.jaycar.co.nz/productView.asp?ID=HB5970 (http://www.jaycar.co.nz/productView.asp?ID=HB5970).  I've attached a PDF of the faceplate and drilling guide.
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: draythomp on Sep 25, 2011, 02:29 am
Nice job.  The thing I remember most about those days was how hard those things were to program.  I really love it when cassette tapes came around.

How are you folks getting those incredibly nice front panels?
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: kiwimew on Sep 25, 2011, 04:21 am
Oh yeah, programming it is not easy!  But it is quite a sense of achievement


(http://farm7.static.flickr.com/6164/6177072232_78f3a0533d.jpg) (http://www.flickr.com/photos/funnypolynomial/6177072232/)
Faceplate (http://www.flickr.com/photos/funnypolynomial/6177072232/) by funnypolynomial (http://www.flickr.com/people/funnypolynomial/), on Flickr


The enclosure came with a black plastic front panel which sat in a slot in the case.  I used thinner white plastic and had intended to laser-print the labels on an Overhead Projector transparency, but it kept smudging, so instead I printed it on heavy acid-free paper.  The design of the front panel was done by writing custom PostScript code.  Small bolts ran through the paper and plastic backing to the front-panel PCB.  The paper+plastic sandwich slid into the slot in the case.


(http://farm7.static.flickr.com/6153/6176543635_2f76543582.jpg) (http://www.flickr.com/photos/funnypolynomial/6176543635/)
Assembled -- Front (http://www.flickr.com/photos/funnypolynomial/6176543635/) by funnypolynomial (http://www.flickr.com/people/funnypolynomial/), on Flickr
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: keeper63 on Sep 25, 2011, 05:37 am
Here in New Zealand, I used these buttons http://www.jaycar.co.nz/productView.asp?ID=SP0603 (http://www.jaycar.co.nz/productView.asp?ID=SP0603) and this case http://www.jaycar.co.nz/productView.asp?ID=HB5970 (http://www.jaycar.co.nz/productView.asp?ID=HB5970).  I've attached a PDF of the faceplate and drilling guide.


Thank you for posting that; its really a great looking project - heck, it deserves to be a kit! It would complement the "mini-Altair" emulation kit that's out there (which uses a PIC processor, IIRC)...

:)
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: draythomp on Sep 25, 2011, 05:40 am
That was so clever.  Good job.  On the transparencies, I once tried that, but I had the same problem as you.  Additionally I had the letters try to flake off when they were touched and it just wouldn't cooperate with me.  What I finally ended up doing was reversing the lettering so that when I turned it over, it read correctly.  Then I mounted it backwards to the panel I was using.  It looked really cool for a few months and the darn transparency started to turn yellow.  I understand they have that problem fixed now and it could work.  Haven't tried it though.

Next question, how did you punch those perfect holes in it.  I could understand a hole punch, but you have different size holes there.

In case you haven't noticed, I'm stealing your ideas.
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: kiwimew on Sep 25, 2011, 08:05 am
Thanks for your kind words.  I'd love to see some other KENBAK-uino's out there.  :)
I was also going to do the "reverse" trick on transparency, but couldn't get past the smudging (especially after punching 33 holes, that's a lot of handling).  I'll keep an eye on my test pieces and see if they yellow, for future reference.
I used a "Revolving Punch Plier" like this http://www.handscraftstore.com/shop/show_single_product.php?prod=1060 (http://www.handscraftstore.com/shop/show_single_product.php?prod=1060) (but thankfully a cheaper model).  The secret is to put a few extra layers of sacrificial paper behind the work-piece, a single piece of paper won't punch very well.  And then it was a matter of carefully placing the punch over the faint circles I rendered on the front panel.
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: draythomp on Sep 25, 2011, 04:54 pm
revolving punch plier.....I didn't even know such a thing existed.  One day, we should all get together and share ideas about making projects look nice.  Things like bezels for LCD displays, lettering, drilling holes, etc.  The newbies would love it and us folk that have tried a thousand ideas just to have one work would save a bunch of time.

Thank you very much.
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: robtillaart on Sep 25, 2011, 10:22 pm
I mailed John Blankenbaker yesterday the original creator of the KENDAK this thread ( - http://www.kenbak-1.net/ - )

From his reply "... I have often wondered how much physically smaller the Kenbak-1 computer could have been made using modern technology. The limitation is in the switches and lights, not in the logic."

I think he is 100% right,
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: TonyD on Sep 26, 2011, 11:41 am
@kiwimew
Great project, well done.

I've always wanted a KenBak-1 for my retro computer collection, now I can :-)
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: kiwimew on Sep 26, 2011, 09:11 pm
John B told me he encourages the K-uino.

BTW, some of my original captions on flickr were wrong: September 1971 is FORTY years ago not thirty!
No, I don't know how I screwed that up but I was in a slight hurry to post before the end of September.
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: keeper63 on Sep 26, 2011, 09:37 pm

revolving punch plier.....I didn't even know such a thing existed.  One day, we should all get together and share ideas about making projects look nice.  Things like bezels for LCD displays, lettering, drilling holes, etc.  The newbies would love it and us folk that have tried a thousand ideas just to have one work would save a bunch of time.

Thank you very much.


There's also a tool out there called a "chassis punch", which has hard steel anvils in various shapes to punch different sized holes thru various materials (thin sheet metal, typically). You can find a set via Harbor Freight and other places (also used to punch holes in the old days on metal car dashboards). I've yet to find a set, though, that has square punches (back in the day, these were typical - not sure what happened to the square ones).
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: kiwimew on Sep 28, 2011, 03:18 am
Embedded YouTube of the KENBAK-uino being programmed:
http://www.youtube.com/watch?v=B1wc3vfmbXI
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: liuzengqiang on Sep 28, 2011, 05:53 pm
Awesome project. It makes me want to add a friendlier user interface to it (LCD + number keypad).

This emulation project makes me think of another emulation project: what if I use an arduino and a 128*64 GLCD to emulate a 20X8 HD44780 character LCD with 4-bit interface????
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: robtillaart on Sep 28, 2011, 06:45 pm
Quote
what if I use an arduino and a 128*64 GLCD to emulate a 20X8 HD44780 character LCD with 4-bit interface????

you will have too few pixels? 
128 /20 = 6
64 /8 = 8
so your chars are 7x5 if you don't want them touching each other.

16 x 8 display seems more feasable as you get 7x7 chars
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: liuzengqiang on Sep 28, 2011, 07:02 pm
I thought the basic font ont the GLD is 7*5 so 8*6 space is enough to fit one character with boarders on the bottom and right. I'll have to check. I have a GLCD on a breadboard.
With 13 pins for the GLCD and 6 pins to emulate HD44780 LCD, I still have one pin left, what to do???

The real question is, will LiquidCrystal library work with this size display (8 rows).
Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: robtillaart on Sep 28, 2011, 08:26 pm
Quote
I still have one pin left, what to do

Backlight control?

Quote
The real question is, will LiquidCrystal library work with this size display (8 rows)

4 lines is most , saw the code quite recently.

Code: [Select]
void LiquidCrystal::setCursor(uint8_t col, uint8_t row)
{
  int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 };
  if ( row > _numlines ) {
    row = _numlines-1;    // we count rows starting w/0
  }
 
  command(LCD_SETDDRAMADDR | (col + row_offsets[row]));
}


this one can be patched quite easily I think...

Title: Re: KENBAK-uino (Arduino emulation of the KENBAK-1)
Post by: kiwimew on Sep 29, 2011, 12:15 am
Seems to me these could be Arduino-emulation-worthy and interesting projects:
COSMAC ELF, http://en.wikipedia.org/wiki/COSMAC_ELF (http://en.wikipedia.org/wiki/COSMAC_ELF)
11 toggles, 1 push-button and two seven-segment displays

EDUC-8, http://en.wikipedia.org/wiki/EDUC-8 (http://en.wikipedia.org/wiki/EDUC-8)
44 LEDs(!) and 15 switches