New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nvs_open fail error when using WiFi #761

Closed
nkolban opened this Issue Oct 22, 2017 · 11 comments

Comments

Projects
None yet
7 participants
@nkolban

nkolban commented Oct 22, 2017

I am using the latest code as of this post. Both the latest ESP-IDF from Git master and the latest Arduino-ESP32 download. I have a sketch which enables WiFi ... see:

https://pastebin.com/7KvKX27J

All compiles and flashes cleanly, but at runtime, I get the error:

Connecting to XXX
W (84) wifi: wifi nvs_open fail ret=4353

E (84) wifi: wifi_init 1410 ret=4353
[E][WiFiGeneric.cpp:120] wifiLowLevelInit(): esp_wifi_init 4353
W (87) wifi: wifi nvs_open fail ret=4353

E (90) wifi: wifi_init 1417 ret=4353
[E][WiFiGeneric.cpp:120] wifiLowLevelInit(): esp_wifi_init 4353
.......................

I am building my solution using Arduino as a component in ESP-IDF as opposed to using the Arduino IDE. I can recreate at will and am happy to provide any additional information or screen share as needed.

@me-no-dev

This comment has been minimized.

Member

me-no-dev commented Oct 22, 2017

Your BLE device causing this? I saw in your BLE code that you nvs_open

@nkolban

This comment has been minimized.

nkolban commented Oct 22, 2017

It shouldn't ... if we look at the pastebin of the code I am using here:

https://pastebin.com/7KvKX27J

I had hoped I had commented out all the BLE code calls... so it was nothing but WiFi. I'm for sure not saying the error isn't in my code ... I'm just not seeing it yet and have tried to back out to just WiFi. I noticed that the WiFi library changed in Arduino-ESP32 the other day.

@igrr

This comment has been minimized.

Member

igrr commented Oct 30, 2017

Don't forget to initialize NVS using nvs_flash_init() before enabling WiFi.
Previously that was not strictly required, as WiFi driver would also call nvs_flash_init if the application didn't. It doesn't do that anymore, so application should take care of NVS initialization before WiFi or Bluetooth drivers are started.

@me-no-dev

This comment has been minimized.

Member

me-no-dev commented Oct 30, 2017

WiFi Does start the NVS :) @nkolban is this still present with the latest build? I had no issues running BLE and WiFi at the same time

@coolbreeze413

This comment has been minimized.

coolbreeze413 commented Oct 31, 2017

I am also trying to use my custom code with the arduino-esp32 core as an esp-idf component, and ran into the same problem. I found that nvs_flash_init() called from app_main() was failing. The error code was ESP_ERR_NVS_NO_FREE_PAGES indicating a problem with the nvs partition.
After erasing the chip flash with "make erase_flash" the nvs init succeeded, and the WiFi connection also worked (and nvs_open failures were gone).
I am not sure why the problem appeared suddenly, probably some change in the esp-idf/arduino-esp32 triggered this and we need to erase the flash fully to make it work correctly.

@me-no-dev

This comment has been minimized.

Member

me-no-dev commented Nov 6, 2017

this can happen if you switch partition schemes and they have different nvs size.

@kenjican

This comment has been minimized.

kenjican commented Nov 21, 2017

I encoutered the same problem, the solution is to unselect Wifi nvs enabled in menuconfig ,component config -> Wifi -> Wifi NVS Flash. And make flash.

@tablatronix

This comment has been minimized.

Contributor

tablatronix commented Feb 6, 2018

I just had a similar issue out of the blue, not using ble, nothing in sketch but printdiag()

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:812
load:0x40078000,len:0
load:0x40078000,len:11404
entry 0x40078a28
W (17) wifi: wifi nvs_open fail ret=4353

E (17) wifi: wifi_init 1408 ret=4353
[E][WiFiGeneric.cpp:118] wifiLowLevelInit(): esp_wifi_init 4353

 Starting
E (23) wifi: esp_wifi_get_mode 789 wifi is not init
E (23) wifi: esp_wifi_get_channel 1168 wifi is not init
E (23) wifi: esp_wifi_get_auto_connect 1345 wifi is not init
Mode: 
Channel: 252
Auto connect: 63
E (31) wifi: esp_wifi_get_config 1011 wifi is not init
SSID (12): �E�?���?���?
Passphrase (0): 
BSSID set: 1

and now this

Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:812
load:0x40078000,len:0
load:0x40078000,len:11404
entry 0x40078a28

 Starting
E (1034) wifi: esp_wifi_get_mode 789 wifi is not init
E (1035) wifi: esp_wifi_get_channel 1168 wifi is not init
E (1035) wifi: esp_wifi_get_auto_connect 1345 wifi is not init
Mode: Guru Meditation Error: Core  1 panic'ed (LoadProhibited)
. Exception was unhandled.
Register dump:
PC      : 0x400014e8  PS      : 0x00060730  A0      : 0x800f1cd0  A1      : 0x3ffd09c0  
A2      : 0x800f25c6  A3      : 0x800f25c4  A4      : 0x000000ff  A5      : 0x0000ff00  
A6      : 0x00ff0000  A7      : 0xff000000  A8      : 0x800f1b78  A9      : 0x3ffd0990  
A10     : 0x3ffc1798  A11     : 0x3f404330  A12     : 0x00000000  A13     : 0x3ffd0660  
A14     : 0x3ffd0660  A15     : 0x00000004  SAR     : 0x00000004  EXCCAUSE: 0x0000001c  
EXCVADDR: 0x800f25c4  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xfffffffe  

Backtrace: 0x400014e8:0x3ffd09c0 0x400f1ccd:0x3ffd09d0 0x400f1d15:0x3ffd09f0 0x400f2670:0x3ffd0a10 0x400d080d:0x3ffd0ad0 0x400f25c3:0x3ffd0af0

And after I erase flash


rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
Falling back to built-in command interpreter.
OK
>ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

hmmm, that part might be normal though,

Ok seems to be fixed, erased flash and then
made sure wifi was enabled before calling printDiag().

@tablatronix

This comment has been minimized.

Contributor

tablatronix commented Feb 6, 2018

printdiag was cause, #1088

@tablatronix

This comment has been minimized.

Contributor

tablatronix commented Mar 21, 2018

W (20) wifi: wifi nvs_open fail ret=4353

I start getting this again..

Gonna nvs erase

@everslick

This comment has been minimized.

Collaborator

everslick commented Apr 19, 2018

This issue is closed, because it looks as if it is not a bug or problem with the ESP32 Arduino core or its support libraries. For general API usage questions or help on specific coding challenges, please visit the arduino-esp32 Gitter channel. If you feel this issue was closed in error, reopen it and comment, why you think this is a bug in the Arduino-Core.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment