• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP32DEVKIT V1

pvvx

Активный участник сообщества
Спустя более полугода заказов, потери пару тысч.руб (продавец на али смысля, проходить все процедуры из-за такой суммы лень), наконец пришел модуль за ~1400 руб:
EPS32DEVKIT V1 a.jpg EPS32DEVKIT V1 b.jpg
log_esp32.gif
Модуль просто-так не работает. Драйвер USB включается и выключается - перегрузка по току потребления:
Снимок1183.gif
Как я понимаю это исправлению не подлежит?
Если держать кнопку RESET, то потребление вписывается в заявленный план и комп не выключает данное устройство. Но если отжать RESET - драйвер отключается. Выходит мигалка двумя светодиодами (комп отключает питание для пересброса драйвера и красненький светодиод тоже моргает).
Можно нажать кнопку BOOT - тогда процесс включения/выключения питания на данное устройство USB заканчивается - вписывается в заявленные 100 mA.
Комп, куда я вставляю данный модуль способен выдать и 5A на USB. Но это надо разрешить в заголовке USB устройства... Опасное это дело - при замыкании питания на обычных шнурах USB и разрешении выдачи такого тока они дымяться, не отключаясь - хилые жилы :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Измеряем ток потребления модуля.
Соединяем GND и на VIN подаем 5V от модуля USB с FTDI3232, через INA219 с Web-сервером на ESP8266 (такой измеритель у меня с поторазвязкой по WiFi :)):
Снимок1184.gif
Получаем, что модуль ESP32DEVKIT жрет 158 mA ничего не делая. :( Больше чем Orange Pi Zero (но ESP32DEVKIT и стоит больше! :) )
Крышка модуля WiFi - теплая. (это он рассеивает 0.5Вт просто так)
Т.е. без дополнительного БП его в USB не включить или надо как-то перешивать CP2102...
----
Перешил на 250 mA. Теперь работает:
Снимок1186.gif
Греется хорошо вся плата...
 
Последнее редактирование:

pvvx

Активный участник сообщества
Считал прошивку командой
C:\Python27\python.exe esptool.py --chip esp32 --port COM7 --baud 230400 --before esp32r0 read_flash 0 0x400000 fullflash.bin
с которой пришел модуль:
 

Вложения

pvvx

Активный участник сообщества
Теперь вопрос - что ему написать в COM порт, чтобы он включил WiFi или ещё что... Типа проверить работоспособность...
Пока по этому вопросу данных на нормальном русском языке не найдено. Всё узко-специализировано на заграничную тарабарщину, хотя ПО вроде пишет Ivan Grokhotkov.
GitHub - espressif/esp-idf: Espressif IoT Development Framework. Official development framework for ESP32.
А писать какую-то прошивку в модуль буду позже..
Итак пытался поставить Arduino по данной инструкции:
arduino-esp32/windows.md at master · espressif/arduino-esp32 · GitHub
Скачалось всё успешно, но не работает - плат ESP32 в Arduino 1.8.1 не появляется.
Перекинул каталоги как положено, а не как указано в том документе.
Появился выбор плат.
Из либ имеем только SPI, WiFi, Wire. А это все примеры:
Снимок1193.gif
и чем закончилась трансляция одного из них - не лезет в плату, не хочет, хотя опции загрузки вроде правильные...
Сейчас буду забивать сапогом... :)
---
Утрамбовал. Беда оказалась от умельцев в Espressif. При программировании надо тапком держать кнопку BOOT. Автомат не работает - покупайте новую глюк версию платы :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Тест времени соединения и потребления ESP32 на примере WiFiClient.ino.
Снимок1194.gif
Соединение с роутером занимает более 4-х секунд. (По хлебным крошкам в логе "." - их 8 шт, шаг 500 ms)
Питание ~170 mA, с повышениями при выводе в UART. :confused:
Код:
ts Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0008,len:8
load:0x3fff0010,len:1760
load:0x40078000,len:6668
load:0x40080000,len:252
entry 0x40080034


