THE CAMERA
The camera is a Sony Model FCBLX470 camera module generously donated to the project by Leeds Suhaka, a former coworker. This is a great camera module intended, I believe, for security work. It has many features that make it ideal for an outdoor webcam. It has zero Lux capability along with integrated IR illumination LED's that make it almost able to see in the dark.
It has a serial interface making software and web control of its features doable. The camera, being a module, came without a housing. I fabricated a housing out of a Radio Shack hobby enclosure of suitable size. I made every attempt to make this housing as waterproof as I could but after actually putting it out there, I just didn't feel secure enough to leave it as is. To make me feel better, I cut out a section of a plastic 2 liter Pepsi bottle to cover the housing and act as an umbrella. It shields the connectors on the back of the housing from falling rain as well. Windblown rain can probably still get to the connectors but so far all is well. The camera has been in constant operation outdoors for two winters now and still works just fine.

THE PAN/TILT PEDESTAL

The pedestal is home-brew. It makes use of unipolar stepper motors, one for pan and one for tilt. I sacrificed a functional Lexmark inkjet printer for one of the stepper motors, some plastic gearsets and electronic parts. There was a useable 24 volt power supply as well but I managed to kill it in testing by feeding it into an inadvertent short. The second stepper motor in the printer I couldn't use because it was a bipolar. I found this little shop in Corvallis that salvages computer and electronics parts for hobbyists. I rummaged through the box of stepper motors I was shown and came up with an 8 wire motor of good size. After getting it home, I measured the coil resistance to establish which wires are which, and discovered that the coil resistance, at 18 ohms was substantially lower than the printer derived motor at 80 ohms. Used it anyway. Seems there is a lot of leeway in the driver circuit after all. Nothing seemed to overheat when testing.

Update (3/12/2006): I have since replaced this low impedance stepper with one with a better match since the first one eventually killed the darlington IC. A picture of the essentially completed pedestal can be seen here.

I used stuff I had lying around to construct the pedestal. Parts from an old CATV weather station anemometer and wind direction became the rotating assembly. A wormgear drive from an oscillating fan became the tilt assembly. I have the pan motor driving a gearset from the printer that then drives a 10:1 gearbox from an ancient millwright's tachometer. Although I didn't think to establish the overall reduction, it should be in the range of 60-100:1. For the pan motor, the gear reduction ratio fits nicely within the reasonable range of stepper speed pulses that the motor likes. The tilt assembly ratio turned out to be a bit too quick. The range of stepper pulse speeds for that motor seems to be narrower in order to produce enough torque to drag the weight of the camera and cables around. Just to get it to work at all, I had to add a weighted cantilever to help offset the weight of the camera when pointed other than level.

Since I had used an electrical light fixture box for the pedestal base, I wanted to build the control circuit board small enough to fit within the base. I used the smallest Radio Shack perfboard circuit board I could find. It became quite a challenge finding a place for components toward the end. I used control IC's from FerretTronics: an FT649 serial router chip, two FT609 stepper chips and two L6221AS darlington driver chips. I decided to put an onboard 5 volt supply rather than bringing it in separately . For hookup wire for point to point connections I stripped telephone CAT3 for the colored twisted pair wire. I used green for ground, red for 12 volts, yellow for 5 volts and black for signal routing. Wouldn't go that route again because the jacketing on this wire melts too easily and had to watch out that I didn't have it melt through to nearby wires and short. I used screw terminals around the perimeter of the board for all the external connections. There are a lot of connections to be made. A top view of the completed board can be seen here, and a bottom view here.

I downloaded a program called CircuitMaker to use to create the schematic that can be viewed here. The only problem I had with the program, the free student version, is that there is a 50 component limit and when I went to add the final two items, the pulldown resistors on the 609's, it wouldn't let me do it. So I just exported the schematic to graphic format, loaded it into PhotoDeluxe, and copied an existing resistor and placed it where it needed to be.

THE CONTROL SOFTWARE

The user interface to control the home-brew pedestal and the Sony camera is a combination of Flash and a program called BDLCAM. I created the user interface using a Flash editor. It utilizes "GetURL" commands to send the hex data to BDLCAM. BDLCAM then sends the commands out thorough the serial port to the controller board mounted in the camera base. The power supply for the controller board is a PC unit located remotely. Serial commands and the 12 Volt power share a single CAT5 cable for the controller board. A separate serial cable(CAT5) is used to connect to the Sony camera on a second serial port. I was hoping to use an extra pin on the controller board serial router chip to send the Sony serial data. A quick test of that failed. I expected that it might be the case since the Sony expects to see 9600 baud serial data and the FerretTronics chips only work at 2400 baud.

I have not yet an acceptable method for handling what happens when the pedestal comes up against the limit switches. When I first started building the controller board, I saw in the material provided by FerretTronics that the darlington chip has an enable pin that would shut the chip down when pulled low. The FT609's have a "home" pin that can be software enabled or disabled as well as a couple of things you can have it do if enabled and it gets pulled high. Reading that, I decided while building the board, to install 3 pin headers to give the choice of jumpering to have the limit switch closures either pull the darlingtons low, or the FT609's high. I quickly realized that I wouldn't want to have a limit switch closure shut down the darlington chip since that would mean I would have to go out to the pedestal and hand crank it away from the switch before that motor would work again.

Since it's established that I will have to use the "home" pin feature, I set about trying various scenarios. Send hex C8 and the home pin is enabled. Hit the limit switch and the motor stops. Great! Exactly what we want! But now what? If I don't send hex D6(home off) then there we are.....stuck! If I send "home off", then there was no point in ever turning it on in the first place since now the user can continue to grind the motor against the stop. Not good. Right now all I'm doing is having a macro in BDLCAM run. After 15 seconds have expired from any button push on the user interface, the home pin is turned on and a motor stop command is sent to both motors. The user can only grind against the stop for 15 seconds at a time. The main purpose for the macro is a safety valve for a runaway motor. If the motor stop command that is issued upon button release got lost or garbled, the motor would continue running in the chosen direction. This way it is assured that it will stop after 15 seconds.

I am going to experiment some more with some ideas I have on this problem. One thought is to enable the "home count on" feature in the FT609's and load a small number of counts, perhaps something like 20. The "home count on" feature of the FT609's has the chip send the loaded number of counts after the pin goes high and then stop. My thinking is that a small number of stepper pulses would allow the user to jog it back away from the switch so that it opens and sends the home pin low. That would allow them to continue in the opposite direction. If they insist on trying to push against the stop, only a few pulses get sent at a time. Maybe this would offer some protection from grinding against the limit switch.