One of the unpleasant surprises you come across when first learning how to operate a RepRap is that any object longer than an inch or so in any dimension printed in ABS will warp quite a lot as the lower layers cool. The workaround, other than switching to another plastic, is to print onto a heated build platform. There a few varieties available to buy, but I decided to build one out of parts I could get at Halted. I found a ~2mm thick sheet of aluminum in roughly the correct dimensions with holes predrilled for $2, and a few 50 watt resistors for about $2 each.
My primary design goal was to avoid putting more load on my (fused) RAMPS board and mini-ATX power supply by directly powering the bed off of AC. As a purely resistive load, this is also by far the most efficient way of doing it. I connected the resistors in series with 16 gauge high temperature teflon insulated wire and JB-Welded them to the sheet. I also used JB-Weld to mount a thermistor near the middle resistor to get temperature readings. I then mounted the board on springs above the normal build platform and covered the surface with Kapton tape. The relay is being switched by one of the MOSFETs on the RAMPS board. A red LED indicates that the relay is powered, and there is a flyback diode across the relay coil. The Arduino Mega was resetting randomly partway through prints until I added a decoupling capacitor in parallel to the coil as well.
Overall, it works well. With roughly 80 watts of power, it heats up to 110C in around 5 minutes, which is sufficient for ABS. I managed to print a 150mm long object with no warping. I’ve also been using it with PLA at 60C. Right now it poses a mild electrocution hazard sitting on my desk, but I plan on printing out an enclosure for it as soon as I figure out how to use OpenSCAD.