Page 1 of 1

My Deko Fast Action Keyboard project

Posted: 07 Sep 2020, 20:43
by Johnbo
Hey all, just wanted to share progress on my first project keyboard, as well as ask for some input at the end if anyone has any insight.

I got a Deko Fast Action Keyboard on eBay recently as a project to tinker on.
Spoiler:
Image
Spoiler:
Image
Spoiler:
Image
First up is cleaning. The board was filthy.

I started by removing all the caps and getting them started in an overnight soapy water soak.
Spoiler:
Image
Then I removed the top case. The mounting plate has a lot of corrosion on it that I'll take care of later, but for now I just wanted to get all of the hairy, dusty grime out of it so I could at least touch it without recoiling in horror.
Before plate cleaning:
Spoiler:
Image
After plate cleaning:
Spoiler:
Image

After an overnight soak, I got to work finishing cleaning the keycaps. In my (limited) experience with the ultrasonic cleaner, it'll get parts 95% of the way there. Many of these keycaps had caked on grime, but the ultrasonic cleaner loosened it up to the point where it easily wiped off with a rag. As I soaked, cleaned, wiped off, rinsed, flicked standing water out of, then carefully arranged on a wire rack to dry 162 individual keycaps, I had plenty of time to contemplate how awesome large form factor keyboards are :lol:
Spoiler:
Image
Meanwhile, I washed the plastic top case with soapy water.


So, with everything a bit cleaner, I set about getting this thing to work. My original plan was to try to re-create a power adapter, but after a quick chat with /u/djserb on reddit, he told me when he plugged in his original power adapter all that happened was that he fried his USB port! So I opted for flecom's mod instead.
Spoiler:
Image
I plugged it in and nothing exploded!
Spoiler:
Image
On top of that, the LEDs light up and the screen appears to be functional, so that's all good news. I had a lot of fun playing around with it and seeing what works and what doesn't. Some of the switches didn't work at first, but after furiously pressing them repeatedly they started working normally.

I checked all of the keys with a combination of the online qmk tester and AutoHotKey. With AHK I was able to get the scancodes if any were sent.
(Side note: Is there a trick to getting hid_listen to work? I couldn't get any keyboard to register on either my laptop or my main PC with both hid_listen and WinHIDListen).
After testing out all the keys, some of the non-standard keys send scancodes and others don't. Any that didn't send a scancode I checked with a multimeter, and indeed some switches were broken.
Spoiler:
Image
I did notice some corrosion on one of the traces on the back of the PCB, below CR59.
Spoiler:
Image
After all of my diagnosing, here's the state of the switches:
Spoiler:
Image

My main questions for anyone that has one of these boards is:
Can you cross reference my spreadsheet with your own keyboard to see if your keyboard sends the same scancodes, or more importantly, if the same keys DO NOT send scancodes?

I'm trying to narrow down whether the keys that have working switches but don't send codes are a hardware problem or firmware problem. The board obviously has a good deal of corrosion, and I can't check the other side of the PCBs without desoldering everything. There's definitely a pattern to the scancodes, so it seems weird that it's so intermittent. But it is also a proprietary keyboard, so who knows what its firmware is doing. For reference, I'm using a Monoprice PS/2 Keyboard/Mouse to USB Converter Adapter.


So that's where I'm at now. I was always planning on replacing the switches eventually. I like the way linears feel when just pressing them randomly or playing with loose switches, but I find I make tons of mistakes when actually typing with them. So I'm going to replace them with my Kailh Box Navies I think. I was hoping to get the board fully functional first so I can just do one chunk at a time, but it's looking like I'll need to desolder everything no matter what, so I can clean all the corrosion off the mounting plates and to check the PCBs for damage.

I see two possibilities for my next step:
1) If someone else is able to verify that my board is mechanically fine, as in those keys don't send scancodes no matter what, then I'll have to explore a hardware option to make them work. Perhaps wire all the nonstandard keys to a Teensy or something, but I'll cross that bridge when I get to it.
2) If those keys are supposed to send scancodes, then I'll have to try to find the issues on the PCB and see if it's possible for me to fix them.

