• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Прошивка TCP2UART переходника с настройкой по Web

pvvx

Активный участник сообщества
Там точно были перепутаны веб интерфейсы в фуллфлешах.
Т.е. сегодня стоит перекачать? (просто светится, что 3 дня там ничего не менялось, отсюда и вопрос)
Исходники то не менялись. Изменилось вложение в релизах. -> fullflash_and_webfs_059new.zip
А в нем, в readme.txt: TCP2UART & MODBUS RS-485 ver 0.5.9 (28.02.16) meSDK 1.5.2
и сами бинарники прошивок.
Их приходится пока собирать вручную через FLASH_DOWNLOAD_TOOLS_v2.4_150924 и путаюсть... надо писать скрипт, но пока лень... Вот помогли бы, написали и кинулись бы готовым скриптом, чтобы транслировал разные прошивки и собирал полные бинарники сам :)

На 0.54а мост между двумя есп образуется только если одна ST+AP, а другая ST. При этом, через некоторое время происходит разрыв. Модуль 01, все ноги подтянуты к 3.3в через 10 ком резисторы
Соединение через WiFi не может быть постоянным. Там всегда возможны помехи в эфире и отключения. Должно пересоединяться -> разрывы возможны. Пересоединение там установлено делать через 5 секунд. Анализ, что соединение разорвано зависит от китайской части WiFi и известно, что при установленной шифрации соедиения WPA и прочей часто не распознается разрыв соединения например при удалении и потере уровня сигнала. Не воспринимается смена ключа шифрования... По этой причине уверенно работает только Auth Mode: OPEN.
А вы не описываете что там у вас и гадать невозможно - комбинаций очень много.
Например, чтобы заглушить WiFi надо просто включить другой модуль ESP8266 и ввести его в режим программирования или держать RESET в момент когда модуль работал с WiFi и его передатчик был активен. Всё - вся сеть wifi в доме ляжет. :) Это привет от китайцев - ESP8266 в режиме глушилки WiFi :p Как они прошли сертификацию - неизвестно. Наверно просто взятками.
Ещё рекомендация - после прошивки ставить RF Tx Power менее 60 на модулях ESP-01 и других. Они почему-то не работают стабильно при RF Tx Power: 82 на новых SDK. Это тоже очередная китай-фича :)
 
Последнее редактирование:

shaman1010

Member
Исходники то не менялись. Изменилось вложение в релизах
:) фантомы - они такие фантомы (измененный web интерфейс не вливается при первичном подключении к 192.168.4.1)
Ну а после настройки, вливания измененного интерфейса (ни одна рабочая переменная не трогалась, косметически убрал не актуальные пункты меню, и исправил пару грамматических ошибок). Включаем модуль в режиме STA, настраиваемся, проверяем мост - работает. Отлючаемся - и видим фантома :)
059_3.png
 

pvvx

Активный участник сообщества
:) фантомы - они такие фантомы (измененный web интерфейс не вливается при первичном подключении к 192.168.4.1)
А у меня вливается. Что я делаю не так? :)
Ну а после настройки, вливания измененного интерфейса (ни одна рабочая переменная не трогалась, косметически убрал не актуальные пункты меню, и исправил пару грамматических ошибок). Включаем модуль в режиме STA, настраиваемся, проверяем мост - работает. Отлючаемся - и видим фантома :)
Посмотреть вложение 1482
Дык дайте что надо исправить, особенно грамматически. Я один за всем уследить не могу.
 

shaman1010

Member
А у меня вливается. Что я делаю не так? :)
Дык дайте что надо исправить, особенно грамматически. Я один за всем уследить не могу.
Скорее всего - используете модуль с овер512кбайтной флешкой :)
А я вливаю именно в нее. Поскольку это в определенное место, и ничего лишнего там не нужно. Модуль 07, еще из старых, стабильных запасов.

