Hard Disk Selector


In the last few years,
the available range of operating systems for PCs has increased
dramatically. Various free (!) operating systems have been added to the
list, such as BeOS, OpenBSD and Linux. These systems are also available
in different colours and flavours (versions and distributions). Windows
is also no longer simply Windows, because there are now several
different versions (Windows 95, 98, ME, NT, XP, Vista and 7). Computer
users thus have a large variety of options with regard to the operating
system to be used. One problem is that not all hardware works equally
well under the various operating systems, and with regard to software,
compatibility is far from being universal. In other words, it’s
difficult to make a good choice.

Switching from one operating system to another – that’s a risky
business, isn’t it? Although this may be a bit of an exaggeration, the
safest approach is still to install two different operating systems on
the same PC, so you can always easily use the ‘old’ operating system if
the new one fails to meet your needs (or suit your taste). A software
solution is often used for such a ‘dual system’. A program called a
‘boot manager’ can be used to allow the user to choose, during the
start-up process, which hard disk will be used for starting up the
computer. Unfortunately, this does not always work flawlessly, and in
most cases this boot manager is replaced by the standard boot loader of
the operating system when a new operating system is installed.

In many cases, the only remedy is to reinstall the software. The
solution presented here does not suffer from this problem. It is a
hardware solution that causes the primary and secondary hard disk drives
to ‘swap places’ when the computer is started up, if so desired. From
the perspective of the computer (and the software running on the
computer), it appears as though these two hard disks have actually
changed places. This trick is made possible by a feature of the IDE specification called ‘CableSelect’. Every IDE hard disk can be configured to use either Master/Slave or CableSelect. In the latter case, a signal on the IDE cable tells the hard disk whether it is to act as the master or slave device. For this reason, in every IDE
cable one lead is interrupted between the connectors for the two disk
drives, or the relevant pin is omitted from the connector.

This causes a low level to be present on the CS pin of one of the
drives and a high level to be present on the CS pin of the other one (at
the far end of the cable). The circuit shown here is connected to the IDE bus of the motherboard via connector K1. Most of the signals are fed directly from K1 to the other connectors (K2 and K3). An IDE
hard disk is connected to K2, and a second one is connected to K3. When
the computer is switched on or reset, a pulse will appear on the RESET line of the IDE
interface. This pulse clocks flip-flop IC1a, and depending on the state
of switch S1, the Q output will go either high or low. The state on the Q
output is naturally always the opposite of that on the Q output. If we
assume that the switch is closed during start-up, a low level will be
present on D input of IC1a, so the Q output will be low following the
reset pulse.

This low level on the Q output will cause transistor T1 to conduct. The current flowing through T1 will cause LED
D1 to light up and transistor T2 to conduct. The hard disk attached to
connector K2 will thus see a low level on its CS pin, which will cause
it to act as the master drive and thus appear to the computer as the C:
drive. A high level will appear on the Q output following the reset
pulse. This will prevent T3 and T4 from conducting, with the consequence
that LED D2 will be extinguished and the hard
disk attached to connector K3 will see a high level on its CS pin. For
this disk, this indicates that it is to act as a slave drive (D: drive).

If S1 is open when the reset pulse occurs, the above situation is of
course reversed, and the hard disk attached to connector K2 will act as
the D: drive, while the hard disk attached to connector K3 will act as
the C: drive. Flip-flop IC1a is included here to prevent the hard disks
from swapping roles during use. This could have disastrous consequences
for the data on the hard disks, and it would most likely cause the
computer to crash. This means that you do not have to worry about
affecting the operation of the computer if you change the switch setting
while the computer is running. The state of the flip-flop, and thus the
configuration of the hard disks, can only be changed during a reset.

The circuit is powered from a power connector for a 3.5-inch drive.
This advantage of using this connector is that it easily fits onto a
standard 4-way header. However, you must observe the correct polarity
when attaching the connector. The red lead must be connected to pin 1.
Constructing the hard disk selector is easy if the illustrated printed
circuit board is used. You will need three IDE
cables to connect the circuit. The best idea is to use short cables
with only two connectors, with all pins connected 1:1 (no interruption
in the CS line). The IDE connector on the
motherboard is connected to K1 using one cable. A cable then runs from
K2 to first hard disk, and another cable runs from K3 to the second hard
disk. This means that it is not possible to connect more than two hard
disks to this circuit. You must also ensure that the jumpers of both
disk drives are configured for CableSelect. To find out how to do this,
refer to the user manual(s) for the drives.


Sorry, comments are closed!