Converting a Reuters D3D Keyboard

User avatar
Jesseg

30 Oct 2019, 07:07

Hello Deskthority,

I have aquired a Reuters D3D trading keyboard, I got it brand new and unopened. I would love to convert it but I'm not sure how to go about it.
It uses a DB25 (25 pin) connection, but it looks like it only uses 6 of the 25. I would like to either get it working straight to USB or get it connected to my pro micro.
I believe it can be done, as this thread https://github.com/babarrett/g80-9009/b ... -cables.md
highlights the process of wiring up a G80-9009 without the Reuters converter box.

Would anyone be able to shed some light on how I may replicate this using a 25 pin plug? Thankyou!

Here are some photos ;)
xUvn8Ixg.jpg
xUvn8Ixg.jpg (189.8 KiB) Viewed 9948 times
XGHztixc.jpg
XGHztixc.jpg (58.99 KiB) Viewed 9948 times

gipetto

30 Oct 2019, 12:11

You can start by opening the case and photographing the pcb.

User avatar
Jesseg

30 Oct 2019, 12:41

I have removed the top section so it’s easier to view, it’s just attached by the 2 ribbon cables and the ground.
19917138-E6FF-47B6-AE28-A3B78E91EAEF.jpeg
19917138-E6FF-47B6-AE28-A3B78E91EAEF.jpeg (2.92 MiB) Viewed 9900 times
C4D71778-F9E9-48B5-B562-BB8E7262A258.jpeg
C4D71778-F9E9-48B5-B562-BB8E7262A258.jpeg (2.57 MiB) Viewed 9900 times

gipetto

30 Oct 2019, 15:40

Those ribbon cables are encouraging. it looks like an easy controller replacement. assuming you don't want to keep the db-25 port you will have to examine the pcb traces to identify which pins are rows and which are columns. see if there are diodes for each switch present. if there's not then you will have no n-key rollover. if that is a problem you will have to make a custom pcb.

User avatar
Jesseg

30 Oct 2019, 22:02

Yes there are diodes for each switch :) I was hoping I could use the DB25 port though

gipetto

30 Oct 2019, 23:47

You would have to be lucky to find the correct hardware and documentation. There's many advantages to a controller swap however, not least how inexpensive it is compared to bidding on rare ebay auctions. you should buy a teensy2.0++ for the task. It has a low learning curve compared to the cheaper stm32. Buying the genuine article from pjrc.com would avoid hiccups.

User avatar
Jesseg

31 Oct 2019, 00:32

I have a Pro micro atmega32u4 that i have used for other conversions. Im just curious because the github page for converting a 9009 lists a simple cable conversion and a repin, surely it would be similar for this board?

gipetto

31 Oct 2019, 02:26

I'm sure it would be easy if you knew how, if you don't the controller is just a brick.

User avatar
Jesseg

05 Nov 2019, 22:58

So I’ve acquired a db25 to db9 connector and was trying to connect 5v and gnd from the PC side PS/2 cable. But no luck..
B0A1E218-B97A-496C-B961-B4F4C239DE55.jpeg
B0A1E218-B97A-496C-B961-B4F4C239DE55.jpeg (2.4 MiB) Viewed 9670 times

User avatar
Bjerrk

12 Jul 2022, 18:38

Jesseg wrote: 05 Nov 2019, 22:58 So I’ve acquired a db25 to db9 connector and was trying to connect 5v and gnd from the PC side PS/2 cable. But no luck..
Did you ever get this board up and running, Jesseg? :)

User avatar
Jesseg

13 Jul 2022, 03:09

Bjerrk wrote: 12 Jul 2022, 18:38
Jesseg wrote: 05 Nov 2019, 22:58 So I’ve acquired a db25 to db9 connector and was trying to connect 5v and gnd from the PC side PS/2 cable. But no luck..
Did you ever get this board up and running, Jesseg? :)
Nope, managed to find a whole bunch of KMD3 units which I was able to use with this and other dealing keyboards, although I no longer have the D3D.

User avatar
Bjerrk

13 Jul 2022, 08:29