If anyone has any input, I'd love to hear it. Thanks for reading!

Re: My Deko Fast Action Keyboard project

Posted: 08 Sep 2020, 14:07
by XMIT
Neat, thanks for sharing, I was always curious about this board. The LCD screen has so many possibilities.

Re: My Deko Fast Action Keyboard project

Posted: 08 Sep 2020, 22:51
by Johnbo
Good news! I finally worked up the courage to plug the keyboard into my main PC's PS/2 port instead of testing it on my cheapo laptop with the Monoprice PS/2 converter. Again, nothing blew up, so that's always nice.

The real good news is that all the keys output unique codes now! The issue was my converter just ignoring certain scan codes.

EDIT: See next post for better scan code information

Here's an updated spreadsheet:
Spoiler:
Image


So, after chatting with another user and being reminded of the existence of SwitchHitter (I had it installed, I just forgot about it. Derp) I retested all the keys, and put their SwitchHitter output in the spreadsheet. Barring the physically broken switches, every key outputs something unique, which is fantastic, but there are some quirks.

Firstly, some of the keys launch certain functions, like the MediaPlayer and whatnot, and it seems to do it before SwitchHitter has a chance to "capture" the keys. So it will show in the "Last Key Down" section, but not in the actual log.
Secondly, some of the keys output similar BIOS code, but different Win Codes. For example, Pick Style and Color 2 output this, respectively:
43:43.0982 (0x7C, BIOS 0x64) DOWN
43:44.0117 (0x7C, BIOS 0x64) UP -> 134ms
43:46.0418 (0xFF, BIOS 0xE064) DOWN
43:46.0567 (0xFF, BIOS 0xE064) UP -> 148ms

So, in decimal, Pick Style outputs Win Code 124 and BIOS Code 110, while Color 1 outputs Win Code 255 and BIOS Code 57444 (0xE064), although in the small BIOS Code window it trims it down to just 100 (0x64).
SwitchHitter output for Color 2:
Spoiler:
Image



I'm happy to have at least something unique for every key now.

Re: My Deko Fast Action Keyboard project

Posted: 09 Sep 2020, 00:19
by Johnbo
OK, did some more playing around. I guess I just misunderstood the Hex for the scancodes. AutoHotKey spit them out in a usable format.

Here is the updated spreadsheet with AutoHotKey remappable scan codes.
Spoiler:
Image

And here's an AutoHotKey template to remap all the special keys:

Code: Select all

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#InstallKeybdHook
#SingleInstance Force

ToolTip(Message, TimeToDisplay = 1000, SleepWhileDisplayed = false)
{
	; display message
	ToolTip,%Message%
	; clear tooltip after TimeToDisplay milliseconds
	SetTimer,ToolTipClear,-%TimeToDisplay%
	; sleep before returning
	If SleepWhileDisplayed
		Sleep,%TimeToDisplay%
	Return
	; clear tooltip
	ToolTipClear:
	ToolTip
	Return
}

ToolTip("DekoFastAction has started")

; TOP LEFT BLOCK | Row 1;
SC055::ToolTip("Cmd")
SC05A::ToolTip("Learn")

SC05B::ToolTip("Browse Typeface")


SC05C::ToolTip("Style 1")
SC05D::ToolTip("Style 2")
SC05E::ToolTip("Style 3")
SC05F::ToolTip("Style 4")

SC062::ToolTip("Style 5")
SC063::ToolTip("Style 6")
SC06F::ToolTip("Style 7")
SC070::ToolTip("Style 8")


SC071::ToolTip("Font")
SC072::ToolTip("Look")

SC073::ToolTip("Pgm B")
SC074::ToolTip("Pgm A")

SC075::ToolTip("Move")
SC077::ToolTip("Scale")



