Preliminary tests:
I received the RG-11, wired it up to an RS232 USB with 50 feet of wire, put it up on the roof's TV antenna, coded some C and got plenty of data. It's a very chatty little device and detects the merest of drops. Of course there is no substitute for cloud sensing with a thermopile, but this very rugged and fully sealed detector is outstandingly cost effective, will last longer than metal grids that detect moisture and a last chance safety for our automated observatories.
I've attached a csv data file of about a day's worth of data (when any value of 20+ registers changed, my code recorded to disk, first column is days from Jan 1, 0 hour of the year). Hydreon doesn't provide much information as to what the registers are, and I am slowly figuring them out. The zip also includes a Windows exe which you have to set your device to comm port 30 so you can test it quick. I also zipped some of that code, but you'll have to make your own com port handler as I cannot post up the rest due to copyright. I had originally used pointers but finally opted for the more obvious register by register switch as it was more readable. Below is two of the registers showing data when it rained - horizontal axis is days from Jan 1.
I've got a more advanced version of that code, logging 24/7 and linked up with my home grown observatory code, which of course parties with ACP.
Enjoy.
Peakrs.jpgRainAD8.jpg
oups! forgot to add the struct typedef - a critical part! pasted below (edited this message after ward);
typedef struct RG11Registers_type // Hydreon rain gauge RS232 registers
{
// Fast registers
unsigned short PeakRS; // ?
unsigned short SPeakRS; // ?
unsigned short RainAD8; // Rain analog detected level ? - Expected range 64 to 192
unsigned short LRA; //
unsigned short TransRat; // ? - Expected range 60 to 170
unsigned short AmbLNoise; //
//int RGBits bit fields over 16 bits following
unsigned int PkOverThr:1; //
unsigned int Raining: 1; // Is raining
unsigned int Out1On: 1; // Relay output state
unsigned int HtrOn: 1; // heater on
unsigned int IsDark: 1; // is dark
unsigned int Cndnstn: 1; //
unsigned int Freeze: 1; // Is freezzing temperature
unsigned int Storm: 1; // Storm underway
unsigned int pad: 8; // Pad to 16 bit
// Slow registers
unsigned short RevLevel; // Firmware revision level
unsigned short EmLevel; // ? - Expected range 30 to 80
unsigned short RecEmStr; // ? - Expected range 60 to 66
unsigned short ABLevel; // ? - Expected range 10 to 10
unsigned short TmprtrF; // Sensor internal temperature (def F)
unsigned short PUGain; // ? - Expected range 34 to 39
unsigned short ClearTR; // ? - Expected range 60 to 170
unsigned short AmbLight; // Ambient light level
unsigned short Bucket; // Simulated bucket tip count (resets to zero within ?)
unsigned short Barrel; //
unsigned short RGConfig; //
unsigned short DwellT; //
unsigned short SinceRn; // Minutes since last rain (up to 20 mins)
unsigned short MonoStb; //
unsigned short LightAD; // Threshold above which light or no rain (ref RainAD8) ? - Expected range 120 to 136
unsigned short RainThr; // Threshold rain detection ?
} t_RG11Registers;