304MHZ Remote Control (My First Post!!!)

So I've been stalking these forums for the better part of the year now (ever since I picked up my first Arduino) and I'd like to thank all of you awesome people for teaching me so much and allowing me to make so many great things.

The latest project I've been working on is the making my room "Smart" or automating anything and everything (Blinds, appliances, lights, fans, etc) and just as many people before me I have been stumped with regards to the ceiling mounted fan/light . Now I've seen the getto rigged servos to light switches and the relays people hooked up to the mains in their house and I'm not interested in either of those solutions for obvious reasons.

So I happened to find a generic Hampton Bay Light/Fan Control module in an old fan box and found my solution ... or so I thought. While looking up ways to clone the signals from the remote to a generic .99$ radio module I realized I should check the frequency that the remote actually operates at and then I found this ... after Googling the FCC ID on the back of the remote I found that webpage which claims the remote operates at 304mhz and I'm at a loss as to how to interface with it.

I have found a tutorial or 2 for opening the remotes and hooking up the buttons directly to the digital pins on the arduino but I would A. like to keep the remote fully intact and B. I'm not even sure if that would work.

Did you already try a 315Mhz receiver.
The cheap ones with the laquered tuning coil (not the crystal) are not that picky regarding frequency.
Once you know the code, by using the receiver and a library, try to use a 315Mhz transmitter.
304 and 315 are not that far apart. Your range might not be that great, but it's worth a try.
Did you already open the fan receiver. That most likely has a receiver with tuning coil...
I guess if it does not work, you might have to buy a second set for the remote.

Ok, so something like this should be able to capture the signal from the remote ... has anyone tried this with a similar project (fan maybe garage remote control?)?

Modifying the fan receiver is not something I think I should do as that's where the mains hook up to its internal relays so I'd like to avoid messing with anything inside that box.

If you have access to the Transmitter, its a lot easier to access the transmitted data there than from an external receiver, as those cheap receivers generate a lot of noise on their outputs, so figuring out where your data starts from the rest of the garbage can be difficult.

Conveniently, the schematic for the remote was posted in the supporting documents for the FCC certification application. I’ve attached it.

To determine the exact nature of the control signals, sample the output on U1, pin DOUT, using an oscilloscope or a laptop running Audacity. I can’t make out which pin number it is, but that pin is attached to R3, connected to the oscillator transistor base.

To make your own transmitter, you will need a 304 MHz oscillator.

That circuit looks like its got a SC2262 as the encoder chip, so the RCswitch Library will decode it.


And it's just a simple RC oscillator.
I think a 315Mhz receiver will work just fine.

This is the transmitter/signal encoder in the remote

So i should be able to run the RCswitch library with the 315mhz receiver I linked above to pick up the signal the remote sends similar to the way its done in this video?

@jremington If I were to pick up the signal from the remote itself A. would I be able to transmit that signal from the 315mhz transmitter... and how exactly would I go about acquiring the signal from the remote? How would I interface with it with a laptop?

Just install the RCSwitch library, connect the receiver to your Arduino +5volt, ground, and the data out to interrupt#0 (Digital pin 2 on the UNO).
Run the RCSwitch receive demo code that now is in your IDE examples.
The remote code for each button will appear on your serial monitor.
Once you know them, use the transmitter module and the send demo.

Alright guys ... thanks for all the help. I don't have any electronic stores with these components nearby so I have a huge order of parts coming through ebay in 2ish weeks ... so I'll update this thread if it all works out.

The encoder is a Holtek HT-12E. It is an old design. I don't think the RC-Switch library decodes this protocol, but others have done so. See http://forum.arduino.cc/index.php?topic=54788.0

Last time I looked, these chips were no longer being manufactured, but it appears that you can buy the encoder and decoder chips at Jameco, among others. Perhaps Holtek started making them again.

Here is an article about making a remote using an HT-12E encoder and a 300 MHz board, which might work with your 304 MHz system. http://www.profesaulosuna.com/data/files/TELECOMUNICACIONES/AM/CONTROL%20REMOTO%20AM/How%20to%20build%20a%20300MHz%20AM%20remote%20control.doc Google will show you lots of other DIY projects with those chips.

I'm affraid you're right.
I just tried a H12E (home made) remote I had here with the RCSwitch library, and it does not work.
Still plenty of those chips on ebay if you want to take the hardware road.

So after readin through the thread Jremington linked I don't believe there's any way to do this

(- YouTube)

As I understand it ...

Of course there is a way to do what you want, but there are a number of significant challenges to overcome with that particular fan controller. Maybe you can find another fan controller that is easier to hack.


Much like OP, I'm desperately trying to make a project like this work for our house. We have 6 ceiling fans in our house, with each having the 303.875Mhz Hampton Bay RF setups (previous owner did the installs). I'd rather not replace all of the receivers in the fans, but instead create an RF controller connected to Arduino. I plan to build a "Skill" for my Amazon Echo which will then control these fans via voice.

Has there been any luck progressing this concept forward? Perhaps cannibalizing an existing remote and using relays to simulate the switches is a viable option, if the 303.875Mhz components aren't available?


I would canibalize a remote, and directly connect the supply, ground, and relevant data pins to the Arduino.
But all parts are available.
You can convert a cheap 315Mhz transmitter with a 303.875Mhz SAW resonator (ebay).
And Holtech IC datasheets are online. I think the remote is using the HT12E (ebay).