Ошибка загрузки на ESP32

Всем добрый день.

Купил плату на Озоне Артикул 2110926200 (https://www.ozon.ru/product/plata-esp32-s-ethernet-wi-fi-i-bluetooth-wt32-eth0-2110926200/?from_sku=2219479393&oos_search=false)

Там же купил кабель артикул 2266435042 (https://www.ozon.ru/product/konsolnyy-kabel-usb-rj45-usb-rj45-cisco-console-cable-2266435042/)

Установил Arduino IDE 2.3.8

Скачал/установил платы Arduino ESP32 Boards от Arduino и esp32 от Espressif Systems

Версию аддона для esp32 не знаю где посмотреть.

Сейчас в Arduino выбрана плата ESP32-WROOM-DA Module

Кабель определился как COM7 это порт у меян в Arduino выбран

Плату включаю с замкнутыми контактами IO0 и GND

Сейчас при загрузке на плату после компиляции получаю ошибку -
fatal error occurred: Failed to connect to ESP32: Serial data stream stopped: Possible serial noise or corruption.
For troubleshooting steps visit: docs .espressif.com/projects/esptool/en/latest/esp32/troubleshooting . html
Не удалась загрузка: ошибка при загрузке: exit status 2

Подозреваю что ошибка в выборе платы. Прошу дать совет как узнать какую плату надо выбрать. Возможно мной совершены ещё какие-то явные ошибки, прошу совета как их исправить

Также попробовал указать плату WT32-ETH01 Ethernet Module.

Получил такую же ошибку

смотрим распиновку, подключил правильно?

#ifndef Pins_Arduino_h
#define Pins_Arduino_h

/**
 * Variant: WT32-ETH01
 * Vendor: Wireless-Tag
 * Url: http://www.wireless-tag.com/portfolio/wt32-eth01/
 */

#include <stdint.h>

// interface to Ethernet PHY (LAN8720A)
#define ETH_PHY_ADDR  1
#define ETH_PHY_POWER 16
#define ETH_PHY_MDC   23
#define ETH_PHY_MDIO  18
#define ETH_PHY_TYPE  ETH_PHY_LAN8720
#define ETH_CLK_MODE  ETH_CLOCK_GPIO0_IN

// general purpose IO pins
static const uint8_t IO0 = 0;
static const uint8_t IO1 = 1;  // TXD0 / TX0 pin
static const uint8_t IO2 = 2;
static const uint8_t IO3 = 3;  // RXD0 / RX0 pin
static const uint8_t IO4 = 4;
static const uint8_t IO5 = 5;  // RXD2 / RXD pin
static const uint8_t IO12 = 12;
static const uint8_t IO14 = 14;
static const uint8_t IO15 = 15;
static const uint8_t IO17 = 17;  // TXD2 / TXD pin
static const uint8_t IO32 = 32;  // CFG pin
static const uint8_t IO33 = 33;  // 485_EN pin

// input-only pins
static const uint8_t IO35 = 35;
static const uint8_t IO36 = 36;
static const uint8_t IO39 = 39;

// UART interfaces
static const uint8_t TXD0 = 1, TX0 = 1;
static const uint8_t RXD0 = 3, RX0 = 3;
static const uint8_t TXD2 = 17, TXD = 17;
static const uint8_t RXD2 = 5, RXD = 5;
static const uint8_t TX = 1;
static const uint8_t RX = 3;

//SPI VSPI default pins
static const uint8_t SS = -1;
static const uint8_t MOSI = 14;
static const uint8_t MISO = 15;
static const uint8_t SCK = 12;

//I2C default pins
static const uint8_t SDA = 33;
static const uint8_t SCL = 32;

#endif /* Pins_Arduino_h */

Зачем?

как зачем? мужикам нравится слово ДА!

А чё там смотреть, он её через этот шнурок и шьёт :slightly_smiling_face:

через цисковский кабель…прям анекдот напомнил…мышь в 3.14…оригинально
Там же написано как подключать, что пины надо перевернуть
Кабель есть, осталось взять розетку разбить три провода и подпаяться к пинам 1,3 и gnd ESP32

Ещё до того как плата мне пришла мельком пролистал несколько интернет ресурсов и в одном из них было что-то про ESP32-WROOM.

Изначально когда поставил Arduino, то скачал/установил Arduino ESP32 Boards. Выбрал плату ESP32 Nano.

Другую плату скачать/установить не удавалось, потому как не хватало места на диске C. Сегодня с утра разобрался как поменять настройки чтобы платы скачивались/устанавливались на диск D.

После этого уже выбрал WT32-ETH01 Ethernet Module, но результат также был безуспешным

Только у меня кабель usb - ethernet

так гвоздь не в ту стену, куда ты RJ-45 подключаешь?

глупости не надо говорить, это стандартный консольный кабель CISCO

USB в ноутбук, RG-45 в плату на ней разъём

тебе нужен кабель USB-UART, это именно такой, но с разъёмом RJ-45

Спасибо. Буду искать

типа такого, чтобы напряжение можно было переключить на 3.3 вольта

Я думал о том, что надо кабель как-то проверить и искал другие возможные варианты. Много натыкался как раз на подобные адаптеры.

В итоге именно это я уже заказал он должен 23-го числа прийти.

Подскажите для чего переключение на 3.3 вольта.? Мне надо будет использовать именно его?

ESP32 3.3 вольтовая

Первый поиск дал.

#include <ETH.h>
#include <WebServer.h> // Introduce corresponding libraries

#define ETH_CLK_MODE    ETH_CLOCK_GPIO0_IN
#define ETH_POWER_PIN  16
// Type of the Ethernet PHY (LAN8720 or TLK110)
#define ETH_TYPE        ETH_PHY_LAN8720
// I²C-address of Ethernet PHY (0 or 1 for LAN8720, 31 for TLK110)
#define ETH_ADDR        1
// Pin# of the I²C clock signal for the Ethernet PHY
#define ETH_MDC_PIN     23
// Pin# of the I²C IO signal for the Ethernet PHY
#define ETH_MDIO_PIN    18
WebServer server(80);

void setup() {
  Serial.begin(115200);
  Serial.println("Start Ethernet");
  if (ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE, ETH_CLK_MODE))
  {
    //log_d("Ethernet is init!");
    //IPAddress ip(192, 168, 0, 85);
    //IPAddress gateway(192, 168, 0, 1);
    //IPAddress mask(255, 255, 255, 0);
    //ETH.config(ip, gateway, mask);
    Serial.print("ETH MAC: ");
    Serial.println(ETH.macAddress());
    while (!((uint32_t)ETH.localIP())) {}; // Waiting for IP (leave this line group to get IP via DHCP)
    String ip = ETH.localIP().toString();
    if (ip != "0.0.0.0") {
      Serial.println("OK");
      Serial.print("IPv4: ");
      Serial.println(ip);
    }
  }

  server.on("/", HTTP_GET, []() {
  server.send(200, "text/plain", "hello from esp32!");
  });
 
  server.onNotFound([]() {
  String message = "File Not Found\n\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET) ? "GET" : "POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i = 0; i < server.args(); i++) {
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  server.send(404, "text/plain", message);
  });

  server.begin();
  Serial.println("HTTP server started");
}

void loop() {
  server.handleClient();
}

У меня сейчас есть подключение 5v на плату. Могу ли я его оставить, а с UART брать только данные? Или лучше плату полностью запитать от UART?

модуль позиционируется как IoT устройство, для внутренней сети проблем нет, а если по LAN надо поднять PPtP чтобы наружу выйти?