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

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

igrr

Moderator
Команда форума
А как сделано в UDK?
Вообще у меня в esptoolt есть поддержка авторесета, в двух разных вариантах — RTS/DTR и TXD/DTR.
 

igrr

Moderator
Команда форума
Скажу сразу — проблема с комбинацией
RTS->RESET
DTR->GPIO0
в том, что когда в IDE открывается Serial Monitor, то RTS и DTR переходят в низкое состояние, и чип уходит в бутлоадер.
 

pvvx

Активный участник сообщества
При FT2232 (два UART) и модулях со всеми выводами приходится ставить RTS/DTR на второй порт (отладку) и коммутировать вручную в Terminal-е перед прошивкой. A RTS/CTS первого UART используются по назначению...
 

JustACat

Moderator
Команда форума
А как сделано в UDK?
Через RTS/DTR в esptool и сделано.
Но если
в IDE открывается Serial Monitor, то RTS и DTR переходят в низкое состояние
тогда конечно не стыкуется.

Но без этого функционала (авторезета и входа в бутлодырь) очень неудобно на самом деле. Я иногда программирую так, что до железки мне вообще руками не достать, она в 3-х метрах на столе, а я на диване, так сказать. Особенности. И если каждый раз прыгать, чтобы передернуть RST и GPIO0 - то это отбивает все желание что-то поделать.
(igrr, вы токмо не подумайте, это не нападка на вас, я просто делюсь ощущениями)
Так что если есть хоть какой-то шанс - то очень было бы здорово.

Может как-то можно подправить Serial Monitor в Arduino IDE? Чтобы он DTR не трогал, а RTS пусть дергает, только отпускает сразу - сброс при открытии Serial Monitor это даже удобно иногда. Хотя в идеале сделать это настраиваемым, галочками, так же как например там есть выбор: слать или не слать CR+LF.
 

igrr

Moderator
Команда форума
Есть вот такой вариант, он реализован в моем форке esptool, и нормально работает в Arduino IDE.
На него можно переключиться, изменив в boards.txt
esp01.upload.resetmethod=none
на
esp01.upload.resetmethod=wifio
Минус — нужно найти транзистор и конденсатор.
 

Вложения

JustACat

Moderator
Команда форума
Минус — нужно найти транзистор и конденсатор.
Для аудитории, на которую в основном рассчитана Arduino IDE, мне кажется, это очень большой минус...
То есть Arduino IDE - это больше для тех, кому нужно, чтобы воткнул одним концом провод в USB, вторым - в железку, в IDE нажал ровно 1 кнопку: все скомпилировалось и прошилось.
То есть при этом не должно быть каких-то правок в файлах среды (максимум - настройка через меню) и уж точно при этом не должно требоваться паять (собирать на макетке) какие-то дополнительные схемы. Сами понимаете, многие ардуинщики паяльник и вовсе в руках не держали и не собираются, на то есть куча готовых шильдов и распаянных уже модулей.

Вы поймите правильно, я это не про себя (и спрашивал не для себя в общем-то, ну, то есть и для себя конечно, но). У меня, если встает такой вопрос, решение простое: eclipse + esptool + сторонний терминал, который не трогает DTR и RTS :) Ну в крайнем случае для себя я могу и дополнительно деталек на переходник припаять. Но это я...
 

igrr

Moderator
Команда форума
Для аудитории, на которую расчитана Arduino IDE, мы делаем плату, в которую одним концом — провод в USB, нажать одну кнопку, и далее по тексту :)

Я полностью согласен, нужно сделать чтобы все работало "из коробки". Идея "добавить галочку в IDE" — хорошая, спасибо. Попробую разобраться, как это сделать.
 

JustACat

Moderator
Команда форума
мы делаем плату
Да, я за это уже тоже высказывался :) Развести нормальный модуль уже, со всеми выведенными пинами, и, может, увеличенным объемом флеш. Ну или несколько модулей, которые как раз и будут отличаться объемом памяти.

Update:
Причем можно даже позаимствовать наработки у других:
https://www.kickstarter.com/projects/1101426903/phasor-an-iot-development-board-with-wifi
или
http://wiki.in-circuit.de/images/e/eb/610000292A_handout.pdf и http://wiki.in-circuit.de/index.php5?title=ESP8266EX
Чтобы велосипед не изобретать :)
 
Последнее редактирование:

Victor

