Receiver Shield seeing data all the time

315MHz and 433MHz wireless connections are very commonly used by consumer electronics including weather stations, home automation remote controls, power consumption meters, car alarms, and also many DIY projects.
RAS
Posts: 3
Joined: Tue Jan 17, 2012 4:13 pm

Re: Receiver Shield seeing data all the time

Post by RAS » Thu Jan 19, 2012 3:05 am

FYI - I tried a couple of different scenarios tonight, all with my sensor back out in the yard (~75 feet range and at least 4 intervening walls from receiver).
1) I plugged the Receiver shield onto a terminal shield (no Arduino) and fed it 5V from a bench supply, monitoring the data pin with a scope. Using a 7.5ms active low pulse trigger, I saw at least three distinct transmission signatures. Two Manchester (at different clock rates) and one that appeared to be a pulse position encoded transmission system. One of the two Manchester looked like the device in the back yard - I'll track the other two down later. There were still a lot of other transitions, but the sections near my trigger were very crisp with no high speed transients.
2) I put the Receiver shield on a Ruggeduino, powered at 8V from the same bench supply through the 2.1mm power jack. Results were similar to the first trial, though the Manchester transitions didn't seem to be quite as regular (i.e. possibly some noise induced transition jitter).
3) I removed the bench supply and connected the Ruggeduino to the USB port on my development computer. At this point I could no longer trigger on the signal from the pulse position source; only the two Manchester signals still showed up (I reverted to the previous config to verify it was still transmitting). I'm assuming that this was an indication that I'd picked up enough conducted emissions from the computer through the USB port that one of the transmitters was down in my noise floor.

Of course the other thing that changed was the exact voltage reaching the RX6B; in the first experiment, it was 5V, in the second it was 4.97, and in the third it was 4.85V.... Just to be sure that wasn't a factor I went back to the first config and lowered the supply down to 4.65, and it was still happy.

So, summary: A) The shield I have definitely works, although perhaps a bit too aggressively in some respects. B) Depending on your setup and environment, your mileage may vary considerably - until you know your protocol, filtering, and error detection schemes are solid for your sensor, stay as isolated as possible. C) I still think having the analog RSSi output would be a great advantage....

I've got some more gear coming in this week to help me with my problem (i.e. knowing the protocol, filtering, etc) - if I discover anything of general interest I'll try to update this thread.

- Richard

poxika
Posts: 2
Joined: Sun Feb 26, 2012 8:42 pm

Re: Receiver Shield seeing data all the time

Post by poxika » Sun Feb 26, 2012 8:51 pm

I have basically the same problem. There is a lot of noise picked up by the receiver, and a result, watching the output for transitions is not reliable unless I can filter out the noise.

I have a picture of the signal (hopefully, it will load) :
Image
If it doesn't, the link is here :
http://www.flickr.com/photos/77397642@N08/6930512315/

It's from a TX7U. I can recognize the signal when the sensor is transmitting, but I have to find a way to either key on the 0000 pattern, or the long period of low between transmissions (at the risk of missing the first one).

Any help on detecting the signal from the noise would be welcomed. I am still new to interrupt base programming and I'm trying to figure out what would be the best strategy.

Thanks,

Poxika
Last edited by poxika on Mon Feb 27, 2012 4:28 pm, edited 1 time in total.

mjoconr
Posts: 12
Joined: Sun Dec 25, 2011 12:59 am

Re: Receiver Shield seeing data all the time

Post by mjoconr » Sun Feb 26, 2012 11:01 pm

I've given up at this point the noise hids the signal to the point that I've only see the radio packet a couple of times

I'm building a beaglebone which I'll directly connect to the USB interface on my receiver.

It's a real pitty because it would have been great to not have to use the interface

Cheers
Mike

cef
Freetronics Staff
Freetronics Staff
Posts: 106
Joined: Wed Nov 09, 2011 12:53 am

Re: Receiver Shield seeing data all the time

Post by cef » Mon Feb 27, 2012 8:59 am

