From e7fdd9b5ced3cfaaa302108866c38e5211b9c1e7 Mon Sep 17 00:00:00 2001 From: Luka Void Date: Fri, 8 Nov 2024 14:32:15 +0100 Subject: [PATCH] Create README.md --- README.md | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..3a13a96 --- /dev/null +++ b/README.md @@ -0,0 +1,168 @@ + +# Amiga 500 Keyboard - Arduino Leonardo Wiring and Key Mappings + +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. + +--- + +## Wiring Information + +To connect the Amiga 500 keyboard to the Arduino Leonardo, refer to the following table: + +| Connector Pin | Function | Wire Color | Arduino Leonardo IO Pin | +|---------------|----------|------------|--------------------------| +| 1 | KBDATA | Black | 8 | +| 2 | KBCLK | Brown | 9 | +| 3 | KBRST | Red | 10 | +| 4 | 5V | Orange | 5V | +| 5 | NC | - | - | +| 6 | GND | Green | GND | +| 7 | LED1 | Blue | 5V | +| 8 | LED2 | Purple | - | + +- **KBDATA (Black, Pin 1)**: Connects to Arduino Leonardo digital pin **8**. This line transmits data from the keyboard to the Arduino. +- **KBCLK (Brown, Pin 2)**: Connects to Arduino Leonardo digital pin **9**. This line provides the clock signal for synchronization. +- **KBRST (Red, Pin 3)**: Connects to Arduino Leonardo digital pin **10**. This line allows the Arduino to send a reset signal to the keyboard. +- **5V (Orange, Pin 4)**: Connects to the **5V** power supply on the Arduino. +- **NC (Pin 5)**: Not connected. +- **GND (Green, Pin 6)**: Connects to the **GND** pin on the Arduino. +- **LED1 (Blue, Pin 7)**: Connects to **5V** for indicating power. +- **LED2 (Purple, Pin 8)**: Not connected. + +--- + +

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)
+ + +## 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. + +| Key Combination | Function | +|-------------------------------|-------------------------| +| **Help** | Help function | +| **Help + F1** | F11 | +| **Help + F2** | F12 | +| **Help + NumL** (on numpad) | Toggle NumLock | +| **Help + Scr L** (on numpad) | Toggle ScrollLock | +| **Help + Ptr Sc** (on numpad) | Print Screen | +| **Help + Ins** (on numpad) | Insert | +| **Help + Del** (on numpad) | Delete | +| **Help + Pg Dn** (on numpad) | Page Down | +| **Help + Pg Up** (on numpad) | Page Up | +| **Help + Home** (on numpad) | Home | +| **Help + End** (on numpad) | End | +| **Help + F3** | Mute | +| **Help + F4** | Volume Down | +| **Help + F5** | Volume Up | +| **Help + F6** | Play/Pause | +| **Help + F7** | Stop | +| **Help + F8** | Previous Track | +| **Help + F9** | Next Track | +| **Help + F10** | Application/Special Key| + +### Important Note about NumLock + +When **NumLock** is turned **off**, the following keys on the numeric keypad function as navigation keys by default: +- **Insert**, **Delete**, **Home**, **End**, **Page Up**, and **Page Down**. +- The **arrow keys** on the numeric keypad (2, 4, 6, and 8) also function as cursor movement keys. + +With **NumLock** turned **on**, these keys will function as standard numeric keys instead. Con be conbined with Help key for alternative function. + +### Key Function Descriptions + +- **Help**: Activates specific special functions or multimedia controls when used in combination with other keys. +- **Help + Navigation Keys**: + - **Help + Ins**: Insert. + - **Help + Del**: Delete. + - **Help + Pg Dn**: Page Down. + - **Help + Pg Up**: Page Up. + - **Help + Home**: Home. + - **Help + End**: End. +- **Help + F3 to F10**: Controls multimedia functions: + - **Help + F3**: Mute the system audio. + - **Help + F4**: Decrease the volume. + - **Help + F5**: Increase the volume. + - **Help + F6**: Toggle Play/Pause for media. + - **Help + F7**: Stop media playback. + - **Help + F8**: Go to the previous track. + - **Help + F9**: Go to the next track. + - **Help + F10**: Application or Special Key, can be used for opening context menus or other system functions. +- **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.