Всех приветствую, несколько людей попросили подробно описать как заставить соединяться
Программу управления MPC-800 со своим Бортовым компьютером Multitronics MPC-800 —
Multitronics на ГУ Allwinner T3 Quad Core 1.2GHz (K2001).
Надеюсь, история кому-нибудь будет интересна.
Приобрел Lancer X дорестайл, он имел дисковую штатную магнитолу с FM, даже AUX разъема
нет.
Решил, что надо устанавливать ГУ на Android. А к нему, думаю и ELM 327 адаптер прикуплю,
который будет присоединяться по Bluetooth к ГУ.
Что я хотел получить от OBDII сканера:
— при загорании сигнальной лампы системы управления двигателем, расшифровать/сбросить
ошибки
— иметь возможность установки пробега до прохождения ТО, напоминания о необходимости
проведения технического обслуживания (штатный информационный дисплей в приборной
панели позволяет установить пробег/временной интервал со значениями которые мне
подходят)
— отображать температуру ОЖ цифрой поверх всех программ (штатный информационный
дисплей в приборной панели отображает температуру нелепой полоской, а пиксельным
прецизионным глазомером я не обладаю)

Итак список требований сформирован, осталось разобраться с помощью чего его можно
реализовать.
Первым делом я приступил к подробному изучению возможностей приложений для Android
которые работают с ELM 327 адаптерами. С пунктом №1 справляются все приложения, с
пунктом №2 не одно, с пунктом №3 только Torque с плагином Torque Dashboard Plugin.
Колхозить отдельный полноценный маршрутный компьютер совершенно не хотелось.
Начинаю гуглить. И нахожу 2 варианта с требуемым функционалом:
— Автомобильный бортовой компьютер Орион БК-100 (от рассмотрения этого БК отказался сразу, последнее обновление клиента для Android в 2013 году и имеет статус Альфа-версии, в официальной инструкции схемы выполнены карандашом "от руки", а затем отсканированы и добавлены в документ.)
— Бортовой компьютер Multitronics MPC-800 — Multitronics (герой этой статьи, всем хорош, обновления ПО МК и программы управления регулярны)
Итак выбор сделан.
Заказываю с aliexpress.com ГУ (платформа Allwinner T3 Quad Core 1.2GHz (модель K2001M)), интегрирую его, взамен штатного и начинаю разбираться с особенностями прошивки из коробки. Понимаю что как обычно, нужен root-доступ и Xposed. Нахожу прошивку K2001(M) MOD 2018 Android 6 | 1024x600 от ув.jp2008 и устанавливаю, затем Xposed. Головное устройство пригодно к использованию.
Заказываю Multitronics MPC-800, устанавливаю, подключаю к ODBII, устанавливаю на смартфон приложение Multitronics, сопрягаю по Bluetooth и настраиваю МК. На этом этапе особых сложностей не возникло, система работает.
Удаляю сопряжение MPC-800 с Android смартфоном и перехожу к сопряжению MPC-800 с ГУ. И тут не всё так просто. Мне повезло, что Bluetooth имя МК из коробки было ODBMultitronics, штатная утилита ГУ для спаривания OBDII адаптеров под названием "OBDConnect" выполняет фильтрацию по имени Bluetooth, и требует чтобы оно содержало в начале 3 буквы "OBD" иначе не будет распознано как поддерживающее профиль SPP (Serial Port Profile). На сколько я знаю, прежде MPC-800 имел Bluetooth имя из коробки Dual-SPP, и зная об этой проблеме, Multitronics разработали приложение для Android которое позволяет изменять имя на OBDMultitronics либо OBDII, а также на ранних МК еще требовалась подпайка перемычки. На моём МК BT-имя можно менять без разборки и пайки.
И так, сопряжение между ГУ и МК создано. Устанавливаю приложение Multitronics, иду в его Настройки → Настройки Bluetooth → Приложению требуется включить Bluetooth на устройстве. → Разрешить → Включение Bluetooth…
На этом этапе что-то в жизни пошло не так… Дальше меня ждали 2 месяца проб и ошибок.
Краткая выдержка важных фактов:
— Bluetooth на ГУ включен всегда, дополнительно включить его нельзя
— При уходе в сон, тасккилер закрывает все пользовательские приложения и службы работающие в фоне, однако существует возможность запретить выгрузку определенных приложений, настраивается в конфигурационном файле
— При использовании ГУ как Handsfree, во время звонка, связь по SPP разрывается
Начинаем борьбу. Первое что я понял, приложение Multitronics пытается получить состояние Bluetooth-модуля, включен он или нет. Но упоротая прошивка и драйвер на BC8, не отвечают на стандартный запрос приложения. Что же, я решил попробовать выполнить системный вызов на включение Bluetooth-адаптера
service call bluetooth_manager 6
в надежде, что система ответит Broadcast оповещением что Bluetooth-адаптер включен, для всех слушателей, и это сработало приложение Multitronics приняло это сообщение и чудо случилось, появился заветный MassgeBox от Multitronics "Подключено к OBDII", связь ГУ и МК установлена, параметры отображаются.
Дальше я стал думать, как бы это автоматизировать. Первая проблема, это уход ГУ в сон, как я писал ранее, тасккилер закрывает все пользовательские приложения и службы, но приложение Multitronics "выживает" но при выходе из сна, зависает и его требуется перезапускать.
Имеем уже три системные команды:
service call bluetooth_manager 6 — "включает" Bluetooth
am startservice com.magictronics/.AlertService_bind — Запуск службы Multitronics, ведь мне нужна фоновая работа, а не постоянное открытие и сворачивание основного окна программы
am force-stop com.magictronics — Принудительная остановка, зависшего приложения
Начал играться с AutomateIT, и прочими автоматизаторами, но это монструозные костыли, которые отбирают ресурсы у и без того не самой производительной платформы ГУ.
Нужно было красивое решение, вспоминаю что-то про init.d
Беру в руки ман по Bash shell скриптингу и начинаю писать/отлаживать скрипт. Выясняю, что если используется SuperSU то, для того что бы работал init.d требуется всего лишь создать такой путь /system/su.d и в папку su.d копировать свой скрипт предварительно разрешив его исполнение, я выставляю права 777 на файл скрипта, линуксоиды меня не поймут)
Следующая проблема в том, что использовать в качестве триггера для условия if в цикле while. То есть, что должно произойти когда ГУ выходит из сна, решение было найдено не сразу. Вспоминаю что автор мода прошивки jp2008 добавил приложение Автозапуск, которое позволяет запускать выбранные приложения после выхода из сна, но только Activity, жаль что службы не позволяет запускать. Годится. Собираю простое "Hello World" приложение com.example.myapplication и отключаю в нём Activity, тоесть после его запуска не произойдет ничего, но приложение запуститься. Устанавливаю свой самописный пакет с названием "1" и добавляю его в Автозапуск. Кто скажет что костыль, придумайте лучше))
Что же дальше? А дальше пытаюсь использовать утилиту pidof — программа в операционной системе Linux, находящая идентификатор процесса (PID) работающего процесса(ов) по имени программы и выводящая его на стандартный вывод. Логика работы следующая, если com.example.myapplication запущен, то pidof на вывод выведет его PID. То есть com.example.myapplication запущен, на выводе что-то есть, не запущен вывод пустой. Используем условие с синтаксисом if [[ $a ]]
И это работало отлично, когда я тестировал скрипт на смартфоне. Но в упоротой прошивки ГУ pidof оказалась сломанной, на выводе был мусор, не зависимо от аргумента. Ничего удивительного.
Ставим утилиту pidof из BusyBox.
А теперь господа собственно скрипт:
#!/system/bin/sh
sleep 50;
while
do
a=`su -c /system/xbin/pidof com.example.myapplication`
if [[ $a ]];
then
su -c am force-stop com.example.myapplication;
su -c am force-stop com.magictronics;
else
sleep 5;
su -c am startservice com.magictronics/.AlertService_bind;
su -c service call bluetooth_manager 6;
fi
done
А теперь по шагам, что же нужно сделать что MPC-800 подключить к ГУ на платформе Allwinner T3 Quad Core 1.2GHz (модель K2001M):
1. Установить прошивку K2001(M) MOD 2018 Android 6 | 1024x600 от ув.jp2008
2. Установить приложение Multitronics
3. Выполнить сопряжение ГУ и бортового компьютера по Bluetooth
4. Установить приложение пустышку под названием "1"
5. Добавить в Автозапуск приложение под названием "1"
6. Установить BusyBox, из него нужен только pidof
7. Создать путь /system/su.d (Root Explorer в помощь)
8. Скачать файл скрипта mpc.sh и скопировать его в /system/su.d
9. Выставить разрешение на файл 0777, rwxrwxrwx
10. Перезагрузить ГУ.