poxika: Your image didn't work. I've upgraded your privileges so you should now be able to add your picture.

Note: New users are limited for their first few posts in what they can post. This is mainly an anti-spam measure. If you still have issues, PM me and I'll see what I can do.

poxika
Posts: 2
Joined: Sun Feb 26, 2012 8:42 pm

Re: Receiver Shield seeing data all the time

Post by poxika » Mon Feb 27, 2012 4:35 pm

cef,

Thanks for the upgrade. The picture doesn't seem to show up, but I added a link to it. I was able to make something work yesterday. I still miss a lot of messages. Since the noise is very easily mistaken for signal (the pulse duration is varying within the same range), I have to rely on detecting 0 (most of the noise is within the 1 range: shorter pulses). Even then, for some reason, I miss packets (for example, I get only humidity, and not temperature).
My next step is to calculate min, max for 0 and 1 pulses, and adjust my signal detection over time to avoid catching or missing wrong pulses.

But this shield would really benefit from a a better receiver, with gain control squelch, or maybe some noise rejection filters.

Poxika

timr49
Posts: 2
Joined: Sat Apr 07, 2012 9:22 am

Re: Receiver Shield seeing data all the time

Post by timr49 » Sat Apr 07, 2012 9:45 am

RAS,

Re your request "Being able to monitor the signal strength to "window" my search would be a great advantage. Any chance that there could be an upgrade? I wouldn't even mind soldering in an extra line to get the signal to an analog pin, so that could be a user option with the same PCB...." ...

If the RXB6 on this shield is similar to the Jaycar ZW-3102 (RXB1), the RSSI can liberated with a mod. It is described in two places of which I am aware, namely:
1. http://picaxe.orconhosting.net.nz/RSSI-08M.doc
2. http://www.siliconchip.com.au/cms/A_112303/article.html (subscription required)
I have followed the instructions in the Silicon Chip article with a Jaycar ZW-3102 (RXB1) and can measure an increase in the voltage of the RSSI signal (e.g. when I press my garage door opener) with a multimeter and also saw an increase in value read from an analogue input on an Arduinoi proto shield from approximately 500 to 600.

-Tim.

RLmonitor
Posts: 5
Joined: Fri May 11, 2012 3:14 am

Re: Receiver Shield seeing data all the time

Post by RLmonitor » Wed Jun 06, 2012 10:06 am

These simple receivers have no squelch, so you will see noise all the time.
Usually, the transmission has a ~50% duty cycle preamble to allow the receiver to settle, then synch bytes, the data payload and perhaps a checksum. If all this is good, you have your data. Otherwise you have to wait another 40 seconds or so, for the data packet (Oregon Scientific). If you have more than one sensor, there may be a transmission collision. So you'll have to wait for the next packet.

More sophisticated transceivers, like Xbee modules, do all the work for you.

Below is as an example of data reception from 2 x Oregon Scientific sensors (THN122N, PCR122), captured using a pulse width timing algorithm. Some of the packet failures will be due to extraneous noise pulses ...


FH: EA 4C 20 9C 98 18 F0 34 07 00, 18.9 A B_low
FH: 2A 1D 00 57 01 00 40 03 40 42, RG57 R: 000 T: 034 A B_low
FH: EA 4C 20 9C 98 18 F0 34 07 00, 18.9 A B_low
FH: 2A 1D 00 57 01 00 40 03 40 42, RG57 R: 000 T: 034 A B_low
FH: EA 4C 20 9C 88 18 E0 44 02 00, 18.8 A B_low
FH: 2A 1D 00 57 01 00 40 03 40 42, RG57 R: 000 T: 034 A B_low
FH: EA 4C 20 9C 88 18 E0 44 02 00, 18.8 A B_low
FL: D0 00 90 D0 FF 18 E0 44 02 00, BAD FRAME
FH: EA 4C 20 9C 88 18 E0 44 02 00, 18.8 A B_low
FH: 2A 1D 00 57 01 00 40 03 40 42, RG57 R: 000 T: 034 A B_low
FH: EA 4C 20 9C 88 18 E0 44 02 00, 18.8 A B_low
FH: EA 4C 20 9C 88 18 E0 44 02 00, 18.8 A B_low
FL: D0 00 90 D0 FF 18 E0 44 02 00, BAD FRAME
FH: EA 4C 20 9C 88 18 E0 44 02 00, 18.8 A B_low

