Need help receiving F007-TH sensor data with a Moteino RFM69W 433

Started by rsrf, February 24, 2015, 07:28:01 PM

rsrf

Hi folks,

I recently purchased a cool little MoteinoR4-RFM69W-433 that I'd like to use to receive sensor data from my Ambient Weather temperature/humidity sensors (WS-F007TH) seen here: http://www.ambientweather.com/amf007th.html.

Although I've been Googling like crazy and poring over the forums for a way to start receiving the transmissions, I've yet to find an approach to successfully receive anything. (I mean anything at all.)

I've been down the various rabbit holes of reading as much as I can about the LowPowerLab RF-69 library as well as the RadioHead RH-RF-69 library, and I seem to be getting hung up on one of two things:

1) The LowPowerLab library seems to place an extra layer of abstraction above the transmit/receive functionality such as adding the concept of "network" and "node" IDs. This makes perfect sense for a custom point-to-point transceiver application, but I'm only trying to receive predefined data from a simple low-level transport without acknowledgements or anything fancy. Can I use this library to simply receive raw sensor data while not in a "network"?

2) The RadioHead library seems to expose more low-level configuration capability of the Hope RFM-69 transceiver, but I haven't a clue how to configure the numerous settings and modem registers to work with my temperature sensors. My guess is that this library would work if I could get it configured properly.

I have found some piecemeal solutions for working with these sensors, but nothing that documents or explains it well, and definitely nothing that works with the Moteino/RFM-69.

Here are some resources I've found for my use case:

- Some Arduino sketches that supposedly manually decode the Manchester encoding: https://github.com/AMcAnerney/Arduino-F007th-Sketches

- Part of the above sketch contains some documentation on the F007TH sensor data: https://github.com/AMcAnerney/Arduino-F007th-Sketches/blob/master/Working%20sketch%20v3

- A long topic at the Arduino forums that lead to the above "solution" for decoding the data: http://forum.arduino.cc/index.php?topic=214436.0

- An GnuRadio/Arduino library that builds upon the RadioHead library to decode sensor data from a RFM22B board (but not RFM69): https://github.com/volgy/gr-ambient

It seems that the Arduino crowd has been doing a lot of low-level signal processing that the Moteino / RFM-69W appears to be able to handle natively, but I'm not sure where to start to get it configured.

I'm hoping that there's an embarrassingly simple way to set this up that I'm just not aware of, but even if there isn't a dead-simple solution, I hope some of the experts (or hobbyists) here can point me in the right direction.

If/when I get some working code out of this, I'll definitely be documenting it and posting the code on Github for all to be able to use in the future. Any help is greatly appreciated!

Thanks,
Robert

TomWS

Sorry to disappoint you, Robert, but I think you will find that those radios use an ASK modulation scheme.  I'll have to look around on my other computer to see if I can find docs re the possible encoding (maybe tomorrow), but it would be TOTALLY different than what the Moteino RFM69 library would provide.  Having said that, the RFM69 radio is perfectly capable of receiving the signal if you set up the registers properly, but then you'd still have to decode the 'bits' into something meaningful.

DAMHIKT...

Tom

TomWS

I have another question for you, Robert.   If you do get the Moteino with RFM69 listening to the WS-F007TH, then what?  What will you want to do with the data that you receive? 

The reason I ask is that you would have to completely unprogram the RFM69 to receive the WS-F007TH signal and would have to totally reprogram it if you then want to talk to another Moteino.  It would be very cumbersome to do this and it isn't even clear it would work.

It might be better to add a separate 433MHz receiver module just to receive the weather device transmissions. 

Tom

rsrf

Hi Tom,

Thanks for responding. As for your first reply, I think that the sensor transmits using OOK and Manchester encoding. I thought that the Moteino / RFM69W could handle that intrinsically-- if not with the Moteino library than with the RadioHead library. (?)

You also asked what I planned to do with the Moteino and data? Ideally I just wanted to upload a simple sketch that could listen for sensor transmissions and then decode that data and resend it out to serial to be monitored by another embedded device like my Intel Edison. This way I can process the temperature/humidity data and log it for later viewing and analysis.

On a side note, I did look at other cheaper 433MHz receivers (like this one from SparkFun https://www.sparkfun.com/products/10532), but many seemed of lower quality and the Moteino was low enough in price that I thought I'd opt for the better/more advanced hardware-especially if I wanted to use more than one in a network later on.

-R

TomWS

Robert,
Since you don't plan on using the RFM69 as a Moteino radio, it CAN be reconfigured as an OOK (a specific form of ASK) receiver with a different library.  I don't know about the 'radiohead' library, but it sounds like it may do what you need.  However, you WILL need to add two wires to your Moteino board for this to work.

The OOK continuous mode with bit synchronization uses DIO1 & DIO2 pins of the RFM69 module.  Neither of these are wired to the Moteino processor.  The good news is that the RFM69 module pins are very easy to connect to so you should be able to add small (30ga) wires between those two pins on the RFM69 to a pair of unused pins on the Moteino processor and perform software shift register in your code - the library you mention probably already implements this.

Tom

TomWS

I did notice on the RadioHead's website this quote:
QuoteRH_RF69 Works with Hope-RF RF69B based radio modules, such as the RFM69 module, (as used on the excellent Moteino and Moteino-USB boards from LowPowerLab http://lowpowerlab.com/moteino/ ) and compatible chips and modules such as RFM69W, RFM69HW, RFM69CW, RFM69HCW (Semtech SX1231, SX1231H)
Emphasis mine... (just to give Felix a fat head) ;)

I was looking at the gr-ambient code, it appears that his is built on the RFM22 as you pointed out so you'll have to re-write it to use the RH_RF69 library, but the code looks to be solid so should be a relatively easy transcription...

Tom

osquillar

Hi Tom, I would like to read messages from Oregon Scientific sensors. I've a monteino board with the RF69HW chip already installes. I've hardwired the SPI signals to the RF69 to be able to read OOK transmisions from any sensor. 

Have you been able to do this?

Regards
Oscar

TomWS

Quote from: osquillar on March 24, 2015, 08:28:36 AM
Hi Tom, I would like to read messages from Oregon Scientific sensors. I've a monteino board with the RF69HW chip already installes. I've hardwired the SPI signals to the RF69 to be able to read OOK transmisions from any sensor. 

Have you been able to do this?

Regards
Oscar
Robert would be the one to answer this question.  I just looked at the code but didn't implement anything.  I'm in the process of replacing all my Oregon Scientific sensors with my own motes.

However, I'm not sure I understand your statement
Quote from: osquillar on March 24, 2015, 08:28:36 AMI've hardwired the SPI signals to the RF69 to be able to read OOK transmisions from any sensor.

Do you mean that you're using a processor board other than Moteino?  If so, which one?

Tom

rsrf

I haven't attempted to make this work. I was hoping for a quick and easy option to receive the signals from my temperature transmitters, but this seems a lot more involved that I had hoped.

Tom, I appreciated your comments and help regardless!

-Robert