Всем спасибо)
Комментарии 14
Приветствую. У меня такое же ГУ только без K2001, не могу подключиться к мрс-800. Устройство находит блютуз (имя OBDll), но не сопрягается. Прошивку менял на свежую, ни че не получается. Подскажите че надо сделать?
1 год переписывался с тех поддержкой мультика, в итоге нужно прописывать мак адресс и тогда начинает подключаться. Но что бы подключалось автоматически я так и не добился от них. Они просто перестали отвечать.
А я так и не победил, в итоге купил другое ГУ)
Petroncell
1 год переписывался с тех поддержкой мультика, в итоге нужно прописывать мак адресс и тогда начинает подключаться. Но что бы подключалось автоматически я так и не добился от них. Они просто перестали отвечать.
Автоматическое подключение после выхода ГУ из сна сделать можно. (Я говорю про платформу K2001 на Android 7) Информация в статье не особо актуальна на данный момент. Хотя shell-скриптинг всё ещё требуется)
Artem-V
Приветствую. У меня такое же ГУ только без K2001, не могу подключиться к мрс-800. Устройство находит блютуз (имя OBDll), но не сопрягается. Прошивку менял на свежую, ни че не получается. Подскажите че надо сделать?
Вот что они рекомендуют:
1. Надо определить MAC-адрес девайса, для этого можно использовать
программу Bluetooth SPP Pro с Маркета либо открыть корпус прибора, на
модуле будет наклейка с указанием адреса.
2. На ГУ сделать сопряжение штатными средствами.
К сожалению, ГУ как правило не передает программе о реальном состоянии
bluetooth, поэтому придется вручную указать программе mac-адрес
устройства, с которым она должна работать.
3. Установить приложенную программу. После установки зайти в "Настройки
— Настройки программы — Автозапуск приложения" и включить его. После
этого выйти на главный экран программы, нажать кнопку Меню и выбрать
"Выход" (это нужно для остановки сервиса программы).
4. Запустить RootExplorer и перейти в папку
/data/data/com.magictronics/shader_prefs/ . Там будет файл bt_file.xml,
длительно нажать на нем пальцем и выбрать в меню "Открыть в текстовом
редакторе". Перед конечной строкой "</map>" надо добавить строку
"<string name="BT_MAC">8C:DE:52:92:FD:D4</string>" c mac-адресом вашего
девайса. Скрин приложил.
Нажать кнопку Меню и выбрать "Сохранить и выйти".
5. В папке появится файл bt_file.xml.bak — его обязательно надо удалить.
6. После этого можно запустить программу Multitronics — одновременно с
ее запуском стартует сервис, иконка станет цветной и должна появиться
связь с девайсом.
7. Настройте девайс под машину (протокол и т.д.).
А зачем было так заморачиваться, если можно ьыло купить тот де мультроник уже с экраном, установитт в авто, подключить и все. Нткаких танцев с бубном в дальнейшей эксплуатации слегка подкорреткирывать показатели для более точной и инфы.
А зачем писать комментарий, если можно не писать?
Них.я не понял, но очень интересно. Особенно в конце где (скрипты)
Доброго времени суток! Подскажи пожалуйста, без перемычки в разъём ОБД как себя ведёт БК? У меня митсубиши Грандис, вот думаю эту перемычку между 1 и 4 контактом надо ставить.
Это необходимо сделать для того что-бы перевести ЭБУ автомобиля в режим диагностики.
А без перемычки пробовал подключать?
Попробовал, работает, для CAN диагоностики перемычка не требуется, спасибо
specx2
Это необходимо сделать для того что-бы перевести ЭБУ автомобиля в режим диагностики.
Дело в том, что БК диагностирует без перемычки, единственное, что не показывает, так это показания топливной коррекции
Мне проще послать мультик нахрен, чем так плясать.Они уже год обещают сделать с usb подключением, а воз и ныне там.Им в первую очередь надо было думать о сопряжении бк с гу. А они сделали подключение через протокол spp, который поддерживают минимум магнитол.Я вообще знаю только одну марку-редповер, которая далеко не дёшева.Получается, что бы я мог пользоваться их бк, я должен купить голову за тридцатник.Слишком дорогой получается мультитроникс.