Publicado el Deja un comentario

ESP32 rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

ESP32 Error SW_RESET
fail

En esta entrada te muestro lo que hice para corregir un error que tenía al momento de trabajar con nuestra Tarjeta de desarrollo ESP32.

Al momento de iniciar con cualquier ejemplo, el monitor serial mostraba el siguiente error:

rst:0x3 (SW_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:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
ets Jun 8 2016 00:22:57

Lo primero que debes hacer es asegurarte que tienes la última versión de la librería configurada dentro de tu IDE Arduino. A la fecha de escribir esta entrada, la versión es 1.0.4. Para esto seguí el tutorial que te brinda el fabricante aquí. Básicamente debes agregar la URL donde se encuentra la tarjetas de Espressif: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Luego, a través del Board Manager debes incluir las tarjetas a tu IDE Arduino. Abre la ventana de «Gestor de tarjetas» (Herramientas / Placa / Gestor de tarjetas…). En el buscador coloca «esp32». Selecciona la opción que dice esp32 by Espressif Systems y presiona «Instalar». Al final, cierra la ventana.

Selecciona la tarjeta «ESP32 Dev Module» que se encuentra dentro de la categoría «ESP32 Arduino».

Finalmente, en las configuraciones de la tarjeta, debes CAMBIAR la Frecuencia de la Flash «Flash Frequency» a «40Mhz».

En mi caso, con este cambio ya funcionó la tarjeta y pude cargar un programa para escanear las redes WiFi.

#include "WiFi.h"

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

  // Set WiFi to station mode and disconnect from an AP if it was previously connected
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  Serial.println("Setup done");
}

void loop()
{
  Serial.println("scan start");

  // WiFi.scanNetworks will return the number of networks found
  int n = WiFi.scanNetworks();
  Serial.println("scan done");
  if (n == 0) {
    Serial.println("no networks found");
  } else {
    Serial.print(n);
    Serial.println(" networks found");
    for (int i = 0; i < n; ++i) {
      // Print SSID and RSSI for each network found
      Serial.print(i + 1);
      Serial.print(": ");
      Serial.print(WiFi.SSID(i));
      Serial.print(" (");
      Serial.print(WiFi.RSSI(i));
      Serial.print(")");
      Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? " " : "*");
      delay(10);
    }
  }
  Serial.println("");

  // Wait a bit before scanning again
  delay(5000);
}

La salida de este código permite visualizar en el Monitor serial las redes WiFi disponibles.

Referencias:
– esp32.com, «SW_RESET continuous reboot», Disponible en: https://github.com/espressif/arduino-esp32/issues/3033#issuecomment-517065972.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *