Thread Closed
Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5

4Pro Dual Band Compact Receiver - General Usage Guide

Installing and Configuring the Software

As part of pre-delivery testing, all units are programmed with the latest firmware version, however, as each user have their own specific settings, users need to configure some items, and reprogram the firmware.
Configuring the firmware doesn't require software programming skills, however knowledge on how to upload the firmware to ESP32 devices, using Arduino IDE, is required.
First time programming should be done using the USB port of the 4Pro DB receiver, after that, the receiver can be programmed / updated via OTA.
Before compiling, on Arduino IDE choose: Tools --> Board: --> Esp32 Arduino --> MH ET LIVE ESP32MiniKit

Despite there are some advanced settings, in general, configuring the WeatherDuino firmware is almost self-explanatory, as shown in examples bellow.



Starting a new Weather Station

For those you are building an WeatherDuino weather station from scratch, always start by build the transmitter unit, then check if it is working properly. Even for testing, the transmitter firmware should have been configured to transmit data from the three main sensors, which are: Temperature / Humidity, Rain and Wind.
Without receiving, at least these three types of data, the receiver doesn't initialize properly, and remains indefinitely on a startup screen, telling you that are waiting to receive data from transmitters.
Note: In general one transmitter unit is enough to connect all the common weather instruments, however, there are cases where users may prefer to use two or more transmitter units (up to four allowed), per example one for ground level weather instruments, and a second unit for weather instruments usually placed at higher places, such as roofs or towers.

After you have done all the tests, and complete the installation of all your weather instruments, before starting to collect data using CumulusMX (or other software), its highly recommended to perform a "factory reset" of the receiver (can be done through the Menu -> Settings).

Configuring the Weather Software to work with WeatherDuino

Explanation below is for CumulusMX, but the same logic applies to almost all weather software, with a very few exceptions.

Configuring the CumulusMX software for a WeatherDuino weather station is mainly the same as configuring it for a Davis VP2, except in one detail, the use of the multipliers for the Rainfall and Wind.
Why we need to use the CumulusMX multipliers resource?

WeatherDuino weather stations can work with a large variety of weather instruments, each one with its own characteristics. Trying to explain why we need to use the multipliers, lets start by the Rain Gauges.
The amount of rain corresponding to a click is not equal over all Rain Gauges, it depends on the collector type. On the most common types, it is 0.2mm (Europe) or 0.254mm (USA), but also there are Rain Gauges where each click corresponds to 0.1mm, or even 0.3mm.

So, depending on the resolution of the Rain Gauge used, we need to set a multiplier for the “Rainfall” in CumulusMX Configuration.

The value of the “Rainfall” multiplier is calculated using the following formula: Multiplier = collector type / 0.2 (values in mm)

Now let's talk about why we may also need to use a multiplier for the Wind data.
Besides the Davis standard wind speed resolution of 1 mph, WeatherDuino allows the use of two enhanced wind speed resolutions, user selectable in the software.


So, if a resolution of 1 mph for wind speed / gust measurements is good for you, just set VP2_WIND_RESOLUTION to 0, and you don't need to change the default Wind Speed / Wind Gust multipliers on CumulusMX.

Fetching Weather data from the receiver using JSON

You can fetch a large amount of weather data from the receiver by using the receiver IP address followed by /json (example The receiver will respond with a JSON formatted string which contains most of the weather data available on the receiver.

The units of the data follow the user defined units on the receiver. i.e if your receiver is set to use temperature in ºC then temperature data in the JSON string will be in ºC. Same applies to atmospheric pressure, rainfall etc.

Bellow is a example of the data you will get, JSON formatted.

"ID": "4P_U32",
"TID": 161,
"ts": 1682901184,
"Tin": 208,
"Hin": 674,
"Tout": 155,
"Hout": 882,
"P": 10198,
"Wsp": 122,
"Wgs": 122,
"Wdir": 290,
"Rtd": 0,
"Rfr": 0,
"SR": 0,
"UV": 0,
"C02": 807,
"PM25": 19,
"PM100": 25,
"AQI": 8,
"ES1T": 130,
"ES1H": 0,
"ES2T": 223,
"ES2H": 657,
"ES3T": 0,
"ES3H": 0,
"ES4T": 219,
"ES4H": 632,
"So1T": 211,
"So1M": 36,
"So2T": 0,
"So2M": 0

Meaning of the variables:

ID: Receiver ID
TID: Receiver type
ts: Time stamp with receiver local time
Tin: Inside Temperature (value is times 10)
Hin: Inside Humidity (value is times 10)
Tout: Outside Temperature (value is times 10)
Hout: Outside Humidity (value is times 10)
P: Atmospheric Pressure (value is times 10)
Wsp: Wind Speed (value is times 10)
Wgs: Wind Gust (value is times 10)
Wdir: Wind direction (0 - 359)
Rtd: Rain today (value is times 10)
Rfr: Rainfall rate (value is times 10)
SR: Solar Radiation
UV: UV Index,
C02: CO2 from WeatherDuino Air Quality Monitor (value is times 10)
PM25: PM2.5 from WeatherDuino Air Quality Monitor (value is times 10)
PM100: PM2.5 from WeatherDuino Air Quality Monitor (value is times 10)
AQI: Air Quality Index from WeatherDuino Air Quality Monitor
ES1T: Temperature from extra sensor 1 (value is times 10)
ES1H: Humidity from extra sensor 1 (value is times 10)
ES2T: Temperature from extra sensor 2 (value is times 10)
ES2H: Humidity from extra sensor 1 (value is times 10)
ES3T: Temperature from extra sensor 3 (value is times 10)
ES3H: Humidity from extra sensor 1 (value is times 10)
ES4T: Temperature from extra sensor 4 (value is times 10)
ES4H: Humidity from extra sensor 1 (value is times 10)
So1T: Soil temperature from soil sensor 1 (value is times 10)
So1M: Soil moisture from soil sensor 1 (value is times 10)
So2T: Soil temperature from soil sensor 2 (value is times 10)
So2M: Soil moisture from soil sensor 1 (value is times 10)

This feature is intended to allow integration of weather data with other types of software which can fetch data using JSON (Home Assistant and others).
Thread Closed

Users browsing this thread: 1 Guest(s)