blynkkk / blynk_Issues

6 stars 6 forks source link

ESP8266: Provisioning Failed, had to use workaround #3

Closed Peterkn2001 closed 3 years ago

Peterkn2001 commented 3 years ago

Android device: Nexus 7 running Android 6.0.1 Hardware: Wemos D1 Mini

I tried to add a new device from the app, Selected the device in the "Choose your WiFi network screen" and received the "Connecting..." screen. Initially my D1 Mini rebooted as in: https://github.com/blynkkk/beta/issues/2

I then saw the WAIT_CONFIG => CONFIGURING message in the serial monitor but the app showed "Can't connect to device" I tried to connect again, which also failed, and I then had the "Manual connect" option. Opening my network connections showed that the Android device was connected to the Wemos's SSID.

Multiple attempts always resulted in the same results.

[405] Using default config.
[406] 
    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v1.0.0-beta.1 on ESP8266

[410] --------------------------
[413] Product:  TestDevice1
[416] Hardware: 1.0.0
[418] Firmware: 0.1.0 (build Mar 26 2021 19:36:20)
[422] Device:   ESP8266 @ 80MHz
[425] MAC:      2C:F4:32:4A:A3:2C
[428] Flash:    4096K
[430] ESP core: 2.7.4
[432] ESP SDK:  2.2.2-dev(38a443e)
[435] Boot Ver: 31
[437] Boot Mode:1
[439] FW info:  461488/1634304, MD5:ff6bbcb381e6b4628fe8464042f97cc9
[642] Free mem: 31544
[642] --------------------------
[642] INIT => WAIT_CONFIG
[1294] AP SSID: Blynk TestDevice1-6F9DD
[1294] AP IP:   192.168.4.1
[1295] AP URL:  blynk.setup
[3139] WAIT_CONFIG => CONFIGURING
[15698] CONFIGURING => WAIT_CONFIG
[23203] WAIT_CONFIG => CONFIGURING

Manual workaround... I added the device in the web dashboard, copied the auth code (when I eventually tracked it down) and went to the device's captive portal at [edited and corrected to 192.168.4.1] and inputted the credentials. This worked correctly and my device is now online - yay!

spiutm commented 3 years ago

Android device: Nexus 7 running Android 6.0.1 Hardware: Wemos D1 Mini

I tried to add a new device from the app, Selected the device in the "Choose your WiFi network screen" and received the "Connecting..." screen. Initially my D1 Mini rebooted as in: #2

I then saw the WAIT_CONFIG => CONFIGURING message in the serial monitor but the app showed "Can't connect to device" I tried to connect again, which also failed, and I then had the "Manual connect" option. Opening my network connections showed that the Android device was connected to the Wemos's SSID.

Multiple attempts always resulted in the same results.

[405] Using default config.
[406] 
    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v1.0.0-beta.1 on ESP8266

[410] --------------------------
[413] Product:  TestDevice1
[416] Hardware: 1.0.0
[418] Firmware: 0.1.0 (build Mar 26 2021 19:36:20)
[422] Device:   ESP8266 @ 80MHz
[425] MAC:      2C:F4:32:4A:A3:2C
[428] Flash:    4096K
[430] ESP core: 2.7.4
[432] ESP SDK:  2.2.2-dev(38a443e)
[435] Boot Ver: 31
[437] Boot Mode:1
[439] FW info:  461488/1634304, MD5:ff6bbcb381e6b4628fe8464042f97cc9
[642] Free mem: 31544
[642] --------------------------
[642] INIT => WAIT_CONFIG
[1294] AP SSID: Blynk TestDevice1-6F9DD
[1294] AP IP:   192.168.4.1
[1295] AP URL:  blynk.setup
[3139] WAIT_CONFIG => CONFIGURING
[15698] CONFIGURING => WAIT_CONFIG
[23203] WAIT_CONFIG => CONFIGURING

