Проект rusEfi и мысли о программировании МК вообще.

Я бы хотел рассказать о проекте автомобильного ЭБУ rusEfi и заодно озвучить некоторые мысли о программировании МК вообще.

Итак, по профессии я программист, по работе я делаю аналитику для биржевого терминала на java — там ничего гипер сложного, просто много данных которые нужно относительно быстро обработать. Значит нужно постоянно не забывать о производительности — при этом логики много, значит код должен должен читаться. Исходникам в этом году исполнится 10 лет — это даёт возможность окунуться в реалии работы со старым кодом, который уже никто не помнит, как почему и зачем вообще существует. Я рассказываю об этом, потому что именно этот мой опыт влияет на подход к программированию в rusEfi.




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

Вступление закончилсь :) Теперь расскажу о rusEfi. Итак, мы сделали плату расширения — называется Франкенштейн, одевается на stm32f4discovery. ЭБУ на основе этой платы уже управляет одним двигателем, сейчас я собираю еще две платы заинтересовавшимся людям, надеюсь появится еще двигателя. И железо, и код прошивки — полностью открыты.



stm32f4 — это 168 мегагерц, это вообще-то ОЧЕНЬ много. При это время идёт быстро — с начала проекта уже появилась 180MHz версия stm32f4, думаю будет еще развитие. Существующие ЭБУ успрешно работают на скоростях от 8 до 50 МГц. А раз у нас условно говоря пятикратный запрос по производительности — значит можно чуть-чуть расслабиться, и перестать экономить на спичках. С такой производительностью не нужно уже экономить каждый тик — понятно, что тратить зря тоже не нужно, всё в рамках разумного. А раз мы немного может себе позволить расслабиться — значит можно начать писать простой и понятный код, который будет проще читать, проще искать в нём баги и проще добавлять фичи. Кристальная чистота кода — акисома для проекта rusEfi.



Для задач ЭБУ нужен менеджер задач/процессов. Так это же называется rtos — ОС реального времени. Прекрасно, значит здесь изобретать велосипед не нужно — нужно взять что-то с полки. Мне жутко повезло, и с полки я взял ChibiOS/RT. Почему очень повезло? Потому что в ChibiOS/RT есть Hardware Abstraction Layer (HAL) — уровень драйверов железа. Это удобный API для работы с SPI/таймерами/АЦП, в котором мне не нужно знать, что такое шина. Потому что я не знаю ни одной причины, почему я вообще как программист приложения должен знать это слово. Для меня естественно, что ни одного регистра не должно рядом нигде быть с логикой работы програмы — уровни логики и железа должны быть чётко разделены. SPL — standard peripheral library — делает вялый шаг в этом направлении, но HAL из ChibiOS делает это лучше. Кстати в следующей версии они планируют разделить rtos и hal, чтоб дать людям возможность использовать их HAL с другими rtos.



Для иллюстрации — вот картинка ПОЛНОГО исходного кода демо-проекта тахометра. На один экран поместились старт, инициализация захвата таймера и обрабочик события.



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

В первом приближении задача достаточно не сложная — хотя бы потому, что моим двигателем я уже управляю :) Теперь в rusEfi нужно добавить всё скучное, но важное для удобства и универсальности. Двигатели отличаются формой сигналов о положении валов, двигатели отличаются некоторыми датчиками — всё это нужно аккуратно запрограммировать и научиться аккуратно переключаться из одного режима в другой, при этом записывая логи работы и диагностическую информацию. Всё это нужно запрограммировать без единого хака — есть надежда, что кому-то этот код придётся читать через год и через три.

Одна из моих идей — полупрограмный ШИМ. Я считаю, что для задач ДВС — там частоты максимум 500Гц — при современной производительности МК — мы будем управлять пинами програмно, с достаточно точностью. Почему полу-програмный? Потому что полностью програмная реализация — с использованием потоков и метода sleep() — к сожалению всё-таки не достаточно точная. А вот реализация с одним таймером 500КГц, в обаботчкие которого мы управляем всеми ШИМамим — и достаточно точно, и потребляет только один аппаратный таймер. Замеры я проводил — результаты положительные.

В этом проекте уже есть юнит-тесты и первая версия функциональого тестирования — автомтическая программа, которая управляет МК и сравнивает выходные сигналы с ожидаемымыи.

Еще в этом проекте есть симулятор прошивки: основную логику прошивки можно скомплировать в .exe файл, это опять же дар ChibiOS — там есть win32 и posix версии HAL. Я не случайно публикую это не в блоге sm32 — потому что именно stm32 в rusEfi практически нет, это просто программирование на C — теперь еще и C++.

Модульность — алгоритмы живут отдельно, код управления устройствами живёт отдельно — и так далее.



