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.
|
|
|
|
|
2019-04-16 15:08:45 -04:00
|
|
|
### Compile tools with Linux (e.g. Raspberry Pi, Orange Pi)
|
2019-04-16 15:04:30 -04:00
|
|
|
```
|
|
|
|
sudo apt install build-essential
|
|
|
|
unzip Soarer_Converter_v1.10.zip
|
|
|
|
cd tools
|
|
|
|
unzip Soarer_sctools_v1.10_source.zip
|
2019-04-16 15:07:37 -04:00
|
|
|
cd build/linux
|
|
|
|
make
|
2019-04-16 15:04:30 -04:00
|
|
|
```
|
|
|
|
|
|
|
|
|
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
|
|
|
|
2024-08-30 04:17:42 -04:00
|
|
|
|
2019-04-16 04:10:30 -04:00
|
|
|
## X-Arcade BMC64 emulator
|
|
|
|
- xarcade_bmc64.txt
|
2024-08-30 04:17:42 -04:00
|
|
|
|
|
|
|
## IBM model F XT
|
|
|
|
|
|
|
|
Colors: https://geekhack.org/index.php?topic=17458.msg616598#msg616598
|
|
|
|
```
|
|
|
|
Brown = Vcc
|
|
|
|
Red = Ground
|
|
|
|
White = Data
|
|
|
|
Black = Clock
|
|
|
|
```
|
|
|
|
|
|
|
|
Soarer_Converter_v1.12_docs/docs/hardware.html/hardware.html
|
|
|
|
```
|
|
|
|
GND GND
|
|
|
|
Vcc/+5V VCC
|
|
|
|
Data PD0
|
|
|
|
Clock PD1
|
|
|
|
```
|
|
|
|
|
|
|
|
Conlusion:
|
|
|
|
```
|
|
|
|
Brown = Vcc (5) -> VCC
|
|
|
|
Red = Ground (4) -> GND
|
|
|
|
White = Data (2) -> PD0 (Pro Micro: 3)
|
|
|
|
Black = Clock (1) -> PD1 (Pro Micro: 2)
|
|
|
|
```
|
|
|
|
|
2024-10-08 08:48:41 -04:00
|
|
|
## X-Arcade With Mister FPGA
|
|
|
|
- xarcade_mister.txt
|
2024-10-08 08:50:19 -04:00
|
|
|
[xarcade_mister.txt](https://github.com/mcgurk/Arduino-USB-HID-RetroJoystickAdapter/blob/master/PS2_Soarer_Converter/xarcade_mister.txt)
|