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 NA6
Hellen Miata NA6

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

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

Hellen 128 Mercedes
Hellen 128 Mercedes

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

Hellen 88 BMW Frame
Hellen 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

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

microRusEFI
microRusEFI

С одной стороны, у нас случилось несколько технологических прорывов: четыре героя сделали 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

русская группа https://chat.whatsapp.com/Ey4p7DIDoy299AS1h3ejpB

Комментарии (11)


  1. jakushev
    23.08.2021 13:55
    +2

    Работа выполнена колоссальная! Будучи сам в теме, знаю, о чем говорю. Но позвольте покритиковать. Первое, это какова ниша Вашей разработки? Если верно понял, то это - управление "кастомными" моторами, а не замена штатного блока на Ваше изделие? Второй вопрос с надежностью. Уж какие то совсем не automotive компоненты используются. Снова же, если цель - гонка, вполне нормально, но на постоянную эксплуатацию я бы не стал так рисковать. Ну и по подходу, снова же, если двигатели доработаны, возможно не ЭСУД надо адаптировать под мотор, а мотор под ЭСУД? По крайней мере такое решение применяется в профессиональных тюнинговых наборах. Снова же, база - это блок на 6 цилиндров, а комбинируя количество блоков добираем нужное. По крайней мере так сделано на Вейроне для их W16. 2 серийных блока на 8 цилиндров, синхронизированы между собой. Ну и я бы еще добавил FPGA для реализации синхронизации всего и вся завязанного на КВ, в том числе аппаратного расчета момента впрыска и зажигания. Много головной боли снимает с программной части...


    1. andrey239 Автор
      23.08.2021 14:02
      +2

      Спасибо за тёплые слова!

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

      Самые говорящие тикеты помечены smart_ecu меткой https://github.com/rusefi/rusefi/issues?q=is%3Aissue+is%3Aopen+label%3Asmart_ecu


    1. Dron_Gus
      23.08.2021 14:56
      +1

      Применение не automotive компонентов частично продиктовано любовью к JLCPCB и нежеланием допаивать потом компоненты руками.

      Тот же TLE8888, использованный в MRE, вполне себе automotive.

      А так у нас есть драйвера для TLE6240, MC33810, MC33972 и еще нескольких. Используются на кастомных бордах (котроые мы не любим).


  1. kolu4iy
    23.08.2021 15:01
    +1

    Из того что вижу я, успех (причем относительный) приходит к тому продукту, который настройщик может взять в руки и с помощью своих знаний и инструментария настроить какой-либо кастомный двигатель. Примеры - ПАК "Матрица", пакман... Но всё равно - это нишевые решения. Если почитать того же Maxi, то оказывается что мало управлять мотором, надо ещё и следить за этим управлением с точки зрения безопасности, а потому ставить на домашнюю машину открытый ЭБУ как-то не очень правильно. А отсюда и растут ноги тех самых единиц машин, которые пошли 10+ тыкм на вашем блоке...

    Лично мне оказалось проще заплатить и купить логгер и редактор калибровок к стандартному ЭБУ, чем менять ЭБУ на какой-то нестандартный.

    Я сознательно оставляю за кадром вопросы о законности применения нестандартного ЭБУ.

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


    1. andrey239 Автор
      23.08.2021 16:26

      Ты прав, что для 85% целевой аудитории купить логгер и редактор калибровок к стандартному ЭБУ - самое правильно.

      К счастью для нас, есть очень вкусные оставшиеся 15% - во-первых это автомобили, где логгер и редактор калибровок к стандартному ЭБУ ну просто никак не купить. А во-вторых это очень серьёзные проекты, где у стандартного ЭБУ ну совсем уже не хватает ни железа, ни софта. Я вскольз упоминул багги: в их гоночной серии с 1.8 им нужно снимать 700-800 сил, за счёт четырёх (!!!) электонных заслонок во всех мыслимых местах вокруг турбины. Другой пример - VAG. Для 90% моторов там идеальны логгер и редактор калибровок, а вот для самых серьёзных проектов им уже не хватает просто изменения параметров родного ЭБУ, потому что двигатели слишком далеко ушли от стока.

      Законодательство в разных странах очень разное. В США rusEFI это естественно Off road only - никаких дорог общего пользования, только частная территория. К счастью, частной территории в США много :)


  1. TheNavi
    23.08.2021 17:57
    +1

    Я вот тоже слежу за работой ребят - на самом деле открытый ECU интересен в первую очередь совсем не для серийных автомобилей. Там уже полно умельцев которые поправят прошивку под авто. Другое дело - есть движки, в которых быстродействие и мощь проца в rusEFI может быть весьма полезным. Как вариант - это оффроад техника - квадроциклы и снегоходы. Особенно интересны снегоходы с двухтактными двигателями, это та область где сделать и отладить прошивку, крайне - крайне сложно и быстродействие системы и точность расчетов одни из важнейших факторов.


    1. emmibox
      25.08.2021 13:32

      В реальном мире 2.5mips хватает чтоб управлять двигателями 6 цилиндров, 1050 сил, на 9000 оборотах, если отсутствие быстродействия и мощности компенсировать отсутствием 3-х делений в атомарной функции линейной интерполяции в трехмерных картах - т.е. архитектурой ПО.

      Опять же проц в rusefi не имея и сотни таких карт уже затыкается на интерполяции, ибо там она просто написана в лоб да еще на плавающей точке. Код современного серийного ЭБУ содержит около 8000 таких карт - и не затыкается! Вопрос - где быстродействие и мощность?! ответ - она в серийных ЭБУ! Ведь в них интерполяция давным давно уже стала машинной командой специализированного процессора для ЭБУ, и так в любом узком месте. И специализированный процессор с тактовой условно в 5 раз меньше окажется в реальном изделии в сотни раз быстрее.

      С точностью все тоже очень плохо - точность определяется не только и не столько ЭБУ, а датчиками и исполнительными механизмами. Даже в моменте точность определяется тем, как точно лямбда может померить смесь и как точно на стенде можно попасть в УОЗ. Так вот точность даже в 2 градуса по углу и 2% по смеси недостижима для любого доступного стенда и любой доступной лямбды соответственно. А подобная точность у систем была достигнута еще в 90-е. Т.е. да проблема есть - но она совсем не в ЭБУ.


      1. TheNavi
        25.08.2021 13:53

        В реальном мире 2.5mips хватает чтоб управлять двигателями 6 цилиндров, 1050 сил, на 9000 оборотах, если отсутствие быстродействия и мощности компенсировать отсутствием 3-х делений в атомарной функции линейной интерполяции в трехмерных картах - т.е. архитектурой ПО.

        Для 2Т все сильно веселее, там диапазон времени работы инжектора сильно, меньше. 8000-9000 оборотов для 2Т (типичные обороты 2Т), с точки времени на впрыск, на "зарядки" свечи - сильно, сильно меньше. Ключевое слово здесь 2Т, и 9000 обортов двухтактного двигателя превращаются, с точки зрения времени в 18000 оборотов 4Т. На 9000 оборотах у 2Т двигателя один цикл проходит за 6 миллисекунд, и технически время впрыска не может быть больше полутакта. А 3ms это как то вообще уже не сильно много если учитывать что время полного открытия некоторых форсунок доходит до 1ms. Я уж не говорю о таких вещах как непосредственный впрыск в камеру сгорания на 2Т двигителях (Rotax ETEK) - там вообще все в микросекундах измеряется. И самым главным измерением - сюрприз - становится измерение напряжения в бортовой цепи питающей форсунки и катушки зажигания.

        Даже в моменте точность определяется тем, как точно лямбда может померить смесь и как точно на стенде можно попасть в УОЗ. Так вот точность даже в 2 градуса по углу и 2% по смеси недостижима для любого доступного стенда и любой доступной лямбды соответственно. 

        В 2Т двигателях применение лямбды тупо бессмысленно. Основное управление идет по MAP сенсору и датчику детонации.


        1. emmibox
          26.08.2021 15:02

          Для 2Т все сильно веселее

          1. есть для спорта софт с дискретом управления по всем каналам 1.5мкс и ошибкой в пределах 1 дискрета. Нет проблем если вдруг такое понадобится.

          2. в 2Т когда никакого ETEC у ротакса в проекте не было - эта схема была реализована в 2000-м году на той же априлии SR50 и пигаро "не помню что" (digitech). Где все задачи прекрасно решала 8-ми битная древняя моторола 68HC908AZ60. А диагностировалась и прошивалась эта система вообще с специального картриджа к еще более 8ми битному gameboy color (на еще более древнем Z80). Этот мотор и комплектная система управления у меня есть живьем вместе с всеми вариантами ее прошивок и калибровок!

          В 2Т двигателях применение лямбды тупо бессмысленно. 

          Настраивать на нюх собрались или методом тыка? Продувка без проблем учитывается.

          Основное управление идет по MAP сенсору и датчику детонации.

          На двигателях с числом цилиндров меньше тактовости никакого основного управления по мапсенсору нет и быть не может! Там померить разрежение в задроссельном пространстве реально проблема - и она значительно более серьезная чем производительность систем. Мапсенсор там используется только в режиме барокоррекции. А управление топливом всегда прямое по оборотам и положению дроссельной заслонки. Как и датчик детонации лишь чуть чуть корректирует карты прямого управления УОЗ.


          1. TheNavi
            26.08.2021 15:50

            в 2Т когда никакого ETEC у ротакса в проекте не было - эта схема была реализована в 2000-м году на той же априлии SR50 и пигаро "не помню что" (digitech). 

            DITECH если уж быть точнее. Но это не совсем ЕТЕК - на Aprilla SR50 впрыскивалась если не ошибаюсь уже готовая топливная смесь (воздух + топливо), причем воздух был сжат компрессором до 5 bar.

            Настраивать на нюх собрались или методом тыка? Продувка без проблем учитывается.

            Настройка двигателя по широкополосной лямбде это одно (тут уж проще действительно по нюху газоаналиатора настраивать). В готовых снегоходах с 2Т движками не видел лямбд (тем более ставить дорогие ШП лямбды туда никто не будет - мрут как мухи от масла) - датчики EGT там обычно ставят.

            На двигателях с числом цилиндров меньше тактовости никакого основного управления по мапсенсору нет и быть не может! 

            На снегоходах обычно идет минимум 2 цилиндра.


      1. andrey239 Автор
        25.08.2021 15:32

        Мне кажется, что термины "функция" и "архитектура ПО" в одном предложении применяются очень редко - всё-таки уровнем функций архитектура не занимается, как мне кажется. Это первый из примеров моего полного не понимая мысли/мыслей, которые ты пытаешься озвучить.

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