July 21, 2018

HP Internet Advisor - Adding a Sound Card

With the PS/2 port on hold while I do more head-scratching, how about addressing another requirement: sound. I mentioned the motherboard has a meek little piezo buzzer, but I want real '90s sound.

BEEP

One of the most surprising features of this thing is that it has a fully-functional 16-bit ISA card slot. It came with a unique AMD network card in the slot, an AMD (yes, they made network chips?) AM79C960. The card has "2100/1500T Compatible" silkscreened on it. According to Windows 95, that's the only usable network port on the machine.

So, of course I yanked it out in favor of a generic 16-bit SoundBlaster compatible card from eBay!
Super Generic card, from the days when there were multiple "IDE" standards (the four big connectors on the left) and multiple audio cable standards (the white connectors in the upper right) for CD-ROM drives.

Buying Was the Easy Part (Rant Incoming)


Fitting this card was... an adventure. The various mounting brackets and other cards inside the Internet Advisor were in the way of the card. The IDE connectors and two of the audio connectors would have to go, which is a bummer; I'd hoped to use the IDE ports to temporarily add a CD ROM drive for temporary software installation. I actually had to cut away one of the mounting ears for an internal bracket just to clear the sound card bracket. That'd be a problem if this thing wasn't built to survive World War III.

The other fact that I haven't really harped on yet is that the entire machine needs to be disassembled to do almost anything. Cards must be unplugged. Flat-flex cables must be detached (carefully!). Changing hard drive? Full disassembly. Changing ISA card? Full disassembly. Oh, you made a re-assembly mistake? Fun times! Full disassembly. This thing must have made HP repair technicians furious, which is odd, because much of the other HP gear I've taken apart over the years had maintenance in mind.

The AOYUE 474A++ vacuum desoldering tool that came in so handy for the Commodore 64 work I did last year made relatively painless work of the IDE connectors. I'll never need the Mitsumi, Panasonic, or Sony ones, but I may find a way to re-fit the generic IDE one someday.

After some bending and judicious application of the metal nibbling tool, the card was fitted. What new screw-up did I perform on re-assembly?

Cringe and Flip on the Power

Sometimes I forget that Plug & Play made even ISA card fitting a relatively painless experience:
No smoke this time! Win95 discovered the Sound Card, Joystick Port, IDE connector, MIDI port, and all of the other stuff shoehorned into sound cards 20 years ago.
Since the Floppy drive was not present (did I mention how annoying disassembly is?) I did not bother trying to get drivers on the thing yet. The fact that it seemed to work despite all of my manhandling was reward enough.

Updates and Stuff I Was Wrong About

Early on I mentioned that the little lithium backup battery had two cells. WRONG. It's a single cell, but extra thick, CR2354 (23mm in diameter, 5.4mm thick). It still measures nearly 3V, but it's 20 years old so I got a new one from DigiKey.

Some Googling about PS/2 led me to a site which informed me I was wrong about something else:
The device always generates the clock signal.
D'oh. I thought the chipset generated the clock. My oscilloscope showed no activity on either the clock or data PS/2 signals from a cold start, so I done goofed somewhere. Maybe it's disabled in the HP-customized BIOS? After all, they never intended it to have a functional port...

One thing I got right was the LCD voltage. Yes, I measured it, and yes, it was at 5V as I'd reasoned/hoped. I didn't measure the current, though. I'm enjoying the mystery. I'm not worried; the voltage drop across my hacked-in MOSFET is very small, which means the current through the MOSFET is also small. Most importantly, those two facts mean that the power dissipated in the MOSFET is very small, so it shouldn't be a problem unless I screw up the connector again.

Yay, Hackaday!

I'm honored to have been featured on Hackaday! Thanks, Jenny!

July 18, 2018

HP Internet Advisor - the Pop Out Mouse

The HP Pop-Out mouse in my HP Internet Advisor is quite a neat bit of engineering. The mouse itself has no sensors, no ball, and there is no electrical connection between it and the computer itself. So how's it work then?

