What if I told you that model M flippers are actually _clickier_ than Model F?

User avatar
DMA

20 Apr 2023, 20:06

So I have about 100 Unicomp model M flippers laying around that I'm not ever planning to use, and I decided to do some constructive vandalism in the name of !!SCIENCE!!
PXL_20230420_164003729.jpg
PXL_20230420_164003729.jpg (2.88 MiB) Viewed 2120 times
Turns out, M flippers produce much louder and *crisper* sound than even F, if you file off that central protrusion: https://youtu.be/zXY5FikqEFg

This is because the flipper's fall distance in Model M is severely limited - and I think it's on purpose, to limit the strike energy - otherwise that hammer in the middle (that has to be there to press on the membrane) will beat the mylar membrane into a pulp in a couple years of use (which seemed to happen anyway to my unicomp which is a source of those flippers).
Should you unlimit it - suddenly, every keypress sounds like BOOM HEADSHOT.

Doesn't work as capacitive at all, of course :)

Findecanor

20 Apr 2023, 21:38

Isn't the bump in the middle what presses the membranes together? I'd think the keyboard wouldn't work without them.

The click does not come from the flipper hitting anything but from the spring when it reaches its "catastrophic buckling" state. Then the flipper and other parts transmit the sound, of course.

pandrew

20 Apr 2023, 22:22

