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

pvvx

Активный участник сообщества
По прошивке - есть проблемы с режимами WiFi.
Уже исправлено + ещё мелочь :)
C настройками была моя ошибка (перепутал две буквы :) ) + ошибка SDK.
а WEP вообще не выбирается.
"а WEP" вообще на SOFTAP не работает - не реализовано у Espressif в закрытом коде.
В user_interface.h к SDK это описано так:
AUTH_MODE authmode; // Note: Don't support AUTH_WEP in softAP mode.
А весть интернет копирует друг у друга, что модуль поддерживает WEP :) Копипастеры...
 
Последнее редактирование:

shaman1010

Member
Уже исправлено + ещё мелочь :)
Ну почти :)
Теперь точкой доступа он нормально прикидывается, а вот клиентом все-равно не цепляется.
Но связано уже с другим, на стандартных ESP8266/0123456789 + WPA2/PSK точкой доступа завелось нормально, но при изменении SSID (6 символов) и пароля (33 буквенно-цифровых символа) - уже не шуршит... Экспериментальным путем обнаружил, что (при SSID из 6 символов) пароль из 30 цифр - работает, а из 33 цифр - не работает. Граница где-то между :)

И в общем проекте этот-же баг, в момент написания прошлого поста, тоже был.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Ну почти :)
Теперь точкой доступа он нормально прикидывается, а вот клиентом все-равно не цепляется.
Но связано уже с другим, на стандартных ESP8266/0123456789 + WPA2/PSK точкой доступа завелось нормально, но при изменении SSID (6 символов) и пароля (33 буквенно-цифровых символа) - уже не шуршит... Экспериментальным путем обнаружил, что (при SSID из 6 символов) пароль из 30 цифр - работает, а из 33 цифр - не работает. Граница где-то между :)

И в общем проекте этот-же баг, в момент написания прошлого поста, тоже был.
#define FileNameSize 48
#define VarNameSize 32

Трудовому народу пароли и переменные длиннее 32 символов не требуются :) (и коммерсантам не продадите). Исправлению не подлежит - жалко памяти.
Добавил сброс на установки WiFi по умолчанию ножкой RX (см. описание в первом посте).
 

shaman1010

Member
#define FileNameSize 48
#define VarNameSize 32

Трудовому народу пароли и переменные длиннее 32 символов не требуются :) (и коммерсантам не продадите). Исправлению не подлежит - жалко памяти.
Добавил сброс на установки WiFi по умолчанию ножкой RX (см. описание в первом посте).
Т.е. предлагаете обе сетки со всем гамузом у себя перестроить? :)
На гостевую сетку он у меня тоже не цепляется (там DHCP фиг знает где, видать релей где-то упустил, хотя винда и андроиды цепляются нормально)
Кстати, а почему 32, а не 24 или 40?
 

pvvx

Активный участник сообщества
Кстати, а почему 32, а не 24 или 40?
Просто так. Так росло. Смените на 40.
В новой версии сменил на:
#define FileNameSize 64
#define VarNameSize 64
Но в HTML ограничено SSID на 31 и пароль на 63, т.к. всегда беда с последним символом и испытывать SDK на это не стоит :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Отлично :) Уже ставлю.
А было 32 по причине, что в кодировке urldecode (что передается в WEB, если писать по русски) 64 символа будет вот такая надпись:
%u0433%u043B%u0430%u0432%u0440%u044B%u0431%u0430-%u0430%u0431%u044B%u0440%u0432%u0430%u043B%u0433-%u0433%u043B%u0430%u0432%u0440%u044B%u0431%u0430-%u0430%u0431%u044B%u0440%u0432%u0430%u043B%u0433-%u0433%u043B%u0430%u0432%u0440%u044B%u0431%u0430-%u0430%u0431%u044B%u0440%u0432%u0430%u043B%u0433-%u0433%u043B%u0430%u0432%u0440%u044B%u0431%u0430-%21
 

shaman1010

Member
А было 32 по причине, что в кодировке urldecode (что передается в WEB, если писать по русски) 64 символа будет вот такая надпись:
%u0433%u043B%u0430%u0432%u0440%u044B%u0431%u0430-%u0430%u0431%u044B%u0440%u0432%u0430%u043B%u0433-%u0433%u043B%u0430%u0432%u0440%u044B%u0431%u0430-%u0430%u0431%u044B%u0440%u0432%u0430%u043B%u0433-%u0433%u043B%u0430%u0432%u0440%u044B%u0431%u0430-%u0430%u0431%u044B%u0440%u0432%u0430%u043B%u0433-%u0433%u043B%u0430%u0432%u0440%u044B%u0431%u0430-%21
Кто-то русские символы в ключе использует? бррр...
Но, кстати, длинный пароль прокатил только в режиме AP, в STA - нифига...
Для чистоты эксперимента - пароль взял один и тот-же.
Может быть от того, что SSID имеет и маленькие и большие символы? Пока проверяю...
Проверил, ни от того. В режиме точки доступа работает с любой комбинацией. Клиентом цепляться не хочет. Может еще где-то ограничение на длину забыто?
Взлетело!!! ура, проблема (или особенность :) ) была в том, что без установленной галки "AutoConnect" даже в ручном режиме не стартовало. "Галка решила вопрос".
Может стоит зафиксировать сей нюанс на главной?
 