It's a Mouse, Jim, But Not As We Know It


The Pop-Out mouse appeared in a few HP products in the 1990s. It's a clever take on the mouse idea. The pop-out feature made for a nice portable solution, and it does work as naturally as any other computer mouse, though it was probably quite a bit more expensive to make than a typical mouse of the era.

The pop-out mouse is more of a system, rather than a self-contained component. The part you grab with your grubby mitts is much like a shrunk-down mouse with two buttons. It connects to the PC through a black flexible "tongue", about 20mm wide by maybe .5mm thick. As mentioned before, there is no ball inside the mouse, and this predates even the most primitive optical sensors. When you move the mouse left and right, the tongue moves in and out of the PC. When you move the mouse up and down. the tongue rotates on a pivot inside the computer. A chunk of electronics in the PC senses these motions of the tongue and converts them to mouse movements.
The mouse (right), sticking its "tongue" out to the left. The adhesive holding this tongue together has degraded allowing it to delaminate. Don't let this happen to you, kids!
I mentioned before that the mouse has no electrical connection to the PC. In fact, one can disconnect the mouse simply by pulling it out of the computer.

The tongue on my mouse has de-laminated a bit, which gives insight into its construction. Its core is a simple bit of thin, flexible plastic. Bonded to either side are thin sheets of plastic (probably mylar?) and bonded to the insides of this plastic are some metallic patterns:

The three layers of my tongue, and a view of the underside of the mouse body, with no tiny plastic ball to get dirty.
The shiny areas on the inner plastic core are the failed glue.

You Said There Was No Electrical Connection!?

Correct. The metalized part of the mylar layers is on the inside, and meant to be bonded to the plastic tongue, so there's no way for the PC to make contact. How's the tongue motion sensed, then? I'm betting capacitively. Like how digital calipers work.

The receiver (transducer?), top view. The tongue sticks out to the right, and is sandwiched between the black plastic and the gold-colored polyamide. The entire receiver pivots on the pin sticking up on the right side, with round rubber baby buggy bumpers to limit travel. Note the white arc-shaped plastic on the left.

It's easier to see the working parts of the mouse's Y-axis. When you move the mouse along the Y-axis, the tongue acts as a lever and causes the whole receiver to pivot inside the computer. As it pivots it moves over this white arc-shaped piece of thin plastic, which is held to the computer chassis with two pins.
The white plastic arc, and the underside of the receiver. Normally the arc slides inside a channel under the clear plastic cover, but I've separated them here. See the previous picture for an idea of their positions in operation.
This arc also has a metalized layer on the other side (it looks black when viewed through the back). Here's a picture I composed with Krita, showing one of the metalized T-shaped features superimposed in place:
The sort-of T-shaped metalized area (dark grey and somewhat transparent) in its natural habitat (simulated).


My suspicion is that the receiver board creates a high frequency (100kHz, maybe?) signal, and applies it to the large pad underneath the thicker part of the T-shaped feature. This capacitively couples the signal into the T-feature, which then capacitively couples the signal to the thin traces. The signal is then picked up by some electronics to decode the position.

The thinner area of the T feature always covers four of the thin sections of copper. Every eighth one of these is connected together. If we name the thin strips A through H, the T feature is sized to always be over four of them. In the above picture, if we start naming the strips from the bottom, the T is covering GHAB:

           TTTT
     ABCDEFGHABCDEFGHABCDEFGHABCDEFGH...

If we move the mouse slightly, the T covers a different set of segments:

            TTTT
     ABCDEFGHABCDEFGHABCDEFGHABCDEFGH...


If we were a microprocessor looking for a signal on those 8 segments, we'd be able to detect that the mouse moved, and in which direction! Keep in mind that I wouldn't know which HABC segment had the T-feature over it, so I don't know its absolute position along the arc, but that's not terribly important for mice.

This would work in exactly the same way for the X-axis. One of the metalized layers of the "tongue" has a similar pattern of T-shaped features. As the mouse is moved on the X axis, the tongue moves in and out of the computer, sliding those T-features over similar strips on the receiver.

The buttons use the other layer of the tongue, which has just three metalized features covering its length. Pressing a mouse button would short two of these together, coupling the signal from one (say, the center feature) to one of the others.

BRAINS

The board I have been calling the "receiver" doesn't have a lot of electronics on it. Certainly, it has no microprocessor; there is only an LTC1060 an LM339 quad comparator, a 4069 hex inverter, and a boatload of passive components. I've run up against a limit in my knowledge here; I can't quite conceive how these parts work together to make this a reality (especially the LTC1060).

The receiver is connected to a Xilinx FPGA (or is that CPLD? I can never remember the difference) on the motherboard through a length of flat-flex cable. I think the Xilinx device does the final "thinking" that interprets these signals and sends them to... where? Perhaps it appears as a bus mouse on the ISA bus? I may chase that down some day.

For part 2 (assuming I don't break something that I can't repair in the meantime), I'll get some oscilloscope readings of interesting parts of the circuit.

July 16, 2018

HP Internet Advisor - Repairing My Shot Foot

Sometimes it pays to be a packrat. It also pays when making a Digi-Key order to buy one or two extra of whatever part you're after, just in case.


The Problem

Earlier I posted the dead MOSFET that I killed in cold incompetent blood:

R.I.P.
The heat burned off most of the markings. I don't have a schematic or service manual or anything, so I had to try to reason out what it used to be. There are two neighboring devices in the same type of package, both old Motorola MTD2955Es with the same date code. HP would try to use the same part if possible on multiple places, just to keep the Bill of Materials simple. The MTD2955E pinout made sense, anyway; the Drain went to the LCD, the gate was in the right place (and about 10k resistance away from the Source), and the Source had good continuity to the 5V rail. Okay, definitely a P-channel device, and the ratings seem plausible, so probably a match.

My goof-up with the LCD connector placed a hard short on the Drain of this device, shorting the 5V power supply rail to ground for about 15 seconds! Before dying, the MOSFET got hot enough to delaminate the Drain's copper pad from the PC board. This computer has a really good power supply; it didn't even flinch.

ON Semiconductor has obsoleted this device in favor of the NTD2955. Unfortunately, DigiKey doesn't have them in stock (at least not in the right package). So what to do?


Hooray, Pack Rat

I have a few P-channel MOSFETs in "stock"; mostly leftovers from other failures projects. It seems back in 2008 I bought some IRF7416s, which are in a similar performance ballpark:

Huzzah!

Good news for me, the old devices were way overrated for this role; they only needed to support a VDS (drain-source voltage) of 5V, but are rated for 60V. The IRF7416s are only good for 30V, but that's still more than enough. The old device could deliver 12A, so the IRF7416s at 10A fall a little short of that, but I'm willing to gamble if it means Instant Gratification. I don't think the LCD draws 12 Amps, even with the old-style fluorescent backlight. My guess is that it draws around 2 Amps.

But there's more to consider: the computer probably puts -5V on the Gate relative to the Source (VGS). (It actually probably grounds the Gate, and since the Source is at 5V, the Gate is 5V more negative than the Source, which turns on a P-channel MOSFET). I need to make sure the IRF7416 turns "on enough" to pass the required current with a VGS of -5V, and without an excessive VDS.

The charts in the datasheets seem to make the IRF7416 look quite a bit better than the MTD2955E - with a VGS of -5V, the Drain-Source Voltage (VDS) across the MTD2955E will be 1V if the display draws 2A. That means the display will only be fed about 4V. On the other hand, the IRF7416 will have an almost negligible VDS if the display draws 2A. Even if the display drew 10A, the VDS would be 0.3V, giving 4.7V to the display.

They can be a little confusing to read. Start with the gate voltage you intend to use and find the curve matching it. The MTD2955E has a 5V curve for us, but I picked the 4.5V curve on the IRF7416 to be pessimistic. Then find where the curve intersects the expected current draw (my guesstimate is 2A). Draw a line down to the bottom axis to find the VDS for those parameters.



I'll confess I didn't look at the charts that carefully at all. Only when writing this (knowing the result), am I becoming aware of all the assumptions I've already made:
  1. I'm really not 100% sure that the Source side of these MOSFETs is actually 5V! The Source seems to have a low-resistance connection to the VCC pin on one of the chips in the chipset, which should be 5V. But I didn't actually measure the voltage as I should have done (mostly because it's really a pain putting the system together fully enough to power up, and this is just a fun side-project, not something that MATTERS).
  2. I have no idea how this MOSFET's gate is driven, just an educated guess. The simplest thing for HP to have done is to drive the gate to Ground with another MOSFET. Indeed there are some just out of frame in the pictures attached here. But I don't know. If I was doing this on something that MATTERED, I'd really make sure I understood how the gate was being driven. 
  3. The IRF7416 is more expensive than the NTD2955, and has a lower RDSON value. My reckless takeaway from these facts is that it's going to perform as well or better, since we don't care about anything other than having a low VDS when turned on. The higher the VDS, the more power (and thus heat) the MOSFET will dissipate.
The HP engineers who designed this are much smarter than I am, so making assumptions is dangerous. Probably not "I'll die in a fire of my own making" dangerous, but certainly "I'll kill something else harder to fix and just toss the whole thing out" dangerous.


Square Peg, Meet Round Hole

One last minor detail... the packages these parts come in are completely different. The old device is a DPAK, which has a large metal tab meant to be soldered to a large copper pad on the PC board. It has three pins: Drain (the large metal tab), Source (the leg on the lower right in the above picture) and the Gate (the leg on the lower left, opposite the Source).

The new device is a Small Outline IC with 8 pins. Four of these are the Drain, three are the Source and one is the Gate. They don't line up with the DPAK pads at all. Even if they did, the big square copper pad for the Drain is gone.

Left: Right    Right: Wrong
 My solution was ugly, a little reckless, and displays a shockingly low standard of workmanship. I super-glued the new device to the board on its back, into the charred cavity left by the overheated copper pad. Once the glue set, I used some heavy-gauge copper wire to connect the four Drain pins to the neighboring capacitor (the yellow thing). The Source also got a slightly overlong bit of copper wire bent into a right angle to connect the three pins to their correct pad. Then the single Gate pin got a short length of stranded wire to connect to the old pad. Why heavy-gauge wire? It should help dissipate heat from the Drain (I hope). Future generations will have no way of knowing this is an IRF7416, since I glued the side with the markings to the board, but whatever.


Not super proud of this
Some checks with an ohmmeter verified that things seemed correct despite the ugliness.


More Blue Smoke?

After tediously re-assembling the machine (i.e. not screwing up the LCD connection again), I applied power and... everything worked fine. Yay! In the spirit of the project, I won't bother measuring the VDS or anything. Since the display works, it vindicates all of those assumptions, right?

Okay, back to the PS/2 thing that got me into this mess in the first place.


But Other Than that, How Did the PS/2 Work, Mrs. Lincoln?

No. Not sure why. The mouse definitely works, and Windows 95 has detected the PS/2 hardware, but it doesn't register the mouse. I'll put a scope on it later.

July 14, 2018

HP Internet Advisor - Adding a PS/2 Mouse?

As neat as the weird Pop-Out mouse is, it's not very nice to use. It's not precise, and it's way too small. I'd like to add a real mouse. The Internet Advisor has a serial port, and a serial mouse would work fine with Windows 95, but they're rare, and guaranteed to have a rolling ball at their heart. These are terrible. If I could somehow hack a PS/2 mouse into the system, I could actually have something more modern, with an optical sensor.


The Search for PS/2

The PS/2 port is a fairly old standard, and it makes sense that a 486 chipset would have one. It's relatively easy to implement. Other than power and ground, a PS/2 port has two signals: 1) a clock generated by the chipset and sent to the mouse to synchronize 2) the data sent by the mouse relaying all of the movement and button information.

If HP didn't provide the physical PS/2 connector, maybe they brought the signals out to a header that I could plug into...

First I had to figure out the chipset used to interface the 486 with the rest of the system. That's easy; it's written all over the big Integrated Circuit packages. There are four big ICs on the main board, all helpfully labeled "CHIPS". I'm old enough that I recognize the name: "Chips & Technologies".
Back when "chipset" meant something.
Some Googling gave me the functions of the ICs, and even datasheets I could download from shady datasheet websites:
After digging into the datasheets, I found the PS/2 clock and data pins pins on the F84041:


After carefully placing one meter probe on both pins 101 and 102, I poked around the board looking for a beep from the meter's continuity buzzer. If I didn't find the signals brought to anything easy like a connector, I'd have to gingerly solder wires directly on the IC pins, which is not a talent I have.

I didn't find anything easy, but something easier: both MCLK and MDATA were brought out to 10k resistors, probably pullups to +5V. After finding a nice source of +5V and Ground, I'd have the four signals I'd need to talk to the mouse.


Surgery

I sacrificed a PS/2 extension cable so that I would have a socket to plug the mouse into. Then I soldered wires to the resistors pulling up the clock and data signals:
Clock (blue) and Data (pinkish) wires soldered to their respective pullup resistors

Not far away, I found a source of +5V and Ground:

A large Tantalum capacitor across the +5V rail provides power and ground to the mouse.

The whole shebang. Clock, data and power brought out to a PS/2 socket, with an intermediate connector in case I screwed up something.

Blue Smoke

Excited to test my work, I re-assembled the whole computer, powered it up... and then nothing. No display. The hard drive clicked and the floppy drive did its seek, but nothing showed up on the LCD. Then I smelled the smoke.

Unfortunately, I didn't shut it down fast enough. I had plugged in the LCD cable incorrectly, and apparently blew out the MOSFET which supplies power to it:

I let the smoke out.


I think I found the part number, unfortunately it's obsolete.


Stay tuned...


July 13, 2018

HP Internet Advisor (J2522B)


Another "For Parts or Not Working" score, this time of a 1997 vintage HP "Internet Advisor".

Photo from a different model's eBay listing
It looks like a laptop, but it's actually a very heavy mid-1990s piece of test equipment. No battery power; it's "portable" but draws power from the mains. Mine is an apparently rare early model J2522B, intended to investigate T1 and 10Base-T Ethernet connections. Apparently these things cost upwards of 20 kilodollars 20 years ago, but my dusty example was only $20 shipped. I'd hoped it was broken, but alas, it worked perfectly.



There's a pretty good Lazy Game Reviews video that covers it pretty well. Especially the wacky built-in "Pop Out" mouse.


What's in the Box?


As with all mid-1990s HP test equipment, you need a T15 Torx driver (and later a T7 or T8) to take it apart, and it's built like a tank. The main body of this thing is fairly heavy-gauge steel.

Inside, you'll find a:
  • Intel 486DX4-100
  • 1.3GB 2.5" hard drive (still works fine!)
  • 16 Megabytes of RAM
  • Windows 95
  • a 16-bit ISA "fast Ethernet" card in the left side option slot
  • 640 x 480 VGA

The ELECTRONIC BRAIN. Notice the yellow "bodge" wires.

The "HammerLock" motherboard. That's a 2-cell Lithium battery for keeping the BIOS settings and running a (Y2K compliant!) clock.


That Doesn't Sound Like Much Fun

It won't make much of an old gaming machine. There's no sound hardware at all, except a tiny piezo speaker soldered on the main board. There's no PS/2 mouse or keyboard port, and the built-in Pop-Out mouse is a really cool idea, though it's not precise enough for gaming.

But maybe I can change all that...