Help identify component on wireless therm board

General project help for Adafruit customers

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
User avatar
richms
 
Posts: 558
Joined: Tue Jan 20, 2009 3:05 am

Re: Help identify component on wireless therm board

Post by richms »

python stuff.zip
Have xxxed out the keys for pachube and twitter since oauth is such a braindead auth method.
(62.61 KiB) Downloaded 150 times
arduino stuff for weather station.zip
Arduino code. No CRC checking and a bit much debug output but should get you started.
(11.87 KiB) Downloaded 242 times
Not the prettiest of code, the python will freeze up doing pachube, crash when it gets unexpected data and also performs no CRC checking so occasionally a stupid value gets thru. I was using nohup to send it to the background but that would mean I couldnt CTRL-C it when pachube requests stalled so just ran it in a SSH session to my firewall.

Started off as Limors tweet a watt code, I am sure there are parts of that left in there still, and the stuff from practical arduino's weather station shield.

I have found that the quality of 433MHz reciever matters a lot, a cheap one off ebay would work to about 2 meters before I was only getting constant errors about not enough bits, one from an IR remote extender covers about half the house with many updates missed. The indoor part of the weather station has much better sucess but I am sure that some whizz with signal processing could work with the arduino code to make it a lot better than what I have beat out of the code from practical ardino.

martin_bg
 
Posts: 3
Joined: Tue Jan 04, 2011 8:48 am

Re: Help identify component on wireless therm board

Post by martin_bg »

Many thanks for posting this,

I still can't make it work with one of these:

Image

I am getting only "Weather Station Receiver has powered up" and nothing more.. the transmitter is next to the receiver to avoid range issues, receiver is hooked to Digital pin 8.

I will try to get it working and report


Thanks again

Martin

User avatar
richms
 
Posts: 558
Joined: Tue Jan 20, 2009 3:05 am

Re: Help identify component on wireless therm board

Post by richms »

Mine is hooked up exactly like the practical arduino sites article shows it. I cant recall what pin that is at the moment.

If you open the sensor up you can tap off the raw data there and send that to the arduino to see if it is parsing it correctly. Is the green led flickering? it does that with all the background noise going in, the red one will come on when it gets a valid start header thing.

Failing that, try another 433MHz receiver, since there is a filter on them that stops them from recieving long bits if its made for high speeds, there is a comparator on a capacitor so that it acts like an AGC for the noise, if the bits are too long then they get cut short which is what I think I am seeing with it, as the protocol for those sensors doesn't have a 50/50 duty cycle.

martin_bg
 
Posts: 3
Joined: Tue Jan 04, 2011 8:48 am

Re: Help identify component on wireless therm board

Post by martin_bg »

I decided to make a recording of the signal to see what the sensor is sending, for 24.0 Degrees C, here is the result:

Image

This is saved as  a WAV file, here is how I got it: http://davehouston.org/learn.htm

Is there a way to see what this means? Somehow to convert this into HEX values?

User avatar
oaklands
 
Posts: 1
Joined: Sat Jan 08, 2011 7:41 pm

Re: Help identify component on wireless therm board

Post by oaklands »

Hi

The trace converts to binary as
11111111 01001011 11000000 11110000 11111111 11110011
and HEX as
FF 4B A0 F0 FF F3

the F0 above converts to 240 in decimal which relates to 24.0

for values greater than 25.6 the values before the F0 will no doubt also be relevant.

The 11111111 bits are likey to act as syncs for the receiver's RF gain. The last 8 or 4 bits are likely checksum.
The 4B and possible the 4BA are unique IDs which I guess are randomly generated on power on of sensor

Hope this helps...let me know if you find out more

User avatar
richms
 
Posts: 558
Joined: Tue Jan 20, 2009 3:05 am

Re: Help identify component on wireless therm board

Post by richms »

That looks like what I got out of mine too. I think yours may be inverted compared to mine, will have to try to find the files I recorded and have a look, which I cant do right now.

I was not able to replay out my soundcard into the arduino when I tried it because the levels were too low, but you may have better luck, try inverting it in audacity and then playing it into the arduino.

Are you seeing the LED flicker when the RF reciver is sending data into the arduino?

User avatar
richms
 
Posts: 558
Joined: Tue Jan 20, 2009 3:05 am

Re: Help identify component on wireless therm board

Post by richms »

Oh, and I heard from someone else that the second lot of 11111111 is for the humidity on sensors that support it.

the 4b will change if you remove and repower the sensor, they are "random" unique IDs for the sensor, the display will show the first 3 that it sees after power on, and when the batteries are first put in the sensors transmit a lot more frequently for a min or 2.

marcusaus
 
Posts: 1
Joined: Sat Apr 28, 2012 11:47 pm

Re: Help identify component on wireless therm board

Post by marcusaus »

@richms and anyone else with the pictured transmitter in post "martin_bg » Thu Jan 06, 2011 12:57 am"

I've got an atmel receiving the output from the transmitter and have collected quite a few values and confirmed them using an oscilliscope.

For the life of me I can't work out the checksum algorithm; i've tried all the simple ones like xor/add/sub/md5/crc8/crc32 on different sets of the bits/bytes. Anyone have an idea?

Here is the output from the atmel, TEMP = 'xyz' should be read as the temperature xy.z; I have not determined the sign bit yet (the freezer will help there)

TEMP = '211' 0xff4820d3ffc0
TEMP = '212' 0xff4820d4ff6e
TEMP = '213' 0xff4820d5ff9a
TEMP = '214' 0xff4820d6ffb7
TEMP = '215' 0xff4820d7ff43
TEMP = '216' 0xff4820d8ffda
TEMP = '217' 0xff4820d9ff2e
TEMP = '218' 0xff4820daff03
TEMP = '219' 0xff4820dbfff7
TEMP = '220' 0xff4820dcff59
TEMP = '221' 0xff4820ddffad
TEMP = '222' 0xff4820deff80
TEMP = '223' 0xff4820dfff74
TEMP = '224' 0xff4820e0ff5f
TEMP = '225' 0xff4820e1ffab
TEMP = '226' 0xff4820e2ff86
TEMP = '227' 0xff4820e3ff72
TEMP = '228' 0xff4820e4ffdc
TEMP = '229' 0xff4820e5ff28
TEMP = '230' 0xff4820e6ff05
TEMP = '231' 0xff4820e7fff1
TEMP = '232' 0xff4820e8ff68
TEMP = '233' 0xff4820e9ff9c
TEMP = '260' 0xff482104ffec
TEMP = '261' 0xff482105ff18
TEMP = '292' 0xff482124ff30
TEMP = '293' 0xff482125ffc4
TEMP = '294' 0xff482126ffe9
TEMP = '295' 0xff482127ff1d
TEMP = '296' 0xff482128ff84
TEMP = '297' 0xff482129ff70
TEMP = '298' 0xff48212aff5d
TEMP = '299' 0xff48212bffa9
TEMP = '300' 0xff48212cff07
TEMP = '301' 0xff48212dfff3
TEMP = '302' 0xff48212effde
TEMP = '303' 0xff48212fff2a

Any help working out what the crc algorithm is is greatly appreciated!

Locked
Please be positive and constructive with your questions and comments.

Return to “General Project help”