Jesseg wrote: 13 Jul 2022, 03:09Nope, managed to find a whole bunch of KMD3 units which I was able to use with this and other dealing keyboards, although I no longer have the D3D.
Ah, cool! Do you remember the details of those devices? (I don't even know what a KMD3 unit is 😬)

Edit: Ah, I see, one of these things: https://geekhack.org/index.php?topic=36702.0

MMcM

30 Dec 2024, 05:26

Much of the trading function handling is inside the keyboard itself, so the firmware naturally makes some assumptions that limit what one can do a bit.

For external power, REG1, visible in the third photo, is connected to pin 23. Give it 9-12V DC, like from a wall wart. Ground is on pins 3, 8-13, and 25. (15 and 16 are also ground, for reasons guessed at below.) With that, the Desk PC2 and D3000 CONV keys work to change the mode of the keyboard.

When in PC2 mode, there is a PS/2 keyboard with pin 1 data and pin 2 clock. So it ought to work with an active converter, or TMK / QMK, or even Soarer's, if anyone still does that. As usual, a 3V MCU will need level shifting.

In PC mode, it acts as just a regular PC keyboard. None of the trading keys (green and orange dyesubs) send anything, with the exception of TRANSMIT, which is just keypad enter. Moreover, the I SELL, I BUY, ACCEPT, and CONTACT keys automatically switch to D3000 mode.

All the keys are available in D3000 mode. There is an RS-232 serial port with pin 14 RXD and pin 17 TXD. It runs at 9600 baud. So a converter will need something like a MAX3232 to convert to TTL serial, which the MCU's UART can then handle. U6 in the third and fourth photos above, right beside the DB-25 connector, is an ST232C, a more or less equivalent chip. Pins 15 and 16 are ground, which suggests to me that 14,16 and 15,17 are meant to be RS-422 differential pairs and this is an engineering shortcut, giving 0V and ±7V. (The TTL-only shortcut is an inverter, so 0,5V or 5,0V. This is even worse over longer distances.)

The protocol is like IBM code set 3 (the one used by terminal keyboards), with F0 as a break prefix. The keymap is likewise an extended form of that code set.

Code: Select all

+---+---+---+---+---+---+---++---+---++---+---++---+---++-------+ +-------+  +---+---+  +---+---+
|Esc|F1 |F2 |F3 |F4 |F5 |F6 ||PrW|NxW||PC1|PC2||Xfr|Tik||CONFIRM| |CONV UP|  |Cap|NTG|  |Bel|Log|
+---+-----------------------------------------------------------+ +-------+  +-------+  +-------+
    |F7 |F8 |F9 |F10|F11|F12||PrC|NxC||D3000 C||END CON||Rst|Pmt| |CONV DN|  |I SELL |  | I BUY |
    +---+---+---+---+---+---++---+---++-------++-------++---+---+ +-------+  +-------+  +-------+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-------+ +---+---+---+ +---+---+---+---+
|Tab| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Backspc| |Prt|Scr|Pau| |Num| / | * |   |
+---------------------------------------------------------------+ +-----------+ +-----------| - |
| ACCEPT  | Q | W | E | R | T | Y | U | I | O | P | [ | ] |  \  | |Ins|Hom|PgU| | 7 | 8 | 9 |   |
+---------------------------------------------------------------+ +-----------+ +---------------+
| CONTACT  | A | S | D | F | G | H | J | K | L | ; | ' | Enter  | |Del|End|PgD| | 4 | 5 | 6 |   |
+---------------------------------------------------------------+ +-----------+ +-----------| + |
|Cap| Shift  | Z | X | C | V | B | N | M | , | . | / |  Shift   | ||<-|Up |->|| | 1 | 2 | 3 |   |
+---------------------------------------------------------------+ +-----------+ +---------------+
|INTERPT|Ctl|ABR|Alt|         Space         |AlG|Win|Men|Ctl|Del| |Lft|Dwn|Rgt| | 0 | . |TRNSMIT|
+-------+---+---+---+-----------------------+---+---+---+---+---+ +---+---+---+ +---+---+-------+

+---+---+---+---+---+---+---++---+---++---+---++---+---++-------+ +-------+  +---+---+  +---+---+
|08 |07 |0F |17 |1F |27 |2F ||a6F|a6D||   |   ||B9 |BE ||AF     | |sAC    |  |BC |s47|  |B7 |*1 |
+---+-----------------------------------------------------------+ +-------+  +-------+  +-------+
    |37 |3F |47 |4F |56 |5E ||a61|a8A||       ||AD     ||B2 |AE | |AC     |  |CF     |  |CE     |
    +---+---+---+---+---+---++---+---++-------++-------++---+---+ +-------+  +-------+  +-------+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-------+ +---+---+---+ +---+---+---+---+
|0D |0E |16 |1E |26 |25 |2E |36 |3D |3E |46 |45 |4E |55 |66     | |57 |5F |62 | |76 |77 |7E |84 |
+---------------------------------------------------------------+ +-----------+ +-----------|   |
|9C       |15 |1D |24 |2D |2C |35 |3C |43 |44 |4D |54 |5B |13   | |67 |6E |6F | |6C |75 |7D |   |
+---------------------------------------------------------------+ +-----------+ +---------------+
|9D        |1C |1B |23 |2B |34 |33 |3B |42 |4B |4C |52 |5A      | |64 |65 |6D | |6B |73 |74 |7C |
+---------------------------------------------------------------+ +-----------+ +-----------|   |
|14 |12      |1A |22 |21 |2A |32 |31 |3A |41 |49 |4A |59        | |10 |63 |0D | |69 |72 |7A |   |
+---------------------------------------------------------------+ +-----------+ +---------------+
|A4     |11 |A2 |19 |29                     |39 |c08|s4F|58 |A3 | |61 |60 |8A | |70 |71 |79     |
+-------+---+---+---+-----------------------+---+---+---+---+---+ +---+---+---+ +---+---+-------+

a = 19 = Alt
c = 11 = Ctrl
s = 12 = Shift

*1 = B1, C2 (two successive taps from key down, nothing from key up)
Note that a handful of keys are actually chord macros and not separate codes. The most inconvenient of these is the Windows key as Ctrl-Esc, which works to bring a menu up, but not as the HID GUI shift. The strangest is Logoff, which sends two press / release pairs on key down.

To light the in-switch LEDs and keep them up-to-date with the OS, the converter needs to send 88 followed by a per-LED code.
  • CAPS LOCK: 39 on, 3A off.
  • NUM LOCK: 3B on, 3C off.
  • SCROLL LOCK: 3D on, 3E off.
Finally, the 82 prefix flashes the ALARM light and buzzes the piezo. The following code is 21-27 to select from a (not obviously meaningful to me) variety of number of pulses and their length. For example, 82 22 is thirteen short flashes + beeps and 82 23 is one long one.

I imagine there is a way to get Desk PC1 to work, but I haven't yet found it. It might involve a different power arrangement, since that key does nothing when powered per the above.

I also suspect that a DK-3000, the Alphameric equivalent of this board, would work very similarly.

User avatar
idollar
i$

30 Dec 2024, 09:51

This is really a beautiful keyboard !!!

Post Reply

Return to “Workshop”