У меня порядок действия такой - вливаю 512кб бланк, затем фулл TCP2UART, затем собираю web и через /fsupdate либо с интерфейса пытаюсь обновить - результат - выше :)

Ну а если настроить в STA, затем перезайти через свою ТД - то обновляется, но потом выпадают фантомы.
Дык дайте что надо исправить, особенно грамматически. Я один за всем уследить не могу.
Так это не упрек, просто в глаза бросается...

protect/setup.htm - 51стр Feq на Freq
- 19стр WEB recved на WEB recived
protect/udpwave.htm - 32стр Freg на Freq


p.s. еще использую Swap TXD<>RTS, RXD<>CTS, может это на фантомов влияет...

На всякий случай - вот получившийся бинарник вебинтерфейса и папка, из которой собиралось:
 

Вложения

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

pvvx

Активный участник сообщества
Скорее всего - используете модуль с овер512кбайтной флешкой :)
Проверял на ESP-01 512k

Так это не упрек, просто в глаза бросается...

protect/setup.htm - 51стр Feq на Freq
- 19стр WEB recved на WEB recived
protect/udpwave.htm - 32стр Freg на Freq
recved - это сокращение. Вообще это ограничение (тайм-аут) до первого приема данных в соединение. Как это назвать по тех.ангельски - не знаю. А по вашему уж тогда это - received.
Вообще там должно быть много ошибок из-за пропусков бук и их перестановок - всё же сляпано кое как и второпях. Так что это не претензии - и давно прошу помощи по Web интерфейсу от пользователей, но не дают. :) Тем более там надо всё переделывать на websocket для интерактивки.
Фантомы вылечены будут в новой версии. Вот уже проверил правильное поведение переменных по соединению tcp2uart :
test_tcpt_remote_host.gif
Алго tcp2uart менялось, а в web_int_callbacks.c не поменял - забыл. Счас скину обновление в исходники.
 
Последнее редактирование:

TheEvilGenius

New member
Значит, прошивка 0.54а. Связывание 2х модулей 01, сервер получающий данные от мк - клиент получающий данные от сервера и выводящий на UART на компьютер через переходник.
Настройки сервера:
Снимок.JPG Снимок1.JPG Снимок3.JPG

На клиенте STATION mode, и соединение с сервером, те точкой transm. Дык вот, если все сделать как написал то, все работает, идет передача, хотя периодически отваливается. Соединение устанавливается за ~10 секунд. Если к серверу подключен телефон 192.168.4.2, то клиент Station данные не получает, хотя строчка с указанием тсп2уарт пишет что есть.
Хотел сделать как вы писали, убрать DHCP, не получилось. Прописывал на клиенте
IP 192.168.4.2
Маска 255.255.255.0
Шлюз 192.168.4.1
Маркер dhcp убран.
На серваке просто отрублен диашсипи. Телефон со статическим ip 192.168.4.3 подключается влет.
Если клиент стейшен апи, то тоже подрубается но коннекта тсп нет.
Как то так. Никаких аплоадов своих файлов не было, все стоковое.


