• Description

    oaox10/10/2021 at 12:35 0 comments

    Remotes communicate with their devices using either infrared light or radio. In both cases controllers like Arduino or Raspberry can connect directly to a light emitting module or a radio transmitter, and can thus directly operate the device. At least if the communication protocol is known and not encrypted.

    In my case the remote protocol is well known and I had a suitable radio module available. But  I found it more attractive to hack the remote while keeping the radio  and protocol untouched.   

    In general, remotes have several buttons which short corresponding switch pads. The pad states (open or closed)  are cyclically read by the micro controller of the remote, either directly or in a multiplexed fashion. 

    This interface works by shorting the button pads. In this way the principle will operate for both direct and multiplexed switch reads.

    I use CMOS analogue switches of the 4066 variant, four switches are available in each package. I use only two for my application. 

    The Arduino or Raspberry controller logic digital out signals are either 3.3 or 5 V. The 4066 VCC connects to  the corresponding controller's VCC (3.3 or  5 V).  The 4066 switches are bidirectional and handles any analogue signal within the GND-VCC range. 

    I kept the button cell battery in the remote, the switch pad signal range is therefore from ground to about 3 V. So this setup will operate fine with a 3.3 V power supply. As I still use the remote battery to drive the radio there will not be any impact related to the radio certification and such. 

    I soldered wires pairs from the 4066 switches to the relevant remote button pads. The pads are of not-solderable carbon print. Therefore I soldered wires to the IC pins and PCB copper where I scraped off the solder mask. In this way the button pads are not touched and the remote is still fully functional for manual use.

    The Arduino/Raspberri program use on output bit to turn the power outlet on and one to turn it off. The program sets the output bit high for a few hundred milliseconds and then returns the bit to the low state.