Alternate ways of sensing teh Fs...

__red__

04 Jan 2016, 09:25

Some 3am thoughts, they may not be completely coherent :-)

Back with God was typing "Let there be light" on his beamspring and Adam and Eve invented the F and Cain Killed Abel for inventing the rubber dome, analog covered the Earth.

A fair amount of complexity of the boards that we have are due to trying to be as uniform in the responsiveness of each of the keys relative to the other keys because the original controllers and xwhatsit's controller make this assumption.

3am thoughts... What if it didn't have to be that way? What if we could calibrate the time of sample and the trigger voltage on a per key basis?

Sure, it wouldn't forgive absolute stupidity in the PCB design but it may provide us with a significantly less stringent design process.

So picture the scene...

ADC on each row.
The uC holds a lookup table of delay and threshold per key.

uC strobes the line.
Triggers the ADC sample at the configured delay.
Reads the analog value, compares against per-key lookup table.

Thoughts?

User avatar
XMIT
[ XMIT ]

04 Jan 2016, 13:06

I've suggested exactly this in the past and I think others have too. IIRC the consensus was that IBM engineers did things the way they did because back in the 1970s it was cheaper and easier to design a PCB with consistent values than it was to throw extra ROMs onto the board. Also, the entire board can drift slightly with environmental conditions so it is good if the board can auto calibrate somehow.
Last edited by XMIT on 04 Jan 2016, 14:45, edited 1 time in total.

__red__

04 Jan 2016, 14:28

Well I'm glad to hear it's not too far out of left field and cost was really what I thought was the driving factor too, especially given how horrifically expensive ROM was in those days. Now you can get an 8 channel 8 bit A2D for under $2.

We could still have auto-calibration I think if we were to assume (dangerous I know) that the environmental factors were fairly consistent across the board.

I'm going to chew on this for a few hours and see how it tastes.



__red__

User avatar
Muirium
µ

04 Jan 2016, 17:50

I'd love to be able to set key threshholds independently. Xwhatsit's controller's principal weakness is the one value fits all approach. On beamsprings especially, this can be one son of a canine to work with.

Autocalibration is nice, but flaky when forced into that extreme of one value for the entire board. I don't know how IBM did such a nice job, when Xwhatsit did everything right as far as I can tell but with very different consequences. There's nothing quite as hard to handle as a Model F or Beamspring with missing keys or ghost tsunamis.

Autocalibration per row, then? Is this system of yours intended strictly for custom PCBs? (Sense cards in IBM speak.)

andrewjoy

04 Jan 2016, 18:18

Muirium wrote: I'd love to be able to set key threshholds independently. Xwhatsit's controller's principal weakness is the one value fits all approach. On beamsprings especially, this can be one son of a canine to work with.

Autocalibration is nice, but flaky when forced into that extreme of one value for the entire board. I don't know how IBM did such a nice job, when Xwhatsit did everything right as far as I can tell but with very different consequences. There's nothing quite as hard to handle as a Model F or Beamspring with missing keys or ghost tsunamis.

Autocalibration per row, then? Is this system of yours intended strictly for custom PCBs? (Sense cards in IBM speak.)
\Thats been a problem for me , my 107 has shifted and now i cannot get it to work consistently , the only think i can think of is to replace the foam.

__red__

04 Jan 2016, 23:15

Okay, so there is an actual need then other than my late-night thoughts.

YOu may be able to do some kind of auto-calibration power key.

I'll order some a2d this evening from element14 and try to write some code tomorrow evening.

I'll use an old F122 as my test board.

IC I'm looking at is only available in tssop and I have a tssop zif socket adapter.

I'm convinced that using that adapter is going to cause me noise issues. Argh.

Pcb adapter it is then...



__red__

__red__

05 Jan 2016, 13:56

Disclaimer - I am not an expert, this is my reading and understanding of the scope. I'm completely prepared to be wrong. In fact I'm really very good at being wrong, it should be my vocation.