Чего в этом проекте пока не хватает — так что это программистов, которым было бы интересно в этом участвовать :)
Есть несколько относительно системных задач, есть нескько фич на тему юзабилити, которые нужно сделать, есть несколько багов наконец оторые нужно отловить. Половина задач — вообще чистый С, никакого отношения к МК вообще не имеет — можно тестировать в win32 версии. Есть задачи по переводу некоторых классов с C на C++.

Ссылки по теме:
http://rusefi.com/wiki/index.php?title=Main_Page/ru
http://rusefi.com/forum/

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

RSS свернуть / развернуть
Добавьте тег пожалуйста
0
не понял :) тег «пожалуйста» добавить? не увидел такой тег в списке тегов.
0
там ножнички нарисованы кат — назівается
все что после него будет скрываться в списке топиков. простыня чуть меньше будет места знимать
0
Уже добавил, спасибо!
0
Потому что я не знаю ни одной причины, почему я вообще как программист приложения должен знать это слово
Зря вы так! Знать такие вещи очень даже полезно! А пользоваться оболочками драйверов удобно, но не всегда это полнойенно рабочий результат да и быстродействие тож подхрамывать будет(хоть и запас 5 кратный он быстро может скушаться).
показания с нескольких аналоговых датчиков — и на этом основании управляет количеством
Не задумывались о применении цифровых датчиков? Точность повысится
0
Ну понятно, что я знаю слово шина — вот только я считаю, что оно не обязано торчать везде.

А что такое цифровой датчик, разве обычно это не что-то аналоговое + АЦП? Или я ошибаюсь?

Плюс точность нужно повышать только если есть проблема с точностью :) Пока такой проблемы нет. Иначе это решение проблемы, которой нет.
0
Ну понятно, что я знаю слово шина — вот только я считаю, что оно не обязано торчать везде.
Дело конечно Ваше=))
А что такое цифровой датчик
Ну допустим вот такие! Датчики положения цифровые, если мне память не изменяет то они их специально для авто. клепают (юольшая часть рынка)! С ними работал… только в приводах, мне очень понравились.
что-то аналоговое + АЦП
Отчасти вы правы=)) Бонусом к цифровым датчикам будет то что вам не надо будет работать с аналдоговым сигналом, соответственно никаких шумов, наводок и прочих с ним проблем не будет.
только если есть проблема с точностью
К запасу по производительности не грех и запас по точности прикрутить=))
0
В моей ситуации это нереально — это уже начинается серьёзная переработка механической части, это огромные затраты времени с мутной выгодой. Расход есть, дохода нет.

Запас по производительности мне достался бесплатно, в комплекте с платой за $14, без затраты времени с моей стороны.
0
Ну то я так, от скуки=)) Понятно что переделывать все датчики в машине(а потом попробуй повтори это на другой) безумная идея… Но было бы интересно такое чудо увидеть=))
Эх… жаль на моем зубиле мозгов нету… так бы попробовал с удовольствием! и мозга такая лежит у меня пылится…
и руки никак не доходят что то на подобии бортового мозга запилить…
0
Ну например можно пережедать зажигание на цифровое — это достаточно просто, поставить индивидуальные катушки которые прямо на свечах.
0
Жаль нет ни времени ни сил… тут хотябы обороты, температуры да все тому подобное смотреть на дисплейчике.
А как у Вас организована связь с внешним миром? Ну там чтобы настройки подшаманить и т.д.?
0
у нас своя консоль есть с прошивкой общаться и мы совместимы с популярной программой настройки коммерческих девайсов
0
А физическая сторона вопроса?
0
Если коротка — она там почти не работает, слишком много неизвестных. см. rusefi.com/forum/viewtopic.php?t=213
0
2 года назад делал аналогичный блок управления для 4х тактного 1 цилиндрового китайского ДВС (багги). Платформа AtMega32. Собрал и отладил зажигание. Потом забил. Остановило отсутствие топливного насоса малой производительности и поэтому купил готовый у китайцев. Сейчас времени нет развивать данную тему, но уж ОЧЕНЬ ИНТЕРЕСНО.
0
Управлять ровно одним двигателем — это просто, особенно когда автор кода сам является пользователем. Это 20% работы.

80% работы — это сделать прошивку, которую другой человек сможет запустить на другом двигателе. Мы пока этого не добились, но пытаемся.
0
а разве такое возможно? покажите фирму, прошивка которой подойдет к любому двиглу?
0
google: aftermarket engine management

Правильно настраиваемая прошивка может управлять очень широким диапазоном двигателей, процессы-то то одни и те же, датчики все очень похожи и так далее. ЧТо же тут невозможного?
0
датчики то одни и те-же. только двигатели даже с одного цеха уже разные. )
Я спрашиваю в плане зачем делать универсальную прошивку, если (возможно) сделать несколько, но разных?
0
Вот смотри. По аналогии:
Наверное по аналогии тогда нужно в каждый телефон свою ОС, в каждую модель компьютера — свою индивидуальную ОС?