Connecting to ********
........
WiFi connected
IP address:
192.168.1.73
connecting to data.sparkfun.com
Requesting URL: /input/....................?private_key=....................&value=1
HTTP/1.1 400 Bad Request
                        Access-Control-Allow-Origin: *
                                                      Access-Control-Allow-Methods: GET,POST,DELETE
                                                                                                   Access-Control-Allow-Headers: X-Requested-With, Phant-Private-Key
                                                                                                                                                                    Content-Type: text/plain
            Date: Fri, 20 Jan 2017 18:49:41 GMT
                                               Connection: close
                                                                Transfer-Encoding: chunked
                                                                                          Set-Cookie: SERVERID=; Expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/

                                                                                                                                                              13
                                                                                                                                                                0 stream not found

  0


closing connection
При удержании кнопки RESET потребление 21.79 mA.
При старте с нажатой кнопкой BOOT потребление сходит к 37.92 mA.
При удержании кнопки RESET и BOOT потребление 24.19 mA.
При запитке по цепи 3.3V напряжением 3.22V* картина сильно не меняется:
Снимок1196.gif
*3.22V - чтобы не ограничивал стабилизатор на плате.
При 3.22 перестает грется стабилизатор и USB-UART. Но модуль греется так-же - от 3.22*0.154= 0.49588 Вт

PDF CP2102: Supply Current—Normal: 20 mA, Suspended: 80uA.
+ Светодиод питания - он включен через 1к в 3.3V - ну пусть 1.5 mA.
Жручий ESP32 :(
А вот заявка Espressif на модуль:
Снимок1198.gif
Опять врут.

 
Последнее редактирование:

pvvx

Активный участник сообщества
Что-то я совсем не понимаю. Спека на сам чип:
Снимок1199.gif
В ней указаны значения больше, чем на полный модуль (с SPI Flash чипом с которого на 80 MHz DIO прет программа).
Средняя Flash:
Current Read Data / Dual Output Read/Quad Output Read 80MHz 10/11/12 15/16.5/18 mA
Т.е. 85+11 = 96 mA (Typical), а у Espressif выходит в PDF на модуль (esp_wroom_32_datasheet_en.pdf): Operating current Average: 80 mA (!)
Из этого выходит один единственный вывод - и там и там враньё.
Скорее всего это замер только RF части чипа по питанию - это типа такой BLE :)
Одной из особенностью модуля является сверхнизкое потребление.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Так, теперь скорость приема по WiFi. На чип писано - 150Mbit/s (?).
Скетч теста приема по UDP:
Код:
/*
   Test UDP read
*/
#include <WiFi.h>
#include <WiFiUdp.h>
#include <myAP.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/time.h>

#define BUFSIZE 2048
#define PORT 5001

//char ssid[] = "mynetwork"; //  your network SSID (name)
//char pass[] = "mypassword";    // your network password (use for WPA, or use as key for WEP)
int status = WL_IDLE_STATUS;

WiFiUDP Udp;
char server[] = "192.168.1.2";
int port = 5001;
uint8_t buf[BUFSIZE];
int sockfd, optval;

struct sockaddr_in serveraddr, clientaddr;
int clientaddr_len = sizeof(clientaddr);

struct hostent *hostp;
char *hostaddrp;

long datacount = 0;

uint32_t delta_time_ms, tik;

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

  // We start by connecting to a WiFi network

  Serial.println();
  Serial.println("WiFi Connect...");
  delta_time_ms = millis();
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(100);
    Serial.print(".");
  }
  delta_time_ms = millis() - delta_time_ms;
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  Serial.print("Time connect = ");
  Serial.print(delta_time_ms);
  Serial.println(" ms");

  Serial.println("Wait UDP...");
  sockfd = socket(AF_INET, SOCK_DGRAM, 0);
  if (sockfd < 0) {
    Serial.println("ERROR opening socket");
    while (1);
  }

  optval = 1;
  setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (const void *)&optval , sizeof(int));

  memset(&serveraddr, 0, sizeof(serveraddr));
  serveraddr.sin_family = AF_INET;
  serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
  serveraddr.sin_port = htons(PORT);
  if (bind(sockfd, (struct sockaddr *) &serveraddr, sizeof(serveraddr)) < 0) {
    Serial.println("ERROR on binding");
    while (1);
  }
  delta_time_ms = millis();
}

