Weather - portapack-mayhem/mayhem-firmware GitHub Wiki

The Weather app decodes wireless transmissions from consumer weather stations and sensors operating in the ISM licence-free bands. It receives both OOK (AM) and FSK signals and presents a live list of decoded sensor readings, updated in real time. Besides temperature and humidity, many Fine Offset / Ecowitt sensors also report wind, rain, pressure, UV, light, soil moisture, PM2.5 and lightning.
This is an external app (.ppma file on the SD card).
- Frequency: Default 433.920 MHz. Adjustable in 10 kHz steps using the encoder knob, or tap to open the keypad. Common frequencies are listed below.
- Temperature unit: °C or °F. Applies to both the list view and detail view.
- RF Amp (0 or 1): Enables/disables the internal RF amplifier. Use with caution on strong nearby signals.
- LNA gain (0–40): Low-noise amplifier gain. See Receive Quality Issues.
- VGA gain (0–62): Variable-gain amplifier gain.
- Volume: Volume for packet beep tones. Only active when Beep on packets is enabled in the global Settings.
- Clear: Clears the in-memory sensor list. Does not affect any log file.
-
Log: Checkbox to enable CSV logging. When checked, a new log file is created immediately. The log state is saved to
rx_weather.iniand restored on next launch — if it was enabled when you last left the app, logging resumes automatically on the next startup. - S.Hem: Checkbox for the southern hemisphere. When checked, the wind direction shown and logged is rotated by 180°. Only the arrays with a flat solar panel that has to point north in the southern hemisphere are rotated: FO-WH24 (HP1000), FO-WH65, FO-WS69 and FO-WS68. Other sensors, e.g. the WS80 and WS90, always show the direction they send. Off by default. See Wind direction in the southern hemisphere.
Gain tip: This app is sensitive to signal strength. If nothing decodes, try starting with AMP 0, LNA 32, VGA 20, and adjust from there. Both over-amplification and under-amplification will prevent decoding.
- 433.92 MHz — Europe, Australia, most of the world
- 315 MHz — North America, Japan
- 868 MHz — Europe and others
- 915 MHz — North America, Japan
Fine Offset / Ecowitt sensors are sold in 433, 868 and 915 MHz versions. The frequency is usually printed on the sensor or its box. Set the app to match the version you have.
Each row represents one unique sensor. Entries are kept for up to 64 sensors at a time. Columns:
- Type: Sensor protocol name (see Supported Protocols below).
-
Temp: Temperature in the selected unit, or
-if the sensor does not measure temperature (e.g. rain gauges, PM2.5, soil moisture, lightning and leak sensors). -
Hum: Relative humidity in percent, or
–if the sensor does not transmit humidity. -
Ch: Channel number reported by the sensor, or
–if not applicable. - Age: Seconds since the last packet was received from this sensor. Resets to 0 on each new reception.
Selecting a row opens a detail view with all fields expanded: Type, Id (hexadecimal), Temperature, Humidity, Channel, Battery status (OK / LOW), and Age. Press Done to return to the list.
If the sensor reports more values, they are listed below those fields. Only the values the sensor actually sends are shown:
| Line | Unit | Notes |
|---|---|---|
| Wind | m/s | Average wind speed |
| Wind dir | deg | 0 = North, 90 = East. Rotated by 180° when S.Hem is checked |
| Gust | m/s | |
| Rain | mm | The sensor's running total, not rain per hour or per day |
| Pressure | hPa | Absolute (station) pressure, not adjusted to sea level |
| UV index | ||
| Light | lux | |
| Moisture | % | Soil moisture |
| PM2.5 | ug/m3 | |
| Storm | km | Distance to the last lightning strike |
| Strikes | Lightning strike counter | |
| Leak | 1 = water leak alarm, 0 = no leak (WH55) |
When the Log checkbox is enabled, received sensor data is written to LOGS/WEATHERLOG_<timestamp>.CSV on the SD card. The file starts with the header line:
;Type; id; Temp; Hum; CH; Batt; Wind m/s; Dir; Gust m/s; Rain mm; hPa; UVI; Lux; Moist; PM2.5; Storm km; Strikes; Leak
Each subsequent line contains one decoded sensor reading in the same column order. Columns a sensor does not report are left empty. The wind direction column follows the S.Hem setting.
Fine Offset Electronics makes the sensors sold under the Ecowitt, Ambient Weather, Froggit, Misol and many other brands (e.g. the HP1000 station). In the list they show as FO- followed by the model, e.g. FO-WH24.
Fine Offset / Ecowitt support and the S.Hem option were added in #3383 (October 2026). Until the next release they are only in the nightly builds.
Most current models use FSK; the older ones use OOK. The app handles both automatically, so no extra setting is needed. The decoders are based on rtl_433, and the values are scaled the same way rtl_433 does.
| Shown as | Sensors | Values |
|---|---|---|
| FO-WH24 | WH24 / HP1000 outdoor array | Temp, hum, wind, dir, gust, rain, UV, light |
| FO-WH65 | WH65 outdoor array | Temp, hum, wind, dir, gust, rain, UV, light |
| FO-WS69 | WS69 outdoor array with pressure | As WH65, plus pressure |
| FO-WH25 | WH25 indoor sensor | Temp, hum, pressure |
| FO-WH32 | WH32, WH32B, WN32B | Temp, hum |
| FO-WS80 | WS80 ultrasonic array | Temp, hum, wind, dir, gust, UV, light |
| FO-WS85 | WS85 ultrasonic wind & rain | Wind, dir, gust, rain |
| FO-WS90 | WS90 all-in-one array | Temp, hum, wind, dir, gust, rain, UV, light, pressure |
| FO-WS68 | WS68 wind / solar | Wind, dir, gust, UV, light |
| FO-WH31 | WH31E, WH31B | Temp, hum, channel |
| FO-WN34 | WN34, WN38 | Temp |
| FO-WH40 | WH40 rain gauge | Rain |
| FO-WN20 | WN20 rain gauge | Rain |
| FO-WH51 | WH51 soil moisture | Moisture |
| FO-WH0290 | WH0290 / WH41 PM2.5 | PM2.5 |
| FO-WH57 | WH57 / WH31L lightning | Storm distance, strikes |
| FO-WH55 | WH55 water leak | Channel, battery, leak alarm |
| FO-WH2 | WH2, WH2A, Telldus | Temp, hum |
| FO-WH5 | WH5, TFA 30.3225 | Temp, hum |
| FO-WH0530 | WH0530 rain gauge | Temp, rain |
| FO-WH1080 | WH1080 / WH3080 (OOK) | Temp, hum, wind, dir, gust, rain |
| FO-WH3080UV | WH3080 UV / light packet | UV, light |
| Ecowitt WH53 | WH53 temperature probe | Temp, channel |
Most sensors transmit every 16 to 80 seconds (e.g. WH24 about every 16 s, WH25 about every 64 s), so it can take a minute before a sensor appears.
Some outdoor arrays (WH24 / HP1000, WH65, WS69 and WS68) have a flat solar panel that must face the equator, so the array has to be installed with the panel pointing south in the northern hemisphere and north in the southern hemisphere. In the northern hemisphere the array's "N" marking then points north. In the southern hemisphere the array is installed turned around, so the marking points south and the sensor sends a wind direction that is 180° off. The station consoles have a hemisphere setting to correct this.
The sensor always sends the uncorrected direction. If you are in the southern hemisphere and installed one of these arrays with the solar panel pointing north, check S.Hem so the wind direction matches your console. S.Hem only rotates these four types. Other sensors are left as they are, e.g. the WS80 and WS90, which have a ring-shaped solar panel around the top of the unit and are installed with their "N" marking pointing north everywhere, so both kinds of array show the right direction at the same time.
49 protocols are decoded:
Acurite592TXR, Acurite5in1, Acurite606TX, Acurite609TX, Acurite986, Ambient, AuriolAhfl, AuriolTH, Bresser3CH, Ecowitt WH53, EmosE601x, FO-WH0290, FO-WH0530, FO-WH1080, FO-WH2, FO-WH24, FO-WH25, FO-WH3080UV, FO-WH31, FO-WH32, FO-WH40, FO-WH5, FO-WH51, FO-WH55, FO-WH57, FO-WH65, FO-WN20, FO-WN34, FO-WS68, FO-WS69, FO-WS80, FO-WS85, FO-WS90, GT-WT02, GT-WT03, InFactory, Kedsum, LaCrosse TX, LaCrosse TX141THBv2, NexusTH, Oregon2, Oregon2B, Oregon3, OregonV1, SolightTE44, ThermoPro TX4, TX 8300, Vauno EN8822, Wendox W6726
- The app shows the raw values the sensor sends. Calibration offsets set on a station console are not applied, so readings can differ slightly from the console.
- Pressure is the absolute pressure measured at the sensor. Consoles usually also show relative (sea-level) pressure, which is higher above sea level.
- Rain is the sensor's running total. It does not reset each day like the console's daily rain.
- Not supported yet: Fine Offset WH1050, WH52, WH45 / WH46 air quality sensors and the 868 MHz FSK version of the WH1080.
The temperature unit, log state and S.Hem setting are saved to rx_weather.ini on the SD card when App Settings is enabled in the global Settings menu.