Последнее редактирование:

pvvx

Активный участник сообщества
Взлетело!!! ура, проблема (или особенность :) ) была в том, что без установленной галки "AutoConnect" даже в ручном режиме не стартовало. "Галка решила вопрос".
Может стоит зафиксировать сей нюанс на главной?
Это известно. Постоянное выставление данной галки и отсутствие базы, куда будет ломиться модуль, почти полностью тормозит AP на модуле.
И перечитайте прошивку - в прошлом варианте был включен очень большой уровень отладки и будет подтормаживать.... :)
Счас ещё авто-автоконнект впишу для забывчивых, когда переключают в режим ST, без AP...
 
Последнее редактирование:

shaman1010

Member
Это известно. Постоянное выставление данной галки и отсутствие базы, куда будет ломиться модуль, почти полностью тормозит AP на модуле.
Модуль в режиме AP+STA потерялся, передернул питание - появился. Перевел в чистый STA. Смотрю. Пока даже клиента UART-ного не подключал.
Сейчас попеременно подключал андроидного/виндового клиентов - получил то, что в логе... wdt отработал. "56" - первая посылка виндового клиента.

output_2015-03-18_04-10-18.txt
 

Вложения

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

pvvx

Активный участник сообщества
Модуль в режиме AP+STA потерялся, передернул питание - появился. Перевел в чистый STA. Смотрю. Пока даже клиента UART-ного не подключал.
Сейчас попеременно подключал андроидного/виндового клиентов - получил то, что в логе... wdt отработал. "56" - первая посылка виндового клиента.

output_2015-03-18_04-10-18.txt
В прошивке не существует стринга "GPIO,"
В режиме STATION ESP8266 глючит с быстрыми базами, если включен "802.11n". Это баг Espressif. 802.11n у них работает только с тормозными и дешевыми базами, которые не тянут полный 802.11n... Переключайте в 802.11g. Espressif всё делает только для галочки, что типа есть 802.11n и т.д.. А на самом деле все неполноценное.
Нарисуют красивые HTM на русском - впишем всё необходимое во встроенный HELP.
 
Последнее редактирование:

shaman1010

Member
В прошивке не существует стринга "GPIO,"
Это зеркалирование посылки. То, что имелось ввиду - реакция модуля, после очередного получения (в данном случае 56, с виндошного клиента). wdt и иже с ним.
Переключайте в 802.11g.
Попробую обязательно. Переключатель переводит в модуль в g-режим, не зависимо от использования его в AP либо STA?
Главное, что бы у людей домашние точки доступа не схлопывались в G, при появлении хоть одного G-клиента.

Перевел в G, заодно и обновился до 0.1.3 (хотя в интерфейсе 0.1.2 :) ). Пока повторить прошлое поведение модуля не удалось.

Кстати, два вопроса:
1) утечку памяти починили в SDK, или каждый сам себе патчит?
2) в дальнейшем в текущем проекте возможна передача прямого RAW потока? Другими словами, можно ли будет подключить к одному модулю ИК-светодиод, к другому (а в идеале - к другим) ИК-приемник и использовать в качестве удлинителя пульта?


Сейчас проверял различные битрейты, так вот до 3800000 работает нормально (модуль автоматически переводит введенное число в фактически необходимый поток), а начиная с 3900000 - модуль выставляет 4000000, на 5000000 модуль оставляет 5000000. Т.е. не корректирует ширину потока.
На 3800000 модуль абсолютно нормально работает (у меня flow-control эмулирует клиент, замыкая RTS+CTS и DSR+DTR, т.е. фактически его нет)

Так что пока отлично :) (но стоит проверить, что мешает на битрейте выше 3800000)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Сейчас проверял различные битрейты, так вот до 3800000 работает нормально (модуль автоматически переводит введенное число в фактически необходимый поток), а начиная с 3900000 - модуль выставляет 4000000, на 5000000 модуль оставляет 5000000. Т.е. не корректирует ширину потока.
На 3800000 модуль абсолютно нормально работает (у меня flow-control эмулирует клиент, замыкая RTS+CTS и DSR+DTR, т.е. фактически его нет)
Отлично :) (но стоит проверить, что мешает на битрейте выше 3800000)
Тактовая на UART 80 000 000 MHz из этого и исходите. Делить не на целое генератор для UART не умеет.
После 3 Mbaud появляются провалы из-за таймеров, адаптированных для поддержки низких скоростей UART (для любителей "дурино" на 9600Baud).
После 20 Mbaud порт UART "теряет" биты на I/O - не хватает частоты тактирования пинов в режиме UART...
 