зы. Модули лежат в полуметре друг от друга, поставлю на сервере WEP, может пойдет, но чуть попозже. Можно попродробней насколько это критично.
То что система работает узнаю по миганию светодиодиком на клиенте, так же на клиенте подпаян керамический конденсатор на ноги питание-gnd, ну и подпаян провод ацп, понял что такое микрохирург)
Я бы вам помог с прошивкой, даже среду ставил, но в сдк, черт ногу сломит. Вроде си, а непонятная куча вызовов и левых функций, где старый добры си на авр?!:)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Значит, прошивка 0.54а.
К сожалению не могу проверить и изменить ничего на 0.54а - там SDK 1.4.1. Оно уже выкинуто и всё на SDK 1.5.2.
Но и там рекомендация про уменьшение "RF Tx Power" в силе (это появилось в нескольких последних SDK китайцев, точно не знаю с какой версии, т.к. было обнаружено в 1.4.x и уже неоднократно разбиралось, но итога нет). Если по умолчанию равно 82, то на ESP-01 и ещё паре вариантов плат клиент ESP работает ужасно - постоянные ошибки передачи по WiFi. Анализатора WiFi дома нет и сказать точно причину не могу. Но при уменьшении уровня "RF Tx Power" - всё работает хорошо. Скорее всего это связано не с перегревом чипа, а с введением китайцами нового алго сохранения параметров калибровки уровней в flash, в секторе за 128 байтами данными esp_init_data_default.bin...
Остальное, что пишите посмотрю позже.
Я бы вам помог с прошивкой, даже среду ставил, но в сдк, черт ногу сломит. Вроде си, а непонятная куча вызовов и левых функций, где старый добры си на авр?!:)
avr умер - его съел arm. :) И ныне телетайп с дцать проводов не используют - устарел к середине того века - аналогично и с MCU. Все закрытые ядра, а так-же среды разработки с закрытыми кодами быстро умирают... Ещё бы спросили "где win3.11? - а то я к ней привык!" :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Да похоже не осилил ни кто веб интерфейс, либо сразу с нуля под свою задачу рисуют.
Да вообще не только это не понятно - как используют прошивку с телефонами, если MTU не годится для российских GSM сетей? (Они ограничены на 1500 байт, т.к. используют старое, уже списанное западное оборудование, т.к. стандарты поменяли на больший MTU... а перетранслировать прошивку на меньший MTU пользователи готовых бинарников не могут :) )
 

TheEvilGenius

New member
Ды блин, я ради фана купил 3 модуля. А потом и задача появилась, сейчас понимаю что надо было просто приемник передатчик брать, а не целый модуль. С одной стороны модуль избыточен для такой фигни как уарт, с другой стороны видеосигнал по нему не полезет. Но вот обидно что с бубном надо поплясать:D
 

pvvx

Активный участник сообщества
Ды блин, я ради фана купил 3 модуля. А потом и задача появилась, сейчас понимаю что надо было просто приемник передатчик брать, а не целый модуль. С одной стороны модуль избыточен для такой фигни как уарт, с другой стороны видеосигнал по нему не полезет. Но вот обидно что с бубном надо поплясать:D
Ну это скажите Espressif - они не дают ни исходников, ни документации на чип, а сами не в состоянии сделать SDK без глюков. Что я могу один, да ещё путем частичного "реверса" их глюко-SDK без полных проверок массой тестеров? Могу наплодить только толпу ошибок :)
За всю историю, которой больше года, кроме этого Index of /~kongo/esp8266.bin более никто не представил ни куска "реверса" или другой инфы. Одни разговоры. :)
 
Последнее редактирование:

TheEvilGenius

New member
Снизил RX TX Power до 50. Три часа работы, багов нет. В данный момент, используется DHCP и открытый ключ, точка скрытая, надеюсь никакие хацкеры не выцепят :)
 

oleg_777

New member
@pvvx Спасибо огромное за новую прошивку с новым алго задержки. Все теперь просто летает. Задержка запрос-ответ впечатляет.
 

aneox

Member
@pvvx Спасибо огромное за новую прошивку с новым алго задержки. Все теперь просто летает. Задержка запрос-ответ впечатляет.
А сколько у Вас задержка? у меня 10-14мс, не пойму толи у меня клиент тупит, толи задержка в есп.
 

aneox

