• Система автоматизации с открытым исходным кодом на базе 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)
 
Последнее редактирование:
Сверху Снизу