Well of course, if you cut off the nub ("central protrusion") and put it over a PCB instead of a mat, it's gonna be clickier.
But the F will be just as clicky if you shorten it to a Model M size. (of course it's a good question if the F flipper is gonna survive or not over time if you do something like this to it. The following video shows shortened Ellipse F flippers. I feel like Ellipse ones are a little less brittle than old Model F ones, so for original ones it may not even be possible to successfully cut them like this:
https://www.youtube.com/watch?v=wCyeUnfHsnA

I was thinking of doing an M2F conversion on an M2, I think it's possible, but M-sized flippers are needed in certain key positions, and at those sizes the signal to noise ratio is a lot less. So I suspect a custom controller would be needed, and that none of the currently available ones are good enough for it to function reliably. Xwhatsit would need to be able to use a different threshold for each key, and would need a more stable settling voltage. Common sense would need higher resolution. Maybe your multilayer style of capacitive PCB would also help with it. It would definitely be more clicky than an F.

I think I will attempt this in the future, but I think most likely I will use modified M flippers, with the cushions and nub removed, and with copper tape glued to the bottom. But I will need to make some kind of jig to do the modifications quickly and reliably.

About your dead Unicomp, did you get keys that were always pressed as a result of using certain keys more than others? Or were the symptoms different from always-pressed? You may be able to fix always-pressed keys by adding extra space between the membranes. Like add a little bit of tape inside, to the spacer mylar, around the keys that are always pressed.

User avatar
DMA

21 Apr 2023, 03:02

pandrew wrote:
20 Apr 2023, 22:22
The following video shows shortened Ellipse F flippers. I feel like Ellipse ones are a little less brittle than old Model F ones, so for original ones it may not even be possible to successfully cut them like this:
https://www.youtube.com/watch?v=wCyeUnfHsnA
Heh. Didn't know you did that already :) I wasn't really here two years ago to notice..
pandrew wrote:
20 Apr 2023, 22:22
I was thinking of doing an M2F conversion on an M2, I think it's possible, but M-sized flippers are needed in certain key positions, and at those sizes the signal to noise ratio is a lot less. So I suspect a custom controller would be needed, and that none of the currently available ones are good enough for it to function reliably. Xwhatsit would need to be able to use a different threshold for each key, and would need a more stable settling voltage. Common sense would need higher resolution. Maybe your multilayer style of capacitive PCB would also help with it. It would definitely be more clicky than an F.
Just make those pads ESSK-style, and you'll probably get a decent enough boost (it's not multilayer, btw - it's single-sided essentially, the back side is basically solid ground). CommonSense should pull this off at 12 bits w/o mods - and if not, recompile with Vref to internal 1.024V reference and you'll get ~5x sensitivity boost without any hardware modifications. It's a moot point though - you won't be able to source a PSoC5 anytime soon :D
Also nothing prevents you from making all sense pads same smaller size and limit the signal range by pad, not flipper, to achieve a level field. However, due to xwhatsit's "virtual ground" and generally ringy nature you'll likely drown in noise, because actual contact area will be ~1mm high.. The F flipper starts being close enough to the PCB to be sensed pretty far from the pivot points for some reason. I don't see why, really - could be reliability considerations, could be "just because" - but my experience shows that even a small dust particle getting under the flipper drops the key output to virtually zero, so a tiniest gap would suffice. May be they were worried about high-vibration environments.. dunno.
pandrew wrote:
20 Apr 2023, 22:22
I think I will attempt this in the future, but I think most likely I will use modified M flippers, with the cushions and nub removed, and with copper tape glued to the bottom. But I will need to make some kind of jig to do the modifications quickly and reliably.
I wouldn't be gluing any copper tape anywhere if I were you - it's quite thick and so it's pretty hard to tell what will happen in advance, but likely nothing good.. but I found way back that printer paper thoroughly blackened with pure graphite (8B pencil works too) is quite detectable by CS (black side down), so may be if you do the same to the M flipper with some convincing of the graphite to stay there (with some ironing to fuse the graphite into the surface of the filpper, maybe?) it might just work.
Another way to do it will be copper sputtering - this will create an extremely thin but extremely well-bonded copper film on the flipper surface - it's not a simple thing to do, but it's doable at home. But then again, it can kill you if you're not careful.
pandrew wrote:
20 Apr 2023, 22:22
About your dead Unicomp, did you get keys that were always pressed as a result of using certain keys more than others? Or were the symptoms different from always-pressed? You may be able to fix always-pressed keys by adding extra space between the membranes. Like add a little bit of tape inside, to the spacer mylar, around the keys that are always pressed.
GH were not always registering, IIRC - It was like five years ago, hard to remember.. I reused it's backplate and case for taylorswift's FSSK plate, so it wasn't a total waste after all. I just have a pile of flippers I don't need.

User avatar
DMA

21 Apr 2023, 03:08

Findecanor wrote:
20 Apr 2023, 21:38
Isn't the bump in the middle what presses the membranes together? I'd think the keyboard wouldn't work without them.
Yes, but who needs membranes :D
Findecanor wrote:
20 Apr 2023, 21:38
The click does not come from the flipper hitting anything but from the spring when it reaches its "catastrophic buckling" state. Then the flipper and other parts transmit the sound, of course.
It very much does. The spring is silent - it may produce sound if it hits the stem or walls of the barrel, but if you press slowly it won't (but the sound will be about the same, so the sound is the thwack of a flipper against PCB. And the fact that it becomes much louder when the nub is removed, confirms this - the flipper attains much greater speed while falling. I'm not sure why model F flipper is quieter - probably has to do with inertia of much longer flipper, but I'm not sure and don't have a high-speed camera to check.)

pandrew

21 Apr 2023, 04:21

DMA wrote:
21 Apr 2023, 03:02
Just make those pads ESSK-style, and you'll probably get a decent enough boost (it's not multilayer, btw - it's single-sided essentially, the back side is basically solid ground).
Ahh apologies, I thought it would be multilayer, since I remembered you mentioned you had a ground layer, but then it must mean that you have small holes in the ground layer where the columns and rows pass over each other, right?
DMA wrote:
21 Apr 2023, 03:02
Also nothing prevents you from making all sense pads same smaller size and limit the signal range by pad, not flipper, to achieve a level field.
I'm not sure I understand. I would make the pads smaller to make it easier to route, but not sure why that would help with signal to noise ratio.
DMA wrote:
21 Apr 2023, 03:02
However, due to xwhatsit's "virtual ground" and generally ringy nature you'll likely drown in noise, because actual contact area will be ~1mm high.
I haven't seen much noise in xwhatsit, as long as key presses don't change, and as long as there's no heavy machinery operating above the keyboard. What I did notice is that without 'debouncing' (a lot of debouncing algos also do denoising), during the actuation of a key sometimes other keys can trigger on the same row. It only seems to happen very rarely probably when actuation coincides with the scanning pulse. I don't really have a good explanation for it. I can already filter most of this stuff out, by checking that the key is not already high before triggering the column, but some still happens when the actuation happens to fit between the column trigger, and the sample point.

