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