rusEFI: Hellen и новости

TL, DR: gerbmerge+pdf merge+non-kicad interactivebom позволяет нам эффективно склеивать очень похожие, но при этом разные по форме и нюансам платы электронных блоков управления ДВС. Другие новости про rusEFI, до сих пор ищем единомышленников :)

В статье от 2014 года https://habr.com/ru/post/244737/ рассказ об открытом электронном блоке управления двигателями внутреннего сгорания rusEFI остановился на плате Frankenso. За четыре года мы продали 100 юнитов rusEFI, потом за последние 12 месяцев мы продали ещё 100 более современных юнитов, многому научились -, но всё равно продолжаем пытаться понять, чего же именно мы хотим. Сейчас мы смещаем фокус с универсальности на устройства для конкретных семейств автомобилей с конкретными разъёмами и схожими распиновками ЭБУ, этим мы в том числе мечтаем привлекать программистов, которым не комфортно паять.

Давайте для начала я расскажу про Hellen https://github.com/andreika-git/hellen-one — это наш инструментарий разработки семейства модульных, склеенных из кусочков похожих, но всё-таки разных плат под конкретные проводки конкретных автомобилей.

Примерно год назад стало понятно, что универсальные блоки слишком сложны в поддержке: возможность управлять практически любым бензиновым двигателем с почти любыми оригинальными датчиками и формами сигналов ДПКВ/ДПРВ достигается только за счёт огромных усилий по поддержке нашей очень небольшой командой экспертов. При этом результат механически и электрически обычно выглядит всё равно очень плачевно. И со своей стороны мы устали сильно много допаивать руками после изготовления платы сервисом JLCPCB. Вместо большого универсального https://rusefi.com/s/proteus и маленького универсального https://rusefi.com/s/microrusefi ЭБУ мы решили сделать пару десятков ЭБУ под конкретные распиновки конкретных популярных автомобилей, изначально оптимизированных именно под JLCPCB каталог компонентов. Не хотелось разрабатывать и поддерживать много плат под конкретные автомобили ручным копированием блоков схемы и блоков трассировки. Наше решение: Hellen One Framework, это набор скриптов для склеивания gerber, PDF схем, описаний монтажа и HTML просмотрщика плат.

Hellen Miata NA6Hellen Miata NA6

Отдельными gerber и cхематикой у нас есть модуль процессора, модуль блока питания, модуль силовых выходов и так далее.

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

Hellen 128 MercedesHellen 128 Mercedes

Далее в KiCAD (или в чём угодно) рисуется рама, на которой функциональные модули связываются друг с другом и разъёмами, запускаются скрипты склейки и у нас готовые к заказу файлы платы.

Hellen 88 BMW FrameHellen 88 BMW Frame

Всё это не 100% с нуля конечно же, а компиляция нескольких существующих инструментов плюс свой код. Забавный пример нюансов: gerbmerge:

Наша итоговая версия https://github.com/andreika-git/gerbmerge/ является форком от https://github.com/unwireddevices/gerbmerge который является форком от https://github.com/ihartwig/gerbmerge который является форком от https://github.com/provideyourown/gerbmerge Мы в итоге искали багфиксы по всем неактивным форкам и собирали себе — теперь у нас возможно лучшая версия gerbmerge.

Референсные rusEFI Hellen ЭБУ это https://github.com/rusefi/hellen121vag и https://github.com/andreika-git/hellen81 Некоторые Hellen платы https://github.com/rusefi/rusefi/wiki/Hellen-One-Platform не являются полностью открытым железом. https://github.com/rusefi/rusefi/wiki/It’s-complicated

А теперь расскажу о новостях за много лет с момента последней статьи.

microRusEFImicroRusEFI

С одной стороны, у нас случилось несколько технологических прорывов: четыре героя сделали microRusEFI https://www.drive2.com/c/555801204769161551/ — маленький универсальный rusEFI блок, выглядящий как законченный продукт с корпусом и косой проводки. Потом один из этих героев сделал Proteus — наоборот большой универсальный ЭБУ, катапультировавший rusEFI в элитный клуб двенадацатицилиндровых двигателей.

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

ы стали чётче понимать свою мотивацию: нам хочется фокусироваться на инновационных инженерных решениях, чтоб в перспективе получить на выходе ЭБУ удобнее и умнее всего того, что есть на рынке. Мы точно не пытаемся трудолюбиво продать много устройств здесь и сейчас, но и без живых пользователей мы не можем. Загвоздка в том, что нам нужны пользователи -, но только очень квалифицированные и готовые выступать в роли полезных бета тестеров. Мы даже написали лаконичный https://github.com/rusefi/rusefi/wiki/Mission-Statement

Мы вложили усилия в инфраструктуру взаимодействия с пользователями — у нас теперь есть онлайн просмотрщик конфигураций и логов работы устройств у конкретных пользователей https://rusefi.com/online

Мэтью сделал rusEFI контроллер широкополосного датчика кислорода с нуля, без популярных и недоступных CJ125 — https://github.com/mck1117/wideband/ — и теперь этот модуль больше всего страдает от дефицита чипов, покупаем STM32F042 везде, где можем :(

Мы завели мотор с прямым впрыском и заморозили это направление — сейчас оно не кажется приоритетным. https://github.com/rusefi/rusefi/wiki/GDI-status

Мэтью сделал поддержку виртуального диска — теперь наши устройства сами делятся полезными файлами и ссылками, если их просто воткнуть в USB. К слову о USB — microUSB это огромная ошибка человечества и мы очень зря пытались его в определенный момент использовать.

Андрей и Мэтью двигают вперёд поддержку stm32h7 — мы пока наверняка не знаем, чем нам не хватает F4 и F7, но всё-таки хочется больше памяти. Кстати мы закончили начальную интеграцию популярного скриптового языка Lua — до настоящего времени мы пытались писать свой язык формул, но готовый Lua это точно более правильный вариант. Качественной поддержкой Lua мы за зиму хотим научиться очень интересно управлять турбиной на очень быстром ралли багги с датчиком скорости вращений турбины.

Мы сделали железо и Фурье обработки сигнала с датчика детонации — сейчас мы собираем тестовые данные https://rusefi.com/forum/viewtopic.php? p=41970#p41970 и пишем код реакции на детонацию, очень интересное направление интересного кода. Сбор реальных тестовых данных это одно из самых проблемных направлений — в основном пользователи как разумные люди хотят просто ездить, а не собирать тестовые данные:)

Мы стараемся не отстать от прогресса и активно работаем с CAN. Умеем управлять некоторыми OEM приборными панелями и читать данные с внешних блоков. Например умеем получать AFR от внешних контроллеров. И даже обновлять прошивку нашего широкополосного контроллера, про который было выше.

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

Мы начали анализировать ускорение коленчатого вала ради мониторинга пропусков воспламенения. https://github.com/rusefi/rusefi_documentation/tree/master/OEM-Docs/Mazda/2003_Miata/digital-recordings

Другой участник проекта написал базовый код управления самыми простыми коробками передач. К управлению АКПП огромный интерес, но у нас точно не хватает ресурсов на тесты с настоящим железом. Ждём, пока присоединится кто-то с желанием и временем :)

Спасибо всем, кто дочитал до сюда. Вот видео самого интересного на настоящий момент использования: очень качественные реплики Ламборгини

https://rusefi.com/

https://github.com/rusefi/rusefi

© Habrahabr.ru