Problems at getting AT keyboard (Focus FK-2002)working with Windows 10

User avatar
codehead

04 Feb 2017, 10:23

Hello all, long time no see! \o/ :D

Last year I acquired a Focus FK-2002 and I simply love it. It has one of the best feeling switches I've ever gotten my fingers on and the build quality seems rather good as well. Good caps and all. However, I'm having hard time getting it to work with Windows 10.

I have a simple AT-PS/2 adapter and then optionally also PS/2-USB cable. Currently, I've managed to get the keyboard working with one of my computers by using the following procedure:
1. Start the computer with the Focus connected to PS/2 (luckily my desktop still has a PS/2 port)
2. Tap escape and whatnot on the keyboard to get to BIOS setup
3. Observe keyboard working properly, exit BIOS discarding any changes
4. Computer doesn't reboot but rather continues boot procedure
5. Windows 10 loads up and keyboard works fine

Now, the keyboard doesn't work if I don't go through the BIOS and obviously it stops working should the computer go to sleep mode and back.

I know that sleep can be problematic for most PS/2 devices, that's fine, but I don't know what gives with the boot stuff.. Keyboard lights up properly, with numlock on etc. But then, after few seconds during Windows load, all LEDs light up and keyboard freezes. Going through BIOS somehow manages to circumvent this.

Btw. IBM Model M, for example, has no issues whatsoever. No boot issues, no sleep/wake-up issues...

Anybody having similar issues? Should I be worried about my keyboard's controller? Tricks, workarounds, solutions?

Best regards,
codehead

User avatar
Daniel Beardsmore

04 Feb 2017, 14:18

