LINUX.ORG.RU

Сообщения Vit

 

Помогите дописать фирмварь esp8266 конфигурилки девайсов

 

https://github.com/speedcontrols/wifi-configurator

По мотивам предыдущей темы. Хочется сделать девайс, который позволит легко конфигурировать всякие устройства с мобилки и сильно разгрузить написание прошивок. То есть, вместо того чтобы городить систему менюшек, просто описываем ее в формате JSON-форм и делаем очень простой строковый протокол а ля модем. Дальше подключаем по UART платку Wemos D1 mini, она выставляет наружу точку доступа и «делает все зашибись».

Уже сделана вся вебня, эмуляторы для вебдева, рыба прошивки с captive portal и раздачей вебни, мануалы и т.п.

Надо доделать на C:

- Перегнать дефолтный синхронный сервер на асинхронный.
- Привернуть software uart и сделать проброс команд (строк) из вебни и обратно + блокировки от одновременного запуска.

В принципе немного, но я не очень люблю C и не горю желанием в него погружаться. Я конечно в итоге осилю, если не будет выхода, но предпочел бы отдать на сторону. Т.к. опенсорсы, то надо делать качественно, не просрамить и всё такое.

Все детали есть в репе, старался делать понятно и подробно документировал.

Кто хочет поучаствовать - пишите на vitaly@rcdesign.ru и чего хотите.

Vit
()

platform.io под stm32. Куда выложить и как патчить firmware?

 platform.io,

На platform.io пишется прошивка под stm32f103c8t6. Внутри есть емулятор EEPROM (стандартный append-only log на пару секторов FLASH).

Мне хочется сделать вебню, которая позволит юзеру поправить дефолтные настройки, подкрутив значения EEPROM (генерим веб-страничку прям с прошивкой внутри, она показывает формочку, патчит, и дает из себя бинарник скачать, без всякого сервера). Вопросы:

1. Как мне узнать адреса секторов FLASH, где лежит контент EEPROM? Сканировать по уникальным байтам - так себе идея :).

2. Прошивки собираются в подкаталогах `.poienvs`, которые заигнорены. В целом одобряю, но у меня всего один таргет, и я хочу готовый бинарник публиковать в репе в папке `/firmware`, чтобы юзерам не надо было ничего компилять. И чтобы platform.io мог его подхватить для аплоада. Как бы это покорректнее сделать?

Vit
()

Hetzner ку-ку (24.05.2018)

 ,

https://www.hetzner-status.de/en.html

На хетцнере какой-то глобальный факап с питанием и в 3 сараях серверов что-то капитально повышибало. Кого еще задело? У меня 1 самый нужный сервер с 11 утра тю-тю и до сих пор в нефритовом сосуде.

PS. Уходить пока не собираюсь, это какой-то совсем большой форс-мажор, каких за 10 последних лет точно не было.

Vit
()

Расскажите как и чем нынче паяют с помощью фена

 

Поигрался тут с паяльным феном, очень понравился результат пайки. Есть вопросы:

- Надо ли на фен надевать насадку, или лучше без нее учиться платы запаивать? Мне показалось с насадкой удобнее - виднее куда дует, но возможно это из-за отсутствия практики.

- Стоит ли использовать Sn42/Bi58 пасту (T плавления = 130С)? Нигде не нашел про недостатки таких припоев.

- Какую температуру фена лучше выставлять, чтобы не повредить компоненты? Пока пробовал на 250С, SnPb пастой. Показалось что как-то неспешно нагревается.

- https://youtu.be/mDViWoll_eo?t=55s - вот тут чел запаивает феном пластиковую кнопку. Это как вообще? Почему пластик не течет?

Vit
()

rust для embedded - почти готов

 ,

https://github.com/rust-lang-nursery/embedded-wg/issues

Не так давно задавался вопросом, готов ли раст к программированию микроконтроллеров. Прошло всего 2 месяца, но изменилось очень много.

- Сделали embedded workgroup, и поставили четкую цель закрыть все косяки к выпуску rust 2018 edition.
- В трекере EW запротоколировали все хвосты
- Начали размечать книжку по embedded rust.
- В RTFM запланировали к лету добавить виртуальные таски, эвенты и прочий сахар, чтобы было не хуже классических RTOS. RTFM вообще интересная концепция, для простеньких систем подходящая идеально (когда добавят что запланировали)
- Из кучи хвостов, из-за которых эмбеды не компилировались на stable, закрыли все кроме одного (он в процессе).
- Я не понял, в каком состоянии генераторы, но макросы await! есть, и вроде все это должно нормально приземлиться в stable к edition 2018.

В общем, теперь есть конкретное место, где можно наблюдать прогресс, и сам прогресс очень радует.

Также стоит отметить, что нужен не только язык, но и библиотеки. Из того что пригорает у меня лично

- заметный пробел по гуям
- нема клавиатурной абстракции для фильтрации дребезга и приворачивания енкодеров вроде EC11 (по крайней мере мне так показалось)

Vit
()

Посоветуйте графических библиотек для embedded

 ,

Сейчас в расте туго с графическими библиотеками для микроконтроллеров, и я пытаюсь систематизировать, что надо написать. Подскажите пожалуйста, что есть в природе, что можно было бы взять за основу. В первую очередь, под мелкие дисплеи типа OLED 128*64 spi/i2c. Интересуют эти направления:

1. Что-то низкоуровневое, типа u8g2 (рисование текстов и базовых примитивов).
2. Рисование менюшек
3. Рисование графиков (особо не надо, но посмотрел бы что-то простенькое)

Если что-то забыл - добавьте по вкусу, что еще надо для типичных микроконтроллерных применений.

Vit
()

Посоветуйте на чем делать вебсервер для esp8266, чтобы потом легко прошивался

 

Возможно дурацкий вопрос... Мне хочется сделать для esp8266 вебсервер, который бы легко заливался из командной строки (чтобы потом простые юзеры осилили). Хотя все кажется простым, на практике всплывает следующее:

- надо прошить «операционку» (если есть)
- надо прошить сам код (либо полный образ, либо аплет)
- надо залить файлы вебсервера (html/js)

Как ни странно, файловую систему почему-то везде заливают отдельно (либо я не вкурил как ее вмержить в общий образ).

Пока из самого простого нашел Mongoose OS. Там есть утилита «mos» под все операционки, которая умеет делать все операции. Какие еще варианты? Главный критерий - чтобы потом юзеру было не сложно запрограммировать.

Vit
()

Проверьте схемы и разводку самоделок пожалуйста

 ,

Давно не занимался электроникой, а с stm32 вообще дел не имел. Посмотрите пожалуйста свежим взглядом, не накосячил ли чего в схеме и разводке.

1. Регуль для бормашинки (со стабилизацией оборотов) - https://easyeda.com/speed/AC_speed_control_for_grinder-55eba57594ea46788b39b1...

2. Компактный девайс для пайки волной (на инфракрасном нагревателе) - https://easyeda.com/reflow/Mini-reflow-soldering-heater

Vit
()

Чем смотреть дебажный выхлоп с кристалла в линупсе?

 

Хочется просто смотреть результаты printf() на компе, без навернутой IDE, отладки и т.п. Родная приблуда только под венду, опенсорсная байда для китайского St-Link не умеет SWO (только прошивает).

Посоветуйте, что оптимальнее купить + поставить, чтобы заработало. Только без доработки плат, как в разных статьях пишут. По железу пока нарыл такие штуки:

- Альтернативный китайский программатор - больше сигналов на разъеме, но не знаю, хватит или нет.
- Точная (вроде) копия оригинального ST-Link
- J-Link - вроде закос под Onboard J-Link, по идее поддерживает RTT (хотя он кажется медленнее SWO).
- J-Link v8 - что-то еще, фик знает какого качества

Остальное, где надо проводочки допаивать, я пропустил. С софтом вообще не разбирался. Посоветуйте, что из недорогого есть смысл взять и какой ставить софт. Нужно для хоббийных применений - я не сижу круглый день за программированием контроллеров, зарабатывая этим на жизнь, и подключаться 20-метровыми шлейфами и эзернетом тоже не надо.

Vit
()

Посоветуйте IDE + билиотеки под STM32 на C/C++

 

Я в курсе про CubeMX, но это только драйверы, а у проекта чуть больше задач:

- пакетный менеджер для библиотек (чтобы не копировать ручками)
- библиотеки uart, LCD (хз, как выбрать качественные и поддерживаемые)
- какое-то совсем примитивное подобие async/await и эвентов, можно через «псевдо-rtos». Грубо говоря, чтобы проверка состояния кнопки с контролем дребезга выглядела как линейный код, а не FSM.
- IDE (?).

