Bruce's Blog Just another in the neverending world of blogs


New Hampshire, Take 2

This last weekend Heather and I took another trip up to the Bretton Woods area of New Hampshire.  Despite a very rainy Saturday and a 24 hour power outage we managed to have a great time.  We stayed at the Mount Washington Resort, and they have a generator that powers almost everything except the actual guest rooms, so when you weren't in your room it seemed like there was no power failure.

This time around we took the cog railway up Mt. Washington, unfortunately when there was 3 inches of ice at the summit, along with light rain and winds of 30-50 MPH.  So we just stayed in the train car at the summit.  But we still had fun.  We also did the Bretton Woods canopy tour again, and finished up the weekend with a stop at Lake Winnipesaukee and a hike up Mount Major.

Pictures from the trip are here, and videos from the canopy tour have been uploaded to Youtube.  Here are a couple of them:


DIY DMX Dowser

A few months ago I was working on a show where I needed the ability to dowse a video projector.  The problem with using video projectors in theater is that even when projecting a solid black image the projector is projecting light, so you can still see a big dark square when in a blackout.  To work around this you use a dowser, which is essentially just a piece of black plastic that drops in front of the projectors lens when not in use.  Companies like City Theatrical sell DMX dowsers that do precisely this.  They are just a box that you attach to your projector that drops a plastic shield in front of the lens upon the appropriate DMX command. The problem with these dowsers is that they are EXPENSIVE!  The City Theatrical dowser will set you back approx. $600, which is rather steep for what it does.  If you hunt around you can find other DMX projector dowsers for sale, but they're all over $200.

I had a servo from a radio controlled airplane lying around unused and with a little bit of hunting I came across a company that sells a DMX to servo controller.  This lets you control up to 8 servos via 8 DMX channels, so it gives you a lot more flexibility than the commercial solutions.  With a little bit of work, if you're into tinkering, you can build your own custom DMX dowser with more features than the $600 City Theatrical one.  I initially only needed a single dowser so I hacked together something quick using this DMX/servo controller and the spare servo, but at a recent show I needed to be able to dowse two projectors located 20 feet apart, so I decided to make more of a project out of my dowser.  Here's what I did:

First, you'll need the DMX/servo controller board and one or more servos (if you don't already have them).  The DMX/servo controller operates at 12 volts, but servos typically run at 4.8 volts, so you need a way to address this difference.  The answer is a relatively simple adjustable DC power supply.  These are the guts of what I used for my dowser, just three components:

Item Cost
DMX/servo controller board from Northlight Systems $49
Hi-Tec HS-422 servo from ServoCity $12.50
Positive Adjustable Power Supply available many places $20

So for three components that cost approximately $82 you can build your own dowser rather than spend $200-$600 for a commercial one.  Note that the power supply is a kit that you'll need to solder together yourself.  If you hunt around a little you can find for sale for around $5 less, but most websites I found are selling it for around $20.  I actually purchased mine at a local DIY/hobby shop in MA called "You-Do-It" Electronics.  Of course you'll probably also want to buy a case to put everything into and some other hardware components, but your total cost will likely still be in the neighborhood of $100.

When I built my dowser Northlight Systems only offered one DMX/servo controller with the DMX addressing switches mounted directly on the board.  I bit the bullet and used this, deciding to set it to the address 505 so that it would use the 8 channels 505-512.  I figured this was the safest range to use as it's less likely to be used except in really large venues or where lots of other DMX devices are used.  Of course I can always open it up and change the addresses if I need to.  But you now have the choice to buy a controller with the address switches mounted on the circuit board or on an external board that you can mount separately.  It's entirely up to you.

Depending on how fancy you want to get you'll likely want to purchase a few more things like a plastic case in which to mount everything, XLR connectors for the DMX connections, etc.  I'll leave all of that up to you to decide how you want to do it.  At the very least I would suggest you purchase a coupler to connect your servo to a shaft, a matching shaft, and a clamping collar.  The collar gives you an easy way to attach a dowser or other items to the shaft.

