Как стать автором
Обновить

Комментарии 44

Стоимость экземпляра и как с окупаемостью (если не забыть посчитать зарплату специалистов на разработку)?
Стоимость экземпляра — в районе 100 долл. США. На оплату услуг сторонних специалистов потрачено порядка 1000 долл. Но львиную долю проекта я делал самостоятельно.
А в эту $1000 входит разработка модели корпуса и пресс формы для него? И расскажите, пожалуйста, немного детальней про заводское изготовление корпуса из акрила. Хотя бы, какая технология используется, стоимость подготовки производства и минимальный заказ?
Нет, разработка корпуса сюда не входит. 3D модель корпуса мне сделали за 15 долл, и я его отпечатал на 3D принтере. Однако, от идеи 3D печати я отказался — во-первых — дорого (около 20 долл), во-вторых — медленно (один корпус печатался 5 часов). В итоге, один из клиентов мне сам предложил помощь с корпусом из акрила. Суть простая — берется толстый лист акрила и на станке с ЧПУ убирается все лишние внутренности. Это технология быстрая (за день можно сотню корпусов сделать) и относительно доступная (9 долл. за корпус при заказе от 150 шт.). На последнем фото поста именно корпус из акрила, а не пластик из пресс-формы.
Возможно про корпуса я расскажу в отдельном посте, т.к. много чего пришлось перепробовать, в том числе литье в силиконовые формы.
Не откладывайте в долгий ящик — очень интересно узнать подробности про корпус!
а можно про корпуса подробнее, в смысле контактов?

плюс, $9/корпус — это для вашей платы, оно ведь видимо от объемов зависит и так далее?
Контакты у меня в Украине. Думаю Вы и у себя найдете подобную фирму. Мне делала это фирма, которая рекламой занимается. Они много чего из акрила делают. От объемов конечно же зависит. Более-менее адекватная цена начинается, когда корпуса полностью используют заводской лист акрила. Как мне сказал, человек, который делал, можно было взять акрил менее качественный, и цена будет значительно ниже, но я не стал экспериментировать с качеством.
А не проще ли было не фрезеровать из толстого листа, а собрать «бутерброд» из нарезанных лазером рамочек из дешёвого листового акрила, стянув их потом винтами?
Тонкие листы не такие прочные, могут и лопнуть при стяжке болтами.

Да и не факт что от этого сильно дешевле получится.
Думал и над таким вариантом. Элементы очень компактно расположены на плате. Если делать бутерброд, то нужно отступы по краям делать, а это дополнительная площадь платы, увеличение размеров устройства, увеличение веса (при доставке конечным потребителям играет роль). И таки, да, не факт, что бутерброд будет дешевле цельного куска.
Ясно, спасибо. Я тоже к фрезеровке в итоге пришел для небольших партий. Думал, вдруг это еще какой-то новый способ изготовления. Правда, единичные корпуса сравнимы по цене с напечатанными, но качество лучше.
Подскажите, а рассматривался ли вариант резки фанеры лазером и проклейка/сборка на винты слоев?

Я не специалист в этом, просто это первое что пришло в голову, при мыслях о корпусе для своей поделки.
Рассматривался, но минусы в сообщении выше написал. Я бы еще для поделок рассмотрел бы использование алюминиевого профиля в качестве корпуса — дешево и стильно.
А купить уже можно?
Ага, видел ваш адаптер :) народ пробовал, через него успешно обновляются ЭБУ хюндаев.
Вы молодцы :)
Я, несмотря на наличие stm под руками, только в качестве spy им пользовался, убедиться что mangoose китайский не тянет тупо по скорости…
А как RTOS выбирали и почему вообще решили её выбрать? Может посоветуете RTOS для Arduino? :)
RTOS выбирал и предлагал мне исполнитель, к которому я обращался. До этого с RTOS вообще опыта никакого не было. Оглядываясь назад, скажу, что не жалею, что остановился на ней. Если бы проект писался на чистой библиотеке от STM, времени ушло бы значительно больше. По Arduino вообще не в курсе. Свое знакомство с электроникой начал с готовой макетной платы от Olimex.
Попробуй FreeRTOS она портирована практически на все что угодно. Ну и после кастрации лишнего вполне влезает на AVR, только нужна мега пожирней, от мега128 и толще. Иначе смысла нет. Да, только возможно придется выкинуть нафиг ардуино среду. Но это мелочи :)
Что использовалось при создании проекта:

RTOS ChibiOS
Sublime Text2
GCC (CodeSourcery)


Подскажите как отлаживали устройство в Sublime Text2?

Отлаживали в командной строке через gdb. Математические алгоритмы, которые никак не связаны с железом отлаживались в IDE CodeBlock.
Понял, мне просто очень понравился редактор саблайм, но без отладки понял что это не альтернатива IDE.

Если нравится Code::Blocks то посмотрите в сторону Em::Blocks.

