-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Sony NEWS
Discussion: Sony NEWS keyboard converter
Preassembled converter is available here: https://geekhack.org/index.php?topic=72052.0
Use PD2(USART RXD) for 'Keyboard Data' pin and give power with VCC and GND. Other pins are optional.
AVR NEWS ------------------------ PD0 7 Mouse Data PD1 2 BZ(Speaker) PD2 3 Keyboard Data PD3 6 Keyboard Command(NWP-5461 only) PD4 8 POWER ON Switch(NWP-5461 only) VCC 1 VCC GND 5 GND
Target microcontroller is Atmel ATMega32U2 by default but porting this project to other 8-bit AVR controllers would be easy.
NWP-5461 ------------- 1 VCC \ 1 2 3 x 5 / 2 BZ(Speaker) \ 6 7 8 9 / 3 Keyboard Data(from keyboard MCU TxD) --------- 4 NC 5 GND 6 Keyboard Command(to keyboard MCU RxD via two schmitt triggers of Z8 74LS14) 7 Mouse Data(from Mouse Ext connector) 8 Power switch(directly to the switch via diode D1) 9 FG NWP-411A ------------- 1 VCC \ 1 2 3 x 5 / 2 BZ(Speaker) \ x 7 x 9 / 3 Keyboard Data(from keyboard MCU TxD) --------- 4 NC 5 GND 6 NC 7 Mouse Data(from Mouse Ext connector) 8 NC 9 FG
Its scan code is one byte which consists of 1-bit release(break) flag at MSB and 7-bit code. For example 0x29 is sent when 'a' key is pressed and 0xA9 when released.
MSB LSB 7 6 5 4 3 2 1 0 bit | | | | | | | | | +-+-+-+-+-+-+-- scan code(00-7F) +---------------- break flag: sets when released
/* NWP-5461 * ,---. ,------------------------, ,------------------------. ,---------. * |Pow| | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10| | F11| F12| ,-----------. * `---' `------------------------' `------------------------' `---------' | *| /| +| * ,-------------------------------------------------------------. ,---. ,---------------| * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS | |Hlp| | 7| 8| 9| -| * |-------------------------------------------------------------| |---| |---------------| * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Del| | |Ins| | 4| 5| 6| ,| * |---------------------------------------------------------' | |---| |---------------| * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| `|Enter | |Clr| | 1| 2| 3| | * |-------------------------------------------------------------| |---| |-----------|Ent| * |Shift | Z| X| C| V| B| N| M| ,| ,| /| | Shift | |PgU| | 0| .| ↑ | | * |-------------------------------------------------------------| |---| |---------------| * |Alt |Cap| | Space | | | | | |PgD| |Tab| ← | ↓ | → | * `-------------------------------------------------------------' `---' `---------------' * ,---. ,------------------------, ,------------------------. ,---------. * | 7A| | 01 | 02 | 03 | 04 | 05 | | 06 | 07 | 08 | 09 | 0A | | 68 | 69 | ,-----------. * `---' `------------------------' `------------------------' `---------' | 64| 65| 52| * ,-------------------------------------------------------------. ,---. ,---------------| * | 0B| 0C| 0D| 0E| 0F| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19 | | 6A| | 4B| 4C| 4D| 4E| * |-------------------------------------------------------------| |---| |---------------| * | 1A | 1B| 1C| 1D| 1E| 1F| 20| 21| 22| 23| 24| 25| 26| 27| | | 6B| | 4F| 50| 51| 56| * |---------------------------------------------------------' | |---| |---------------| * | 28 | 29| 2A| 2B| 2C| 2D| 2E| 2F| 30| 31| 32| 33| 34| 35 | | 6C| | 53| 54| 55| | * |-------------------------------------------------------------| |---| |-----------| 5A| * | 36 | 37| 38| 39| 3A| 3B| 3C| 3D| 3E| 3F| 40| 41| 42 | | 6D| | 57| 59| 58| | * |-------------------------------------------------------------| |---| |---------------| * | 43 | 44 | 45 | 46 | 47 | 48| 49| 4A | | 6E| | 66| 5B| 5C| 5D| * `-------------------------------------------------------------' `---' `---------------' * * NWP-411A * ,------------------------, ,------------------------. * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10| * `------------------------' `------------------------' * ,-------------------------------------------------------------. ,---------------. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS | | 7| 8| 9| -| * |-------------------------------------------------------------| |---------------| * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Del| | | 4| 5| 6| +| * |---------------------------------------------------------' | |---------------| * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| `|Enter | | 1| 2| 3| ,| * |-------------------------------------------------------------| |---------------| * |Shift | Z| X| C| V| B| N| M| ,| ,| /| | Shift | | 0| ↑ | .| | * |-------------------------------------------------------------| |-----------|Ent| * |Alt |Cap| | Space | | | | | | ← | ↓ | → | | * `-------------------------------------------------------------' `---------------' * ,------------------------, ,------------------------. * | 01 | 02 | 03 | 04 | 05 | | 06 | 07 | 08 | 09 | 0A | * `------------------------' `------------------------' * ,-------------------------------------------------------------. ,---------------. * | 0B| 0C| 0D| 0E| 0F| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19 | | 4B| 4C| 4D| 4E| * |-------------------------------------------------------------| |---------------| * | 1A | 1B| 1C| 1D| 1E| 1F| 20| 21| 22| 23| 24| 25| 26| 27| | | 4F| 50| 51| 52| * |---------------------------------------------------------' | |---------------| * | 28 | 29| 2A| 2B| 2C| 2D| 2E| 2F| 30| 31| 32| 33| 34| 35 | | 53| 54| 55| 56| * |-------------------------------------------------------------| |---------------| * | 36 | 37| 38| 39| 3A| 3B| 3C| 3D| 3E| 3F| 40| 41| 42 | | 57| 58| 59| | * |-------------------------------------------------------------| |-----------| 5A| * | 43 |44 | 45 | 46 | 47 | 48| 49| 4A | | 5B| 5C| 5D| | * `-------------------------------------------------------------' `---------------' */
POWER ON Switch registers scan code 0x7A(0xFA) and pin 8 is not needed actually.
NEWS protocol is a usual asynchronous serial communication. You can receive data from the keyboard easily with UART of micro controller.
-
TTL level
-
9600bps(keyboard) / 1200bps(mouse)
-
1-start bit
-
8-data bit
-
non-parity
-
1-stop bit.
Data is received as serial input at 9600 bps from the keyboard and 1200 bps from the mouse.
Format: start bit(0), 8-bit data(LSB first), stop bit(1)
1 ___ ___ ___ ___ ___ ___ ___ ___ ___ ______ 0 \___/___X___X___X___X___X___X___X___/ S 0 1 2 3 4 5 6 7 S
NWP-5461 supports commands from host(pin 6) while NWP-411A does not at all.
I found some commands below with brute force trials.
80 Reset? FB 81 replies whether LED command is enabled 7B [00|01] FB 82 enable LED command 83 replies DIP switches status 7B 00 0X FB 0000 xxxx 0:OFF, 1:ON |||`---- DIPSW-1 ||`----- DIPSW-2 |`------ DIPSW-3 `------- DIPSW-4 B0 0X set LED status 0000 xx00 0:OFF 1:ON |`------ CapsLock `------- かな B1 replies LED status 7B 0X FB `FB` means ACK probably. `7B` indicates start of reply bytes.
3-7-2. keyboard Buzzer
The NEWS series keyboard features a built-in buzzer which can be buzzed by a signal from the system unit. In the NWS-1500, the external oscillator circuit is activated when the keyboard buzzer port is accessed, producing the sound of a buzzer. The buzzer frequency is different depending on whether the port is read or write accessed. With READ, the tone produced is approximately 2.2kHz, with WRITE, approximately l.4kHz. A flowchart of this process is given below.
Buzzer can be drived with pulsing on BZ pin.
With TMK firmware you can use tone()
functrion to control the buzzer.
https://github.com/tmk/tmk_keyboard/commit/6d577b33b740d6a9cc407e1614ddb8f83b3b2d8d
Mini-DIN 8P, Serial output 1200 bps
data bit structure: start 1 bit, stop 2 bit, data 8 bit, no parity (transfered from LSB side)
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
S |
SW1 |
SW2 |
SW3 |
X7 |
Y7 |
0 |
0 |
1 |
X |
X0 |
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
0 |
Y |
Y0 |
Y1 |
Y2 |
Y3 |
Y4 |
Y5 |
Y6 |
0 |
Pinout
___ ___
/ |_| \
/ 8 7 6 \
| 5 4 3 |
\_ 2 1 _/
\_____/
(receptacle)
4 VCC
5 GND
6 mouse data
Buttons 3
Dimensions 62 x 29 x 100 mm 0N x H x D, not including cord)
Weight Approx. 200g
Resolution 8 count/mm (200 CPI)
Interface TIL level Serial Interface 1200 bps
Mouse Data(6) is just connected to keyboard conecctor pin(7) through two inverters(HD7416P and HD74LS14P) in NWP411A.
netbsd source reference:
https://github.com/NetBSD/src/blob/trunk/sys/arch/news68k/dev/ms.c#L69 https://github.com/NetBSD/src/blob/trunk/sys/arch/newsmips/dev/ms_hb.c#L118
fj.sys.news:
It seems that DIP switches do not change keyboard behaviour.