среда, 21 августа 2013 г.

Вкорячивание ондроедового планшета в автомобиль. Пробная поездка.

После предыдущих тестов выявились несколько косяков, которые удалось починить в разной степени:
  • фон от кодека плоншета. прицепил фильтр ba3121, почти все починилось. в паузах тишина, но иногда идут помехи от тача. во время воспроизведения все ок, помех никаких.
  • включение-выключение плоншета от асс. решено: так как управление кнопкой идет по низкому уровню, а, как оказалось, ордуина не умеет полностью отрубать напряжение со своих ног, там может быть HIGH|LOW. от HIGH планшету через какое-то время сносит крышу. починилось установкой релюшки с управлением землей. теперь все отлично.
  • немного пофиксил скрипт автозагрузки, теперь пофиг что option монопольно зохавывает порт gps, и можно невозбранно менять ему скорость. 
  • скачущие ноды устройств так и не победил. еще раз лучей поноса, тем кто выкинул udev из ондроеда. на демовидео в самом начале видно в чем проблема-оболочка зохавывает ноду, выключаем асс-отрубается хаб и вся периферия. ноду держит же оболочка. включаем питание-ядро видит, что текущая нода ордуины занята и присваивает ей следующую оболочка же об этом ничего не знает, и начинает орать что не видит ордуину. нужно лесть в настройки и руками тыкать ее в новое устройство. до следующего запуска двигателя. писал автору оболочки, чтоб он прикрутил мониторинг саспенда у ондроеда, и отпускал устройство при этом. но автор-приверженец хардкора-холодного старта, он категорически не приемлет саспенд. пришла идея делать симлинк на ноду, но как это автоматизировать и чем мониторить хз. в общем печалька, основная фишка проекта работает не правильно.
  • так и не приделал конденсатор на хаб, чтоб не ресетился при кручении стартером
 ниже картиночки, что сделал с платой управления:
добавил еще 2 хвоста usb для прошивки ордуины и внешнего хаба в бардачок:
ну и демка. проехал 30км, вполне удобно. без енкодера конечно не привычно, но жить можно

из косяков:
  • повесить таки конденсатор на хаб
  • что-то придумать с нодами
  • заказать таки декоративную рамку на морду


среда, 7 августа 2013 г.

Вкорячивание ондроедового планшета в автомобиль. Первая примерка.

Таки восстановил нанд. ремапнулось 2 блока. Наверняка стоит ожидать еще.
Накатил цм10, из нерабочего-вафля(некогда было разбираться, но фикс знаю). не успел поставить оболочку управления. Но то что уже работает-впечатляет:
как-то так оно сидит в своей дырке(ужи крепления пока со старой бошки снимать не стал)
А это уже с рамкой. видно, на сколько плоншет меньше 2-дин дырки по ширине. по высоте-ровно. Скрутка из проводов-кнопка питания, для нее будет своя дырка в рамке, под крутилкой воздушной заслонки.
внешний gps bu-353. дает погрешность(с нативной либой. Надо попробовать через костыль usbgps4droid, с ним такой погрешности нет)
все что торчит из плоншета-джек 3.5 для звука.
ну и все что торчит из коробки: штатная колодка, антенна радио и антенна gps. еще добавится шнурок usb в бардачок для внешнего хаба или для модема\флэшки и usb шнурок программирования ордуины.
Ну и на последок небольшое демо-видео. Повторюсь, оболочка еще не стоит, цм голый, звук можно менять только из настроек(искаропки нет виджетов), и только его уровень.

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

(вообще-то автор делал управление жопогреями, но я не стал с этим заморачиваться, показывает температуру с 2 датчиков и хорошо.). Буду мониторить температуру ордуиной, и при сильном разогреве вырубать усилитель(на мамке головы кстати где-то есть терморезистор, нужно поискать и заюзать).
Так же нужно допилить wifi, иначе с плоншетом связь только через uart(отг-то у меня сожжен).
Еще нужно повесить конденсатор на питание хаба-при старте двигателя асс таки пропадает, зато плоншет, запитанный от шины mem, искаропки, отлично переносит перепады напряжения.
Так же сам плоншет дает небольшой фон по звуку(если подключить другой источник-в паузах тишина, все идеально. Скорее всего фон идет из-за того что я выпаял фильтры из обвязки кодека, с ними шел коротыш и все ломалось). нужно прикрутить ba3121 из заначки.
Автоматическое усыпление-просыпание от асс у плоншета тоже пока отключено(надо подобрать время в ордуине, чтоб не передерживать), так что пока только ручками через кнопку





вторник, 6 августа 2013 г.

Вкорячивание ондроедового планшета в автомобиль. Реализация.

