diff --git a/README.md b/README.md index 3a13a96..1b7f107 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,14 @@ +# Amiga 500 Keyboard - Arduino Leonardo -# Amiga 500 Keyboard - Arduino Leonardo Wiring and Key Mappings +Welcome to the Amiga 500 Keyboard interfacing project! This guide will help you connect and map the iconic Amiga 500 keyboard to an Arduino Leonardo, allowing you to bring new life to this classic piece of hardware. By following the instructions provided, you can retrofit the Amiga 500 keyboard for modern applications while preserving its unique layout and feel. -This section describes the wiring for connecting the Amiga 500 keyboard to an Arduino Leonardo, including the functions of each special key, particularly when used with the **Help** key. - ---- +For a demonstration of the original Amiga 500 keyboard in action, visit the [Amiga Undead GitHub repository](https://github.com/arvvoid/amiga.undead). ## Wiring Information +This section describes the wiring for connecting the Amiga 500 keyboard to an Arduino Leonardo, including the functions of each special key, particularly when used with the **Help** key. + +--- To connect the Amiga 500 keyboard to the Arduino Leonardo, refer to the following table: | Connector Pin | Function | Wire Color | Arduino Leonardo IO Pin | @@ -31,91 +33,18 @@ To connect the Amiga 500 keyboard to the Arduino Leonardo, refer to the followin --- -

Amiga 500 Keyboard Layout

- - - - - - - -
Esc
(0x45)
F1
(0x50)
F2
(0x51)
F3
(0x52)
F4
(0x53)
F5
(0x54)
F6
(0x55)
F7
(0x56)
F8
(0x57)
F9
(0x58)
F10
(0x59)
- - - - - - - - -
` ~
(0x00)
1 !
(0x01)
2 @
(0x02)
3 #
(0x03)
4 $
(0x04)
5 %
(0x05)
6 ^
(0x06)
7 &
(0x07)
8 *
(0x08)
9 (
(0x09)
0 )
(0x0A)
- _
(0x0B)
Backspace
(0x41)
- - - - - - - -
Tab
(0x42)
Q
(0x10)
W
(0x11)
E
(0x12)
R
(0x13)
T
(0x14)
Y
(0x15)
U
(0x16)
I
(0x17)
O
(0x18)
P
(0x19)
[ {
(0x1A)
] }
(0x1B)
- - - - - - - -
Ctrl
(0x63)
Caps Lock
(0x62)
A
(0x20)
S
(0x21)
D
(0x22)
F
(0x23)
G
(0x24)
H
(0x25)
J
(0x26)
K
(0x27)
L
(0x28)
; :
(0x29)
' "
(0x2A)
Return
(0x44)
- - - - - - - -
Shift
(0x60)
Z
(0x31)
X
(0x32)
C
(0x33)
V
(0x34)
B
(0x35)
N
(0x36)
M
(0x37)
, <
(0x38)
. >
(0x39)
/ ?
(0x3A)
Shift
(0x61)
- - - - - - -
Alt
(0x64)
Amiga (Left)
(0x66)
Space
(0x40)
Amiga (Right)
(0x67)
Alt
(0x64)
Del
(0x46)
Help
(0x5F)
- - - - - - -

(0x4C)

(0x4F)

(0x4D)

(0x4E)
- -

Numeric Keypad

- - - - - - - - - - - - - - - - - -
( NumL
(0x5A)
) ScrL
(0x5B)
/
(0x5C)
* PtrSc
(0x5D)
7 Home
(0x3D)
8
(0x3E)
9 Pg Up
(0x3F)
-
(0x4A)
4
(0x2D)
5
(0x2E)
6
(0x2F)
+
(0x5E)
1 End
(0x1D)
2
(0x1E)
3 Pg Dn
(0x1F)
Enter
(0x43)
0 Ins
(0x0F)
. Del
(0x3C)
+## Amiga 500 Keyboard Layout + +![Amiga 500 Keyboard Layout](https://wiki.amigaos.net/w/images/7/79/DevFig7-1.png) +Credit: [AmigaOS Wiki](https://wiki.amigaos.net/wiki/Keyboard_Device) ## Help Key Special Functions -The **Help** key on the Amiga 500 keyboard serves as a modifier, enabling additional functions when combined with other keys. Below are the available combinations and their corresponding functions. +The **Help** key on the Amiga 500 keyboard is used as a modifier in this implementation, enabling additional functions when combined with other keys. Below are the available combinations and their corresponding functions. | Key Combination | Function | |-------------------------------|-------------------------| -| **Help** | Help function | | **Help + F1** | F11 | | **Help + F2** | F12 | | **Help + NumL** (on numpad) | Toggle NumLock | @@ -166,3 +95,10 @@ With **NumLock** turned **on**, these keys will function as standard numeric key - **Help + F1 and F2**: Standard F11 and F12 functions. This wiring and mapping setup allows the Amiga 500 keyboard to interface with the Arduino Leonardo effectively, bringing additional functionality with the **Help** key for multimedia and navigation control. The setup is ideal for retrofitting the keyboard for modern applications while retaining its unique layout and feel. + +## TODO + +- [ ] Implement 4 slots for macro recording and replay +- [ ] Add auto-repeat keys function +- [ ] Create some predefined useful macros +