
Anti-Ghosting - arkj
https://landing.coolermaster.com/faq/anti-ghosting/
======
jeromescuggs
this is only somewhat related, but i count my old coolermaster masterkeys S as
my favorite keyboard of all time, it was nice and utilitarian and came with
some absolutely fantastic keycaps - for about 80 bucks. damn shame they
"updated" their product lines to appeal to gamers or something, and started
taking their cues from corsair and not like, filco.

i have the misfortune of being the guy my friends, family etc call when their
computers go bork and one of the little things that just really shine is the
easy function-key-shortcut builtin to the board that will swap between
windows- and mac style modifier layouts, it wound up being far more than some
bellwhistle i initially thought it would be

unfortunately since it was my first real mech it also was something of a
guinea pig. i learned to solder switches by swapping them out, and the
connections are kinda janked now, and i sometimes have to wack it like an old
TV to get it to register certain keypresses.

i'm currently using a durgod TKL, it's almost a suitable equal in all the
areas that made me love the CM board.. but man i wish i'd been able to snag
another masterkeys, even used, before the supply dried up.

~~~
justin66
> i wish i'd been able to snag another masterkeys, even used, before the
> supply dried up

Are you interested in a Masterkeys S with cherry blue switches?

I switched to a Durgod with brown switches and couldn't be happier.

------
lmilcin
This is really interesting at the moment where I started to laying out PCB and
writing controller for my own keyboard.

After spending some time researching various aspects of keyboard design I come
to conclusion that any ghosting or other artifacts are just _lazy_ design.

These could have been explained decades ago when chips where expensive, but
today you could technically just as easily devote a single pin to every key.
On the other hand if you want to put diodes, surface mount diode cost (ie part
+ assembly) still pales in comparison to the cost of cheapest mechanical
switch.

~~~
skybrian
If you don't use diodes, it seems like you'd need a lot of port expanders. For
example, I've used the MCP23017 to get 16 extra pins each.

Rather than lazy, you should assume _cheap_. Consumer hardware is usually
optimized to cut costs.

------
tokamak-teapot
Not being an electronics engineer, can anyone explain why there isn’t just a
pair of wires from each key to the controller chip?

~~~
tripletao
Because then for 100 keys, you'd need 200 wires, going to 200 pins on a really
big microcontroller. But that would be really wasteful, because the switches
can obviously all share one common voltage (typically ground) for one
terminal. So naively, you'd actually just need 100 pins on the microcontroller
plus ground.

But if you put the switches in a 10x10 matrix, then you just need 10+10 = 20
pins, enabling a cheaper micro, cheaper interconnect from the membrane
switches to the PCB, etc. That's the benefit, but it comes at the cost of that
ghosting (unless you add extra complexity, like a diode in series with each
switch). Good keyboard vendors try to lay out the matrix so important key
combinations don't ghost, like any combination of modifiers, WASD, etc.

~~~
boogerlad
Do you know of any microcontrollers with a development PCB that exposes > 62
GPIOs if I wanted to wire all the switches directly?

~~~
clarry
[https://www.olimex.com/Products/ARM/ST/STM32-H407/open-
sourc...](https://www.olimex.com/Products/ARM/ST/STM32-H407/open-source-
hardware)