Manual workaround... I added the device in the web dashboard, copied the auth code (when I eventually tracked it down) and went to the device's captive portal at 192.168.1.4 and inputted the credentials. This worked correctly and my device is now online - yay!

besides the ssid , pass and token , what did u put on host and port? blynk-cloud. com and 80?

Peterkn2001 commented 3 years ago

Host is blynk.cloud Port is 443

You get the Auth Token from Dashboard > Devices > Device Info (you have to click the little square to the right to copy it)

And I just noticed that I mis-typed the IP address of the captive portal - should be 192.168.4.1

Pete.

spiutm commented 3 years ago

I already tried all combination, including Host is blynk.cloud Port is 443 some times after apply, i get a message "all ok, try to connect" or similar, and still no connection, but i noticed something in my serial monitor, it keeps telling me to "hold the button to reset configuration" besides the normal output, i think something is wrong with the library or how the library uploaded, or the sketch, i used the one in examples, Blynk.Edgent, Edgent_ESP8266, so far i tried on 2 d1 minis, no luck. Thank you for the reply!

Peterkn2001 commented 3 years ago

Have you inserted your Template ID and Device Name at the top of Edgent ESP8266_test ?

Note that blynk.cloud is EXACTLY that (not blynk.cloud.com or blynk-cloud.com)

Pete.

spiutm commented 3 years ago

I found the error, // Uncomment your board, or configure a custom board in Settings.h //#define USE_SPARKFUN_BLYNK_BOARD

define USE_NODE_MCU_BOARD

//#define USE_WITTY_CLOUD_BOARD

it has to stay //#define USE_NODE_MCU_BOARD so don't touch that now it is online on dashboard, ill try to connect whit the app also

Peterkn2001 commented 3 years ago

it has to stay //#define USE_NODE_MCU_BOARD so don't touch that now it is online on dashboard, ill try to connect whit the app also

I get exactly the same behaviour whether #define USE_NODE_MCU_BOARD is enabled or commented-out.

Pete.

vshymanskyy commented 3 years ago

Ordered some WeMos D1 Mini to check with this specific device. Unfortunately it doesn't even have an on-board user button ;(

spiutm commented 3 years ago

WeMos D1 Mini works fine, as i mentioned above, did Peterkn2001's d1 mini connected with no workaround? cuz i connected 2 d1 minis with the app after "it has to stay //#define USE_NODE_MCU_BOARD so don't touch that"

Peterkn2001 commented 3 years ago

I've just been doing a bit more experimentation, and I think I have a few clues that may help.

First of all, the #define USE_NODE_MCU_BOARD is a bit weird. It causes this pin allocation to be used...

#if defined(USE_NODE_MCU_BOARD)

  #warning "NodeMCU board selected"

  // Example configuration for NodeMCU v1.0 Board
  #define BOARD_BUTTON_PIN            0
  #define BOARD_BUTTON_ACTIVE_LOW     true

  #define BOARD_LED_PIN_R             D8
  #define BOARD_LED_PIN_G             D7
  #define BOARD_LED_PIN_B             D6
  #define BOARD_LED_INVERSE           false
  #define BOARD_LED_BRIGHTNESS        64

I've never seen a NodeMCU with a tri-colour LED attached to D8, D7 & D6 (GPIO's 15, 13 & 12). Every NodeMCU I've ever seen have a single blue LED attached to GPIO2 (D4)

I've commented-out the #define USE_NODE_MCU_BOARD line, causing the default configuration to be used, and I've modified that to use GPIO2 like this...

  // Custom board configuration
  #define BOARD_BUTTON_PIN            0                     // Pin where user button is attached
  #define BOARD_BUTTON_ACTIVE_LOW     true                  // true if button is "active-low"

  #define BOARD_LED_PIN               2                    // Set LED pin - if you have a single-color LED attached
  //#define BOARD_LED_PIN_R           15                    // Set R,G,B pins - if your LED is PWM RGB 
  //#define BOARD_LED_PIN_G           12
  //#define BOARD_LED_PIN_B           13
  //#define BOARD_LED_PIN_WS2812      4                     // Set if your LED is WS2812 RGB
  #define BOARD_LED_INVERSE           true                 // true if LED is common anode, false if common cathode
  #define BOARD_LED_BRIGHTNESS        255                    // 0..255 brightness control

