Steve Bolt came up with an interesting 4-transistor H-bridge variant; this is cheap and easy to build, and best of all is "smokeless" (i.e., no combination of inputs can cause the bridge to self-destruct). Here's Steve's diagram:
You should bear the following things in mind with this design:
- 2N2905 and 2N2219 transistors are no longer being produced; I use 2N2907 and 2N2222 transistors in this circuit, with good results.
- You absolutely must use one bias resistor per transistor; I attempted to simplify the circuit by connecting the respective transistors' bases (so each pair of transistors could "share" a resistor) -- this made for a circuit that was simpler, much easier to freeform, and completely non-functional.
- This efficiency of this design is driven by 2 things -- the efficiency of the motor it's driving, and the size of the bias resistors. Just to make life interesting, these things are interrelated (more on this later).
- This bridge is "smokeable" -- but only if power is supplied to the bridge while the control inputs are allowed to "float" (easy thing to avoid in yourcircuit design).
- When I first started tinkering with this circuit, I made the assumption that the inverters pictured in Steve's diagram were not intrinsic parts of the bridge, but instead were examples of the outputs coming from the "driving" circuit. This is very, very wrong. If you don't include inverters (or, at least buffers) on the control inputs, you now have to take great care to avoid having the bridge influence the circuit that's driving it.
Since your circuit may or may not (and most likely, won't) have spare buffers / inverters available for use on the H-bridge control inputs, I've done some experimenting on the bridge circuit sans inverters -- let's call this variant "Bolt light."
If you want to build a "freeform" version of the "Bolt light" circuit, here's a very compact layout (note that this diagram shows the transistors in "dead-bug" fashion, i.e., with the chips "down," and their legs pointing up towards you).
I've found it's easiest to solder the outside (motor lead) connections first, then the inside (Vcc / ground) connections, then the middle (resistor) connections. Note that two resistor leads "bridge over" the top of the transistor packages (these hidden leads are shown as dashed lines).
http://library.solarbotics.net/circuits/driver_4varHbridge.html