Building a Unified Retro Keyboard

nama
Posts: 369
Joined: Wed Mar 30, 2011 9:44 am
Location: New Zealand
Contact:

Building a Unified Retro Keyboard

Post by nama »

Now that I have my serial system up and running, it's time to migrate it to video system. For this I need a keyboard.
I decided to build one of Dave's Unified Retro Keyboards. After a bit of playing around I was able to get it working. I haven't built up the whole thing yet, but just enough for testing by shorting out the switches with a jumper.

One thing I noticed very quickly was that the '0' (number) and the 'O' (letter) seem to be swapped.
See the HELL0 WORLD photo where the first character is the letter 'O', and the second character is the number '0'.

I quickly mentioned this to Dave and he suggested I start a thread so we have a record of the fix.
The keyboard is Rev 1.2 and the OSI encoder board is Rev 2.
hell0.jpg
hell0.jpg (84.66 KiB) Viewed 358 times
short.jpg
short.jpg (90.29 KiB) Viewed 358 times
all.jpg
all.jpg (325.67 KiB) Viewed 358 times
Last edited by nama on Wed Apr 03, 2024 5:46 pm, edited 1 time in total.

2P (1mhz 32k) - 502 + 8k + CEGMON + garbage collector fix BASIC, D&N MEM-CM9 + 24k, 540 (mono) [SOLD]
4PMF (2mhz 24k) - 505, 540, 527, D13 + 5.25" + Gotek
Superboard RevD - CEGMON + 610 board 24k + D13
Spares - 3 x 527, 1 x 505, Backplane
nama
Posts: 369
Joined: Wed Mar 30, 2011 9:44 am
Location: New Zealand
Contact:

Re: Building a Unified Retro Keyboard

Post by nama »

if it's an issue with keyboard matrix, one possible fix is to remove the two diodes for '0' and 'O' and reinstall new ones. One on the top and one on the bottom of the board...would this work? see photo
possible fix.jpg
possible fix.jpg (122.79 KiB) Viewed 356 times

2P (1mhz 32k) - 502 + 8k + CEGMON + garbage collector fix BASIC, D&N MEM-CM9 + 24k, 540 (mono) [SOLD]
4PMF (2mhz 24k) - 505, 540, 527, D13 + 5.25" + Gotek
Superboard RevD - CEGMON + 610 board 24k + D13
Spares - 3 x 527, 1 x 505, Backplane
dave
Site Admin
Posts: 717
Joined: Tue Sep 09, 2008 5:24 am

Re: Building a Unified Retro Keyboard

Post by dave »

Nice work!

1.2 is a very old version of the keyboard. Looking back through the commit history, I see the following commit from 4 years ago:

adcb32a Swap "O" (Cap O) and "0" (zero) keys

So I guess I accidentally placed them in a swapped position. I guess that happened because the key designators looked the same, and I didn't check carefully the first time during layout, and Kicad didn't at that time support cross-probing.

Swapping the diodes should work.

The current version is 1.12. Since fixing the "0" and zero swap, I also added proper OSI mounting holes, LED support, and more. It's probably a good idea to upgrade.

Have you had a chance to try out the delayed reset, soft shift-lock, and sound?

Dave
nama
Posts: 369
Joined: Wed Mar 30, 2011 9:44 am
Location: New Zealand
Contact:

Re: Building a Unified Retro Keyboard

Post by nama »

I haven't checked the reset, shift lock or sound yet. I'll do the diode mod and give those a go...Actually I have no idea what 'sound' does or how to set it up. Can you possibly help me understand how to test it?
Cheers

2P (1mhz 32k) - 502 + 8k + CEGMON + garbage collector fix BASIC, D&N MEM-CM9 + 24k, 540 (mono) [SOLD]
4PMF (2mhz 24k) - 505, 540, 527, D13 + 5.25" + Gotek
Superboard RevD - CEGMON + 610 board 24k + D13
Spares - 3 x 527, 1 x 505, Backplane
nama
Posts: 369
Joined: Wed Mar 30, 2011 9:44 am
Location: New Zealand
Contact:

Re: Building a Unified Retro Keyboard

Post by nama »

Ok..the diode hack worked. Now '0' and 'O' are correct.
Soft Shift lock works too.
But reset does not seem to work. I'm assuming the idea is to run some wires from the 2 pin connector on the OSI encoder board to the reset connector on the 505 board. I tried that, but also tried looking at whats happening in the two pins with a scope Both are at GND and don't move when a simulated (jumper wires) BREAK is pressed.
Still unsure about sound though and what it's supposed to do.
Attachments
433696134_963239698737027_197230855421556973_n.jpg
433696134_963239698737027_197230855421556973_n.jpg (271.18 KiB) Viewed 324 times
433067043_3660807244162139_6430406375516734294_n.jpg
433067043_3660807244162139_6430406375516734294_n.jpg (292.06 KiB) Viewed 324 times

2P (1mhz 32k) - 502 + 8k + CEGMON + garbage collector fix BASIC, D&N MEM-CM9 + 24k, 540 (mono) [SOLD]
4PMF (2mhz 24k) - 505, 540, 527, D13 + 5.25" + Gotek
Superboard RevD - CEGMON + 610 board 24k + D13
Spares - 3 x 527, 1 x 505, Backplane
dave
Site Admin
Posts: 717
Joined: Tue Sep 09, 2008 5:24 am

Re: Building a Unified Retro Keyboard

Post by dave »

nama wrote: Thu Apr 04, 2024 11:38 am Ok..the diode hack worked. Now '0' and 'O' are correct.
Soft Shift lock works too.
But reset does not seem to work. I'm assuming the idea is to run some wires from the 2 pin connector on the OSI encoder board to the reset connector on the 505 board. I tried that, but also tried looking at whats happening in the two pins with a scope Both are at GND and don't move when a simulated (jumper wires) BREAK is pressed.
OK, that's expected behavior so far. The /BREAK output is an open-collector signal. The OSI interface uses a diode to ensure that the timing circuit can pull the /RESET line low, but cannot drive it high.

The /RESET line is pulled high on the 505 board by 4.7k resistor R51.

- First verify that this line is at 5V.
- Then, connect PIN 1 of J5 (the square pad on the /RESET output) to the /RESET input on the 505 board. You should also connect PIN 2 to ground on the 505 as a good electrical practice, to avoid ground loops, but for testing, it's not necessary since the interface is grounded through the main cable already.
- You should get an approximately 100 usec reset pulse after holding the BREAK key down for 3 seconds, if you used the RC values from the BOM. You can make the RESET delay longer or shorter by increasing or decreasing the value of C18.
- The RESET circuit should also generate a RESET pulse at power up.

Are you able to scope the RESET signal to see what it is doing?

I posted a description of how the circuit works here.
Still unsure about sound though and what it's supposed to do.
To be honest, I adapted the sound circuit directly from the 542B design, but have never used sound on an OSI computer. Back in the day, I had a C2-4P with the original 540 board. No color or sound.

There is a description of how to use sound in the C4P Manual, page 30: https://osiweb.org/manuals/c4man.pdf

I believe the sound outputs are routed directly to the rear of the computer in the C4P, so you should be able to connect these directly to an audio amplifier.
nama
Posts: 369
Joined: Wed Mar 30, 2011 9:44 am
Location: New Zealand
Contact:

Re: Building a Unified Retro Keyboard

Post by nama »

Thanks for all the very useful info...so good news, reset works, although it takes over 5 seconds!!!!
I will change out C18 from 6.8uf to something like 3.3uf to get the reset faster?
Still not checked sound ability yet.

2P (1mhz 32k) - 502 + 8k + CEGMON + garbage collector fix BASIC, D&N MEM-CM9 + 24k, 540 (mono) [SOLD]
4PMF (2mhz 24k) - 505, 540, 527, D13 + 5.25" + Gotek
Superboard RevD - CEGMON + 610 board 24k + D13
Spares - 3 x 527, 1 x 505, Backplane
dave
Site Admin
Posts: 717
Joined: Tue Sep 09, 2008 5:24 am

Re: Building a Unified Retro Keyboard

Post by dave »

Yes, the reset time will be the time it takes to drop the voltage on C18 from about 5V to about 2V (about 40% of starting V, relative to GND), which is approximately 1 time constant (=37% residual after 1 TC). So 1M and 6.8 should give close to a 6.8 sec time constant. The tolerance on those caps is pretty loose, typicall 20%, so a 6.8 uF cap would give you anywhere from 5.4 to 8.2 sec. Moving to a 3.3 uF cap would give you from 2.6 to 4 sec, depending on your cap.

If you don't have much of a capacitor selection, or if changing resistor R14 is easier, you can change the resistor intead. Since you know your cap gives you 5 secs with a 1M resistor, you can assume it's about 5 uF. You can choose the time 't' you prefer and use a resistor such that R*.000005 = t. So, for 3 secs, 3 secs / .000005F = 600k ohm, so choose a value close to 600k.

Is the power-on reset working correctly as well?
nama
Posts: 369
Joined: Wed Mar 30, 2011 9:44 am
Location: New Zealand
Contact:

Re: Building a Unified Retro Keyboard

Post by nama »

I removed the 6.8uf and installed a 2.2uf cap. Time for reset now is just about 2.5 seconds...still slightly long for my tastes, but certainly much more manageable.
I also wanted to ask you about the LED for the Soft Shift Lock. I see there are two pads for installing an LED under the switch area, however if an LED was installed here the keyswitch would no longer fit...I did temporarily install an LED for testing here, and it did work just fine. Just wondering what your thoughts were about installing an LED permanently? Where these pads just a place to install some wires that lead to an LED mounted elsewhere...or is there a special keyswitch with an internal LED hat I dont know about?
Thanks again.

2P (1mhz 32k) - 502 + 8k + CEGMON + garbage collector fix BASIC, D&N MEM-CM9 + 24k, 540 (mono) [SOLD]
4PMF (2mhz 24k) - 505, 540, 527, D13 + 5.25" + Gotek
Superboard RevD - CEGMON + 610 board 24k + D13
Spares - 3 x 527, 1 x 505, Backplane
nama
Posts: 369
Joined: Wed Mar 30, 2011 9:44 am
Location: New Zealand
Contact:

Re: Building a Unified Retro Keyboard

Post by nama »

Ok...I think I found the answer to the LED question...seen photo
Attachments
12488037274_38eb1463d6_b.jpg
12488037274_38eb1463d6_b.jpg (174.23 KiB) Viewed 280 times

2P (1mhz 32k) - 502 + 8k + CEGMON + garbage collector fix BASIC, D&N MEM-CM9 + 24k, 540 (mono) [SOLD]
4PMF (2mhz 24k) - 505, 540, 527, D13 + 5.25" + Gotek
Superboard RevD - CEGMON + 610 board 24k + D13
Spares - 3 x 527, 1 x 505, Backplane
Post Reply