The onboard blue LED now flashes as expected.

However, I wasn't able to to get my Wemos D1 Mini or Wemos D1 Mini Pros to work. They appear in the app when you do "Add new device", but fail to connect.

I then tried a NodeMCU V3, using exactly the same code, and this worked as expected first time. I then chose not to progress beyond the screen in the app where I could enter SSID and password, and cancelled the operation.

I then went back to a Wemos D1 Mini pro and this time the app behaved differently. At one point I saw two device names to choose in the "Add new device" screen. One was the NodeMCU (which was no longer powered-up (I double checked) and the other was my Wemos D1 Mini Pro. The Wemos failed to connect, but now in a different way. Tapping the device name immediately took me back to the "Power On your device... Ready" screen without any attempt at connecting.

Restarting the app, then the tablet continued to produce the same result.

Seeing the device name of the NodeMCU when it was disconnected made me think that the app might be caching these names, so I decided to have a look at where the unique device name that is appended to the template name was coming from.

I changed this line: uint32_t chipId = ESP.getChipID();

to this: uint32_t chipId = 12345

This time, when I uploaded the code to my Wemos and tried to add a new device, the device name was `Blynk TestTemplate2-7DCF2"

When I tried to connect to this device it worked!

Conclusions

The pin allocations for NodeMCU type devices needs to be changed

The App seems to be caching device names, and treats ones that have previously been seen (and failed?) differently to new ones, which prevents the process from working correctly.

There is not a problem when using ESP.getChipID() with the Wemos D1 Mini, I use this method all of the time.

These tests were done with Library 1.0.0-bets3 and App version 1.0.8

Hope this helps, and enjoy your Wemos D1 Mini's when they arrive!

Pete.

alexkipar commented 3 years ago

@Peterkn2001

The Wemos failed to connect, but now in a different way. Tapping the device name immediately took me back to the "Power On your device... Ready" screen without any attempt at connecting.

Please send logs in such cases. App tries to connect on the "Power On your device... Ready" screen, so it is correct that tap leads to this screen, but there is some issue with connection request. Can you send logs?

Peterkn2001 commented 3 years ago

Can you send logs? Sent.

Apologies for not sending them earlier, it didn't occur to me in this particular case.

Pete.

alexkipar commented 3 years ago

@Peterkn2001 I've added in the latest build a fix to this issue, I've reproduced it for me only in failure case - when there is a wrong templateId in the sketch, for example.

Peterkn2001 commented 3 years ago

@alexkipar I've done some testing with app version 1.0.10 and now I can't get any new device to connect. My previous workaround of overriding the ChipID to give a new device name doesn't work, and the NodeMCU that was previously working now doesn't work either.

Logs sent.

Pete.

alexkipar commented 3 years ago

@Peterkn2001 I've received your logs - will investigate them. it works on mine side with Nexus 6. Are you using beta3 library?

alexkipar commented 3 years ago

@Peterkn2001 I see that you've tried to provision a device with TMPL_ID="TMPLks1olxUM" while you have only the "TMPL9hkFIuoD" template in dev mode.

Peterkn2001 commented 3 years ago

@alexkipar both templates exist in my web dashboard, this is the info screen for TMPLks1olxUM...

image

Are you saying that the app isn't synchronising this data with the server, or am I missing a piece of the theory about how this is supposed to work?

Pete.

alexkipar commented 3 years ago

@Peterkn2001 app syncs, but it can't add a device that doesn't have a mobile dashboard. we are discussing the possibility of provisioning a device that has only web dashboards.

Peterkn2001 commented 3 years ago

Sorry, you've lost me here. How do you create the mobile dashboard, other than via the "Add device" option in the app - which is the bit that's failing.

Pete.

alexkipar commented 3 years ago

@Peterkn2001 you need to open Dev Mode screen and create a 'prototype' template in the templates dashboard. in same way as with "TMPL9hkFIuoD" template

Peterkn2001 commented 3 years ago

I managed to get the NodeMCU to connect afret adding the prototype template, but still can't get the Wemos D1 Mini to work.

I've sent the logs again, can you see why the device with SSID Blynk TestTemplate2-2E2FE isn't connecting?

Pete.

alexkipar commented 3 years ago

@Peterkn2001 I see some strange behavior, what happens with the hardware according to its logs? It looks like when the app connects to the hardware's AP, it disconnects and reconnects again.

Peterkn2001 commented 3 years ago

The serial monitor shows this...

[402] Using default config.
[402] 
    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v1.0.0-beta.3 on ESP8266

[407] --------------------------
[410] Product:  TestTemplate2
[412] Hardware: 1.0.0
[414] Firmware: 0.1.0 (build Apr  2 2021 15:15:53)
[419] Device:   ESP8266 @ 80MHz
[422] MAC:      DC:4F:22:57:01:64
[425] Flash:    16384K
[427] ESP core: 2.7.4
[429] ESP SDK:  2.2.2-dev(38a443e)
[432] Boot Ver: 31
[434] Boot Mode:1
[435] FW info:  461184/1634304, MD5:39af5950a02bec3ddfdeea3d619d93d3
[638] Free mem: 31544
[638] --------------------------
[639] INIT => WAIT_CONFIG
[1429] AP SSID: Blynk TestTemplate2-2E2FE
[1429] AP IP:   192.168.4.1
[1430] AP URL:  blynk.setup
[3370] WAIT_CONFIG => CONFIGURING
[9530] CONFIGURING => WAIT_CONFIG
[14081] WAIT_CONFIG => CONFIGURING
[166486] CONFIGURING => WAIT_CONFIG

Pete.

spiutm commented 3 years ago

just to compare, this is working for me, d1 mini, device added by app

20:54:00.330 -> 20:54:00.377 -> / )/ /_ ___ / / 20:54:00.377 -> / / / // / \/ '/ 20:54:00.377 -> /____//_, /////_\ 20:54:00.425 -> // v1.0.0-beta.1 on ESP8266 20:54:00.425 -> 20:54:00.425 -> [401] -------------------------- 20:54:00.425 -> [419] Product: SPIU 20:54:00.471 -> [430] Hardware: 1.0.0 20:54:00.471 -> [442] Firmware: 0.1.0 (build Mar 30 2021 12:52:50) 20:54:00.471 -> [469] Token: ...wDfx 20:54:00.518 -> [483] Device: ESP8266 @ 80MHz 20:54:00.518 -> [500] MAC: BC:DD:C2:7B:08:71 20:54:00.518 -> [518] Flash: 4096K 20:54:00.563 -> [530] ESP core: 2.7.4 20:54:00.563 -> [542] ESP SDK: 2.2.2-dev(38a443e) 20:54:00.563 -> [561] Boot Ver: 6 20:54:00.610 -> [571] Boot Mode:1 20:54:00.610 -> [580] FW info: 464016/1630208, MD5:f855bcb9b358599f6b068be99a46cedd 20:54:00.798 -> [787] Free mem: 32360 20:54:00.798 -> [787] -------------------------- 20:54:00.798 -> [787] INIT => CONNECTING_NET 20:54:00.798 -> [799] Connecting to WiFi: spiu 20:54:03.182 -> [3239] Using Dynamic IP: 192.168.0.100 20:54:03.228 -> [3239] CONNECTING_NET => CONNECTING_CLOUD 20:54:15.664 -> [15718] Current time: Sat Apr 3 17:54:16 2021 20:54:15.710 -> [15718] Connecting to blynk.cloud:443 20:54:16.967 -> [17000] CONNECTING_CLOUD => RUNNING

alexkipar commented 3 years ago

@Peterkn2001 can you check the latest build - I've added a small delay before requesting hardware information it may help.

Peterkn2001 commented 3 years ago

Tested with 1.0.11 and getting the same results.

Serial monitor shows the same WAIT_CONFIG => CONFIGURING and CONFIGURING => WAIT_CONFIG messagesz each time I try to connect. Apps shows "Can't connect to device" each time.

Logs sent.

Pete.

alexkipar commented 3 years ago

@Peterkn2001 app still can't get board infro from the hardware, that's strange as it works on Nexus 7 on my side. Can you try next scenario:

  1. Connect to hardware wi-fi via phones wi-fi settings
  2. Open browser and try next URL: http://192.168.4.1/board_info.json - will it show anything?
Peterkn2001 commented 3 years ago

Okay, here's what happens...

I boot the Wemos D1 Mini and whine I connect the Nexus to it's WiFi I see: WAIT_CONFIG => CONFIGURING

When I enter the http://192.168.4.1/board_info.json url I see: Sending board info...

This is immediately followed by the Wemos rebooting with an exception report. The full serial monitor cycle looks like this...

    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v1.0.0-beta.3 on ESP8266

[400] --------------------------
[403] Product:  TestTemplate2
[405] Hardware: 1.0.0
[407] Firmware: 0.1.0 (build Apr  6 2021 15:19:03)
[412] Device:   ESP8266 @ 80MHz
[415] MAC:      DC:4F:22:57:01:64
[418] Flash:    16384K
[420] ESP core: 2.7.4
[422] ESP SDK:  2.2.2-dev(38a443e)
[425] Boot Ver: 31
[427] Boot Mode:1
[428] FW info:  461200/1634304, MD5:15798c19935e5168aaa7ffea71a445d7
[631] Free mem: 31544
[631] --------------------------
[632] INIT => WAIT_CONFIG
[1411] AP SSID: Blynk TestTemplate2-C9AA1
[1412] AP IP:   192.168.4.1
[1412] AP URL:  blynk.setup
[29922] WAIT_CONFIG => CONFIGURING
[46195] Sending board info...

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Exception (28):
epc1=0x40217a56 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

>>>stack>>>

ctx: cont
sp: 3ffff880 end: 3fffffc0 offset: 0190
3ffffa10:  3ffffa83 00000006 00000000 40219f68  
3ffffa20:  3ffffb20 00000000 3ffffa80 40215df1  
3ffffa30:  00000011 3ffe9cbf 3ffffae0 0000000a  
3ffffa40:  3ffe8340 0000000a 3ffffb20 4021a032  
3ffffa50:  00000002 3ffe8f0a 3f302058 4021a463  
3ffffa60:  00000004 ffffffff ffffffff 3ffe8f16  
3ffffa70:  00000000 3ffe8f15 3ffffb20 4021a463  
3ffffa80:  00000000 ffffffff 00000000 00000000  
3ffffa90:  00000011 0000008e 00302073 00000000  
3ffffaa0:  3fff04ec 00000020 00000020 40100c6c  
3ffffab0:  00000002 00000009 00000001 feefeffe  
3ffffac0:  00fffb90 3ffffb80 00000000 40100cb5  
3ffffad0:  00000001 00000001 00000000 402165dc  
3ffffae0:  3ffffbb0 3ffffba0 0000002c 3ffe8340  
3ffffaf0:  00000011 00000009 00000001 00000000  
3ffffb00:  3ffffba0 00000020 3ffffe20 40202904  
3ffffb10:  00000001 3ffe8340 00000200 40216515  
3ffffb20:  3ffffc6e 3fff0208 00000171 ffff0208  
3ffffb30:  3ffffbe0 000001ff 3ffffb5a 40202904  
3ffffb40:  3ffffba0 00000011 3ffffe20 4020f6c3  
3ffffb50:  00000011 4c957f2d 00000001 40202904  
3ffffb60:  00570164 00000011 3ffffe20 4020f70c  
3ffffb70:  00000001 3ffffe20 3ffffba0 4020f742  
3ffffb80:  4020930a 00000001 3ffffbb0 3ffffba0  
3ffffb90:  0000000c 00000064 000fffff 4020f4bc  
3ffffba0:  343a4544 32323a46 3a37353a 3ffe8786  
3ffffbb0:  3ffe8bef 3ffe88dd 3fff0208 4020e7e0  
3ffffbc0:  00000001 00000001 3ffffde0 4020747f  
3ffffbd0:  3ffffde0 3fff4d6c 00000000 0000001b  
3ffffbe0:  6f62227b 22647261 6554223a 65547473  
3ffffbf0:  616c706d 22326574 6d74222c 695f6c70  
3ffffc00:  223a2264 4c504d54 6f31736b 4d55786c  
3ffffc10:  66222c22 79745f77 3a226570 302e3122  
3ffffc20:  2c22302e 5f776622 22726576 6c42223a  
3ffffc30:  206b6e79 74736554 706d6554 6574616c  
3ffffc40:  39432d32 22314141 7768222c 7265765f  
3ffffc50:  44223a22 46343a45 3a32323a 303a3735  
3ffffc60:  34363a31 73222c22 22646973 3fff223a  
3ffffc70:  00000000 00000002 00000000 3ffeda08  
3ffffc80:  40103e2b 0000007f 00000000 00040000  
3ffffc90:  00000000 40104d17 3fff2a14 00000000  
3ffffca0:  40102cf4 00080000 3fff1610 3fff0664  
3ffffcb0:  40104363 00000000 00000000 0000001c  
3ffffcc0:  00003ee8 2c9f0300 4000050c 3fffc278  
3ffffcd0:  00003ee8 3fffc200 00000022 00000000  
3ffffce0:  3fff04ec 00000010 00000020 00000000  
3ffffcf0:  3fff04ec 00000010 00000020 40100c6c  
3ffffd00:  00000000 00545550 00000000 40100cb5  
3ffffd10:  00000020 3fff4a6c 00000000 40100cb5  
3ffffd20:  00000020 00000014 00000003 00000dc5  
3ffffd30:  00004238 00000db4 00000020 00000000  
3ffffd40:  3fff50c5 00000010 3ffffe20 00000000  
3ffffd50:  3fff04ec 00000020 00000020 40100c6c  
3ffffd60:  00000000 4bc6a7f0 c189374b 00000000  
3ffffd70:  3fff04ec 00000020 00000000 40100cb5  
3ffffd80:  ffffffff 3fff4a88 40100344 0000b472  
3ffffd90:  00000000 00000000 00000000 40100cb5  
3ffffda0:  0000b472 ffffffff 00000000 00000000  
3ffffdb0:  3fff4ccc 00000020 3ffffe60 4020f5d6  
3ffffdc0:  0000b472 ffffffff 3fff4a34 00000000  
3ffffdd0:  0000000b 00000020 3ffffe80 4020f5d6  
3ffffde0:  6e796c42 6554206b 65547473 616c706d  
3ffffdf0:  2d326574 41413943 00000031 401009b3  
3ffffe00:  00000010 3ffefed0 3ffefeac 40202904  
3ffffe10:  00000001 00000001 00000020 40100c37  
3ffffe20:  3fff4d6c 0011001f 00fffe60 40202904  
3ffffe30:  00000001 40212b94 3fff486c 402074ac  
3ffffe40:  3ffffe80 3ffefeec 3fff486c 401000e1  
3ffffe50:  3fff486c 3ffefeec 3fff486c 4020293c  
3ffffe60:  3fff4d00 0010001f 80100000 0000b462  
3ffffe70:  3fff486c 3ffefeec 3ffefeac 4020710e  
3ffffe80:  3fff4ccc 0010001f 00c6a7f0 3fff5000  
3ffffe90:  0000008f 80006472 40100300 3ffefe48  
3ffffea0:  3ffefeec 3ffe8524 3ffefeac 00000001  
3ffffeb0:  00000001 3fff486c 3ffefe00 402082c1  
3ffffec0:  40105719 00dc0cab 3fff03a8 3ffefe48  
3ffffed0:  00000001 3ffefed0 3ffefeac 40207a27  
3ffffee0:  3fff0178 3ffefe48 00000000 4020d14c  
3ffffef0:  40211005 3ffe8524 3ffefeac 4020d8cc  
3fffff00:  3fff0178 3ffe8524 3ffefeac 40207eac  
3fffff10:  6e796c42 6554206b 65547473 616c706d  
3fffff20:  2d326574 41413943 80fe0031 3fff0348  
3fffff30:  3ffefbc8 00000000 3fff0308 40208158  
3fffff40:  3fffdad0 00000000 3ffeff91 402082c1  
3fffff50:  3fff2354 00657461 402012b4 40201bbc  
3fffff60:  40213490 62657200 00746f6f 80fe981c  
3fffff70:  40213800 0104a8c0 00000035 3fff0348  
3fffff80:  3fffdad0 00000000 3fff0308 3fff0348  
3fffff90:  3fffdad0 00000000 3fff0308 40207f23  
3fffffa0:  3fffdad0 00000000 3fff0308 40210ad0  
3fffffb0:  feefeffe feefeffe 3ffe8578 40100ef1  
<<<stack<<<

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

The exception decoder gives this...


Exception 28: LoadProhibited: A load referenced a page mapped with an attribute that does not permit loads
PC: 0x40217a56: pgm_read_byte_inlined at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/sys/xtensa/sys/pgmspace.h line 72
EXCVADDR: 0x00000000

Decoding stack results
0x40219f68: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 180
0x40215df1: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 226
0x4021a032: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x4021a463: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 667
0x4021a463: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 667
0x40100c6c: malloc(size_t) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100cb5: realloc(void*, size_t) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x402165dc: sprintf at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/sprintf.c line 646
0x40202904: esp8266webserver::FunctionRequestHandler ::handle(esp8266webserver::ESP8266WebServerTemplate &, HTTPMethod, String) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 42
0x40216515: snprintf at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/snprintf.c line 118
0x40202904: esp8266webserver::FunctionRequestHandler ::handle(esp8266webserver::ESP8266WebServerTemplate &, HTTPMethod, String) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 42
0x4020f6c3: String::reserve(unsigned int) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 146
0x40202904: esp8266webserver::FunctionRequestHandler ::handle(esp8266webserver::ESP8266WebServerTemplate &, HTTPMethod, String) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 42
0x4020f70c: String::copy(char const*, unsigned int) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 214
0x4020f742: String::String(char const*) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 36
0x4020930a: ESP8266WiFiAPClass::softAPmacAddress() at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp line 351
0x4020f4bc: random(long) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WMath.cpp line 45
0x4020e7e0: Print::println(char const*) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\Print.cpp line 198
0x4020747f: __lambda5::operator()() const at C:\Users\peter\AppData\Local\Temp\arduino_build_249723\sketch/ConfigMode.h line 217
0x40100c6c: malloc(size_t) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100cb5: realloc(void*, size_t) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x40100cb5: realloc(void*, size_t) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x40100c6c: malloc(size_t) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 552
0x40100cb5: realloc(void*, size_t) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x40100344: millis() at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_wiring.cpp line 188
0x40100cb5: realloc(void*, size_t) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 586
0x4020f5d6: String::changeBuffer(unsigned int) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 187
0x4020f5d6: String::changeBuffer(unsigned int) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 187
0x401009b3: umm_free_core(void*) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 351
0x40202904: esp8266webserver::FunctionRequestHandler ::handle(esp8266webserver::ESP8266WebServerTemplate &, HTTPMethod, String) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 42
0x40100c37: free(void*) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 398
0x40202904: esp8266webserver::FunctionRequestHandler ::handle(esp8266webserver::ESP8266WebServerTemplate &, HTTPMethod, String) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 42
0x40212b94: esp8266webserver::FunctionRequestHandler ::canHandle(HTTPMethod, String) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 28
0x402074ac: std::_Function_handler ::_M_invoke(const std::_Any_data &) at c:\users\peter\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073
0x401000e1: std::function ::operator()() const at c:\users\peter\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2465
0x4020293c: esp8266webserver::FunctionRequestHandler ::handle(esp8266webserver::ESP8266WebServerTemplate &, HTTPMethod, String) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 49
0x4020710e: esp8266webserver::ESP8266WebServerTemplate ::_handleRequest() at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h line 681
0x40100300: millis() at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_wiring.cpp line 182
0x402082c1: BlynkTimer::run() at C:\Users\peter\Documents\Arduino\libraries\Blynk\src\utility\BlynkTimer.cpp line 35
0x40207a27: esp8266webserver::ESP8266WebServerTemplate ::handleClient() at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h line 340
0x4020d14c: WiFiUDP::parsePacket() at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WiFi\src\WiFiUdp.cpp line 199
0x40211005: __delay(unsigned long) at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_wiring.cpp line 57
0x4020d8cc: DNSServer::processNextRequest() at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\DNSServer\src\DNSServer.cpp line 166
0x40207eac: enterConfigMode() at C:\Users\peter\AppData\Local\Temp\arduino_build_249723\sketch/ConfigMode.h line 304
0x40208158: BlynkMillis() at C:\Users\peter\Documents\Arduino\libraries\Blynk\src\utility\BlynkDebug.cpp line 292
0x402082c1: BlynkTimer::run() at C:\Users\peter\Documents\Arduino\libraries\Blynk\src\utility\BlynkTimer.cpp line 35
0x402012b4: std::_Function_base::_Base_manager ::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation) at c:\users\peter\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 1931
0x40201bbc: std::_Function_handler ::_M_invoke(const std::_Any_data &) at c:\users\peter\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2069
0x40207f23: loop() at C:\Users\peter\AppData\Local\Temp\arduino_build_249723\sketch/BlynkEdgent.h line 90
0x40210ad0: loop_wrapper() at C:\Users\peter\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 197```

The browser on the Nexus shows "This site cant be reached.... took too long to respond"

Pete.
alexkipar commented 3 years ago

It seems the cause of the provisioning failure. @vshymanskyy please take a look

vshymanskyy commented 3 years ago

You can now use:

#define USE_WEMOS_D1_MINI
Peterkn2001 commented 3 years ago

I see you've tidied up the LED pins, but I still think you have it wrong for the NodeMCU...

#if defined(USE_NODE_MCU_BOARD)

  // Example configuration for NodeMCU v1.0 Board
  #define BOARD_BUTTON_PIN            0
  #define BOARD_BUTTON_ACTIVE_LOW     true

  #define BOARD_LED_PIN               16
  #define BOARD_LED_INVERSE           true
  #define BOARD_LED_BRIGHTNESS        255

Every NodeMCU board has an LED connected to GPIO2 (the same as the Wemos), but some NodeMCUs have an additional LED attached to GPIO16

Using GPIO2 will work with every NodeMCU, GPIO16 will only work with some.

Pete.

vshymanskyy commented 3 years ago

Done. Thanks!