; TOP LEFT BLOCK | Row 2;
SC07D::ToolTip("Help")
SC07E::ToolTip("Blank - Top Left Block Row 2 Column 2")

SC162::ToolTip("Browse Graphics")


SC163::ToolTip("Color 1")
SC164::ToolTip("Color 2")
SC165::ToolTip("Color 3")
SC166::ToolTip("Color 4")

SC167::ToolTip("Color 5")
SC168::ToolTip("Color 6")
SC169::ToolTip("Color 7")
SC16A::ToolTip("Color 8")


SC16B::ToolTip("Shader")
SC16C::ToolTip("Effect")

SC16D::ToolTip("Blank - Top Left Block Row 2 Column 14")
SC16E::ToolTip("Blank - Top Left Block Row 2 Column 15")

SC16F::ToolTip("Rot/Skw")
SC170::ToolTip("Kern")



; TOP LEFT BLOCK | Row 3;
SC06E::ToolTip("Undo")
SC076::ToolTip("Redo")



;  TOP RIGHT BLOCK
SC078::ToolTip("Clear Prview")
SC079::ToolTip("Clear Progrm")
SC07B::ToolTip("Delete File")
SC07C::ToolTip("Save File")



; BOTTOM LEFT BLOCK
SC064::ToolTip("Pick Style")
SC065::ToolTip("Tab Set")
SC066::ToolTip("Center Row")
SC067::ToolTip("Lower Third")
SC068::ToolTip("Blank - Bottom Left Block Row 3 Column 1")
SC069::ToolTip("Justify")
SC06A::ToolTip("Blank - Bottom Left Block Row 4 Column 1")
SC06B::ToolTip("Blank - Bottom Left Block Row 4 Column 2")
SC06C::ToolTip("Blank - Bottom Left Block Row 5 Column 1")
SC06D::ToolTip("Preset Macro")



; BOTTOM RIGHT BLOCK
SC171::ToolTip("Seq Edit")
SC172::ToolTip("Macro Edit")
SC173::ToolTip("Stop")
SC174::ToolTip("Play")
SC175::ToolTip("Preview")
SC176::ToolTip("Program")
SC17B::ToolTip("Read Prview")
SC17C::ToolTip("Read Progrm")

; NAV BLOCk
SC177::ToolTip("Char")
SC178::ToolTip("Row")
SC179::ToolTip("Layer")

It might be a little bit before my next update. At this point my next step is to desolder the switches to both clean the mounting plates properly and change the switches to my Box Navies, but I have to wait for some more switches to arrive (Who'd have thought that my order of 130 Kailh Box Navies from a couple months ago wouldn't be enough? :lol: ) And on top of that, I don't want to do any soldering in the garage right now since California is on fire again and it's too smoky to be outdoors for prolonged periods of time.

Re: My Deko Fast Action Keyboard project

Posted: 21 Sep 2020, 23:07
by Johnbo
Deko Fast Action v1.0 is complete!

I desoldered all the switches and LEDs, and removed the mounting plates. After a bit of time with a wire wheel dremel action, I got them looking pretty good. Unfortunately they got kinda pitted from corrosion, but oh well, you barely see it in the end anyway. At least it's not grimy any more!

Mounting the switches in the newly cleaned plates, one of them was a little funky :lol:
Spoiler:
Image

After soldering in all the switches! I had next to no soldering experience before this project, but with some research, trial and error, good tools, and practice I got the hang of it.
Spoiler:
Image
Here it is with keycaps installed.
Spoiler:
Image
Spoiler:
Image
Spoiler:
Image
Keycaps are a mish mash, but for now it's at least usable. Eventually I'd like to find a keycap set that:
  • Looks somewhat in theme with the half depth keycaps, both in color and profile
  • Has appropriate size space bar and modifiers, as well as the offset caps lock
  • Has a bunch of extra keys for undo, redo, save, open, new, cut, all, copy, paste, or at least something approximating those functions
  • Has blanks available for random other keys
