Atomic I/O letters column #130

Originally published 2012, in Atomic: Maximum Power Computing
Reprinted here June 8, 2012
Last modified 16-Jan-2015.
 

Microwave oven not an acceptable substitute

Last week, my old GeForce 8800GT died. Garbage on the screen during boot, didn't make it to Windows. I stole the oldest PCIe graphics card in the world from my dad's computer so I could at least use 2D mode, and started shopping for a new card. Everything I can buy is faster than my old card, which would be nice, but I'd really rather not upgrade right now, for financial reasons.

But then I remembered reading about people who managed to fix flaky video cards by baking them in an oven to reflow the solder. Put board in oven at 190 to 200 degrees C for 5 to 10 minutes, dry solder joints get wet again, is the theory.

Bugger me, it worked. I'm a believer.

But while I was looking up how to do this crazy thing, I found this page from a guy who fixed his LaserJet with the oven trick, but then had to do it AGAIN six months later.

Am I going to have to do that too? It took my card three years before it went wrong; is it going to go wrong again, faster? What actually went wrong in the first place?

L


Unfortunately, you can't just shave 'em.

Answer:
I don't know exactly what problem your card had, but it was indeed probably the solder. In the case of the fellow who has to cook his LaserJet circuit board every six months, it's almost certainly the solder.

Standard old-fashioned electronics solder is an alloy of tin and lead, in about a 60:40 ratio.

