RF Library

RF 433MHz Library's development was based on the knowledge form this paper:


Also, this library was written to be compatible with any microcontroller available in Energia. This is a cool advantage, because you may cycle among (theoretically) every microcontroller supported by Energia. Of course, as it's done via bit-banging, max speed is not as good as a hardware-based solution. But, well, the latter is and advantage too, because the lower the data bandwidth, the higher the SNR is!

Data codification was done via 4B6B in order to keep DC balance, and simultaneously reduce BER.

Also, as you may use different addresses on each device, you may talk to many nodes with no interference within the same RF range. And what about range? Well, I've done some tests, and was able to transmit data successfully up to a distance of almost 1000 ft. Of course, everything was done with a pair of "AA" batteries (both Tx and Rx).

What about the trigger? 

The HS-35EXR has a mini-USB female connector, but the "reserved" pin is used to "sense" some basic instructions. As I realized while experimenting with the camera, that pin seems to have an internal 34k pull-up resistor. It looks like if it had a 2-bit ADC, detecting different levels between 0 and 5 volts. If voltage goes below 1.2 V, the camera takes a shot, but if the voltage on that pin remains between 1.2V and 2.4V, an "autofocus" instruction is executed.

How is it possible to achieve those analog voltages with a microcontroller? Well, as there is a default 34k pull-up internal resistor in the camera, I just tied a 82k and a 18k resistor to a 2N7000 (each) in an open-drain configuration, so they would perform the required actions when activated from the microcontroller.

Notice that the shutter/autofocus functions may also be triggered via those two large push-buttons shown in the picture, just in case your batteries go out of power.

Future work

I''d like to add a user interface on the Tx side in order to go further and convert the remote trigger into a remote intervalometer, so I'd be able to take some nice long-exposure timelapses.

Also, if you carefully check the receiver's picture, you may notice there is an ASK IR TV receiver: this is how I plan to implement the intervalometer, using a cheap IR remote control (those ones you may easily find on eBay).

As this was the very first prototype, it was done with most of the components I had at home. Next revision is planned to be done with SMD parts. Well, and an ergonomic 3D-printed case for the transmitter wouldn't be a bad idea, though.