But for now, I absolutely love these MT3 keycaps and they match the color scheme of the originals, so I'm going to use them for the time being. I don't have the correct size spacebar, ctrl and alt keys, or caps lock key. The caps lock switch is offset, so it doesn't fit the center mounted caps lock in my MT3 set. Maybe if /dev/tty does another run I can pick up some appropriate size keycaps for those switches.


An unfortunate casualty with the switch replacement was the LEDs. The Kailh click bar switches don't have LED provisions, since that's where the click bar is. But, since I have no way of actually controlling the LEDs in the bonus buttons, and my keycaps don't have the LED windows anyway, I just left them out. I do have some 2x3x4mm rectangular LEDs that fit, so I may eventually figure out how to make those work. We'll see, for now I have other parts of this thing I want to work on.

As it stands now, it's 100% usable. With a direct PS/2 connection, all the extra buttons are remappable via AutoHotKey.

So, Phase 1 of the build is done!


For Phase 2, I'm going to see if I can use my Teensy as a keyboard controller and use the screen for some cool things!

Re: My Deko Fast Action Keyboard project

Posted: 21 Sep 2020, 23:41
by M9HM
This is a cool project and a beautiful board!

Re: My Deko Fast Action Keyboard project

Posted: 14 Nov 2020, 16:40
by InquisitiveThoughts
Hey thanks for posting this up, this should help me immensely. I just bought a Deko fast action keyboard for the specific reason to personalize for davinci resolve, a video editing program. But one thing I am definitely going to have the need of is the ability to use the led's on the keyboard. So if you have any particular resources you would recommend it would be much appreciated. Also I know that you mentioned that you might be installing an arduino on your board eventually, over on reddit in r/mechanicalkeyboard a person by the handle of The_Mobot setup his deko board with an arduino getting the screen to work. Thought it might help if you could get ahold of him and swap notes if you end up going that route.

Re: My Deko Fast Action Keyboard project

Posted: 15 Nov 2020, 18:48
by Johnbo
No problem, let me know if you have any questions about it!

So I did get a teensy and it's being a faithful converter.
Spoiler:
Image
I used the teensy PS2 library as a starting point, but I quickly found it very limiting so I wasn't able to use it in the end. However, looking over the code did provide invaluable insight for me to write my own Arduino code to use it as a converter, so I'm thankful it exists. I have all my hotkeys and macros and remaps on the converter, so I don't need any software like AutoHotKey anymore, which helps a lot when I connect to my work machine remotely.

We're getting ready for a cross country move in the next couple of months, so unfortunately I haven't had the time to play around with the screen just yet, even though I'm really looking forward to it. And eventually I will integrate the teensy into the body of the keyboard too, I just need my workspace freed up again to build some kind of bracket for it internally.

But for now, even without the screen, it's been amazing to use as my work keyboard.


Now, unfortunately the LEDs are something that has stumped me, and I haven't been able to think of a solution for them. The status lights like capslock all worked fine (before I removed them!), but yeah, I couldn't figure out how to drive the other LEDs.

If it helps, here are some references photos I took the the PCB (note that the rear of the PCB is mirrored and perfectly lined up with the front, so you can overlay the two images to follow the traces). https://imgur.com/a/QJ3vdDF
Unfortunately I just don't have enough experience with this kind of thing to be able to reverse engineer them for now.

Re: My Deko Fast Action Keyboard project