Member
@pvvx По вашему совету решил уменьшил свой пакет при передаче до 6кб с 28кб. Но стало глючить очень сильно. 20Мб даже один раз передать не всегда могу, тсп порт закрывается и все, принимающая сторона шлет в уарт, мол где там след пакет, а на передающую этот запрос так и не приходит, пока не переоткроешь порт связь рвется в обе стороны. С пакетом в 28кб такая проблема встречается намного, намного реже, удается передать 20мб раз 10, а иногда и больше, т.е 200мб можно передать, но больше уже под вопросом, без переоткрывания порта. Возможно зависает в ожидании наполнения своего буфера 12кб есп когда передаю по 6кб? Проблема есть и пользоваться к сожалению очень сложно, нужно тогда с двух сторон следить за паузами, делать таймауты и на передающей стороне переоткрывать порт, костыль. Сейчас у меня передачей управляет только одна сторона, принимающая. Прошивка последняя стоит, 059new. И пауза меж пакетами 10-14мс прилично влияет на скорость, возможно ли ее уменьшить? Кстати гоняю уже на 4мбит ровно, все хорошо в этом плане
 

pvvx

Активный участник сообщества
По вашему совету решил уменьшил свой пакет при передаче до 6кб с 28кб. Но стало глючить очень сильно. 20Мб даже один раз передать не всегда могу, тсп порт закрывается и все, принимающая сторона шлет в уарт, мол где там след пакет, а на передающую этот запрос так и не приходит, пока не переоткроешь порт связь рвется в обе стороны. С пакетом в 28кб такая проблема встречается намного, намного реже, удается передать 20мб раз 10, а иногда и больше, т.е 200мб можно передать, но больше уже под вопросом, без переоткрывания порта. Возможно зависает в ожидании наполнения своего буфера 12кб есп когда передаю по 6кб? Проблема есть и пользоваться к сожалению очень сложно, нужно тогда с двух сторон следить за паузами, делать таймауты и на передающей стороне переоткрывать порт, костыль. Сейчас у меня передачей управляет только одна сторона, принимающая. Прошивка последняя стоит, 059new. И пауза меж пакетами 10-14мс прилично влияет на скорость, возможно ли ее уменьшить? Кстати гоняю уже на 4мбит ровно, все хорошо в этом плане
Столько написали, но никакой конкретики по поводу что и как и почему глючит.
У меня вот глючит это: "no buf for action frame" уже при 3 мегабита в обе стороны. Срывает голову WiFi в ESP напрочь, при этом предельный блок передачи удалось провести (в обе стороны одновременно) до 100 мегабайт. После срыва никакой связи ни с AP ни ST ESP нет. АP может видится, но к ней не подключиться. А пакеты WiFi event(7): Probe Request она принимает.
Паузы между пакетами практически нет. Пауза состоит из времени передачи-приема по Wifi пакета и дальнейшего транспорта до приемной программы. В случае роутера на LAN - это добавка во времени передачи пакета по LAN и реакции компа на прием. По логам у меня это в среднем 0.5 ms, а на USB-WiFi меньше. Передача пакета ESP начинается с анализа паузы в 3 символа на RX (или через 1 ms при скорости от 19200 до 500000, далее задержка уменьшается из-за разрядности аппаратного счетчика до 8*128 бит тишины на RX) или сразу при заполнении буфера TCP пакета (принятых 2x1460 байт или одного 1460 - зависит от предыстории стека TCP) на отправку. Передача на TX идет сразу по поступлению данных из TCP. В эту сторону разбивку на пакеты с паузами должна делать передающая сторона, дождавшись, вычислив время передачи и сделав паузу.
Вариант передачи длинных файлов проверял на HyperTerminal при методе Kermit. Скорость равна скорости UART и там всё Ok.
И по странным вашим данным время совпадает размеру пакета 6*1024*10/4000000=0.01536 сек на пакет в 6 килобайт. Возникает вопрос - как он может передаться быстрее? Так-же вопрос - где должны храниться данные, если вы посылаете их непрерывно со скоростью большей чем они выходят из UART? ESP закрывает приемное окно согласно протоколу TCP, указывая что пока принять больше не может (внутренний буфер уже полон), но некоторые программы плюют на это...
 
Последнее редактирование:

aneox