Так раньше и было. Эти времена прошли, сейчас пишут единую ОС — и драйвера для каждого устройства. Не вижу принципиальной разницы с двигателями.
0
не, это не аналогия. по вашей аналогии получается что вы делаете ОС. а я на любом доступном мне языке пишу под нее собственное по, которая ваша ОС заберет с носителя и выполнит. Т.е. это уже не универсальная прошивка.
0
Есть фирма MoTeC например, это премиум класс, программно-аппаратных комплексов. Так же есть продукт под названием VEMS на всеми любимой атмеге128 остаётся только всё купить и можно взрывать мотор :)
0
Будучи еще мелким школоло на своем любимом мопеде «Верховина» запилил напильником электронной зажигание. ух и фрустрации навел тогда в гловах таких же самых школоло… жаль тогда не умел МК юзать… кексик годный бы вышел=))
+1
А не задумывались о том чтобы замутить свой протокол и гуевину(с блекджеком и шлюхами)?
0
А протокол текстовый? фу фу фу… канала хватает для передачи данных в реалтайме?
0
пока хватает. перестанет хватать — мы обязательно решим эту проблему :)
0
Я бы Вам посоветовал решить ее сразу, и больше не возврашщться…
С протоколами на работе «и их вариациями» веду бои с пол года, все валится отпадает и не успевает общаться… нахватался… наплевался…
руки бы оторвать хуяторам тех чудных перл(жаль они не работают уже)…
самый верный для себя сделал вывод — переделывать сразу протоколы в нормальные надо! чтобы потом не мучило голову…
0
пока здесь нет проблемы, решать здесь нечего. Никакие критические данные по этому протоколу не ходят.
0
Ну то Вам виднее, я бы не использовал текстовый…
после DCON-а я на такие вещи с ужасом смотрю
0
а что вы предлагаете — обычно скорость обмена с внешним миром у абсолютного большинства ЭБУ 9600-10400. это автомобиль, там 400 вольт и высоковольтные высокочастотные помехи при большой протяженности проводов — очень распространены.
0
Ну хотябы не использовать текстовый (очень избыточный) протокол! Тот же модбас будет куда лучше… или свой запилить под удобства.
0
ну тут уже кто как извернется — это совсем не критично. посмотри, еще раз говорю на сайт mpsz.ru, я ставил эту систему у себя на волге с 2005 года, с условной 7 версии. и их протокол последовательно расширялся, т.к. ресурсов у пика чуть менее чем нифига — то и был побитовый протокол, но в принципе читаем в hex виде.
0
Вот в том то и дело… что при разростании проэкта будет намного сложнее перескочить на побитовый.
0
Мне кажется, вы ошибаетесь. Ну и не будем забывать, что бинарный протокол у нас УЖЕ есть — у нас сейчас ДВА протокола. Наш — текстовый, и популярный не-наш — бинарный TunerStudio.
0
А почему вы так держетесь его? При учете того что там
слишком много неизвестных
0
Я б пилил свой протокол со своей гуевиной, а не подстраивался под чужого дядьку с закрытым протоколом
0
ну у каждого свои тараканы, и надо уважать их. в данном случае удобная тулза, и не сложный протокол. можно было и obd2 реализовать, но в его случае — не удобно настраивать.
0
obd2 еще нужно будет имплементировать в любом случае, вот только для всего нужны руки. Как всегда, идей много — работников мало.
0
Ну тут все как положено=)) В роли хобби оно и будет медленно продвигаться… Бросить свою работу и засесть с Вашим проэктом на пол года мало кто захочет. Вот и получаете такой результат:
идей много — работников мало
0
достаточно парные катушки — гораздо более дешевле решение, чем индивидуальные.
0
Так в этом вопросе самое интересное и есть в установке инжектора на карбюраторный мотор. Но тут без динамометрического или мощностного моторного стендов и вагона времени делать нечего, и бюджет проекта кусается весьма.
0
Хм. По обоим вопросам есть и другие мнения, скажем так :)
0
Я являюсь счастливым обладателем мотоцикла сузуки бандит 1200, мотор легендарный, всеми любимый но инжектора там отродясь не было. Постепенно мировая общественность дошла до того что на этот мотор есть смысл ставить инжектор, у нас, в России, на сколько знаю только один человек на подобный мотор установил инжектор и завёл и поехал на мозгах VEMS, для себя я пока вижу только вариант 90% проводки и датчиков от свежего мотоцикла этой фирмы с «хакнутыми» мозгами. Как видите тема для меня актуальная и больная :) Полемику разводить неохота но я лучше отстрою все режимы на стенде, чем буду рисковать шестизначной суммой стоимости своего мотора :)
0
ну, во-первых сдохнет он вряд ли. датчики температуры и детонации никто не отменял, а компрессию вы повышать вроде не собирались. во-вторых он скорее поедет хуже чем сдохнет. в-третьих стенд тоже ничего не гарантирует. в-четвертых не такая уж она и шестизначная, а если совсем страшно — купите Урал и на нем тренеруйтесь. :)
0
точно, народ уже ставил на уралы. видел, давно правда.
0
Вы ламер, раз такое утверждаете. Достаточно жестко залить двигатель или давать сильно обедненную смесь и он моментально издохнет.
В первом случае, топливом будет смываться масляная пленка — как результат, будет сильный износ ЦПГ.
Второй вариант — очень бедная смесь и как результат перегрев и прогорание дна поршня, оплавление кс и прочие подобные радости. Наличие в системе датчиков и детонации и т-ры, не гарантируют отсутствие первой (все зависит от ПО ЭБУ), а второе регистрирует т-ру ОЖ.