С виду platform.io - «прям то што хотел». Но когда начал копать - запутался в библиотеках и погиб. Там протухшая свалка какая-то. Искать актуальные версии терпения не хватило, пошел плакаться сюда :)

Напишите кто пилит под stm32, как нынче можно организовать разработку модного молодежного проекта. Он rust пришлось временно отказаться, но хочется хотя бы на плюсах или си сделать так чтобы не стыдно было.

Надо чтобы любой желающий в полтора пинка мог поставить что надо и включиться в разработку.

Vit
()

rust вообще готов для embedded?

 , ,

http://blog.japaric.io/embedded-rust-in-2018/

Кто-нибудь может по-простому объяснить, стоит ли развлекаться с переписыванием мелкого проекта на rust или нет? Все проекты - регуляторы для моторчиков на stm32f103c8t6. В принципе, вся память выделяется заранее, поэтому обычные плюсы тоже сойдут.

Rust хотелось попробовать потому что без приключений жить скучно, и потому что там есть пакетный менеджер. Но в принципе под плюсы пакетопроблемы решаются через platform.io. В rust смутило, что похоже надо будет ставить nightly builds. КМК это остановит желающих слать патчи. Есть подозрения, что жизнь может стать продвинутой, но весьма неудобной :).

Кто-нибудь уже делал опенсорсную эмбедщину на расте? Пора на раст валить или не выделываться?

Vit
()

Кажется в хроме канвас доломали

 

https://jsfiddle.net/uyczfLdk/21/

При нажатии на resize лиса работает, а хром и савари отжирают памяти сколько могут и потом пендык.

В ресайзилке точно зацикливаться нечему (я с тем кодом слегка знаком, гы). Похоже что-то с записью в канвасы размером меньше 6х6.

Vit
()

Кто хочет покодить под ESP8266 на lua/js?

 , ,

https://easyeda.com/speed

Нужно запрограммировать модуль конфигуривания регуляторов скорости через WiFi. Это Wemos D1 mini.

Как оно должно работать:

- Читается конфигурация через serial port, в формате JSON Form.
- Наружу выставляется точка доступа с вебсервером.
- Юзер заходит с любого девайса и видит форму, которая сгенерирована на основе конфигурации.
- После заполнения и отправки формы девайс генерит пачку команд в serial port.

Дополнительные нюансы:

- Нужно привернуть captive portal для редиректа на нужную страницу
- Нужно отделить содержимое веб-страниц, чтобы можно было отдельно разрабатывать html/js и потом включить файлы в прошивку
- Команды имеют формат modbus («В ячейку A записать значение B»)
- Название точки доступа и пароль надо хранить отдельно, чтобы их можно было подпатчить без пересборки прошивки (я потом сделаю веб-страничку для кастомизации)

Особых сложностей вроде не предвидится:

- Плата Wemos D1 Mini полностью независима от остальных частей проекта и шьется по USB
- Все модули есть либо в виде встроенных бибилиотек (access point, web server, dns), либо в виде отдельных проектов (captive portal)
- С вебнёй готов помочь (чтобы формочки красиво показывались)

По деньгам не знаю сколько, договоримся. Т.к. опенсорсы и все такое, то принципиально чтобы вам было интересно и было желание сделать хороший код.

Кто хочет поучаствовать - пишите на vitaly@rcdesign.ru

Vit
()

Посоветуйте формат для описания форм

 

Нужно сделать приблуду на ESP8266 (плата Wemos D1 mini), которая бы по JSON-конфигу генерился формочку, и при отправке потом генерила пачку команд в UART.

Вопрос чисто архитектурный - откуда можно потырить готовый формат, который позволял бы описывать и валидировать формы? Надо что-то такое:

- Поля для ввода чисел, с ограничением по диапазону
- Чекбоксы
- Селектбоксы

Я в курсе про JSON Schema, но его явно мало чтобы описывать тексты к полям и как потом сгенерить команду (приклеивать к описанию переменных метаданные). Лисапедить можно, но не хочется. Может есть что-то готовое?

Vit
()

google's woff2 -> node.js webassembly

 

https://github.com/fontello/wawoff2

Иногда так складывается, что код написан на сишечке, и переписывать его на жыэс не рационально. Было интересно разобраться, как лепить в ноде подобие бинарных биндингов без необходимости пересборки. То есть, через webassembly.