Ну вот, потренеровался я на макетке с тинси, прозвонил шлейфы мамки, составил табличку, какое напряжение на каком пине при положении асс и mem. Вычленил пины i2c и землю.
Еще и таки победил мукс, посыпаю себе голову пеплом и лучей поноса тем, кто писал датащит: нигде не сказано, что чтобы с мукса пошел звук, нужно послать 0 в байт soft mute и дальше уже ставить нужную громкость. Вкупе с тем что я таки отследил, в какую точку на мамке нужно подать высокий уровень, чтоб мамка включилась и пошло напряжение на всю периферию(тот же мукс, приемник, усилитель) стало возможно оторвать таки морду управления и на ее место прилепить плоншет.
Параллельно я освоил сборку цм для киндола, чтоб прикрутить к нему поддержку 3g свистков и карееса.
Упоротые мантайнеры никак не хотели включать поддержку всей этой мишуры в девайстри, а всего-то добавить несколько строк в конфиг. Максимум чего удалось от них добиться-включить поддержку карееса. но в итоге он так и не заработал, потому что в 4.2 гугол поломал весь бт-стек и все usb-bt донглы отвалились.
Но внезапно выяснилось, что разарботчики киндола пошли своим кривым путем. Они поломали usb-host, точнее криво его реализовали: взяли, и ногу gpio, которая у всех нормальных людей отвечает за включение-выключение порта при саспенде, завели ее на подсветку экрана. А свободных ног наружу из под проца не вывели. И тут я конкретно соснул: на отг висит хаб, все работает. уходим в саспенд, хаб отваливается. просыпаемся-получаем в 8 случаях из 10 ошибки на порту. передергиваем хвост-все чинится. Это никак не вяжется с моей концепцией-плоншет запитан постоянно от +12 через dc-dc, а вся периферия и голова включаются от асс. Киндол ужел жене, к этому моменту ребенок уже начал понимать мультики.

На замену ему пришел icoo D70 pro2. размерами он чуть меньше киндола, в рамку торпедя вписывается отлично. Правда на rk3066, о цм можно забыть. питание от usb, основной плюс-на мамке есть полноценный хост, на котором висит вафля. сдуваем модуль, припаиваем usb-шнурок и имеем полноценный хост, а не отг-кастратку.
Питается плоншет от отдельного dc-dc, подключенного взамен батарейки(то еще говно эта батарея, деградирует на глазах).

Но внезапно, во время очередного эксперимента с тинси я случайно оторвал массу от ее dc-dc питальника и на нее пришло +12 вместо максимальных +5. Аминь тинси, прощай, с тобой было хорошо. Пришлось раскошелиться на ардуину. Нашел в оффлайне arduino nano v3. Она хоть и не умеет прикидываться usb-hid девайсом, но зато имеет уарт на ftdi и dc-dc искаропки, так что можно смело питать ее от +12.
За сим с макетки был выкинут костыль в виде уарта от мобилки и тинси, а на их место водружена панелька от какого-то биоса, в которой прижилась ордуина. покруг россыпь из колодок и разъемов:



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

Ну а дальше я таки нарисовал схему, как все должно соединяться и работать(что надо было сделать в первую очередь):
в принципе, все просто и понятно.
Так же сделал замеры потребления тока в разных режимах работы. После них состоялась такая концепция:
ордуина без встроенного уарта потребляет 32ма (это без прикручивания прерываний и режима сна, в котором потребление падает до 2ма), плоншет в саспенде 80. это отлично, они у нас запитаны постоянно от +12. Ардуина мониторит наличие сигнала асс и включает борду магнитолы в нужный момент. Она же саспендит-пробуждает планшет от евента асс,  без всяких костылей в виде таскеров. Дополнительно наружу выведена кнопка питания плоншета, на всякий случай.
 Кстати, вмешательства в плату магнитолы минимальны-всего 2 внешних провода припаяны, остальное все идет через колодку-шлейф от привода сидюка. Никаких вмешательств в проводку авто. Чего и требовалось.
Синий- питание плоншета
Белый- евент асс
Красный- питание ордуины
Черный- включение мамки

Еще есть проблемка с инитом микшера магнитолы-каждый раз при его старте выставляются дефолтные уровни звука, нужно что-то придумать, чтоб запоминались последние состояния регистров. возможно писать текущее состояние в переменные, и ориентируясь на состояние асс брать или их, или дефолт? можно прикрутить eeprom по и2ц. время покажет.

Так же возможно появится бт-громкая всязь, к сожалению только на железном уровне(ответить на звонок-положить трубку), но это нужно пилить оболочку. Автору морды реквест уже сделал.

 Ну и пошло упаковывание всех плат в коробку, укорочение проводов и прикручивание плоншета к коробке:




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

Питальник плоншета:
Все в сборе:



 С железом покончено. Началось допиливание ондроеда на предмет поддержки внешнего gps, вафли, модема. в стоковую прошивку засунул недостающие модули ядра, нужные скрипты автозапуска. все завелось.
Но внезапно посыпалась нанд у плоншета(довольно распространенное явление). очередной плоншет идет в утиль. пичалька...
кстати, скетч для ордуины и скрипты и модули для ондроеда лежат у меня в гите