An Arduino library for the RFM69 transceiver module that enables communications with Davis Instruments weather station hardware.
C C++
Switch branches/tags
Nothing to show
Clone or download
dekay Merge pull request #12 from per1234/keywords-separator
Use correct field separator in keywords.txt
Latest commit 3585bc9 Jul 17, 2018

DavisRFM69 Library

By DeKay (
Creative Commons Attribribution Share-Alike License

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...


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.