Skip to content

peter-g-wilson/PICO_PIO

Repository files navigation

PICO_PIO

RF input decoding using PICO PIO

The work on the F007 has now moved to another repository - https://github.com/peter-g-wilson/yaesa

The changes going to the yaesa repository are

  • even more commonality for message and bit queues and also the bit-stream decoding
  • added DS18B20 and one-wire
  • added BME280
  • some name changing
  • moved most documentation to the readme and code

Why do it?

I had a fridge that kept freezing vegetables. It was interesting to see how bad the overshoot and undershoot of the controller was.
And why not monitor the freezer too. It had a much tighter controller.
The attic was getting extra loft insulation and I wondered how cold the water tank now got.
There is a water softener in the garage that didn't want to get too cold.
So I got 5 Ambient Weather F007T sensors with base station. The base station was rubbish, invariably displaying 'HH', impossible temperatures and push button switches from the 1960's.
Then my youngest son inherited a Fine Offset WH1080 weather station from his grandfather ...

Overview

overview

Code

  • PICO_PIO_F007T_WH1080.c has the CPU core 0 main entry point that calls the WH1080 and F007T timer and PIO initialisations and also has the core 1 entry point to handle the 2nd UART and the output of messages that have been received
  • PICO_PIO_F007T_WH1080.pio has the two state machine programs - both feeding their FIFOs with data bits
  • PICO_PIO_WH1080.c and PICO_PIO_F007T.c use repeating timer callbacks to read the PIO FIFOs and "parse" the data bits looking for their respective messages
  • queues_for_msgs_and_bits.c has support routines for message and bit queues
  • uart_IO.c has support routines for the 2nd UART where the message data is sent over RS232
  • output_format.c prints to std output (1st UART) debug and statistics

More details and performance results are in -

PICO_PIO_OOK_Manchester_and_PWM.pdf