From 2459e1c29b38f13fe470df985496853d7776422c Mon Sep 17 00:00:00 2001 From: Florian Date: Sun, 14 Jun 2026 16:28:01 -0500 Subject: [PATCH] [RF] Change ESP8266 default RF_RECEIVER_GPIO from 0 to 4 (#2240) (#2323) GPIO0 (D3) is the ESP8266 boot strapping pin: an RF receiver holding the data line low at reset forces the board into flash mode, so a stock nodemcuv2-rf build never starts after a restart with the receiver wired to the documented default pin. Default to GPIO4 (D2) instead, which the docs already recommend as the workaround. Environments that need other pins (srfb-direct, sonoff-rfr3, rf-wifi-gateway) already override the value explicitly and are unaffected. --- docs/setitup/rf.md | 8 ++++---- main/config_RF.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/setitup/rf.md b/docs/setitup/rf.md index 505e335..5482c36 100644 --- a/docs/setitup/rf.md +++ b/docs/setitup/rf.md @@ -32,7 +32,7 @@ Heltec LORA V3 is not compatible with RTL_433 library as it is based on an SX126 ### SRX STX Pinout |Board| Receiver Pin| Emitter Pin| |-|:-:|:-:| -|ESP8266|D2/**D3**/D1/D8|**RX**/D2| +|ESP8266|**D2**/D1/D8|**RX**/D2| |ESP32|**27**/26|12| |RF BRIDGE|-|-| |RF BRIDGE [DIRECT HACK](https://github.com/xoseperez/espurna/wiki/Hardware-Itead-Sonoff-RF-Bridge---Direct-Hack)|4|5| @@ -48,7 +48,7 @@ With SRX882S receiver connect the CS pin to 3.3V ### CC1101 Pinout |Board|Receiver Pin(GDO2)|Emitter Pin(GDO0)|SCK|VCC|MOSI|MISO|CSN|GND |-|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| -|ESP8266|D2/**D3**/D1/D8|**RX**/D2|D5|**3V3**|D7|D6|D8|GND +|ESP8266|**D2**/D1/D8|**RX**/D2|D5|**3V3**|D7|D6|D8|GND |ESP32|**D27**|D12|D18|**3V3**|D23|D19|D5|GND To use the CC1101 module, `ZradioCC1101` must be uncomment in the `User_config.h` or added to the `build_flags`. @@ -72,9 +72,9 @@ When **all** these variables are defined, OpenMQTTGateway will use your custom p ![Addon_RF](../img/OpenMQTTgateway_ESP32_Addon_RF.png) ## ESP8266 Hardware setup -If the gateway works only when serial monitor is connected don't use D3 use D2 instead (gpio 4) and modify config_RF.h accordingly. +The default receiver pin is D2 (gpio 4). Avoid D3 (gpio 0): it is a boot strapping pin, a receiver holding it low at reset forces the ESP8266 into flash mode and the board never starts. -With SRX882 some users reported that D3 is not working use D1 instead in this case and modify config_RF.h accordingly. +With SRX882 some users reported issues on D2, use D1 instead in this case and modify config_RF.h accordingly. ![Addon_RF](../img/OpenMQTTgateway_ESP8266_Addon_RF.png) diff --git a/main/config_RF.h b/main/config_RF.h index 71b25ff..9de6b3d 100644 --- a/main/config_RF.h +++ b/main/config_RF.h @@ -230,7 +230,7 @@ extern RFConfiguration iRFConfig; /*-------------------PIN DEFINITIONS----------------------*/ #ifndef RF_RECEIVER_GPIO # ifdef ESP8266 -# define RF_RECEIVER_GPIO 0 // D3 on nodemcu // put 4 with rf bridge direct mod +# define RF_RECEIVER_GPIO 4 // D2 on nodemcu, don't use 0 (D3): a receiver holding it low at reset forces the ESP8266 into flash mode # elif defined(ESP32) # define RF_RECEIVER_GPIO 27 // D27 on DOIT ESP32 # endif