Member
@pvvx Ну конкретики нет, потому что я не знаю в чем может быть проблема. Описываю только наблюдения. При 28кб пакете я передаю 200мб успешно, а при 6кб пакете и 20мб не могу передать

Так-же вопрос - где должны храниться данные, если вы посылаете их непрерывно со скоростью большей чем они выходят из UART? ESP закрывает приемное окно согласно протоколу TCP, указывая что пока принять больше не может (внутренний буфер уже полон), но некоторые программы плюют на это...
Ну вы писали что в есп выделен буфер до 12кб, т.е при отправке 6кб пакетами все должно влазить. Следующий пакет передается только после получения сигнала от приемника об успешном приеме, т.е буфер гарантированно вычещен.

А задержка между пакетами у меня есть, 10-14мс вы имеете ввиду это время передачи по файфай такая? так там же выше скорость? получается 10мс по вайфай и 15 по уарту? Думаю нет, потому как при 6кб пакете такаяже пауза 10мс как и при 28кб пакете.
 
Последнее редактирование:

pvvx

Активный участник сообщества
А задержка между пакетами у меня есть, 10-14мс вы имеете ввиду это время передачи по файфай такая?
Это время вывода по UART переданного вами пакета и, как я понял, после него у вас идет подтверждение на RX. То и выходит - отослали 6 кило и ответ приходит через 15 ms.
 

aneox

Member
@pvvx
Не пойму, вот скрин анализатора 2016-03-01 19-15-54 Saleae Logic Software.png, снизу нога РХ, сверху ТХ. Как пакет дошел(идет 15мс), тут же идет подтверждение в РХ, и отправитель шлет новый заранее приготовленный пакет. И новый пакет после подтверждения приходит через 10-14 мс. Тут либо отправитель тупит это время, хотя врятли, либо есп, либо я) Вразумите пожалуйста)
 

pvvx

Активный участник сообщества
Не пойму, вот скрин анализатора 2016-03-01 19-15-54 Saleae Logic Software.png, снизу нога РХ, сверху ТХ. Как пакет дошел(идет 15мс), тут же идет подтверждение в РХ, и отправитель шлет новый заранее приготовленный пакет. И новый пакет после подтверждения приходит через 10-14 мс. Тут либо отправитель тупит это время, хотя врятли, либо есп, либо я) Вразумите пожалуйста)
А где там время доставки передачи ответа?
Там только время тупления внешнего софта. Больше из данной картинки информации не выжать.
Поставьте Wireshark и посмотрите паузу между приходом ответа и передачей нового блока.

Я вот посмотрел:
Включил Terminal на вывод RX ESP8266, чтобы смотреть что к ней идет и когда. Запустил Wireshark и наблюдаю, что пакеты приходят вперед, чем успевает принять Terminal:
Terminal: 17:48:50.131> 1 (передано к ESP два байта [0x31, 0x0D])
Wireshark: 17:48:50.103969 192.168.1.50 192.168.1.2 TCP 60 12345 → 1662 Len=2
Terminal: 17:48:50.258> 1
Wireshark: 17:48:50.239551 192.168.1.50 192.168.1.2 TCP 60 12345 → 1662 Len=2
Terminal: 17:48:50.443> 1
Wireshark: 17:48:50.415770 192.168.1.50 192.168.1.2 TCP 60 12345 → 1662 Len=2
Terminal: 17:48:50.631> 1
Wireshark: 17:48:50.616032 192.168.1.50 192.168.1.2 TCP 60 12345 → 1662 Len=2
Terminal: 17:48:50.820> 1
Wireshark: 17:48:50.759311 192.168.1.50 192.168.1.2 TCP 60 12345 → 1662 Len=2
Пакет по TCP от ESP8266 приходит заранее - он догадывается, что будет в будущем :) :) :) Разница в будущее в приведенных примерах составляет от 19 до 61 сотой секунды. :)
 
Последнее редактирование:
Сверху Снизу