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

Общие вопросы по Arduino IDE для ESP8266

AltSoftLLC

New member
@AltSoftLLC Я использую esptool на маке.
Какой usb-serial вы используете? Если FTDI, драйверы системные, или с сайта FTDI? У меня, помнится, были проблемы с эппловским драйвером FTDI...
Использую переходник PL2303. Драйвера с сайта.
Самое интересное, что под виртуальной виндой на этой же машине я успешно шью с помощью ESP8266Flasher.
 

pvvx

Активный участник сообщества
А где взять правильный?
Самому исправить. Частично правили в теме UDK. Но в последних версиях UDK, начиная с 2.0.4 опять с ошибками сборка...
Меньше ошибок в FLASH_DOWNLOAD_TOOLS_v1.2_150512, странслированной с ворованного и исправленного esptool.py... Коннект у вас esptool.py может терять из-за тормозов драйверов. У ESP2866 авто-настройка на скорость передачи в самом начале и, если в этот момент кривые провода и прочие бяки, то настраивается криво и дальше рвется из-за ошибок от неверно выбранной скорости...
Возможно, если драйвера не совсем кривые на маке, то поварьируйте скорсотью соединения, указываемую esptool.py. Рабочие пределы авто-настройки ESP8266 на скорость от 19200 Baud до 1 MBaud. Шаг любой.
При низкой скорости старые версии esptool.py вылетали по таймауту - это никто так окончательно и не исправил...
 
Последнее редактирование:

igrr

Moderator
Команда форума
В esptool-ck, который идёт в комплекте с Arduino, ошибка с размером стирания исправлена еще в предыдущей версии.
Исправленный esptool.py можно найти в комментариях к пулл-реквесту про esptool на нашем гитхабе.
С pl2303 попробую в понедельник — кажется на работе есть такой.
 

Romans

New member
Не пинайте, если где-то было, но не нашел. Для уменьшения электропотребления нужно отключить WiFi, то есть, как я понял нужно включить Modem-Sleep mode. Как это сделать в среде Ардуино?
 

Romans

New member
Не пинайте, если где-то было, но не нашел. Для уменьшения электропотребления нужно отключить WiFi, то есть, как я понял нужно включить Modem-Sleep mode. Как это сделать в среде Ардуино?
enum sleep_type {
NONE_SLEEP_T = 0,
LIGHT_SLEEP_T,
MODEM_SLEEP_T
};
extern "C" bool wifi_set_sleep_type(enum sleep_type type);
bool i;
void setup(void)
{
i= wifi_set_sleep_type(MODEM_SLEEP_T);
.
.
.
Всё компилится, грузится, работает, но разницы в потреблении не заметил. WiFi не использую.
 
Последнее редактирование:

AltSoftLLC

New member
Скрестил ESP8266 с читалкой RFID меток. Все отлично работает, но периодически падает со следующими сообщениями:
ets Jan 8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x40100000, len 28780, room 16
tail 12
chksum 0xe5
ho 0 tail 12 room 4
load 0x3ffe8000, len 1548, room 12
tail 0
chksum 0x06
load 0x3ffe8610, len 3744, room 8
tail 8
chksum 0x42
csum 0x42
rl

Переполнения кучи нет. Показывает Heap size: 27712 на момент падения.
Причем если упало, то дальше зацикливается, пока не передернешь питание.
Подскажите куда копать?
 

igrr

Moderator
Команда форума
Посмотрите, нет ли в скетче циклов, которые потенциально могут занимать больше секунды. Если есть, вставьте туда yield();. Если нет, выложите код куда-нибудь, я посмотрю.
 

igrr

Moderator
Команда форума
Между вызовами delay(), если они есть. Если нет — всего на функцию loop().
 

Romans

New member
Если есть, вставьте туда yield();.
Эту информацию очень желательно поместить на главную страницу, в описание Arduino IDE.
Сутки бился, не мог понять, почему рабочий алгоритм не работает. После yield(); всё заработало, как надо.
 

igrr

Moderator
Команда форума
Romans, так вроде написано: https://github.com/esp8266/Arduino/blob/esp8266/README.md#timing-and-delays

Если можете расширить/дополнить/переформулировать — welcome.

AltSoftLLC, пока не нашёл, в чем может быть проблема. Удалив из вашего кода библиотеку RFID, запустил, падение не поймал. С питанием модуля все в порядке?
 

pvvx

Активный участник сообщества
Эту информацию очень желательно поместить на главную страницу, в описание Arduino IDE.
Сутки бился, не мог понять, почему рабочий алгоритм не работает. После yield(); всё заработало, как надо.
Это связано с неверным использованием WDT в пакете Arduino IDE.
Нет такой функции void ets_wdt_enable(void), а есть void ets_wdt_enable(int mode, uint32_t a, uint32_t b) и это функции из ROM-BIOS и не совместимы с SDK > v0.9.0.
Т.е. ошибка не ваша, а портировщиков Arduino на ESP8266.
 

igrr

Moderator
Команда форума
pvvx, спасибо!
Кстати, эта функция у нас нигде не вызывается (надеюсь).
 

pvvx

Активный участник сообщества
Кстати, эта функция у нас нигде не вызывается (надеюсь).
Более подробно тут
В SDK >= 1.1.0 WDT работает с таймером. Таймер засылки/проверки "подтверждения" заряжается на 1600 ms, но управление в переменной и может походу изменятся другими процедурами в либе pp_xxxxxx.... Строиться запрос post(), а в task() подтверждение. +Таймер проверяет эту цепь...
В ROM-BIOS тоже есть режимы работы WDT с таймером и с "окном" для подтверждения...
Механизм в разных SDK разный и точно описывать долго, да сами процедуры обслуживания WDT в SDK кривые.... Меняйте на свои - исходники загрузки и запуска SDK уже разобраны.
 
Последнее редактирование:

igrr

Moderator
Команда форума
исходники загрузки и запуска SDK уже разобраны.
pvvx, я смотрел ваш мега-архив, очень много ценной информации. Но к сожалению пока он выложен без внятной лицензии, использовать что-либо из него (кроме общих идей) в реальном проекте невозможно. Если бы вы сопроводили архив файликом какой-нибудь ни к чему не обязывающей лицензии, жить стало бы легче :)

В ROM-BIOS тоже есть режимы работы WDT с таймером и с "окном" для подтверждения
А известно, как задать период таймера?
 

pvvx

Активный участник сообщества
pvvx, я смотрел ваш мега-архив, очень много ценной информации. Но к сожалению пока он выложен без внятной лицензии, использовать что-либо из него (кроме общих идей) в реальном проекте невозможно. Если бы вы сопроводили архив файликом какой-нибудь ни к чему не обязывающей лицензии, жить стало бы легче :)
Там лежит лицензия на русском языке :)
А в общем нет никакой лицензии - всё дано для любого использования, полностью на усмотрение скопировавшего, с любыми изменениями, вплоть до присвоения авторства и т.д.
Но главное пожелание - как можно реже использовать упоминания обо мне в коде и где либо :)
И т.к. такой лицензии в мире я не нашел, то привести и приложить её к файлам не могу. :)
И связанно это с 30 летним опытом в данных делах. Мне своих собственных работ хватает, а поддерживать и осуществлять хоть какие диалоги по свершенным проектам за это время я не могу - я их уже все не помню... :)
А известно, как задать период таймера?
Посмотрю позже.
 
Последнее редактирование:
Сверху Снизу