Ок, посмотрю. Спасибо.
Вопросы по чиби:
1. Хватило ли вам возможностей HAL, или где-то все-таки пришлось залезать на уровень непосредственной работы с периферией?
2. Были ли нарекания к работе мультипроцессного ядра и синхронизационных примитивов?
3. Работает ли проект с включенным контролем режима вызова системных функций?
4. Были ли подозрения или явные признаки временных лагов из-за использования системных вызовов?
1. Переписывал только то, что к CAN относится, остальное не трогал.
2. Проблем замечено не было
3. Как в оригинале называется этот режим?
4. Поначалу думал, что использование RTOS скажется на быстродействии, но ничего подобного не заметил. Максимальная нагрузка, с которой я пробовал работу адаптера (на реальном автомобиле) — 2000 CAN пакетов в секунду при скорости 500000 бит в секунду. Устройство успевало ловить эти данные и передавать по USB.
3. этот режим включается дефайном CH_DBG_SYSTEM_STATE_CHECK (определен в chconf.h). Если флаг определен, чиби будет проверять правильность класса вызова API (http://chibios.org/dokuwiki/doku.php?id=chibios:guides:debug_guide&s[]=ch&s[]=dbg&s[]=system&s[]=state&s[]=check) и останавливать систему через port_halt(), если класс вызова нарушен. См. раздел Сommon Errors -> Use of S-class or I-class APIs outside a proper lock state по ссылке
У меня дефайн CH_DBG_SYSTEM_STATE_CHECK в FALSE установлен
Тогда попробуйте его установить в TRUE, и посмотреть, не уйдет ли система в останов. Если уйдет — значит, где-то у Вас нарушены соглашения о классах вызовов внутри обработчиков прерываний и/или коллбэков — вот например одна из особенностей: http://forum.chibios.org/phpbb/viewtopic.php?f=2&t=1718&p=14588&hilit=gleb_l#p14588
Ок, спасибо, попробую.
Наработки по CAN (те, что пришлось сделать для ChibiOS) планируете выкладывать?
Пока не было такого в планах. Судя по моим вопросам на форуме ChibiOS с проблемой потери CAN пакетов никто не сталкивался, и всем с головой хватало трех аппаратных слотов процессора для хранения сообщений.
Давай :) Видел посты о DIY ЭБУ — довольно интересная тема
Кстати, не могли бы вы осветить тему тестирования при разработке под ChibiOS?
А в чём именно вопрос?

Chibi это по сути библиотека, gdb не знает о ней ничего — поэтому отладка абсолютно так же, как будто ChibiOS и нет.
Отладка через GDB, там всё просто.

Я видел у вас тесты на код есть. Интересно, как они вызываются и прочее. Хочу освоить тестирование в C/C++.

У нас тесты в лоб сделаны
пачка номер 1, юнит текстики: код, который про чиби не знает вообще — этот код компилируется в win/unix бинарник и запускается, отдельный main.c который руками вызывает методы и проверяет возвращаемые результаты. в лоб, без mock. Работает за счёт pure C, который всё равно где компилировать.

пачка номер 2: у chibi есть win32 HAL — так что прошивка опять же компилируется в .exe и к ней тестирующая система подключается по TCP/IP. Это уже не unit test, это уже автоматизированное функциональное тестирование.
Понял. Надо посмотреть, а что там есть для Linux. Надо осваивать тестирование прошивок.
Posix HAL там тоже есть — так что можно аналогично поднять unix бинарник, у которого будет один или два виртуальных serial через tcp/ip
Здорово! А что вы потом делаете с прошивкой? Дизассемблируете и реверсите? Или там в понятном виде константы какие-то обозначены, которые можно подкрутить?
Непосредственно чип-тюнингом автомобилей мы не занимаемся, а занимаемся только программным обеспечением и оборудованием для этого. В идеале — да, прошивку нужно дизассемблировать, чтобы найти необходимые карты калибровок. Но большинство пользуется готовыми редакторами, в которых уже после дизассемблирования все найдено. Однако это — частный случай, т.к. не для всех прошивок ЭБУ существуют такие редакторы. В некоторых случаях, карты калибровок можно найти и без дизассемблирования. Вот тут пример, как это делается: www.youtube.com/watch?v=MdK2HqHVrIU
Интересно увидеть чертежи корпуса (минимальную толщину стенок в том числе) + более крупные фото в корпусе (их можно и в эту статью разместить наверно, не дожидаться написания новой). Спасибо )
Так, я не самый острый карандаш в пенале. ELM327 вы же в итоге не используете? Значит протоколы типа 14230-4 вы писали сами, поверх транспортного CAN? Тогда вопрос — нет ли у вас желания эти исходники опубликовать отдельно? :)
Протоколы типа 14230-4 CAN не используют. Поверх транспортного CAN идет протокол ISO 15765-4. Исходники публиковать не буду, чтобы конкурентам не упрощать жизнь :). Но тех, кто хочет разобраться в с ISO 15765-4 могу проконсультировать и помочь разобраться — ничего сложного там нет. Если взять в крупную клетку, то длинное сообщение попросту разбивается на CAN пакеты по 7 байт данных в каждом, плюс служебная информация.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации