ESP8266 RF2: only GPIO 5 allowed on Wemos D1 Mini Pro V3.0.0?

In the past, I managed to setup a ESP8266 to receive signals from my remote, see also Flamingo sf-501 remote - Compatible devices - OpenMQTTGateway

Yesterday I wanted to use the pre-compiled “nodemcuv2-rf” from the web installer ((Option 1) Upload from the web | OpenMQTTGateway v1.4.0), but I could not get it working with my remote.

After some debugging, It appears that I MUST use GPIO 5 (D1) to receive signals. If I want to use the default GPIO 0 (D3) I do not receive any signal at all…

So my questions:

  • is this problem specific to my hardware? (Wemos D1 Mini Pro V3.0.0)

  • Is there a way to use the pre-compiled versions but with other pin layout? Some “afterburn” or “slipstream” of something like that?

  • If I need to compile the code myself: Is there a way to have the same user experience afterwards? I mean: I can change the GPIO in the code, compile and upload the stuff to my device. But (till now) I had to hardcode my wifi and mqtt settings. However, I want to give this device to my friend and I don’t (want to) know these settings. The temporary webinterface to set wifi and mqtt is great but I did not succeed to only change the GPIO and upload the code. Seems that the webinterface is broken than… Probably I’m doing something wrong, but don’t know what.

working setup:



We could add the capability to change this through an MQTT command.

You should be able to use the Wifi Portal. What was your issue with it ?

I think I miss something. If I download the source code, make my changes as described Flamingo sf-501 remote and upload it to my device (Visual Studio Code + platformio), than I don’t get a SSID from the device.

Do I have to enable the wifi manager manually somewhere?


You need to comment ESPWifiManualSetup macro to use the wifimanager portal.

yes, I did. But no SSID comming up. Tested now with 2 smartphones and 2 laptops to search for SSID, but no progress.

Try to erase the flash before uploading, it may have persisted the connection in the flash.

OK, that did the trick.
What I did now:

  • flash OOB-binary from web with “erase flash” option
  • flash with Visual Studio Code and PlatformIO

this works now, SSID is displaying.

Is there somewhere an option in the code to force a flash before uploading the code? I already tried to use the reset button on the device, but this didn’t work…

You could assign to your environment TRIGGER_GPIO, if you have a free button. A long press to it will erase the credentials in flash.

With PIO, you can use the native erase flash function

ok, thanx.
I couldn’t find that option in the GUI, but within the powershell terminal in VS Code, I can type

pio run --target erase

which seems to do the trick.


This would be great for newbies as me!

kind regards,
Bart Plessers

1 Like