Pro's and Con's
In a software-controlled Multi-boot installation, the least secure OS endangers data integrity of all the other OS on the local PC.
System and data partitions of all administered OS remain accessible all the time. Access restrictions are only bound to means of software.
Comfort and flexibility of a bootmanager creates new operational risks and compliance issues.
Users need sophisticated knowledge about partitioning and interdependencies of the installed OS's, and eventually full disk backups.
But how do we get it right? In hardware, of course! Operating systems reside on a harddisk or other mass storage media, which are modular and hot-pluggable components with today's interface standards. Such HDD or SSD could be attached or detached from the mainframe by technical measures. So, the most consistent option of "boot management" is a physical switching of drives:
We still use one and the same mainboard, yet install and configure our Operating Systems onto physically separate harddisks that are independently bootable on the respective hardware platform.
We only connect the desired boot drive to the system before it is powered-up for reboot. (Coldstart-Method)
The computer can boot only from a device that is physically connected to the system hardware and running.
Other devices that were disconnected from the system and/or power supply, can not be booted, as they do not even exist from a perspective of the computer's BIOS/UEFI or any drivers that may be loaded subsequently.
A technical switching cannot be overcome by software. Attacks from a network, malicious software or installation disasters could only harm the current system on the selected disk. If he managed to completely crash one OS, the user has serenity to just start up one of his other fully functional installations and prepare rescue media or search the Web for helpful info.
Full disk encryption (FDE) is quite unproblematic in a single-boot setup, and those hardware-switched boot disks are each organized as single-boot installations. In particular, all the sectors following the MBR are available in whole for low level drivers.
Hard disk drives have become quite affordable. With only one OS per disk, we have option to choose comparably small disk capacities tailored for the certain scope of application. I.e. an Office-PC could run with comparably small conventional drives or SSDs. Smaller HDDs tend to be more energy-efficient, rugged and reliable than bigger ones. On the other hand, for the install of a Fun- or Gaming-OS we may directly choose some Terabytes packed platter that will then keep our most beloved Multimedia stuff.
Independent, optimized, streamlined and clearly arranged OS installations help keeping control of your data and to perform tailored backup strategies. This is something slightly different to the usual windooze scrapheap where more and more ballast and incriminating material accumulates inevitably...
Top | Index
With "hard boot management", different HDDs carry different bootable OS and may be selectively connected to the mainboard. This is clearly a change in hardware configuration. Thus, the only reasonable approach for safe reboot is a coldstart.
Before switching to another boot drive, we will have to shutdown and turn off the PC (normally "soft-off" or "S5" is sufficient).
Then we connect the designated boot drive with the system hardware, then turn on the PC again. Since the BIOS surely recognizes a coldstart, it will do a deep check on the drive configuration (corresponding BIOS-option to 'AUTO') and subsequently boot from the new harddisk, if this has been determined by boot priority.
Actually nothing new! Brave users performed this method years ago with more or less comfortable switching procedures...
Just to mention, also the manual plugging of cables or high-quality mechanical switches were "good" methods of boot-switching at least from an electrical perspective ... with that special thrill! Premature disconnect when the system was not really shut-down, spoofed by a sleep mode, and other silly mistakes could severely damage the file systems of one or multiple harddisks. Every live switching of the power supply could have been the "final surge" for drive electronics that's not really hot-pluggable...!
Those HDD-Racks are not really suitable for bootmanagement. Being designed for data drives at the first place, it is provided that hdd's may be removed or inserted even at runtime of the system. But it is plain to see this would be a no good idea at all with boot drives. Such drives should never be removed from the system until the respective OS they carry, has been shutdown completely. Yet, there is no technical barrier that will prevent us from doing such funny things. No chrome plated keylock prevents us from that...
Only very few commercial Hard Drive Switches (or SATA-Switches) were primarily designed for the switching of boot drives. If there is a special mode for boot drives, switching should be impossible at PC-runtime. However, product descriptions are often misleading. Where the benefits of the "Hot-swap" feature are praised over and over, the product may be rather intended for data drives. We come to the disappointing conclusion, that even the most expensive HDD switch could be more dangerous than the cheapest handcrafted solution! Despite that shiny chrome keyswitch...
The proposed boot drive switch is designed to select 1 out of 4 hard disk drives to boot from. It only switches the power supply of the selected HDD. (With modern interface standards like SAS or SATA, it is okay to only switch the power supply, as this will be sufficient for an intelligent controller to safely add/remove a device to/from system configuration at least on BIOS level.)
Most of the manual or semi-automated switching methods had the disadvantage that they do not reliably protect users from doing silly mistakes, i.e. switching at runtime. Also the operation of many switches is comparably cumbersome...
However, the proposed circuit was explicitly considered for use as a bootmanager. Switching should only commence when the PC was really powered off. Thus this BootSwitch circuit and its programming enforces the proven coldstart method.
Oh, and my concept goes without chunky switches and LED gimmicks. It does not litter the PC front with trashy looking 80's style controls. BootSwitch is being operated in the most discreet way - by a single pushbutton. Even better, we could dual-use the existing "POWER" button for that purpose! Since the BootSwitch's logic not only controls the switching of hard disks, it can also restart the PC system with optimized timing.
The selection of the desired boot disk is done by way of this veeeery complex input method:
Change of boot disks is only possible after switching off the computer. Some means of hardware and software make sure that an already connected drive cannot be dropped while the computer is running, even if the power supply of the bootswitch-logic was disturbed.
Within warmstarts (initiated by clicking "Restart" or pressing the Reset button), then of course no switching operation will take place. Instead, the already-attached hard drive remains connected and the system will flawlessly reboot from the same drive. That is to say, the warmstart behavior is just the same as if the platform had permanently connected drives. (Nice feature with respect to "installation orgies" that require multiple restarts!)
After shutdown and power-off, the BootSwitch's logic will return to Standby mode either. Now we are free to choose another bootdrive by pushing the button an number of times, and only few seconds later, the machine will restart and boot up from the selected drive automatically.
Additionally, we have option to connect no drive at all. For this, we simply press the power button once more, than the number of switchable hard drives. BootSwitch will then initiate the PC power cycle only without energizing a hard drive. We can thus boot up some live system from CD or pendrive without changing BIOS-boot-priority and without running into any risk of unwanted access/alterations in the built-in system drives.The main logic and control tasks are performed by the AVR microcontroller ATtiny2313 . See further annotations on programming and peripherals for further information on this reliable and robust application.
|BootSwitch 4.1, circuit version since 12/2013 - only one relay stage and driver depicted.
(Download provides this and other documents in higher graphics solution.)
General Note: In this document, i will try to coherently use the term "standby" to refer to the technical standby state, which is equal to a "switched-off" computer, whoose power supply still delivers the standby voltage. (ACPI mode "S5"), while "Power-On" denotes the powered-on PC, where all regular voltages are provided and booting can of an operating system is imminent (ACPI mode "S0").
Basic Principles: This boot drive switch is to connect the chosen hard drive to the PC system, even before the PC is powered-on again. What we get is the most gentle, most compatible procedure of changing a boot disk, since the inevitable power upsurge can not be harder as if the drive was permanently connected to the system, thus being supposedly within all standard limits. Thus, for the hard drive, power supply and BIOS the electrical and logic situation is exactly the same as with a "hard-wired" system, except from the fact that the drive may have been a different one at the time of an earlier power cycle.
Now you may ask: Where does the electronics gets its power to interprete button events and energize some relay when the PC is not powered-up at this time? Extra power supply? Batteries being recharged at runtime?
Even more simple! When an ATX power supply is turned "OFF", all the regular power rails are in fact switched off, except from a 5 volts of standby voltage. This 5 volts will remain available as long as the PSU is still being connected to a live mains.
The 5VSB will usually feed some circuits that may be utilized to "wake-up" the system from standby state. These are namely the circuit for the power button, but also certain timers, keyboards, network cards, and possibly some other stuff.
The 5VSB is often generated by a separate converter in the power supply, so its efficiency should be acceptable. According to the ATX specifications, the 5VSB are resilient to at least 1 Amps.
So, the power supply of a small circuit add-on from 5VSB is no electric problem, but rather a mechanical challenge. Unfortunately the ATX standard does not provide us with a separate connector of 5VSB. Yet we can easily tap the voltage from the ATX mainboard connector. Alternatively the power could be tapped also from a PS/2 or internal USB port. (Refer to your mainboard's documentation!)
Microcontroller: A boot disk switch must be aware of the actual state of the PC system to safely prevent any unappropriate switching at runtime. A clear distinction between "Power" and "Standby" can be maid from the existence or non existence of regular board voltages. In the "standby" state, the bootswitch will have to count button events and then engage connection of the chosen hard disk device. However, if the regular voltages are present then the PC is already in "Power-On" state and no further switching operation is to be allowed. Button pushes may be passed-through to the mainboard, so we can make use of ACPI functionality (shutdown or energy saving mode by power button).
It occurs, that this basic functionality could have been implemented with some good old 4xxx or 74xx logic gates as well. Yet considering the "exceptional conditions" (real coldstarts, voltage drops or instability), it would have led to pretty much additional efforts in discrete logic.
On the other hand, we can do all this (and much more) with a small microcontroller of today. I have chosen the ATtiny2313 for this application because of the very good long-term performance experience in other projects (e.g. LED Clock, CodeLock). As with most AVRs, the ATtiny2313 already has built-in features to ensure clean start and operating characteristics.
Switching Relays: Connecting the desired HDD to the board power is done by regular (mono-stable) relays in this concept. Relays are energized before the board voltage rises up. By using relays, we evade from nonlinearity and voltage drop like with semiconductor-based switching methods. The contact set of a good relay behaves just like a good connector or a good mechanical switch.
With the proposed relay type (contact capacity: 8A), the hard switching relays could handle several amps of initial current to even handle a massive 3.5 inch HDD.
Switching relays of that kind are hardly to find with coil voltages of about 5V. Using a type 6-V-relay in a 5 volts appliance is not recommended. Considering additional voltage drop across the switching transistor and admissible undervoltage on the 5-V-rail, the actual voltage to energize the relay may indeed fall slightly below the specified minimum. This could rise critical/unsafe conditions and should be avoided .
We can avoid this by using 12-V-relays. In a switched-on PC, the relay may be permanently hold by the regular 12-V rail. Voltage tolerances are much higher compared to the 5- or 6-V-types. Incidentally we get clear separation between logic and control circuit by use of a 12 V relay. But now another question arises: Where the hell do we get 12 volts from to energize our relay, when there is only 5-V-standby available in a PC? See the next section!
Charge Pump: This special circuit, consisting of IC3 (MAX232), and some peripheral components, make use of the charge pump, inverter, internally generated switching frequency and both of the line-drivers to transform the supply voltage of approx. 5 V to a square-wave voltage of approx. +/-8V (@ 50 kHz). By the voltage doubler (C11, D2, D3) it will the electrolyte capacitor C12 (1000 µF/25V) within a few seconds up to a max. voltage of about +16V. This load is fairly sufficient to energize even bigger relay types with coil voltage of 12 volts.
The line drivers of the MAX232 are current-limited (short-circuit-proof). On one hand, this makes the circuit virtually "indestructable". However, it could not hold every relay for an unlimited time. After a few seconds the large relay type (Finder series 41) would drop-back at an unforeseen time because of insufficient holding current. It is better if the controller could deliberately initiate the shutdown after some well-defined holding time.
The bypass of 5VSB over D1 makes it happen! After the initial charge of the capacitor was used up, the bypass prevents further voltage drop below approx. 4.7 V minus 0.6 V (voltage drop across the switching transistor), so we are always dealing with a minimum voltage that will be sufficient holding voltage for this relay type.
It is now up to the BootSwitch firmware to fully control relays activation time. If the regular power does not appear, it will trip off the relay after approx. 5 seconds. That's a pretty big time window even for a manual start of the PC (by separate power button). By the way, the timeout provides a convenient functional testing.
D1 to D4 must be Schottky diodes to minimize voltage drop. We've chosen the quite robust SR160 (60V/1A). Especially D1 and D4 are basically oversized, but it won't hurt to have some safety margin at this point, because these diodes separate circuit from PC board voltages.
The charge pump approach has clear "environmental benefits" for the PC system. Other than step-up converters or those miniaturized inverter modules, no further RF interference is generated and in the load case, no current-peak spilling over to 5VSB, since the initial power to energize some relay will be delivered primarily by the charge capacitor. If the PC-PSU was sound, after some tenths of a second, the regular 12 V voltage takes over the entire coil current. Idle current of this MAX232 charge pump is only about some milliamps.
This circuit design has been successfully tested with several specimen of MAX232N (industrial/standard). If ever possible, we should try to pick some chip from original manufacturers (i.e. Maxim or TI). NOT SUITABLE IN THIS DESIGN: MAX232A OR MAX232CPE.
All electrolyte capacitors should be "105-deg"-types sein, that have better durability despite of hot operating conditions. As you can see on the Photo, we can also use unpolarized MKS film capacitors for C7-C11 (1µF/63V). These won't degrade within a realistic period of time.
Relay Drivers: The relay coils are energized by generously dimensioned NPN-switching transistors T1x (BC337-25). Resistor R8x (1k0) injects a base current of approx. 4 mA if the controller rises the respective PORTB to active HIGH. This is an appropriate overdrive factor for this transistor. The relay in the collector branch will respond quickly. For a short time, the coil current is about 50 mA (measured).
At this time, the board voltages are still down, so the "switched" HDD won't experience any current pulse.
Right after some 1/10 seconds, the PSU should come up with the regular 5 - and 12-V voltages for drive supply. Also the already energized relay is now fed by the 12V and coil current adjusts to around 40mA. Now T1x D5x and R9x provide a permanent base current from the 5-V-rail that is now independent from the microcontroller's state. The relay is safely "latched", since it cannot drop back as long as the regular voltages are sufficently stable. Only a complete shutdown (power-off) of the system will drop the relay.
All current values have been dimensioned with generous safety margin. See datasheet to the BC337.
Button-Input: We may connect any simple pushbutton with normally-open contacs to the terminals X2 "BTN-IN" of the BootSwitch PCB. This button is the sole input device to choose a boot drive by "counting code". After the designated HDD has been connected to the PSU rails (which are yet dead), we would have about 5 seconds of time to manually restart the PC by pressing the regular "Power" Button in this "manual" setup. Otherwise, the relay will drop after this period of time.
Why bother with TWO buttons?! We could simply make the existing Power-Button the input device for the BootSwitch! Simply pull its connector from the mainboard and plug it to X2-BTN-IN. (Power button is often identified by its black-white cable and a connector in 2.5-mm grid is sometimes labelled "PWR".) Now, who's gonna power-up the system via mainboard? This is enabled by the...
Button-Output: After it has energized one HDD relay, the boot switch will provide a compatible Power-On-Signal for the PC mainboard at X3 "BTN-OUT". We may directly connect this output by means of any suitable two-wire cable with the now free connector on the mainboard. The optocoupler IC2 (PC817) delivers the potential free switching signal. This will circumvent possible issues with ground lead and unusual voltage levels. Of course, polarity must be observed, since the output of the coupler is a bipolar phototransistor.
Instead of testing for the right polarity, we should simply try it out. There's nothing that gets damaged with wrong polarity and the chance that we correctly connect the plug on good luck, is something around 50 percent... (According to Murphy the plug at the first attempt is connected basically upside-down. No reason to calm ;-)
For security reasons, the optocoupler IC2 is driven "low-active". The anode of the internal IR-LED is tied to the positive terminal of operating voltage, while its cathode leads to the port output PD5 by way of a current-limiting resistor. To activate the optocoupler, two conditions must be met: The portline PD5 must be configured as an output AND it must be pulled down to a logical Low. Resulting current for the transmit LED is about 15mA at R4 (220 Ohms). This is possible only within the respective subroutines of the programme. It can't happen "by accident".
For instance, when hardware reset was applied to an AVR via /RESET pin, the controller turn all port lines to input and switch off all internal pull-ups (= high impedance) at the instant. No current could be sourced or sinked by the port either against GND or Vcc. Even if the Pull-up on the respective portline was still activated for any reason, no significant LED-current will occur with this circuit. In addition, there are programming measures in place to safely avoid uncontrolled activation of the optocoupler in case of a firmware hookup etc.
Find datasheets for all important components here.
BootSwitch-Firmware has been written in genuine Assembler, again to achieve the necessary reliability and transparency. By the way, some of the most important features of this application would have been impossible in a so-called "high level" programming.
Reset Blocker: While the firmware generates relay- and power-on-signal, there should be no interrupt from any source. In particular, no hardware Reset should occur, because it would break the corresponding timing loop and the generated pulse could be too short and instable switching could be the result. Firmware needs to block further external reset pulses from the controller. This is possible by reconfiguring the port for button input (PD4) temporarily as an output and setting this port line to a permanent low level. Pressing the button will not produce a high-low transition then, and no negative pulses can be forwarded by C5 to the /RESET input of the controller. This way protected from external Resets, the controller is running its critical timing loops to perform the relay- and power-on timed sequence. After this is done, it will re-enable the push button input.
Internal Reset sources, like Watchdog-Reset, are not affected by this blockade, see next section.
Watchdog-Reset: Should any critical routine hang up for longer than 8 seconds, the watchdog-timer would be alert and issue an internal Reset to the controller that will re-initialize the firmware.
Other Reset Events: Firmware must only count the "real" button events. Power-On-Reset (coldstart of the controller) or Brown-Out-Reset (undervoltage) are reset events, that will set certain flags in the MCU status register, which allow to differentiate such events from external Resets that have been applied by button presses. This helps to prevent coldstarts and voltage fluctuations from triggering the counter.
X2 (BTN-IN): In "Standby-Mode" (PC Power OFF, only 5VSB existing) the firmware is counting how often the button has been pressed in short sequence. A pause of more than 1 second will be interpreted as the end of submission. The firmware will then block further resets (see above) and perform the required tasks.
Output of Power-On signal to X3 (BTN-OUT): After energizing the chosen relay, the firmware is to provide some Power-on-signal for the mainboard that will restart the PC system (PD5). Though technically sound PSU's should provide all regular voltages earlier than within 0.3 seconds after receiving a Power-on request, the firmware generates this power-on signal at least for 0.3 seconds of duration. If the voltages are not present yet (checked from the 5-V-rail), the firmware will continue to hold the signal (equal to holding the Power-button). Should the Power-On have failed after 5 seconds, firmware will stays Standby mode.
With successfull Power-On, the respective relay control at PORTB is being held on active High level for all the further PC runtime.
Passing button-pushes in Power-On-State: While PC is running, the firmware must not count further button pushes and not trigger any relay switching. Instead, button-pushes are being forwarded more or less directly to BTN-OUT. This enables to make use of the power-button ACPI functionality. The existence of regular 5V is being checked regularly to make sure that the firmware detects any transition between Power-On and Standby, even if the PC was shutdown by software.
Undervoltage detection: Under the conditions of a real coldstart (PSU been disconnected from the mains), the 5VSB may be instable at the beginning. The Brown-Out-Detector (BOD) in the AVR is to be activated and configuered to a threshold of 4.3V to make sure that the controller will start programme execution only after the supply voltage has reached a safe value above 4.3V (Note: Allowable tolerance on the 5-V-rails is +/- 5% according to ATX standard. The 5V and 5VSB should never drop below 4.75V under regular operaton.)
Programming of Flash & Fuses: BootSwitch Firmware is to be written via ISP to the flash memory of ATtiny2313 only. No EEPROM data and no specialist things to be observed. Fuses must be set according to the instructions that are given in the Download-Packet.
Circuit board: My layout was designed for unilateral PCB of about 100 x 75 mm (or 100 x 80 mm). The download
provides you with an artwork of 300 and 600 dpi of pixels resolution.
If we plan switch some very power consuming 3,5-inch HDDs, a reinforcement of the 5- and 12-volt paths may be considered. Alternatively, if available, one may choose base material with double copper laminate.
Do not forget to wrap the 2 bridges under Relay Re1-3 and Re1-4 ! They are vital for the microcontroller to detect sufficient Relay-charge and regular board power.
Relays: DIL-type low-profile 12V, 2 changeover, rated 8A (e.g. Finder 41.52.9-12V). For small drives, i.e. Notebook HDDs or SSDs, we may also use the 2-Amps-rated DIL relays (e.g. Finder 30.22.9-12V). My PCB is compatible to both relay pinouts.
Relay contacts: Since the load circuit is being closed even before the regular board voltages rise up, the relay contact's wearout is quite minimized. Yet, there is no indication that the contact set could overduly oxidize or corrode in this application, since from the moment the PSU was reenergized, there will be well enough minimum in the load circuit, i.e. the operating current for the switched HDD. Let's have a look at the datasheet to the finder series 41 relay: The minimum load was specified to about 300 mW. Any conventional hard disk drive will have multiple of this power consumption. Even SSDs need more power these days. (Intel Series 330 SSDs: 600 mW idle, 850 mW access). That is to say: Don't worry about her wetting current.
There is no detachable connectors intended for X5x the power terminals. Unlike commercial products, we should not resort to those small "floppy" connectors in a 2.54-mm-pitch, since they are in limited to a maximum current of about 1 Amps. This seems quite weakly dimensioned not only with "fat" 3.5 inch drives.
Instead, we should customize suitable cable harness with Molex or SATA-power connectors that will be directly soldered to the PCB of the BootSwitch. See photo of the sample board! No additional and possible loose contacts.
Refer to the Pin 1 indication on the standard connectors, the PCB (a small triangle) and the standard colours of the cables!
0,8 mm for most through-hole components; 1,0 mm for connectors X1-X3 and relays;
1,2 - 1,5 mm for the power connectors; 3,0 mm for M3-mountings
(1) At the 20- or 24-pin ATX
find 5VSB - violet - pin 9
and (any) GND - black - e.g. pin 7
(2) Strip both cables
(with cable stripper adjusted to approx.1 mm)
few centimeters above main connector.
Solder branch cable.
|(3) Isolate taps. Fix branch cable to the wiring harness.|
|DON'T FORGET: MODIFICATIONS IN YOUR HARDWERE
IS YOUR PREROGATIVE AT YOUR OWN RISK!
Connect stabilized 5V/500mA DC power supply to X 1 (replacement für 5VSB) and connect some push button to X2.
Leave X4 (input PSU) and X5x (HDD-outputs) open.
Testing point: the charge voltage of C12 must rise within a few seconds after 5 volts has been applied, to approximately 14...16V. (Probe between GND and cathode of D1, D2 or D4)
A given number of button-pushes in short succession should result in the respective relay to be energized after one second of latency.
Since the 5 - and 12-volt rails are not present and thus the regular voltages will not rise up after BootSwitch has applied the signal to power-on-mainboard, it will deactivate the relay after approx. 5 seconds.
We are still in "Standby" mode and have option to test any other relay by button-code.
The Power-on signal that is normally sent to the mainboard may be optically tested: Just remove the optocoupler IC2 and plug in a normal current LED into the socket (pin 1 = anode, pin 2 = cathode). This LED must light up with short delay after the chosen relay has clicked.
Before installing to a "productive system", I recommend more tests in craft PC with dummy hard drives or other drives.
Superiority of concept: The proposed BootSwitch connects the selected HDD to the power supply, while the PC system is in OFF state. In contrast, most commercial hard drive selectors only work with the regular Board voltages. These can switch at the earliest when the PC has already been powered ON and board voltages fully returned. The logic of such HDD-switches will have to wait some time until board voltages have stabilized to a sufficient level. This implies that the switching of relays or MOSFETs cannot take place "simultaneously" with Power-On, and there is always a certain delay of some hundredths (at best) to tenth of seconds to be expected. This results in a comparably high current peak at the moment the chosen HDD was connected to the PC's power supply. Well, modern drive electronics should have protective measures on board, but its a matter of fact that the better alternative would be to not impose such additional stress to HDDs.
One would expect, that the so-called "professional" hard drive switches at least provide some means of additional capacitors on the voltage rails, to smoothen rising times at the moment of switching. Unfortunately, datasheets and photographs of commercialized products gave NO indication that such protective measures were in place.
Of course, I have sent some enquiry to manufacturers and distributors regarding these and other technical questions. No reply!
Instead of anwering my questions, one distributor even tried stretching a sales pitch... So much for "transparancy" and "classy service"...!
Real cold starts: Fully disconnecting PC equipment from the power grid (switchable sockets) will save lots of energy and avoid risk of fire and damage by voltage surge. If the computer is then really OFF, there will of course be no standby voltage at all. No problem either for the BootSwitch. It does not depend on a permanent standby power supply. Circuit and programming can safely cope with real cold starts. Controller starts only after 5VSB have reasonably stabilized. After approx. 2 seconds the charge pump will provide enough energy for the next switching operation, and the firmware won't initiate switching with unsufficient energy. If the machine starts directly after mains power was reconnected, this may be caused by a wrong BIOS setting called "AC Power on failure". This feature should be disabled, as we want the PC to stay in Standby mode when the mains power returns.
Power consumption: With real coldstarts (power supply was primarily switched off the grid, all voltages were down), the circuit will draw a maximum current of only 60 mA for a short time to re-build charge voltage. This is far less than allowable from 5VSB specifications. Just seconds later the standby current of the circuit will stabilize down to 25 mA. In a switched state (PC is running and one relay is held), the current is only a a few milliamps more because of the portline that is activated by the micro. At the 12-volts-rail, we have further current consumption of about 40 mA per relay. That is to say: The whole hard drive switching appliance will consume about 0.13 Watts in PC-Standby and 0.6 Watts in the PC-Powered-on state.
Conflicting Power-on-events: Several "Wake-up events" can be configuered from the BIOS to start up a PC, e.g. via keyboard, network or other interface. Of course the BootSwitch logic will immediately detect, that the PC has been powered-up, but of course it will NOT switch on any harddisk, since it was too late for the maximum safety switching method. So, the BIOS will eventually find no bootable media and show up some terrifying message such as "non-bootable disk" or similar. Don't panic! Just shutdown the PC-power by the power-button and then start a new run.
UEFI BIOS: In theory, the BootSwitch should reasonably work with UEFI-BIOS and with other partitioning schemes, like "GPT", since it is not dependent on the logic organization of bootable media. On the other hand, there is no reason for private users to renounce MBR!
In practice, those who have engaged with the fantastic Secure Boot feature in UEFI, are virtually pinned down to the latest microsuck products and only a few Linux distributions by grace of the industry. Booting up from USB flash drives, CDs, or external HDDs to swiftly run some rescue system or backup tool, becomes a pain in the ass. Moving with an existing hard drive to a newer PC platform - no way.
Old-fashioned users, still running Brain 1.0, are increasingly annoyed. Quite justified. With that UEFI as an "independent small operating system" with the ability to establish network stacks on its own, to interfere with ongoing data transfers, to terrorize users with its support for TPM, DRM and all this crap, the user is no longer owner of his own machine! Seems, that UEFI is really nothing about "security" in favor of the user. It is just another shabby attempt to enslave users in the interest of monopolists, content-mafia, hardware manufacturers and certain agencies!
How long will the majority of 08/15 users endure this degrading, humiliating shit? How long are we going to tolerate the cynical propaganda and technical obstacles of self-entitled "industry leaders"?
For the time being, when buying PC hardware, it is strongly recommend to choose a classic BIOS (which is still available for many ITX and industrial mainboards) or with BIOS that can be run without compromise in compatibility mode. Another option might be to specifically search hardware platforms, that can be equipped with Coreboot.
Daily experience - Update 07/2015: Basically, circuit and firmware never gave rise to disappointment. I am using this boot switch in a productive system as well as on several experimentation setups for more than a year now. No unexpected startup-events, no suspicious S.M.A.R.T. values so far. Further it appears, that my initial concerns about "wetting current" were overestimated. Having monitored the voltage at power terminals of HDDs and SSDs from the instant when PC power returns several times, it is plain to see, that the contact piles won't deteriorate noticeably. No instability, noise or ripple was ever showing up.
Legal note: The "BootSwitch" Project (Hardware, Software and Firmware) is a free and open documented development of Julien Thomas. It has been released under the terms of Creative Commons - Attribution - Share-Alike. That is to say: You are free to use, modify and even commercialize this project, but please respect the terms and conditions of the CC licensing deed.
Top | Index