diff --git a/_weather_sensor_cfg_8h_source.html b/_weather_sensor_cfg_8h_source.html index 47e308d6..50712a2d 100644 --- a/_weather_sensor_cfg_8h_source.html +++ b/_weather_sensor_cfg_8h_source.html @@ -134,450 +134,451 @@
47 // 20230804 Added Bresser Water Leakage Sensor decoder
48 // 20230926 Added pin definitions for Adafruit Feather RP2040 with RFM95W "FeatherWing" ADA3232
49 // 20230927 Removed _DEBUG_MODE_ (log_d() is used instead)
-
50 //
-
51 // ToDo:
-
52 // -
-
53 //
-
55 
-
56 #if !defined(WEATHER_SENSOR_CFG_H)
-
57 #define WEATHER_SENSOR_CFG_H
-
58 
-
59 #include <Arduino.h>
-
60 
-
61 // ------------------------------------------------------------------------------------------------
-
62 // --- Board ---
-
63 // ------------------------------------------------------------------------------------------------
-
64 // Use pinning for LoRaWAN Node
-
65 
+
50 // 20231004 Added function names and line numbers to ESP8266/RP2040 debug logging
+
51 //
+
52 // ToDo:
+
53 // -
+
54 //
+
56 
+
57 #if !defined(WEATHER_SENSOR_CFG_H)
+
58 #define WEATHER_SENSOR_CFG_H
+
59 
+
60 #include <Arduino.h>
+
61 
+
62 // ------------------------------------------------------------------------------------------------
+
63 // --- Board ---
+
64 // ------------------------------------------------------------------------------------------------
+
65 // Use pinning for LoRaWAN Node
66 
-
67 // LILIGO TTGO LoRaP32 board with integrated RF tranceiver (SX1276)
-
68 // See pin definitions in
-
69 // https://github.com/espressif/arduino-esp32/tree/master/variants/ttgo-lora32-*
-
70 // and
-
71 // https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-2/11973
-
72 
-
73 // This define is set by selecting "Board: TTGO LoRa32-OLED" / "Board Revision: TTGO LoRa32 V1 (No TFCard)"
-
74 // in the Arduino IDE:
-
75 //#define ARDUINO_TTGO_LoRa32_V1
-
76 
-
77 // This define is set by selecting "Board: TTGO LoRa32-OLED" / "Board Revision: TTGO LoRa32 V2"
-
78 // in the Arduino IDE:
-
79 //#define ARDUINO_TTGO_LoRa32_V2
-
80 
-
81 // This define is set by selecting "Board: TTGO LoRa32-OLED" / "Board Revision: TTGO LoRa32 V2.1 (1.6.1)"
-
82 // in the Arduino IDE:
-
83 //#define ARDUINO_TTGO_LoRa32_V21new
-
84 
-
85 // This define is set by selecting "Board: Heltec Wireless Stick"
-
86 // in the Arduino IDE:
-
87 //#define ARDUINO_heltec_wireless_stick
-
88 
-
89 // This define is set by selecting "Board: Heltec WiFi LoRa 32(V2)"
-
90 // in the Adruino IDE:
-
91 //#define ARDUINO_heltec_wifi_lora_32_V2
-
92 
-
93 // Adafruit Feather ESP32S2 with RFM95W "FeatherWing" ADA3232
-
94 // https://github.com/espressif/arduino-esp32/blob/master/variants/adafruit_feather_esp32s2/pins_arduino.h
-
95 //
-
96 // This define is set by selecting "Adafruit Feather ESP32-S2" in the Arduino IDE:
-
97 //#define ARDUINO_ADAFRUIT_FEATHER_ESP32S2
-
98 
-
99 // Adafruit Feather ESP32 with RFM95W "FeatherWing" ADA3232
-
100 // https://github.com/espressif/arduino-esp32/blob/master/variants/feather_esp32/pins_arduino.h
-
101 //
-
102 // This define is set by selecting "Adafruit ESP32 Feather" in the Arduino IDE:
-
103 //#define ARDUINO_FEATHER_ESP32
-
104 
-
105 // Adafruit Feather RP2040 with RFM95W "FeatherWing" ADA3232
-
106 // https://github.com/earlephilhower/arduino-pico/blob/master/variants/adafruit_feather/pins_arduino.h
-
107 //
-
108 // This define is set by selecting "Adafruit Feather RP2040" in the Arduino IDE:
-
109 //#define ARDUINO_ADAFRUIT_FEATHER_RP2040
-
110 
-
111 // DFRobot Firebeetle32
-
112 // https://github.com/espressif/arduino-esp32/tree/master/variants/firebeetle32/pins_arduino.h
-
113 //
-
114 // This define (not very specific...) is set by selecting "FireBeetle-ESP32" in the Arduino IDE:
-
115 //#define ARDUINO_ESP32_DEV
-
116 
-
117 #if defined(ARDUINO_TTGO_LoRa32_V1)
-
118  #pragma message("ARDUINO_TTGO_LoRa32_V1 defined; using on-board transceiver")
-
119  #define USE_SX1276
-
120 
-
121 #elif defined(ARDUINO_TTGO_LoRa32_V2)
-
122  #pragma message("ARDUINO_TTGO_LoRa32_V2 defined; using on-board transceiver")
-
123  #pragma message("LoRa DIO1 must be wired to GPIO33 manually!")
-
124  #define USE_SX1276
-
125 
-
126 #elif defined(ARDUINO_TTGO_LoRa32_v21new)
-
127  #pragma message("ARDUINO_TTGO_LoRa32_V21new defined; using on-board transceiver")
-
128  #define USE_SX1276
-
129 
-
130 #elif defined(ARDUINO_heltec_wireless_stick)
-
131  #pragma message("ARDUINO_heltec_wireless_stick defined; using on-board transceiver")
-
132  #define USE_SX1276
-
133 
-
134 #elif defined(ARDUINO_heltec_wifi_lora_32_V2)
-
135  #pragma message("ARDUINO_heltec_wifi_lora_32_V2 defined; using on-board transceiver")
-
136  #define USE_SX1276
-
137 
-
138 #elif defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2)
-
139  #pragma message("ARDUINO_ADAFRUIT_FEATHER_ESP32S2 defined; assuming RFM95W FeatherWing will be used")
-
140  #define USE_SX1276
-
141 
-
142 #elif defined(ARDUINO_FEATHER_ESP32)
-
143  #pragma message("ARDUINO_FEATHER_ESP32 defined; assuming RFM95W FeatherWing will be used")
-
144  #define USE_SX1276
-
145  #pragma message("Required wiring: A to RST, B to DIO1, D to DIO0, E to CS")
-
146 
-
147 #elif defined(ARDUINO_AVR_FEATHER32U4)
-
148  #pragma message("ARDUINO_AVR_FEATHER32U4 defined; assuming this is the Adafruit Feather 32u4 RFM95 LoRa Radio")
-
149  #define USE_SX1276
-
150 
-
151 #elif defined(ARDUINO_ADAFRUIT_FEATHER_RP2040)
-
152  #pragma message("ARDUINO_ADAFRUIT_FEATHER_RP2040 defined; assuming assuming RFM95W FeatherWing will be used")
-
153  #define USE_SX1276
-
154  #pragma message("Required wiring: A to RST, B to DIO1, D to DIO0, E to CS")
-
155 
-
156 #elif defined(ARDUINO_ESP32_DEV)
-
157  //#define LORAWAN_NODE
-
158  #define FIREBEETLE_ESP32_COVER_LORA
-
159 
-
160  #if !defined(LORAWAN_NODE) && !defined(FIREBEETLE_ESP32_COVER_LORA)
-
161  #pragma message("ARDUINO_ESP32_DEV defined; select either LORAWAN_NODE or FIREBEETLE_ESP32_COVER_LORA manually!")
-
162 
-
163  #elif defined(LORAWAN_NODE)
-
164  #pragma message("LORAWAN_NODE defined; assuming this is the LoRaWAN_Node board (DFRobot Firebeetle32 + Adafruit RFM95W LoRa Radio)")
-
165  #define USE_SX1276
-
166 
-
167  #elif defined(FIREBEETLE_ESP32_COVER_LORA)
-
168  #define USE_SX1276
-
169  #pragma message("FIREBEETLE_ESP32_COVER_LORA defined; assuming this is a FireBeetle ESP32 with FireBeetle Cover LoRa")
-
170  #pragma message("Required wiring: D2 to RESET, D3 to DIO0, D4 to CS, D5 to DIO1")
-
171 
-
172  #endif
-
173 #endif
-
174 
+
67 
+
68 // LILIGO TTGO LoRaP32 board with integrated RF tranceiver (SX1276)
+
69 // See pin definitions in
+
70 // https://github.com/espressif/arduino-esp32/tree/master/variants/ttgo-lora32-*
+
71 // and
+
72 // https://www.thethingsnetwork.org/forum/t/big-esp32-sx127x-topic-part-2/11973
+
73 
+
74 // This define is set by selecting "Board: TTGO LoRa32-OLED" / "Board Revision: TTGO LoRa32 V1 (No TFCard)"
+
75 // in the Arduino IDE:
+
76 //#define ARDUINO_TTGO_LoRa32_V1
+
77 
+
78 // This define is set by selecting "Board: TTGO LoRa32-OLED" / "Board Revision: TTGO LoRa32 V2"
+
79 // in the Arduino IDE:
+
80 //#define ARDUINO_TTGO_LoRa32_V2
+
81 
+
82 // This define is set by selecting "Board: TTGO LoRa32-OLED" / "Board Revision: TTGO LoRa32 V2.1 (1.6.1)"
+
83 // in the Arduino IDE:
+
84 //#define ARDUINO_TTGO_LoRa32_V21new
+
85 
+
86 // This define is set by selecting "Board: Heltec Wireless Stick"
+
87 // in the Arduino IDE:
+
88 //#define ARDUINO_heltec_wireless_stick
+
89 
+
90 // This define is set by selecting "Board: Heltec WiFi LoRa 32(V2)"
+
91 // in the Adruino IDE:
+
92 //#define ARDUINO_heltec_wifi_lora_32_V2
+
93 
+
94 // Adafruit Feather ESP32S2 with RFM95W "FeatherWing" ADA3232
+
95 // https://github.com/espressif/arduino-esp32/blob/master/variants/adafruit_feather_esp32s2/pins_arduino.h
+
96 //
+
97 // This define is set by selecting "Adafruit Feather ESP32-S2" in the Arduino IDE:
+
98 //#define ARDUINO_ADAFRUIT_FEATHER_ESP32S2
+
99 
+
100 // Adafruit Feather ESP32 with RFM95W "FeatherWing" ADA3232
+
101 // https://github.com/espressif/arduino-esp32/blob/master/variants/feather_esp32/pins_arduino.h
+
102 //
+
103 // This define is set by selecting "Adafruit ESP32 Feather" in the Arduino IDE:
+
104 //#define ARDUINO_FEATHER_ESP32
+
105 
+
106 // Adafruit Feather RP2040 with RFM95W "FeatherWing" ADA3232
+
107 // https://github.com/espressif/arduino-esp32/blob/master/variants/feather_esp32/pins_arduino.h
+
108 //
+
109 // This define is set by selecting "Adafruit Feather RP2040" in the Arduino IDE:
+
110 //#define ARDUINO_ADAFRUIT_FEATHER_RP2040
+
111 
+
112 // DFRobot Firebeetle32
+
113 // https://github.com/espressif/arduino-esp32/tree/master/variants/firebeetle32/pins_arduino.h
+
114 //
+
115 // This define (not very specific...) is set by selecting "FireBeetle-ESP32" in the Arduino IDE:
+
116 //#define ARDUINO_ESP32_DEV
+
117 
+
118 #if defined(ARDUINO_TTGO_LoRa32_V1)
+
119  #pragma message("ARDUINO_TTGO_LoRa32_V1 defined; using on-board transceiver")
+
120  #define USE_SX1276
+
121 
+
122 #elif defined(ARDUINO_TTGO_LoRa32_V2)
+
123  #pragma message("ARDUINO_TTGO_LoRa32_V2 defined; using on-board transceiver")
+
124  #pragma message("LoRa DIO1 must be wired to GPIO33 manually!")
+
125  #define USE_SX1276
+
126 
+
127 #elif defined(ARDUINO_TTGO_LoRa32_v21new)
+
128  #pragma message("ARDUINO_TTGO_LoRa32_V21new defined; using on-board transceiver")
+
129  #define USE_SX1276
+
130 
+
131 #elif defined(ARDUINO_heltec_wireless_stick)
+
132  #pragma message("ARDUINO_heltec_wireless_stick defined; using on-board transceiver")
+
133  #define USE_SX1276
+
134 
+
135 #elif defined(ARDUINO_heltec_wifi_lora_32_V2)
+
136  #pragma message("ARDUINO_heltec_wifi_lora_32_V2 defined; using on-board transceiver")
+
137  #define USE_SX1276
+
138 
+
139 #elif defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2)
+
140  #pragma message("ARDUINO_ADAFRUIT_FEATHER_ESP32S2 defined; assuming RFM95W FeatherWing will be used")
+
141  #define USE_SX1276
+
142 
+
143 #elif defined(ARDUINO_FEATHER_ESP32)
+
144  #pragma message("ARDUINO_FEATHER_ESP32 defined; assuming RFM95W FeatherWing will be used")
+
145  #define USE_SX1276
+
146  #pragma message("Required wiring: A to RST, B to DIO1, D to DIO0, E to CS")
+
147 
+
148 #elif defined(ARDUINO_AVR_FEATHER32U4)
+
149  #pragma message("ARDUINO_AVR_FEATHER32U4 defined; assuming this is the Adafruit Feather 32u4 RFM95 LoRa Radio")
+
150  #define USE_SX1276
+
151 
+
152 #elif defined(ARDUINO_ADAFRUIT_FEATHER_RP2040)
+
153  #pragma message("ARDUINO_ADAFRUIT_FEATHER_RP2040 defined; assuming assuming RFM95W FeatherWing will be used")
+
154  #define USE_SX1276
+
155  #pragma message("Required wiring: A to RST, B to DIO1, D to DIO0, E to CS")
+
156 
+
157 #elif defined(ARDUINO_ESP32_DEV)
+
158  //#define LORAWAN_NODE
+
159  #define FIREBEETLE_ESP32_COVER_LORA
+
160 
+
161  #if !defined(LORAWAN_NODE) && !defined(FIREBEETLE_ESP32_COVER_LORA)
+
162  #pragma message("ARDUINO_ESP32_DEV defined; select either LORAWAN_NODE or FIREBEETLE_ESP32_COVER_LORA manually!")
+
163 
+
164  #elif defined(LORAWAN_NODE)
+
165  #pragma message("LORAWAN_NODE defined; assuming this is the LoRaWAN_Node board (DFRobot Firebeetle32 + Adafruit RFM95W LoRa Radio)")
+
166  #define USE_SX1276
+
167 
+
168  #elif defined(FIREBEETLE_ESP32_COVER_LORA)
+
169  #define USE_SX1276
+
170  #pragma message("FIREBEETLE_ESP32_COVER_LORA defined; assuming this is a FireBeetle ESP32 with FireBeetle Cover LoRa")
+
171  #pragma message("Required wiring: D2 to RESET, D3 to DIO0, D4 to CS, D5 to DIO1")
+
172 
+
173  #endif
+
174 #endif
175 
-
176 // ------------------------------------------------------------------------------------------------
-
177 // --- Radio Transceiver ---
-
178 // ------------------------------------------------------------------------------------------------
-
179 // Select type of receiver module (if not yet defined based on the assumptions above)
-
180 #if ( !defined(USE_CC1101) && !defined(USE_SX1276) )
-
181  //#define USE_CC1101
-
182  #define USE_SX1276
-
183 #endif
-
184 
+
176 
+
177 // ------------------------------------------------------------------------------------------------
+
178 // --- Radio Transceiver ---
+
179 // ------------------------------------------------------------------------------------------------
+
180 // Select type of receiver module (if not yet defined based on the assumptions above)
+
181 #if ( !defined(USE_CC1101) && !defined(USE_SX1276) )
+
182  //#define USE_CC1101
+
183  #define USE_SX1276
+
184 #endif
185 
-
186 // ------------------------------------------------------------------------------------------------
-
187 // --- Weather Sensors ---
-
188 // ------------------------------------------------------------------------------------------------
-
189 #define NUM_SENSORS 1 // Number of sensors to be received
-
190 
-
191 // List of sensor IDs to be excluded - can be empty
-
192 #define SENSOR_IDS_EXC { 0x792882A2 }
-
193 //#define SENSOR_IDS_EXC { 0x792882A2 }
-
194 
-
195 // List of sensor IDs to be included - if empty, handle all available sensors
-
196 #define SENSOR_IDS_INC {}
-
197 //#define SENSOR_IDS_INC { 0x83750871 }
-
198 
-
199 // List of sensor IDs of the model "BRESSER 3-in-1 Professional Wind Gauge / Anemometer"
-
200 // P/N 7002531 - requiring special heandling in decodeBresser5In1Payload()
-
201 //#define SENSOR_IDS_DECODE3IN1 {}
-
202 #define SENSOR_IDS_DECODE3IN1 { 0x2C100512 }
-
203 
-
204 // ------------------------------------------------------------------------------------------------
-
205 // --- Debug Logging Output ---
-
206 // ------------------------------------------------------------------------------------------------
-
207 // - ESP32:
-
208 // CORE_DEBUG_LEVEL is set in Adruino IDE:
-
209 // Tools->Core Debug Level: "<None>|<Error>|<Warning>|<Info>|<Debug>|<Verbose>"
-
210 // https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-log.h
-
211 //
-
212 // - ESP8266:
-
213 // DEBUG_ESP_PORT is set in Arduino IDE:
-
214 // Tools->Debug port: "<None>|<Serial>|<Serial1>"
-
215 //
-
216 // - RP2040:
-
217 // DEBUG_RP2040_PORT is set in Arduino IDE:
-
218 // Tools->Debug port: "<Disabled>|<Serial>|<Serial1>|<Serial2>"
-
219 //
-
220 // Replacement for
-
221 // https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-log.h
-
222 // on ESP8266 and RP2040:
-
223 #if defined(ESP8266) || defined(ARDUINO_ARCH_RP2040)
-
224  #define ARDUHAL_LOG_LEVEL_NONE 0
-
225  #define ARDUHAL_LOG_LEVEL_ERROR 1
-
226  #define ARDUHAL_LOG_LEVEL_WARN 2
-
227  #define ARDUHAL_LOG_LEVEL_INFO 3
-
228  #define ARDUHAL_LOG_LEVEL_DEBUG 4
-
229  #define ARDUHAL_LOG_LEVEL_VERBOSE 5
-
230 
-
231  #if defined(ARDUINO_ARCH_RP2040) && defined(DEBUG_RP2040_PORT)
-
232  #define DEBUG_PORT DEBUG_RP2040_PORT
-
233  #elif defined(DEBUG_ESP_PORT)
-
234  #define DEBUG_PORT DEBUG_ESP_PORT
-
235  #endif
-
236 
-
237  // Set desired level here!
-
238  #define CORE_DEBUG_LEVEL ARDUHAL_LOG_LEVEL_DEBUG
-
239 
-
240  #if defined(DEBUG_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_NONE
-
241  #define log_e(...) { DEBUG_PORT.printf(__VA_ARGS__); DEBUG_PORT.println(); }
-
242  #else
-
243  #define log_e(...) {}
-
244  #endif
-
245  #if defined(DEBUG_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_ERROR
-
246  #define log_w(...) { DEBUG_PORT.printf(__VA_ARGS__); DEBUG_PORT.println(); }
-
247  #else
-
248  #define log_w(...) {}
-
249  #endif
-
250  #if defined(DEBUG_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_WARN
-
251  #define log_i(...) { DEBUG_PORT.printf(__VA_ARGS__); DEBUG_PORT.println(); }
-
252  #else
-
253  #define log_i(...) {}
-
254  #endif
-
255  #if defined(DEBUG_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_INFO
-
256  #define log_d(...) { DEBUG_PORT.printf(__VA_ARGS__); DEBUG_PORT.println(); }
-
257  #else
-
258  #define log_d(...) {}
-
259  #endif
-
260  #if defined(DEBUG_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_DEBUG
-
261  #define log_v(...) { DEBUG_PORT.printf(__VA_ARGS__); DEBUG_PORT.println(); }
-
262  #else
-
263  #define log_v(...) {}
-
264  #endif
-
265 
-
266 #endif
-
267 
+
186 
+
187 // ------------------------------------------------------------------------------------------------
+
188 // --- Weather Sensors ---
+
189 // ------------------------------------------------------------------------------------------------
+
190 #define NUM_SENSORS 1 // Number of sensors to be received
+
191 
+
192 // List of sensor IDs to be excluded - can be empty
+
193 #define SENSOR_IDS_EXC { 0x792882A2 }
+
194 //#define SENSOR_IDS_EXC { 0x792882A2 }
+
195 
+
196 // List of sensor IDs to be included - if empty, handle all available sensors
+
197 #define SENSOR_IDS_INC {}
+
198 //#define SENSOR_IDS_INC { 0x83750871 }
+
199 
+
200 // List of sensor IDs of the model "BRESSER 3-in-1 Professional Wind Gauge / Anemometer"
+
201 // P/N 7002531 - requiring special heandling in decodeBresser5In1Payload()
+
202 //#define SENSOR_IDS_DECODE3IN1 {}
+
203 #define SENSOR_IDS_DECODE3IN1 { 0x2C100512 }
+
204 
+
205 // ------------------------------------------------------------------------------------------------
+
206 // --- Debug Logging Output ---
+
207 // ------------------------------------------------------------------------------------------------
+
208 // - ESP32:
+
209 // CORE_DEBUG_LEVEL is set in Adruino IDE:
+
210 // Tools->Core Debug Level: "<None>|<Error>|<Warning>|<Info>|<Debug>|<Verbose>"
+
211 // https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-log.h
+
212 //
+
213 // - ESP8266:
+
214 // DEBUG_ESP_PORT is set in Arduino IDE:
+
215 // Tools->Debug port: "<None>|<Serial>|<Serial1>"
+
216 //
+
217 // - RP2040:
+
218 // DEBUG_RP2040_PORT is set in Arduino IDE:
+
219 // Tools->Debug port: "<Disabled>|<Serial>|<Serial1>|<Serial2>"
+
220 //
+
221 // Replacement for
+
222 // https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-log.h
+
223 // on ESP8266 and RP2040:
+
224 #if defined(ESP8266) || defined(ARDUINO_ARCH_RP2040)
+
225  #define ARDUHAL_LOG_LEVEL_NONE 0
+
226  #define ARDUHAL_LOG_LEVEL_ERROR 1
+
227  #define ARDUHAL_LOG_LEVEL_WARN 2
+
228  #define ARDUHAL_LOG_LEVEL_INFO 3
+
229  #define ARDUHAL_LOG_LEVEL_DEBUG 4
+
230  #define ARDUHAL_LOG_LEVEL_VERBOSE 5
+
231 
+
232  #if defined(ARDUINO_ARCH_RP2040) && defined(DEBUG_RP2040_PORT)
+
233  #define DEBUG_PORT DEBUG_RP2040_PORT
+
234  #elif defined(DEBUG_ESP_PORT)
+
235  #define DEBUG_PORT DEBUG_ESP_PORT
+
236  #endif
+
237 
+
238  // Set desired level here!
+
239  #define CORE_DEBUG_LEVEL ARDUHAL_LOG_LEVEL_INFO
+
240 
+
241  #if defined(DEBUG_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_NONE
+
242  #define log_e(...) { DEBUG_PORT.printf("%s(), l.%d: ",__func__, __LINE__); DEBUG_PORT.printf(__VA_ARGS__); DEBUG_PORT.println(); }
+
243  #else
+
244  #define log_e(...) {}
+
245  #endif
+
246  #if defined(DEBUG_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_ERROR
+
247  #define log_w(...) { DEBUG_PORT.printf("%s(), l.%d: ", __func__, __LINE__); DEBUG_PORT.printf(__VA_ARGS__); DEBUG_PORT.println(); }
+
248  #else
+
249  #define log_w(...) {}
+
250  #endif
+
251  #if defined(DEBUG_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_WARN
+
252  #define log_i(...) { DEBUG_PORT.printf("%s(), l.%d: ", __func__, __LINE__); DEBUG_PORT.printf(__VA_ARGS__); DEBUG_PORT.println(); }
+
253  #else
+
254  #define log_i(...) {}
+
255  #endif
+
256  #if defined(DEBUG_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_INFO
+
257  #define log_d(...) { DEBUG_PORT.printf("%s(), l.%d: ", __func__, __LINE__); DEBUG_PORT.printf(__VA_ARGS__); DEBUG_PORT.println(); }
+
258  #else
+
259  #define log_d(...) {}
+
260  #endif
+
261  #if defined(DEBUG_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_DEBUG
+
262  #define log_v(...) { DEBUG_PORT.printf("%s(), l.%d: ", __func__, __LINE__); DEBUG_PORT.printf(__VA_ARGS__); DEBUG_PORT.println(); }
+
263  #else
+
264  #define log_v(...) {}
+
265  #endif
+
266 
+
267 #endif
268 
-
269 // Replacement for
-
270 // https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-log.h
-
271 // on Arduino AVR:
-
272 #if defined(ARDUINO_ARCH_AVR)
-
273  #define ARDUHAL_LOG_LEVEL_NONE 0
-
274  #define ARDUHAL_LOG_LEVEL_ERROR 1
-
275  #define ARDUHAL_LOG_LEVEL_WARN 2
-
276  #define ARDUHAL_LOG_LEVEL_INFO 3
-
277  #define ARDUHAL_LOG_LEVEL_DEBUG 4
-
278  #define ARDUHAL_LOG_LEVEL_VERBOSE 5
-
279 
-
280  // Set desired level here!
-
281  #define CORE_DEBUG_LEVEL ARDUHAL_LOG_LEVEL_INFO
-
282 
-
283  #if defined(DEBUG_ESP_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_NONE
-
284  #define log_e(...) { printf(__VA_ARGS__); println(); }
-
285  #else
-
286  #define log_e(...) {}
-
287  #endif
-
288  #if defined(DEBUG_ESP_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_ERROR
-
289  #define log_w(...) { printf(__VA_ARGS__); println(); }
-
290  #else
-
291  #define log_w(...) {}
-
292  #endif
-
293  #if defined(DEBUG_ESP_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_WARN
-
294  #define log_i(...) { printf(__VA_ARGS__); println(); }
-
295  #else
-
296  #define log_i(...) {}
-
297  #endif
-
298  #if defined(DEBUG_ESP_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_INFO
-
299  #define log_d(...) { printf(__VA_ARGS__); println(); }
-
300  #else
-
301  #define log_d(...) {}
-
302  #endif
-
303  #if defined(DEBUG_ESP_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_DEBUG
-
304  #define log_v(...) { printf(__VA_ARGS__); println(); }
-
305  #else
-
306  #define log_v(...) {}
-
307  #endif
-
308 #endif
-
309 
-
310 // Disable data type which will not be used to save RAM
-
311 #define WIND_DATA_FLOATINGPOINT
-
312 #define WIND_DATA_FIXEDPOINT
-
313 
-
314 // Select appropriate sensor message format(s)
-
315 #define BRESSER_5_IN_1
-
316 #define BRESSER_6_IN_1
-
317 #define BRESSER_7_IN_1
-
318 #define BRESSER_LIGHTNING
-
319 #define BRESSER_LEAKAGE
-
320 
-
321 #if ( !defined(BRESSER_5_IN_1) && !defined(BRESSER_6_IN_1) && !defined(BRESSER_7_IN_1) )
-
322  #error "Either BRESSER_5_IN_1 and/or BRESSER_6_IN_1 and/or BRESSER_7_IN_1 must be defined!"
-
323 #endif
-
324 
-
325 #if ( defined(USE_CC1101) && defined(USE_SX1276) )
-
326  #error "Either USE_CC1101 OR USE_SX1276 must be defined!"
-
327 #endif
-
328 
-
329 #if defined(USE_CC1101)
-
330  #define RECEIVER_CHIP "[CC1101]"
-
331 #elif defined(USE_SX1276)
-
332  #define RECEIVER_CHIP "[SX1276]"
-
333 #else
-
334  #error "Either USE_CC1101 or USE_SX1276 must be defined!"
-
335 #endif
-
336 
+
269 
+
270 // Replacement for
+
271 // https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-log.h
+
272 // on Arduino AVR:
+
273 #if defined(ARDUINO_ARCH_AVR)
+
274  #define ARDUHAL_LOG_LEVEL_NONE 0
+
275  #define ARDUHAL_LOG_LEVEL_ERROR 1
+
276  #define ARDUHAL_LOG_LEVEL_WARN 2
+
277  #define ARDUHAL_LOG_LEVEL_INFO 3
+
278  #define ARDUHAL_LOG_LEVEL_DEBUG 4
+
279  #define ARDUHAL_LOG_LEVEL_VERBOSE 5
+
280 
+
281  // Set desired level here!
+
282  #define CORE_DEBUG_LEVEL ARDUHAL_LOG_LEVEL_INFO
+
283 
+
284  #if defined(DEBUG_ESP_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_NONE
+
285  #define log_e(...) { printf(__VA_ARGS__); println(); }
+
286  #else
+
287  #define log_e(...) {}
+
288  #endif
+
289  #if defined(DEBUG_ESP_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_ERROR
+
290  #define log_w(...) { printf(__VA_ARGS__); println(); }
+
291  #else
+
292  #define log_w(...) {}
+
293  #endif
+
294  #if defined(DEBUG_ESP_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_WARN
+
295  #define log_i(...) { printf(__VA_ARGS__); println(); }
+
296  #else
+
297  #define log_i(...) {}
+
298  #endif
+
299  #if defined(DEBUG_ESP_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_INFO
+
300  #define log_d(...) { printf(__VA_ARGS__); println(); }
+
301  #else
+
302  #define log_d(...) {}
+
303  #endif
+
304  #if defined(DEBUG_ESP_PORT) && CORE_DEBUG_LEVEL > ARDUHAL_LOG_LEVEL_DEBUG
+
305  #define log_v(...) { printf(__VA_ARGS__); println(); }
+
306  #else
+
307  #define log_v(...) {}
+
308  #endif
+
309 #endif
+
310 
+
311 // Disable data type which will not be used to save RAM
+
312 #define WIND_DATA_FLOATINGPOINT
+
313 #define WIND_DATA_FIXEDPOINT
+
314 
+
315 // Select appropriate sensor message format(s)
+
316 #define BRESSER_5_IN_1
+
317 #define BRESSER_6_IN_1
+
318 #define BRESSER_7_IN_1
+
319 #define BRESSER_LIGHTNING
+
320 #define BRESSER_LEAKAGE
+
321 
+
322 #if ( !defined(BRESSER_5_IN_1) && !defined(BRESSER_6_IN_1) && !defined(BRESSER_7_IN_1) )
+
323  #error "Either BRESSER_5_IN_1 and/or BRESSER_6_IN_1 and/or BRESSER_7_IN_1 must be defined!"
+
324 #endif
+
325 
+
326 #if ( defined(USE_CC1101) && defined(USE_SX1276) )
+
327  #error "Either USE_CC1101 OR USE_SX1276 must be defined!"
+
328 #endif
+
329 
+
330 #if defined(USE_CC1101)
+
331  #define RECEIVER_CHIP "[CC1101]"
+
332 #elif defined(USE_SX1276)
+
333  #define RECEIVER_CHIP "[SX1276]"
+
334 #else
+
335  #error "Either USE_CC1101 or USE_SX1276 must be defined!"
+
336 #endif
337 
-
338 // Arduino default SPI pins
-
339 //
-
340 // Board SCK MOSI MISO
-
341 // ESP8266 D5 D7 D6
-
342 // ESP32 D18 D23 D19
-
343 #if defined(LORAWAN_NODE)
-
344  // Use pinning for LoRaWAN_Node (https://github.com/matthias-bs/LoRaWAN_Node)
-
345  #define PIN_RECEIVER_CS 14
-
346 
-
347  // CC1101: GDO0 / RFM95W/SX127x: G0
-
348  #define PIN_RECEIVER_IRQ 4
-
349 
-
350  // CC1101: GDO2 / RFM95W/SX127x: G1
-
351  #define PIN_RECEIVER_GPIO 16
-
352 
-
353  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
-
354  #define PIN_RECEIVER_RST 12
-
355 
-
356 #elif defined(FIREBEETLE_ESP32_COVER_LORA)
-
357  #define PIN_RECEIVER_CS 27 // D4
-
358 
-
359  // CC1101: GDO0 / RFM95W/SX127x: G0
-
360  #define PIN_RECEIVER_IRQ 26 // D3
-
361 
-
362  // CC1101: GDO2 / RFM95W/SX127x: G1
-
363  #define PIN_RECEIVER_GPIO 9 // D5
-
364 
-
365  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
-
366  #define PIN_RECEIVER_RST 25 // D2
-
367 
-
368 #elif defined(ARDUINO_TTGO_LoRa32_V1) || defined(ARDUINO_TTGO_LoRa32_V2)
-
369  // Use pinning for LILIGO TTGO LoRa32-OLED
-
370  #define PIN_RECEIVER_CS LORA_CS
-
371 
-
372  // CC1101: GDO0 / RFM95W/SX127x: G0
-
373  #define PIN_RECEIVER_IRQ LORA_IRQ
-
374 
-
375  // CC1101: GDO2 / RFM95W/SX127x: G1
-
376  // n.c. on v1/v2?, LORA_D1 on v21
-
377  #define PIN_RECEIVER_GPIO 33
-
378 
-
379  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
-
380  #define PIN_RECEIVER_RST LORA_RST
-
381 
-
382 #elif defined(ARDUINO_TTGO_LoRa32_v21new)
-
383  // Use pinning for LILIGO TTGO LoRa32-OLED V2.1 (1.6.1)
-
384  // Same pinout for Heltec Wireless Stick
-
385  #define PIN_RECEIVER_CS LORA_CS
-
386 
-
387  // CC1101: GDO0 / RFM95W/SX127x: G0
-
388  #define PIN_RECEIVER_IRQ LORA_IRQ
-
389 
-
390  // CC1101: GDO2 / RFM95W/SX127x: G1
-
391  #define PIN_RECEIVER_GPIO LORA_D1
-
392 
-
393  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
-
394  #define PIN_RECEIVER_RST LORA_RST
-
395 
-
396 #elif defined(ARDUINO_heltec_wireless_stick) || defined(ARDUINO_heltec_wifi_lora_32_V2)
-
397  // Use pinning for Heltec Wireless Stick or WiFi LoRa32 V2, respectively
-
398  #define PIN_RECEIVER_CS SS
-
399 
-
400  // CC1101: GDO0 / RFM95W/SX127x: G0
-
401  #define PIN_RECEIVER_IRQ DIO0
-
402 
-
403  // CC1101: GDO2 / RFM95W/SX127x: G1
-
404  #define PIN_RECEIVER_GPIO DIO1
-
405 
-
406  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
-
407  #define PIN_RECEIVER_RST RST_LoRa
-
408 
-
409 #elif defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2)
-
410  // Use pinning for Adafruit Feather ESP32S2 with RFM95W "FeatherWing" ADA3232
-
411  #define PIN_RECEIVER_CS 6
-
412 
-
413  // CC1101: GDO0 / RFM95W/SX127x: G0
-
414  #define PIN_RECEIVER_IRQ 5
-
415 
-
416  // CC1101: GDO2 / RFM95W/SX127x: G1
-
417  #define PIN_RECEIVER_GPIO 11
-
418 
-
419  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
-
420  #define PIN_RECEIVER_RST 9
-
421 
-
422 #elif defined(ARDUINO_FEATHER_ESP32)
-
423  // Use pinning for Adafruit Feather ESP32 with RFM95W "FeatherWing" ADA3232
-
424  #define PIN_RECEIVER_CS 14
-
425 
-
426  // CC1101: GDO0 / RFM95W/SX127x: G0
-
427  #define PIN_RECEIVER_IRQ 32
-
428 
-
429  // CC1101: GDO2 / RFM95W/SX127x: G1
-
430  #define PIN_RECEIVER_GPIO 33
-
431 
-
432  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
-
433  #define PIN_RECEIVER_RST 27
-
434 
-
435 #elif defined(ESP32)
-
436  // Generic pinning for ESP32 development boards
-
437  #define PIN_RECEIVER_CS 27
-
438 
-
439  // CC1101: GDO0 / RFM95W/SX127x: G0
-
440  #define PIN_RECEIVER_IRQ 21
-
441 
-
442  // CC1101: GDO2 / RFM95W/SX127x: G1
-
443  #define PIN_RECEIVER_GPIO 33
-
444 
-
445  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
-
446  #define PIN_RECEIVER_RST 32
-
447 
-
448 #elif defined(ESP8266)
-
449  // Generic pinning for ESP8266 development boards (e.g. LOLIN/WEMOS D1 mini)
-
450  #define PIN_RECEIVER_CS 15
-
451 
-
452  // CC1101: GDO0 / RFM95W/SX127x: G0
-
453  #define PIN_RECEIVER_IRQ 4
-
454 
-
455  // CC1101: GDO2 / RFM95W/SX127x: G1
-
456  #define PIN_RECEIVER_GPIO 5
-
457 
-
458  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
-
459  #define PIN_RECEIVER_RST 2
-
460 
-
461 #elif defined(ARDUINO_AVR_FEATHER32U4)
-
462  // Pinning for Adafruit Feather 32u4
-
463  #define PIN_RECEIVER_CS 8
-
464 
-
465  // CC1101: GDO0 / RFM95W/SX127x: G0
-
466  #define PIN_RECEIVER_IRQ 7
-
467 
-
468  // CC1101: GDO2 / RFM95W/SX127x: G1 (not used)
-
469  #define PIN_RECEIVER_GPIO 99
-
470 
-
471  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
-
472  #define PIN_RECEIVER_RST 4
-
473 
-
474 #elif defined(ARDUINO_ADAFRUIT_FEATHER_RP2040)
-
475  // Use pinning for Adafruit Feather RP2040 with RFM95W "FeatherWing" ADA3232
-
476  #define PIN_RECEIVER_CS 7
-
477 
-
478  // CC1101: GDO0 / RFM95W/SX127x: G0
-
479  #define PIN_RECEIVER_IRQ 8
-
480 
-
481  // CC1101: GDO2 / RFM95W/SX127x: G1 (not used)
-
482  #define PIN_RECEIVER_GPIO 10
-
483 
-
484  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
-
485  #define PIN_RECEIVER_RST 11
-
486 
-
487 #endif
-
488 
-
489 #define STR_HELPER(x) #x
-
490 #define STR(x) STR_HELPER(x)
-
491 #pragma message("Receiver chip: " RECEIVER_CHIP)
-
492 #pragma message("Pin config: RST->" STR(PIN_RECEIVER_RST) ", CS->" STR(PIN_RECEIVER_CS) ", GD0/G0/IRQ->" STR(PIN_RECEIVER_IRQ) ", GDO2/G1/GPIO->" STR(PIN_RECEIVER_GPIO) )
-
493 
-
494 #endif
+
338 
+
339 // Arduino default SPI pins
+
340 //
+
341 // Board SCK MOSI MISO
+
342 // ESP8266 D5 D7 D6
+
343 // ESP32 D18 D23 D19
+
344 #if defined(LORAWAN_NODE)
+
345  // Use pinning for LoRaWAN_Node (https://github.com/matthias-bs/LoRaWAN_Node)
+
346  #define PIN_RECEIVER_CS 14
+
347 
+
348  // CC1101: GDO0 / RFM95W/SX127x: G0
+
349  #define PIN_RECEIVER_IRQ 4
+
350 
+
351  // CC1101: GDO2 / RFM95W/SX127x: G1
+
352  #define PIN_RECEIVER_GPIO 16
+
353 
+
354  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
+
355  #define PIN_RECEIVER_RST 12
+
356 
+
357 #elif defined(FIREBEETLE_ESP32_COVER_LORA)
+
358  #define PIN_RECEIVER_CS 27 // D4
+
359 
+
360  // CC1101: GDO0 / RFM95W/SX127x: G0
+
361  #define PIN_RECEIVER_IRQ 26 // D3
+
362 
+
363  // CC1101: GDO2 / RFM95W/SX127x: G1
+
364  #define PIN_RECEIVER_GPIO 9 // D5
+
365 
+
366  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
+
367  #define PIN_RECEIVER_RST 25 // D2
+
368 
+
369 #elif defined(ARDUINO_TTGO_LoRa32_V1) || defined(ARDUINO_TTGO_LoRa32_V2)
+
370  // Use pinning for LILIGO TTGO LoRa32-OLED
+
371  #define PIN_RECEIVER_CS LORA_CS
+
372 
+
373  // CC1101: GDO0 / RFM95W/SX127x: G0
+
374  #define PIN_RECEIVER_IRQ LORA_IRQ
+
375 
+
376  // CC1101: GDO2 / RFM95W/SX127x: G1
+
377  // n.c. on v1/v2?, LORA_D1 on v21
+
378  #define PIN_RECEIVER_GPIO 33
+
379 
+
380  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
+
381  #define PIN_RECEIVER_RST LORA_RST
+
382 
+
383 #elif defined(ARDUINO_TTGO_LoRa32_v21new)
+
384  // Use pinning for LILIGO TTGO LoRa32-OLED V2.1 (1.6.1)
+
385  // Same pinout for Heltec Wireless Stick
+
386  #define PIN_RECEIVER_CS LORA_CS
+
387 
+
388  // CC1101: GDO0 / RFM95W/SX127x: G0
+
389  #define PIN_RECEIVER_IRQ LORA_IRQ
+
390 
+
391  // CC1101: GDO2 / RFM95W/SX127x: G1
+
392  #define PIN_RECEIVER_GPIO LORA_D1
+
393 
+
394  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
+
395  #define PIN_RECEIVER_RST LORA_RST
+
396 
+
397 #elif defined(ARDUINO_heltec_wireless_stick) || defined(ARDUINO_heltec_wifi_lora_32_V2)
+
398  // Use pinning for Heltec Wireless Stick or WiFi LoRa32 V2, respectively
+
399  #define PIN_RECEIVER_CS SS
+
400 
+
401  // CC1101: GDO0 / RFM95W/SX127x: G0
+
402  #define PIN_RECEIVER_IRQ DIO0
+
403 
+
404  // CC1101: GDO2 / RFM95W/SX127x: G1
+
405  #define PIN_RECEIVER_GPIO DIO1
+
406 
+
407  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
+
408  #define PIN_RECEIVER_RST RST_LoRa
+
409 
+
410 #elif defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2)
+
411  // Use pinning for Adafruit Feather ESP32S2 with RFM95W "FeatherWing" ADA3232
+
412  #define PIN_RECEIVER_CS 6
+
413 
+
414  // CC1101: GDO0 / RFM95W/SX127x: G0
+
415  #define PIN_RECEIVER_IRQ 5
+
416 
+
417  // CC1101: GDO2 / RFM95W/SX127x: G1
+
418  #define PIN_RECEIVER_GPIO 11
+
419 
+
420  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
+
421  #define PIN_RECEIVER_RST 9
+
422 
+
423 #elif defined(ARDUINO_FEATHER_ESP32)
+
424  // Use pinning for Adafruit Feather ESP32 with RFM95W "FeatherWing" ADA3232
+
425  #define PIN_RECEIVER_CS 14
+
426 
+
427  // CC1101: GDO0 / RFM95W/SX127x: G0
+
428  #define PIN_RECEIVER_IRQ 32
+
429 
+
430  // CC1101: GDO2 / RFM95W/SX127x: G1
+
431  #define PIN_RECEIVER_GPIO 33
+
432 
+
433  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
+
434  #define PIN_RECEIVER_RST 27
+
435 
+
436 #elif defined(ESP32)
+
437  // Generic pinning for ESP32 development boards
+
438  #define PIN_RECEIVER_CS 27
+
439 
+
440  // CC1101: GDO0 / RFM95W/SX127x: G0
+
441  #define PIN_RECEIVER_IRQ 21
+
442 
+
443  // CC1101: GDO2 / RFM95W/SX127x: G1
+
444  #define PIN_RECEIVER_GPIO 33
+
445 
+
446  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
+
447  #define PIN_RECEIVER_RST 32
+
448 
+
449 #elif defined(ESP8266)
+
450  // Generic pinning for ESP8266 development boards (e.g. LOLIN/WEMOS D1 mini)
+
451  #define PIN_RECEIVER_CS 15
+
452 
+
453  // CC1101: GDO0 / RFM95W/SX127x: G0
+
454  #define PIN_RECEIVER_IRQ 4
+
455 
+
456  // CC1101: GDO2 / RFM95W/SX127x: G1
+
457  #define PIN_RECEIVER_GPIO 5
+
458 
+
459  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
+
460  #define PIN_RECEIVER_RST 2
+
461 
+
462 #elif defined(ARDUINO_AVR_FEATHER32U4)
+
463  // Pinning for Adafruit Feather 32u4
+
464  #define PIN_RECEIVER_CS 8
+
465 
+
466  // CC1101: GDO0 / RFM95W/SX127x: G0
+
467  #define PIN_RECEIVER_IRQ 7
+
468 
+
469  // CC1101: GDO2 / RFM95W/SX127x: G1 (not used)
+
470  #define PIN_RECEIVER_GPIO 99
+
471 
+
472  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
+
473  #define PIN_RECEIVER_RST 4
+
474 
+
475 #elif defined(ARDUINO_ADAFRUIT_FEATHER_RP2040)
+
476  // Use pinning for Adafruit Feather RP2040 with RFM95W "FeatherWing" ADA3232
+
477  #define PIN_RECEIVER_CS 7
+
478 
+
479  // CC1101: GDO0 / RFM95W/SX127x: G0
+
480  #define PIN_RECEIVER_IRQ 8
+
481 
+
482  // CC1101: GDO2 / RFM95W/SX127x: G1 (not used)
+
483  #define PIN_RECEIVER_GPIO 10
+
484 
+
485  // RFM95W/SX127x - GPIOxx / CC1101 - RADIOLIB_NC
+
486  #define PIN_RECEIVER_RST 11
+
487 
+
488 #endif
+
489 
+
490 #define STR_HELPER(x) #x
+
491 #define STR(x) STR_HELPER(x)
+
492 #pragma message("Receiver chip: " RECEIVER_CHIP)
+
493 #pragma message("Pin config: RST->" STR(PIN_RECEIVER_RST) ", CS->" STR(PIN_RECEIVER_CS) ", GD0/G0/IRQ->" STR(PIN_RECEIVER_IRQ) ", GDO2/G1/GPIO->" STR(PIN_RECEIVER_GPIO) )
+
494 
+
495 #endif