1
0
mirror of https://github.com/mcgurk/Arduino-USB-HID-RetroJoystickAdapter synced 2024-11-13 12:45:01 -05:00
Arduino-USB-HID-RetroJoysti.../PS2_Soarer_Converter/README.md

221 lines
4.9 KiB
Markdown
Raw Normal View History

2017-08-14 02:09:24 -04:00
# Soarer PS/2 to USB keyboard converter
2017-08-14 02:21:21 -04:00
https://deskthority.net/workshop-f7/xt-at-ps2-terminal-to-usb-converter-with-nkro-t2510.html
2017-08-14 04:09:10 -04:00
#### Keyboard protocols supported:
- XT (scan code set 1)
- AT (scan code set 2)
- PS/2 (MF2) (extended scan code set 2)
- Terminal e.g. 3179/318x/319x (scan code set 3)
2017-08-20 13:55:56 -04:00
#### Configurable Features:
2017-08-14 04:09:10 -04:00
- Remapping
- Layers
- Macros
- On-the-fly Config Selection
#### Other Features:
- Full NKRO, if the keyboard supports it (even on Macs!)
- Boot mode support (even with faulty BIOS!)
- Auto-detection of the keyboard type
2017-08-14 04:14:49 -04:00
- XT and AT boards are remapped correctly for PrtSc etc.
2017-08-14 04:09:10 -04:00
- 1000Hz polling using Full Speed USB
- Suspend and resume support
- Media and Power key support
- Jump to bootloader function (update firmware without pressing the reset button) (v1.0+)
2017-08-14 04:24:10 -04:00
## Hardware
2017-08-14 02:09:24 -04:00
You need
- ATMega32U4 Microcontroller/Arduino. E.g. Arduino Pro Micro
- PS/2 female connector
2017-08-14 02:18:12 -04:00
PS/2 -> Arduino
2017-08-25 09:41:12 -04:00
- Data (green or blue) -> PD0 (Pro Micro: 3)
- CLK (white or purple) -> PD1 (Pro Micro: 2)
2017-08-14 02:18:12 -04:00
- 5V (red) -> 5V
- GND (black) -> GND
2017-08-14 02:20:36 -04:00
2017-08-14 04:14:15 -04:00
##### Arduino Pro Micro pinout
2017-08-14 02:20:36 -04:00
http://www.pighixxx.com/test/wp-content/uploads/2016/07/pro_micro_pinout_v1_0_red.png
2017-08-14 02:09:24 -04:00
2017-08-14 04:14:15 -04:00
##### PS/2 pinout
http://ezcontents.org/sites/default/files/ps2_pinout.png
2017-08-14 04:24:10 -04:00
## Firmware
2017-08-14 02:21:21 -04:00
https://deskthority.net/workshop-f7/xt-at-ps2-terminal-to-usb-converter-with-nkro-t2510.html
2017-08-14 02:13:15 -04:00
Soarer_Converter_v1.12_update.zip: https://deskthority.net/resources/file/8295
2017-08-14 02:09:24 -04:00
2017-08-14 04:16:43 -04:00
#### Flasher
2017-08-14 02:09:24 -04:00
https://sourceforge.net/projects/winavr/
2017-08-14 04:16:43 -04:00
#### Flashing
2017-08-14 02:14:23 -04:00
```
2017-08-14 02:09:24 -04:00
avrdude -p m32u4 -b 57600 -P com5 -c avr109 -U flash:w:Soarer_at2usb_v1.12_atmega32u4.hex
2017-08-14 02:14:23 -04:00
```
Bootloader mode: RST to GND two times. You have couple of seconds to start flashing. Serial port can be different than in normal mode.
2017-08-14 02:09:24 -04:00
2017-08-14 04:24:10 -04:00
## Testing/Debugging
2017-08-14 02:49:34 -04:00
hid_listen.exe: https://www.pjrc.com/teensy/hid_listen.html
2017-08-14 02:13:15 -04:00
2017-08-14 04:24:10 -04:00
## Settings/Tools/Docs
2019-04-16 03:48:20 -04:00
Tools (Soarer_Converter_v1.10.zip):
- https://deskthority.net/workshop-f7/xt-at-ps2-terminal-to-usb-converter-with-nkro-t2510.html
- https://deskthority.net/download/file.php?id=6142
2019-04-16 03:33:30 -04:00
Docs (Soarer_Converter_v1.12_docs.zip):
- https://deskthority.net/workshop-f7/xt-at-ps2-terminal-to-usb-converter-with-nkro-t2510.html
- https://deskthority.net/download/file.php?id=8833
- Key names/codes: docs/codes.html
2019-04-16 03:52:13 -04:00
Tools from Soarer_Controller_v1.20_beta4.zip doesn't work!:
2019-04-16 03:46:57 -04:00
```
protocol version check: converter=1.00, scwr=1.00: ok
settings version check: converter=1.01, file=1.03: failed
```
2017-08-14 04:23:05 -04:00
Compile text file to binary
```
scas xarcade.txt xarcade.bin
```
2017-08-14 04:23:28 -04:00
Upload config (effective immediately)
2017-08-14 04:23:05 -04:00
```
scwr xarcade.bin
```
2017-08-14 02:13:15 -04:00
2019-04-16 03:34:24 -04:00
For deleting all settings, make empty file and assemble and upload it.
2017-08-14 02:13:15 -04:00
## Links
- https://geekhack.org/index.php?topic=17458.0
2017-08-14 03:44:21 -04:00
- http://www.computer-engineering.org/ps2protocol/
2017-08-14 03:47:04 -04:00
- http://www.computer-engineering.org/ps2keyboard/
2017-08-14 03:44:21 -04:00
- http://www.computer-engineering.org/ps2keyboard/scancodes2.html
2017-08-14 12:09:39 -04:00
- test: https://www.microsoft.com/appliedsciences/KeyboardGhostingDemo.mspx
2019-04-16 03:34:24 -04:00
- test: https://keycode.info/
2017-08-14 02:09:24 -04:00
## Keyboard controller
2017-08-14 02:13:15 -04:00
- https://geekhack.org/index.php?topic=50437.0
- https://deskthority.net/workshop-f7/soarer-s-keyboard-controller-firmware-t6767.html
Soarer_Controller_v1.20_beta4.zip
2017-08-14 04:12:37 -04:00
## X-Arcade (xarcade.txt)
2017-08-14 03:56:25 -04:00
```
# scas xarcade.txt xarcade.bin
# scwr xarcade.bin
2019-04-16 03:49:45 -04:00
# important!:
2017-08-14 03:56:25 -04:00
force set2ext
# dir1 keypad 8 (75),2 (72),4 (6B),6 (74)
# sel1 3
# start1 1
2019-04-16 03:49:45 -04:00
# A,B,C: left shift (12),Z,X
# X,Y,Z: left ctrl (14),left alt (11),space (29)
# lowerbuttons: c,5
2017-08-14 03:56:25 -04:00
remapblock
# left controller
PAD_8 W
PAD_2 S
PAD_4 A
PAD_6 D
LSHIFT SPACE
Z F
X G
LCTRL R
LALT T
SPACE Y
2017-08-14 04:03:49 -04:00
C V # "normal"
# C RCTRL # "commando"
2017-08-14 03:56:25 -04:00
5 B
3 Q
1 E
# right controller
R PAD_8
F PAD_2
D PAD_4
G PAD_6
W RCTRL
E K
LEFT_BRACE L
A I
S O
Q P
2017-08-14 04:03:49 -04:00
RIGHT_BRACE N # "normal"
# RIGHT_BRACE SPACE # "commando"
2017-08-14 03:56:25 -04:00
6 M
2 U
4 J
endblock
# dir2 r,f,d,g
# sel2 4
# start2 2
# A,B,C: w,e,}(å)(54="[")
# X,Y,Z: a,s,q
2019-04-16 03:49:45 -04:00
# lowerbuttons: ;(¨)(5B="]"),6
2017-08-14 03:56:25 -04:00
```
2019-04-16 04:06:56 -04:00
2019-04-16 04:08:12 -04:00
## X-Arcade BMC64 emulator (xarcade_bmc64.txt)
2019-04-16 04:06:56 -04:00
```
# scas xarcade.txt xarcade.bin
# scwr xarcade.bin
# important!:
force set2ext
# dir1 keypad 8 (75),2 (72),4 (6B),6 (74)
# sel1 3
# start1 1
# A,B,C: left shift (12),Z,X
# X,Y,Z: left ctrl (14),left alt (11),space (29)
# lowerbuttons: c,5
remapblock
# left controller
# PAD_8 # stick -> up
# PAD_2 # stick -> down
# PAD_4 # stick -> left
# PAD_6 # stick -> right
LSHIFT PAD_5 # A -> fire
Z SPACE # B -> space
X F7 # C -> F7
LCTRL F1 # X -> F1
LALT F3 # Y -> F3
SPACE F5 # Z -> F5
C F12 # bottomleft -> F12
5 LCTRL # bottomright -> Commodore
3 ESC # select -> Run-Stop
1 ENTER # start -> Return
# right controller
R PAD_9 # stick -> up
F PAD_3 # stick -> down
D PAD_7 # stick -> left
G PAD_1 # stick -> right
W PAD_0 # A -> fire
E SPACE # B -> space
LEFT_BRACE 1 # C -> 1
A 2 # X -> 2
S 3 # Y -> 3
Q 4 # Z -> 4
RIGHT_BRACE 5 # bottomleft -> 5
6 6 # bottomright -> 6
2 7 # select -> 7
4 8 # start -> 8
endblock
# dir2 r,f,d,g
# sel2 4
# start2 2
# A,B,C: w,e,}(å)(54="[")
# X,Y,Z: a,s,q
# lowerbuttons: ;(¨)(5B="]"),6
```