В продолжение темы Контроллер «Virt2real», или просто — Виртурилка
Итак, первый серьёзный (по нашим меркам) тираж железок успешно прошёл приёмку нами на заводе и официальную растаможку в России. Процент брака основных плат зашкалил за нуль и составил 0.5%. Очень неплохо, мы рассчитывали в худшем на 5-6 процентов брака. К слову, есть мысль отдать одну бракованую железку BarsMonster на вскрытие проца (если он заинтересуется, само собой).
На таможне две коробки из трёх были подвергнуты тотальной проверке, в итоге аккуратно сложенные пакетики с платами превратились в хаотичную кучу. Пакетики плотные, так что обошлось без повреждений (по прибытии тестировали, а точнее, в данный момент заканчиваем тестирование).
Сначала хотим извиниться перед заказавшими людьми за задержку. Помимо производственных и технических проблем нужно было решить финансовые вопросы. Переговоры с инвесторами результатов не дали, пришлось рассчитывать на вашу помощь и свои силы. Собранные по предзаказам деньги покрыли лишь половину необходимой на тираж суммы, так что требовались ещё средства. Половина команды взяла нехилые кредиты, вторая половина команды впряглась в сложнейший (но дорогой и с предоплатой) побочный проект. Но в итоге мы выкрутились — нужные средства собрали. Но без вашей поддержки мы бы не справились, так что проект получился по сути краудфандинговый.
Дальше всё пошло практически по-плану. Завод высказал свои сроки (очередь, время на производство). После приёмки последовала доставка всего железа в Россию на таможню, а затем и к нам «на склад».
Сейчас мы уже готовимся рассылать заказанные железки (курьером, самовыносом, почтой, etc).
Мы обещали бесплатные бонусные платы, когда собирали предзаказы. Лидером по «хотелкам» стала силовая плата (моторшылд, в терминологии Ардуины), на втором месте — плата композитного видеовхода.
Бонусные платы мы ещё не делали, так как все силы были брошены на основной комплект (без Виртурилки бонусные платы нафиг никому не нужны). Но с этими платами всё намного проще — нашли производство в России, где их могут собрать. Сроки намного ниже чем в Китае. Тем кто предзаказывал Виртурилку бонусные платы поедут отдельной посылкой/курьером, доставка с нас. Для всех остальных — как обычно, платы в нашем интернет-магазине.
Для упаковки железок были закуплены бумажные коробочки, нарезаны поролоновые вставки. Всё довольно прилично и компактно получилось.
А вообще комплект в сборе выглядит примерно вот так
Изначально мы не собирались делать коробочки для Виртурилок, так как планировали применение только в ездящих/летающих девайсах. Но оказалось что и других применений много, а для них нужен корпус, коробочка. С нами связался представитель одной компании, которая изготавливает и продаёт готовые корпуса для разных контроллеров и предложил выпускать коробочки для Виртурилки. Тестовые образцы нам понравились, так что рекомендуем.
Адрес магазина по коробочкам — www.zigo.am/products/virt2real-enclosures/
Текущая версия коробочки подходит только для основной платы, без модуля Wi-Fi, ибо когда делалась модель не было в наличии вайфаек. Сам модуль влазит, но коробочка требует доработки напильником (отверстие под антенну прорезать). Вторая версия коробочек с учётом платы модуля Wi-Fi скоро будет.
TI для своих процессоров периодически выкладывает так называемый PSP — Platform Support Package. Это набор программных компонентов для функционирования плат на базе их процессоров, например, используемых у нас DM365 семейства DaVinci. В составе PSP имеется проверенный Linux, набор модулей для аппаратного ускорения кодеков и прочеее. Но все официальные PSP базируются на довольно старом ядре, 2.6.32 (и чуть посвежее 2.6.37). Все модули DSP и плагины GStreamer заточенны под использование только с ядром 2.6.32, а версия 2.6.37 уже не поддерживается, так как там поменялась концепция организации эмбедед видеоподсистемы, которую назвали Media Application Framework. Поэтому GStreamer не умеет работать с источниками видео нового типа. Но помимо PSP фирма TI ещё выкладывает пакет софта под названием DVSDK. В его составе как раз идут модули DSP, а так же куча примеров исходников по работе с кодированием и передачей видео, но про GStreamer — ни слова. А всё-таки с гстримером намного удобнее взаимодействовать, так что у нас не оставалось выбора — надо пилить всё что можно, лишь бы он заработал с новым ядром (соответственно, с новой видеоподсистемой).
Так как одна эта задача тянет на довольно нехилый проект, было решено сделать финт ушами — портировать старую подсистему на новое ядро, что и было успешно сделано. Сейчас камера уже видится как обычный девайс v4l2, гстример на «ура» кушает отдаваемый ею поток. Но появился один нюанс с одним из модулей DSP (cmem.ko). Модуль до смешного простой, но делает основную работу по трансляции адресов памяти, необходимой для корректной работы аппаратного ускорения. Вот на этом модуле сейчас и плотно засели. Это однозначно получится победить, но всё упирается во время.
Кстати, вполне возможно что у нас в итоге получится единственная прошивка (и единственный SDK) с новым ядром но с видеоподсистемой, пригодной для работы с видео классическим методом — через GStreamer.
В итоге, резюмирую — сейчас в нашем текущем (но ещё не окончательно закоммиченном) SDK работает всё, кроме камеры. Точнее, камера тоже работает, но без аппаратного ускорения, а это самое вкусное.
Поэтому имеется несколько вариантов развития событий:
Выложить прошивку на базе старого, официально поддерживаемого, ядра 2.6.32.
Плюсы — работает всё, включая видеозахват. Минусы — старое ядро, со всеми вытекающими, некоторые нужные драйвера довольно старые и криво работают на старом ядре. Дохлый вариант, короче — без потенциального развития, так что мы его даже не стали трогать. Если выкладывать его — надо срочно его допилить.
Подождать когда будет доделан модуль DSP и тогда уже выкладывать прошивку.
Плюсы — всё работает. Минусы — человек купил железку, а прошить и поиграться с ней не может. Самый плохой вариант, так что его даже не рассматриваем
Выложить текущую прошивку в том виде как она есть.
Плюсы — всё работает кроме DSP. Минусы — не работает DSP.
Мы склоняемся именно к третьему варианту, как наиболее подходящему всем, так что именно так и поступим.
Теперь самое интересное для программеров-линуксоидов. Если кто-то из читающих сей опус имеет опыт работы с видеоподсистемой ядра Linux (именно ядерной части захвата видео с цифровых камер) и вы хотите поучаствовать в разработке — велкам в личку. Железо предоставим, это без проблем, у нас их много сейчас в наличии :-) Вполне возможно, мы что-то упустили и всё гораздо проще чем кажется, но, судя по обсуждениям на TIшных форумах, ситуация обстоит именно так как мы думаем и как я написал чуть выше.
Заключение напишу от своего имени. С тех пор как у меня на руках появились самые первые образцы Виртурилки, я её использовал во всех проектах. Некоторые проекты публиковать нельзя, так что про них молчу. Из публичных — Тачка Бонда, Танковые Бои, танк Т-90. А также куча мелких развлекух типа управляемых тележек, клешни, лодочки и т.д. Руки не дошли опробовать на квадрокоптере, это планируем в ближайшем будущем. Для меня Виртурилка оказалась очень удобна именно для таких штук.
А теперь мы очень надеемся что Виртурилка и для вас (а не только для Гола, прим. Гол) окажется удобным инструментом для быстрой реализации ваших задумок. Мы очень волнуемся и переживаем за наше детище. Боимся, но ждём комментарии и отзывы. Как положительные, так и отрицательные (куда ж без них).
Официальный сайт virt2real.ru
Официальный интернет-магазин http://shop.virt2real.ru/ (бывший Микрогонки.ру)
Официальная Вики (в процессе наполнения) wiki.virt2real.ru
Официальный Твиттер https://twitter.com/virt2real
Неофициальный блог http://www.g0l.ru/blog/262
Итак, первый серьёзный (по нашим меркам) тираж железок успешно прошёл приёмку нами на заводе и официальную растаможку в России. Процент брака основных плат зашкалил за нуль и составил 0.5%. Очень неплохо, мы рассчитывали в худшем на 5-6 процентов брака. К слову, есть мысль отдать одну бракованую железку BarsMonster на вскрытие проца (если он заинтересуется, само собой).
На таможне две коробки из трёх были подвергнуты тотальной проверке, в итоге аккуратно сложенные пакетики с платами превратились в хаотичную кучу. Пакетики плотные, так что обошлось без повреждений (по прибытии тестировали, а точнее, в данный момент заканчиваем тестирование).
В общем, железки уже у нас на руках, теперь начинается самое интресное
Сначала хотим извиниться перед заказавшими людьми за задержку. Помимо производственных и технических проблем нужно было решить финансовые вопросы. Переговоры с инвесторами результатов не дали, пришлось рассчитывать на вашу помощь и свои силы. Собранные по предзаказам деньги покрыли лишь половину необходимой на тираж суммы, так что требовались ещё средства. Половина команды взяла нехилые кредиты, вторая половина команды впряглась в сложнейший (но дорогой и с предоплатой) побочный проект. Но в итоге мы выкрутились — нужные средства собрали. Но без вашей поддержки мы бы не справились, так что проект получился по сути краудфандинговый.
Дальше всё пошло практически по-плану. Завод высказал свои сроки (очередь, время на производство). После приёмки последовала доставка всего железа в Россию на таможню, а затем и к нам «на склад».
Сейчас мы уже готовимся рассылать заказанные железки (курьером, самовыносом, почтой, etc).
Бонусные платы
Мы обещали бесплатные бонусные платы, когда собирали предзаказы. Лидером по «хотелкам» стала силовая плата (моторшылд, в терминологии Ардуины), на втором месте — плата композитного видеовхода.
Бонусные платы мы ещё не делали, так как все силы были брошены на основной комплект (без Виртурилки бонусные платы нафиг никому не нужны). Но с этими платами всё намного проще — нашли производство в России, где их могут собрать. Сроки намного ниже чем в Китае. Тем кто предзаказывал Виртурилку бонусные платы поедут отдельной посылкой/курьером, доставка с нас. Для всех остальных — как обычно, платы в нашем интернет-магазине.
Про упаковку
Для упаковки железок были закуплены бумажные коробочки, нарезаны поролоновые вставки. Всё довольно прилично и компактно получилось.
А вообще комплект в сборе выглядит примерно вот так
Про коробочки
Изначально мы не собирались делать коробочки для Виртурилок, так как планировали применение только в ездящих/летающих девайсах. Но оказалось что и других применений много, а для них нужен корпус, коробочка. С нами связался представитель одной компании, которая изготавливает и продаёт готовые корпуса для разных контроллеров и предложил выпускать коробочки для Виртурилки. Тестовые образцы нам понравились, так что рекомендуем.
Адрес магазина по коробочкам — www.zigo.am/products/virt2real-enclosures/
Текущая версия коробочки подходит только для основной платы, без модуля Wi-Fi, ибо когда делалась модель не было в наличии вайфаек. Сам модуль влазит, но коробочка требует доработки напильником (отверстие под антенну прорезать). Вторая версия коробочек с учётом платы модуля Wi-Fi скоро будет.
Программные затыки, нид хелп
TI для своих процессоров периодически выкладывает так называемый PSP — Platform Support Package. Это набор программных компонентов для функционирования плат на базе их процессоров, например, используемых у нас DM365 семейства DaVinci. В составе PSP имеется проверенный Linux, набор модулей для аппаратного ускорения кодеков и прочеее. Но все официальные PSP базируются на довольно старом ядре, 2.6.32 (и чуть посвежее 2.6.37). Все модули DSP и плагины GStreamer заточенны под использование только с ядром 2.6.32, а версия 2.6.37 уже не поддерживается, так как там поменялась концепция организации эмбедед видеоподсистемы, которую назвали Media Application Framework. Поэтому GStreamer не умеет работать с источниками видео нового типа. Но помимо PSP фирма TI ещё выкладывает пакет софта под названием DVSDK. В его составе как раз идут модули DSP, а так же куча примеров исходников по работе с кодированием и передачей видео, но про GStreamer — ни слова. А всё-таки с гстримером намного удобнее взаимодействовать, так что у нас не оставалось выбора — надо пилить всё что можно, лишь бы он заработал с новым ядром (соответственно, с новой видеоподсистемой).
Так как одна эта задача тянет на довольно нехилый проект, было решено сделать финт ушами — портировать старую подсистему на новое ядро, что и было успешно сделано. Сейчас камера уже видится как обычный девайс v4l2, гстример на «ура» кушает отдаваемый ею поток. Но появился один нюанс с одним из модулей DSP (cmem.ko). Модуль до смешного простой, но делает основную работу по трансляции адресов памяти, необходимой для корректной работы аппаратного ускорения. Вот на этом модуле сейчас и плотно засели. Это однозначно получится победить, но всё упирается во время.
Кстати, вполне возможно что у нас в итоге получится единственная прошивка (и единственный SDK) с новым ядром но с видеоподсистемой, пригодной для работы с видео классическим методом — через GStreamer.
В итоге, резюмирую — сейчас в нашем текущем (но ещё не окончательно закоммиченном) SDK работает всё, кроме камеры. Точнее, камера тоже работает, но без аппаратного ускорения, а это самое вкусное.
Поэтому имеется несколько вариантов развития событий:
Вариант 1.
Выложить прошивку на базе старого, официально поддерживаемого, ядра 2.6.32.
Плюсы — работает всё, включая видеозахват. Минусы — старое ядро, со всеми вытекающими, некоторые нужные драйвера довольно старые и криво работают на старом ядре. Дохлый вариант, короче — без потенциального развития, так что мы его даже не стали трогать. Если выкладывать его — надо срочно его допилить.
Вариант 2.
Подождать когда будет доделан модуль DSP и тогда уже выкладывать прошивку.
Плюсы — всё работает. Минусы — человек купил железку, а прошить и поиграться с ней не может. Самый плохой вариант, так что его даже не рассматриваем
Вариант 3.
Выложить текущую прошивку в том виде как она есть.
Плюсы — всё работает кроме DSP. Минусы — не работает DSP.
Мы склоняемся именно к третьему варианту, как наиболее подходящему всем, так что именно так и поступим.
Теперь самое интересное для программеров-линуксоидов. Если кто-то из читающих сей опус имеет опыт работы с видеоподсистемой ядра Linux (именно ядерной части захвата видео с цифровых камер) и вы хотите поучаствовать в разработке — велкам в личку. Железо предоставим, это без проблем, у нас их много сейчас в наличии :-) Вполне возможно, мы что-то упустили и всё гораздо проще чем кажется, но, судя по обсуждениям на TIшных форумах, ситуация обстоит именно так как мы думаем и как я написал чуть выше.
Заключение
Заключение напишу от своего имени. С тех пор как у меня на руках появились самые первые образцы Виртурилки, я её использовал во всех проектах. Некоторые проекты публиковать нельзя, так что про них молчу. Из публичных — Тачка Бонда, Танковые Бои, танк Т-90. А также куча мелких развлекух типа управляемых тележек, клешни, лодочки и т.д. Руки не дошли опробовать на квадрокоптере, это планируем в ближайшем будущем. Для меня Виртурилка оказалась очень удобна именно для таких штук.
А теперь мы очень надеемся что Виртурилка и для вас (а не только для Гола, прим. Гол) окажется удобным инструментом для быстрой реализации ваших задумок. Мы очень волнуемся и переживаем за наше детище. Боимся, но ждём комментарии и отзывы. Как положительные, так и отрицательные (куда ж без них).
Ещё раз — спасибо! Моральная поддержка Хабраюзеров и Хабрагостей нам очень помогала всё это время.
Ссылки по теме:
Официальный сайт virt2real.ru
Официальный интернет-магазин http://shop.virt2real.ru/ (бывший Микрогонки.ру)
Официальная Вики (в процессе наполнения) wiki.virt2real.ru
Официальный Твиттер https://twitter.com/virt2real
Неофициальный блог http://www.g0l.ru/blog/262