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

RTL87xx Arduino

Pilnikov

Active member
@Pilnikov, ну тогда им сутьба быть вечным конструктором ;)
Чем бы дитё не тешилось, лишь бы денег не просило.
Безупречный код только свой :) в чужом всегда сплошные изъяны.
Зато своё, зато родное!
поздравляю с выбором идеальной платформы
А вот моё присутствие в этой ветке обусловлено как раз таки желанием эту самую платформу поменять (будь оно неладно)
 

vad7

Active member
Creep, ну а я о чем, просто надо понимать, что это не SDK, и быть готовым к нежданчикам и рассчитывать свои силы.
Вот у меня уже 4 месяца без сбоев и перезагрузок пашет, управляя вентиляцией, доработанный вебсервер:
upload_2017-4-25_9-4-9.png
И еще парочка работает по другим задачам. Правда приходилось не только софт, но еще и аппаратно разные примочки навешивать, чтоб устойчиво работало.
 
Последнее редактирование:

nicelight

Member
У меня на этом баловстве 4 устройства уже год как работают. (Я их шаманю периодически, но исключительно с целью повышения потребительских свойств)
Будь моя воля, я бы тоже с удовольствием ушёл от ардуино иде, но блин...время.Где его брать? К сожалению у меня на основе библиотек ардуиновских уже более двух лет работают разные проекты, в том числе коммерческие.последние пол года клиенты вообще перестали на глюки жаловаться. Просто потому что стараюсь обходить глючные моменты, складывая их в стопку. Пользуюсь тем что проверено и стабильно. Конечно сама концепция ардуины это адский костыль. Но как быть по другому если за не именем времени у тебя выбор или не сделать ничего или сделать что то, что нужно клиенту, пускай него кпд 20% от реальных возможностей железа, но оно работает и клиент доволен. Тут речи быть не может о массовом производстве качественной продукции. Это больше для себя друзей или единичные эксклюзивные заказы.
Если нет времени учить C++, но есть глючный python(предположим что он сильно глючный). То очень приятно хотя бы пользоваться тем что более менее работает в пайтоне, чем облизываться на си но так и не выучить его. И таких вот костыледелов оказывается много. И я благодарен создателям ардуино, что они хотя бы дали возможность костылить что то и радоваться миганию светодиода в два клика, потому что появляется мотив постепенно изучив пайтон учить си. Появляется мотив творить. Появляется возможность делать хоть что то не тратя время.
Если говорить за себя, то я бы и сам рад поскорее уйти с ардуины. Научить не кому, научиться самому не хватает клепки и времени =)
 

nicelight

Member
Еще хочу сказать что не смотря на характер @pvvx и его подход к делу, я благодарен ему за все что он делает, за его труды которым бы цены не было если бы их систематизировать и по полочкам разложить хоть с минимальным описанием.
От имени телепузиков говорю спасибо! Вы делаете нашу жизнь немного счастливее :)
 
Последнее редактирование:

Creep

Member
ну вот собственно и объяснение почему "телепузикам" никогда не стать гуру - время отводимое на программирование катастрофически сжато.
ну а претензии/пожелания "чтобы все было хорошо и нам за это ничего не было", к сожалению, мимо кассы. по своим юношеским воспоминаниям даже курсовик на сях в черновике писался за неделю, а потом еще неделю-две из него тоннами выгребал ошибки и обрабатывал эксепшины. турбоси, конечно, с эклипсом и в-студией не сравнить, но и программы требуются не "два байта переслать". варианты решения проблемы для нас: объединятся и делить задачу - возможно будет получить несколько относительно рабочих библиотек для общественного пользования, а pvvx подключить на шеф-монтаж. альтернатива молиться богам или самостоятельно "не ожидая милостей от природы" (с)
"
 

nicelight

