
An 8-tube module from a 1954 IBM 705 mainframe: it's a key debouncer - fanf2
http://www.righto.com/2018/01/examining-1954-ibm-mainframes-pluggable.html
======
userbinator
_To understand how the inverter works, when the input (pin 2) is high, the
current through the tube pulls the plate (pin 1) low. Conversely, when the
input is low, the electron flow is blocked and the resistors pull the plate
high._

Note that "high" and "low" here are quite different from the usual digital
logic conventions of high=+V, low=GND; in this case, high would be near GND
while low is a negative voltage. The circuit manual PDF gives low=-30 and
high=+10. A lot of other early transistor logic families operated with such
"unusual" (for today) signal levels too.

The other notable characteristic of tube circuits is the high resistor values
--- this is because they operate at low current (in the mA range) but high
voltage (hundreds of voltages). Contrast this with transistor logic which is
relatively high current and low voltage.

 _One amusing component I found in the tube module was "Vitamin Q"
capacitors._

Those are actually very desired by audiophiles, so it's odd to see them in a
digital circuit. They're paper-in-oil capacitors and "Vitamin Q" was Sprague's
trade name for the proprietary oil they used.

~~~
lisper
> transistor logic which is relatively high current

Huh? The gate resistance of a FET is hundreds of megaohms, so the input
current is measured in nanoamps. That doesn't seem like high current to me.

~~~
averagewall
Transistors in TTL logic use mA of input current because they're bipolar, not
FET transistors.

~~~
lisper
That's true, but we're talking about computers here. Computer chips don't use
TTL, they're all CMOS, which uses FETs (MOSFETs to be precise).

~~~
kevin_thibedeau
CMOS didn't exist when the first transistorized computers were made.

~~~
lisper
Ah, right. I thought the OP was referring to modern CPUs.

------
vilhelm_s
Quite different from a modern key debouncer circuit like
[http://zipcpu.com/blog/2017/08/04/debouncing.html](http://zipcpu.com/blog/2017/08/04/debouncing.html)
.

The modern FPGA circuit first passes the input through two latches to
synchronize it to the system clock, and then has a digital counter to add a
delay to rapid bounces. Here the delay is analog, and there is no clock input:
the output digital signal is still completely asynchronous.

I wonder if they needed a second module to synchronize the signal and avoid
metastability issues, or maybe that doesn't matter at the low clockspeeds they
were using?

~~~
dfox
That depends on environment you are working in. Digital debouncer in FPGA (or
PLC for that matter) will involve some kind of digital timer as you cannot
easily build simple RC low pass filter in such environment.

In discrete logic debouncer designs with RC-filter that are quite similar to
this tube circuit are still widely used and to some extent the modern designs
are more similar to this when the schmitt trigger is realized as input of some
MCU/FPGA and only external parts is the RC filter in contrast to tradditional
discrete logic solutions which usually placed the filter between two schmitt
trigger gates.

By the way adding such external RC-filter (or even just series capacitor
across the contacts) is quite cheap and quick fix for worn-out rotary encoders
on various devices when existing (usually software) debouncing logic stops to
be sufficient.

------
jonsen
"This signal goes through two inverter circuits, creating a sharp output."

The two inverter-tubes share a common cathode resistor. This provides positive
feedback from the second inverter to the first. The circuit is called a
Schmitt trigger:

[https://en.m.wikipedia.org/wiki/Schmitt_trigger](https://en.m.wikipedia.org/wiki/Schmitt_trigger)

~~~
raverbashing
And today you get 6 of them in a small package like in the 74XX derived
families (74AHC14 for example)

And that's when you're doing a not so streamlined circuit, and can't have them
inside your ASIC or something, if you can it gets even smaller

------
lighttower
The article mentions that government and business rented these machines. Does
anyone know what the actual use cases were? I wonder how they justified the
enormous cost to a Dilbert type manager in the 50s. Wow.

~~~
Spooky23
Same as they do now... money!

One of my mentors was a statistician who got into IT while transitioning a
large state labor statistics department to computerization in the 70s. They
replaced 2000 clerks and tabulating machines with 1 mainframe and a 4 year
project. Ditching the building lease and tabulator maintenance paid for the
project!

~~~
lighttower
I can see in the 70s being able to justify it as a given that the project
would succeed if implemented. But that's a full 20 years after this machine.
Completely different technology and probably order of magnitude lower cost per
performance unit. So the question is, what workloads were are so high value to
justify the risk the project would fail and the enormous cost per compute
unit.

~~~
Spooky23
Payroll and general ledger. It’s hard to fathom how many billions of dollars
are spent on payroll.

------
yborg
I was kind of amazed at the poor soldering across the board on this module, I
wonder what the failure rate was on these things in actual use. I suppose the
high heat load kept the joints flexible at least.

~~~
softbuilder
When I look closely that work actually looks fine. Solder flow is reasonable
and I don't see cold joints. The only true WTF was where a resistor had been
ripped out for whatever reason. Also it's unclear whether they had flux-core
solder yet and they are essentially soldering in 3D. (Former electronics
assembler here.)

~~~
toomanybeersies
I did a bit of cursory research and it would appear that flux core solder was
invented in around the mid-20th century, so there's a very good chance that
they weren't using flux cored solder.

~~~
awful
According to Kester, the solder company, they were formed in 1899 to make flux
cored solder. Looking at the 1933 Allied Radio clearly shows Kester rosin core
solder.

------
S_A_P
Are any 705s running today? I feel like the cost of keeping it up would be
prohibitive. I’m also curious as to what tubes are used here.

~~~
kens
I don't think there are any original vacuum tube computers still running.
There are working replicas of the Colossus, ABC, SSEM and (almost complete)
EDSAC.

As far as tubes, the 700-series circuit manual [1] shows mostly dual triodes:
6211, 5687, 5965, 6350, 6072, 6528. Also 6136, 6197 pentodes. And probably a
variety for special cases (e.g. power supply, core).

[1]
[http://www.piercefuller.com/library/700circ.html](http://www.piercefuller.com/library/700circ.html)

------
bane
Ha! I didn't know what a debouncer was, and then I read this blog and wondered
if there's still a version of them in modern hardware and then watched this
video [https://youtu.be/D23FbGFrVuo?t=699](https://youtu.be/D23FbGFrVuo?t=699)
which specifically discusses the way the default DOS keyboard driver has a
built in debouncer.

What a weird coincidence in one day.

~~~
dfox
What the video calls "debounce" is just an autorepeat delay. And on AT and
PS/2 keyboards it is not done by any kind of PC side software (neither driver
nor keyboard controller firmware), but by the keyboard itself (In late
90's/early 00's there even were PS2 keyboards where you can set the rate
manually with key combination). In the protocol layer, autorepeat works by
repeating the key down event without key up events in between, so if you are
interested in state of the key without the autorepeat you can simply ignore
key down events for keys that you already see as down.

The real debouncer hardware is also in the keyboard itself for all standard
external keyboards ever used with PC.

On the other hand there were simple keyboard interfaces which involved reading
out the whole keyboard as if it was one big shift register and debouncing was
then done on the host side in software, two examples from top of the head are
Symbolics machines and Wyse terminals. Interface for (S)NES controllers
(really for Nintendo controllers up to GameCube) is similar, but I'm not sure
whether debouncing is done by controller hardware or not.

~~~
foobarian
I hated the PC keyboard repeat rates until I started using X-Windows and found
'xset r rate 160 80'. Warning: don't typo those numbers or you might have a
fun time restoring a sane default :-)

