https://github.com/agirilovich/stm32-tx141w
DYI version of TX141W Lacrosse weather sensor
https://github.com/agirilovich/stm32-tx141w
433mhz lacrosse sensors stm32 stm32duino weather-station
Last synced: 16 days ago
JSON representation
DYI version of TX141W Lacrosse weather sensor
- Host: GitHub
- URL: https://github.com/agirilovich/stm32-tx141w
- Owner: agirilovich
- Created: 2023-10-19T16:13:37.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-10-09T09:33:20.000Z (10 months ago)
- Last Synced: 2025-10-25T17:41:48.635Z (9 months ago)
- Topics: 433mhz, lacrosse, sensors, stm32, stm32duino, weather-station
- Language: C++
- Homepage:
- Size: 939 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Arduino based replacement of Lacrosse TX141W Weather Station sensor
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.)

# Used modules
* 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
# Some features
* 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**](https://github.com/jgromes/RadioLib) for Hardware level managing RFM69 radio module
* [**ropg/OOKwiz**](https://github.com/ropg/OOKwiz/) - how to send OOK PWM signal through RFM69 in a DirectTransmit mode
* [**hdtodd/omnisensor_433**](https://github.com/hdtodd/omnisensor_433) - how to code OOK PWM signal frames
* [**Sensirion/arduino-i2c-sht4x**](https://github.com/Sensirion/arduino-i2c-sht4x) - a genuine library for SHT4x sensors
* [**adafruit/Adafruit BMP3XX Librar**](https://github.com/adafruit/Adafruit_BMP3XX) - a library for the Adafruit BMP388 precision pressure sensor breakout
