Your Arduino went offline

I forgot, it’s the ESP-14 Im using currently but should get some 13F soon to try.

I couldn’t make the 14 do an Firmware upgrade so I’m tied to wait until the other arrive for now.

Had I known beforehand and would have my entire project started with that idea it might have been better but changing electronics and program now would be as time consuming as looking for the reason of the buffer overflow.

Updated my Library to 0.37 had for some crazy reason 2 Blynk libs.
One in my user folder one in the program folder.
One was 0.34 for some reason. No Idea why there were two, I only added one.

Also changed this:

//#include <ESP8266_HardSer.h>
//#include <BlynkSimpleShieldEsp8266_HardSer.h>

#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>


//ESP8266 wifi(EspSerial);
ESP8266 wifi(&EspSerial);

And added 10k Pullup on GP0.

Works way better, nearly flawlessly. Even Blinking 100ms with Blynk.run() enabled seems to work.
Had just one disconnect since which might have had other reason.

So finally I hope I got this solved…

But I didnt succeed in updating my ESP Firmware, maybe someone might help?
Everything seems normal but for some reason it can Sync but doesn’t start flashing (bar isn’t moving forward).

This is what the ESP Flash Tool gives me:

load config ...
EFUSE_MODE: 1
load config ...
test label: Download Panel 1
self.num: 1
init finished
==============
_COM:  6
ESP_ROM_BAUD :  115200
EFUSE_MODE: 1
==============
test baudrate:  115200
test baudrate selection:   4
test label: Download Panel 2
self.num: 2
init finished
==============
_COM:  6
ESP_ROM_BAUD :  115200
EFUSE_MODE: 1
==============
test baudrate:  46080
test baudrate selection:   2
test label: Download Panel 3
self.num: 3
init finished
==============
_COM:  6
ESP_ROM_BAUD :  115200
EFUSE_MODE: 1
==============
test baudrate:  9600
test baudrate selection:   0
test label: Download Panel 4
self.num: 4
init finished
==============
_COM:  6
ESP_ROM_BAUD :  115200
EFUSE_MODE: 1
==============
test baudrate:  9600
test baudrate selection:   0
test label: Download Panel 5
self.num: 5
init finished
==============
_COM:  6
ESP_ROM_BAUD :  115200
EFUSE_MODE: 1
==============
test baudrate:  9600
test baudrate selection:   0
test label: Download Panel 6
self.num: 6
init finished
==============
_COM:  6
ESP_ROM_BAUD :  115200
EFUSE_MODE: 1
==============
test baudrate:  9600
test baudrate selection:   0
test label: Download Panel 7
self.num: 7
init finished
==============
_COM:  6
ESP_ROM_BAUD :  115200
EFUSE_MODE: 1
==============
test baudrate:  9600
test baudrate selection:   0
test label: Download Panel 8
self.num: 8
init finished
==============
_COM:  6
ESP_ROM_BAUD :  115200
EFUSE_MODE: 1
==============
test baudrate:  9600
test baudrate selection:   0
tout as adc
RF option applied...
(True, [])
test running : False
serial port opened
Connecting...
chip sync ok!
0x3ff00050: 7a980000
0x3ff00054: 0200d1c3
0x3ff00058: 5a00b000
0x3ff0005c: 0018fe34
EFUSE MODE : 1
reg0:7a980000
reg1:0200d1c3
reg2:5a00b000
reg3:0018fe34
check_err_0: 0b
check_err_1: 00
check_err_2: 00
check_err_3: 02
check_err_4: 0b
====================
EFUSE NORMAL MODE
====================
=========================
CRC IN MODE 1:
crc_calc_res: 90
target crc val: 90
=========================
=========================
CRC IN MODE 1:
crc_calc_res: 152
target crc val: 152
=========================



