ZX-Key Keyboard Guide Book

1 comment
The ZX-Key Keyboard is designed to be used a USB keyboard, a Serial keyboard and as Sinclair ZX series keyboard. The main keyboard circuit is almost identical to a ZX81s, with the addition of a Arduino Pro Micro enabling the ZX-Key to be used as a regular USB PC keyboard. Connection to a ZX-Key ZX81 expansion interface is facilitated by 16 pin IDC header. Similarly a 6 pin IDC header breaks out serial communication so the keyboard may be used as a terminal keyboard.


Sections




ZX-Key Connectivity

USB - Arduino Pro Micro

The ZX-Key Keyboard makes use of the Pro Micro's HID capabilities to present a fully functional PC keyboard to a host computer. At present USB connectivity can not be used at the same time as the ZX-Key Expansion Interface.

Keyboard IDC Headers

IDC Headers provide direct interfacing options for 8bit Micro Computers such as the hobbyist RC2014 and the ZX line of Sinclair computers. All lines are rated at 5v, so level shifting would be required if connecting to modern SOCs like the Raspberry Pi.

ZX81 Keyboard Header

  • Pin 1: 5v. (Input Only: applies when using the keyboard with the ZX-Key Interface Expansion).
  • Pin 2: Ground
  • Pin 3: Reset line. Connected to the Z80 reset lines and the Arduino Pro Micros on the keyboard PCB. If brought high the ZX81 and Keyboard are reset.
  • Pin 4 - 8: Column lines on the ZX81 keyboard matrix.
  • Pin 9 - 16:  Row lines on the ZX81 keyboard matrix.


Serial Header

  • Pin 1: 5v. Power the keyboard via the 5v line if using as a serial device.
  • Pin 2: Ground
  • Pin 3: Reset line. Can be safely connected to the Z80 reset line on an RC2014. This lines is also connected to the Arduino Pro Micros on the keyboard. If brought high the and keyboard is reset.
  • Pin 4: TX, 5v TTL level Serial Transmit.
  • Pin 5: Ground
  • Pin 6: RX, 5v TTL level Serial Receive.


Using the ZX-Key Keyboard and Selecting Modes

The ZX81 Modes

When the keyboard is connected to the ZX-key interface (and a ZX81) via an IDC ribbon cable, it will behave exactly as a standard ZX81 keyboard.

If in ZX81 mode all three of keyboards main indicator LEDs will light up. These LEDs are located on the right hand side of the keyboard. Additionally the TX & RX LEDs on the Arduino Pro Micro Board will be turned off.

The keyboard will detect if it is connected to the ZX81 interface card or to a PC via USB. Once determined the LED indicators on the keyboard will light up. If connected to the ZX81 all 3 indicators will be illuminated.

Do note that the keyboard will not detect a host if connected to to a ZX81 and PC at the same time.

PC, MAC & Serial Modes

When connected to a PC the ZX-Key will function pretty much as a standard U.S. ( US=61 ) keyboard.

Keyboard modes and selected layers are indicated by a cluster of three LEDs on the right hand side of the keyboard. There are three keyboard Modes, Standard and Emulator. Consult the tables below on indicator lights and their meanings.

There are two main Modes, STANDARD and EMULATOR. You can switch between STANDARD and EMULATOR modes by holding down SHIFT, FUNCTION (ENTER), and GRAPHICS (9) key combinations.

EMULATOR mode is designed specifically to be used with ZX81 emulation applications such as EightyOne or SZ81. Use the keyboard as you would on a real ZX81. Normal PC and Mac functions can be accessed by switching back into STANDARD mode if required.

The STANDARD Mode contains three main layers NORMAL, FUNCTION and GRAPHICS and each of these layers has a sub-layer accessed by the SHIFT key. FUNCTION mode is accessed by holding down SHIFT, FUNCTION (ENTER) keys and GRAPHICS mode is obtained by holding down SHIFT and GRAPHICS (9) key combinations. To go back to NORMAL mode repeat the mode change key combinations.

When using all the combinations of Layers and Modes, the vast majority of standard PC keyboard keys are available on the ZX-Key.


LED States
Layer & Mode Selected
ON
OFF
OFF
STANDARD
OFF
ON
OFF
STANDARD - FUNCTION
OFF
OFF
ON
STANDARD - GRAPHICS
ON
OFF
ON
EMULATOR - ZX81
OFF
ON
ON
EMULATOR - SPECTRUM (firmware 1b and above DEC 2020)
ON
ON
ON
ZX81 - INTERFACE CONNECTED
Standard Layers: Keyboard Mode and Function Selection
NormalNormal mode. All keys are in Standard US Keyboard configuration.
SHIFTWhen in Normal Mode: Symbols in Red are selected. Where these red keys are commands, for example 'EDIT or SLOW' they have been replaced by another symbol. All common symbols are present on the keyboard. Note that SHIFT keys effects vary in each of the other modes
SHIFT,FUNCTIONChanges to Function mode. This selects upper case characters. Pressing the SHIFT key in this mode will select symbols as normal.
SHIFT,GRAPHICSAll the number keys are now there equivalent 'Fx' key, ie. '1' becomes 'F1'. All Letter keys become 'CTRL Letter'. Holding down the SHIFT key in Graphics mode changes the letter keys to 'ALT Letter', number keys '1' and '2' become 'F11' & 'F12'.
Emulation Layer: For use with ZX81 or ZX Spectrum Emulators
SHIFT, FUNCTION, GRAPHICSKeyboard will enter the emulation modes. All Standard Layer mode functions are disabled. This allows Emulation packages to detect key presses as using a standard USB / PS2 keyboard.

From firmware version 1b and above, 2 emulation modes are cycled through; ZX81 Emulation Mode and ZX Spectrum Emulation Mode. (Keyboards released before December 2020 do not have the ZX Spectrum Emulation mode installed by default).
ZX81 Layer: For use with a real ZX81 plugged into the ZX-Key Interface
Auto DetectionThe ZX81 layer is selected automatically if the keyboard is connected to a ZX81 using the ZX-Key Interface. You can't deselect this mode.


Keyboard Assembly


ZX-Key Keyboard PCB Layout

Assembly List

Label
Part Type
Properties
+5v Pro Micro1Arduino Pro Microi/o voltage 5.0 V; processor ATmega32u4
D1 to D13Diodesdiode-1n4148
J16 Pin  IDC HeaderShrouded Male Right Angle; Double Row
J246 Pin  IDC HeaderShrouded Male Right Angle; Double Row
LED1Green LEDpackage 5 mm
LED2Green LEDpackage 5 mm
LED2Green LEDpackage 5 mm
R1150Ω Resistorresistance 150Ω; tolerance ±5%
R2150Ω Resistorresistance 150Ω; tolerance ±5%
R3150Ω Resistorresistance 150Ω; tolerance ±5%
R4100kΩ Resistorresistance 2.2kΩ; tolerance ±5%
R5100kΩ Resistorresistance 100kΩ; tolerance ±5%
S11Momentary Switchpackage ksa_sealed_tac_switch
S* (rest)Cherry MX Key SwitchCherry MX Compatible PCB Mount Switch

1 comment:

  1. Greetings, just finished assembling an old ZX81 Issue One kit and ran across the ZX-Key. Are there any PCB's left or can you share the gerbers or project files somewhere? Definitely could buy some coffee for you! I should be able to source the parts, although, for the keycap labels, have a template to use with some sticker type material that is good for laser printers or how did you go about the key cap labels?

    ReplyDelete