ESP8266 Error ets Jan 8 2013,rst cause:4, boot mode:(3,6)

What version of the ESP8266 vote do you have installed in the IDE ?

(Board > Boards Manager > search for ESP8266).

Pete.

I have 2.7.4, it says there is a newer version so I will try to install that.

I am the most confused because I had the exact same code working totally fine but then I tried to put in a LED into the breadboard attatched the the 8266 ground pin and D6 pin and then boom it disconnected from Blynk so I unplugged it and now the exact same code wont work anymore.

However, I can still upload the built in LED blink code and that works fine.

Did you use a current limiting resistor with your LED ?

Does any part of the NodeMCU get hot when you power it up?

Pete.

Didn’t use a resistor with the LEDs and nothing on the NodeMCU gets “hot” but it is somewhat lukewarm to the touch.

This might help you
https://arduino-esp8266.readthedocs.io/en/latest/faq/a02-my-esp-crashes.html?highlight=watchdog#watchdog

It’s always a good idea to use the correct value of current limiting resistor for your LED, as it helps protect the board as well as the LED.

I’d recommend upgrading the ESP core to v3.0.2 and choosing the correct board type (from the ESP8266 3.0.2 list).
Also ensure that you choose a memory partition scheme which gives no FS or OTA memory allocation.

Pete.

I found that documentation yesterday when searching through the internet but it pretty much says to sprinkle serial.prints everywhere and it prints the first Serial print located in the setup then nothing else. so I know its not even getting into the void loop() .

void setup()
{
  Serial.begin(115200);
  Serial.println("TEST6");
  Blynk.begin(auth, ssid, pass);
  Serial.println("TEST9");
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);

  // Setup a function to be called every second
  
  timer.setInterval(1000L, myTimerEvent);
  timer.setInterval(1000L, PotDataSend); //timer will run every sec 
}

And there Serial monitor now reads:

[69] Connecting to Galaxy S21
[13801] Connected to WiFi
[13801] IP: 192.168.135.32
[13801] 
    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v1.1.0 on ESP8266

 #StandWithUkraine    https://bit.ly/swua


[13811] Connecting to blynk.cloud:80
[13974] Ready (ping: 66ms).

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

wdt reset
load 0x4010f000, len 3460, room 16 
tail 4
chksum 0xcc
load 0x3fff20b8, len 40, room 4 
tail 4
chksum 0xc9
csum 0xc9
v00046870
~ld
TEST6

So that means something would be going on with the Blynk.begin function but as I said before the same code was working prior to me putting in a LED so I dont see what could have changed

Will definitely add resistors from here on out,

I updated to v3.0.2.

im not sure what that last part means, sorry for my ignorance

When I put both test print prior to the Blynk.begin() they both print but if I put one before and one after only the first one prints, thats got to mean the problem is in the Blynk.begin function correct?

Have you tried the exception decoder ?

Choose this board from the ESP8266 Boards (3.0.2) list…

and this memory allocation option…

image

Pete.

I haven’t, not exactly sure what that is

Got those settings in place. Really flustered on what else it could be

Going back to the changes you made when it stopped working, did you add a switch widget that was attached to a digital or virtual datastream?
Are you still using this same template and do you still have the same datastreams set up?

Pete.

Check the link I sent you for more details.

Yes, I added a switch widget and used virtual datastream if I remember correctly.

I deleted the switch in attempt to troubleshoot and I am now trying to just use the blank Blynk provided template “ESP8266_Standalone” and if I use:
Blynk.begin(auth, ssid, pass);
I get an invalid authentication code error which is why I switched it to:
Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);

because that was what was working before. However, now the code is not getting past the Blynk.begin() function because if I put a serial print statement before and after the code, it prints the first but not the second. See below.

Also thanks for the help!

My Sketch:

    /*************************************************************
  Download latest Blynk library here:
    https://github.com/blynkkk/blynk-library/releases/latest

  Blynk is a platform with iOS and Android apps to control
  Arduino, Raspberry Pi and the likes over the Internet.
  You can easily build graphic interfaces for all your
  projects by simply dragging and dropping widgets.

    Downloads, docs, tutorials: http://www.blynk.cc
    Sketch generator:           http://examples.blynk.cc
    Blynk community:            http://community.blynk.cc
    Follow us:                  http://www.fb.com/blynkapp
                                http://twitter.com/blynk_app

  Blynk library is licensed under MIT license
  This example code is in public domain.

 *************************************************************
  This example runs directly on ESP8266 chip.

  Note: This requires ESP8266 support package:
    https://github.com/esp8266/Arduino

  Please be sure to select the right ESP8266 module
  in the Tools -> Board menu!

  Change WiFi ssid, pass, and Blynk auth token to run :)
  Feel free to apply it to any other example. It's simple!
 *************************************************************/

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial

/* Fill-in your Template ID (only if using Blynk.Cloud) */
//#define BLYNK_TEMPLATE_ID   "TMPLQyxtVycX"


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "C3xwkgth6nijpJhQPBWvfcJObEuRk1J1";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Galaxy S21";
char pass[] = "KyleSanchez";

void setup()
{
  // Debug console
  Serial.begin(115200);
  Serial.println("BEFORE begin func");
  Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
  Serial.println("AFTER begin func");
}

void loop()
{
  Blynk.run();
}

Serial Output:

BEFORE begin func
[292] Connecting to Galaxy S21
[5522] Connected to WiFi
[5522] IP: 192.168.135.32
[5522] 
    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v1.1.0 on ESP8266

 #StandWithUkraine    https://bit.ly/swua


[5533] Connecting to blynk.cloud:80
[5725] Ready (ping: 101ms).

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

wdt reset
load 0x4010f000, len 3460, room 16 
tail 4
chksum 0xcc
load 0x3fff20b8, len 40, room 4 
tail 4
chksum 0xc9
csum 0xc9
v000461c0
~ld

Look at the datastreams that you have in the template you are using and provide the actual details.

The Blynk 1.x.x library will automatically compile the code so that it connects to the new IoT blynk.cloud servers, provided it sees:
#define BLYNK_TEMPLATE_ID "Your template ID in here" as the first line of your sketch.
This isn’t working, because you’ve left this line commented-out, rather than pasting your credentials from the firmware configuration screen for the device in the web console.

Probably because the Blynk.begin process with IoT requires a template ID to be passed to the server as part of the connection negotiation process, and you haven’t provided one in your sketch.

Pete.

Hi,

I had the same problem. In my case it worked when I used the Library version 1.0.1. The newest 1.1.0 caused the same WatchDog errors on my NodeMCU. I was using the latest ESP8266 Core (version 3.1.0)
It was also very important to have the template ID as the first line (even before any include), which was mentioned here before.

Please fix this issue with the version of the library and the NodeMCU (maybe even other ESP8266, have´t tested it though)

Are you using any Digital datastreams?…

Pete.

Hello,

you are right that was the problem. I didn´t realize it but I changed the datastreams the same time I changed the version. It now works with the latest version when only using virtual datastreams.

1 Like