When you say "optionally also PS/2-USB cable" I have to wonder what your objective is. Is there some reason why you're not willing to use this cable? Perceived latency increase with USB due to polling instead of interrupts? Not being a gamer, I have no need or desire to use PS/2 over USB, and I just dig out a different converter if the keyboard doesn't work (I've got a Belkin, a blue cube, and an inline one that may be from orihalcon).

Depending on whether your motherboard really has PS/2 or whether it has an internal PS/2 to USB converter, the answer lies either in a PS/2 protocol sniffer, or an oscilloscope! Do you know that your motherboard really has true PS/2 in the first place? If no, then the fault may lie in its internal converter. If yes, then you'd need to dig deep into the protocol to see where it's failing. I'm guessing the BIOS is more forgiving and poking the keyboard allows the keyboard to initialise correctly before Windows sees it.

To this day I don't know whose fault it is that modern PS/2 is such a lemon — poor design of protocol, or just sheer laziness and incompetence in the modern implementations? Even USB keyboards aren't a cure: my Filco Majestouch is completely invisible to my PC's UEFI, and won't function until the OS loads. However, a PS/2 to USB adapter works fine in UEFI. I've also got a Cherry G84-4400 that, through a certain unbranded dual PS/2 to USB adapter, won't provide an operational pointing device within a BIOS. Keyboard yes, but trackball, no.

User avatar
codehead

04 Feb 2017, 14:48

Thanks for reply!

Ah, no, there's no specific reason for using or not using. Whatever makes it work :) I actually just tried again with the PS/2-USB cable and I couldn't get it working at all. What happens is that the LED lights are all dim and when I hit any key, all three LED lights blink once and then stay dim until I hit key again.. It's this one, probably a bad adaptor? http://www.clasohlson.com/uk/USB-to-PS- ... r324024000

So, the only way I can currently get it working is by using AT-PS/2 adapter, connecting to PS/2 and then by booting through BIOS. If I don't boot via BIOS, all three LEDs are lit and stay lit without the board working.
I'm guessing the BIOS is more forgiving and poking the keyboard allows the keyboard to initialise correctly before Windows sees it.
That's I'm thinking too... Tried doing some registry settings I found across the internet related to PS/2 but no effect really.. I'd hope to find a good PS/2-USB adapter because I love this board :( In the meantime, I'll try to find something related to drivers and maybe I could find some protocol sniffer..

User avatar
Daniel Beardsmore

04 Feb 2017, 15:02

You've got to try at least two converters — compatibility problems between converters and keyboards are not uncommon.

Maybe one day, hasu, HaaTa and anyone else who's written converter firmware will get together and document the vagaries of PS/2 and why it's such a headache getting PS/2 conversion to work. Personally I'm more curious about how ADB holds up as a protocol against PS/2 ;-)

User avatar
codehead

04 Feb 2017, 15:13

Yeah, I should definitely grab another one! I'm just worried about this current trend of removing PS/2 completely (which has happened on laptops already a while ago) and without a suitable USB-adapter this would render my keyboard useless with newer PCs :(

But hey! I went back to Windows registry again and I think I've now managed to set things up so that I don't at least have to go through BIOS settings! :o

For future reference:

Code: Select all

reg:\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt
I set the default value to 1 as per some posts across the internet

Code: Select all

Name: (Default)
Type: REG_SZ
Value: 1
I've also set Start value to 1

Code: Select all

Name: Start
Type: REG_DWORD
Value: 1
And it was that default value change which apparently has done the trick.

User avatar
codehead

04 Feb 2017, 15:19

PS. I LOVE this keyboard. Apparently the ALPS style is my thing.. Matias Tactile Pro and Quiet Pro, "Monterey switches" and now these, ALPS SKCM Whites. Haven't yet added any lubricants but we'll see..

User avatar
Daniel Beardsmore

04 Feb 2017, 15:44

I did dig out a PS/2 keyboard the a couple of months back to use with an older PC, and the adapter I chose failed to work, but that PC has PS/2 so I just used the real PS/2 port and that was fine. I forget which adapter I used — the one I have to hand is the inline type I thought I got from MK but I don't see for sale now, and it's not in the manifest for the order I thought it came with (all of MK's Greetech types). Adapters do work, but it's hit and miss finding which ones work with which keyboards.

My PC shows the Start parameter for the i8042prt service as "3" (manual). I do have a PS/2 port still (4-year-old Dell OptiPlex) but that service default may go back to Windows 8 (currently I'm on 10).

As such, the service is available, but something has to start it, and I suppose whatever the BIOS was doing was allowing Windows to realise that the service was needed. The command "sc query i8042prt" can be used to check if the service is running or not.

Setting the default value seems to be a mistake, as I don't see any services with that field set. (The concept of a default value seems worthless (why create a key and then put the value into the default field?) but parts of the Registry really do work that way.)

Very odd — it seems you've found a fault not in PS/2 but in the way that Windows tries to figure out whether or not to enable the driver during boot.

I nearly bought an FK-2002 once, but instead I went for the Datacomp DFK192.

User avatar
codehead

04 Feb 2017, 16:07

FK-2002's brown dust cover is just sooo awesome :D Okay okay.. Honestly, it's actually just on the way all the time since these days you don't put your computer monitor on top of your desktop computer and there's just not enough room between the dust cover and the monitor edges. It's a brown monitor cover.. :D Black Datacomp looks really cool, like 80s cool with the diagonal LED labels ;)

I've no idea what that default value actually does. It's just something I tried based on a post http://superuser.com/questions/996001/d ... windows-10 and at least for now, it seems to do the trick to make Windows light up the fire..

User avatar
Daniel Beardsmore

04 Feb 2017, 16:29

That comment about the default value makes no sense at all (and all of zero services on my PC use that field for anything), so it looks like nonsense to me. If it's true that it really did make a difference, I'm curious to know how and why it's being read. What value did Start have initially?

For example, this is the sort of information that belongs on the wiki (alongside the aforementioned details of why converters only work half the time), but I won't repeat information that seems to be nonsensical until there is clear evidence that it really is true.

User avatar
codehead

04 Feb 2017, 16:40

Yes I agree. It's pretty voodoo stuff at the moment.. Hey, who says computer science is an exact science :D

I had set the Start value to 1 a while ago but it still gave the behavior described earlier. For reference, the driver in use is a regular

Code: Select all

Standard PS/2 Keyboard - i8042prt.sys
Driver Date: 21.6.2006
Driver Version: 10.0.14393.206

User avatar
Daniel Beardsmore

04 Feb 2017, 18:29

Of course it's an exact science. Computers do exactly what they're told. The humans giving them the instructions do however have a terrible habit of giving computers absurd instructions and overcomplicating the hell out of just about everything, and then writing worthless shreds of documentation so that nothing, neither human nor machine, is left with any idea of what anyone was trying to accomplish.

I received this message two days ago:
3.png
3.png (21.95 KiB) Viewed 3335 times
The computer is not possessed or diseased, but Microsoft decided that separate error numbers for "quota reached" and "disk full" were surplus to requirement, so the computer isn't able to perform a rational analysis as it lies to itself about the situation. Quite how it reached the 0 KB requirement I don't know — that was a separate bug inside of a larger bug, wrapped up inside more failure.

The problem is that computers are too exact. Human intelligence provides a buffer of leeway to trap and handle exceptions without any prior programming, while computers are a runway train of obedience up to and well beyond breaking point.

(If however you manage to overwrite memory, then yes you'll get interesting results.)

User avatar
codehead

23 Mar 2017, 20:24

I returned to this matter again today since the stuff I did earlier didn't provide any permanent solution after all...

Today, I've managed to hack something up that seems to be working - well.. for the time being.. :D But now the keyboard even wakes up properly after sleep! :o

- I disabled "Legacy USB" from BIOS which was recommended as per some forum posts since I'm not using any "legacy USB keyboards"
- I added a key "Headless" with DWORD value under reg:\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
For this, I couldn't find documentation for Windows 10 but I did find for earlier Windowses...
- I also have KeyboardFailedReset set to 0

Post Reply

Return to “Keyboards”