But while no keys are actuating, and all keys are either unpressed, or being held down constantly, noise is very minimal, like +-2 LSBs of the 12-bit DAC. So just to put that into context, on my FAT, an example key has the signal level of 480 unpressed, 812 pressed, with the row sitting at 418 when no columns are triggering (this is with a 12-bit DAC). That +-2 LSB of noise is nothing. The noise that is actually caused by another key being actuated, I call it interference in my firmware. That is indeed a problem, cause it means I cannot use eager debouncing algorithms because of it, and puts a limit on achievable latency.
DMA wrote:
21 Apr 2023, 03:02
my experience shows that even a small dust particle getting under the flipper drops the key output to virtually zero, so a tiniest gap would suffice
Yeah, noticed that, I found it especially problematic with beamsprings though. Dust tends to not affect the unpressed state of Model Fs that much, and makes it easier to use unpressed signal levels as a calibration reference. With beamsprings it's more of a problem.
DMA wrote:
21 Apr 2023, 03:02
I wouldn't be gluing any copper tape anywhere if I were you - it's quite thick and so it's pretty hard to tell what will happen in advance, but likely nothing good.
I did some experiments with that and it seemed to work, as long as the copper tape was on the bottom. This was with single sided adhesive copper tape. No idea how long it would last. In any case I wouldn't sacrifice 101 Model F flippers for such an experiment. (converting an M2)

See my results, the small flippers were about half the signal level of a normal flipper, copper tape was a little better than conductive plastic. The "Cut down a lot" flipper is the M-sized F flipper from my video:
levels.png
levels.png (16.34 KiB) Viewed 2019 times
DMA wrote:
21 Apr 2023, 03:02
I found way back that printer paper thoroughly blackened with pure graphite (8B pencil works too) is quite detectable by CS (black side down), so may be if you do the same to the M flipper with some convincing of the graphite to stay there (with some ironing to fuse the graphite into the surface of the filpper, maybe?) it might just work.
I haven't really tried conductive sprays yet for this purpose, but an interesting idea to test. I tried spraying graphite spray on PCBs for another purpose, but it was always easy to remove it afterwards with just some alcohol. But maybe the solvent in the spray can melt the flipper a little and actually embed the graphite in it.
DMA wrote:
21 Apr 2023, 03:02
GH were not always registering, IIRC - It was like five years ago, hard to remember.. I reused it's backplate and case for taylorswift's FSSK plate, so it wasn't a total waste after all. I just have a pile of flippers I don't need.
Not sure if you're aware, but Unicomps and 4th gen Model Ms have this area where they pass signals from top to bottom layer: https://imgur.com/a/zSxNAkH . If a single rivet is missing or loose in the top right of the keyboard, it can cause weird behavior, like keys sometimes working and sometimes not, and especially likely to be the cause if multiple keys are doing it at the same time. Doing a partial bolt mod often fixes it: https://imgur.com/a/pzIFggD But sometimes you have to also add some pieces of paper under the bottom layer to increase the pressure there. In my experience the partial bolt mod was the most important. Dust in that area could also potentially be a problem. One way to test for this problem, is to remove the top right keycap, and press down on the top right barrel, if that pressure temporarily fixes problems, then you found the culprit. I think this is a very under-diagnosed problem, and since I've been spreading awareness of this possible failure mode, there were quite a few people who found out that this is exactly what was causing their issues. This won't help your Unicomp now, but I'm just taking every chance that I get to spread awareness of this, especially since it's fairly easy to fix, maybe more Unicomp keyboards will be fixed...

