Пользователь
0,0
рейтинг
11 ноября 2013 в 00:19

Разработка → rusEfi: opensource проект DIY инжектора

Я бы хотел продолжить тему блока впрыска топлива на базе stm32 и рассказать о текущем статусе проекта rusEfi.





rusEfi это opensource проект по созданию универсального блока управления двигателем внутреннего сгорания. Под универсальным подразумевается поддержка широкого спектра конфигураций, датчиков и исполнительных устройств. Это значит, что этот блок можно будет установить на любой двигатель и получить полный контроль, без закрытых прошивок, недокументированных возможностей и всего остального. Если вы программист, то возможности еще шире — можно будет самому править алгоритмы, а не только доступные карты и настройки. От других подобных проектов rusEfi отличается акцентом на мощном, но недорогом железе и благодаря этому возможности писать наиболее прозрачный и переносимый код.

Немного истории.


Четыре года назад я случайно увлёкся очень любительскими кольцевыми гонками на выносливость. Шло время, хотелось быстрее и лучше, но идти банальной тропой покупки BMW e30 желания не было — так появились мысли установить на двигатель турбину. Надёжность в такой конфигурации возможна только при правильном управлении впрыском и зажиганием, а по правилам моих гонок всё это должно быть еще и очень дешёвым. Анализ существующих решений показал, что цены на них все же высоки, причем не всегда оправданно, а возможности ограничены. Самодельный блок явно выходит по цене дешевле существующих настраиваемых блоков.

image

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

Выбор аппаратной платформы.


В настоящее время есть большое количество мощных и недорогих микроконтроллеров, производительности которых достаточно, чтобы не заботиться о каждом такте, сконцентрироваться на качественном коде и высоком уровне абстракции. Все это позволит получить качественный и переносимый код, расширяемость и отсутствие привязки к конкретному железу. Все это сулит возможности перехода на другие аппаратные платформы, когда это потрубуется. В результате был выбран STM32 — недорогой, но мощный.
По нескольким причинам я считаю, что на текущем этапе, а возможно и вообще навсегда, железо должно быть модульным. В данный момент используется отладочная плата STM32F4DISCOVERY и два модуля — модуль силовых драйверов и модуль аналоговых входов.
Размеры платы разработки позволяют подключить к ней с разных углов как минимум четыре небольших модуля. Сейчас у нас есть модуль аналоговых входов

image

модуль управления соленоидами (топливная форсунка — как раз соленоид)

image

и модуль разъёма проводки

image

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

С рисованием плат сейчас наверное самое узкое место — в написании кода уже участвует несколько человек, а вот с железом всё сложнее. Есть список задач, а людей нет. А уже хочется попробовать у китайцев заказать не только плату, но и заказать сборку хотя бы всех сопротивлений.

Софт


Для лучшей модульности система использует небольшую RTOS ChibiOS/RT, ценную еще и наличием уровня абстракции от оборудования. ChibiOS даёт нам во-первых потоки и примитивы блокировик — это функционал ядра RTOS, а во-вторых — драйвера железа с удобным и единым для разных МК API. За счёт этого не приходится углубляться в шины и регистры и есть надежда на переносимость. При этом большой связи конкретно с этой RTOS нет, если придётся — можно будет переехать на другую.

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

Интеграция с программами настройки


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

Для управления нами используется популярная TunerStudio, интеграция уже работает. TunerStudio достаточно гибкая и позволяет править настройки налету, создавать любые таблицы, редактировать карты и так далее. Все работает онлайн. Также следует заметить, что интеграция с TunerStudio сулит также интеграцию с MegaLogViewer, который позволяет анализировать логи и в автоматическом режиме корректировать карту топлива, на основании лога. Также из этой же линейки есть Shadow Dash MS — android приложение от создателей Tuner Studio, которое позволяет все тоже самое, что и Tuner Studio, но с android устройства по bluetooth.
Все эти программные продукты реализуют нужные механизмы, их не придется писать с нуля. Прямо сейчас карты топлива и температурных корректировок работают в TunerStudio, механизмы налажены, дальнейшее развитие в этом направлении не представляет проблем.

Текущий статус проекта


Сейчас контроллер управляет подачей топлива, опираясь на датчки положения валов и показания датчика расхода воздуха. Из простой таблицы получаются длинны импульсов в зависимости от текущий оборотов и расхода вохдуха, с дополнительными поправками на температуры охлаждающей жидкости и воздуха. Это примитивный и далекий от идеала алгоритм, который используется больше для отладки.
Прямо сейчас управления зажиганием нет. В какой-то момент было и управление зажиганием, потом его временно убрали — сейчас управление зажиганием будет главным направлением работы по прошивке.

Если коснуться темы аналогов — то первым обычно упоминают Мегасквирт, который «приоткрытый» — исходный код открыт, но требует использования их официального железа, иное использование это нарушение лицензии. Мегасквирт стоит весьма ощутимых денег. По-настоящему открытым и при этом живым проектом можно назвать только FreeEMS — на этом блоке управления уже ездят порядке двадцати машин, но этот проект привязан к очень конкретному железу и исходный код просто коробит моё чувство прекрасного.

Сколько всё это стоит? Проект открытый, исходники не стоят ничего. Железо открытое — железо стоит столько, сколько вы потратите на его изготовление. Ориентировочно минимальный блок управления должен получиться в районе $100. Кстати, отдельно интересное направление на будущее — вживлять новый МК в плату оригинального ЭБУ. Для старых блоков эпохи DIP это будет самая экономичная версия — такой апгрейд будет стоить всего $20, при этом будет полная совместимость с rusEfi.

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

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

Код проекта расположен на Sourceforge — там же живёт и трекер
Схемы текущей версии железа
Есть форум

А теперь — слайды!


