This is the DYI copy of TX141W outdoor sensor, that I placed inside of original sensor. The device is build on components from local electronic store, but works as original one. The signal (OOK PWM), that is sent by this copy is recognized by main weather station module as original.
Few additional feautures that I implemented here:
- Powered from solar panel and Li-Ion battery
- Air pressure value is sent instead in a wind direction, since we don't have wind direction sensor in TX141W.
(TFA Dostmann 30.3222.02 is the same outdoor sensor.)

- BlackPill STM32F401 microcontroller
- RFM69HW Radio transmitter
- SHT41 Digital humidity and temperature sensor
- BMP388 24-bit air pressire and altitude sensor
- TP5100 based module for charging Li-Ion battery
- MP2307 DC-DC converter for stabilisation Li-Ion voltage to 3.3V
- Hardware Timers for counting pulses from Wind Speed sensor while MCU is in sleep mode. (injection of HAL code)
- Sleep and DeepSleep modes for MCU from stm32duino/STM32duino Low Power library
- Sleep mode for RFM69 radio transmitter
- WatchDog timer
- Data transmission frequency depends on Li-Ion battery charge state (optionally, since wind speed sensor is not counted in DeepSleep mode).
- robtillaart/RunningAverage filters fake values from sensors
Code base:
- jgromes/RadioLib for Hardware level managing RFM69 radio module
- ropg/OOKwiz - how to send OOK PWM signal through RFM69 in a DirectTransmit mode
- hdtodd/omnisensor_433 - how to code OOK PWM signal frames
- Sensirion/arduino-i2c-sht4x - a genuine library for SHT4x sensors
- adafruit/Adafruit BMP3XX Librar - a library for the Adafruit BMP388 precision pressure sensor breakout