I decided to splurge when I redesigned my dowser.  I put everything in one case to make it easy to use, but I also built two remote servos that I could easily add to it if necessary.  To support the remote servos I added two XLR connectors to the dowser that let me plug in the other servos.  Each remote servo is just mounted in a smaller box with a long cable connecting to an XLR cable.  The controller has no problem controlling servos 10 feet away or more.

Here's what my device looks like:


The 12 volt input feeds to both the variable power supply and directly to the 12v into the DMX/servo controller.  The variable power supply is tuned according to its instructions to provide the 4.8 volts needed for the servo power inputs on the DMX/servo controller.  Everything should be very straightforward.

Once you've put all the components together just take a piece of cardboard or heavy plastic and cut an appropriately sized dowser out of it.  I bought a black plastic report binder from a local office supply store which works quite well.  Mount the device where you need it and measure the distance from the servo shaft to the farthest edge of the projectors lens.  Add a couple inches to make sure it's not too small.  To mount the dowser to the servo shaft you can make use of the clamping collar and an ordinary paper clip.  Just unbend the paper clip into a U shape then pass the U through the tightening nut of the clamping collar.  Then bend the ends of the paperclip so that the entire thing is flush with the edge of the clamping collar.  Use some gaff tape to tape the paperclip to the dowser and you're all set.  Here's a photo showing how to do this:


That's all there is to it. A fully functional DMX dowser for less than the cost of a commercially available one.  And you can easily make use of other servo devices, multiple servos, etc. with his home-brew version.  Before I built my dowser I worked on a show where I had to have rose petals flutter down onto the stage from overhead.  If I had my dowser for that effect I would have just taped a small piece of cardboard horizontally to the servo shaft and put the petals on top of it.  At the appropriate time just turn the servo and the petals would have dropped onto stage on cue.

A couple things to keep in mind if/when you're building one of these:

  • Use a 12 volt power supply since that's what the controller board requires.  If you use servos that require 4.8 volts or some other voltage then use the variable power supply to convert the 12 volts to whatever you need.  Make sure to measure the output of the power supply and adjust it as necessary before hooking it up to the controller board.
  • The servo shaft couplers are rather large.  If you mount your servo in a case like I did then make sure the servo can turn through its entire range of motion without the shaft coupler hitting anything.  You may need to turn the servo all the way in one direction to figure out the appropriate positioning of the coupler, then turn the servo all the way in the other direction to make sure the coupler swings freely.
  • Servo's don't have a ton of torque so make sure the hole that the servo shaft passes through is large enough so as to not introduce a lot of friction.  Also be sure the servo is lined up properly so the shaft passes through the hole without rubbing against the sides.

If you'd like any more details on this or have any specific questions feel free to post a comment or e-mail me directly (click on "About" at the top).


Remotely controlling lights, etc. from a smartphone

I've been thinking for a while how nice it'd be to be able to remotely turn my front walk light on when it's dark out and nobody is home. I'd been considering buying a home automation kit that integrates with a Mac or PC but figured there must be an easier (and cheaper) way of doing it. Then it dawned on me that since I already have a linux server running at home, and have some X10 modules and a serial interface that I've got everything I need, so here's what I did. First, what you need:

  • A linux system running Apache or another web server that supports PHP.
  • The x10 Firecracker kit.  You'll need both the Firecracker module and the x10 transceiver.
  • One or more x10 modules to control remotely.
  • The Bottlerocket software (I used version 0.04c) that communicates with the Firecracker
  • My x10 PHP code.  Use it as-is or use it as a template for writing your own.  It's GPL'd, so have at it.

I'll leave it up to you to set up your web server & PHP support.  There are plenty of resources for it on the web.

Download and install the Bottlerocket software.  Plug the Firecracker module into your PC's serial port, plug the transceiver into a wall outlet and set it's house code to whatever you want.  Use the Bottlerocket software to ensure everything is working.  It's easiest to just try this as root:

# /usr/local/bin/br A7 ON
# /usr/local/bin/br A7 OFF

The above commands should toggle the device with address A7 on and off.  If you encounter any problems then make sure the Home code on both the transceiver and any other x10 modules are all set the same and make sure you're using the right unit number.  Also make sure the serial port is enabled and nothing else is currently using it.

Make sure the serial device can be written to by your web server.  For some reason on my CentOS system the serial console is set to be writable only by the root owner and uucp group.  Apache is running using the apache user, so all I did was add the apache user to the uucp group then restarted Apache.  If you want to test this then simply su to the apache user or use sudo to invoke /usr/local/bin/br as apache and make sure it can also control your x10 device(s).

Install the two files from x10php.tar.gz somewhere on your web server.  The x10.php file you shouldn't need to modify (unless you really want to).  Edit x10-config.php and make sure the $cmd variable points to the br binary, and also include any optional parameters you might want to include.  Modify the $x10_device and $x10_group arrays to suit your needs.  Their format should be very self-explanatory.

Test the PHP scripts by pointing a web browser to the appropriate URL.  You should see a screen that looks something like this:


Click on the links to test the devices.  If you have PHP properly installed and set up the Bottlerocket, Firecracker, and permissions on your serial port properly then the devices should respond as expected.

Now for the really neat part...  If you have wifi and a wifi-enabled smart-phone or PDA that you carry with you regularly then you can bookmark URL's that let you quickly & easily turn devices on and off.  For example, using the default settings in the x10-config.php file you would turn on the Front Walk lights via the following URL:


Just add that as a bookmarked link and call it something like "Turn on Front Walk lights" and if you're outside and need the lights just pull out your smartphone and click on the link.   As long as you're close enough to your wifi it should work without any problems.

Of course if you have a cable modem, FiOS, etc. you should be able to set things up to do this from anywhere, so you can turn on your lights as you're heading home from the store or work or whatever.  If you're going to do this then I'd suggest a few things:

  • Set up basic authentication in your web browser to require a userid & password to access x10.php, otherwise anybody who figures out the URL could turn your devices on/off.
  • Use SSL in conjunction with the above to ensure the userid & password is encrypted when it's sent.
  • Make sure your linux box is firewalled (but open port 80 or 443 or whatever you decide to use) and properly patched.

If you decide to do the above then here's another simple but effective trick.  First, use a service like DynDNS to set up an easy to remember DNS name for your server.  Once you've done that, then modify the URL's in your smartphone to include your userid & password so you don't have to always remember them.  (Many browsers in smartphones don't remember passwords for you).  To do this just update the URL on your smartphone to be in this format:


Simple, cheap, and effective remote control of your lights & other devices from your smartphone.


DMX-512 Resources

General DMX-512 resources

Doug Fleenor's DMX-512 Primer
Doug Fleenor's DMX-512 Basics (wiring information)
DMX-512 mini FAQ
About DMX-512
WikiPedia entry on DMX-512

Lighting related publications

Pro Lights and Staging News (free subscription)
Lighting Dimensions
Professional Lighting and Production (Canadian)

Product and Manufacturer links

Rosco and their I-Cue mirror
Wybron and their Forerunner scrollers
City Theatrical
Chauvet Lighting
High End Systems
Elation Lighting
GAM (Great American Market)
American DJ - buys and sells all types of lighting equipment

Other useful DMX related web pages

Port Lighting Systems (rents lights in Amesbury, MA)
Advanced Lighting & Production Services (rents lights in Randolph, MA)
BN Productions (rents lights in Woburn, MA)
Build Your Own DMX Terminator/Tester


NavRules 3.0

NavRules has been my pet project since around 1990.  It's shareware for learning the navigation rules all boaters need to know.  (I grew up around boats and was in the US Coast Guard Auxiliary for 10 years)  After a long hiatus I finally released version 3.0 of the program, and as before a free version is available to members of the US Coast Guard and similar organizations around the world.