User avatar
DMA

21 Apr 2023, 06:48

pandrew wrote:
21 Apr 2023, 04:21
Ahh apologies, I thought it would be multilayer, since I remembered you mentioned you had a ground layer, but then it must mean that you have small holes in the ground layer where the columns and rows pass over each other, right?
Yep. Could've made that with 0-ohm resistors, but it's cheaper with vias and doesn't seem to affect the result.
pandrew wrote:
21 Apr 2023, 04:21
DMA wrote:
21 Apr 2023, 03:02
Also nothing prevents you from making all sense pads same smaller size and limit the signal range by pad, not flipper, to achieve a level field.
I'm not sure I understand. I would make the pads smaller to make it easier to route, but not sure why that would help with signal to noise ratio.
The way I understood things: so you have keys where you have normal space and constrained space. Those produce vastly different signal level, so you'll need per-key thresholds. But you can instead make pads smaller everywhere and have the same level everywhere. (It would probably be easier to just cut all the flippers the same though - but I only realized that now).
pandrew wrote:
21 Apr 2023, 04:21
DMA wrote:
21 Apr 2023, 03:02
However, due to xwhatsit's "virtual ground" and generally ringy nature you'll likely drown in noise, because actual contact area will be ~1mm high.
I haven't seen much noise in xwhatsit, as long as key presses don't change, and as long as there's no heavy machinery operating above the keyboard.
Hmm.. probably mine (well, not mine, lot_lizard's on his 5251) was defective somehow.. it had mighty overshoots everywhere - like 200mV: https://github.com/dmaone/CSI/blob/mast ... g?raw=true
pandrew wrote:
21 Apr 2023, 04:21
What I did notice is that without 'debouncing' (a lot of debouncing algos also do denoising), during the actuation of a key sometimes other keys can trigger on the same row. It only seems to happen very rarely probably when actuation coincides with the scanning pulse.
Let me guess - on the same row, but in later columns? This is because the overshoot was so great it charged the row so well that puny 100k drain resistor cannot drain it quickly enough. CommonSense solves that problem by shorting sense lines to the ground when they are not needed, and putting them into Hi-Z right before the driving pulse. But since CommonSense only has one ADC, it has to interleave reading real columns with reading from the ground to prevent the same problem (except it was all the time while the key was pressed - say, pressed key was 40, then next column will be 20, then 10, then 5..)

Also when solenoid fires all hell breaks loose - the ground literally jumps.. I remember something in xwhatsit code that stopped scanning while solenoid was actuated - must have been really bad :)
pandrew wrote:
21 Apr 2023, 04:21
I don't really have a good explanation for it. I can already filter most of this stuff out, by checking that the key is not already high before triggering the column, but some still happens when the actuation happens to fit between the column trigger, and the sample point.
Another xwhatsit's mistake was to not use latches after the comparators. It may be for the best though - if he did, he would be measuring overshoots, and those could easily be several times Vcc for a very brief periods, especially if the PCB tracks are a bit rotten. I had a lot of those problems with magvalve boards - Cortron was really, _really_ cheaping out on those MagValve PCBs :(
..or may be he used pin interrupts for latches - I don't really remember anymore.
pandrew wrote:
21 Apr 2023, 04:21
The noise that is actually caused by another key being actuated, I call it interference in my firmware. That is indeed a problem, cause it means I cannot use eager debouncing algorithms because of it, and puts a limit on achievable latency.
Just do longer pauses between columns to give more time to virtual earth to stabilize. And don't do anything while solenoid is actuated, if you have it. Should help. "Eager debouncing" won't do you any good tho - somebody turns on a LED dimmer near the keyboard and you'll inundate the host with keypresses. I managed to _crash_ Windows 10 machine with that couple times!
pandrew wrote:
21 Apr 2023, 04:21
Dust tends to not affect the unpressed state of Model Fs that much
Because it's supposed to be zero LOL. You can't get less than that.
pandrew wrote:
21 Apr 2023, 04:21
I did some experiments with that and it seemed to work, as long as the copper tape was on the bottom. This was with single sided adhesive copper tape. No idea how long it would last.
Main question is "how long before it starts peeling off from constant thwacking against the PCB" exactly.
pandrew wrote:
21 Apr 2023, 04:21
See my results, the small flippers were about half the signal level of a normal flipper, copper tape was a little better than conductive plastic.
"Pressed down a lot" shouldn't be different from just "pressed down" - you're probably deforming the PCB or touching the metal/grounded parts of the keyboard? Copper tape on top doesn't make sense, it's too far from the PCB. Only, like, 0.1mm from the PCB actually matter. You can try to put copper tape on the bottom but make a flat plane out of it, continuing towards flipper's legs. Should help more.
pandrew wrote:
21 Apr 2023, 04:21
I haven't really tried conductive sprays yet for this purpose, but an interesting idea to test. I tried spraying graphite spray on PCBs for another purpose, but it was always easy to remove it afterwards with just some alcohol. But maybe the solvent in the spray can melt the flipper a little and actually embed the graphite in it.
Oh, there are conductive _sprays_ nowadays? Interesting. Yeah, solvent in the spray may help, or you can introduce some on top of the spray. The goal is to embed conductive particles into the material so they aren't scrubbed away, but not too far from the surface so they still meaningfully affect the dielectric constant of the flipper.
pandrew wrote:
21 Apr 2023, 04:21
Not sure if you're aware, but Unicomps and 4th gen Model Ms have this area where they pass signals from top to bottom layer: https://imgur.com/a/zSxNAkH . If a single rivet is missing or loose in the top right of the keyboard, it can cause weird behavior, like keys sometimes working and sometimes not, and especially likely to be the cause if multiple keys are doing it at the same time. Doing a partial bolt mod often fixes it: https://imgur.com/a/pzIFggD But sometimes you have to also add some pieces of paper under the bottom layer to increase the pressure there. In my experience the partial bolt mod was the most important. Dust in that area could also potentially be a problem. One way to test for this problem, is to remove the top right keycap, and press down on the top right barrel, if that pressure temporarily fixes problems, then you found the culprit. I think this is a very under-diagnosed problem, and since I've been spreading awareness of this possible failure mode, there were quite a few people who found out that this is exactly what was causing their issues. This won't help your Unicomp now, but I'm just taking every chance that I get to spread awareness of this, especially since it's fairly easy to fix, maybe more Unicomp keyboards will be fixed...
Oh, this is a really good observation. I agree with your efforts, this should be picked up by search to help more people in the future.

Findecanor

21 Apr 2023, 13:44

DMA wrote:
21 Apr 2023, 03:08
Findecanor wrote:
20 Apr 2023, 21:38
The click does not come from the flipper hitting anything but from the spring when it reaches its "catastrophic buckling" state. Then the flipper and other parts transmit the sound, of course.
It very much does. The spring is silent
You are incorrect, sir. If you buckle a spring in just the right angle between your thumb and forefinger then it will make its clicking sound!
I was really amazed the first time I did it, as it is not entirely intuitive that it would make the sound.
This is not an April Fool's joke. I'm serious.

User avatar
DMA

21 Apr 2023, 20:06

Findecanor wrote:
21 Apr 2023, 13:44
You are incorrect, sir. If you buckle a spring in just the right angle between your thumb and forefinger then it will make its clicking sound!
I was really amazed the first time I did it, as it is not entirely intuitive that it would make the sound.
This is not an April Fool's joke. I'm serious.
Cannot reproduce - with either M or F springs. If it doesn't hit anything - it doesn't produce a sound. Can you record a video of that?

Post Reply

Return to “Workshop”