February 23, 2019

XViCO Pioneer (X3) Board Reverse Engineering


The XViCO board is based around an STM32F103RCT6, a 64-pin part.

Partial pinout:
1 - VBAT
2 - PC13 - Extruder ENable (R23 = 10k pullup to 3.3V) 
3 - PC14 - Extruder DIRection
4 - PC15 - Extruder STEP
5 - PD0 - 8MHz Crystal
6 - PD1 - 8MHz Crystal
7 - NRST - reset button
8 - PC0 - Z STEP
9 - PC1 - Z DIR
10 - PC2 (ADC123_IN12) - Extruder (hotend) Temp (R5 is 4.7k pullup to VDD)
11 - PC3 (ADC123_IN13) - Bed Temp (R14 is 4.7k pullup to VDD)
14 - PA0 - Bed heater MOSFET gate (7R030)
15 - PA1 - Hotend heater MOSFET gate (7R030)
16 -  PA2 - Q3 (CA2TF) - "B_FAN" header
17 - PA3 - Q4 (CA2TF) - "E_FAN" header
20 - PA4 (SPI1_NSS) - U38.1?
21 - PA5 (SPI1_SCK) - U38.6?
22 - PA6 (SPI1_MISO) - U38.2?
23 - PA7 (SPI1_MOSI) - U38.5?
24 - PC4 - Z ENable (R22 - 10k pullup to 3.3V)
25 - PC5 - Y STEP
26 - PB0 - Y DIRection
27 - PB1 - Y ENable (R21 - 10k pullup to 3.3V)
28 - PB2 - X STEP
29 I2C SCL
30 I2C SDA
33 - PB12 - X DIR
34 - PB13 - "Level"
35 - SPI2_MISO
36 -  SPI2_MOSI
37 - PC6 - X ENable (R20 - 10k pullup to 3.3V)
38 - PC7 - X Home
39 - PC8 - SD pin 3
40 - PC9 - SD pin 2
41 - PA8 - Y Home

42 - PA9 - "TX" on header. Function: USART1TX
43 - PA10 - "RX" on header. Function: USART1RX
44 - PA11 - Z Home switch (also USBDM, but not brought to header)
45 - PA12 - E Home (filament runout?) (also USBDP, but not brought to header)
46 - PA13 - "DO" on header. Function: JTMS-SWDIO
49 - PA14 - "CK" on header. Function: JTCK-SWCLK
50 - PA15 - SD pin 1
51 - PC10 - SD pin 9
52 - PC11 - SD pin 2
53 - PC12 - SD pin 5
54 - PD2 - SD pin 7
61 - PB8 - LCD

Other devices:
L5970D - 12V to 5V Buck regulator
LD1117 - 3.3V Linear regulator
Winbond 25Q64JVS10 - 64Mbit SPI Flash

BUP_5V header - connected to 5V rail and GND

SD pin 4 = GND
SD pin 6 = VCC


I desoldered the Winbond flash device and dumped the firmware here. The STM32F103RCT6 firmware is here (many thanks to advice from Samuel Pinches!)

I looked for images in the firmware using Irfanview (thanks to this very handy blog entry!) and eventually, this image jumped out:

Well, that's something to go on! After some googling, I landed at another blog, which seemed to explain the situation well.

The logeek.cn site has schematics for an STM32F103-based 3D printer board, it's for a much more sophisticated unit. I suspect the XViCO board is cut down significantly from the original design.

February 22, 2019

XViCO Pioneer 3D Printer Information

The XViCO X3 (sometimes also known as the Pioneer?) has appeared on eBay in the US for fairly inexpensive prices.

I found a couple of reviews online. I always find Angus Deveson's reviews on Makers Muse to be helpful, and this review was no exception. However, it was light on some of the nuts-and-bolts specifics I wanted to know. Now that I've bought one, I'll try to fill in the gaps.

XViCO Website and Contact

I believe this is the XViCO website, though it doesn't seem to have anything on the Pioneer as of 2019-02-22.

The site lists yfm@xvico3d.com as a contact address, but this doesn't work:
The response from the remote server was: 
550 Mailbox not found. http://service.exmail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000728
Not an auspicious beginning.

Power Supply Unit (PSU)

The power supply seems to be a universal-input type, so no need to switch it between 240/50Hz or 120/60Hz lines. Its output is rated 12V @ 20A, and dimensions are 200mm x 60mm x 40mm. The big electrolytics are made by a small-volume manufacturer (Dongbaohe), and I don't think I've seen the brand around, so it is probably a very low-cost unit.

The wire gauge seems to be generous, though. And the fact that it took solder means it's at least partly made of copper.

One bad thing you will want to rectify: while the PSU side of the heavy-gauge output wires have had spade lugs nicely crimped on, the other end has simply been stripped and tinned. The problem is that this solder will eventually soften with heat and mechanical stress, making the connection to the board intermittent. This risks fire. It would have been much better to crimp ferrules in place instead of tinning the wire.
Soldered Ends = Bad

Crimped Ferrules = Better


The main board is based on an STM32F103 processor, so this isn't yet another ATMega unit. The stepper drivers seem to be RAMPS compatible, though I have not verified this. I have not yet found a source for the firmware, and it certainly does not come on the included generic SD Card.

The back of the board gives the pinouts for the various headers and endstops.

The slot around the hotend and bed heater MOSFETs is curious. Maybe to keep heat from soaking into the rest of the board?

I have not yet found the manufacturer for certain. It may be made by Two Trees in Shenzhen, who also sell them on Aliexpress.

The drivers are marked HR4988SQ.

Delrin Wheels

Unlike the Creality printers, the rollers on this printer do not seem to be adjustable for tension. They certainly do not have the nice eccentric adjustments that Creality's printers have. This is my biggest disappointment, though I've been mostly impressed that the tension seems to be reasonably good.

Build Plate

The other exciting development for me was the removable glass build plate. It seems well-executed, though unlike Angus' review unit, mine is not textured.

The plate has holes for hex-head M3 x 30mm bolts, but XVico used Philips screws here, so they tend to spin in the plate when trying to make Y adjustments. A drop of superglue will probably be enough to hold these in place, but it's still an annoying oversight.

The glass dimensions are 220mm x 220mm x 3mm. While there's room at the back for electrical connections on a heated plate, the plate is going to be right against the ABS plastic of the frame, which doesn't seem like a great idea to me. In any case, the generic 3mm heat beds I have are 215mm x 215mm x 3mm, so they won't fit without modification. I do wish Angus would have shown the heated bed that XVico sent, though I understand why he didn't install it.

Hot End

Mine's even worse than Angus'. It has a single fan, with part of its output "diverted" to make a part cooling fan. The "duct" is 3D printed, and has already partly melted from proximity to the hotend.

The X carriage has four M3 bolt holes spaced 14mm apart for mounting the hotend. The hotend is bolted to the middle two holes.

There is a ~52mm PTFE-ish tube between the bowden coupler and the brass nozzle. The coupler is for 4mm OD tubing, threaded 1/8" NPT. It's branded "DONT".

The nozzle and heatbrake seem to be M7.

The heater cartridge seems to be 6mm x 20mm, retained with a setscrew. Not sure how the thermistor is retained.

X Axis Tensioner

The X axis tensioner has a small problem. The hex nut rubs against the bearing, creating a lot of friction and making the tensioner wheel hard to turn.
The hex nut rubs on the outer bearing race.
I solved this by using one of the spare M5 bolts that came with the printer, and an M5 nylock I had on hand. The bolt head is small enough in diameter that it won't rub on the bearing outer race.
A nylock nut on the back allows for very tiny increments of torque to hold the pulley in place:

I'll add more as I investigate further.

September 11, 2018

Boost Converters and Falstad's Simulator

Preface: I wrote this over the course of a couple of evenings. I started out wanting to show off Falstad's super handy simulator. During the course of writing the text I realized I'd almost completely missed the point of what was happening. If you listen closely, you can hear the faint echoes of my forehead slap when it became clear.

I've often struggled to understand boost converters. Recently, Julian Ilett has been building one on a breadboard and it has helped me get my head around them.

As much as I like breadboarding things, building them on Falstad's excellent circuit simulator allows for such quick experimentation that I prefer using it to get started. I don't have a huge collection of components, and in the time it would take me to swap out a 1-millihenry inductor for a 2-millihenry inductor, I may forget the questions I had that prompted the swap in the first place. I'm a big believer in "closing the loop" and satisfying curiosity as quickly as possible.

Start Simple

I whipped up a similar circuit as Julian's here: http://tinyurl.com/y75593kq

