↓ Skip to main content
  1. Home projects/

Pogodynka: reading a wireless weather station

··Index: 7·

Cheap weather stations send their outdoor readings over 433 MHz radio. Pogodynka (“weather station” in Polish) is my receiver for those readings, made of an RFM83C module and an Arduino, which listens to Auriol sensors and decodes the packets itself.

The protocol is pulse-distance coded, which means that after a long sync gap the values of bits depend on how long the gaps between pulses are (about 4.5 ms for a one and 2.5 ms for a zero, with a tolerance window). An interrupt handler captures pulse timings into a ring buffer, and a small state machine looks for the sync, collects bits into nibbles and assembles packets out of them.

Pogodynka: 433 MHz sensor to RFM83C receiver, interrupt handler, ring buffer and a state machine that builds packetsAuriolsensorRFM83Creceiverinterrupthandlerring bufferpulse timingsstatemachine433 MHzsync, bits,nibbles, packetspulse distance: about 4.5 ms gap = one, about 2.5 ms gap = zeroafter a long sync gap; with a tolerance window
From radio pulses to decoded packets

Next to the code I kept the documents it is based on, the receiver datasheet and a community description of the Auriol RF protocol.

Source on GitHub.

Related