P.S. Идея заранее обречена на провал — ездить с самодельным говном, это читай выкидывать деньги из кошелька, ради забавы (расход топлива будет конский) + износ двигателя и загаживание атмосферы. НА фоне существующих ЭБУ, создавать свое убожество, это читай тешить свои убогие амбиции
+2
Здравствуйте Алекс!

Ваше мнение очень ценно для меня. Можно ли Вас нижайше попросить развить Вашу мысль на rusefi.com/forum/? Это бы было огромной помощью всем участникам этого мероприятия.
0
ну раз вы такой опытный, то должны знать что первое будет выражено еще и тем что движок просто «не поедет», а второе как раз таки вызовет детонацию. если совсем приспичит можно датчик кислорода на этапе отладки приладить. ну газоанализатор на выхлоп, если есть доступ к такому оборудованию. создавать «свое убожество» пришлось как раз таки для модернизации урала. добиться более ровной работы и меньшей инерционности двигателя по сравнению с родным карбюратором удалось. думаю если к делу подойти основательнее можно и конкуренцию существующим ЭБУ сделать. возьмем конкретно наши «авто» с бошевским январем на борту. прогон с инженерным ЭБУ и последующая зашивка в родной как правило дает ощутимый результат. а именно небольшое снижение расхода и большую эластичность. а все лишь по тому, что при серийном производстве нет возможности отстроить все режимы под конкретный двигатель.
0
Вы ламер, раз такое утверждаете. Достаточно жестко залить двигатель или давать сильно обедненную смесь и он моментально издохнет.
В первом случае, топливом будет смываться масляная пленка — как результат, будет сильный износ ЦПГ.
Второй вариант — очень бедная смесь и как результат перегрев и прогорание дна поршня, оплавление кс и прочие подобные радости. Наличие в системе датчиков и детонации и т-ры, не гарантируют отсутствие первой (все зависит от ПО ЭБУ), а второе регистрирует т-ру ОЖ.
Ужасы какие вы пишите. Начнём с того что зная рабочий объем двигателя (всасываемого воздуха), обороты и производительность форсунки можно избежать откровенных перегибов в обе стороны. Что бы ещё больше сузить коридор между «богатая» и «обеднённая» можно и наверно нужно колхозить лямбда зонд.
0
базовые характеристики для мотора исходят из его геометрических характеристик, природу не обманешь ))), и они являются пусть не оптимальными, но безопасными для мотора.
потом, уже поправочные коэффициенты будут вводиться по результатам обкатки мотора.
в чем проблема? ставь для например первоначальной оценки какой-либо маленький воздушный фильтр, дмрв, потом большой резонатор для гашения волн при работе мотора — потом уже в карб, снимаешь объемные характеристики расхода воздуха, по ним ты уже строишь таблицы как мощностной, так и «экономичной» характеристик (с разным коэффициентом избытка воздуха) и в зависимости от нагрузки на двигатель — используешь экстраполяцию между данными двумя таблицами.
0
что мешает — просто ставишь переднюю крышку от 2111 (инжекторный 21083), шкив и гену от инжектора, и будет у тебя база — посмотри старые факи на mpsz.ru — можно первоначально остаться на карбюраторе. + от замены шкивов — большие обороты генератора — на хх не будет разряда.
0
просто ставишь переднюю крышку от 2111 (инжекторный 21083), шкив и гену от инжектора
Вот это все и мешает! к нему добавляется отсутствие лишних финансов и простой машины.
0
можно проще — но надо придумать синхронизацию (0 метку) — есть окно с выходом на зубья маховика — вот тебе угловая величина 2пи/Nзубов маховика. на распредвал поставить лапку и датчик холла — вот тебе сразу и опорная точка отсчета и какой цилиндр — двоих зайцев убиваешь одним выстрелом.
0
Не лежит у меня душа ковырять двигло так сильно… голову поставил бы с 11й только изза клапанов и цикла газораспределения… но опять упор в финансы…
А насчет датчиков? с ними проблем никаких… хоть пром. энкодерами облепить, хоть самому поделать(как уже предлагал на спец. микросхемах)
0
каких клапанов??? 2111 — это инжекторный 21083 — у него вместо карба — улитка впрыска и все! не путай с 16 клапанным 2112, тот — да, много изменений поверх 21083 — и форсунки в маслоканалах для поршней, и еще куча других мелких, но дорогих особенностей.
0
пардоньте, да попутал=))
0
штатное положение коленвала считывается индуктивным датчиком с точностью 6 градусов. 60 отметок, из них 2 отсутствуют — маркер )))
причина — большой диапазон входного сигнала, от десятков-сотни герц при запуске двигателя, до тысяч герц при максимальных оборотах. период одного = 1/обороты в минуту, но количество импульсов=58/60*обороты в минуту. если период более 2х — 2.5-3.5 — маркер 48*после вмт.
0
вообще-то аналоговый сигнал устойчивее к помехам ))) а в машине этих помех на легком топливе (газ, бензин) чуть менее чем дофига. и используются по возможности токовые датчики, чтобы проходное сопротивление не давало сильной погрешности.
например температура на NTC резисторах или аналогах lm335 — те же 19.3887 — даешь ток в районе 3-10мА — на датчике падает напряжение=температура(кельвины=273+цельсия)*0.01, т.е. 3.0 вольта = 27*С.
точность в условиях быстро изменяющейся внешней среды, когда сама система имеет широкий допустимый диапазон — в +-5 градусов например более чем достаточно.
0
Смотря какие помехи и какой сигнал! Если токовый? — то он надежнее! Но если напряжение эквивалентно чему-то там? то нет! Но тут опять же еще сильно зависит от частоты с которой этот сигнал будет оцифровываться.
0
ну опять же… там сопротивление датчика значительно выше сопротивления линии.
NTC — это классика, но например точные измерения прямо в микроконтроллер без пересчетов — в том же змз-406 — напруга на входе в измерительный вход ЭБУ, подтянутый резистором скажем 1к/10к к +, будет тупо равна температуре/100. с какой точностью измеришь — та точность и будет.
и помехи как-то на измерительный цикл ацп повлияют только колебанием, сглаживается скользящим окном, ведь это медленно изменяющаяся величина, и температура=сумма(T[1..N])/N. а опрос цифрового и в этот момент помеха — тут уже как программа написана. хотя тоже можно скользящее окно — но обычно с цифровыми так не поступают — ибо вроде как они не врут ))).
0
Хочу сказать товарищу большое спасибо. Он нашёл большое кол-во достаточно интересной литературы. Желаю удачи в разработке, но моё ИМХО в очередной раз изобретается велосипед. Megasquirt, VEMS.
0
сорри. Имел ввиду товарища avatarandrey239.
0
Megasquirt и VEMS — закрытые системы. Старые версии Megasquirt и VEMS — это обычно пиратство, или просто СТАРЫЕ версии.

