Close

"Project Ideas"

A project log for Plug-in SBC lappy upgrade

Use a Single-Board Computer to upgrade an older system via IDE!

eric-hertzEric Hertz 11/24/2018 at 17:280 Comments

As of today, this is the related (and soon to be relocated) portion originally from https://hackaday.io/page/1036-project-ideas

This is written latest-to-oldest... oy.

[SMARTER] IDE Drive-replacement(Revisited, see below) (2-5-17)

@Starhawk has informed me of EOMA-68... a PCMCIA-form-factor for SBC's... might be something in there... hmmm... (10-20-17)

Ooooh: Check out @AlanH's #NetPi-IDE! (3-30-17)

And noted on the HaD blog (4-14-17)

AlanH uses a RasPi as an IDE hard drive and other hardware (was networking one?), interfaced via IDE, to a PCjr, no less. Using an FPGA to convert from the Pi's SPI to IDE, and some custom DOS-based drivers, not much different from the ideas laid-out below...

@mincepi is at it again with the inspiration for IDE-Drive replacement (see his#laptop2pi).

(See also my earlier ramblings on the matter, below, "RAM-On-IDE" (9-1-15)).

So, say you've got an old [486-era] laptop with an IDE hard disk. Not much to do with a 486, these days... And, some of those devices had some pretty hefty limitations, being that they weren't *intended* to be upgraded (e.g. my Toshiba T200's BIOS only supported hard disks up to ~128MB, and RAM upgrades are Small and Rare... Maybe 16MB.).

An earlier idea was to install "RAM" (actual real RAM) on a device which looks like an IDE drive. This real RAM could, essentially, look like a swap-partition to the computer, but without the drawbacks of slow physical access-time of hard disks of the era, nor limited-writes of e.g. today's Compact-Flash cards which can [almost easily] be dropped-in as hard-disks in IDE-based systems.

The problem isn't so much to *use* the 486, but to use the *machine*... the display, battery, UI, etc. (Or for e.g. my Pentium150 laptop, the keyboard, sound-card, etc.)

So, why not take the custom IDE "device" a step-further... Install a friggin' Single-Board Computer in its place. Use *that* as the brains, and use the rest of the system for what it's still useful for, its hardware.

(Ironic, maybe, that this goal is somewhat similar in intent, but approached from a different direction, to #Improbable AVR -> 8088 substitution for PC/XT)

Not sure, exactly, how to do this...

Mincepi's method is to use a Raspberry Pi as the brains in a system which can boot from (and has) USB. The Pi looks like a USB-attached hard-disk, which the system boots from, into what I imagine is a pretty limited OS that basically doesn't have to have anything more than some drivers and some sort of remote-desktop to the much more powerful single-board-computer. (Via USB this is somewhat more straightforward, SBC's can run in "gadget" mode, which can make them appear as USB hard-disks, USB ethernet-adapters, and more).

So, how could this be done via IDE (on a system that doesn't have USB)?

Essentially the "Master" drive (since many laptop-systems of the era either A: don't support a slave, or B: have a CD-drive attached) would have to handle *everything*... We're talking:

It has to be bootable by the original system (486, pentium... maybe 386? What about really old Macs? Hmmm...), provide the necessary software to communicate with the SBC, and provide the necessary drivers to interact with its real hardware.

It might have to provide BIOS-overlay support to the system, to support this imaginary hard-disk that will likely appear larger than 128MB.

It has to provide some means of communicating U/I info to that 486 (over IDE!).

It may even need to have support for things like communicating sound-events and other interrupt/timing-specific stuff...?

(again, all over IDE, which wasn't designed with this sort of thing in mind).

(Unlike my earlier ramblings on the matter, this system probably wouldn't have to provide a "swap" partition to physical-RAM attached via IDE. Though could if necessary implement such a thing via the SBC's RAM).

So, I'm imagining a few different 'partitions'. One might be only as large as a frame-buffer, to provide streaming video to the 486-application. Another might be used for I/O (keyboard, mouse...). Maybe these sorts of "devices" can all be on a single partition... maybe not unlike a linux-style /dev/ partition (except, shared between two systems!) On that note, isn't there a /dev/framebuffer these days...? HMMM...

And, in the end, it should be somewhat (if not completely) transparent to the end-user... Plug it in, turn it on, it boots into the SBC.

Preferably this same identical system could be plugged into any PC with IDE-boot support and a VGA card, and require no PC-side configuration. (So, there may need to be a way to configure things like the resolution, etc. via the SBC, but shouldn't be difficult for the end-user; e.g. they shouldn't be required to know about the nitty-gritty hardware-details of the PC "host" just to boot into the SBC's GUI... imagine something like a "live CD" that works on hardware that was pretty common before "live CDs" became a thing).

Discussions