==================
EFUSE LOG:
======================
EFUSE LOG:
---------------
REG0:7A980000
REG1:0200D1C3
REG2:5a00b000
REG3:0018FE34
----------------
====================
EFUSE NORMAL MODE
====================
EFUSE CHECK PASS...
=================
reg2>>13: 5
=================
48bit mac
debug:
-----------------------
 18 fe 34 d1 c3 7a
ID FOR XM: 05 A0 00 00 00 09 80 00
XM_ID: 05A0000000098000
-----------------------
crc_efuse_4bit: 0
crc_calc_4bit: 9
48bit mac
MAC AP : 1A-FE-34-D1-C3-7A
MAC STA: 18-FE-34-D1-C3-7A
get mac res:  True
('tttest uuuuuuuuuuart : uart reg: ', 457)
(' baudrate: ', 115200)
get crystal: 26323200
head: 0 ;total: 0
erase size : 0
get flash id : 0x371440e0
 manufacturer_id: 0xe0

 device_id: 0x4014

vendor: 224
mode: 64
size: 20
mode: 0
size :  2
sel.freq: 26000000
tttttest crystal : 1
com closed
1 Like

Some other thing I can’t explain which might be related to my problem…

Need your Help!
I assumed maybe the serial Monitor is the problem so I closed it.

But as soon as I close the serial Monitor it stops working entirely.
On my Arduino the RX LED is flashing, afterwards 2 or 3 times the Pin 13 LED. this repeads until I start the serial monitor again.

What does this mean?

Well, usually Arduino IDE restarts your Arduino each time you open Serial Monitor…

I just connected it to a battery then it works. Seems it requires the monitor to be open once connected to the pc.

But I got my disconnects again… I really dont understand it!
Tried experimenting with my power source, adding bigger Capacitors and so on,that all did change nothing.

Sometimes it works nearly forever now, then at the next start or maybe suddenly after 40 minutes it seems to disconnect again and again.

I really assume this must be a problem with flooding of one of the 2 chips.
I assume for example the Wifi is bad and the ESP can`t send, Blynk is sending commands regardless, the ESP is replying “busy p…” about that reply (waiting or at least trashing the response) and then flooding happens (its what I assume).

At least I’m now at a stage where it sometimes/most of the time works flawlessly.
But as soon as it gets flooded once it disconnects because of flooding every some seconds.

I also noticed that sometimes blynk sends his connection request 10 times after each other without pause!
This can`t be normal as well right? Normally it Sends the request, waits about 2 seconds closes and tries again.

I got times where Blynk sends this line:

AT+CIPSTART=“TCP”,“blynk-cloud.com”,8442

10 times or more in a second without any pause and any other command like close in between.

Could you have a look into this Blynk library for AT Firmware? Something can’t be right there.
As said, will test this with other ESP once I get them but Since I read people had this “busy p…” response with them as well this shouldnt change anything.

Sounds like dodgy hardware…

Vwhymanskyy, see attached Screenshot about the Blynk connect retries without pause.
It sometimes scrolls the entire screen in 2 seconds.

And I’ll remove the “solved” since its working most of the time but sometimes as said (no Idea why) its disconnecting once after the other.

About Hardware: Maybe… maybe the ESP module is faulty or would work with newer Firmware. Will see when I get others.

But I really think its a buffer overflow in Blynk or Arduino because of the commands are sent without pause even if the ESP replies busy.

I already posted the “Buffer overflow” Mesage I get from Blynk. But I got no idea which buffer is meant. this should be something Blynk Team should know.

Costas:

This is ONE of my test scripts.
The Simpletimer is correctly used together with Blynk, right?

Its the one I spoke about above.

Working most of the time but then for no readon getting Buffer overflow again…

/**************************************************************
   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
     Blynk community:            http://community.blynk.cc
     Social networks:            http://www.fb.com/blynkapp
                                 http://twitter.com/blynk_app

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

 **************************************************************
   Blynk using a LED widget on your phone!

   App project setup:
     LED widget on V1

   WARNING :
   For this example you'll need SimpleTimer library:
     https://github.com/jfturcot/SimpleTimer
   Visit this page for more information:
     http://playground.arduino.cc/Code/SimpleTimer

 **************************************************************/