Открытый проект есть только один — FreeEMS, но там нюансы.
0
Интересную очень тему Вы завели! А какие ньюансы?
Огласите весь список, пожалуйста!
«Операция „Ы“
0
Там основатель проекта — со многих сторон хороший человек. Но вот дать возможность программистам программировать он не может — он видит себя достаточно большим программистом.

Вот его метод main: builds.freeems.org/firmware/master/doxygen/d0/d29/main_8c.html

А вот мой по сути метод main: rusefi.com/docs/html/rusefi_8c.html
0
Мда… ну тут дело привычки, ровных рук, внутреннего ЭГО, политических взглядов, навыков и желания развиваться…
У Вас сисема логически красивше выходит, а у него линейнее, хотя и так и так можно=))
0
Я 100% не объективен, так что со мной это можно не обсуждать :) Для меня нет вопроса выбора между исходником, жёстко завязанным на устаревший пять лет назад чип, и исходником, не завязанным ни на какой чип вообще.
0
Камешек у него специальный
Automotive Microcontroller
с довольно таки хорошими характеристиками. Сказать что он устаревший тоже нельзя! лет 10 точно на таких будут лепить автомобильные мозги.
0
у вас похоже тоже есть нюансы…
http://habrahabr.ru/post/215081/#comment_7386349
0
У нас точно есть нюансы, но вот мне кажется явно не те, что озвучивает frig. Но я могу ошибаться.
0
а мне показалось что озвучены вполне разумные сомнения. сам ни раз уходил из команды по причине необуманности планов и упертости менеджмента
0
Очень может быть, что там есть доля разумных аргументов, там не всё так просто. Роман был очень расстроен, что я добился удаления на третьем форуме бурного обсуждения пиратства, которому он сочувствовал. Я вынужден полоскать это бельё к сожалению, потому что тезисы «необуманности планов и упертости менеджмента» мне кажется как минимум раздуты, как максимум просто выдуманы на фоне обиды другой.
0
все что было расписан по приведенной выше ссылке я поддерживаю. в опенсорсе нельзя говорить человеку что он должен делать. человеку это должно быть как минимум нужно и интересно. если вы считаете что ваши задачи имеют более высокий приоритет — делайте. или найдите того кто с вами согласен. а тому кто с вами не согласен — позвольте делать то, что он считает нужным.
0
Я запутался. Ну так значит вы на моей стороне того диалога? Потому что в моём понимании там как раз мне пытаются навязать, в каком порядке и что делать.
0
нет конечно же. это вы пытаетесь вольнонаемному человеку навязать то что он должен делать, зарывая на корню его желание работать в другом направлении
0
правда что ли?
на основании чего такие выводы, если не секрет?
0
на основании вышеуказанной ссылки. не понимаете вы понятия опенсорс.
0
Я уверен, что вам привидилось — но Вы конечно же имеете право на любые мнения и подозрения. Раз арументации нет, то видимо этот наш диалог выродился.
0
Поддержу тов. xar вы наступаете на те же грабли что и:
Там основатель проекта — со многих сторон хороший человек. Но вот дать возможность программистам программировать он не может — он видит себя достаточно большим программистом.
У Вас свое виденье проекта…
Для таких случаев сушествуют совещания и т.д. где волею переговоров и прочих обоснований приходят к общему виденью (и на уступки идут как с одной так и с другой сторон) иначе развития никакого не будет!
Как пример — я не буду делать то что мне в корне не нравится или считаю, что так делать лучше не надо сейчас или не время и не место тому занятию!
0
Это всё верные общие слова. И всё поверьте именно так и было — были и совещания, и переговоры, и компромисы.