void loop() {
  int n = recvfrom(sockfd, buf, BUFSIZE, 0, (struct sockaddr *) &clientaddr, (socklen_t*)&clientaddr_len);
  if (n < 0) {
    Serial.println("ERROR in recvfrom");
  }
  else datacount += n;

  if (millis() - delta_time_ms >= 1000) {
    Serial.print("Average: ");
    if (datacount < 8192) {
      Serial.print(datacount);
      Serial.println(" bytes/sec");
    }
    else {
      Serial.print(datacount / 1024);
      Serial.println(" kbytes/sec");
    }
    datacount = 0;
    delta_time_ms = millis();
  }
}
Заливаем и ищем предел равномерного потока приема, меняя iperf.exe baud rate...
54Mbit/s
Снимок1202.gif
Далее чип пошел на большее но вроде перегрелся (при приеме :)).... Начал соединяться к AP роутера более минуты :eek:
Но потом опять воспрял (это наверно опять проделки Espressif по поводу бажного алго автоподстройки частоты WiFi для режима station перекинутое из ESP8266)
Итого - пик 7621 килобайта в секунду (безусловно с потерей к 10..20% пакетов):
70Mbit/s на него:
Снимок1204.gif
7600 кило = 7.4Mбайта в сек (UDP).
В принципе норма для 54Mbit :) (AP роутера на >300 Mbit/s, MIMO и фазирование...)
Но работает не устойчиво. Раз на раз не приходится - на скринах даны лучшие варианты. Кто выдавит (т.е. вдавит в модуль :)) больше на каком Cisco?
Переключения прием/передача в данном тесте нет. Только прием. А переключение должно занимать время и передача должна синхронизоваться арбитражем AP роутера...
 
Последнее редактирование:

pvvx

Активный участник сообщества
Ну вот и прием по TCP.
Код:
/*
   Test TCP read
*/

#include <WiFi.h>
#include <WiFiUdp.h>
#include <myAP.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/time.h>

#define BUFSIZE 5840
#define PORT 5001

//char ssid[] = "mynetwork"; //  your network SSID (name)
//char pass[] = "mypassword";    // your network password (use for WPA, or use as key for WEP)
int status = WL_IDLE_STATUS;

WiFiUDP Udp;
char server[] = "192.168.1.2";
int port = 5001;
uint8_t buf[BUFSIZE];
int sockfd, optval;

struct sockaddr_in serveraddr, clientaddr;
int clientaddr_len = sizeof(clientaddr);

struct hostent *hostp;
char *hostaddrp;

long datacount = 0;

uint32_t delta_time_ms, tik;

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

  // We start by connecting to a WiFi network

  Serial.println();
  Serial.println("WiFi Connect...");
  delta_time_ms = millis();
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(100);
    Serial.print(".");
  }
  delta_time_ms = millis() - delta_time_ms;
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  Serial.print("Time connect = ");
  Serial.print(delta_time_ms);
  Serial.println(" ms");

  Serial.println("Wait data...");
  sockfd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); // SOCK_STREAM, SOCK_DGRAM
  if (sockfd < 0) {
    Serial.println("ERROR opening socket");
    while (1);
  }

  optval = 1;
  setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (const void *)&optval , sizeof(int));

  memset(&serveraddr, 0, sizeof(serveraddr));
  serveraddr.sin_family = PF_INET;
  serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
  serveraddr.sin_port = htons(PORT);
  if (bind(sockfd, (struct sockaddr *) &serveraddr, sizeof(serveraddr)) < 0) {
    Serial.println("ERROR on binding");
    while (1);
  }
  delta_time_ms = millis();
  if (listen(sockfd, 1) < 0) {
    Serial.println("ERROR listen");
    while (1);
  }
}

void loop() {
  int x = accept(sockfd, 0, 0);
  while(x > 0) {
    int n = read(x, buf, BUFSIZE);
    //  int n = recvfrom(sockfd, buf, BUFSIZE, 0, (struct sockaddr *) &clientaddr, (socklen_t*)&clientaddr_len);

    if (n < 0) {
      Serial.println("ERROR in recvfrom");
    }
    else datacount += n;

    if (millis() - delta_time_ms >= 1000) {
      Serial.print("Average: ");
      if (datacount < 8192) {
        Serial.print(datacount);
        Serial.println(" bytes/sec");
      }
      else {
        Serial.print(datacount / 1024);
        Serial.println(" kbytes/sec");
      }
      datacount = 0;
      delta_time_ms = millis();
    }
  }
}
При оптимизации на (окно приема стека TCP) WIN в 5840 байт у ESP-32S:
Снимок1205.gif
Пик - 1.5 Мегабайт в секунду.
Где обещанные в 1a-esp32_datasheet_en-v0.1.pdf (?):
Снимок1206.gif
:)
Не может переплюнуть RTL8710AF в модуле RTL00 по цене 120 руб и имеющий 512 килобайт RAM, но не рассчитанный на сверх высокие показатели - у Realtek расчет на дешевый IoT с массой аппаратных интерфейсов (их там больше чем у ESP32S и + NFC).