I made some modifications to Julian's circuit, but the spirit is the same. The simulator's power supply seems to have zero internal resistance, so I added a 1-ohm resistor to simulate some. That allowed me to add a small 100nF capacitor to make a more realistic circuit. The 470nF capacitor on the output is a little undersized so that the ripple would be visible.

My circuit boosts the 5V source up to 6V across the 560 ohm resistor with a 25% duty cycle. It's a modest boost, but according to the power readings (the rightmost two graphs), it's about 89% efficient. Not bad!

The simulation shows the MOSFET charging up the inductor for 20 microseconds (see the second graph; green is voltage across the inductor, yellow is the current through the inductor). When the MOSFET turns off and the inductor's field collapses, it induces a current through the load and diode and also the source. That last bit was what I needed to confirm.

Simple is Often Bad

One interesting "feature" of my simple boost converter is its behavior when starting up:

Yikes! Check out the voltage across the resistor (leftmost graph). Only 123 microseconds after applying power, the output rises to almost 10V! After settling down, its normal output is 6V. This kind of overvoltage could be disastrous to circuits downstream.

This can be seen easily simply by clicking the "Reset" button. That's one huge benefit of using a simulator. Click the "Run/STOP" button to pause the simulation if it's going too fast (or if you want to take a screenshot for a blog post).

Since I didn't expect that overvoltage spike, there's obviously more that I don't know.

That's Weird (I'm About to Learn Something)

Where is that overvoltage coming from? I'm sad to say I had no idea. Boost converters use energy stored in the coil to generate a voltage in addition to the source voltage. The source here is set to 5V, so the coil must somehow be generating almost 5V in series with (and in addition to) the source.

My first theory is that the MOSFET is somehow really efficient at switching at first. A quick way to test that theory is to disconnect the signal generator from the MOSFET gate, taking the device out of the equation:

Check out the lower-left graph again. The voltage ramps up to more than 7V in the first few microseconds -- and keeps going -- even though the MOSFET isn't doing its switching thing. That's weird.

Then I remembered my electronic fundamentals (sort of). I put my mouse pointer at about the 4.2V of the resistor's voltage graph (the green line of the leftmost graph). This is the point in time where 4.2V is generated across the resistor by the source (5V minus about 0.8V dropped by the diode). Any voltage higher than this is caused by the inductor. This is the most important point in time in all of these graphs, and I'm going to call this point midnight. Here is a better shot with the graphs on top of each other and the mouse at midnight:

The inductor graph (the bottom one) has the answer. At midnight current is still flowing through the inductor (the yellow line). Also the voltage across the inductor (the green line) is zero, since the 5V source has done all it can to push current through the circuit.

In electronics fundamentals it is taught that inductors resist changes in current flow. This works in two ways:
  1. increasing the current in an inductor by increasing the voltage across it creates a stronger magnetic field in the inductor, which resists the change in current.
  2. reducing the current through an inductor by decreasing the voltage across it causes the field to collapse, inducing a current in the circuit.
Sometimes analogies help, and I like to think of inductors like an air balloon. You blow air into the balloon and it expands. But it's stretchy, and resists adding air. But if you stop adding air to the balloon, it collapses and blows the air out again.

At midnight the current through the inductor stops increasing. Now the field begins to collapse, and the collapsing field is creating a voltage to keep pushing current through the circuit. This goes in the same direction the original current flow, and the resulting voltage adds to the 5V source. D'oh! This is the whole reason we use the inductor in a boost converter in the first place! Of course there's an overshoot. That's the whole point!

Knowing vs. Understanding

This is a good example of the difference between knowing a thing (i.e. "inductors resist changes in current") and truly understanding it. It isn't really surprising at all that the voltage across the resistor overshoots. In my limited grasp of boost converters, I had thought that the MOSFET was the most important thing, and didn't understand why the boost was happening even without the MOSFET.

After doing this experiment, I understand that the MOSFET is only there to temporarily increase the inductor's magnetic field. When that field collapses, it induces a little voltage in series with the source, thus boosting the output voltage.

Not Finished Yet

Boost converters are used everywhere, but they seem to have a fatal flaw: they create an overvoltage when powering up. It's in their nature. Yet we don't have stuff burning out all over the place, so the professional designers must have some way to keep it from happening.

Learning produces endless questions...

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.


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:


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


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.


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:

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:


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.


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...