I thought I'd share a little project I did for my Apple 1. When I first built my Mimeo I used Mike Willegal's PS2 keyboard adapter which works great. I later moved to an Apple II keyboard for a more authentic feel but found it was a few steps backwards. The obvious one was no serial keyboard input which meant I was switching back and forth between Mike's adapter and the Apple II keyboard which wasn't very convenient. Additionally CTRL-C,L,R was no longer present necessitating an external clear screen button. Finally there were certain characters supported by the Apple 1 that were un-typeable on an Apple II keyboard: '\' and '['.
So I decided it would be a fun project to stick a micro between an Apple II keyboard and the Mimeo to bring back these features and more.
I used the ATMEGA328 for it's UART and numerous GPIOs. I added a header for easer programming of the AVR. I used a MAX232A for RS-232 to UART voltage translation. ATMEGA328 has enough GPIOs to read the Apple II keyboard and drive the Apple 1 keyboard out, as well as send and receive UART with one GPIO left over. I ran the extra GPIO to a header in case I decide I want an external clear screen at some point or maybe to feed an Apple II shift mod into the adapter. Obviously the Apple 1 can't do lower case but an independently detectable shift key might make for some more convenient key combos.
The AVR is a very nice programming environment. The Harvard architecture is a bit odd but generally doesn't get in the way. Programmers are very inexpensive. I built a usbtiny for about $20 and was able to program the micro in C with some open source tools.
I designed the PCB in Kicad which is an impressive environment for free. It's a little rough in some points but one cannot complain for the price. Kicad can often do exactly what you want, but the exact steps are not always obvious. With a little patience and tutorials you can figure out what to do.
I had OSH Park build the board. These guys are great for a 3 board hobbist board run. Generally I like their purple boards but for an Apple 1 peripheral I would have preferred green. Maybe I'll send off to get a stack of cheap green boards made in China at some point.
The Apple II keyboard is an ASCII keyboard so you can't independently detect any key combo. Without a SHIFT key mod the SHIFT key is only detected for a handful of keys. However the CTRL key is detectable for most keys including while those few shift sensitive keys are being held. This is enough to use the AVR to remap the remaining functionality to convenient combos. Currently I have delete (i.e. '_') mapped to left arrow, '\' to CTRL-B and "Clear Screen" to CTRL-C. I have also mapped '[' to CTRL-SHIFT-M because ']' is mapped to SHIFT-M. With a SHIFT key mod I have tried mapping '[' to SHIFT-J or SHIFT-K but I preferred CRTL-SHIFT-M.
Once I built the adapter I realized I could do a few other things with a micro between the keyboard and Apple 1. For one I could make the key repeat functionality work when holding the Repeat key down. I also have built a few macros into the adapter code like making CTRL-L (i.e. Load) send "Clear, Reset, 9000R, ?" to bring up the CFFA1 main menu.
And having serial without having to swap adapters is awesome!
Some photos :