Ну что могу сказать... тема сыровата, но в принципе рабочая. Из нюансов - во враперах emcc асинхронная инициализация, поэтому яваскриптовый интерфейс надо делать из асинхронных функций.

Можно ли сделать синхронный интерфейс - не знаю. Теоретически можно, если переписать враперы ручками, и если в ноде не стоит ограничений на размер файлов webassembly для синхронной загрузки (в браузерах подобный лимит точно есть). Пока ни у кого руки не дошли разобраться.

Как-то так.

Vit
()

Каким «дисплеем» можно прикинуться по USB, без драйверов?

 , ,

Есть девайс, регулятор скорости для мотора (на самом деле - несколько разных девайсов под разные типы моторов). Нужно как-то реализовать возможность настройки (значения крайних положений ручки скорости и т.п.). Т.к. операция одноразовая, то городить кастомные клавиатуры и т.п. очень не хочется.

Надо чтобы работало на разнообразных операционках (девайсах?) без гимора для пользователя (с установкой драйверов и т.п.).

Пока пришли в голову такие варианты:

- Использовать внешний комп, прикинуться по USB COM-портом и присоединяться эмулятором терминала.
- Прицепить по UART ESP8266 (nodemcu mini за 3 бакса) и сделать на нем веб-сервер c конфигуратором (по окончании настройки отцепить девайс, чтобы не светил вафлей)
- Прикинуться по USB сетевой картой, которая видит сетку с вебсервером, как yota-вские модемы.

Какие еще возможны современные хипстерские варианты?

Vit
()

Кто пробовал китайские аналоги STM32?

 gd32,

https://lcsc.com/product-detail/GigaDevice_GD32F103C8T6_C77994.html

Ссылка только для примера, и не претендует на самую низкую цену. Но в среднем по больнице гигадевайсы в полтора с лишним раза дешевле.

Я из внушающего доверия пока нашел только https://olimex.wordpress.com/2015/12/21/gd32f103rbt6-the-stm32-pin-to-pin-com...

Вопрос в студию, почему все еще не свалили с ST на гигадевайсы? Цена очень вкусная. Даже в «дорогом» LCSC всего полтора бакса (на али по баксу).

Vit
()

Есть ли альтернативы Nextion?

 , nextion

Нужно сделать дисплей для отображения скорости мотора и мелких параметров. Причем хочется отдать юзерам на откуп такие вопросы как расположение цифирек, установка голой бабы на фон и т.п.

Для этого прекрасно подходят дисплеи Nextion, но там софт не опенсорсный и некоторые заморочки со шрифтами.

Есть ли у Nextion альтернативы? Опенсорсные. Либо хотя бы с разработкой из браузера, как в easyeda.

Vit
()

Посоветуйте как прокинуть периферию между микроконтроллерами.

 , ,

Нужно сделать оптоизоляцию на входах управления в регуляторе оборотов. Если развязывать высоковольстную часть в лоб - будет до фига оптронов и усилителей.

Вроде получается намного проще поставить 2 микроконтроллера с отдельными питаниями, и соединить цифровым каналом (тогда надо всего 2 опторазвязки). Один контроллер на силовую часть, и второй на ручки-кнопочки. Звучит странно, но проще и по деталям и по размерам.

А теперь вопрос - есть ли для C и/или Rust решения, чтобы прозрачно прокидывать пины, АЦП и UART в подобных связках? То есть, чтобы дергать в коде регулятора HAL и не заморачиваться, что данные на самом деле берутся из буфера, куда они прилетели от другого микроконтроллера.

Можно конечно на коленке это все накостылять, но что-то мне подсказывает, что подобное должны были давно сделать и как следует отладить.

Vit
()

Железячники есть? Помогите нарисовать схему регулятора DC мотора 220v

 привод

Я сильно отстал от современной элементной базы, и не силен в высоковольтных цепях. Кто-нибудь может нарисовать схему регулятора оборотов для щеточного двигателя с магнитами, от постоянного напряжения 220v (да, я не перепутал, мотор высоковольтный)?

Вот под такие хотелки:

- с контролем тока
- с измерением эдс самоиндукции для контроля оборотов (когда ключ закрыт)
- на микроконтроллере (можно не ставить специализированных микросхем, и половину функций реализовать программно)

Ну или скажите где какие-нибудь app notes на эту тему можно посмотреть.

Vit
()

RSS подписка на новые темы