Universal Retro keyboard

dave
Site Admin
Posts: 599
Joined: Tue Sep 09, 2008 5:24 am

Re: Universal Vintage keyboard

Post by dave » Wed Oct 23, 2019 3:49 am

I haven't had as much hobby time as I'd like, and I've been working to restore the physically damaged machines from my shelf failure earlier this year. But I finally got to do a little work on the keyboard project. I have a keyboard PCB that can take either the the same Futaba MD-4PCS keys as the OSI keyboard, or Cherry MX keys. I found a mezzanine connector that permits a daugherboard to be swapped out. I have one daughterboard to interface with OSI computers and another daughterboard that provides ASCII output with Apple-I and Apple-II connectors. Finally, I have key aligners for both Futaba and Cherry MX keys.

Here are the boards:
boards.jpg
boards.jpg (235.81 KiB) Viewed 1774 times
The aligners for Cherry MX and Futaba keys, loaded (front and back views):
switches-front.jpg
switches-front.jpg (236.38 KiB) Viewed 1774 times
switches-back.jpg
switches-back.jpg (230.03 KiB) Viewed 1774 times

Here is a Cherry Red key with posts, a Futaba key, and a Cherry Brown key without posts, all mounted on the keyboard. The Cherry keys without posts and Futaba keys really benefit from the aligners.
switch-types.jpg
switch-types.jpg (191.78 KiB) Viewed 1774 times
Finally, the whole thing put together (but not soldered, and no spacers installed):
loaded.jpg
loaded.jpg (202.69 KiB) Viewed 1774 times
assembled.jpg
assembled.jpg (154.82 KiB) Viewed 1774 times
Dave

dave
Site Admin
Posts: 599
Joined: Tue Sep 09, 2008 5:24 am

Re: Universal Vintage keyboard

Post by dave » Wed Oct 23, 2019 3:53 am

The first photo shows the ASCII daughterboard. I haven't sent off the OSI daughterboard. I'm still deciding what features to add (soft shiflock, delayed reset, for example).

I plan to work on the software for the ASCII encoder next.

dave
Site Admin
Posts: 599
Joined: Tue Sep 09, 2008 5:24 am

Re: Universal Vintage keyboard

Post by dave » Wed Oct 23, 2019 3:58 am

One more thing. The key aligners will work for OSI keyboards, both original and Cherry MX keys. The aligner is not needed for keys with posts, but is very helpful for keys without posts and for original Futaba keys. Just ignore the extra keys.

If you haven't noticed, this keyboard will fit OSI and Apple II keyboard cutouts. I also have DXF and KiCad files with cutout patterns for OSI, Apple II, and the fully populated ASCII layouts.

Once I've proven out the boards, I'll update the GitHub repository with all of it.

Dave

dave
Site Admin
Posts: 599
Joined: Tue Sep 09, 2008 5:24 am

Re: Universal Vintage keyboard

Post by dave » Wed Oct 23, 2019 4:00 am

P.S. I still need to do a stabilizer for the spacebar. I have 3D models for the posts that slide into the spacebar, so maybe replicating the original stabilizer would work.

The keyboard has mounts for Cherry-MX style stabilizers, and I think it would not be hard to make small extenders to use the Cherry-style stabilizer with the taller Futaba switches. My concern is that the Futaba switches have a much greater travel than the Cherry MX switches.

But I'd welcome any suggestions, or any help from any members who are good at 3D modeling.

I could also use a 3D model for the apple-II style power lamp cover.

Dave

Jeff
Posts: 348
Joined: Fri Mar 07, 2014 4:44 am
Location: British Columbia, Canada

Re: Universal Vintage keyboard

Post by Jeff » Tue Oct 29, 2019 4:55 pm

WOW! Fantastic work. I cant wait to build up a few of these.
/Jeff
Image

dave
Site Admin
Posts: 599
Joined: Tue Sep 09, 2008 5:24 am

Re: Universal Vintage keyboard

Post by dave » Sat Nov 09, 2019 4:52 pm

I have started on the ASCII encoder.

One goal is to fit in tiny hardware like mid-range PICs and AVR's (less than 256 bytes of RAM, less than 2K of Flash/ROM)

The other goal is to keep the code simple and modular, so it is easy to translate by hand to efficient assembly for an old 8-bit processor, or to translate to hardware (FPGA, CPLD, or discrete chips).

Initially I started with a one-file program full of bit-hacks, but then my conscience got the better of me, and I broke it out into modules, started adding some test code, and since the bithacks don't impact performance much for 8- or 16-bit words with sparsely set bits, I removed them in favor of readability and portability.

The ASCII keyboard encoder firmware is also designed so that it is trivial to support serial keyboards such as DEC VT terminals, HP 98x6, HP integral, and WYSE protocols, and some useful features such as split-keyboards, rotary encoders, and DIP switch configuration.

I realized that I made a mistake with the keyboard layout: The Apple II power light is aligned to the center of the SHIFT key, but should be placed to align the left edges. Also, in the next rev I would like to address options for mounting holes that will be compatible with Apple and OSI.

I only have moments here and there to work on it when the family is asleep, but hope to have something ready soon. More to come. . .

dave
Site Admin
Posts: 599
Joined: Tue Sep 09, 2008 5:24 am

Re: Universal Vintage keyboard

Post by dave » Sat Nov 09, 2019 6:40 pm

Also, I realized that the cutout templates need to be adjusted to account for 1.5x key sizes for SHIFT and ENTER keys at the edges.

dave
Site Admin
Posts: 599
Joined: Tue Sep 09, 2008 5:24 am

Re: Universal Vintage keyboard

Post by dave » Thu Dec 05, 2019 6:40 am

I have had a few moments here and there to play with this. I have written the firmware for the ASCII controller, and it's up and running for the Atmega328P architecture. I chose that chip because lots of folks will feel comfortable with it since it's used in the Arduino and there are lots of low-cost options for programming it on Windows, Mac, and Linux. Also, it comes in a DIP package which is easy for beginners and looks at home in a retrocomputer.

Right now it's nothing fancy. Multiple keymaps are supported (used right now for SHIFT/CAPS/CTRL, but could also support special applications such as APL, etc.) Repeat key and autorepeat are supported. There are hooks for special functions that are not yet used, but which could change strobe/data polarity, serial out parameters (if characters were output on a serial port), enable/disable autorepeat, system reset, screen clear, etc.

Right now parallel output is supported, but it will be trivial to add in a serial output as well.

I need to re-spin the controller board, since the connector is off by one compared with the keyboard. Also, I will replace the 75154 with a pair of 74LS138's which are more readily available. Only one 74LS138 will need to be installed; the second is only needed for more than 8 rows. I will also include a serial i/o port. Of course, this could all be done with a single chip with enough I/O.

Everything is going up on Github.

Here is a test of the keyboard with a Replica 1 using the Apple II connector:
keyboard_test.jpg
keyboard_test.jpg (198.82 KiB) Viewed 1343 times
And here's a photo of the controller prototype (with Apple 1 and Apple 2 connectors):
ascii_adapter.jpg
ascii_adapter.jpg (213.2 KiB) Viewed 1343 times

dave
Site Admin
Posts: 599
Joined: Tue Sep 09, 2008 5:24 am

Re: Universal Vintage keyboard

Post by dave » Thu Dec 05, 2019 6:43 am

I have an OSI 542 compatible adapter ready, but would like to add in the extra features of the 542C before sending it off.

Jeff
Posts: 348
Joined: Fri Mar 07, 2014 4:44 am
Location: British Columbia, Canada

Re: Universal Vintage keyboard

Post by Jeff » Thu Dec 05, 2019 8:32 pm

keep up the great work, Dave!
Image

Post Reply