Sunday, January 30, 2022

Restoring a 1997 IBM Aptiva

I found an IBM Aptiva 2127-E26 on Craigslist. It had a ton of charm so I decided to purchase it and restore it.

The original specs were:

  • AMD K6 233mhz
  • 256mb RAM (beefy for the time - this was likely upgraded later)
  • 6GB HDD
  • Crystal 4237 audio
  • ATI Rage II+
  • Windows 2000 was once installed, but it had been wiped. Windows 95 was the original OS.

It came in a quite vintage and unique 90's case.

A beige CD-RW/DVD drive is shown here which is obviously not stock. The original CD drive did not want to read some of the disks I had burned, so I replaced it with this. Unfortunately this drive quit as well so I've since replaced it again.

While the exterior is beautiful, the case is removed in a rather violent way by grabbing the front and yanking it off. This seems to have killed the original IDE hard drive and a bargain bin replacement.

Front case removed

So I replaced the hard drive with a IDE to SD card adapter. This thing is great. You can swap out the SD card in the back, if you want to make backups, transfer files quickly or swap out operating systems. Using a design I found on Thingiverse, I 3D printed a bracket for it that works really well.

I also added this nice 3COM NIC from the late 90's.

I have a few computers in my office and they're all hooked up to a 4-way HDMI/USB switch. Ideally I'd be able to use this machine with the switch, so I wouldn't have to pull out a new keyboard, mouse and monitor every time I wanted to play retro games.

Adding the PC to the huddle

My KVM switch with an audio switch alongside

So I set about trying to get this old hardware working with my modern input and output. This was the most challenging part of the project.

The first challenge was the display, which was VGA only. I tried several cheap VGA to HDMI adapters all covered in this Vogons post with mixed and disappointing results. When in DOS mode, the VGA signal is 70hz, and all of the adapters I tried just tried to output 70hz to HDMI, which was not supported by my monitor.

I also snagged a Matrox G450 as a period-correct adapter with DVI input. Sadly the G450 had problems with EDID with my monitor when using DVI, but I decided to keep it anyway and to keep pursuing VGA.

Matrox G450

 I finally landed on the Extron RGB-HDMI 300-A which almost did the job out of the box.

The one issue I had was again EDID. The Extron will pass this through HDMI by default which of course led to a broken 640x480 display in Windows. The Extron can also emulate EDID if you disable HDMI data, but the emulated 1920x1080 EDID wasn't honored by Windows - the best I could do was 1024x768. So I severed the EDID pins (#15 and #11) on my VGA cable and finally Windows stopped caring about what my monitor "supported". I was able to set a 1920x1080 resolution in Windows and now the whole thing works great.

VGA cable with the EDID pins severed

Now on to the input. My KVM acts as a USB hub. I wouldn't be able to use the generic USB to PS2 adapters because I only have one USB connection coming from my USB KVM switch. 

This computer does have USB ports, which work when you're logged on to Windows, but the BIOS does not support HID devices, and I doubt DOS would either. I didn't want to have to grab another keyboard and mouse to use outside of Windows 98.

So I used an Arduino Uno with a Sainsmart USB Host shield to connect my keyboard and mouse. I used the ps2dev library to emulate the PS2 keyboard using GPIO pins. I tried doing this with the mouse but was unsuccessful. So I bought a TTL to RS232 adapter and use that to emulate a serial mouse.

My very rough Arduino sketch is here.

It took awhile to make this reliable but it works quite well now, with not too much lag.

The custom adapter with serial output for the mouse, and PS2 output for the keyboard. The top shield is just an Arduino proto shield so I could solder the PS2 and serial connections.

USB input on the middle shield

I named this PC "Little Blue" - after IBM's now sort of antiquated nickname of "Big Blue"

The bad ass boot logo

Yes, it can browse the web using RetroZilla

Old school Roller Coaster Tycoon