Unicomp PS/2 controller quirk (New Model M)

User avatar
an_achronism

04 May 2021, 03:45

I posted about this elsewhere but I suspect most probably have the USB version of this board rather than the PS/2 one, so I didn't get much of a response. I'm wondering if perhaps I might have slightly better luck here. I'm looking for PS/2 Unicomp Model M owners to try something and report back in this thread, for Science! (This is also my first post around here. Hi! Incidentally, if you happen to have any old IBM and/or Alps boards that would be considered "fixer uppers", let me know; I'm on the hunt for some projects.)

The gist is basically that my New Model M (manufactured less than a month ago) fails to perform a Break with the Pause/Break key. It appears that it is neglecting to treat the Ctrl modifier correctly: instead of switching from the Pause scancode sequence to the Break one when Ctrl is held, it just performs a modified version of Pause (which isn't really a thing) which does nothing other than releasing a Pause if one is held at the time, which you could do by hitting just about any other key, I think (e.g. Enter, or Space, or whatever). Pause works just fine, but Break doesn't work at all. This can of course be worked around by just using Ctrl + Scroll Lock instead, which is the legacy (PC/XT/AT) way of performing a Break. However, it nonetheless slightly bruises my plums to have a "Model M" that doesn't have a working Pause/Break key, considering the Pause/Break key was – unless I am mistaken – a Model M invention in the first place.

Image
Liar!

I already mentioned it to Unicomp but they are apparently understaffed at the moment so it's taking them over a week to respond from one message to another (there are other issues I have with my New Model M as well, to be fair, so there are a number of things they're working to address). In the meantime, I'm curious to try to identify roughly when the problem seems to have begun. They told me that their PS/2 controller code had been locked down for years, and claimed that they had never heard of this being an issue before, but I'm definitely not crazy here because I've tested multiple other boards and they all work just fine on the exact same system, port, and OS (Pause/Break performs Pause and Ctrl + Pause/Break performs Break). But yeah, to quote Unicomp:
Unicomp wrote:The PS2 code hasn't been touched for a long time, and I have never heard this complaint before.
(...)
Unicomp wrote:A replacement board would be the only way to fix it, but I'm not sure the engineers would be willing to break the freeze on that code to update something for which there is already a workaround.
(This isn't necessarily true, as it would be very easy for me to just switch out the controller PCB if they wrote a new one of those and shipped that... which would be significantly cheaper because I'm in Scotland, nowhere near Kentucky.)

Anyway, here's how it goes...

PAUSE:
Spoiler:
1. Pause/Break key is pressed, sending a "make" scancode equivalent to pressing and holding either Ctrl key followed by the Num Lock key. This executes a Pause immediately, regardless of whether the key is pressed and release or pressed and held. In AutoHotkey, the reported "scancode" is 045, which (in "set 1" terms) does appear to relate to Num Lock. The reported virtual keycode is "13". SharpKeys reports it as "00_45", which it identifies as "Num Lock" (whereas it reads the actual Num Lock key as "E0_45", which it calls "€").

