The smoker has a controller that spins up a fan to keep the temperature inside the smoker at the desired cook-point. The controller is an Arduino running the standard PID software. The hardest part for us was creating the charcoal basket. I taught myself to weld (poorly) and made the basket out of expanded steel.
There are other Instructables on making a drum smoker (I based some of my construction on this one) so I'll just post my pictures.


























































We think that it would be easier if we installed a blower instead of a fan. In our tests the fan can't create enough static pressure to draw air through a small opening but a blower should be able to do it. The fan works well enough so we haven't gotten around to replacing it (and we probably never will).
The fourth-from-last picture shows you how we start the smoker. We light ~8 pieces of medium-sized charcoal pieces in a chimney. Once they have started we dump them on top of the rest of the charcoal in the basket and drop it in the smoker. With the ball valve all the way open it takes about an hour for the smoker to come up to temperature and stay steady (the temperature will fluctuate 10-15 degrees while the PID figures out the correct settings). After about 30 minutes we close the valve to about half way.