Added readme
This commit is contained in:
parent
6dbbe814ea
commit
3b37397f06
|
@ -0,0 +1,133 @@
|
|||
## Apple IIe Keyboard USB
|
||||
|
||||
Arduino project to convert Apple IIe keyboard to USB using Teensy 2.0.
|
||||
|
||||
This is a modified version of [RetroConnector's IIe-to-USB keyboard adapter code](https://github.com/option8/RetroConnector/blob/master/IIe-USB),
|
||||
changed to work with the Teensy 2.0 (atmega32u4) instead of the Teensy++. This
|
||||
modification also requires a parallel-in serial-out shift register such as as
|
||||
the 74HC165 or 74LS165.
|
||||
|
||||
### Differences from the original code
|
||||
|
||||
The Apple IIe keyboard requires 24 pins, but the Teensy 2.0 only has 23 pins
|
||||
available while it's in HID USB mode.
|
||||
|
||||
This modified code works around this limitation by using 18 pins for the X/Y
|
||||
lines, and 4 pins to drive the shift register to read CONTROL, SHIFT, CAPS LOCK,
|
||||
OPEN/CLOSED APPLE and RESET.
|
||||
|
||||
This leaves one pin free that we give to the built-in LED to show the Caps-Lock
|
||||
state.
|
||||
|
||||
### Wiring
|
||||
|
||||
#### Keyboard connector to Teensy 2.0
|
||||
|
||||
Connections from the 26-pin connector on the Apple IIe keyboard to the pins on
|
||||
the Teensy 2.0 pins. "--" denotes connection to the shift register, covered
|
||||
below.
|
||||
|
||||
IIe Connector Col/Row Arduino IDE Pin Teensy 2.0 Pin
|
||||
1 Y0 0 B0
|
||||
2 Y1 1 B1
|
||||
3 +5V +5v +5v
|
||||
4 Y2 2 B2
|
||||
5 SW1/CAPL -- --
|
||||
6 Y3 3 B3
|
||||
7 SW0/OAPL -- --
|
||||
8 Y4 24 E6
|
||||
9 CAPLOCK -- --
|
||||
10 Y5 4 B7
|
||||
11 CNTL -- --
|
||||
12 Y8 5 D0
|
||||
13 GND GND GND
|
||||
14 X0 6 D1
|
||||
15 RESET -- --
|
||||
16 X2 9 C6
|
||||
17 X7 17 F6
|
||||
18 X1 10 C7
|
||||
19 X5 16 F7
|
||||
20 X3 23 D5
|
||||
21 X4 15 B6
|
||||
22 Y9 22 D4
|
||||
23 Y6 14 B5
|
||||
24 SHIFT -- --
|
||||
25 Y7 13 B4
|
||||
26 X6 12 D7
|
||||
|
||||
Wiring note: With the keyboard sitting in front of you as though you were typing
|
||||
on it, pins 25/26 will be on the end of the connector closest to you, and pins
|
||||
1/2 will be on the end of the connector farthest from you:
|
||||
|
||||
+----------------+
|
||||
| | +-------+
|
||||
| | | 1/2 |
|
||||
| KEYBOARD | | | |
|
||||
| | | 25/26 |
|
||||
| | +-------+
|
||||
+----------------+
|
||||
|
||||
|
||||
#### Modifier keys to shift register
|
||||
|
||||
Follows DIP-8 package: http://www.ti.com/lit/ds/symlink/sn74ls165a.pdf
|
||||
|
||||
IIe Connector Col/Row Shift Register Input Notes
|
||||
5 SW1/CAPL B (pin 12) Active High
|
||||
7 SW0/OAPL A (pin 11) Active High
|
||||
9 CAPLOCK E (pin 3) Active Low, needs pull-up
|
||||
11 CNTL H (pin 6) Active Low, needs pull-up
|
||||
15 RESET G (pin 5) Active Low, needs pull-up, active low (only active with Control)
|
||||
24 SHIFT F (pin 4) Active Low, needs pull-up
|
||||
|
||||
Shift Register Pins-to-Keys:
|
||||
0: open-apple, pull-down, active high
|
||||
1: closed-apple, pull-down, active high
|
||||
2: unused
|
||||
3: unused
|
||||
4: Caps-Lock, pull-up, active low
|
||||
5: Shift, pull-up, active low
|
||||
6: Reset, pull-up, active low (only active with Control)
|
||||
7: Control, pull-up, active low
|
||||
|
||||
#### Shift register to Teensy 2.0
|
||||
|
||||
Teensy 2.0 Pin Shift Register Pin
|
||||
18/F5 1: Parallel Load / SH/LD (active low)
|
||||
19/F4 15: Clock Enable / CLK INH (active low)
|
||||
20/F1 2: Clock Pulse / CLK (low-to-high edge triggered)
|
||||
21/F0 9: Data Pin (Q7)
|
||||
+5v 16: VCC
|
||||
GND 8: GND
|
||||
|
||||
Follows DIP-8 package: http://www.ti.com/lit/ds/symlink/sn74ls165a.pdf
|
||||
|
||||
#### Other Pins
|
||||
|
||||
Leave these unconnected.
|
||||
|
||||
Teensy 2.0 Purpose
|
||||
7/D2 USB RX
|
||||
8/D3 USB TX
|
||||
11/D6 Caps Lock LED (LED_BUILTIN)
|
||||
|
||||
### Changes
|
||||
|
||||
Jan 24, 2017: Initial Commit
|
||||
|
||||
### Credits
|
||||
|
||||
This modification is by Matthew Nielsen, and can be found at:
|
||||
https://github.com/xunker/apple_iie_keyboard_usb
|
||||
|
||||
This is based on the original code by RetroConnector:
|
||||
https://github.com/option8/RetroConnector/blob/master/IIe-USB
|
||||
|
||||
Shift Register code is pulled from the Arduino Playground:
|
||||
http://playground.arduino.cc/Code/ShiftRegSN74HC165N
|
||||
|
||||
It uses the Keypad library, by Mark Stanley and Alexander Brevig:
|
||||
http://www.arduino.cc/playground/Code/Keypad
|
||||
|
||||
Keyboard pinout information is from Apple.info:
|
||||
http://apple2.info/wiki/index.php?title=Pinouts#Apple_.2F.2Fe_Motherboard_keyboard_connector
|
Loading…
Reference in New Issue