Every strobe actually consists of eight 5V pulses over ~700us period.
DS2_QuickPrint1.png
DS2_QuickPrint1.png (46.59 KiB) Viewed 1094 times
On the uptick there's about a 40mV spike which dissipates pretty quickly. I don't know if this dissipates this quickly because of the bleed resistor in the circuit or whether the input impedance of my scope is having significant influence. Schrödinger's Oscilloscope as it were...
DS2_QuickPrint4.png
DS2_QuickPrint4.png (37.91 KiB) Viewed 1094 times
So here's the shot we're interested in:
DS2_QuickPrint5.png
DS2_QuickPrint5.png (38.1 KiB) Viewed 1094 times
We have a whole 80mV to play with in a 30ns window. To put that in perspective I need to sample at at least 100Mhz to have a (finger in air) chance of getting a decent S/N ratio.

Now I'm starting to understand the difficulty in detecting this in pure software at a somewhat economical price.

Relative Permittivity FR4: 4.8
Relative Permittivity Mylar: 3.15
Relative Permittivity Cellolose Acetate: 3.2 - 7

__red__

10 Jan 2016, 18:18

Wow, controlling noise is hard while prototyping...

User avatar
Muirium
µ

10 Jan 2016, 18:44

IBM did a sterling job with the original controllers. It's not just an age thing. I have literally never seen a single false key in all the months I've spent typing on vintage Model Fs with their stock controller. I can't begin to say the same for Xwhatsit's! IBM had a big blue advantage in resources, of course. Yet with all the progress in the decades since, you'd think we would have off the shelf components aplenty to meet an old challenge like this.

Apparently, we do not!

__red__

29 Feb 2016, 20:22

Muirium wrote:IBM did a sterling job with the original controllers. It's not just an age thing. I have literally never seen a single false key in all the months I've spent typing on vintage Model Fs with their stock controller. I can't begin to say the same for Xwhatsit's! IBM had a big blue advantage in resources, of course. Yet with all the progress in the decades since, you'd think we would have off the shelf components aplenty to meet an old challenge like this.

Apparently, we do not!
Well, we do but we're all just intent of trying to re-create the original design. There may be better ways of doing this now that we have CPLDs and the like dirt cheap.

User avatar
Halvar

01 Mar 2016, 17:18

My understanding is that xwhatsit isn't doing the sensing in software, but with some simple off-the-shelf DA converter components, while IBM used dedicated sensing chips, and we don't even know how those worked. What do you mean by "trying to re-create the original design"?

User avatar
hasu

02 Mar 2016, 08:01

xwhatsis uses external comparator chip with controllable voltage reference chip, iirc.
I think dfj looked into IBM sensor chip and may know how it works. also soarerer or John Elliott may know, I think.

any of those guys is difficult to reach, anyway :)

User avatar
Halvar

02 Mar 2016, 08:58

Yes, an external comparator and DAC, here is a discussion:

https://geekhack.org/index.php?topic=45097.0

Luns

02 Apr 2019, 07:19

__red__ wrote:
05 Jan 2016, 13:56
Disclaimer - I am not an expert, this is my reading and understanding of the scope. I'm completely prepared to be wrong. In fact I'm really very good at being wrong, it should be my vocation.

Every strobe actually consists of eight 5V pulses over ~700us period.
Image
Just to be clear, the eight pulses are the controller walking through all eight rows on the same column. The column pulses once per key.
__red__ wrote:
05 Jan 2016, 13:56
On the uptick there's about a 40mV spike which dissipates pretty quickly. I don't know if this dissipates this quickly because of the bleed resistor in the circuit or whether the input impedance of my scope is having significant influence. Schrödinger's Oscilloscope as it were...
Image
The uptick is the rising edge of the column signal being capacitively coupled to the sense amplifier input, before the amplifier has a chance to respond. The amplifier itself, when it responds, presumably drives its output low. There's an integrating capacitor from this output back to the input, and it's the amplifier output going low that drives its the input back to where it started from.

__red__ wrote:
05 Jan 2016, 13:56

So here's the shot we're interested in:
Image

We have a whole 80mV to play with in a 30ns window. To put that in perspective I need to sample at at least 100Mhz to have a (finger in air) chance of getting a decent S/N ratio.
The amplitude and timing are much more relaxed than that, but you have to sample the output of the amplifier, not its input. Only one sample is necessary in the time that the column line is high, and in fact, the sample should be taken after the spikes you see, not during. That is, sample after things have been transferred from the amplifier input to output.

Post Reply

Return to “Workshop”