Original post:
================================================================================
Allrighty,
This has been a long time coming, and I'm proud to finally release the completed, fully functional DIY Automatic Water Changer. It's been through many revisions and testing of various designs, and finally have found what I believe to be an optimal solution.
The design basis I set out for the project was to emulate a standard 10% water change, rather than the peristaltic "continuous change" systems. The reasons were based on efficiency, control, and space considerations. I have used three MJ1200's for each function of drain, fill, and ATO, but any other powerhead will work.
I don't want to bash the continuous change folks, but my reasoning for this design is as follows. A continous change system needs to change out more water to remove the same amount of nitrates from the water column. 10% water changes do not introduce enough system instability to warrant the added operating cost in both water and salt. In addition, they require both a drain and supply reservoir to be connected to the tank at all times, consuming valuable real estate. Also, depending on the pump used, if the supply reservoir empties, the drain may continue to empty the tank without replenishment. Lastly, such a system cannot be accelerated to perform larger than normal water changes if and when necessary to avoid crashes and livestock losses.
The other primary design considerations were inclusion of an ATO, cost, and ease of replication. I wanted this to be easily reproduced by others within the community. The design should also be robust enough to be adaptable to varying tank setups, though the demonstration will be on a tank with a sump.
The current version, V4.2.1, uses only four DPDT 12V relays, and the associated diodes for kickback suppression. I have also included a V 4.2.1 PCB design that can be milled/etched, and is compatible with a standard 0.1" perforated prototyping board. EAGLE files are included below for those wishing to mill a board, rather than use a perforated board.
Circuit:

Board, top view - each square corresponds to a hole/pad on a standard 0.1" perforated board. Green octagons are wire connections, green ovals are the relay pins.

Board, bottom view. Blue lines mark traces, for those unfamiliar with EAGLE schematics. Note this has been mirrored from the EAGLE file, so as to match exactly how it would "look" from the underside.

EAGLE files:
Click to view attachment
EAGLE can be downloaded as freeware from cadsoftusa.com
The board is designed to use a relay such as the sanyou DSY2Y-S-212L or any similar DPDT relay with a DIP 2C pin layout. The circuit, however, will work with any DPDT relay - but you'll have to redesign this board yourself to accomodate it.
I'll try to briefly explain the circuit.
Three float switches are located in the tank. One marks the normal water level, another marks the lowest water level during a 10% change, and the third is an emergency backup, located above the normal water line.
When the AWC is not active, the emergency float switch is closed, and there are no outputs. As evaporation occurs, the water level drops, the high level switch also closes. This activates the ATO pump to add water to the system from the ATO reservoir. This is not any different from a typical floatswitch ATO.
If the high level floatswitch fails, the emergency float switch will be opened by the rising water. This disables the ATO pump and triggers the audible alarm.
To perform a water change, the hose from the drain pump is fed into an empty bucket. A second bucket of freshly mixed saltwater and the refill pump, with a hose fed to the tank, completes the setup.
All that remains is to hold the start button for a few seconds. This activates the drain pump and disables the ATO pump. After enough water is pumped out of the aquarium for the high level switch to close, the Master Control Relay will latch, and the system will complete the cycle automatically. This is a safety feature, so that the start function cannot be inadvertently triggered.
When the bottom float switch closes, it will close and latch the Low Level Latch Relay. This disables the drain pump and activates the fill pump. As the water level rises, the high level switch will eventually open. This unlatches the MCR, which shuts down the fill pump and resets the system. The ATO is now re-enabled.
If the high level float switch fails during a water change, the emergency float switch will also disable the system, as well as trigger the audible alarm.
And there you have it. Clear as mud, I am sure. If you don't understand how relays operate, I'd recommend this as a primer.
Here's a few pics of the demo prototype I tossed together. You will have to forgive the physical crudeness, as this was merely a prototype. I will be incorporating the circuit into the electrical panel of my stand. Please also note that the circuit board is a V4.2, while the board layout above is V4.2.1. Electrically, they are identical, however.
Top:

Bottom:

For diode orientation - The stripe faces up:

The enclosure is a trio of surface-mount electrical boxes bolted together. Two duplex receptacles are each split on the hot side. One receptacle is always on, and powers the 12V AC adapter. The remaining three are controlled by the respective 120V outputs from the AWC circuit, and serve as connections for the unmodified powerheads. The float switches were just twisted together with the correct few wires - again, I would expect better for something other than a temporary demonstration.

There are separate toggle switches for 12V and 120V power to the circuit board, as well as three black momentary push buttons for manual bypass control of the powerheads. These are not shown on the circuit diagram, as they are not part of the board itself. They are entirely optional, and how to add them should be fairly obvious. The green momentary push button is the start button.
Video of the unit in operation can be viewed here
Enjoy!