2. Pause/Break key is released, sending the appropriate "break" scancode (as in key-up, not as in Break function) to indicate that.
BREAK (normally):
Spoiler:
1. Either Ctrl key is pressed and held, sending the associated "make" scancode (varies depending on whether it's left or right Ctrl).

2. Pause/Break key is pressed, sending a different "make" scancode from before, which is related to the original way of obtaining a Break by holding Ctrl and pressing Scroll Lock (as just as the Pause code is related to holding Ctrl and pressing Num Lock). As with Pause, the action is executed instantly, whether the key is held or pressed and immediately released, it's just that this time it executes a Break instead of a Pause. AutoHotkey reports the scancode here as 146 rather than 045, which does indeed correlate it with Scroll Lock; I believe the actual scancode is E0_46 and AutoHotkey is for whatever reason displaying the hex "E0" as "1". The virtual keycode AutoHotkey attributes to this is "03", and it identifies its function as "CtrlBreak".

3. Both keys (Ctrl and Pause/Break) are released, in either order. Sends the appropriate break / key-up codes.
... buuuut my New Model M does this instead...

BREAK on New Model M:
Spoiler:
1. Either Ctrl key is pressed and held, sending the associated "make" scancode (varies depending on whether it's left or right Ctrl).

2. Pause/Break key is pressed, sending a scancode that AutoHotkey reports as "145" (I think meaning "E0_45"), virtual keycode "FF", and describes as "not found" rather than the expected "CtrlBreak". This fails to generate an actual Break. Instead just acts like pressing another key (e.g. Enter, or Space), which releases a Pause if there is one in place, otherwise it does nothing (it doesn't create a Pause if there isn't one active, because the scancode is changed, but isn't valid for Pause).

3. Both keys (Ctrl and Pause/Break) are released, in either order. Sends the appropriate break / key-up codes.
When I asked this elsewhere, the one reply I got verified that a 2013 Unicomp Classic did perform a Break from the Pause/Break key correctly, although I don't (yet) know if that was an ANSI or ISO board.

If you have a post-2013 PS/2 keyboard from Unicomp that has a Pause/Break key, could you please do me a favour and see what happens if you hit Ctrl + Pause/Break? Doesn't massively matter how you verify this, as long as you can verify it: you could look at the results in AutoHotkey or something else that can look at scancodes, or you could just run some command or another that you can stop with a Break in order to verify whether it actually does stop or just Pause instead.

I'm wondering if part of it might be to do with mine being a UK ISO board, which may be treated as something of an afterthought next to ANSI. It could be that it's borked on every board they've sold with PS/2 for years, though, and just never noticed because it's a really specific thing. I'm guessing that it's a really small subset of their customers who will use Pause/Break routinely, and of those, some probably have USB boards instead of PS/2 ones (and for all I know, their USB controller might be fine).

User avatar
sharktastica

04 May 2021, 21:21

Familiar face, eh? :D Good luck getting to the bottom of this. As I said on r/ModelM, I couldn't replicate this issue.
an_achronism wrote:
04 May 2021, 03:45
I'm wondering if part of it might be to do with mine being a UK ISO board, which may be treated as something of an afterthought next to ANSI. It could be that it's borked on every board they've sold with PS/2 for years, though, and just never noticed because it's a really specific thing. I'm guessing that it's a really small subset of their customers who will use Pause/Break routinely, and of those, some probably have USB boards instead of PS/2 ones (and for all I know, their USB controller might be fine).
That shouldn't matter though since the language/layout functionality of modern keyboards is usually handled by the OS, thus the membrane and controller should be the same (for a given product/generation, of course). On that same keyboard I tested for this issue, if I remove the ANSI enter or left shift keycap and press the membrane contacts underneath the stab inserts whilst Windows is set to UK English, it outputs #~ or \| as expected for a UK ISO keyboard.

User avatar
an_achronism

04 May 2021, 22:18

sharktastica wrote:
04 May 2021, 21:21
Familiar face, eh? :D Good luck getting to the bottom of this. As I said on r/ModelM, I couldn't replicate this issue.
Hahah, hi!
sharktastica wrote:
04 May 2021, 21:21
That shouldn't matter though since the language/layout functionality of modern keyboards is usually handled by the OS, thus the membrane and controller should be the same (for a given product/generation, of course). On that same keyboard I tested for this issue, if I remove the ANSI enter or left shift keycap and press the membrane contacts underneath the stab inserts whilst Windows is set to UK English, it outputs #~ or \| as expected for a UK ISO keyboard.
Aye, to reiterate what I said over there, I knew this, so I dunno what the hell I'm talking about here: clearly if you stick flippers and keys into the unused spots on an ANSI board you get input and ditto if you split the ISO Enter so it makes no sense that the controllers would be any different. Brain fart, evidently.

Nonetheless, I haven't heard from Unicomp in a week, again. I don't know how much of the delay is due to short staff and how much is due to them trying to figure out what to do about this (i.e. how to tell me "deal with it", but politely).

I guess at some point in between your 2013 board and my 2021 board they changed the PS/2 code for reasons unbeknownst to us and accidentally borked Break in the process, but because you can just get Break with Scroll Lock instead they aren't especially motivated to fix it. I realise it's a really minor niggle but it's still rather irritating...

User avatar
an_achronism

06 May 2021, 13:26

Quick update on this. Unicomp finally came back to me again (it's >7 days between messages each time so far) saying they are at least forwarding it to "the" engineer, but said the guy was way overworked so it's going to take ages to investigate. Fair enough. Clearly it isn't a high priority issue. They also said they would happily write any corrected controller to a PCB for me rather than having to replace an entire board, which suits me fine (it was me who suggested doing that). They also asked for scancodes though, which I already gave them, but I guess they missed that in amongst me *also* giving them virtual keycodes from AutoHotkey as supplementary info. So I took screenshots of Switch Hitter showing not only the scancodes but also the BIOS codes. I figured I may as well stick them here as well.

Click the thumbnails for full size...

Pause from Pause/Break key (works normally):
Image

Break from Pause/Break key (totally borked on New Model M):
Image

Break from Scroll Lock key (works normally):
Image

User avatar
an_achronism

24 May 2021, 07:17

The patience I feel I had to begin with has more or less run dry at this stage. I am guessing that the Mini M controller problems have Unicomp chasing a backlog of exchanges and that's extending the delays in between messages but this is kinda ridiculous now.

Image

... Anybody want to buy a UK ISO New Model M?

User avatar
Muirium
µ

24 May 2021, 11:17

What's especially dismaying is this is a PS/2 controller we're talking about. It's not even their Fake Key Roll-Over multi-controller tricks in the new USB models.

User avatar
an_achronism

24 May 2021, 14:38

Muirium wrote:
24 May 2021, 11:17
What's especially dismaying is this is a PS/2 controller we're talking about. It's not even their Fake Key Roll-Over multi-controller tricks in the new USB models.
Yep.

This is just one of several things that are a bit off on my New Model M, and really it's the only one that affects function rather than just cosmetics. Any one of these things in isolation would just be a tiny pain in the butt that I'd care about for 5 minutes then forget about, but they have had a cumulative effect that's honestly kinda soured me on the board overall even though it's pleasant enough to type on. I first contacted them about it on the 21st of April and I don't feel like it's likely to have a resolution with whatever (and whenever) the next reply is.

I'm not entirely unsympathetic, it's clear they can't cope with the workload right now. As far as I can see, they have insufficient staff to deal with the number of orders and returns of Mini Ms in particular, which has had a direct impact on the level of care taken during QC in general including when they threw my New M out the door as fast as possible (they've even admitted that it was likely the attention to detail likely wasn't up to their usual standard because of how busy things were when my order was processed). Over 2 weeks between messages is excessive no matter how you slice it, though, and I'm a bit fed up.

esr

26 May 2021, 20:12

I've added a heads-up about this to my Model M Troubleshooting FAQ:

http://www.catb.org/~esr/faqs/model-m-t ... index.html

User avatar
an_achronism

26 May 2021, 20:21

Finally got another reply from Unicomp, nearly 3 weeks later. The bit pertaining to the controller is as follows:

"(...) you have rightly identified a dissimilarity in the earlier IBM/Lexmark/Unicomp keyboards handling of the Break code, and the current version. This is because there was no PS2 Scancode Set 2 standard defined for the Break function, likely because it was an abandoned function. I've actually been rather curious what system you were using that required the original output for the Break function. Engineering says this is not an issue, as there is no standard being violated, and there will not be an update to change it due to the age of the PS/2 code. It is conceivable that in the future the PS/2 code may be rewritten for a different chipset, and that the break key may be corrected to be backwards compatible, but that is likely very far into the future."

That kinda stinks, imo.

I use Break for a lot of command line stuff, probably most often if I run a command too quickly and then realise I messed something up. For example, if I'm encoding video, I might accidentally miss out an argument that would produce functional but crappy output, so I'll break it and add that then rerun it. Or if I'm doing a huge file backup and change my mind about where I want to put the files or whatever. That kinda thing. It has nothing to do with "the system I'm using", it's just to do with how I use my computer; I do this stuff mostly on Windows 10, it's hardly a niche OS. I do use Unix-based OSes as well, but that's irrelevant here.

User avatar
Bjerrk

26 May 2021, 20:51

I don't follow the "no standard being violated" part. Perhaps it is true in some technical sense (I wouldn't know), but surely the relevant "standard" is that it should behave similarly to the Model M that so many people have become used to over the last 35 years.

User avatar
an_achronism

27 May 2021, 04:16

Bjerrk wrote:
26 May 2021, 20:51
I don't follow the "no standard being violated" part. Perhaps it is true in some technical sense (I wouldn't know), but surely the relevant "standard" is that it should behave similarly to the Model M that so many people have become used to over the last 35 years.
Yep. For a company that so heavily markets itself as the only surviving manufacturer of the Model M (or the "original tactile keyboard", as they call it, which is transparently hyperbolic), it's disappointing to hear them dismiss a significant deviation from the original controller's output as unimportant and not worth fixing. From their perspective, it ain't broken, so there's nothing to fix. Keycap says "Break", key doesn't do Break, but that's fine apparently. Ah well.

User avatar
Bjerrk

27 May 2021, 06:36

an_achronism wrote:
27 May 2021, 04:16
Yep. For a company that so heavily markets itself as the only surviving manufacturer of the Model M (or the "original tactile keyboard", as they call it, which is transparently hyperbolic), it's disappointing to hear them dismiss a significant deviation from the original controller's output as unimportant and not worth fixing. From their perspective, it ain't broken, so there's nothing to fix. Keycap says "Break", key doesn't do Break, but that's fine apparently. Ah well.
Is it even consistent between their PS/2 and USB boards?

User avatar
an_achronism

27 May 2021, 06:42

Bjerrk wrote:
27 May 2021, 06:36
Is it even consistent between their PS/2 and USB boards?
Not as far as I know, I think it's correct on USB but not on PS/2 because PS/2 is more or less an afterthought now. A shame because I prefer PS/2 for troubleshooting and to keep USB ports free for things that can only run in USB ports. I paid a bit extra for my PS/2 Model M and it is objectively worse in this one respect.

User avatar
Bjerrk

27 May 2021, 06:48

an_achronism wrote:
27 May 2021, 06:42
Bjerrk wrote:
27 May 2021, 06:36
Is it even consistent between their PS/2 and USB boards?
Not as far as I know, I think it's correct on USB but not on PS/2 because PS/2 is more or less an afterthought now. A shame because I prefer PS/2 for troubleshooting and to keep USB ports free for things that can only run in USB ports. I paid a bit extra for my PS/2 Model M and it is objectively worse in this one respect.
That's a pretty clear violation of their own "standards" then!
Also, what are you doing up this early, UK time? :D

User avatar
an_achronism

27 May 2021, 07:05

Bjerrk wrote:
27 May 2021, 06:48
That's a pretty clear violation of their own "standards" then!
Also, what are you doing up this early, UK time? :D
Yeah... I dunno man. I get that this is the bottom priority for them atm with the absolute nightmare of Mini M controller issues but c'mon now.

Honestly, the overall tone of all the replies has been roughly as follows:

1. "I don't believe you"
2. "I think I get what you mean but I don't think it matters"
3. "OK you're right but it's not a big deal"

It's that classic customer service thing of appearing as helpful as possible whilst minimising the issues being raised to avoid taking on too much liability. Not "I'm sorry we messed up", but rather "I'm sorry you think we messed up", you know. Every time I turn the conversation back to what they can do to fix the problems at hand, they avoid the question and keep saying that it would help justify shipping replacement parts etc. if I buy more stuff. But they still haven't told me what *they'll* be covering, cost-wise. So for all I know they expect me to pay another $70 in shipping and $60+ on custom printed keycaps (because the alignment was pretty bad on the ones they sent me) just to make them feel better about replacing a top case probably worth about $10 to $15. Even when I finally lost patience and said "you know what, I think the only way to fix this is a return and exchange for something entirely different, since you've said some of this is inherent to the parts in this model", and suggested an alternative, they bodyswerved that and gave me no info about the returns process, just saying that they'd have problems with shipping costs. I already know the shipping is expensive, I paid more than $70 for it the first time.

Note that the original message says they'd never heard this complaint before and the code had been untouched for years, heavily implying that the code must be fine otherwise someone would have complained about it before, thus by extension I must be wrong or doing something dumb. Eventually, they check it and realise I'm right after all, but refuse to fix it because *technically* they're not strictly violating PS/2 standard, apparently. They responded similarly about an issue with the space bar, which is misaligned on mine by a fairly dramatic amount: there's only about a 0.6 mm gap on the left, but about 1.8 mm gap on the right. It's almost touching the left Alt key. This was downplayed as "a few tenths of a millimeter" even after the admitted that there was a misalignment on every single keyboard they've made with extra keys on the bottom row since 2013 (i.e. everything post-Classic, with Windows / Menu keys or the extra Mac keys or whatever). When I pointed out a dark line in the mould of the top case, the guy literally said he couldn't see it at all in the photo I sent, then when I took another one to make it even more obvious, said he "could kind of see it", again heavily implying that I was making a big deal out of a practically nonexistent issue. Seems I've somehow wandered into...

Image

And I'm awake because I have a currently agonising case of chronic sinusitis which is making it impossible to sleep until I basically pass out sitting up so I haven't been asleep yet. FUN TIMES!

User avatar
Bjerrk

27 May 2021, 07:33

an_achronism wrote:
27 May 2021, 07:05
Honestly, the overall tone of all the replies has been roughly as follows:

1. "I don't believe you"
2. "I think I get what you mean but I don't think it matters"
3. "OK you're right but it's not a big deal"
Shit, man, that sucks!
I don't think I'd have your strength in a similar situation. I fairly quickly resign myself to my fate (of owning a faulty product).
I'm grateful that you documented all this, though. The technical issue, but moreso the customer service experience. Seems like Unicomp needs a wake-up call in that regard.

Somehow Matias as well as Unicomp get by with abysmal customer service. I recall a specific instance where Matias customer support sidestepped the issue at hand and only offered a 25% discount on buying another keyboard, rather than repairing the original one. The customer support person then essentially blamed the customer for being poor and between jobs, for not readily spending 75% of a new Matias keyboard ...

(The e-mail used to be here but has since suffered from link rot).

User avatar
an_achronism

27 May 2021, 07:56

Bjerrk wrote:
27 May 2021, 07:33
Shit, man, that sucks!
I don't think I'd have your strength in a similar situation. I fairly quickly resign myself to my fate (of owning a faulty product).
I'm grateful that you documented all this, though. The technical issue, but moreso the customer service experience. Seems like Unicomp needs a wake-up call in that regard.

Somehow Matias as well as Unicomp get by with abysmal customer service. I recall a specific instance where Matias customer support sidestepped the issue at hand and only offered a 25% discount on buying another keyboard, rather than repairing the original one. The customer support person then essentially blamed the customer for being poor and between jobs, for not readily spending 75% of a new Matias keyboard ...

(The e-mail used to be here but has since suffered from link rot).
To be fair, this is nowhere near the worst customer service I've experienced, they're at least doing the legwork in the background; he initially said he'd approach the engineers but didn't expect they'd fix it, and sure enough, he approached the engineers and they refused to fix it. But it's the constant denial/disbelief even after I've provided evidence that has obliterated the good will I started out with at the outset. I say the PS/2 code is wrong, they say it's been the same for years and nobody's ever complained before. I say there's a moulding defect in the case, they say they'd be surprised if that were true because the New Model M is made with brand new moulds (yeah, which is why it surprised and disappointed me, too). I say the key legends are misaligned, they ask me to send better photos because they look fine to them, then when I do, they still say it doesn't look out of spec and maybe it's just optical distortion from the camera. Even after it became clear I wasn't going to accept the keycaps as they were, they seemed to expect me to pay the full price for replacement keycaps, custom printed to ensure the tightest possible QC on them. There's been a lot of question-dodging, which really complicates matters when it takes 8, 10, or 18 days to reply to a message. This has been going back and forth for a month now. I've stopped using the board, partly because this has soured the experience of using it even further.

I can see it from their perspective, but that's why I'm now a bit angry: from the very start of this, I could not possibly have been more apologetic about bringing up all these gripes with the order I received, despite being annoyed that I feel all of this should really have been weeded out at QC – and by the way, they admitted that the QC was probably lax because they're extraordinarily busy and they're understaffed atm in amongst the Mini M launch. Seriously, you should see the original message, I'm all sunshine and rainbows about the whole thing, saying that I don't want to cause a fuss and I don't expect them to accept a return but hope things can be fixed with some compromise and replacement parts. At this point, though? I'd rather return it and swap it for a custom build that uses the older barrel plate without he misaligned space bar.

Hell, if nothing else, I have Unicomp to thank for me developing a vintage keyboard obsession. To some extent, the extremely beaten up IBM Model M I grabbed on eBay in atrocious condition now has a better overall key feel than the Unicomp New Model M, though it took quite a lot of elbow grease and replacement parts to get it to that stage. My plan was to "treat myself" to a New Model M to avoid hunting for vintage stuff that might need loads of work and still be a bit dodgy, but because my experience of the New M wasn't up to scratch, I decided to stick my head in the door... aaaaaand now I've got about 30 keyboards. Plus 10 NMB ones on the way from Germany at some point.

... Whoops.

User avatar
Bjerrk

27 May 2021, 08:02

an_achronism wrote:
27 May 2021, 07:56
My plan was to "treat myself" to a New Model M to avoid hunting for vintage stuff that might need loads of work and still be a bit dodgy, but because my experience of the New M wasn't up to scratch, I decided to stick my head in the door... aaaaaand now I've got about 30 keyboards. Plus 10 NMB ones on the way from Germany at some point.
Well, that escalated quickly! :mrgreen:

rexx

18 Dec 2021, 21:54

This can of course be worked around by just using Ctrl + Scroll Lock instead, which is the legacy (PC/XT/AT) way of performing a Break.
I have this problem with my Unicomp Classic 104 White Buckling Spring PS2 (with 103 key option), purchased in 2020, and it has been driving me nuts. Thank you so much for mentioning the easy workaround, which I was unaware of.

User avatar
an_achronism

19 Dec 2021, 13:33

rexx wrote:
18 Dec 2021, 21:54
This can of course be worked around by just using Ctrl + Scroll Lock instead, which is the legacy (PC/XT/AT) way of performing a Break.
I have this problem with my Unicomp Classic 104 White Buckling Spring PS2 (with 103 key option), purchased in 2020, and it has been driving me nuts. Thank you so much for mentioning the easy workaround, which I was unaware of.
Welcome. Do me a favour if you can: tell Unicomp. When I reported this they insinuated that I was making shit up because "nobody else has reported an issue". Doesn't mean the issue doesn't exist or shouldn't be fixed. There appears to be zero motivation or intention to change it and there never will be unless more people complain.

rexx

31 Dec 2021, 16:06

I did ask Unicomp about this. First they wanted to know what weird program I was using that wanted the Break. I am in fact using a pretty esoteric program, but I told them that they could also reproduce the problem in a DOS window (TYPE a big text file, try to interrupt output with Break). Then -- you'll like this -- they said the issue had only been reported once before.
I can talk to the engineers about this, but there is no plan to add this custom scancode to the firmware. There has been one other request for it, and they were not able to get it approved to add to the firmware. Thank you, Troy Fletcher
I'd say we are SOL.

micmil

01 Jan 2022, 18:32

So in other words when people were shitting on Unicomp because they said they didn't have reports of this problem before, they were likely telling the truth, appropriately making the shitters out to be the assholes here. :D

You can't fix a problem you don't know about, and you're sure as hell not going to immediately update firmware because one dude has an issue. Find a few hundred and you might have a stew going.

Mmm... tasty bear poking stew... :mrgreen:

User avatar
Muirium
µ

01 Jan 2022, 19:10

Unicomp vs. just one guy:

viewtopic.php?f=2&t=25718

Break out the popcorn. It’s a classic!

CollapsedKeycap

01 Jan 2022, 21:27

Muirium wrote:
01 Jan 2022, 19:10
Unicomp vs. just one guy:

viewtopic.php?f=2&t=25718

Break out the popcorn. It’s a classic!
Why are you linking back to this exact thread?

User avatar
Muirium
µ

01 Jan 2022, 21:34

Oh, my mistake. Thought it was another one! That’s what I get for dropping in from the Spy on my phone. :lol:

Post Reply

Return to “Keyboards”