Андрей @andrey239
карма
39,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

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

  • +12
    Не зря говорят, что если скрестить любимое хобби с программированием, можно добиться самых невероятных результатов.
    Удачи в вашем проекте, настойчивости и желания.

    Авось наступит день, и на свой корч такое поставлю.)
  • +3
    Вижу у вас основной упор на программной части, но аппаратная в данном случае не менее важна.

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

    — очень спорно, как минимум, из соображений надежности: соединения, изображенные на первом фото, в автомобиле долго не протянут, тем более, в гоночном. Во-вторых, ИМХО, проще заказать одну готовую платку, кто-то может изготовить ее дома сам (скачав чертежи), кто-то только напаять детали на заказанной, кто-то может только прошить, а кто-то способен только установить в авто. В то же время, покупать для управления двигателем отладочную плату с аудиовыходом, акселерометром и прочими ненужными фишками — весьма сомнительно…
    • +2
      Да, упор тут явно на программной части — как минимум потому, что я программист.

      Да, в самой-самой финальной версии наверное аудиовыхода тут быть не должно. Осталось только дожить до этой версии, а пока — пока ищем помощи с аппаратной частью.
    • 0
      Железо должно быть модульным, но вот модули должны быть другими. В случае с микроконтроллерами я думаю это должно быть как минимум что-то из линейки automotive от TI (если уж так хочется Cortex-M4).
      И да, проекту нужен качественный электронщик. К сожалению, моих знаний не хватает для занятия этим, в противном случае я бы с удовольтвием поучавствовал.
      Ещё один аспект — это тесты. Насколько всем известно, любое automotive оборудование проходит очень большой комплекс тестов прежде чем его сертифицируют и оно будет поставляться на реальные автомобили (по-этому технологии автомобилей отстают лет на 5).
      Если проект разовъётся, то придётся заниматься краундфандингом для проведения тестов на дорогостоящем оборудовании. К сожалению, это означает, что железо перестанет быть open-source.
  • +5
    Я надеюсь, вы понимаете — а если понимаете, то вдруг кто-то не понимает, и я на всякий случай напишу, чтобы предостеречь.
    О том, что ресурс двигателя и вообще всего автомобиля может значительно уменьшиться, если начать вмешиваться в работу силового агрегата. Немалые деньги производители тратят на тестирование автомобилей и подгонку всех работающих узлов друг под друга. Над понимать, что бездумная установка набора «мама, смотри, у меня теперь турбина» может повлечь за собой повышенный износ поршней, колец, цилиндров, кривошипно-шатунной группы, клапанов. Выход несгоревших газов при переобогащении смеси также может доставить много неприятного. Настройка впрыска — это вообще очень тонкая вещь.
    Так что либо вам должно быть не жалко автомобиль, либо надо очень хорошо разбираться в том, что вы делаете. Это не need for speed, где поставил набор и радуйся.
    Касательно автора поста — ему, очевидно, не жалко, ибо гонки :)
    • +3
      > Вообще всего автомобиля?

      Нет, этого я не осознавал. Я осознавал, что рискую двигателем и например катализатором. Наверное теоретические еще и коробкой. Но я был признаться спокоен за тормоза и подвеску :( Думал с кузовом-то всё будет в порядке. Пожалуйста, поясните.
      • +1
        Кузов — это если только в самом процессе гонок произойдёт столкновение.
        Двигатель и выпуск — это в первую очередь (забыл написать, что в случае переобеднения смеси возможна детонация, а это вообще не шутки — тут и до «кулака дружбы» недалеко). Если получится ощутимо увеличить мощность двигателя — тогда моторная передача, сцепление, кпп, дальше уже агрегаты, передающие момент на колёса (шрус или что там).
        Само собой, тормоза в гонках изнашиваются, но это уже косвенный результат. Кстати, тормозную жидкость придётся менять чаще, т.к. от постоянного перегрева она портится, снижается точка кипения, и это чревато пропаданием тормозов.
        Система охлаждения также работает на износ. Масляный фильтр чаще нужно менять…
        Суть в том, что как только мы начинаем форсировать двигатель, все остальные агрегаты тоже требуют усиления, т.к. производитель не закладывает в них чрезмерного запаса прочности.
        • +2
          На самом деле вы во многом правы, но в некоторых вещах немного ошибаетесь:

          Для гонок стандартных автомобилей, усиление много чего требуется сильно, сильно до начала вмешательства в двигатель. Первым делом именно для моих гонок на выносливость нужно усиливать тормоза. На втором месте наверное подвеска — не для усиления, а для жёсткости. Где-то здесь еще есть шины, потому что уличные шины на треке будут вызывать улыбку. И только где-то потом можно начинать задумываться о вмешательстве в двигатель.

          Кстати, две недели назад мы выиграли свою первую гонку на этой жёлтой машинке! В полтора месяца назад машина отъездила 24х часовую гонку. Но для целей этого поста всё это немного оффтопик.
        • +1
          Несмотря на то, что здоровая осторожность не повредит, я считаю, что не стоит возводить решения разработчика в догму. В наше время часто бывает так, что производитель выпускает несколько моделей, одни из них лучше и стоят дороже, а другие — наоборот. Но производство нескольких моделей может оказаться невыгодным. Тем более, если разработчик нашел дешевое решение технических проблем, то зачем же отказываться от применения этого решения во всех моделях своей продукции?

          Но маркетинговые соображения требуют нескольких моделей. Часто производитель ставит качественное железо от дорогой модели в дешевую. А чтобы у клиентов была мотивация покупать дорогую модель — это железо искусственно «глушат», «тормозят» и т.д. Часто — программным способом. В такой ситуации умелый тюнинг может творить чудеса. Пожелаем автору успехов.
          • 0
            Особенно этим «грешит» VAG, вы только поглядите — на рынке минимум ТРИ компании предоставляющие альтернативные прошивки. Не считаю заливки родных от более «дорогих» версий.
      • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          не все моторы даже современные с высокой степенью, есть довольно «разжатые» моторчики. Их можно дуть и дуть. Только вот просто дуть — это да, нифига не выход. В реальности — хорошой впуск-выпуск может дать больше, чем наддув 0.3 Атм :-) Типичный пример — японский Honda Fit, L15A Vtec, замена выпуска со стока 4-1, на R-Power 4-2-1 дала +9 WHP на диностенде. Больше не делалось ничего!
    • +1
      Как говорил мой преподаватель по ЭСУД — хотите что-то поменять — сперва ответьте на вопросы «что я хочу получить» и «к чему это может привести». Если достаточно хорошо понимать процессы, происходящие в двигателе, почему бы не вмешиваться? То что модификация двигателя в сторону большей отдачи приводит к более быстрому снижению ресурса — очевидно. Но ведь спорт требует жертв.
      • 0
        Да я и не против. Я просто по доброте душевной хочу предостеречь тех, кто думает, что можно просто воткнуть некий дополнительный агрегат в свой автомобиль и расслабиться.
    • 0
      Что мешает купить на разборе мотор за полтинник и гонять его на стенде?
      • 0
        На стенде нет нагрузки — если без нагрузки, то можно протестировать только достаточно узкий сектор.
        • +2
          но ведь ничего не мешает нагрузить мотор на стенде
          • 0
            Как нагрузить мотор на стенде? Куда-то нужно будет деть 100 л.с., куда?
            • +2
              В тепло. Нагрузочный стенд позволяет откатать мотор практически во всех режимах.
              • 0
                Динамометр автомобильный кажется стоит $10 000? Мне дешевле использовать машину.

                Как перевести в тепло на коленке, за $100?
                • 0
                  За 10к вряд ли можно взять нормальный стенд. Машину дешевле, но зажигание полноценно откатать можно только на стенде. На дороге только полагаясь на жопомер.
      • 0
        Как я попытался подробно описать, проблема может возникнуть не только в моторе. Суть в том, что форсируя мотор, придётся форсировать и всё остальное.
    • +1
      Все сильно зависит от исходных настроек. Стоковые «мозги», как это не странно, часто настроены от «неважно», до «плохо». Многие вещи не учитываются вообще, некоторые моменты учитываются не полностью, вы итоге качество управления далеко от идеального. Работает? Народ покупает? Ну и отлично. Надо понимать, что даже при современном уровне производства — все двигатели разные, все бензины разные и производитель лавирует между некими граничными условиями (ослиная моча), разбросом параметров двигателя, мощностью, расходом и экологией. При настройке на среднюю температуру по больнице мы получим среднюю температуру по больнице. Просто нормальная настройка под этот конкретный мотор — уже большой шаг вперед.

      Настройка впрыска — это вообще очень тонкая вещь.

      Важно чтобы алгоритмы были правильные. А там, глядишь, и настраивать ничего не придется. Смесь строится вообще автоматом практически.
    • 0
      Вы это пытаетесь объяснить любителям тюнинга или разработчикам системы управления впрыском?
      • 0
        Я пытаюсь предостеречь начинающих любителей «тюнинга», которые не очень понимают, что делают.
        Ведь в статье речь шла не просто об управлении впрыском, а об установке турбины.
  • 0
    А такую штуку в ваз 2107 можно засунуть? И вообщем с помощью такой штуки можно сократить расход топлива и и увеличить «мощность» машины?
    • +1
      вы уж решите, вам сократить расход, или увеличить мощность?
      вместе — никак
      • 0
        Как-то нахлынуло столько всего, что забыл, что эти величины в обратной пропорции))) Расход.
        • 0
          А зачем расход на семерке уменьшать? Поставьте газ тогда уже.
      • +1
        Это разные режимные области. Так что вместе — еще и как. Понятно, что экономит водитель, но возможность экономить должна быть и можно одновременно и экономить, когда не наступаешь на педаль и выжимать максимум — когда наступаешь.
    • 0
      А сёмёрка впрыскова?

      Увеличить мощность можно, но на очень небольшую величину.
    • 0
      Там вроде карбюратор.
      • 0
        Есть и инжекторный вариант
  • 0
    Семерка потому что на ней можно эксперимента ставить, стоит в гараже без дела.
  • 0
    Собственно, восторженные отзывы тут уже написали, с меня хватит и того что я залил слюнями клавиатуру.

    Есть вопрос по видео. На сколько позволяет качество пережатого видео послушать — есть небольшие проблемы со стабильностью при снижении оборотов. Конечно, it depends, и не факт что дело в зажигании, но не могли бы вы прокомментировать.
    • 0
      Сейчас управление топливом в очень ранней стадии развития, примитивнее вообще некуда. Зажиганием управляет родной мозг. На текущем этапе работы вернется зажигание.
      • 0
        Понятно, спасибо)

        Я уже сплю и вижу открытую альтернативу прошивкам Паулюса и различным ассемблерным модификациям заводских конфигураций =)
        • 0
          Это вряд ли можно будет назвать альтернативой прошивкам. Ведь тут полностью другое железо.
          Хотя в посте озвучена идея установки нового процессора в старые мозги. И мне эта идея кажется замечательной.
    • 0
      Возможно дело в наивности алгоритма поддержания холостого хода?
      • 0
        Видимо, сразу при отпускании гашетки включается холостой ход.
        Ну и двигатель рывками останавливается. А-ля помпажный режим.

        Но это все домыслы.
        • 0
          Каждый может заглянуть в код :)
  • +1
    Мегасквирт — отличное название :) порадовало
    • +1
      Вообще squirt — это «струя» или «пускать струю». Отлично подходящее слово для системы контроля впрыска. А что приходит на ум удачливым любовникам и завсегдатаем порнолабов — я не знаю )
  • 0
    есть ли возможность установки на мотоцикл? как раз себе инжектор хочу. То ли попробовать вашу разработку, то ли январь ставить
    • 0
      В данный момент проект в процессе разработки и говорить об установке куда либо слишком рано. А так да, принципиально никаких проблем нет.
      Я как раз ставил себе на мотоцикл инжектор, так что мотоциклетные особенности не даю забывать в процессе.
      • 0
        В смысле — на мотоцикл, на котором был карб, вы поставили инжектор?
        • 0
          Ну да.
          • 0
            Однако.
            Что за байк? И как вы распихали все эти датчики температуры и прочего?
            И оно работает? :))
            • 0
              Днепр. Мозги клон мегасквирта. Датчики — без проблем. Там их не много.
              Да, ездит хорошо.

              В этом нет ничего удивительного или особенного, на самом деле. Народ ставит и пользуется.
              • 0
                Есть ли экономический смысл подобной процедуры? Расход уменьшается или мощность возрастает?
                • +1
                  Смотря как считать. Если считать, что мотоцикл стоил 200, а инжектор 500, то кажется что нет. Если считать, что в сумме это 700 и за эти деньги вообще ничего нельзя купить близкое по мощности, то да.
                  Мощность и расход зря противопоставляете — это сильно связанные вещи. Через КПД, которые от точности управления тоже зависит.

                  Ну и на инжекторе можно достаточно тонко разделить различные режимы и забеднить на круизинге смесь. Это экономия. А нормальная система зажигания (которой на карбюраторных аппаратах нет нигде) и разные другие штуки вроде систем ускорения позволяют получить динамику. Ну и «дополнительные плюшки» в виде нормального запуска при разных температурах, облегчение теплового режима и так далее.

                • 0
                  В тюнинге никогда нет экономического смысла, если речь про частников.
                  При продаже это также никогда не окупится, поэтому как правило стоковые детали стараются не выкидывать.
                  Если машину решают сменить — снимают весь тюнинг, возвращают на место сток. Разумеется, когда это возможно.
                  Тюнинг продается отдельно, машина продается как сток по рыночной цене отдельно. Отдельные люди пытаются продать как есть. Получается у единиц
                • 0
                  Удовольствие от процесса бесценно, ну и Днепр прикольный мотик, почему бы его не побалывать.
                  У моего приятеля VTX 1800 с поверкомандером и Днепр, который он заботливо допиливает, это нормально.
  • 0
    Интересный проект! Я о подобном задумывался когда собирался ставить инжектор на свой старенький 417 мотор, в итоге поставил железки от газели под управлением Микас 7.1. Движок заработал гораздо лучше и шустрее, но сама работа компьютера меня не устраивает, ибо он понятия не имеет что творится в моторе :) Сейчас потихоньку вновь возвращаюсь к этой теме и минимальный план действий и железа уже наметил. Сейчас всё упирается в мозги и расчёт. Часть схемы блока управления планирую брать с уже имеющихся заводских мозгов(модули зажигания, управление форсунками, канал детонации), что-бы не изобретать и без того изобретаемый велосипед. А вот с вычислительной частью ещё не определялся и вот твоя разработка больше всего под это подходит.
    Единственное мне не понятно почему для расчёта впрыскиваемого топлива ты используешь только расход воздуха. ДМРВ имеет инертность при резких перепадах расхода, для корректировки этого используются показания ДПДЗ. А вообще, для использования данной системы на разных моторах было бы хорошо отказаться от ДМРВ в пользу ДАД и тут уже желательно использовать данные с ДПДЗ и ДК.
    Сам я админом работаю, но как-то так повелось, что хобби джипинг. Сейчас помимо основной работы ещё калымлю автоэлектриком и делаю диагностику инжекторам(как правило отечественным). Буду рад помочь твоему проекту! :)
    • 0
      ДМРВ там потому, что на машине у Андрея есть ДМРВ. Работа с ним на примитивном уровне — там просто таблица по одной оси которой вольты, по другой rpm. В ячейках — длительность впрыска. Это мрачный ужас, но для отработки железа и основных моментов подходит. Сейчас надо привести в порядок работу с датчиками, калибровки, фильтры и все остальное, а потом браться за серьезные алгоритмы.
      На форуме есть инструкции как получить исходники, как собрать, как что. Для начала достаточно купить STM32F4DISCOVERY, чтобы отлаживать прошивку на железе. А потом уже можно довесить остальную аппаратную часть.
      Я, кстати, так и планирую делать. Сделаю переходник и поставлю отладочную плату в рабочий блок, где есть вся обвязка :)
      • 0
        Думаю ты имел в виду не rpm а расход воздуха(в кг.ч. по моему). :) Понятно что он у него есть и он его задействовал, просто с ДМРВ особо не разгуляешься в дальнейшем. В случае использования турбины ДМРВ упирается в потолок измерений, когда ДАД будет показывать сколько турбина надула в ресивер. На малолитражных свистульках ДМРВ быть может и хватит, но на нормальных моторах ему становится грустно…
        А я наоборот не хочу в рабочий блок внедрять плату, мне проще рассыпуху купить и припаять, да и свободного блока под эти цели нету…
        • 0
          Нет, я имел ввиду именно напряжение и rpm.
          Это все понятно, но в данный момент пока что не до того, надо последовательно идти.
        • 0
          Ответ на все вопросы — да.

          У меня на машине уже даже стоит ДАД в добавок к стандартному ДМРВ. Просто под ДМРВ я базовую карту могу взять со стандартного блока, пока проще ездить на ДМРВ — сейчас других забот хватает. Избавиться от ДМРВ — практически одна из целей всего этого проекта, у меня на гоночной машинке ДМРВ типа Лопата, очень хочется его убрать.
          • 0
            Надеюсь, не собираетесь убирать поддержку «простых смертных» без турбины полностью? Было бы интересно попробовать DIY мозги на обычной рабочей лошадке, а на таких лишь ДМРВ да ДПДЗ.
            • 0
              Не будем конечно ничего убирать. Наша цель — универсальность!
            • 0
              нет конечно, никто никуда ничего не уберёт :)
            • 0
              Да ладно. Была у меня toyota с 5E-FE, нет там ДМРВ. Только ДАД, он же MAP-sensor.

              Вообще, идея классная и начинание тоже.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.