aelsea
Posts: 1
Joined: Wed Jun 06, 2012 11:41 pm

Re: Receiver Shield seeing data all the time

Post by aelsea » Thu Jun 07, 2012 12:24 am

RLmonitor,
Would you mind posting a copy of the Arduino code you used to capture your data samples. TIA

RLmonitor
Posts: 5
Joined: Fri May 11, 2012 3:14 am

Re: Receiver Shield seeing data all the time

Post by RLmonitor » Sat Jun 09, 2012 3:02 am

I found this document helpful http://wmrx00.sourceforge.net/Arduino/O ... tocols.pdf
But, it still took me some days to get my code working. I used a Saleae logic analyzer to look at the Oregon Scientific [OR] data packet.
OR packet start.JPG
Oregon Scientific sensor packet
The analyzer software can decode Manchester code, but the OR protocol is a little wacky. I then built some code that would wait for 33 approx 50% duty cycle pulses - the OR preamble. I then display the next n pulse widths as S [short] or L [long], using the pulse width measurements in the code. Valid pulse sequences are SSL and LL. The bit value depends on the sequence and the previous pulse polarity. I then decode the data bytes by hand to see that it matched the OR version 2 protocol.
T433C.txt
T433C.ino - I had to rename it as a text file to get the upload to work
(2.3 KiB) Downloaded 403 times
Rename this file to T433C.ino

I then built some code to decode the data bytes, and calculate the checksum. The checksum was a pain. The two sensors that I have use different checksum calculations.
T433Ha.txt
T433Ha.ino - I had to rename it as a text file to get the upload to work
(7.33 KiB) Downloaded 351 times
The code does not have many comments. And there is some remnant debugging stuff. But I'll answer any questions.

My initial work was with a RXB1 receiver. I found that I had to adjust the Short & Long timings to get the code working with the RXB6 receiver.

The timings are measured by TCNT1. Which is setup to interrupt on both pulse edges.

Code: Select all

ISR(INT1_vect){
  Value = TCNT1;                    // save the input capture value - the pulse width
  pulse = PIND & 0B00001000;   // the pulse polarity - we need to know the previous polarity
  flag1 = true;                         // to indicate that the interrupt has occurred
} 
The resulting Value is 2x the pulse width in microseconds. The logic analyzer can help you see what the pulse width limits should be. Remember that you may get interference from other 433 devices like your Energy Monitor and your neighbours! It may help to turn off all but one 433 source.

Next, I will integrate the code into an Etherten. I'll post the code when it works properly!

richms
Posts: 1
Joined: Tue Oct 01, 2013 9:09 am

Re: Receiver Shield seeing data all the time

Post by richms » Tue Oct 01, 2013 9:35 am

Has anyone had good sucess decoding either the Jaycar 3 plugin energy monitor units, or a fine offset weather station with the 433MHz shield?

I have had some joy with the fine offset external temperature sensors, but the only way to get it to work is to power the arduino off a wall adaptor, and then have it use a xbee to send data back to the PC.

Anyone played with putting more conditioning on the power feed into the reciever module on the board to get it playing nice with a PC connected arduino?

The other thing is I have read about people using a RFM12B module on a raspi to decode them, and someone who attends the local geek meetups is saying they have it working with their weather station. Anyone had a play with those receivers instead?

Ive just got a goldilocks which I will be retrying my earlier attempts at getting it outputting the bit timing to serial to see what I am actually getting, on the 328 based arduino I didnt have enough ram to get the entire sequance, since doing a serial output from the interupt just makes everything fail I was putting it into ram and then outputting it when done, and ram was short on the 328.

Post Reply