shaman1010

Member
Тактовая на UART 80 000 000 MHz из этого и исходите. Делить не на целое генератор для UART не умеет.
После 3 Mbaud появляются провалы из-за таймеров, адаптированных для поддержки низких скоростей UART (для любителей "дурино" на 9600Baud).
После 20 Mbaud порт UART "теряет" биты на I/O - не хватает частоты тактирования пинов в режиме UART...
Возможно некорректно описал. Попробую еще раз.
Когда в модуле выставляю 3800000 - он автоматически меняет значение на 3809523. В терминале выставляю 3800000 и все работает. (аналогично 5500000-5714285, в терминалах 5500000)
А когда пытаюсь выставить 5000000 - модуль выставляет 5000000 (уже не верно), в терминалах тоже 5000000, но уже сыпет мусор (при том, что на 550000 работает нормально, в первом приближении).

И, кстати, все это сквозь CP2104 :eek:
 

pvvx

Активный участник сообщества
И, кстати, все это сквозь CP2104 :eek:
Baud rates: 300 bps to 2 Mbits
CP2104_bauds.gif
При 5000000 Baud ближайшее у CP2104 будет 48000 или 6000000 Baud. Но она на таких скоростях не работает и драйвер часто не позволяет ставить даже промежуточные между стандартным рядом 300 ... 57800, 115200, 23400, 460800, 921600, 1843200.

Дешевые FTxxx на недо USB2.0 (Full-speed 12MBit/s max) - до 3-х MBaud и делитель тоже ступенями.

80000000/3809523 = 21
 
Последнее редактирование:

shaman1010

Member
Baud rates: 300 bps to 2 Mbits
Так я об этом же...

Это я понял, но не понял, почему на 5Мбод мусор, а на 5,5 - чистота, хотя по идее должно быть минимум наоборот, а максимум - у меня вообще не должно было работать...

Хотя отбой, мусорит и там и там, но по-разному. Даже на 2000000 при передаче HEX-а есть пропуски. Здесь таки понятно, нужны нормальные CTS+RTS.

Но эффект ВАУ был :)

Теперь все с точностью до наоборот :-(
Включил и подключил везде RTS и CTS и даже на 19200 не смог словить HEX, не отличающийся от оригинала. Может, конечно, я где-то косячу, но хотелось бы услышать от тех, кто реально пробовал именно бинарники отсылать, на сколько они целыми доходят.
Может уже и DSR с DTR-ом добавлять?
 
Последнее редактирование:

pvvx

Активный участник сообщества
Может, конечно, я где-то косячу, но хотелось бы услышать от тех, кто реально пробовал именно бинарники отсылать, на сколько они целыми доходят.
Зависит от программы терминала :) Пишите свою программу открывающую сокет и отсылающую бинарники, т.к. большинство рассчитаны на передачу текста :)
 

shaman1010

Member
Зависит от программы терминала :) большинство рассчитаны на передачу текста :)
У большинства терминалов и скорость то отфанарную не выставишь.
В текущем применении пользуюсь этим, если есть что-то еще более гибкое - сошлите, плз.
Пишите свою программу открывающую сокет и отсылающую бинарники
Могу сказку написать, могу обзор с пристрастием набросать, программу под x86 - не могу :oops:
 

pvvx

Активный участник сообщества
У большинства терминалов и скорость то отфанарную не выставишь.
В текущем применении пользуюсь этим, если есть что-то еще более гибкое - сошлите, плз.
Всё передает и принимает в bin:
tcp-uart-hexbin.gif
Про это "пользуюсь этим" - писалось ранее. Оно выдает символы с шагом в 1 ms и часто у него переполняется буфер.
У вас все вопросы, на которые уже были ранее приведены ответы в параллельной теме...
 

shaman1010

Member
Всё передает и принимает в bin:
Я так понимаю, это Ваш проект. Если так, то отлично, дождемся выхода в продакшн, потестируем. Этот процесс мне нравится.
Про это "пользуюсь этим" - писалось ранее. Оно выдает символы с шагом в 1 ms и часто у него переполняется буфер.
Соседние ветки в принципе нужно прокурить, это да, на досуге и этим займусь.
Т.к. у меня CP2104, ему нельзя в настройках 1мс выставить...
У вас все вопросы, на которые уже были ранее приведены ответы в параллельной теме...
Я не первый, и не последний :) думаю когда будет какой-нить FAQ, будет куда "посылать".
А пока да, пошел читать, какие грабли уже найдены.
 
Сверху Снизу