И я и Роман мало смыслим в электронике. У нас было два разных видения, как собрать железо — и мы мирно двигали оба направления вперёд параллельно, какие-то электронщики помогали мне — какие-то электронщики помогали frig'у. А потом в какой-то момент Роман видимо устал, потом лицензия ему не нравилась, потом моя борьба с пиратством его жутко обидела.

Короче, не делайте поспешных выводов — добро пожаловать на подфорум про железо rusefi.com/forum/viewforum.php?f=8 — при желании там можно увидеть мирное сосуществование двух веток железа и раскопать всю историю вопроса.
0
Может быть и так… всей соли мне не известно.
Вот Вам дельный совет на будущее, Для большего понимания результирующих (я в системах управления ДВС мало что понимаю пока, хотя принципы основные знаю, как что куда без крутых мозгов — сто раз проделывал) добавьте так называемое Тех.задание в топик! Что где куда откуда, какие сигналы, зачем нужны, что чем управляет и как.
Ковыряться по другим форумам у большинства желания мало… но по сути здесь народ толковый собрался! Дать дельных советов по всему проекту могут многие. Но не хватает в Вашем топике первооснов!
0
А вот реализация с одним таймером 500КГц, в обаботчкие которого мы управляем всеми ШИМамим
+1
Если мне память не изменяет (с АРМами очень мало дела имел) там и так ШИМ апаратный на таймере есть? или я совсем чего-то отстал от жизни… Зачем такое городить?
0
в теории — да, там есть аппаратный ШИМ конечно же. Только если нам надо например 8 каналов форсунок + 8 каналов катушек + 6 каналов на мелочи + 2 канала на вход, то начинаются жёсткие пляски по выбору куда же что повесить, что хватило пинов и каналов. поэтому с моей точки зрения — проще ШИМ сделать на одном таймере. это не религиозный вопрос, это незначительная деталь имплантации — она озвучена для иллюстрации идеи, что на некоторые вещи можно взглянуть нестандартно и поискать альтернативные решения
0
а в сторону внешнего ЦАП не смотрели? все же лучше чем програмно Шим куртить… да и надежность тут нужна повышенная! не светодиодом же RGB мигать…
0
а зачем на катушки шим? да и форсунки тоже не такие уж и быстрые.
0
Да, это не совсем ШИМ — а точнее совсем не ШИМ. Это один цикл ШИМ :) Я использовал неточный термин, чтоб сослаться на генерацию выходного сигнала. Для меня это частный случай ШИМ с одним циклом.
0
Я считаю, что для задач ДВС — там частоты максимум 500Гц
тут я бы обратился к Котельникову за теоремой! Смотря чем рулит этот аналоговый сигнал
0
Да, здесь нужно уточнить. 500Гц — максимальная частота управляющих сигналов, примерно один аналоговый вход действительно должен быть чуть быстрее.
0
упс — это какой?
0
основные гармоники сигналов в автомобиле у двигателей — менее 10 гц.
0
Хороший проект. А чего вы с быдлохабры удалили статью?
0
Давайте о хабре с уважением, я кажется статей с него не удалял пока — их там должно быть четыре:

