Decoding RF 433.92MHz signal (binary available)

Hello,

I have been trying to decode the signals output by a RF remote I have here and I have managed to capture the codes but I cannot figure out how to decode them (or replicate them).

Here is the data I have captured.

Butt 1
0000000010101001011011100010111100
00 A9 6E 2F

Butt 2
0000000010101001011000100010010000
00 A9 62 24

Butt3
0000000010101001011010100010100000
00 A9 6A 28

Butt 4
0000000010101001011001100010000000
00 A9 66 20

There is also an additional two bits on the end of each transmission which are always 00 but I don't know what they do?

I can see the pattern of the message starting with 00 A9 but I then cannot see how the other data is calculated.

Each message is started with a long pulse.

Could anyone let me know how I could try and mimic this with the arduino and a 433.92mhz transmitter?

Cheers,
Dean

Hi Richard,

Thanks for the reply, how would i go about replaying the code through a tx? Would I just make a loop and set the pin high/low? Or is there a way to output hex?

This is just one remote but I have multiple recorders that have a code button that allows me to pair a remote to the receiver. I want to be able to do away with the remotes and pair multiple receivers with the arduino without having to capture the codes every time.

I may have to get another remote and see what it's codes are.

If I can figure out how to output the codes I can try some other ones

Cheers,
Dean

I have just grabbed the codes coming out of two different remotes, they are ordered in the same order so the first code in the first set is the same remote button as the first code on the second remote.

Remote #1
0011001101100100000011100011100110
CD9038E6

0011001101100100000011000011101110
CD9030EE

0011001101100100000000100011001110
CD9008CE

0011001101100100000010100011110110
CD9028F6

0011001101100100000001100011010110
CD9018D6

Remote #2
0000000010101001011011100010111100
2A5B8BC

0000000010101001011011000010110000
2A5B0B0

0000000010101001011000100010010000
2A58890

0000000010101001011010100010100000
2A58890

0000000010101001011001100010000000
2A59880

Any help would be greatly appreciated.

Cheers,
Dean

Hi Richard,

I am trying to create my own codes in the arduino.

The remotes are for those 4 port remote powerboards you can buy and I am looking to control them with my arduino.

Each powerboard has a button it that allows you to pair a remote with it, all you do is push the pair button on the powerboard and then press a button o the remote and they are paired.

What I want to do is to be able to generate the codes myself from within the arduino and then pair the arduino with the powerboard (or multiples).

I know that I can just capture the codes of a remote and then use the arduino to repeat them (still haven't got this working yet) but I would like to be able to skip the code capture all together and just use the arduino and output the codes and pair with the powerboard.

This would mean that I could buy a new powerboard from the shops, and then pair it directly with the arduino by outputting a unique code, without having to pair the powerboard with the remote and then capture and decode the remote signals.

Do you have any idea how I can try to test if the captures codes work? I have a 433.92mhz transmitter connected to 5v, gnd and pin 4 of the arduino but I cannot workout how to put the code back out.

Cheers,
Dean

Hi Richard,

A "4 port remote powerboard" is a powerboard (I think they may be called powerstrips in the US) that has 4 power outlets that can be individually switched (The one I have is http://www.jaycar.com.au/productView.asp?ID=MS6150).

I know that the frequency is 433.92 mhz and I have already got the receiver and transmitter for this frequency.

I have already seen the waveform generated by the current remote and can measure the timings but I am unsure of how to feed them back into the transmitter.

As far as I know the transmitter should take care of the modulation and I should just be able to feed the codes back into it.

I am not trying to make anyone read my mind and I thought I had explained my situation, hopefully I have cleared anything up now.

My original plan was to just press the buttons with the arduino but then I decided against it as it would be quite messy if I had multiple remotes for different boards all wired up as opposed to having a nice neat setup with a RF transmitter.

Cheers,
Dean

Yeah that's what I am trying to do, but I cannot figure out how to do it...

I had a loop that went over the binary string of 0's and 1's and it it was a 1 it pushed the pin high and if it was a 0 it pulled it low.

I put a delay after each change to try and match the original pattern but the outgoing pattern wasn't anything like the original. It kind of just came out as a mish mash and the scope didn't pick up any distinct changes.

I am pretty sure the transmitter is the same modulation, I may try cutting the trace from the transmitter in the remote and wiring that up to the arduino to try that. But I still feel that the data I am outputting from the arduino is incorrect.

Cheers,
Dean

Will do, I am not home tonight but I will take a screenshot of the original signal and my generated signal (way, way off) and see how we go!

Thanks for all your help.

Cheers,
Dean

I have just taken another shot of the remote buttons and attached it, I didn't have my code together (have been changing it around alot to try and get it to work) so I couldn't take a shot of it on the scope.

Here is what I was doing in pseudo code:

str = '010010110101010101011110110';
foreach char in str
if char == 1
set pin 2 high
delay 5
set pin 2 low
else
set pin 2 high
delay 2
set pin 2 low
endif
delay 2
endfor

I hope this helps a bit.

Cheers,
Dean

It looks to me as if you are trying to do something pretty similar to the work already published under the project name ArduinoHA.

Visit Google Code Archive - Long-term storage for Google Code Project Hosting. and browse the code.

Also note that the RF receivers often expect the entire bitstream to be sent several times (like 8 or 10 times) with a specific length of 'gap' between each burst of RF. Many receivers use this 'gap' length to decide whether the particular RF stream is of interest.

I've implemented this sort of thing on an AVR device using Bascom as the programming language. See wiki at livebox:hah [DBZoo] for more info and links to sourcecode.

Hope this helps.

Hi there, I'm having the same problem with radio controlled power outlets. But try this one:
http://randysimons.com/overige/browsable/433MHz/

bigclick_dean,

any chance you can post your code?

Eric