Member
ну вот собственно и объяснение почему "телепузикам" никогда не стать гуру - время отводимое на программирование катастрофически сжато. ...
Варианты решения проблемы для нас: объединятся и делить задачу - возможно будет получить несколько относительно рабочих библиотек для общественного пользования, а pvvx подключить на шеф-монтаж. альтернатива молиться богам или самостоятельно "не ожидая милостей от природы" (с)
"
Если ты не можешь быть гуру, это еще не повод чтобы не быть ни кем вообще))
Давайте объединяться и пилить исходники. Я только за, но пока что мало волоку.. Будут глупые вопросы.
Опыт ковыряния и правки библиотеки от адафрут был. Сильно не хватает понимания структуры всей системы ардуИДЕ и принципов взаимодействия. Что то типа HOW IT WORKS?)
 

Pilnikov

Active member
Если ты не можешь быть гуру, это еще не повод чтобы не быть ни кем вообще))
Давайте объединяться и пилить исходники. Я только за, но пока что мало волоку.. Будут глупые вопросы.
Опыт ковыряния и правки библиотеки от адафрут был. Сильно не хватает понимания структуры всей системы ардуИДЕ и принципов взаимодействия. Что то типа HOW IT WORKS?)
Тут ведь вот какое дело. Дурина на то и дурина, что она для быстрого старта. Как среда - это редактор (убогий), компилятор с настроенными опциями (линковка, мемори мап и т.д. и.т.п.), и загрузчик (несколько). Все настройки прописываются в .txt или .ini.
Но вот для "ковыряния и правки" SDK (чем собсно и занят pvvx) Дурина сильно не подходит. Для сдк нужен многооконный интерфейс для отслеживания связей между отдельными компонентами.
И "эффект" от копания сдк - не совсем то, что мы, "телепузики", привыкли получать. Сдк - это же "кирпичики", а вот "дом" - эта наша пользовательская прога. И все вопросы тут от нас - это не какого цвета(формы) выбрать кирпич, или как его, кирпич сделать из овального прямоугольным, а о том как построить дом, пускай и из овальных кирпичей.
 

Creep

Member
активный участник сообщества @vad7 что-то пропал, а мне все-таки хотелось бы понять что он понимает под термином СДК.
@Pilnikov, желания и возможности "телепузиков" очевидны, другой вопрос: возможно ли извлечь из этого практическую пользу для их сообщества. мой опыт участия в проектах в группах (до 30-40 чел) по интересам говорит, что неимоверные усилия пары тройки координаторов + энтузиазм остальных могут дать определенный выхлоп в краткосроке и затем выпустить из своей среды от 2 до 4 понимающих в теме, к сожалению, остальные ничего кроме разочарования не получат. срач, ротация кадров и потерянное время в комплекте.
не говорю, что объединяться нет смысла, но входной ценз обязателен, группа до 3-4 чел чтобы обойтись без больших руководящих расходов, ну и дальше - коллективная разработка со всеми ее прелестями. на этом можно начать "тесать кирпичи" до нужной формы. сколько таких людей на форуме? для РТЛ это ...правильно - 2,5 человека, и только один из них видит ради чего, он это делает ибо есть хоть какой-то план применения, остальных устраивает то что есть, ибо тропинки уже протоптаны.
 

Pilnikov

Active member
@Creep не поленитесь, создайте тему "Эклипс для чайников" с примером настройки среды под RTL и ESP. По крайней мере я буду вам очень благодарен за это. Да и к pvvx'y вопросов станет меньше (я надеюсь ;)
 

Creep

Member
@Creep не поленитесь, создайте тему "Эклипс для чайников" с примером настройки среды под RTL и ESP. По крайней мере я буду вам очень благодарен за это. Да и к pvvx'y вопросов станет меньше (я надеюсь ;)
чуть позже попробую. надеюсь, за пару-треху недель приедет подсветка для ноута - започиняю его, буду его точить под "Эклипс с RTL". ESP если честно не очень, на первый взгляд все просто и красиво, но кроме как познакомиться, боюсь, он не потянет. по цене ртл от есп принципиально не отличаются, а вот близость архитектуры/начинки/исходников к стм, арм и прочим аббревиатурам внушает оптимизм, хула pvvx на есп даже если и преувеличена то все равно имеет достаточные основания. "а раз не видно разницы - зачем платить больше?" (с) надо понимать, что у меня достаточно специфический опыт в области микропроцессорной техники: по образованию инженер-системотехник, диплом был на PIC14000, а потом пару десятков лет админства... то есть что и как происходит внутрях в общих чертах я в курсе, писать на сях тоже чутка обучен, инглиша не очень боюсь, но на круг имею знаний и опыта в работе с МК меньше чем любой из здесь присутствующих. посмотрим чем кончится ;)
 