Tin/lead solder is good because both metals are cheap (and lead's considerably cheaper than tin), and the mixture has a pleasingly low melting point, and the lead cures the tin of two scientifically fascinating, but very irritating, habits. Bad habit one is "tin pest", in which pure tin below 13.2 degrees C slowly converts itself into a powdery grey allotrope that doesn't conduct electricity any more.

Tin's second bad habit is the formation of "whiskers", super-thin metallic hairs that slowly grow out of certain metals and alloys. Tin whiskers can easily grow long enough to electrically connect components on circuit boards that shouldn't be electrically connected.

Tin pest is seldom a problem in the real world, because if the tin is alloyed with almost anything, it won't convert unless the temperature is a lot colder or you wait a lot longer. Tin whiskers are also curable by alloying; plenty of lead in the alloy does the job nicely.

But lead is poisonous, and so the electronics industry is moving away from it. Already has moved, in most cases.

(If you're an electronics hobbyist, tin/lead solder is considerably easier to work with than lead-free, so you should probably keep using it, along with decent ventilation to keep vapour out of your lungs.)

The simplest formulation for non-toxic lead-free solder is just tin by itself. Many manufacturers used that, in the early lead-free days, to coat the legs of components. The actual solder then used to attach the components to the PCBs was more than 99% tin, less than 1% copper.

This all seemed to work pretty well until, a year or three later, these early lead-free circuit boards started failing at alarming rates. Most electronics keeps itself warm enough to avoid tin pest, but tin whiskers grew with great enthusiasm, especially from the pure tin plating on component legs. The ultra-thin whiskers can only conduct a trickle of current without being melted by their own resistive heating, but tiny trickles of current are the stock in trade of most integrated circuits. So one minuscule whisker can kill a graphics card, or a whole computer, or a printer.

Old-style tin/lead solder melts at only about 185°C, so you can easily "reflow" a PCB in a household oven at less than 200°C. Many hobbyists have dedicated a toaster oven to this task, to prevent lead, epoxy and who-knows-what-else from accumulating from vapour in their actual food oven.

The melting point of pure tin is almost 232°C, though, and 99.3%-tin 0.7%-copper solder needs around 227°C. So an oven at 200°C shouldn't be able to melt the whiskers.

Oven thermostats aren't very accurate, though, and circulating air from, especially, the flames in a gas oven, can easily be considerably hotter than the overall oven temperature. So the guy with the LaserJet that needs re-baking every six months probably has a lead-free circuit board that's growing whiskers, which melt away again in the oven.

 

The Case of the Vanishing Speakers

Every few boots my Windows 7 x64 computer just... loses... my Logitech USB speaker drivers, and has to re-download them. They're just little stereo speakers, not a surround set. I think it happens when I've got other USB stuff plugged in when I reboot, but I'm not sure.

It's not the most annoying thing in the world, but it does make me wonder if there's something going wrong deep in the guts of Windows. I remember stuff being redetected every boot in Win98 so I ended up with 20 monitors in Device Manager, but Win7 only ever seems to see one set of speakers. It just keeps... reacquainting itself with them.

Any idea why?

Darwin

Speaker equals keyboard

Answer:
I don't know for sure why this is happening in this one particular case, but I can give you a general explanation.

Simple USB audio devices like a pair of speakers should just use drivers that're built into all modern OSes. But this is another of those cases where beautiful clean specifications turn into a snake-fight in a mudhole once the free market's left alone with them for five minutes.

There isn't, you see, actually a standard basic USB audio driver, in the same way that there are standard drivers for mice and keyboards. It looks as if there's such a driver, to Windows users, most of the time. But Linux users know that USB audio devices actually come in numerous flavours, and may not admit to being audio devices at all.

A set of speakers may, for instance, swear Scout's-honour to Windows that it is in fact a keyboard, on which keys mysteriously never seem to be pressed. When you install the drivers that come with the speakers, they reach out to every "keyboard" plugged into the computer and poke them in a mystic Masonic sort of way, and the one that gets the secret handshake right is then connected to the audio subsystem.

But then you reboot with more USB devices connected, or things plugged into different sockets. Windows would be perfectly able to sort this out if everything told the truth, but when all it sees are a bunch of "keyboards" on different sockets, the driver-installation procedure has to be done again to see which of these devices actually are keyboards, and which are waiting for a secret dog-whistle.

 

Practical network engineering

If I dug a hole through the middle of the planet to the other side, lined it with unobtainium to keep the magma out, and ran a similarly fireproof Ethernet cable through it, how long would it take for the electrons to make the round trip? What would my ping time be?

Jason

Answer:
Mobile electrons in a conductor move incredibly slowly. The net "drift velocity" is determined by the cross-sectional area of the wire and the current passing through it, but even at high currents you're still only talking millimetres per second.

When electrons move, though, they push the electrons in front of them along, and those electrons push more, somewhat like water in a hose. This wave-front of motion propagates extremely quickly - close to the speed of light in vacuum, for an uninsulated chunk of metal. A typical multi-conductor insulated cable still manages something like two-thirds of c, or about 200,000 kilometres per second.

A 12700-kilometre trip (the approximate diameter of the Earth) at that speed will take about 0.064 seconds, so your round-trip latency, ignoring processing at the far end, would be about 127 milliseconds.

Unfortunately, though, the maximum cable length for 10/100/1000BaseT Ethernet is only a hundred metres. You can stretch that a bit and get away with it, but stretching it by a factor of more than 60,000 is inadvisable.

(A hole dug from us here in Australia would also come out in the Atlantic Ocean, but let's presume you manage to hit the Portuguese Azores or something, and there's someone there who wants to play Counter-Strike with you.)

Your Comic-Book Science Machine could probably make you a superconducting Ethernet cable, but superconductors only pass direct current with no loss, and Ethernet is high-frequency alternating current. So you'd still be stuck with thousands and thousands of repeaters of some sort. Unless you went for optical fibre, of course; I'm sure your Science Machine could also make you an incredibly long fibre of magically non-dispersive glass to do the job. Conveniently, the speed of light in glass is also about two-thirds of c. So there you go; about 64 milliseconds, each way.

In real-world situations, the raw "signal speed" of the cables often doesn't make a big contribution to the total ping time. Satellite Internet is so lousy for action games because you're bouncing your signal off something in geostationary orbit, about 35,786 kilometres above the equator. That gives you about 240 milliseconds of light-speed signal propagation time, for the signal to get from you to the satellite and from the satellite back to the ground somewhere else, plus another 240 milliseconds for the reply to get back to you.

(Old-style "one-way" satellite, where your downstream channel comes via geostationary orbit but your upstream travels via dial-up modem, may not actually be much worse in total ping time, depending on how much upstream bandwidth you need.)

You'd need the thick end of 50,000 kilometres of wire to be waiting even 240 milliseconds, the one-way geostationary latency, for an electrical signal. The circumference of the whole planet is only about 40,000 kilometres.

Real-world network latency comes, instead, from the servers and clients, and from the layers of routing and switching and firewalling between them. Traffic volume has an enormous impact too; little ICMP ping packets can behave (and/or be treated) quite differently from larger TCP and UDP game packets. (This is why pinging a server from the command line can give results quite different from perceived latency in games and other software.)

So mere through-the-planet tunnelling machines won't, I'm afraid, give us really snappy trans-planetary gaming experiences. We're just going to have to wait for traversable Lorentzian wormholes. And unfortunately, poking a Cat 5 cable through a black hole always seems to violate the minimum bend radius.

 

Other letters columns

I/O #1
I/O #2
I/O #3
I/O #4
I/O #5
I/O #6
I/O #7
I/O #8
I/O #9
I/O #10
I/O #11
I/O #12
I/O #13
I/O #14
I/O #15
I/O #16
I/O #17
I/O #18
I/O #19
I/O #20
I/O #21
I/O #22
I/O #23
I/O #24
I/O #25
I/O #26
I/O #27
I/O #28
I/O #29
I/O #30
I/O #31
I/O #32
I/O #33
I/O #34
I/O #35
I/O #36
I/O #37
I/O #38
I/O #39
I/O #40
I/O #41
I/O #42
I/O #43
I/O #44
I/O #45
I/O #46
I/O #47
I/O #48
I/O #49
I/O #50
I/O #51
I/O #52
I/O #53
I/O #54
I/O #55
I/O #56
I/O #57
I/O #58
I/O #59
I/O #60
I/O #61
I/O #62
I/O #63
I/O #64
I/O #65
I/O #66
I/O #67
I/O #68
I/O #69
I/O #70
I/O #71
I/O #72
I/O #73
I/O #74
I/O #75
I/O #76
I/O #77
I/O #78
I/O #79
I/O #80
I/O #81
I/O #82
I/O #83
I/O #84
I/O #85
I/O #86
I/O #87
I/O #88
I/O #89
I/O #90
I/O #91
I/O #92
I/O #93
I/O #94
I/O #95
I/O #96
I/O #97
I/O #98
I/O #99
I/O #100
I/O #101
I/O #102
I/O #103
I/O #104
I/O #105
I/O #106
I/O #107
I/O #108
I/O #109
I/O #109
I/O #110
I/O #111
I/O #112
I/O #113
I/O #114
I/O #115
I/O #116
I/O #117
I/O #118
I/O #119
I/O #120
I/O #121
I/O #122
I/O #123
I/O #124
I/O #125
I/O #126
I/O #127
I/O #128
I/O #129
I/O #130
I/O #131
I/O #132
I/O #133
I/O #134
I/O #135
I/O #136
I/O #137
I/O #138
I/O #139
I/O #140
I/O #141
I/O #142
I/O #143
I/O #144
I/O #145
I/O #146
I/O #147
I/O #148
I/O #149
I/O #150
I/O #151
I/O #152
I/O #153
I/O #154
I/O #155
I/O #156
I/O #157
I/O #158
I/O #159
I/O #160
I/O #161
I/O #162
I/O #163
I/O #164
Dan's Data letters #1
Dan's Data letters #2
Dan's Data letters #3
Dan's Data letters #4
Dan's Data letters #5
Dan's Data letters #6
Dan's Data letters #7
Dan's Data letters #8
Dan's Data letters #9
Dan's Data letters #10
Dan's Data letters #11
Dan's Data letters #12
Dan's Data letters #13
Dan's Data letters #14
Dan's Data letters #15
Dan's Data letters #16
Dan's Data letters #17
Dan's Data letters #18
Dan's Data letters #19
Dan's Data letters #20
Dan's Data letters #21
Dan's Data letters #22
Dan's Data letters #23
Dan's Data letters #24
Dan's Data letters #25
Dan's Data letters #26
Dan's Data letters #27
Dan's Data letters #28
Dan's Data letters #29
Dan's Data letters #30
Dan's Data letters #31
Dan's Data letters #32
Dan's Data letters #33
Dan's Data letters #34
Dan's Data letters #35
Dan's Data letters #36
Dan's Data letters #37
Dan's Data letters #38
Dan's Data letters #39
Dan's Data letters #40
Dan's Data letters #41
Dan's Data letters #42
Dan's Data letters #43
Dan's Data letters #44
Dan's Data letters #45
Dan's Data letters #46
Dan's Data letters #47
Dan's Data letters #48
Dan's Data letters #49
Dan's Data letters #50
Dan's Data letters #51
Dan's Data letters #52
Dan's Data letters #53
Dan's Data letters #54
Dan's Data letters #55
Dan's Data letters #56
Dan's Data letters #57
Dan's Data letters #58
Dan's Data letters #59
Dan's Data letters #60
Dan's Data letters #61
Dan's Data letters #62
Dan's Data letters #63
Dan's Data letters #64
Dan's Data letters #65
Dan's Data letters #66
Dan's Data letters #67
Dan's Data letters #68
Dan's Data letters #69
Dan's Data letters #70
Dan's Data letters #71
Dan's Data letters #72
Dan's Data letters #73
Dan's Data letters #74
Dan's Data letters #75
Dan's Data letters #76
Dan's Data letters #77
Dan's Data letters #78
Dan's Data letters #79
Dan's Data letters #80
Dan's Data letters #81
Dan's Data letters #82
Dan's Data letters #83
Dan's Data letters #84
Dan's Data letters #85
Dan's Data letters #86
Dan's Data letters #87
Dan's Data letters #88
Dan's Data letters #89
Dan's Data letters #90
Dan's Data letters #91
Dan's Data letters #92
Dan's Data letters #93
Dan's Data letters #94
Dan's Data letters #95
Dan's Data letters #96
Dan's Data letters #97
Dan's Data letters #98
Dan's Data letters #99
Dan's Data letters #100
Dan's Data letters #101
Dan's Data letters #102
Dan's Data letters #103
Dan's Data letters #104
Dan's Data letters #105
Dan's Data letters #106
Dan's Data letters #107
Dan's Data letters #108
Dan's Data letters #109
Dan's Data letters #110
Dan's Data letters #111
Dan's Data letters #112
Dan's Data letters #113
Dan's Data letters #114
Dan's Data letters #115
Dan's Data letters #116
Dan's Data letters #117
Dan's Data letters #118
Dan's Data letters #119
Dan's Data letters #120
Dan's Data letters #121
Dan's Data letters #122
Dan's Data letters #123
Dan's Data letters #124
Dan's Data letters #125
Dan's Data letters #126
Dan's Data letters #127
Dan's Data letters #128
Dan's Data letters #129
Dan's Data letters #130
Dan's Data letters #131
Dan's Data letters #132
Dan's Data letters #133
Dan's Data letters #134
Dan's Data letters #135
Dan's Data letters #136
Dan's Data letters #137
Dan's Data letters #138
Dan's Data letters #139
Dan's Data letters #140
Dan's Data letters #141
Dan's Data letters #142
Dan's Data letters #143
Dan's Data letters #144
Dan's Data letters #145
Dan's Data letters #146
Dan's Data letters #147
Dan's Data letters #148
Dan's Data letters #149
Dan's Data letters #150
Dan's Data letters #151
Dan's Data letters #152
Dan's Data letters #153
Dan's Data letters #154
Dan's Data letters #155
Dan's Data letters #156
Dan's Data letters #157
Dan's Data letters #158
Dan's Data letters #159
Dan's Data letters #160
Dan's Data letters #161
Dan's Data letters #162
Dan's Data letters #163
Dan's Data letters #164
Dan's Data letters #165
Dan's Data letters #166
Dan's Data letters #167
Dan's Data letters #168
Dan's Data letters #169
Dan's Data letters #170
Dan's Data letters #171
Dan's Data letters #172
Dan's Data letters #173
Dan's Data letters #174
Dan's Data letters #175
Dan's Data letters #176
Dan's Data letters #177
Dan's Data letters #178
Dan's Data letters #179
Dan's Data letters #180
Dan's Data letters #181
Dan's Data letters #182
Dan's Data letters #183
Dan's Data letters #184
Dan's Data letters #185
Dan's Data letters #186
Dan's Data letters #187
Dan's Data letters #188
Dan's Data letters #189
Dan's Data letters #190
Dan's Data letters #191
Dan's Data letters #192
Dan's Data letters #193
Dan's Data letters #194
Dan's Data letters #195
Dan's Data letters #196
Dan's Data letters #197
Dan's Data letters #198
Dan's Data letters #199
Dan's Data letters #200
Dan's Data letters #201
Dan's Data letters #202
Dan's Data letters #203
Dan's Data letters #204
Dan's Data letters #205
Dan's Data letters #206
Dan's Data letters #207
Dan's Data letters #208
Dan's Data letters #209
Dan's Data letters #210



Give Dan some money!
(and no-one gets hurt)