Потребление при данном тесте ~200 mA - тут уже есть передача ACK пакетов.
На всякий случай лог из модуля
Код:
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0008,len:8
load:0x3fff0010,len:1760
load:0x40078000,len:6668
load:0x40080000,len:252
entry 0x40080034

WiFi Connect...
........................................WiFi connected
IP address:
192.168.1.73
Time connect = 4002 ms
Wait data...
Average: 24 bytes/sec
Average: 1552 kbytes/sec
Average: 653 kbytes/sec
Average: 1314 kbytes/sec
Average: 1564 kbytes/sec
Average: 1331 kbytes/sec
Average: 1625 kbytes/sec
Average: 1455 kbytes/sec
Average: 1574 kbytes/sec
Average: 1450 kbytes/sec
Average: 1529 kbytes/sec
Average: 1498 kbytes/sec
Average: 1385 kbytes/sec
Average: 1358 kbytes/sec
Average: 1230 kbytes/sec
Average: 1572 kbytes/sec
Average: 1591 kbytes/sec
Average: 1354 kbytes/sec
Average: 1126 kbytes/sec
Average: 1351 kbytes/sec
Average: 711 kbytes/sec
Average: 1767 kbytes/sec
Average: 1635 kbytes/sec
Average: 1149 kbytes/sec
Average: 1009 kbytes/sec
Average: 141 kbytes/sec
Average: 8170 bytes/sec
Average: 0 bytes/sec
Соединение с AP всегда от 4002 ms и до нескольких минут (наверно сырое ПО в том месте).
ESP32 не стартует (хоть по RESET кнопке), если БП не способен выдать 400 mA без провала в течении процедуры инициализации модуля... Вываливается на "протектед".
Это уточнение для желающих использовать модуль в режиме BLE.
Стандарт BLE гласит:
Bluetooth с низким энергопотреблением - Максимально потребляемый ток < 15 мА

На этом тестирование можно закончить. Остальное ПО к ESP32 находится в незавершенном виде, далее Espressif обещает новые "облегченные" чипы c одним ядром, но наверно ещё дороже и хуже. Хваленый мат. сопроцессор там тоже не удался - время исполнения простых мат.команд составляет десятки us из-за латентности памятей и работы "кэшей". Половина аппаратных устройств ESP-32S (dual Core) ещё не протестирована программно-аппаратно и находится в экспериментальной альфа стадии...

Итоговый расклад по TTX + пользовательские плющки к средне-оптовая цена на момент тестов:
ESP-32S->ESP8266->CC3200->RTL8710AF-> RTL8711AF-> RTL8711AM->MINI 3G WIFI-> RTL8195A->OrangePiZero
 
Последнее редактирование:

uc3a

New member
ESP32-DevKitC работает стабильно, драйвер CP210x установился без проблем. Подключаю к USB3. Плата выдаёт это:

Terminal log file
Date: 19.01.2017 - 20:35:43
-----------------------------------------------
ets Jun 8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
ets Jun 8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3ffc0000,len:0
load:0x3ffc0000,len:2304
load:0x40078000,len:3788
ho 0 tail 12 room 4
load:0x40098000,len:532
entry 0x4009813c
[1;36m

[0m[1;36m**************************************
[0m[1;36m* hello espressif ESP32! *
[0m[1;36m* 2nd boot is running! *
[0m[1;36m* version (V0.1) *
[0m[1;36m**************************************
[0m[0;36mcompile time 18:16:58

[0m[0;36m SPI Speed : 40MHz
[0m[0;36m SPI Mode : DIO
[0m[0;36m SPI Flash Size : 4MB
[0m[1;36mPartition Table:
[0m[1;36m## Label Usage Type ST Offset Length
[0m[1;36m 0 factory factory app 00 00 00010000 00100000
[0m[1;36m 1 rfdata RF data 01 01 00110000 00040000
[0m[1;36m 2 wifidata WiFi data 01 02 00150000 00040000
[0m[1;36mEnd of partition table
[0m[1;36mLoading app partition at offset 00010000
[0m[0;36msection 0: paddr=0x00000020 vaddr=0x00000000 size=0x0ffe8 ( 65512)
[0m[0;36msection 1: paddr=0x00010010 vaddr=0x3f400010 size=0x05b64 ( 23396) map
[0m[0;36msection 2: paddr=0x00015b7c vaddr=0x3ffba720 size=0x01378 ( 4984) load
[0m[0;36msection 3: paddr=0x00016efc vaddr=0x40080000 size=0x00400 ( 1024) load
[0m[0;36msection 4: paddr=0x00017304 vaddr=0x40080400 size=0x126ac ( 75436) load
[0m[0;36msection 5: paddr=0x000299b8 vaddr=0x00000000 size=0x06658 ( 26200)
[0m[0;36msection 6: paddr=0x00030018 vaddr=0x400d0018 size=0x325b4 (206260) map
[0m[0;36mstart: 0x400807ac

[0mInitializing heap allocator:
Region 19: 3FFBBA98 len 00024568 tag 0
Region 25: 3FFE8000 len 00018000 tag 1
Pro cpu up.
Pro cpu start user code
nvs_flash_init
frc2_timer_task_hdl:3ffbc564, prio:22, stack:2048
tcpip_task_hdlxxx : 3ffbeca8, prio:20,stack:2048
phy_version: 80, Aug 26 2016, 13:04:06, 0
pp_task_hdl : 3ffc34f0, prio:23, stack:8192

:>enter uart init
uart init wait fifo succeed
exit uart init

IDF version : master(db93bceb)

WIFI LIB version : master(934d079b)

ssc version : master(r283 4d376412)

!!!ready!!!
mode : softAP(xx:xx:xx:xx:xx:xx)
dhcp server start:(ip: 192.168.4.1, mask: 255.255.255.0, gw: 192.168.4.1)

+WIFI:AP_START
 
Последнее редактирование:

pvvx

Активный участник сообщества
ESP32-DevKitC работает стабильно, драйвер CP210x установился без проблем. Подключаю к USB3. Плата выдаёт это:
У вас какая-то другая прошивка и видимо комп не умеет измерять ток потребления (сравнивать с указанным чипом в USB).
USB 3.0 по умолчанию дает больше ток. Но у меня все разъемы USB3.0 заняты. Потом попробую...
Если USB 2.0 не говорит предел тока, например при включении Orange Pi Zero, то у меня с компа туда идет более 500 mA. Т.е. если более, то питание отключается. А если устройство объявляет ток, то выдает по заявке до 5A. Черные наконечки-разъемчики на проводках типа как используют на платках для отладки при таком токе часто плавятся :) Китайцы там наверно ужасное железо используют с большим сопротивлением контакта...

Посмотрите что дает CP210x в профиле. Некоторые мамки компов умеют и показывать текущий ток устройства в драйвере...

Сейчас в плату прошит пример из Arduino и стартовый лог такой:
Код:
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0008,len:8
load:0x3fff0010,len:1760
load:0x40078000,len:6668
load:0x40080000,len:252
entry 0x40080034

WiFi Connect...
................................................................
WiFi connected
IP address:
192.168.1.73
Time connect = 32002 ms
Wait data...
Модуль соединяется с AP более 32-х секунд в среднем. Иногда вообще не дождаться (более 5 минут), потом, когда "прогреется" - часто 4002 ms, но выпадает и больше. Систему по чему так не уловить.
На AP стоит такой режим:
Снимок1210.gif
Кусок скетча старта:
Код:
void setup() {
  Serial.begin(115200);
  delay(10);

  Serial.println();
  Serial.println("WiFi Connect...");
  delta_time_ms = millis();
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  delta_time_ms = millis() - delta_time_ms;
  Serial.println();
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  Serial.print("Time connect = ");
  Serial.print(delta_time_ms);
  Serial.println(" ms");[code]
При этих-же параметрах и том-же роутере (время до выдачи IP):
ESP8266 - от 1.8 до 4-х секунд
RTL871x - от 1.8 до 3.7 секунд
Это если всё делать по стандарту и установках по умолчанию: объявление о выходе на WiFi модуля, поиск и опрос AP по WiFi, соединение с AP, переговор с DHCP о выдачи IP.
Сокращенный вариант с фиксированным IP быстрее - порядок до 1.2 сек у других модулей.
Сравнивать с ESP-32S нет смысла - ПО у него слишком сырое. Через пару лет доделают. :)

А вот на счет потребления ситуация неисправимая. Варианты только занижать и зажимать частоты ядер процессора и отключать все контроллеры – т.е. модуль становится не функционален. По стартовому потреблению явно видно, что работа обоих ядер и активное использование памятей и частей данного SoC– это потребление на уровне более 400 mA. Нафиг такое г., если та-же Orange Pi Zero при таком уровне потребления (выключен sleep и прочие ограничения) превышает производительность и функциональность ESP-32S в десятки или сотни раз, а стоит дешевле.

Придется ждать другой редакции чипа, возможно со сменой тех.норм в nm. Но на это уйдут годы у Espressif. То-то они и зашевелились с рекламой для обывателей. Видимо девать чипы некуда, а затраты на разработку не окупаются. Теперь пытаются втюхать это г. на рынок для обывателей.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Потребление тока модулем детальнее:
ESP32SPower5V.gif
Читать не mV, а mA :)
Это теперь называется "малопотребляющий модуль". :)
 

sharikov

Active member
...и видимо комп не умеет измерять ток потребления (сравнивать с указанным чипом в USB).
USB 3.0 по умолчанию дает больше ток. Но у меня все разъемы USB3.0 заняты. Потом попробую...
Если USB 2.0 не говорит предел тока, например при включении Orange Pi Zero, то у меня с компа туда идет более 500 mA. Т.е. если более, то питание отключается. А если устройство объявляет ток, то выдает по заявке до 5A.
Вы приводите примеры такой экзотики которую абсолютное большинство юзеров никогда не видело и не увидит.
В 99% писюков на питание усб тупо запаяна перемычка. Даже предохранителя нет - выдаст ток пока шнурок не расплавится. На таких портах все работает потому что ток в дескрипторе устройств ничего не значит.

Потребление 570ма в течение 8мс - это жостко.

Попробуйте мангуста прошить - Cesanta хвалили esp32.
 

pvvx

Активный участник сообщества
Вы приводите примеры такой экзотики которую абсолютное большинство юзеров никогда не видело и не увидит.
В 99% писюков на питание усб тупо запаяна перемычка. Даже предохранителя нет - выдаст ток пока шнурок не расплавится. На таких портах все работает потому что ток в дескрипторе устройств ничего не значит.
Извините, но я такими компами не пользуюсь. Это небезопасно.
Потребление 570ма в течение 8мс - это жостко.
Там есть и больше - когда по два-три таких непрерывно. К 20 ms встречается. Это всего работает station и никакой передачи. Зашит пример из сообщений выше - ждет приема по UDP.

При передаче в режиме AP будет ещё больше. Пока не могу проверить что будет со включенными контроллерами, по типу MP3 проигрывателя. Можно делать только ставки - перевалит или нет за 400 mA постоянных...
Может мне такой модуль попался? Тогда ещё хуже - значит гонят брак и покупать вообще за такие цены брак не стоит.
Но там не зря стоит 1117M3 стабилизатор... Было бы меньше - поставили бы поменьше.
-----
Примеров в Arduino для ESP32S просто дофига - 7 шт :) :
Снимок1217.gif
Стандартные примеры с WiFi не работают:
Снимок1218.gif
Пишут - ошибки нема ничего такого что надо.
С другими модулями (хоть RTL) все эти стандартные примеры работают.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Итак пытался поставить Arduino по данной инструкции:
arduino-esp32/windows.md at master · espressif/arduino-esp32 · GitHub
Скачалось всё успешно, но не работает - плат ESP32 в Arduino 1.8.1 не появляется.
Перекинул каталоги как положено, а не как указано в том документе.
Появился выбор плат.
Там написано Tested on 32 and 64 bit Windows 10 machines
У меня Windows 7 64 т.к. нужный софт под 10 не работает. Есть и Win 10 на другом компе, но ставил на котором 7.
Из директории C:/Users/[YOUR_USER_NAME]/Documents/Arduino/hardware/espressif/esp32 Arduino не видит. [YOUR_USER_NAME] безусловно заменено на правильный. Там-же и находиться каталог /Documents/Arduino/.
В инструкциях к Arduino для разработчиков не написано, что что-то будет работать из C:/Users/[YOUR_USER_NAME]/Documents/Arduino. Так оно и выходит в реале :p
 
Последнее редактирование:

pvvx

Активный участник сообщества
ESP32-DevKitC по терминалу воспринимает команды http://www.signal.com.tr/pdf/cat/2a-esp32_getting_started_guide_en-v0.1.pdf
Ну это и так понятно. Фрики всегда идут другим путем – обязательно выдумают что-то не стандартное. :)
Вы лучше расскажите как нашли этот документ :) Объясните как искать обычному российскому обывателю какую либо информацию, если он купит ESP32S :)
----
Arduino для ESP32S жрет немерянно ресурсов:
Снимок1219.gif
190 килобайт на пустой код, и памяти в ESP32S доступно всего 294912 байт, а не 500 кило. Из них на скетчи всего до 270 кило, но не написано одиночным непрерывным блоком или кусками... Надо проверить...
Для теста можно выбрать проект типа загрузки PNG изображения с любого сайта HTTPS и отображения на SVGA TFT дисплей. Буфер для дисплея как раз потребуется к 128 кило непрерывному куску... В общем обычная Web-рамка...
 
Последнее редактирование:

pvvx

Активный участник сообщества
Нда... Чего-то я размечтался:
Available Heap: 111904
Уже при включении обычной WiFi station :(
Код:
#include <WiFi.h>
const char* ssid     = "your-ssid";
const char* password = "your-password";
void setup()
{
    Serial.begin(115200);
    delay(10);

    // We start by connecting to a WiFi network

    Serial.println();
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(ssid);

    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }

    Serial.println("");
    Serial.println("WiFi connected");
    Serial.print("IP address: ");
    Serial.println(WiFi.localIP());
    Serial.print("Available Heap: ");Serial.println(ESP.getFreeHeap());
}

void loop()
{
}
Код:
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0008,len:8
load:0x3fff0010,len:1760
load:0x40078000,len:6668
load:0x40080000,len:252
entry 0x40080034


Connecting to *********
........
WiFi connected
IP address: 192.168.1.73
Available Heap: 111904
-------
HTTPS тоже не нашел. Либа из mbed вроде уже давно, но HTTPS в Arduino для ESP-32S нет?
 
Последнее редактирование:

A_D

Active member
Мимо-проходил, немного юмора. Ради интереса в док 2a-esp32_getting_started_guide_en-v0.1.pdf заглянул и прифигел от пункта 6:
123.PNG
Нифига ж себе!!..... лоу-повер чип и столько LDO линейников..... питание для ESP32 требуется добротное :D
зы. А если без юмора - на деле же там видно, что это все для разной периферии сделали - что бы выставить какое хочешь напряжение на выбранных кусках IO и т.д.
 

pvvx

Активный участник сообщества
Ну вот дописал передачу TCP в iperf.exe.
ESP-32S итого:
TstTCPWR_ESP32-S.gif
Теперь понятно, о чем писали на сайте Espressif - типа с LwIP у них тама беда... (но возможно это просто отговорка и в чипе срабатывает тепловая защита)
Можно сравнить с RTL8710AF (скетч тот-же и условия теста те-же самые):
TstTCPWR_RTL8710.gif
Оптимизация по 2*MSS в обоих тестах.
У ESP32S буфер на передачу в LwIP #define TCP_SND_BUF_DEFAULT (2*TCP_MSS)
у RTL8710AF #define TCP_SND_BUF (5*TCP_MSS)
Т.е. у RTL8710AF в RtlDuino я задал почти все буфера LwIP больше, чтобы былО лучше. Память и так есть, а основные задачи модулей - коммуникация по сети...

Для данного скетча "heap" (можно посмотреть на скринах, но выпишу):
У ESP32 - 108392 байта
У RTL8710AF - 150232 + 27920 байт (общий 178152)

Замер по питанию ESP32S в данном тесте сложен - он выдает кусками и не постоянно, питание 5В через 0.1 Ом просаживает до "протектед" (включать к лабораторному источнику лень), но выходит примерно это:
Снимок1224.gif

Espressif ещё работать, работать, работать, и работать. Солнце ещё высоко. (Солнце = RTL8195, т.к. стоит одинаково в опте и на борту уже USB host/device и 2.5Мег RAM)
 
Последнее редактирование:
Сверху Снизу