Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/peter-g-wilson/pico_pio
RF input decoding using PICO PIO
https://github.com/peter-g-wilson/pico_pio
433mhz 868mhz f007 manchester ook pico pico-pio pio pwm rp2040 wh1080
Last synced: 29 days ago
JSON representation
RF input decoding using PICO PIO
- Host: GitHub
- URL: https://github.com/peter-g-wilson/pico_pio
- Owner: peter-g-wilson
- License: mit
- Created: 2021-06-13T11:48:24.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-08-14T17:27:01.000Z (about 3 years ago)
- Last Synced: 2024-10-14T03:21:18.737Z (29 days ago)
- Topics: 433mhz, 868mhz, f007, manchester, ook, pico, pico-pio, pio, pwm, rp2040, wh1080
- Language: C
- Homepage:
- Size: 1.48 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 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](https://github.com/peter-g-wilson/PICO_PIO/blob/main/images/overview.png)
### **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](https://github.com/peter-g-wilson/PICO_PIO/blob/main/pdf/PICO_PIO_OOK_Manchester_and_PWM.pdf)