The alternative that I would suggest you consider is I/O expander chips so you
can use any mcu with a handful of pins. MCP23 seems popular, see e.g.
[https://www.abelectronics.co.uk/p/54/io-pi-
plus](https://www.abelectronics.co.uk/p/54/io-pi-plus)

[https://eu.mouser.com/Semiconductors/Interface-
ICs/Interface...](https://eu.mouser.com/Semiconductors/Interface-
ICs/Interface-I-O-Expanders/_/N-aq4ec)

------
tincholio
Using diodes and a quick enough scan cycle, this is a non-issue.

~~~
mark-r
Yes, that solution has been known since at least the 1970's. The cost and
complexity of adding all those diodes was an impediment in the old days, not
sure how much of an issue it is today.

~~~
tincholio
I did it for a hand-wired keyboard, and the total cost was under 1USD, and no
real complexity was added (I just used the diodes as the row wiring, the only
thing to keep in mind was having the correct orientation). For modern
manufacturing, there's no excuse not to use diodes in the circuit.

------
monkpit
Is it just me, or does the article drop the abbreviation “NKRO” at the end
with no explanation of the meaning?

Edit: It’s “n-key rollover“

------
bloak
I remember ghosting being a practical problem in the 1980s when people used
the keyboard as a game controller.

The other keyboard problem was debouncing. (Glad to see the spellchecker knows
that word.) The proper way to debounce would be to have a key switch with
three terminals. Cheap home computers didn't do that, obviously. Do modern
keyboards do that?

I should have taken one apart last time I had one to throw away. Next time!

------
lrsjng
What is the technical difference between points 2) and 4)? Why is it in
example 2) possible to identify the two keys?

~~~
kps
The article isn't very good.

A keyboard is scanned by pulsing each row individually and checking which
columns become active because a pressed key connects them. (Or vice versa.)

In (2), when the green row is pulsed, only the green column becomes active,
because it's connected to the green row by the pressed key (upper left red
dot).

In (4), when the upper of the two green rows is pulsed, both the green columns
become active — the first because the upper-left red dot is pressed, and the
second because there is a path through all three of the red dots (pressed
keys). So the keyboard senses a key press at the dotless intersection, even
though that key is not pressed.

Better keyboards solve this problem with a diode on each key, so that the
roundabout path can't happen. Cheap keyboards rearrange the rows and columns
into squiggly paths so that the three-key pattern doesn't happen very often,
being especially careful with the modifier keys.

~~~
lmilcin
As I have mentioned somewhere else, I can't explain this by anything else than
lazy design. Surface mount diodes are extremely cheap and their cost pales in
comparison with the cost of accompanying switch or even LED.

~~~
kps
You can't put diodes on a membrane keyboard. (Well, maybe you could, but the
side with the traces is right up against the other membrane. Hmm, could you
dope the membrane? _brb, patenting_ ) And if you did, the cost would still be
greater than zero, so it wouldn't fly.

Ghosting on a discrete contact-switch keyboard is inexcusable, of course.

~~~
lmilcin
On most rubber dome keyboards there is enough space between rubbers to have
diode there. You could also put diodes on the other side of PCB.

I am not sure about costs, though, I did not consider membrane keyboards for
my research. Membranes are extremely cheap. Not just because of the membranes
being cheap but also because there is no assembly (PCB is contacts, no
assembly required for switches) and because there might not be need for
double-sided PCB. In this case diodes could force double-sided PCB, vias, and
maybe even double sided assembly.

------
shk1338
By the way, for anyone interested in the "real" keyboards – welcome to the
r/MechanicalKeyboards and QMK firmware, you will not want to buy Cooler Master
after getting familiar with these resources.

~~~
agildehaus
I own an MK750. What's wrong with it?

~~~
clarry
Doesn't look programmable? If it is, they did a terrible job marketing it.
Either way they did a terrible job marketing..

~~~
agildehaus
Marketing. Just what I look for in a keyboard.

------
eyelidlessness
Not directly related to the post, but disabling `word-break: break-all` on
`.section .ans` made the text a lot more readable for me.

~~~
game_the0ry
As a front end engineer, I can't believe what I am seeing. Someone got paid to
make that. They looked at the finished outcome and said, 'eh, good enough to
deploy to prod.'

If that's how bad they are at web design, I wonder how bad their products are.

~~~
eyelidlessness
Hey now, try not to crap on the work of people whose circumstances you don't
know. A quick glance at the HTTP response shows the page is served by Plesk.
It's often the case that off the shelf software like this is selected, along
with a "nice looking" theme, by someone with no technical background. And it's
also often the case that said "nice looking" themes have not been built to
accommodate the use case they're applied to.

~~~
game_the0ry
You're too kind, my friend.