Юрий Ботов

Moderator
Команда форума
Продолжу тему RAK Creator pro.
Наконец ее получил... Первые впечатления.
Прикололо то, что они собрали приличный SDK для arduino:
Код:
https://github.com/RAKWireless/CREATOR-Arduino-SDK/raw/master/release/package_rakwireless.com_creator_index.json
и то что в нем много рабочих примеров.
Lpc действительно прошита DAP.
Намучился с тем, что для перевода в режим программирования надо нажать на кнопку N/R хотя про это нигде как то не написано... нажал случайно.
При подключении к вин10 появляется диск с прошивкой lpc-шки. А после нажатия на N/R, диск подменяется содержимым rtl-ки.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Продолжу тему RAK Creator pro.
Наконец ее получил... Первые впечатления.
Прикололо то, что они собрали приличный SDK для arduino:
Код:
https://github.com/RAKWireless/CREATOR-Arduino-SDK/raw/master/release/package_rakwireless.com_creator_index.json
и то что в нем много рабочих примеров.
С отключенной программно большей частью внутренних устройств и даже части GPIO для RTL8710AF...
Lpc действительно прошита DAP.
Угу и исходников MBED не имеет (как и версия самого MBED на RTL серию "A"). Десяток бинарников от Ameba прошивок DAP-Link с разными ошибками... Перекинуть и ускорить в два раза на STM32F... не выйдет.
На платках от MJIOT-AMB-DEBUG-01 Lpc тоже стоят, хотя RTL8195A имеет свой USB2.0 c режимами Host и Device, а Lpc у китайцев дороже STM и для STM есть другие варианты прошивок JTAG, включая SEGGER...
RAK пора уже заготавливать платки под серию RTL "В" (Ameba-Z) - она дешевле и более подходит для Arduino и MBED.
Есть ещё одна беда - с RTL8711AM у Ameba Arduino совсем плохо - все порты UART и прочего не совпадают в примерах с имеющимися выводами из чипа... RAK придется все их поправлять, т.к. Ameba имеет платы только с RTL8710AF и RTL8195AM (и готовит к выходу с RTL871xBN).
 
Последнее редактирование:

A.V

New member
В RtlDuino для модуля RTL00:
UART2 SoftwareSerial mySerial2(0, 4)
Ковырялся тут в 1-wire через Serial в качестве исследования новой для себя железки и набрёл на потенциальную багу для телепузиков.

Согласно "всезнающему гугелю", Serial.begin() можно вызывать несколько раз подряд для, например, смены скорости порта. В текущей же реализации мы получаем как минимум утечку из-за безусловного "malloc(sizeof(serial_t))" и, вероятно ещё какие-нить глюки из-за повторного вызова listen().

Для себя пока поправил begin(), чтобы проверялся указатель до вызова malloc и вывел дополнительный метод "setBaud", дабы не передёргивать всю связку. Потому как последовательный вызов .end() и .begin() не только лишние тормоза, но ещё и подгаживает, а задержек делать неохота...

ЗЫ: Скорей бы уж въехать в новую железку и отказаться от дурины...
ЗЫЫ: Да! С наступающим всех! %)
 

pvvx

Активный участник сообщества
Ковырялся тут в 1-wire через Serial в качестве исследования новой для себя железки и набрёл на потенциальную багу для телепузиков.

