Universal Retro keyboard

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

Re: Universal Retro keyboard

Post by dave »

Updates:

I've completed a new ASCII interface board that uses the ATMega2560 with much more I/O, which uses only a single chip, compared with the 5 DIP devices for the ATMega328P controller, and also will allow interfacing the an OSI 542 keyboard to turn an OSI keyboard into an ASCII keyboard (pending my updating the firmware).

Also, I've completed the layout for the OSI interface, which together with the "Classic" keyboard, populated with the OSI key pattern and keycaps, provides a drop-in 542C compatible keyboard, with the addition of a Shift Lock LED and optional soft shfitlock function.

The OSI interface is really just for completeness. Since I broke out the soft shiftlock (along with reset circuit) on a separate PCB that can be used with any system, there's not a big incentive to go this route.

One nice benefit of building up this keyboard is that if you want a spare keyboard, you can swap out the OSI interface for an ASCII interface.

Another future benefit of using the Unified Keyboard with an OSI interface is that I will be making versions of the keyboards that place the keys at an 11-degree angle so the keys will be horizontal when installed in OSI, Apple, Sol-20, and other computers.
Attachments
pcb-render.png
pcb-render.png (400.37 KiB) Viewed 6937 times
PCB-assembly-rendering.png
PCB-assembly-rendering.png (201.62 KiB) Viewed 6937 times
dave
Site Admin
Posts: 717
Joined: Tue Sep 09, 2008 5:24 am

Re: Universal Retro keyboard

Post by dave »

dave wrote: Thu May 28, 2020 12:13 am Updates:

I've completed a new ASCII interface board that uses the ATMega2560 with much more I/O, which uses fewer chips than the ATMega328P controller, and also will allow interfacing the an OSI 542 keyboard to turn an OSI keyboard into an ASCII keyboard (pending my updating the firmware).
The ASCII controller firmware can be compiled for either the ATMega328P board or the ATMega2560 board. The ATMega328P board is a viable choice for anyone who doesn't like the look of the surface mount part in a vintage machine, or who is more comfortable with through hole soldering. But the 328P version cannot interface to an OSI 542 keyboard. However, the 328P version is not able to control an OSI keyboard, since the I/O lines are not hooked directly to the keyboard port.
Jeff
Posts: 370
Joined: Fri Mar 07, 2014 4:44 am
Location: British Columbia, Canada

Re: Universal Retro keyboard

Post by Jeff »

Great to see progress on this project!

Any updates to the main keyboard board? One that fits in an Apple II?

/Jeff
Image
dave
Site Admin
Posts: 717
Joined: Tue Sep 09, 2008 5:24 am

Re: Universal Retro keyboard

Post by dave »

Jeff wrote: Sat May 30, 2020 3:54 pm Great to see progress on this project!

Any updates to the main keyboard board? One that fits in an Apple II?

/Jeff
There are a couple of updates from the version of PCBs that you have:

1) I moved the DIP switch from row 15 to row 8. That allows the keymaps to take up less space, and also makes the keyscans a bit quicker.

For your version to work with the newest firmware, you have 2 options: Modify the DIP Switch row in the firmware (change the number from 15 to 8 in one file and recompile), or make a small modification to the main board.

2) I moved the LED current-limiting resistors from the encoder PCB to the keyboard PCB. That way, the resistor can always match the LED, even if the encoder is swapped between different keyboards.

I think that's all, but to be certain, can you remind me the rev number of the PCBs you have?

Cheers,

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

Re: Universal Retro keyboard

Post by dave »

How to update an older rev of the ASCII interface to work with the newest firmware:

The older PCB revs placed the DIP switch on row 15. The rationale is that this is "out of the way" and keys can be placed on rows 0-14. But in reality, there's no benefit to having contiguous rows of keys. The key rows can be arbitrary, and are assigned in the keymap. The DIP switch cannot be on rows 0-7, because one constraint is OSI compatibility, and the OSI uses rows 0-7. So placing the DIPswitch on row 8 allows the fewest number of rows to be used, which frees up RAM, and also makes the scan a (tiny) bit quicker, since the firmware only needs to allocate enough rows to hold the keyboard with the most rows (currently the Sol-20 keymap with 12 rows+DIPswitch).

There are two options:

1) Firmware fix. In the file "Arch/asdf_arch_atmega328p.h" change the definition of DIP_SWITCH_ROW from 8 to 15 (patch below).

Code: Select all

--- a/firmware/asdf/src/Arch/asdf_arch_atmega328p.h
+++ b/firmware/asdf/src/Arch/asdf_arch_atmega328p.h
@@ -235,7 +235,7 @@
 #define ASDF_STROBE_DDR DDRB
 #define ASDF_STROBE_BIT 6
 
-#define ASDF_ARCH_DIP_SWITCH_ROW 8
+#define ASDF_ARCH_DIP_SWITCH_ROW 15
 
 #define FUSE_INTERNAL_8MHZ_OSC_0MS (FUSE_CKSEL0 | FUSE_CKSEL2 | FUSE_CKSEL3 | FUSE_SUT0 | FUSE_SUT1)
 #define FUSE_INTERNAL_8MHZ_OSC_4MS (FUSE_CKSEL0 | FUSE_CKSEL2 | FUSE_CKSEL3 | FUSE_SUT1)
2) The other option is to cut a trace and place a jumper. Specifically, cut the trace from the DIP switch Pin 1 to diode D8, and place a jumper from Dip switch Pin 1 to diode D13. Note that those diodes should not be populated. I'll take a picture and add it to a followup
dave
Site Admin
Posts: 717
Joined: Tue Sep 09, 2008 5:24 am

Re: Universal Retro keyboard

Post by dave »

There's one more fix you'll need to apply. Pin 2 of U4 is supposed to be connected to pin 2 of U3, but I left the connection out of your rev.

Here's a picture of the jumper from Pin 2 of U3 to Pin 2 of U4, and also the cut wire and jumper to move the DIP switch from row 15 to row 8:
Mods2.jpg
Mods2.jpg (193.52 KiB) Viewed 6916 times
Jeff
Posts: 370
Joined: Fri Mar 07, 2014 4:44 am
Location: British Columbia, Canada

Re: Universal Retro keyboard

Post by Jeff »

Hi Dave,

I have the Rev 2.3 Interface board. I have not yet populated it.

I didn’t want to cut the main keyboard you sent, and was waiting for you to update the layout so it will fit properly into an Apple II.

Have you updated the layout yet? If so, which files on GitHub should I use to get some made?

/Jeff
Image
dave
Site Admin
Posts: 717
Joined: Tue Sep 09, 2008 5:24 am

Re: Universal Retro keyboard

Post by dave »

I finally got in the keycaps. I think they look very good. The color will look familiar on early C2 computers. It is a change from the black that the later C1 and C4/8 computers used, but was the best compromize for a keyset that will look good on a variety of vintage machines. The gray is a very much of the era.
keycaps_full.jpg
keycaps_full.jpg (241.12 KiB) Viewed 6786 times
Post Reply