Some ages ago I had bought a wireless doorbell on sale somewhere. It operates on a license-free frequency of 433.92 MHz. It was cheap, and junk like that has a tendency to be useful, so I bought it. Originally I thought I'd use it as a radio beacon on a model rocket.
The remote doorbell
The range it achieved was quite impressive. The sound it made was quite annoying. ("Diiing-dooong", pause, "diiing-dooong", pause, "diiing-dooong".) Both the transmitter and receiver units had a 4-digit code printed on a sticker, implying that a unique (well, semi-unique) code is used to avoid interfering with your neighbor's similar unit. Listening in on a scanner radio, the doorbell transmitter apparently transmits its code continuously as long as the button is pressed.
The doorbell never did end up onboard a rocket, but after letting it gather dust for a few years, I thought of another way to put it to use: as a remote for my camera.
The innards of the receiver
Off came the covers. The circuit board was obviously a general-purpose one by the manufacturer, for use in a variety of equipment. It had several places for components which weren't populated, plus a few slots for daughter-boards to be added according to use. The most prominent IC on the board, I guessed, must be the decoder IC, as it had obviously hand-soldered (or just otherwise horrible) solder bridges on the reverse side, which probably set the code for this specific unit:
Solder bridges on the backside
With an oscilloscope I quickly located a promising candidate for an output pin. Its signal was somewhat messy: it pulsed briefly when I first pressed the transmitter button, but did not remain high if I held the button. It did, however, go high during the pauses in the ding-dong. During the actual noise, it would flicker high and low every now and then at random. I would have preferred, of course, it to remain high as long as I pressed the button, in order to shoot bulb exposures or series of pictures.
A cursory study of the circuit layout showed that of the three AA-cells in the battery compartment, only two were used by the receiver circuitry, and the third was wired directly to the speaker only. I confirmed this by removing the third battery. The speaker went silent, but the oscilloscope still showed the receiver to work—and now the output did remain high as long as I pressed the transmitter button! Huh??? This worked only with the transmitter close to the receiver—it seems that while the speaker interfered severely with reception, the speaker driver circuit still caused some interference.
Following the circuit board traces going to the speaker, I found that the ding-dong sound was probably not produced by the same decoder IC, but by the tiny little daughter-board soldered to the main board. It contained a single transistor and a tiny little board-mounted IC covered in a blob of epoxy or something. The signal from the decoder IC was passed to it via a small jumper wire.
A daughter-board sticking up from the main board
So I cut the wire, and the interference was gone. Now I could control the receiver output exactly how I wanted to, at full range! Perfect!
Subsequently I installed a connector on the receiver's box and connected three field-effect transistors to the decoder's output. (I used the type BS170, though any enhancement-mode n-channel MOSFET should work, as long as its threshold voltage is below 3 volts and the channel resistance is high enough with the gate grounded.) Two of the FETs drive the focus and shutter pins on the camera remote connector as described here, and the third one drives the LED. (Maybe the LED could be driven directly by the decoder IC, but I could find no datasheets on it, so I used a FET to ensure I don't exceed its current sourcing capability.)
The mini-XLR connector and the camera cable
I had to cut up an existing third-party remote cord to obtain the fscking proprietary N3-connector that Canon has adopted on the EOS-3, the EOS-1 series, the 5D etc, just to annoy us. I used mini-XLR connectors on the radio receiver, and to splice the remote cord. They're small and light, available as cable-mounted and panel-mounted versions, and they lock in place.
As an afterthought, I substituted a two-colour LED for the original red one. Here's the circuit that drives the green half of the three-pin LED when the unit is on, and switches to red when the unit receives a signal and fires the camera:
When the input goes to ground, the LED switches from green to red
The range of the modified unit, like the original one, is more than 50 meters, even with a wall in between. Since the doorbell only has one channel, this remote activates the focus signal and shutter release signal at the same time. If the camera is on auto-focus, it will not fire until (and unless) it achieves focus. On manual focus, the camera fires instantly. Whenever I've used any remote cord or self-timer, I've usually locked the focus by switching to MF, so I don't see much need for a two-channel system with separate focus and fire. (There are, however, plenty of multi-channel devices available, just waiting for modification. How about hacking a set of remote AC power switches to control several remote cameras from one wireless controller...?)
The finished remote-control
Later on I added another small modification to the unit: The Canon PowerShot series of toy cameras, with the CHDK software, can be triggered by applying a voltage to their USB port. Add one PNP transistor, one resistor and a USB connector, and the remote can trigger a PowerShot as well.
Of course, one important aspect of these modifications is that I never messed with the transmitter. It is still in its original condition, and therefore still conforms to whatever rules apply to that kind of license-free radio equipment (assuming this el-cheapo device conformed to them in the first place...). And of course, if you decide to attempt a similar modification, you do so completely at your own risk. It is entirely possible to damage your camera in the process, or at least break the doorbell, or you may end up causing massive RF interference which gets you thrown in jail. Whatever you do, have fun, but don't blame me.