trying to receive RF signals sent bij an outdoor weather station sensor #581
Replies: 24 comments
-
Posted at 2014-09-16 by @gfwilliams Hi, It's really good news that the other remote control works... The 433Mhz frequency is a bit of a free-for-all. Anyone can transmit whatever they want to, so there's no guarantee that the existing code will work with another model of mains socket. By the way, I updated the tutorial with a bit more info about how the receiver works. For your weather station, it looks like there are at least 3 different versions of the protocol, from 1.0 to 3.0 - and it would be much easier if we knew which one the station uses. There's a table in the PDF you gave but it doesn't list the THR188. Does the receiver or transmitter have a different model number that might be in the table, or does it say in the manual? The main difference between the remote controls on the website and your weather station is that your weather station uses Manchester Coding whereas the remote controls use a binary pulse width modulation (I'm not sure what the correct name is). Basically you can't easily just send the raw data wirelessly, because if you sent a lot of '0's, there would be a big gap with no radio signal and interference might get picked up. So you need a way to make sure that there is always going to be a pulse every so often - which leaves you two main ways to encode data:
I don't believe Pulse width modulation is as efficient, but (at least for me!) it seems easier to decode. The other difference is inn the speed of transmission, which might be the reason you're not getting any data at all (even garbage). You could try the following decoder functions instead which has different numbers, and could see which works:
But it's not guaranteed... It'd help if you could force the weather station to transmit. Is there a button, or does taking out the battery and putting it back in force it? So I think the next step is to find out what protocol version you have... If you can't google it or find it in the manual, do you have a digital storage oscilloscope? If not, we can get Espruino to measure the pulse lengths, but it's tricky as there will almost certainly be loads of interference that will get in the way. |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-09-16 by @gfwilliams I've been taking a look at reading data from an electricity monitor I have (An 'Owl' one) and that uses Manchester coding too. I'm not sure this is 100% correct, but here's my simple decoder which at least gives me something:
It's designed to execute relatively quickly, so again it's not very easy to read. Basically:
I soldered right onto the insides of my electricity monitor so I'm not getting any noisy signals. You'll probably have to do some extra checks before outputting the data, so the noise doesn't cause lots of stuff to be output. Even a simple |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-09-16 by Reinoud WOW! That's impressive! I do have a DSO Nano (DSO201), but I have to figure out how to record the signal... I will try to capture it and post it here! |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-09-17 by @gfwilliams Hi Reinoud, even the first few bits of signal might be enough - at least you could figure out what the bit rate is, and from that get some idea of the protocol. Personally, I'd crack open the transmitter and look inside. There's often a transmitter module with a clearly marked 'data' pin, and if you hook onto that then you can get a nice clear signal to analyse (if you go from the radio receiver, you'll probably get all kinds of stuff and it won't be obvious which one is from the weather station). |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-09-28 by Reinoud I tried to figure out how to use my DSO Nano... (don't understand much) Edit: I cannot upload files, a server error is returned... |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-09-29 by @gfwilliams Sorry - I'll check with the people who make the forum... I can't upload either. |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-09-30 by @gfwilliams Hi Reinoud - I think this is fixed now. Please can you try posting up again? |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-01 by Reinoud well... here it is:Attachments: |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-02 by Reinoud I tried to capture a signal using Single waveform, but I'm unable to do so... (anyone with a DSO 201 and knows how to do it please let me know...) I can stop the waveform / signal when I transmit a signal from my remote control for the remote socket. It is clear that it uses the binary pulse width modulation:Attachments: |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-02 by Reinoud I tried to capture the signal again. I also have a csv file (not sure how to interpret it yet):Attachments: |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-02 by @gfwilliams Hi, That's pretty handy anyway... Do you think you could sample at a higher rate (1ms like you did for the remote control?) We don't need all of the signal - just a few bits from somewhere in it (so we can work out how long each bit is) |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-02 by @gfwilliams Just to add, it looks from the screenshots (down the bottom of them) like the DSO has a buffer that's about 3x the size of what you can see - so (even though we don't need the whole signal) it looks like you may stand a chance of getting it in. |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-02 by Reinoud you're right... I'm getting a bit familiar with it! :-) never really used it that much! So I have a few screenshots: Attachments: |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-02 by @gfwilliams Ok, this is great! So looking at it, the small pulses are roughly 1.5ms. Looking at the document you posted up earlier, the actual 'clock rate' they're talking about is half that... so 1000ms/3ms = 333Hz - which looks extremely similar to the 342Hz clock rate they give for Version 1.0 devices! So now we know the clock rate, we can just modify the timing in the code I gave before. With it there's a description of how the Basically now we're expecting pulses between 1.5ms and 3ms (ish), so the midpoint is 2.25ms. So that means we just multiply by
Hopefully if you use that code, you should get something back. If you're really lucky it'll start with twelve
So I think the current code may give you 12 |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-02 by Reinoud When I look at page 8 and 9 (and understand well) the message should look like the following:Attachments: |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-02 by Reinoud So I don't know what this rolling code should look like... the channel is set to 1, so nibble 1 should be 0. Nibble 5 could be 0 or 3 because I notice a battery low indicator on my weather station. Why do you think I will get 12 1's? Can't we divide the datastream in nibbles as shown in my diagram? |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-02 by Reinoud I tried to construct the binary code from the two examples in the documentation (page 9): “88190AAB” should be: 1000 1000 0001 1001 0000 1010 1010 1011 Do you agree? |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-02 by Reinoud I posted a question on which protocol is used on a weatherstation forum, this is a reply I got:
Looking at the bit rate of 342 Hz it is most likely I have a protocol 1 sensor. I also read in the documentation that the manchester coding is used. |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-03 by @gfwilliams Yes - it's protocol 1, 342Hz, manchester coding - which I'd hope the code above will decode. Did you get a chance to try it? The reason I think you'll get the For the 'rolling code', the document says 'Value changes randomly every Personally I'd just try and get some data read in and then work backwards from there. Once you have the bits in the
|
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-03 by @gfwilliams
Looks right to me! And:
|
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-05 by Reinoud Hi Gordon, I tried to capture it with the code you proposed. I get a constat flow of data, probably stuff from other devices. We tried to solve it by letting my son scream "yes!" when the sensor transmits something (we see a red led flash...) and I disconnect the espruino (don't know how to pause terminal output). What I get is this:
|
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-05 by Reinoud Made a second attempt: According to my son it was 14,3 degrees. If I understand well it is sent backwards:
But I don't see the string "001101000001" in the following capture:
|
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-06 by @gfwilliams Hmm, it's very tricky to extract what is from the sensor when there is all the noise :( Looking at the protocol description there seem to be at least 12 '1' pulses beforehand, so I guess it's worth looking for the data right after those. I guess ideally you'd actually open up the transmitter and connect a wire to it, then you could check everything was working without the noise, and could then work on cutting out the noise once you knew it actually worked. If you don't want to do that, one other thing is to make the receiver code much more strict about the length of signals it accepts (it should be 1/342 = 2.92ms and 0.5/342 = 1.46ms)
Hopefully that'll output much less information... |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-10-06 by Reinoud I don't want to open up the transmitter because it is an outdoor sensor... I don't want to break it... I will try the code, I hope it will work. |
Beta Was this translation helpful? Give feedback.
-
Posted at 2014-09-15 by Reinoud
Hi All,
I'm trying to receive RF signals sent bij an outdoor weather station sensor.
I have used the following tutorial:
http://www.espruino.com/Remote+Control+Sockets
First I tested with my remote control:
http://www.klikaanklikuit.nl/shop/nl/afstandsbediening-ayct-102/
Different type than used in the tutorial I guess (it's Dutch). The outcome is also different:
On!
1:
0b101010100000000000101010
2:
0b101010101000000000101010
3:
0b101010100010000000101010
4:
0b101010101010000000101010
Off!
1:
0b101010100000000000101000
2:
0b101010101000000000101000
3:
0b101010100010000000101000
4:
0b101010101010000000101000
Also a lot of garbage between these lines...
But I wasn't able to receive a signal from the weather station sensor. Has anybody tried that before?
The one I use is an Oregon Scientific THR188.
I did find some protocols, but I'm not really understanding it. Unfortunately nothing is decoded with the code provided from the tutorial.
Kind regards,
Reinoud de Lange
Attachments:
Beta Was this translation helpful? Give feedback.
All reactions