Posted: 21 Nov 2020, 01:48
by InquisitiveThoughts
So I picked up two Deko boards off of ebay in the hopes of at least one of them would work with flecom's mod. I cleaned them up and gave there keycaps agood scrub. The looked much better. Than I soldered both of them up and neither of them is recognized as a keyboard. The only thing i notice is the cursor stops blinking and the come up as a barcode scanner when i use the usb converter. I even tried hooking them up without the usb converter directly to a ps/2 port and nothing, not even a barcode scanner. I did get lights on both boards up half out on each one but no screen. I am decent at soldering but not terribly knowledgeable about how to troubleshoot this. Any suggestions on a particular blog or YouTube personality that can handhold me through getting one of these working would be most appreciated. I have been delving into trying to figure it out on my own but it helps to know keywords to direct me on my quest to get one working. I was surprised how easy ahk was. I figure worst comes to worst I can handwire one with the help of amoeba pcb's. At least then I can definitely have the lighting I want. I saw some very small boxes on aliexpress that might work perfectly for your board that way you won't have to modify it anymore that would work perfectly for a teensy if you want a link?. Also I looked into soarers converter and it looked promising although I don't know if it's any better than what you're already running or not.

Re: My Deko Fast Action Keyboard project

Posted: 21 Nov 2020, 20:03
by Johnbo
So I don't know if I can answer any questions directly, but I can share a bit more about my troubleshooting process and some tidbits I learned through trial and error.

I did try a PS/2 to USB converter. I used the monoprice one. It worked with a caveat - it only sent through the standard keys, as well as a few random extras. Every normal key on the board does send the expected, standard scancode. But my converter, when it received the scancodes for most of the extra keys would just filter them out and not send anything to the computer, with the exception that some of the keys happen to have the scancodes for various media functions. This is after flecom's mod, mind you. So to use all the keys, I had to plug it directly into the PS/2 port on my desktop, where I could then remap the keys.

So I'm not sure why yours aren't being recognized as a keyboard, as I never ran into that problem personally. Can you share a photo of your soldered power wires and PCB? I can compare it to mine.


As far as a soarer's converter goes, I've never used one so I don't know too much about how they work. I suspect that, out of the box, you might run into similar issues as just a standard converter, but I would guess that it wouldn't be too bad to manually map the extra keys. I chose not to go that route for a couple reasons. Firstly, I just enjoyed the challenge of coding my own converter. It's the first project of this kind that I've done and was a great learning experience. Secondly, I do plan on eventually doing some fun things with the screen, which I think would require custom code anyway, so I figured I may as well dive into the deep end.

Here are some resources that I used that helped me understand what's going on in this thing.

This document was super helpful in understanding the theory of how the PS/2 protocol works.
https://www.avrfreaks.net/sites/default ... yboard.pdf

This teensy code library, while not sufficient on its own for my needs, was invaluable for me in learning how to take the theory I learned from the document and putting it into practice.
https://github.com/PaulStoffregen/PS2Keyboard



Now, there's a lot more to the PS/2 protocol that I haven't delved into. I would assume that you can send PS/2 commands to the keyboard to control the LEDs. If I were to go down that route, I'd look at what it takes to turn on the Caps Lock, etc., lights, and then try to extrapolate what it would take to turn on the other ones. Unfortunately I can't try that right now since I don't have LEDs in my board at all. Maybe one day I'll find some LEDs that will work with my switches, but that won't be for a few more months at least.




Again, sorry I don't have any direct answers since I didn't encounter those specific issues, but I am curious to see your PCB and see if there are any differences to mine. Oh! As I type this I just thought of something. Sorry if it's obvious, but it wasn't for me since I haven't used a PS/2 peripheral since I was a kid. If you plug it into the PS/2 port directly, I believe you need to power off your machine, plug the keyboard in, THEN turn it on for it to recognize the board.

Re: My Deko Fast Action Keyboard project

Posted: 22 Nov 2020, 21:03
by InquisitiveThoughts
It still won't work as a ps/2 device and by my cursory examination of the board I believe it is the exact one you own. I went ahead and took pictures of one of the boards. Maybe your eagle eyes will work better than mine but there isn't anything evidently wrong with the board at least outwardly. I also took two pictures of both of the boards with there lights on since each board has different lights on than the other. All probably go over the boards a bit more but for now I'm not stressing it.
https://photos.app.goo.gl/5WBNHBFuiHnjjssi9