//#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <SimpleTimer.h>

#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>

#define EspSerial Serial
ESP8266 wifi(&EspSerial);

char WLANname[] = "***";
char WLANpw[] = "***";
char auth[] = "***";

int LED = 0;

// WidgetLED led1(V18);
SimpleTimer TESTtimer;

void setup()
{
  Serial.begin(115200);

  // Verbindungsaufbau WLAN
  Blynk.begin(auth, wifi, WLANname, WLANpw);
  while (Blynk.connect() == false) {}

  TESTtimer.setInterval(500L, blinkLedWidget);
}

void blinkLedWidget()
{
  if (LED)
  {
    Blynk.virtualWrite(V18, 0);
    LED = 0;
  }
  else
  {
    Blynk.virtualWrite(V18, 255);
    LED = 1;
  }
}

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

Since I get this much problems now and also running out of program space for my project I’m really considering to switch to the ESP standalone now.

Here I got some Questions:

  1. Is it REALLY stable?
    I wouldnt like to invest money for buying other parts, then building completely new circiut and changing my entire work so far just to find its not stable also.

  2. What about the Chip do I need to flash a firmware or can I just attach it and upload therefore overwriting the existing one?

  3. I need EEprom for storing calibration data in case of power outage. What about this?
    I read it has none?

Yes that looks correct for SimpleTimer test.

@Gorkde

  1. Providing your sketch is solid then a decent ESP is very stable.

  2. You simply flash your sketch with the Arduino IDE and it works.

  3. Decent ESP’s have 1M program memory and 3M SPIFFS plus some EEPROM and a small amount of RTC memory. In a word, loads of memory.

Just to add I have over 60 Arduino’s (Mega, Nano and Leonardo) for my projects but I stopped using them when I saw how much better the ESP’s are.

Yes maybe I should have done this from start…

But I didnt expect such problems. I neither expected to run out of memory but my project got way more complex now than initially planned.

Btw… How many virtual Pins do I get when using ESP?

But changing over everything will take VERY MUCH time which I’m short of now anyway…

2 more questions:

  1. About the EEprom… Where can I find information on how to use it? Didnt find anything about it.

  2. When needing to access pin register I found this about it:

But I dont understand exactly what I need to do. Do I just need to use:

PIN_OUT_SET = 0b01010101;

or similar in the Arduino IDE???
I also didn’t find a real register overview .

Maybe @vshymanskyy can confirm if all ESP’s have 128 virtual pins even the novice ESP-01.

I would recommend you don’t buy bare ESP’s but look at the one’s that have been integrated into a ready to go board like the NodeMCU, WeMos etc.

Did change my post.
I already ordered ESP 13F some weeks ago.
Why should I for example prefer Wemos D1 over an normal ESP? Are there any reason?

The WeMos and similar are ready to use whereas the bare ESP’s need capacitors, resistors, buttons, a PCB etc, etc.

I don’t really use EEPROM as I worry about trashing the area on the chip if I write bad code and it exceeds the X thousand permitted writes, within a few seconds.

As far as I know the EEPROM for the ESP is used with exactly the same commands as those of an Arduino.

https://github.com/search?q=org%3Aesp8266+eeprom&ref=searchresults&type=Code&utf8=✓ should give you plenty to study.

As decent ESP’s have 3M of SPIFFS most people use this rather than the EEPROM area. Details of SPIFFS from https://github.com/pellepl/spiffs

I don’t do anything technical like accessing pin registers

Ok but since I really need to add pretty complex hardware anyway thats no drawback.

I would need 3 Analog multiplexer some Shift registers alone just to get the pins needed.

@Gorke approximately how many analogue and how many digital pins will you require for your project?
Ignore virtual pins as you should have 128 pins with a decent ESP. Blynk has a very simple system of bridging one ESP to another but I suspect your project maybe too complex to use bridging.