This is my ISS replacement.
[ You are not allowed to view attachments ]
I'm quite a novice in electronics, just trying to learn what I can by reading online and watching Youtube videos.
From left to right the RJ12 connector are: Solar input, Fan power and speed monitoring, Temperature (SHT35), Wind, Rain.
The top battery powers the circuit, the bottom battery powers the fan.
There are 2 solar charge controllers next to the top switches. An adjustable voltage boost/buck converter regulates the output voltage (3.3v) for the fan during the night. During the day the fan is powered by solar (6V). When replacing the Davis motor I installed an Allegro A3213 hall effect sensor in the fan housing and a small magnet on the fan to record the fan rotation status.
The microcontroller is an ATmega 328p. The board also has a DS3231 real time clock and a BMP180 pressure sensor. An XBee transmitter transmits readings to an indoor XBee gateway. This gateway also receives data from other devices, such as roof mounted solar/UV station, letter box monitor etc. The gateway transmits data to a Davis console using an RFM69 transmitter.
The weather observations are transmitted in a single line of text. Eg.
ID=W3 SQ=355347 TS=20170930-083309 UT=1776735 ST=12.56 SH=64.08 WR=1790831 WS=7/7 WD=5 RC=1177 TC=0 TL=416538 BT=16.66 AP=1012.61 L1=4.21/88/18/ON L2=4.22/694/26/ON FS=6.02/2275 CK=203D45B2
ID = Device ID
SQ = Packet sequence
TS = Timestamp
UT = Uptime in seconds
ST = SHT35 temperature
SH = SHT35 humidity
WR = Anemometer wind rotation since last reboot
WS = Wind speed Gust/Average
WD = Wind direction
RC = Rain tip counter
TC = Time interval between rain tips
TL = Seconds since last rain tip
BT = BMP180 temperature
AP = BMP180 air pressure
L1 = Li-Ion battery 1 : voltage/charge current/controller temperature/charge status
L2 = Li-Ion battery 2 : voltage/charge current/controller temperature/charge status
FS = Fan status : Voltage/Rotations(RPM)
CK = Packet checksum
Currently the controller reports readings every 5 seconds, but this can be adjusted remotely as I have 2 way communications with the controller. This allows remote firmware updates.