habrahabr.ru/post/198672/
habrahabr.ru/post/201472/
habrahabr.ru/post/206154/
habrahabr.ru/post/215081/
0
> Давайте о хабре с уважением
Уважение нужно заслужить, БХ не заслужило.

> их там должно быть четыре
А, извиняюсь тогда. У меня из трекера последняя исчезала почему-то.
0
по работе я делаю аналитику для биржевого терминала на java
И 239 в юзернейме. Подозреваю я, что в одной фирме и в одном офисе мы работаем. Маска, я тебя знаю? :)

Учитывая, что я программирую тоже самое, но для сервера, что бы в биржевой терминал готовые данные поставлять :)
0
А, нет, не знаю, но мог бы знать, если бы совпали по времени :)
0
А терминал такой черненький по-умолчанию? может разные терминалы :)

Я в том офисе, который в одном городе с одной из бирж — мы может работать над одним терминалом, но из разных фирм :)
0
Ну, я работаю над другим проектом, но чёрненький терминал пишут в соседней комнате, да. Собственно, мне уже подсказали, кто у нас занимался автоспортом и контроллерами впрыска, но теперь не с нами :)
0
Мир тесен :)
0
Насколько я понял, Вы на данный момент в Америке и ищете интузиастов из России/Украины/Белорусиии… потому немного невежственный вопрос, какова у Вас там зарплата? Если что, то можно на одну Вашу зарплату отправить Вам сотню январей/микасов и аналогичных приблуд, которые сейчас ездят на авто, а не завели один двигатель.
0
Неее, я лучше 911 GT3 возьму в кредит.
0
Шутка, вы забыли — это хобби, мне нравится изучать что-то новое и создавать что-то прикольное и полезное.

Вы мне про январи расскажите, когда я на v8 перейду. Наверное мне нужно бужет просто два января? :)
0
О, Вы тут. Быстро. Но согласитесь, с другого континента совсем другое видение ситуации.
А Январь 5.1 стоит сейчас на рынке на ваши 100. Не потяните?
0
А два января не нужно будет, если наормально написать софт под 503.
0
Так что мы будем делать с v8-то? Два января? Кластер соберём?

Если я захочу что-то поменять, программировать на ассемблере? Спасибо, я лучше как-то сделаю удобную платформу для самоделок. Январь — великолепный продукт в своей нише. В самоделках — это натякивть ежа на ужа.
0
Не, к сожалению самоделка в даннном случае у Вас, а Январь установлен на миллионы автомобилей. Разницу очучаете? И ваще, я о про зарплату спрашивал, а не о вашей фигне.
0
А про зарплату дружёк тебе лучше не знать. Хочешь грубить — так я тоже так умею :)
0
Та Вы что грубить, ни в коем случае, если нагрубил, то извентиляюсь. Тут у меня уже забрали военный билет, чтобы я шел стрелять россиян, так что давайте без «дружек». Я Вам задал вопрос, насколько этот проект по зубам Вам, и насколько он по зубам нам. Это по цене две больших разницы — по-этому и спрашиваю.
0
У меня на Таврии уже каждый проводок подписан к Микасу что куда, и лично проводку переклал. Т.е. я без проблем могу любой блок сейчас поставить и попробовать настроить. Только от Вас блока я не вижу, судя по комментариям — ваша команда только распадается.
0
Картинки загружаются? Что ты видишь на второй картинке в этой публикации?

У меня ощущения, что что-то распадается нет — я сегодня отправил одну плату в Канаду, а вторую — в Словакию. Вот фотка на память перед упаковкой:
0
Фото вижу, только не пойму что мне надо на ней увидеть. Кстати, PBD и всякие PLS в ECU ни разу не приветствуются, т.к. авто — это в первую очередь вибрация, разве что потом на силикон садить.
0
На фото — почти ЭБУ. Почти — потому что в него пока втыкается плата с чипом, и пока внешний БП.

PBD
0
PBD & PBD — это простите что? Я программист. Напоминаю — на картинке у нас прототип. В какой-то момент вместо двух плат у нас должна появится объединённая плата без сочленений, но это планы. Сейчас нужно прошивку вперёд продвинуть, железо для текущего этапа вполне себе.
0
Про фигню получилось не очень, давай договоримся мою игрушку фигнёю не называть. Про политику тоже не стоит, просто оффтопик.

Вопрос в текущей формулировке я не очень хорошо понимаю. Мы говорим о цене железа? Если Январь 5.1 ценой в $100 для твоих задач работает — то это очень выгодный вариант.

