diff --git a/README.md b/README.md index 894161f..9d71feb 100644 --- a/README.md +++ b/README.md @@ -332,6 +332,19 @@ Wiring for ESP32 DOIT DevKit V1 and AI-Thinker R01 - SX1278 ![image](https://github.com/diepeterpan/rtl_433_ESP/blob/master/docs/Ai-Thinker-Ra-01-Schematic-Diagram.png) +## ESP32 Platform Support + +### Single-Core ESP32 Variants (ESP32-C3, ESP32-S2) + +The library automatically detects and supports single-core ESP32 variants such as the ESP32-C3 and ESP32-S2. The decoder task's CPU core assignment and priority are automatically adjusted based on the `CONFIG_FREERTOS_UNICORE` configuration: + +* **Single-core processors** (ESP32-C3, ESP32-S2): Decoder task runs on core 0 with priority 3 +* **Multi-core processors** (ESP32, ESP32-S3): Decoder task runs on core 1 with priority 2 + +This configuration ensures compatibility with single-core ESP32 variants that only have core 0 available, preventing boot crashes that would occur if the task were pinned to the non-existent core 1. + +The `CONFIG_FREERTOS_UNICORE` flag is automatically set by the ESP-IDF/Arduino framework when compiling for single-core ESP32 variants, so no manual configuration is required. + ## Wiring and Building the Example Details are [here](example/OOK_Receiver/README.md) diff --git a/Tuning/LilyGo_OOK_BitRate.png b/Tuning/LilyGo_OOK_BitRate.png new file mode 100644 index 0000000..56d80a1 Binary files /dev/null and b/Tuning/LilyGo_OOK_BitRate.png differ diff --git a/Tuning/LilyGo_OOK_BitRate_14.png b/Tuning/LilyGo_OOK_BitRate_14.png new file mode 100644 index 0000000..53def28 Binary files /dev/null and b/Tuning/LilyGo_OOK_BitRate_14.png differ diff --git a/Tuning/LilyGo_OOK_RxBw.png b/Tuning/LilyGo_OOK_RxBw.png new file mode 100644 index 0000000..96b5749 Binary files /dev/null and b/Tuning/LilyGo_OOK_RxBw.png differ diff --git a/Tuning/LilyGo_OOK_RxBw_230.png b/Tuning/LilyGo_OOK_RxBw_230.png new file mode 100644 index 0000000..35f735d Binary files /dev/null and b/Tuning/LilyGo_OOK_RxBw_230.png differ diff --git a/Tuning/Tuning.MD b/Tuning/Tuning.MD new file mode 100644 index 0000000..2825a6d --- /dev/null +++ b/Tuning/Tuning.MD @@ -0,0 +1,28 @@ +# OOK Tuning + +As part of 5.x release I put a LilyGo board I have thru some testing to see if tweaking the `knobs` may dramatically impact signal reception. + +I twisted the knobs on 2 settings, Bitrate and Rx Bandwidth, and ran two series of tests with each setting, to see what the impact was. + +## BitRate + +This was a test of the BitRate setting, stepping by 0.1 from 1 to 32.7. +![LilyGo OOK BitRate](LilyGo_OOK_BitRate.png) + +This a deeper look at reception around 14, stepping by 0.01 + +![LilyGo OOK BitRate 14](LilyGo_OOK_BitRate_14.png) + +Highest count was at 2.4, with an average of 43.00 signals received. Current setting is 1.2, so 2.4 is a doubling of the existing. + +## Rx Bandwidth + +This was a test of the Rx Bandwidth Setting, stepping by 5 from 5 to 250. + +![LilyGo OOK RxBw](LilyGo_OOK_RxBw.png) + +This is a deeper look at the reception around 230, stepping by 1 from 210 to 250. + +![LilyGo OOK RxBw 230](LilyGo_OOK_RxBw_230.png) + +Highests count was at 230, with an average of 39.38 signals received. Current setting is 250, so 230 is a minor improvement. \ No newline at end of file diff --git a/Tuning/average.sh b/Tuning/average.sh new file mode 100755 index 0000000..6f28511 --- /dev/null +++ b/Tuning/average.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# Check if input file is provided +if [ $# -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +input_file="$1" + +# Check if file exists +if [ ! -f "$input_file" ]; then + echo "Error: File '$input_file' not found" + exit 1 +fi + +# Use awk to process the file and calculate averages per setRxBandwidth +awk ' + /Finished/ { + split($3, bw_arr, ",") + setting=$2 + bandwidth = bw_arr[1] + count = $NF + sum[bandwidth] += count + num[bandwidth]++ + } + END { + for (bw in sum) { + avg = sum[bw] / num[bw] + printf "%s, %.2f,%.2f\n", setting, bw, avg + } + }' "$input_file" | sort +1n \ No newline at end of file diff --git a/Tuning/rtl_433_ESP_LilyGO_OOK_Tuning.numbers b/Tuning/rtl_433_ESP_LilyGO_OOK_Tuning.numbers new file mode 100644 index 0000000..b4f3fa5 Binary files /dev/null and b/Tuning/rtl_433_ESP_LilyGO_OOK_Tuning.numbers differ diff --git a/Tuning/setBitrate.csv b/Tuning/setBitrate.csv new file mode 100644 index 0000000..34f7a7f --- /dev/null +++ b/Tuning/setBitrate.csv @@ -0,0 +1,318 @@ +setBitrate:, 1.00,29.50 +setBitrate:, 1.10,40.50 +setBitrate:, 1.20,40.50 +setBitrate:, 1.30,34.00 +setBitrate:, 1.40,39.50 +setBitrate:, 1.50,38.00 +setBitrate:, 1.60,36.00 +setBitrate:, 1.70,39.00 +setBitrate:, 1.80,33.50 +setBitrate:, 1.90,37.00 +setBitrate:, 2.00,34.50 +setBitrate:, 2.10,40.00 +setBitrate:, 2.20,36.50 +setBitrate:, 2.30,20.00 +setBitrate:, 2.40,43.00 +setBitrate:, 2.50,35.50 +setBitrate:, 2.60,43.00 +setBitrate:, 2.70,34.00 +setBitrate:, 2.80,41.50 +setBitrate:, 2.90,41.00 +setBitrate:, 3.00,37.50 +setBitrate:, 3.10,35.00 +setBitrate:, 3.20,38.00 +setBitrate:, 3.30,32.00 +setBitrate:, 3.40,41.50 +setBitrate:, 3.50,38.50 +setBitrate:, 3.60,39.00 +setBitrate:, 3.70,34.00 +setBitrate:, 3.80,30.50 +setBitrate:, 3.90,33.50 +setBitrate:, 4.00,33.00 +setBitrate:, 4.10,32.00 +setBitrate:, 4.20,39.00 +setBitrate:, 4.30,34.50 +setBitrate:, 4.40,35.50 +setBitrate:, 4.50,33.50 +setBitrate:, 4.60,36.50 +setBitrate:, 4.70,36.50 +setBitrate:, 4.80,37.00 +setBitrate:, 4.90,38.00 +setBitrate:, 5.00,30.00 +setBitrate:, 5.10,37.00 +setBitrate:, 5.20,40.00 +setBitrate:, 5.30,35.00 +setBitrate:, 5.40,30.50 +setBitrate:, 5.50,39.50 +setBitrate:, 5.60,37.00 +setBitrate:, 5.70,36.50 +setBitrate:, 5.80,35.00 +setBitrate:, 5.90,36.00 +setBitrate:, 6.00,37.50 +setBitrate:, 6.10,36.00 +setBitrate:, 6.20,36.00 +setBitrate:, 6.30,38.50 +setBitrate:, 6.40,35.00 +setBitrate:, 6.50,38.50 +setBitrate:, 6.60,35.00 +setBitrate:, 6.70,41.00 +setBitrate:, 6.80,34.00 +setBitrate:, 6.90,38.50 +setBitrate:, 7.00,36.00 +setBitrate:, 7.10,39.50 +setBitrate:, 7.20,37.00 +setBitrate:, 7.30,30.50 +setBitrate:, 7.40,34.00 +setBitrate:, 7.50,38.50 +setBitrate:, 7.60,37.50 +setBitrate:, 7.70,36.00 +setBitrate:, 7.80,34.50 +setBitrate:, 7.90,42.00 +setBitrate:, 8.00,37.50 +setBitrate:, 8.10,39.00 +setBitrate:, 8.20,33.00 +setBitrate:, 8.30,39.00 +setBitrate:, 8.40,39.00 +setBitrate:, 8.50,37.50 +setBitrate:, 8.60,39.00 +setBitrate:, 8.70,35.50 +setBitrate:, 8.80,39.50 +setBitrate:, 8.90,36.00 +setBitrate:, 9.00,36.50 +setBitrate:, 9.10,32.50 +setBitrate:, 9.20,41.00 +setBitrate:, 9.30,33.00 +setBitrate:, 9.40,39.00 +setBitrate:, 9.50,37.50 +setBitrate:, 9.60,34.50 +setBitrate:, 9.70,37.00 +setBitrate:, 9.80,42.50 +setBitrate:, 9.90,37.50 +setBitrate:, 10.00,35.50 +setBitrate:, 10.10,31.00 +setBitrate:, 10.20,41.00 +setBitrate:, 10.30,35.50 +setBitrate:, 10.40,38.00 +setBitrate:, 10.50,36.00 +setBitrate:, 10.60,39.00 +setBitrate:, 10.70,37.00 +setBitrate:, 10.80,36.50 +setBitrate:, 10.90,38.50 +setBitrate:, 11.00,29.50 +setBitrate:, 11.10,36.50 +setBitrate:, 11.20,39.00 +setBitrate:, 11.30,34.50 +setBitrate:, 11.40,31.00 +setBitrate:, 11.50,35.50 +setBitrate:, 11.60,35.00 +setBitrate:, 11.70,38.00 +setBitrate:, 11.80,39.00 +setBitrate:, 11.90,33.50 +setBitrate:, 12.00,41.00 +setBitrate:, 12.10,39.00 +setBitrate:, 12.20,38.50 +setBitrate:, 12.30,38.50 +setBitrate:, 12.40,38.00 +setBitrate:, 12.50,40.50 +setBitrate:, 12.60,38.50 +setBitrate:, 12.70,33.50 +setBitrate:, 12.80,35.50 +setBitrate:, 12.90,39.00 +setBitrate:, 13.00,36.50 +setBitrate:, 13.10,39.50 +setBitrate:, 13.20,39.00 +setBitrate:, 13.30,38.50 +setBitrate:, 13.40,38.50 +setBitrate:, 13.50,41.00 +setBitrate:, 13.60,40.00 +setBitrate:, 13.70,37.50 +setBitrate:, 13.80,38.50 +setBitrate:, 13.90,38.00 +setBitrate:, 14.00,38.00 +setBitrate:, 14.10,43.00 +setBitrate:, 14.20,33.00 +setBitrate:, 14.30,35.50 +setBitrate:, 14.40,40.00 +setBitrate:, 14.50,39.00 +setBitrate:, 14.60,38.00 +setBitrate:, 14.70,35.50 +setBitrate:, 14.80,37.00 +setBitrate:, 14.90,41.50 +setBitrate:, 15.00,36.00 +setBitrate:, 15.10,36.00 +setBitrate:, 15.20,37.50 +setBitrate:, 15.30,39.00 +setBitrate:, 15.40,36.50 +setBitrate:, 15.50,39.00 +setBitrate:, 15.60,34.50 +setBitrate:, 15.70,40.00 +setBitrate:, 15.80,39.50 +setBitrate:, 15.90,40.00 +setBitrate:, 16.00,32.50 +setBitrate:, 16.10,40.00 +setBitrate:, 16.20,36.50 +setBitrate:, 16.30,36.50 +setBitrate:, 16.40,37.50 +setBitrate:, 16.50,38.00 +setBitrate:, 16.60,35.00 +setBitrate:, 16.70,38.50 +setBitrate:, 16.80,40.50 +setBitrate:, 16.90,38.50 +setBitrate:, 17.00,37.00 +setBitrate:, 17.10,36.50 +setBitrate:, 17.20,38.50 +setBitrate:, 17.30,39.00 +setBitrate:, 17.40,37.00 +setBitrate:, 17.50,36.50 +setBitrate:, 17.60,39.00 +setBitrate:, 17.70,37.00 +setBitrate:, 17.80,41.00 +setBitrate:, 17.90,35.00 +setBitrate:, 18.00,30.00 +setBitrate:, 18.10,39.50 +setBitrate:, 18.20,41.00 +setBitrate:, 18.30,37.50 +setBitrate:, 18.40,37.00 +setBitrate:, 18.50,33.00 +setBitrate:, 18.60,37.50 +setBitrate:, 18.70,36.50 +setBitrate:, 18.80,12.00 +setBitrate:, 18.90,38.50 +setBitrate:, 19.00,35.00 +setBitrate:, 19.10,38.50 +setBitrate:, 19.20,36.00 +setBitrate:, 19.30,36.00 +setBitrate:, 19.40,38.00 +setBitrate:, 19.50,31.50 +setBitrate:, 19.60,37.00 +setBitrate:, 19.70,33.00 +setBitrate:, 19.80,35.00 +setBitrate:, 19.90,34.50 +setBitrate:, 20.00,35.00 +setBitrate:, 20.10,34.50 +setBitrate:, 20.20,36.00 +setBitrate:, 20.30,33.50 +setBitrate:, 20.40,38.00 +setBitrate:, 20.50,36.50 +setBitrate:, 20.60,35.50 +setBitrate:, 20.70,35.00 +setBitrate:, 20.80,33.00 +setBitrate:, 20.90,38.00 +setBitrate:, 21.00,36.00 +setBitrate:, 21.10,35.00 +setBitrate:, 21.20,30.00 +setBitrate:, 21.30,39.00 +setBitrate:, 21.40,37.00 +setBitrate:, 21.50,34.50 +setBitrate:, 21.60,32.00 +setBitrate:, 21.70,39.00 +setBitrate:, 21.80,35.00 +setBitrate:, 21.90,38.50 +setBitrate:, 22.00,31.50 +setBitrate:, 22.10,36.50 +setBitrate:, 22.20,36.50 +setBitrate:, 22.30,33.50 +setBitrate:, 22.40,35.50 +setBitrate:, 22.50,37.00 +setBitrate:, 22.60,35.50 +setBitrate:, 22.70,37.50 +setBitrate:, 22.80,31.00 +setBitrate:, 22.90,35.50 +setBitrate:, 23.00,29.00 +setBitrate:, 23.10,35.50 +setBitrate:, 23.20,31.50 +setBitrate:, 23.30,32.00 +setBitrate:, 23.40,33.50 +setBitrate:, 23.50,30.00 +setBitrate:, 23.60,28.50 +setBitrate:, 23.70,30.50 +setBitrate:, 23.80,29.00 +setBitrate:, 23.90,29.00 +setBitrate:, 24.00,24.50 +setBitrate:, 24.10,24.00 +setBitrate:, 24.20,25.00 +setBitrate:, 24.30,26.50 +setBitrate:, 24.40,23.00 +setBitrate:, 24.50,27.50 +setBitrate:, 24.60,26.50 +setBitrate:, 24.70,25.50 +setBitrate:, 24.80,21.50 +setBitrate:, 24.90,24.00 +setBitrate:, 25.00,26.00 +setBitrate:, 25.10,25.50 +setBitrate:, 25.20,25.00 +setBitrate:, 25.30,23.50 +setBitrate:, 25.40,24.00 +setBitrate:, 25.50,24.00 +setBitrate:, 25.60,26.50 +setBitrate:, 25.70,24.50 +setBitrate:, 25.80,23.50 +setBitrate:, 25.90,25.00 +setBitrate:, 26.00,23.50 +setBitrate:, 26.10,24.50 +setBitrate:, 26.20,26.50 +setBitrate:, 26.30,28.00 +setBitrate:, 26.40,28.00 +setBitrate:, 26.50,25.00 +setBitrate:, 26.60,25.50 +setBitrate:, 26.70,23.00 +setBitrate:, 26.80,24.50 +setBitrate:, 26.90,25.00 +setBitrate:, 27.00,26.00 +setBitrate:, 27.10,23.50 +setBitrate:, 27.20,25.50 +setBitrate:, 27.30,25.50 +setBitrate:, 27.40,27.50 +setBitrate:, 27.50,24.50 +setBitrate:, 27.60,25.50 +setBitrate:, 27.70,24.00 +setBitrate:, 27.80,27.50 +setBitrate:, 27.90,24.00 +setBitrate:, 28.00,24.00 +setBitrate:, 28.10,25.50 +setBitrate:, 28.20,25.00 +setBitrate:, 28.30,26.00 +setBitrate:, 28.40,21.00 +setBitrate:, 28.50,21.50 +setBitrate:, 28.60,24.00 +setBitrate:, 28.70,26.50 +setBitrate:, 28.80,24.00 +setBitrate:, 28.90,22.50 +setBitrate:, 29.00,23.00 +setBitrate:, 29.10,30.00 +setBitrate:, 29.20,25.00 +setBitrate:, 29.30,29.00 +setBitrate:, 29.40,20.00 +setBitrate:, 29.50,3.00 +setBitrate:, 29.60,30.00 +setBitrate:, 29.70,29.00 +setBitrate:, 29.80,25.00 +setBitrate:, 29.90,24.00 +setBitrate:, 30.00,32.00 +setBitrate:, 30.10,29.00 +setBitrate:, 30.20,23.00 +setBitrate:, 30.30,27.00 +setBitrate:, 30.40,32.00 +setBitrate:, 30.50,25.00 +setBitrate:, 30.60,26.00 +setBitrate:, 30.70,28.00 +setBitrate:, 30.80,21.00 +setBitrate:, 30.90,24.00 +setBitrate:, 31.00,26.00 +setBitrate:, 31.10,29.00 +setBitrate:, 31.20,28.00 +setBitrate:, 31.30,25.00 +setBitrate:, 31.40,27.00 +setBitrate:, 31.50,29.00 +setBitrate:, 31.60,30.00 +setBitrate:, 31.70,25.00 +setBitrate:, 31.80,22.00 +setBitrate:, 31.90,25.00 +setBitrate:, 32.00,22.00 +setBitrate:, 32.10,29.00 +setBitrate:, 32.20,21.00 +setBitrate:, 32.30,24.00 +setBitrate:, 32.40,32.00 +setBitrate:, 32.50,16.00 +setBitrate:, 32.60,23.00 +setBitrate:, 32.70,27.00 diff --git a/Tuning/setBitrate_bitrate_14.csv b/Tuning/setBitrate_bitrate_14.csv new file mode 100644 index 0000000..eb1b411 --- /dev/null +++ b/Tuning/setBitrate_bitrate_14.csv @@ -0,0 +1,100 @@ +setBitrate:, 14.00,23.23 +setBitrate:, 14.01,26.43 +setBitrate:, 14.02,29.00 +setBitrate:, 14.03,25.36 +setBitrate:, 14.04,25.85 +setBitrate:, 14.05,28.77 +setBitrate:, 14.06,25.23 +setBitrate:, 14.07,25.54 +setBitrate:, 14.08,25.62 +setBitrate:, 14.09,26.08 +setBitrate:, 14.10,25.00 +setBitrate:, 14.11,24.08 +setBitrate:, 14.12,24.15 +setBitrate:, 14.13,28.54 +setBitrate:, 14.14,28.15 +setBitrate:, 14.15,28.69 +setBitrate:, 14.16,27.92 +setBitrate:, 14.17,29.58 +setBitrate:, 14.18,25.67 +setBitrate:, 14.19,29.25 +setBitrate:, 14.20,28.42 +setBitrate:, 14.21,22.83 +setBitrate:, 14.22,27.50 +setBitrate:, 14.23,21.75 +setBitrate:, 14.24,26.00 +setBitrate:, 14.25,26.08 +setBitrate:, 14.26,25.17 +setBitrate:, 14.27,24.75 +setBitrate:, 14.28,25.25 +setBitrate:, 14.29,26.58 +setBitrate:, 14.30,27.83 +setBitrate:, 14.31,26.67 +setBitrate:, 14.32,27.25 +setBitrate:, 14.33,25.17 +setBitrate:, 14.34,27.92 +setBitrate:, 14.35,27.67 +setBitrate:, 14.36,26.67 +setBitrate:, 14.37,25.50 +setBitrate:, 14.38,24.00 +setBitrate:, 14.39,26.17 +setBitrate:, 14.40,24.50 +setBitrate:, 14.41,25.92 +setBitrate:, 14.42,22.09 +setBitrate:, 14.43,23.55 +setBitrate:, 14.44,27.18 +setBitrate:, 14.45,28.09 +setBitrate:, 14.46,25.09 +setBitrate:, 14.47,26.91 +setBitrate:, 14.48,24.82 +setBitrate:, 14.49,25.18 +setBitrate:, 14.50,26.91 +setBitrate:, 14.51,27.64 +setBitrate:, 14.52,27.73 +setBitrate:, 14.53,25.60 +setBitrate:, 14.54,25.80 +setBitrate:, 14.55,24.40 +setBitrate:, 14.56,26.80 +setBitrate:, 14.57,27.20 +setBitrate:, 14.58,26.50 +setBitrate:, 14.59,27.10 +setBitrate:, 14.60,27.10 +setBitrate:, 14.61,26.70 +setBitrate:, 14.62,27.89 +setBitrate:, 14.63,26.00 +setBitrate:, 14.64,28.56 +setBitrate:, 14.65,26.44 +setBitrate:, 14.66,27.89 +setBitrate:, 14.67,25.00 +setBitrate:, 14.68,28.89 +setBitrate:, 14.69,26.44 +setBitrate:, 14.70,26.56 +setBitrate:, 14.71,26.56 +setBitrate:, 14.72,27.44 +setBitrate:, 14.73,26.25 +setBitrate:, 14.74,28.50 +setBitrate:, 14.75,27.12 +setBitrate:, 14.76,27.25 +setBitrate:, 14.77,24.88 +setBitrate:, 14.78,27.25 +setBitrate:, 14.79,26.88 +setBitrate:, 14.80,27.00 +setBitrate:, 14.81,27.00 +setBitrate:, 14.82,25.71 +setBitrate:, 14.83,29.00 +setBitrate:, 14.84,28.86 +setBitrate:, 14.85,26.14 +setBitrate:, 14.86,27.71 +setBitrate:, 14.87,25.17 +setBitrate:, 14.88,27.50 +setBitrate:, 14.89,27.50 +setBitrate:, 14.90,25.33 +setBitrate:, 14.91,28.67 +setBitrate:, 14.92,28.67 +setBitrate:, 14.93,23.33 +setBitrate:, 14.94,23.00 +setBitrate:, 14.95,25.60 +setBitrate:, 14.96,26.80 +setBitrate:, 14.97,29.40 +setBitrate:, 14.98,26.80 +setBitrate:, 14.99,26.40 diff --git a/Tuning/setRxBw.csv b/Tuning/setRxBw.csv new file mode 100644 index 0000000..1cfee1a --- /dev/null +++ b/Tuning/setRxBw.csv @@ -0,0 +1,50 @@ +setRxBandwidth:, 5.00,11.59 +setRxBandwidth:, 10.00,5.53 +setRxBandwidth:, 15.00,0.66 +setRxBandwidth:, 20.00,28.50 +setRxBandwidth:, 25.00,15.11 +setRxBandwidth:, 30.00,8.96 +setRxBandwidth:, 35.00,29.00 +setRxBandwidth:, 40.00,32.16 +setRxBandwidth:, 45.00,28.12 +setRxBandwidth:, 50.00,32.40 +setRxBandwidth:, 55.00,15.76 +setRxBandwidth:, 60.00,31.33 +setRxBandwidth:, 65.00,33.22 +setRxBandwidth:, 70.00,33.05 +setRxBandwidth:, 75.00,32.00 +setRxBandwidth:, 80.00,35.23 +setRxBandwidth:, 85.00,33.64 +setRxBandwidth:, 90.00,36.18 +setRxBandwidth:, 95.00,30.32 +setRxBandwidth:, 100.00,35.26 +setRxBandwidth:, 105.00,22.47 +setRxBandwidth:, 110.00,27.11 +setRxBandwidth:, 115.00,34.17 +setRxBandwidth:, 120.00,32.06 +setRxBandwidth:, 125.00,35.67 +setRxBandwidth:, 130.00,23.50 +setRxBandwidth:, 135.00,33.61 +setRxBandwidth:, 140.00,33.65 +setRxBandwidth:, 145.00,31.41 +setRxBandwidth:, 150.00,36.18 +setRxBandwidth:, 155.00,32.53 +setRxBandwidth:, 160.00,36.35 +setRxBandwidth:, 165.00,30.94 +setRxBandwidth:, 170.00,31.18 +setRxBandwidth:, 175.00,33.76 +setRxBandwidth:, 180.00,30.00 +setRxBandwidth:, 185.00,35.41 +setRxBandwidth:, 190.00,34.65 +setRxBandwidth:, 195.00,30.06 +setRxBandwidth:, 200.00,36.76 +setRxBandwidth:, 205.00,25.00 +setRxBandwidth:, 210.00,33.94 +setRxBandwidth:, 215.00,34.44 +setRxBandwidth:, 220.00,32.12 +setRxBandwidth:, 225.00,28.75 +setRxBandwidth:, 230.00,39.06 +setRxBandwidth:, 235.00,34.38 +setRxBandwidth:, 240.00,36.81 +setRxBandwidth:, 245.00,35.31 +setRxBandwidth:, 250.00,35.25 diff --git a/Tuning/setRxBw_tuned.csv b/Tuning/setRxBw_tuned.csv new file mode 100644 index 0000000..6533423 --- /dev/null +++ b/Tuning/setRxBw_tuned.csv @@ -0,0 +1,41 @@ +setRxBandwidth:, 210.00,25.41 +setRxBandwidth:, 211.00,28.21 +setRxBandwidth:, 212.00,22.17 +setRxBandwidth:, 213.00,28.09 +setRxBandwidth:, 214.00,31.46 +setRxBandwidth:, 215.00,34.95 +setRxBandwidth:, 216.00,35.49 +setRxBandwidth:, 217.00,34.08 +setRxBandwidth:, 218.00,29.19 +setRxBandwidth:, 219.00,28.00 +setRxBandwidth:, 220.00,29.58 +setRxBandwidth:, 221.00,33.86 +setRxBandwidth:, 222.00,36.14 +setRxBandwidth:, 223.00,37.44 +setRxBandwidth:, 224.00,32.92 +setRxBandwidth:, 225.00,30.25 +setRxBandwidth:, 226.00,29.34 +setRxBandwidth:, 227.00,32.24 +setRxBandwidth:, 228.00,35.36 +setRxBandwidth:, 229.00,38.03 +setRxBandwidth:, 230.00,39.38 +setRxBandwidth:, 231.00,36.42 +setRxBandwidth:, 232.00,30.23 +setRxBandwidth:, 233.00,30.13 +setRxBandwidth:, 234.00,31.20 +setRxBandwidth:, 235.00,34.30 +setRxBandwidth:, 236.00,37.70 +setRxBandwidth:, 237.00,37.53 +setRxBandwidth:, 238.00,29.97 +setRxBandwidth:, 239.00,26.83 +setRxBandwidth:, 240.00,27.30 +setRxBandwidth:, 241.00,34.10 +setRxBandwidth:, 242.00,34.50 +setRxBandwidth:, 243.00,36.63 +setRxBandwidth:, 244.00,37.20 +setRxBandwidth:, 245.00,29.97 +setRxBandwidth:, 246.00,27.00 +setRxBandwidth:, 247.00,31.83 +setRxBandwidth:, 248.00,34.63 +setRxBandwidth:, 249.00,35.43 +setRxBandwidth:, 250.00,36.47 diff --git a/example/OOK_Receiver/OOK_Receiver.ino b/example/OOK_Receiver/OOK_Receiver.ino index 7f78029..b6afc9f 100644 --- a/example/OOK_Receiver/OOK_Receiver.ino +++ b/example/OOK_Receiver/OOK_Receiver.ino @@ -112,7 +112,7 @@ void loop() { #if defined(setBitrate) || defined(setFreqDev) || defined(setRxBW) char stepPrint[8]; if (uptime() > next) { - next = uptime() + 120; // 60 seconds + next = uptime() + 60; // 60 seconds dtostrf(step, 7, 2, stepPrint); Log.notice(F(CR "Finished %s: %s, count: %d" CR), TEST, stepPrint, count); step += STEP; diff --git a/example/OOK_Receiver/platformio.ini b/example/OOK_Receiver/platformio.ini index 847a9f6..0c93e1d 100644 --- a/example/OOK_Receiver/platformio.ini +++ b/example/OOK_Receiver/platformio.ini @@ -207,7 +207,7 @@ build_flags = ; '-DRTL_DEBUG' ; rtl_433 verbose mode ; '-DRTL_VERBOSE=19' ; LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3, TX141W, TX145wsdth sensor ; '-DRTL_ANALYZER=true' - ; '-DRAW_SIGNAL_DEBUG=true' ; display raw received messages + '-DRAW_SIGNAL_DEBUG=true' ; display raw received messages ; '-DMEMORY_DEBUG=true' ; display memory usage information ; '-DSTACK_DEBUG=true' ; display stack usage information ; '-DDEMOD_DEBUG=true' ; display signal debug info @@ -235,9 +235,9 @@ build_flags = ; '-DRADIOLIB_DEBUG=true' ; '-DRADIOLIB_VERBOSE=true' ; *** FSK Setting Testing *** - ; '-DsetBitrate' + '-DsetBitrate' ;'-DsetFreqDev' - ; '-DsetRxBW' + '-DsetRxBW' monitor_speed = 921600 diff --git a/library.properties b/library.properties new file mode 100644 index 0000000..e84da32 --- /dev/null +++ b/library.properties @@ -0,0 +1,11 @@ +name=rtl_433_ESP +version=0.5.0 +author=NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com> +maintainer=NorthernMan54 <19808920+NorthernMan54@users.noreply.github.com> +sentence=RTL_433 433.92 MHz protocols library for Arduino +paragraph=With this port of RTL_433 433.92 MHz protocols, you can receive and parse all 434 MHz protocols (e.g., rc switches or weather stations) supported by rtl_433. This should help to implement IoT bridges between the 434MHz-RF band and internet protocols. It is developed and tested on ESP32. +category=Communication +url=https://github.com/NorthernMan54/rtl_433_ESP +architectures=esp32 +includes=rtl_433_ESP.h +depends=RadioLib (>=7.2.1) diff --git a/src/rtl_433_ESP.cpp b/src/rtl_433_ESP.cpp index d779268..1c59f1b 100644 --- a/src/rtl_433_ESP.cpp +++ b/src/rtl_433_ESP.cpp @@ -972,7 +972,7 @@ void rtl_433_ESP::getModuleStatus() { * Functions used only during testing * */ -#if defined(setBitrate) || defined(setFreqDev) || defined(setRxBW) +#if defined(setBitrate) || defined(setFreqDev) || defined(setRxBW) || defined(setDataShapingOOK) int16_t rtl_433_ESP::setFrequencyDeviation(float value) { return radio.setFrequencyDeviation(value); } @@ -992,4 +992,11 @@ int16_t rtl_433_ESP::setBitRate(float value) { int16_t rtl_433_ESP::setRxBandwidth(float value) { return radio.setRxBandwidth(value); } + +#if defined(RF_SX1276) || defined(RF_SX1278) +int16_t rtl_433_ESP::setDataShapingOOK(int value) { + return radio.setDataShapingOOK(value); // Default 0 ( 0, 1, 2 ) +} +#endif + #endif diff --git a/src/rtl_433_ESP.h b/src/rtl_433_ESP.h index 5c2f909..ff28144 100644 --- a/src/rtl_433_ESP.h +++ b/src/rtl_433_ESP.h @@ -334,11 +334,12 @@ class rtl_433_ESP { /** * Functions used during testing */ -#if defined(setBitrate) || defined(setFreqDev) || defined(setRxBW) +#if defined(setBitrate) || defined(setFreqDev) || defined(setRxBW) || defined(setDataShapingOOK) int16_t setFrequencyDeviation(float); int16_t setBitRate(float); int16_t setRxBandwidth(float); int16_t receiveDirect(); + int16_t setDataShapingOOK(int); #endif /** diff --git a/src/signalDecoder.cpp b/src/signalDecoder.cpp index 8545191..be90006 100644 --- a/src/signalDecoder.cpp +++ b/src/signalDecoder.cpp @@ -41,8 +41,13 @@ # endif #endif -#define rtl_433_Decoder_Priority 2 -#define rtl_433_Decoder_Core 1 +#ifdef CONFIG_FREERTOS_UNICORE +# define rtl_433_Decoder_Core 0 +# define rtl_433_Decoder_Priority 3 +#else +# define rtl_433_Decoder_Core 1 +# define rtl_433_Decoder_Priority 2 +#endif /*----------------------------- rtl_433_ESP Internals -----------------------------*/ @@ -513,7 +518,7 @@ void rtl_433_DecoderTask(void* pvParameters) { #ifdef MEMORY_DEBUG logprintfLn(LOG_INFO, "Pre run_%s_demods: %d", rtl_433_ESP::ookModulation ? "OOK" : "FSK", ESP.getFreeHeap()); #endif - rtl_pulses->sample_rate = 1.0e6; + rtl_pulses->sample_rate = 1024000; r_cfg_t* cfg = &g_cfg; cfg->demod->pulse_data = *rtl_pulses; int events = 0;