Согласно "всезнающему гугелю", Serial.begin() можно вызывать несколько раз подряд для, например, смены скорости порта. В текущей же реализации мы получаем как минимум утечку из-за безусловного "malloc(sizeof(serial_t))" и, вероятно ещё какие-нить глюки из-за повторного вызова listen().
От слов Serial.begin и всякие Wire из Arduino меня всегда начинает подташнивать...
Обычно всё, что открывается, инициализируется в Arduino не имеет обратного хода - деинсталлов и т.д.. Всё одноразовое и никогда (в 80% классов и объектов) не предполагает повторных вызовов инициализации и отсутствуют процедуры закрытия-деинсталла-удаления.
Где-то, для какого-то контроллера, кто-то может и исправил описанную ситуацию, но это не есть общий градус по больнице Arduino. :)
Тут все энти либы wire/serial писала Ameba под концепцию Arduino, а мне они вообще не нужны.
Данная ситуация уже начинает переползать и на оф. сборки SDK и либ у Ameba и других производителей... :(
Большая часть различий между rtlDuino и Ameba Arduino именно в исправлениях по описанным проблемам - дополнение деструкторов классов и изменении инициализирующих процедур для возможности закрытия с очисткой занимаемых ресурсов. К примеру WiFi дров. А вот с USB дровами так и не удалось сделать ни деинасталла с освобождением ресурсов, ни повторной инициализации. Так описаны сами дрова у Ameba - не запоминают занимаемые ресурсы и не имеют доступа к ним (объявлены локальными в либах).
Без этого в малой памяти не выполнить многие задачи...

СHГ!
 
Последнее редактирование:
  • Like
Реакции: A.V

A.V

New member
Где-то, для какого-то контроллера, кто-то может и исправил описанную ситуацию, но это не есть общий градус по больнице Arduino. :)
Тут все энти либы wire/serial писала Ameba под концепцию Arduino, а мне они вообще не нужны.
Видать, они и не предполагали, что кто-то полезет дальше простого Hello World! :) К слову, в "оригинальном" softSerial действительно нет ничего опасного, потому как под древнюю атмегу с глобальными буферами писано :/

Всё к тому, что надо побыстрее "закапывать бабушку" и заводить сборку с СДК из консоли (ну не нравится мне эклипс...)


[offtop]... Да что ж у меня Firefox так офигевает с форума-то? Два ядра под 140%... Майнеров явно не видно...[/offtop]
 

pvvx

Активный участник сообщества
Видать, они и не предполагали, что кто-то полезет дальше простого Hello World! :) К слову, в "оригинальном" softSerial действительно нет ничего опасного, потому как под древнюю атмегу с глобальными буферами писано :/
Спрос у общества потребления работает по галочкам. У товара с большим кол-вом галочек и спрос больше. Совсем не важно, работает ли описанная галочная функция или нет. Даже если она имеет просто надпись, то этого достаточно для "телепузиков". Так-же сами "телепузики" пишут свои либы без каких-либо забот, как их потом использовать. Стартует и делает переключение пина - светодиод загорается - что ещё надо? :) Они никогда не учились программированию и сборке каких-либо проектов. И в таком стиле с их (c) описаны 99% либ для Arduino.
Эту ситуацию давно уже не переломить. Если вы скажите, что то-то там не работает, то тысчи "телепузиков" вам напишут, что у них всё "работет". У них уже своё понятие "рабочий". :) Под это понятие уже настроены сотни производителей... Какие удивления при этом об общей деградации качества кода? Совсем грубые ошибки исправляются потом, путем вечного обновления на ходу устройств...
[offtop]... Да что ж у меня Firefox так офигевает с форума-то? Два ядра под 140%... Майнеров явно не видно...[/offtop]
Много доп.подгрузок и трасса до сервера часто тупит...
 
Последнее редактирование:

pvvx

Активный участник сообщества
Как-бы итоги года по Arduino на RTL-ках:
А давайте мы действительно краудфандинг попробуем организовать, для тех кто может найти на это время и просто может запилить поддержку чипов realtek ардуиновской средой, с портом некоторых основных библиотек. Пускай костыльную, но все же.. . я бы поддержал рублем точно! )
Ну и готов был бы перенять опыт, чтобы далее принимать участие в проекте и портировать оставшиеся либы и пр. самостоятельно.
@nicelight - и где описанное? Что-то не так в филармонии Arduino?
За год вышло более десятка dev-board разных производителей с набортными модулями c RTL WiFi-SoC (в основном серии "A").
Проекты финансировались разными конторами (Ameba от Reatek, WizNet WizFi310, RAK, MXCHIP, ...)
Mbed не затормозил, поддержку выпустил для разных вариантов - для прямой работы кода С++ в RTL-ках и с помощью "AT" (для модулей WizNet WizFi310). А в Arduino ничего не сдвинулось и на шаг. Только деградировало ещё ниже и код стал хуже качеством.
RAK дублировал Ameba Arduino с мелкими изменениями конфигов для своих dev-board, но ничего в самом коде Arduino не доделывал и не исправлял.
По поводу других вышедших за год модулей WiFi-SoC - поддержка Arduino в них самого низкого качества и с тенденцией скатиться ещё ниже, с ограничением доступного набора команд-функций в пару шт. Всё это как-бы говорит о том, что Arduino и её поклонники не могут освоить и перейти на современные SoC, которые имеют RTOS и/или прочие многопоточные решения для поддержки многоядерности и массы набортных контроллеров. Ту-же ситуацию показывает и Очень медленное развитие-переход Arduino IDE ESP8266 -> ESP32, хотя в данном процессе идет и финансирование и работа толпы энтузиастов. По сравнению с ними, я всего один ковырялся в rtlDuino пару вечеров и до сих пор не вижу чего-то, что не решить в лоб на уже имеющейся rtlDuino, пусть и не доделанной до отдачи в красивой упаковке... И это не в тему хвастовства, а про то, что в RTL уже изначально было заложено информации значительно больше в сам чип и его первых SDK, по сравнению с ESP, что позволяет делать любые маневры, безусловно если у вас есть знания и/или желание разбираться...
 
Последнее редактирование:

Simon

Member
Интересный момент. RTL00 в режиме Station. При пинге его маленькими пакетами(у меня до 2048)

sml.JPG

При пинге пакетами от 2048, либо при одновременном пинге маленькими из двух окон:
big.JPG

rtlduino или AT SDK 4.0, без разницы. Может быть, это какая-то особенность wifi, но я такого никогда не видел.
Суть в том, что риалтаймовый очень легкий TCP поток заметно подлагивает в station и чисто работает, когда модуль как AP.
Других сетей, кроме моей, рядом нет(дом в лесу). Остальные хосты в сети таких странностей не имеют(2-3мс в среднем любыми пакетами).
Модулей много, ведут себя одинаково.
 

pvvx

Активный участник сообщества
Интересный момент. RTL00 в режиме Station. При пинге его маленькими пакетами(у меня до 2048)
...
rtlduino или AT SDK 4.0, без разницы. Может быть, это какая-то особенность wifi, но я такого никогда не видел.
Суть в том, что риалтаймовый очень легкий TCP поток заметно подлагивает в station и чисто работает, когда модуль как AP.
Снимок60.gif Снимок59.gif Снимок58.gif
Поглядите всякие отключалки экономии энергии. По умолчанию они включены на Station во всех стандартных примерах Arduino/rtlDuino/AT/примеры_SDK/... *wakelock*() всякие...
И пинг на нижнем приоритете или ещё что-то - почему-то у него всегда 1..2 мс - т.е. он оттикивает по таймеру RTOS (1 мс). Для Arduino и всяких socket() так-же - они стробируются шагом RTOS и быстрее 1 мс (+1 при раз-синхронизации) на запрос не отвечают. Web-свалка сделана по событиям от LwIP, а его дергают по событиям приема/прерывания по приему пакета в WiFi (что дает ответ и быстрее чем шаг RTOS), но это имеет свои нюансы...
Крутите Priority у задач и делайте семафоры, да т.д. Но Arduino для этого не очень-то катит. :)
 
Последнее редактирование:
Сверху Снизу