Если же нужна какая-то логика, которой в яеваре нет — то расширять функционал на ассемблере мне кажется не самое комфортное занятие. Но я же никого не заставляю — пусть цветёт миллион садов :)
0
ок. я назвал фигнёй, ты назвал дружком. проехали.

Давай теперь по сути. Я готов приложить некие усилия для производства блока. Т.е. трассировка платы, написание софта (тут под стм32 вопрос), заказ плат в китае, тестирование блока на совем авто (и то, что он будет укомплетован разъемом по мой блок (55 пинов). Единственное что, финансов я своих не трачу, потому что их тупо нет.
0
Проехали.

Я не совсем понимаю, что именно ты предлагаешь. Если ты не тратишь финансов — то откуда у тебя появится железо? Предлагаешь ли ты мне выслать тебе всё необходимое железо?
0
Тогда я не понимаю сути проекта. Вот у меня есть авто, на котором я могу мерекинуть микас на январь и обратно, есть весь софт для настройки и перепрошивки, вы предлагаете новый блок. как я понял, он вас больше интересует для участия в своих американских гонках, и что выигрывает в этом простой славянин, живущий ваще на другом континенте, если он это будет делать за свои деньги? Просто за свои деньги я через полчаса могу написать ту-же молитву, тот же призыв к созданию еще одного аналога, и что, пущай люди делают… я так пониаю?
0
А то что вы в Америке не можете купить себе январь, то это лично ваша проблема, а скорее лень.
0
«Январь головного мозга»
0
Видимо ты не понимаешь сути проекта.

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

У тебя есть возможность кстати зарестрироваться на форуме rusefi.com/forum/viewforum.php?f=10 и собсвенно задать там этот вопрос — почему люди тратят на это своё время и деньги? Есть такое слово: хобби.
0
да всё я прекрасно понимаю, если насчет хобби, то электроника и программирование тоже хобби, и не важно что делать. сделать качествеено, допустим, «умный дом» не легче чем эбу, хотя там такие же платы, такие же контроллеры и такие же языки программирования. И еще я понимаю масштабность проекта, т.к. я свой микас прошиваю новыми калибровками чуть ли не каждый день, и всё для того, чтобы добиться оптимальной работы движка. Такого блока чтобы всунул на незнакомый двигатель и поехал — не бывает.
Вот чего я в этом хобби не понимаю, так это взаимосвязи и кто платит. Т.е. я страссировал плату, заказал на производстве и отправил вам в амерису и это всё за свой счет? и это ради того, что когда то, лет через десять, кто-то таки напишет софт под эту плату? Так я сам его под свою плату напишу, зачем еще на кого-то тратить деньги. Я бы еще понял, если бы копейки, но увы, изготовление плат стоит нормально, не всякий захочет тратиться, особенно когда еще детей кормить надо.
А так да, штука полезная.
0
А всё, прошел по ссылке, посмотрел, проанализировал. Вот мой вывод: чувак сидит в америке и ждет тех, кто бы ему нашарика запилил блок!
На это привело прочтение вашего форума, плюс остальных русскоязычных форумов, где вы успели со всеми пересраться. И было бы за что, кусок платы, на которой тупо десяток соиков8, фтди и разъем под карточку. И эта херьня управляется дискавери. И это всё? Ах да, и на это говно вы еще лицензию придумывате? Вам самим не смешно? Тут такую плату за день любой сделает, а то еще и круче.
0
Дружок! Тебе нужно обязательно поделиться своими выводами на rusefi.com/forum/ — ты можешь кого-то спасти от большой беды. Народ-то не в курсе!

Пожалуйста, сделай милость.
0
У меня в приоритете люди с форумов, которых вы заложили как последний стукач, вашей кучке интузиастов я не собираюсь ничего доказывать. Давай, америкос, до свидания!
0
И перестаньте меня называть дружком, так только пидары делают, хотя я в вас не сомневаюсь.
0
Итак, по профессии я программист, по работе я делаю аналитику для биржевого терминала на java — там ничего гипер сложного, просто много данных которые нужно относительно быстро обработать. Значит нужно постоянно не забывать о производительности — при этом логики много, значит код должен должен читаться.

Ну что за лол?? java… много данных… быстро обработать… не забывать о производительности…
На мастере по CUDA присутствовали ребята, которые занимаются анализом бирж, и при этом интересовались перемножением больших матриц, наверное, неспроста. Может, у вас какие-то неправильные понятия о производительности?
0
Ну, если ты был на мастере — а я за это семь лет зарплату получаю, то тут 50 на 50 — либо правильные понятия, либо неправильные :)
0
>> вот картинка ПОЛНОГО исходного кода демо-проекта тахометра…
Это взгляд программиста, который хочет полностью абстрагироваться от железа. Бог в помощь…
0
Абстракция от железа кажется не помешала нам начать на этой поделке ездить — см. www.youtube.com/watch?v=CD2lb1KpI3M
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.