Administrator
Команда форума
A я думал, что раз wifio.cc то это кенты из Arduino Team
Сейчас настали времена, когда по whois ничего и не узнаешь особо...
Мы вообще на кикстартер собирались выйти в субботу,
Отлично! Еще бы рассказали немного о своей команде
 

NeoroN

Member
Автор если не сложно сделай кодировку "вывода проекта" - чтобы можно было выбирать кодировку в которую будет преобразован проект при компиляции(в классе препроцессора). И в настройках соответвующий выбор кодировки. Я делал такое - за вечер сделал, тока среда старая и исходник переделки снес по ошибке. Осталось только скомпиленая версия: pde.jar для 1.0.5 . Функция очень нужная и кода там с 10 строк добавить. Просто неохота эклипс только ради этого ставить. Декомпильни его и ищи "charset" в классах pdePreprocessor и Preferences.
 
Последнее редактирование:

igrr

Moderator
Команда форума
Просто неохота эклипс только ради этого ставить. Декомпильни его и ищи "charset" в классах pdePreprocessor и Preferences.
У меня тоже не установлен эклипс :) Поясните для тупого — зачем менять кодировку исходного кода?
 

igrr

Moderator
Команда форума
Отлично! Еще бы рассказали немного о своей команде
Если коротко, то основной автор хардварной части проекта — админ форума esp8266.com, плюсь есть еще несколько человек, которые (не за бесплатно) помогают с разными аспектами: видео, сайт, примеры, и т.д.
 

shaman1010

Member
зачем менять кодировку исходного кода?
Для вывода кириллицы на некоторые распространенные дисплеи приходится использовать однобайтовую кодировку.
В ардуине, по-умолчанию CP1251, если необходимо в uart, который понимает только UTF-8, передать русские символы, которые пишешь в скетче - нужно очень извратнуться :) А оболочка патчится достаточно просто (человеку пришла умная идея еще в 1.0.5 по-моему), и потом - выбрал однобайтовую кодировку, пишешь в скетче нормальным языком, заливаешь в микропроцессор и лицезреешь кириллицу на дисплее. Без извращений.
Здесь более развернуто.
 

NeoroN

Member
Все ясно - такой же лентяй)))
Ладно, потом поставлю эклипс и сделаю пул реквест в гит.... И в 1.6 проекта ардуино иде тоже сделаю....

Сделанно это было именно для работы с дисплеями - ни одна библиотека не работает нормально с UTF-8 :( (в двубайтовом режиме) и на ардуино это отедает лишнюю память, процесорное время, потому что эти дополнительные байты почти не несут информации, но нуждаются в обработке.

Незнаю как связываются проекты в гитхаб, наверно можно только в ветке arduino/Arduino поменять, а остальные могут подтянуть изменения....
 
Последнее редактирование:

MSW

New member
что то не получается у меня с ESP12
или среда не рассчитана не 12 модель?

Sketch uses 196 160 bytes (37%) of program storage space. Maximum is 524 288 bytes.
/opt/arduino-wifi/hardware/tools/esp8266/esptool -vv -cd none -cb 57600 -cp /dev/ttyUSB0 -ca 0x00000 -cf /tmp/build3904236807419898389.tmp/WiFiWebServer.cpp_00000.bin -ca 0x40000 -cf /tmp/build3904236807419898389.tmp/WiFiWebServer.cpp_40000.bin
esptool v0.4.2 - (c) 2014 Ch. Klippel <ck@atelier-klippel.de>
setting board to none
setting baudrate from 115200 to 57600
setting port from /dev/ttyUSB0 to /dev/ttyUSB0
setting address from 0x00000000 to 0x00000000
espcomm_upload_file
stat /tmp/build3904236807419898389.tmp/WiFiWebServer.cpp_00000.bin success
opening port /dev/ttyUSB0 at 57600
tcgetattr
tcsetattr
serial open
opening bootloader
resetting board
trying to connect
setting character timeout 0
done
setting character timeout 1
done
espcomm_cmd: sending command header
espcomm_cmd: sending command payload
***
warning: espcomm cmd: didn't receive command response
warning: espcomm_send_command(FLASH_DOWNLOAD_BEGIN) failed
closing bootloader

при этом модуль без проблем прошивается через esptool.py
$ ./esptool.py -b 57600 write_flash 0x00000 ../AT22SDK100-2015-03-20-boot1.2.bin
Connecting...
Erasing flash...
Writing at 0x0007ec00... (100 %)

Leaving...
 
Сверху Снизу