Listening to digital radio codes 24/7

How would one listen for digital radio codes 24/7? The codes are 128 bit, 345MHz carrier, ASK (Amplitude Shift Key). One 128 bit code would be received in .017s.

The modulation was figured out with an RTL-SDR dongle and Audacity. I had originally hoped to use the dongle with a PC running GNU Radio to decode the signal, but it seems to run to hot for reliable 24/7 operation. It might be worth continuing this route as it is relatively easy and I own the required hardware.

Does anyone have any advice on either using an Arduino for decoding or a circuit to listen to the signal?

ASK (Amplitude Shift Key).

ASK stands for Audio shift keying, it consists of two tones one for mark and the other for space. Is that what you have or is it AM, Amplitude modulation?
Given that either way it could be Manchester encoded.

Is this code asynchronous serial? Or is it synchronous?

You need to know these things before you can begin to figure out how to decode it.

Also what are you looking for and what do you want to do when you find it?

Grumpy_Mike:
ASK stands for Audio shift keying,

Actually it's "Amplitude Shift Keying".

"Audio Frequency Shift Keying" is what you're thinking of, (AFSK).

OldSteve:
Actually it's "Amplitude Shift Keying".

"Audio Frequency Shift Keying" is what you're thinking of, (AFSK).

Amplitude shift keying sounds a lot like CW, Morse code.

Paul

With CW, the carrier is turned on and off. WWVB transmissions involve reducing the carrier power by 17dB at the start of each second and then returning to full power 0.2 (0), 0.5 (1) or 0.8 (P) seconds later. The carrier is always on but just reduced in power which modulates the amplitude and produces a pulse-width modulated signal. Maybe the OP's signal does something like this.

Pete

el_supremo:
With CW, the carrier is turned on and off. WWVB transmissions involve reducing the carrier power by 17dB at the start of each second and then returning to full power 0.2 (0), 0.5 (1) or 0.8 (P) seconds later. The carrier is always on but just reduced in power which modulates the amplitude and produces a pulse-width modulated signal. Maybe the OP's signal does something like this.

Pete

Yes, that could be. I meditated on his posting while working out on the company tread mill. I wonder is all the information he has given is 'POST DEMODULATION' but the dongle and the pc software? Modulation by carrier amplitude would seem to be so error prone that simple FM or PM modulation would be easier.

Need more information!!!

Paul

See Amplitude-shift keying - Wikipedia

In Audacity, it looks like, with more carrier waves, http://ironbark.xtelco.com.au/subjects/DC/lectures/7/fig_2010_07_02.jpg

Need more info?

I read the description and looked at the picture. Do I understand this correctly? A digital zero might be 1 watt of power and a digital 1 might be 5 watts of power, giving amplitude shift keying. Might be very economical if most of the time the transmitter was only sending 1 watt.

Paul

There appear to be plenty of 345Mhz receivers around...tried any?

T5744 300-450Mhz Rx IC.

The diagram seems to be showing simple on-off keying rather than the multi-amplitude ASK that is described in the wikipedia article (which also describes OOK). As the article says, OOK is the simplest case of ASK.

Pete

There is an rtl_433 project under which RTL-SDR software to decode a number of transmitters has been developed. Searching on rtl_433 will give a number of hits describing how various people reverse-engineered these signals.

My understanding is that the original poster has apparently captured a post-detection analog signal and needs to figure out how to extract the digital intelligence from this. My approach would be to read the .wav file into Matlab and play with it there, but that presupposes understanding that tool set.

Once the coding scheme has been cracked, it is likely that an Arduino based decoder could be built, but Arduino is probably not the right tool for figuring out the coding scheme.

ASK is indeed Amplitude Shift Keying. FSK is Frequency Shift Keying. PSK is Phase Shift Keying

Source: Satellite and Wireless Communications course in college

I've attached what one 128 bit code looks like in Audacity. Expanding the x-axis lets you see that each '1' is made of several sine curves. It is on off keying. Zeros have no amplitude.

It probably contains: start + id + action (open/close) + crc bit. These are codes for window sensors. Open and close a window would be different actions for the same id.

Understanding the format would allow recording one code to know both the open and close action. Each code would still have to be associated with a sensor. Otherwise the open and close action could be learned independently without understanding. One 128 bit code would be living room window open. Another 128 bit code would be living room window close. Understanding the format seems like a secondary issue.

Primary issues are receiving the signal and demodulating the signal to a 128 bit sequence.

It looks like the OOK Signal Demodulation project code convert it to a 128 bit sequence. The software is in C. I assume this is for a PC rather than an Arduino. I wonder if an Arduino could do this or does it require Rasp Pi or PC. GNU Radio would work too.

As far as using the T5744, how easy is it to use an IC like this? it is not stocked on DigiKey. How would the frequency be set? It looks like a single pin is for the result. How would this be read? Are there any alternatives with clear instructions around its usage?

That looks like Manchester coding starting with 14 sync bits ((0,1) or (1,0) symbol is one bit).

I'm guessing you've taken the Real (or Imaginary) component only in GnuRadio. You should be taking the magnitude of the complex value to recover the signal properly. That will get rid of the "sine curves" and give clear high/low states.

Mapping that that with the Manchester symbols gets one to a string of ones and zeros. What they mean is anybody's guess, but if you can change the state of a sensor, capture its transmission, and compare one state's transmission to another, you might be able to puzzle out the bit mapping enough to do something with it.

There is an Atmel Manchester Coding application note here that may be helpful: Application Notes | Microchip Technology.

@AndyR- can you clarify which bits of your existing setup you wish to replace with arduino? Do you want a replacement for the RTL-SDR dongle or is it only the PC you wish to replace? (Its not clear from your original post which bit "seems to run too hot for 24/7 operation")

Also confirm you really meant 345Mhz and not the more common 315 or 433Mhz frequencies? You have a lot less options if it really is 345.

Yes, it's 345 MHz. Most of the time, no signal is published. This makes sense because the sensor goes years on a battery. It is very reliable.

This may be the FCC application: Honeywell 5800 Series Wireless Technical Specifications - Alarm Grid

At first I didn't think it was, but the above post on Manchester coding says my 128 bits are really 64 bits. So it seams to match the doc. I'll have to read about Manchester coding. Any idea how 16 bit CRC are applied?

I already own an Intel NUC, which I run 24x7 for another purpose. It is a Windows PC. I was originally hoping to use this with the RTL-SDR. It would process the signal with python generated by GNU Radio and run a control app. The RTL-SDR runs hot. I don't really know it's a problem, but am guessing it is not really suitable for 24x7 operation.

It might be better to use a rasp pi rather then an arduino with the radio receiver. The rasp pi could replace the pc and be a standalone controller. Alternately, the arduino could control the radio receiver and send the signal to a PC through the serial port just like the dongle. Probably should just connect the dongle and see how long it lasts. The sensor is made by ademco/honeywell. There is probably a radio receiver IC for this.

Have you considered removing the case of the dongle and trying to locate the heat-source? Perhaps you can solve the temp problems with a little bit of ventilation and additional heat-sinking?

Maybe its easier to just buy a different model of RTL-SDR... they are fairly cheap.

I figured out the signal. It is in fact Manchester encoded with 16 start bits. Thanks for the tip about Manchester encoding MrMark.
The CRC is CRC-16/BUYPASS. I found it with http://reveng.sourceforge.net/. There are many different kinds of CRC, so unless it is one of the more common ones (which it is not), a tool like reveng is needed.

I still have to work on demodulation and digitizing, but right now things look good.