Git Product home page Git Product logo

davisrfm69's Introduction

DavisRFM69 Library

By DeKay ([email protected])
Creative Commons Attribribution Share-Alike License http://creativecommons.org/licenses/by-sa/3.0/

This library is a modified version of the LowPowerLab's RFM69 library that enables reception of weather data from a Davis Instruments Integrated Sensor Suite (ISS) weather station.

Background

The Davis Instruments ISS is a solar powered and battery-backed set of outdoor weather sensors monitored by a PIC microcontroller. It uses a TI CC1020 RF Transmitter chip to send the weather data it collects back to a Davis Vantage VP2 or Vantage Vue console located indoors. The ISS transmissions have been reverse engineered, and this has allowed receivers based on the TI CC1110 chip (amongst others) to receive its transmissions.

The drawback of the CC1110 is that it has its own embedded microcontroller that requires separate hardware to program. The simpler CC1101 does not have this controller and can be commanded over a SPI bus, but it is difficult to find this board in a 915 MHz flavor as used by Davis ISS units in North America. Beware EBay units saying they are 915 MHz: they likely actually operate at 433 MHz and are of no use. Ask me how I know...

The one potential bright spot in the CC11xx story is the RFBee. It couples a TI CC1101 with an Arduino and is easy to use and program, but it is based on an Atmega 168 whose limited RAM and FLASH have hampered efforts to implement a full blown emulation of the Davis indoor console.

The new kid on the block is the RFM69 module from HopeRF. This module is inexpensive and can be bought either standalone or integrated on a "Moteino" Atmega 328 Arduino clone from LowPowerLabs. This library demonstrates that the RFM69 is flexible enough to receive transmissions from the TI transmitter chip in the ISS.

Note: the previous generation HopeRF RFM12B module popularized by the JeeNode...

Features

This library sniffs the wireless packets transmitted from a Davis ISS. Other features are on the drawing board. After all, why just receive?

This library is in its early stages but I wanted to get something functional out there. Churn should be expected for the next little while.

This library has been developed on a Moteino R3 (see here for the new R4 version) fitted with an RFM69W (Semtech SX1231/SX1231) transceiver module.

Installation

See this blog post where I combines ISS Reception capabilities along with hookups to sensors for indoor monitoring of temperature, pressure, and humidity. Note that this code no longer requires the installation of LowPowerLab's RFM69 library discussed in that post, but you will still need to install his SPIFlash library. Since that post was written, I have also added support for the DS3231 Real Time Clock chip. To get this to work from a software perspective, you will need this RTC library in your Arduino "libraries" folder.

Miscellaneous / Possible Issues

Reception quality has been greatly improved in this release. There looks to be a bug where the hop-ahead code has broken, but I expect that will be fixed soon I am getting around 99% good packets now. Please let me know if you find any issues.

Sample Usage

VP2 is an emulation of the Davis Vantage Pro2 console that works with Sandaysoft's Cumulus weather software. As noted above, you will need this RTC library in your Arduino "libraries" folder.

The ISSRx Example hasn't been updated in a while and may be broken. Just so you know...

Blog Writeups

ISS Reception, along with the best GIF ever.

Davis Console Emulation combines ISS Reception capabilities along with hookups to sensors for indoor monitoring of temperature, pressure, and humidity.

Why

I started playing around with my VP2 Wireless console when I discovered its little expansion port tucked away in the back. Its purpose is primarily for connection of an exorbitantly priced datalogger that is little more than a one dollar flash chip. After figuring out how to connect first a serial interface and then building my own datalogger, I figured out the wireless protocol between the ISS and the console and put together the first standalone receive using an IM-ME Pretty Pink Pager.

I learned a lot by doing this and I like to think that opening up the console has been an overall win for Davis. I also consider this to be MY data, and I want access to it (Davis' failed attempts to shut this down notwithstanding).

And, just because.

davisrfm69's People

Contributors

dekay avatar kobuki avatar per1234 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

davisrfm69's Issues

Compile errors in DavisRFM69::initialize()

I'm trying to compile VP2.ino example with the Arduino IDE v1.05. In the file DavisRFM69.cpp, function DavisRFM69::initialize(), I'm getting compile errors on all the constants, like RF_OPMODE_SEQUENCER_ON. The error is "was not declared in this scope". Any idea how to resolve this?

RFM69HCW

will this work with the RFM69HCW

Missing #defines

I located the missing RFM69registers.h file but there were still 4 #defines missing and giving "not declared" errors:
RF_FDEVMSB_4800 (But RF_FDEVMSB_5000 is in the RFM69registers.h file.)
RF_FDEVLSB_4800 (RF__FDEVLSB_5000_ is there too.)
RF_AFCLOWBETA_OFF
REG_TESTAFC
I couldn't find them defined anywhere in any of the libraries mentioned in the readme or blog. Not sure how to fix this. :-(

Davis Iss

I was just wondering if you were still active on github and if you could email me. I have a Davis ISS from the original Vantage Pro but the ISS board has died. I still have a perfectly good working console but I would like to use an arduino to collect the data and send it back to the console. Is there any way that you can help me figure out the transmission protocol for the original VP1 so that I could code an arduino to communicate with the console. I have been reading all your work and I can see that youn used an arduino to make your own console. I would just like to go the other way around and use an arduino to get my ISS back up and running again. THank you!

decode data

i have this running on a esp8266 and it shows data do you have a way to decode
so it would show temp wind speed wind direction and all the sensors?

Async receive (feature)

Hi,
I think about adding an async receive feature. Since receiving is already interrupt-driven, it should not be that hard - onle the channel swtching code needs to be done in a timer interrupt. I'll test it on my STM32 module, maybe also on ESP8266. But I don't know if it can be done on Arduino as well (I don't have those boards here).
Regards,
Michael.

Unable to lock receive packets from the ISS

@dekay
I have an ISS with markings Revision E3, and a Vantage Pro 2.
I built out a 3.3V atmega328P with a RFM69HCW wired appropriately.
have you tested with any of the latest firmware versions or do you know if the RF protocol has changed? Im unable to grab any packets from the ISS and it's sitting right beside the device. The radio initializes correctly and im able to load custom sketches with the RFM69 library and send and receive data.

Hardware hookup Image

Please.... Could we have the Hardware hookup image for VP2 example?

Thank's a lot

Moteino vs Arduino

Hi dekay, thank you a lot for this library.
Do you think that i can replace the moteino for an arduino(with atmega328)+rfrm69?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.