Андрей Смирнов
Время чтения: ~15 мин.
Просмотров: 1

Программы для диагностики ОБД 2 на Андроид

obd2-adaptery.jpg

Обзор OBD 2 ELM327 Bluetooth адаптеров для автодиагностики

Илья Васильев
Обзоры
5 комментариев
08 февраля 2018

Содержание:

Обзор Scan Tool Pro 2019

Демонстрация работы Scan Tool Pro

Тест и отзыв на SCAN TOOL PRO на автопортале DRIVE2.RU:Drive2.png

IamZevs Я езжу на Ford Focus III Wagon г. Москва

iamzevs.jpgScan Tool Pro 2019 на чипе PIC18F25K80 — Стоит ли покупать? Рассуждаю в блоге:

Написал про то как тестировал совместимость с некоторыми авто. Появилась возможность проверить работоспособность автосканера на 10 марках авто.

Покупил этот сканер ТУТ

В первую очередь автосканер просто проверялся на возможность подключения блока управления к адаптеру. Все марки машин из моего списка были..

7.Дополнительные рекомендации и советы

  1. Для праворульных автомобилей есть некоторые особенности. Дело в том, что у некоторых из них используется нестандартный протокол передачи данных. В новой прошивке 2019 года такая особенность учтена, однако это касается не всех моделей транспортных средств. Если подключенный адаптер OBD II elm327 «не видит» датчиков, то вариантов два:
  2. Проблема лечится дополнительной строкой в настройках программы, инициирующей используемых протокол.
  3. В большинстве диагностических программ есть вариант поиска устройств в ручном режиме (они различны). Этим средством придётся воспользоваться для корректного отображения искомых параметров.
  4. Если Вы не обнаружили свою машину в списке поддерживаемых — это не значит, что устройство не будет с ней работать. Протоколов передачи данных, конфигураций коммутирования сигналов не так много. Методом ручного поиска настраивается корректное отображение всех приборов и отображается полный набор информации.
  5. Это же касается и стирания ошибок: если ошибка не исчезла — это значит, что система передаёт сигнал по не поддерживаемому протоколу. В таком случае настраиваем корректную передачу команды, для этого потребуется скачать PID файл для вашего авто, но об этом в следующей статье!
АВТОР МАТЕРИАЛА:

Илья ВасильевАвтор сайта / Диагност

Автор всех статей на сайте. 7-ми летний опыт в автодиагностике и ремонте авто любой сложности и любых марок. Увлекаюсь программированием, чип-тюнингом.

Публикую статьи с обзорами диагностического оборудования, делюсь опытом, программами и инструкциями.

Контакты для связи:

Почта: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Бортожурнал на DRIVE2.RU: Перейти

Канал на Яндекс.Дзен: Перейти

Группа ВКонтакте: Перейти

ПОДДЕРЖИТЕ НАШ САЙТ: Задать вопрос автору Другие статьи на эту темуДобавить страницу в закладкиПОЛЕЗНЫЕ СТАТЬИ И ОБЗОРЫ НА ЭТУ ТЕМУ:Совместимость ELM327 с различными марками авто

56316 4.71 05-05-2018 Илья Васильев 49 комментариев

Лучшие автосканеры для диагностики авто любой марки

13919 5.00 08-07-2019 Илья Васильев 4 комментариев

Диагностический сканер Delphi DS150E

8525 4.42 02-01-2019 Илья Васильев 8 комментариев

Автосканер ELM 327 Mini Bluetooth — всё ещё популярен!

7954 5.00 16-07-2018 Илья Васильев Комментариев нет

Какие бывают адаптеры ELM327

6795 4.50 25-01-2019 Илья Васильев 5 комментариев

Виды диагностических сканеров и преимущества мультисканеров

6461 4.81 26-07-2019 Илья Васильев Комментариев нет

ELM327 автосканеры для диагностики авто

6270 4.91 19-05-2018 Илья Васильев 1 комментариев

Адаптеры для автодиагностики — с чем их едят?

5976 5.00 06-10-2018 Илья Васильев 2 комментариев

Launch x431 PRO — автосканер для профессионалов

5167 4.64 08-12-2018 Илья Васильев 6 комментариев

Всё о микроконтроллере PIC18F25K80 для ELM327 адаптеров

4940 4.50 09-01-2019 Илья Васильев 2 комментариев

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

Выбор подключения

Изначально необходимо пояснить что для подключения к авто будет использоваться ELM327 адаптер. ELM327 – это микросхема, которая позволяет преобразовать протоколы, используемые в диагностических шинах автомобилей в протокол RS232, которым мы и будем передавать данные. За счет того что передача данных по протоколу RS232 происходит последовательно возникает первая проблема – скорости передачи данных, которую мы постараемся обойти в одном из следующих пунктов. Существует несколько вариаций адаптера ELM327, которые классифицируются по способу передачи данных – Bluetooth, WIFI, USB. Исходя из того что целью разработки является мобильное устройство под операционной системой Android можно подобрать две наиболее подходящие версии ELM327, такие как Bluetooth и WIFI. Так как способ получения и обработки данных один, а отличаются они всего лишь вариантами подключения к адаптеру, то можно выбрать всего один, организовать при помощи него диалог, а после добавить остальные варианты подключения.

ELM327 1.5 vs ELM327 2.1

Одной из первых проблем, с которыми можно столкнуться стала проблема выбора непосредственно адаптера, в нашем случае Bluetooth. Оказывается если вам необходимо поддерживать все (по крайней мере большинство) автомобилей необходимо выбирать версию v1.5 вместо v2.1, что на самом то деле необходимо несколько раз уточнить при покупке адаптера, потому как продавцы пытаются выдать версию адаптера не за ту, которая есть на самом деле, т.к. они особо ничем не отличаются. На деле же в версии v2.1 отсутствует поддержка протоколов J1850 PWM и J1850 VPW, что говорит о том, что у вас не получится подключиться к автомобилям, которые используют эти протоколы.

Подключение

Подключение к адаптеру происходит в несколько этапов:

  • Подключение к адаптеру (Bluetooth, WIFI)
  • Отправка инициализационных команд (инициализационной строки)

Если с организацией подключения все понятно. Принцип работы такой же как и у любого Bluetooth/WIFI чата. То для того чтоб понять как отправлять инициализационную строку, необходимо изучить какие команды существуют, а также какие функции они выполняют.AT Z [reset all] Сброс настроек адаптера до заводского состояния.AT L1-0 Включить/Отключить символы перевода строки.AT E1-0 Echo on – offAT H1-0 Headers on – offAT AT0-1-2 Adaptive Timing Off — adaptive Timing Auto1 — adaptive Timing Auto2AT ST FF Установить таймаут на максимум. AT D [set all to Default] Сброс настроек в исходное, настроенное пользователем состояние.AT DP [Describe the current Protocol] Сканер способен самостоятельно определять протокол автомобиля, к которому он подключен. AT IB10 [set the ISO Baud rate to 10400] Команда устанавливает скорость обмена данных для ISO 9141-2 и ISO 14230-4 10400AT IB96 [ set the ISO Baud rate to 9600] Команда устанавливает скорость обмена данных для ISO 9141-2 и ISO 14230-4 9600 для протоколов 3,4,5.AT SP h [ Set Protocol h] Команда выбора протокола h, где h: 0 – Automatic; 1 — SAE J1850 PWM (41.6 Kbaud); 2 — SAE J1850 VPW (10.4 Kbaud); 3 — ISO 9141-2 (5 baud init, 10.4 Kbaud); 4 — ISO 14230-4 KWP (5 baud init, 10.4 Kbaud); 5 — ISO 14230-4 KWP (fast init, 10.4 Kbaud); 6 — ISO 15765-4 CAN (11 bit ID, 500 Kbaud); 7 — ISO 15765-4 CAN (29 bit ID, 500 Kbaud); 8 — ISO 15765-4 CAN (11 bit ID, 250 Kbaud); 9 — ISO 15765-4 CAN (29 bit ID, 250 Kbaud);AT SP Ah [Set Protocol h with Auto] Команда устанавливает по умолчанию протокол h, если подключение по протоколу h не удалось, тогда адаптер начинает автоматический подбор протокола. Исходя из описанных выше команд, формируем инициализационную строку.

initializeCommands         = Arrays.asList("ATZ", "ATL0", "ATE1", "ATH1", "ATAT1", "ATSTFF", "ATDP", "ATSP0"); 

Желательно давать возможность пользователю сменять инициализационные команды, потому как для того чтобы подобрать «ключ» к некоторым авто необходимо выбрать более подходящие настройки адаптера. В нашем же случае используются настройки, которые походят для большинства стандартных протоколов. Так же желательно обратить внимание на команду APSP0, таким образом мы устанавливаем по умолчанию автоматический подбор протокола, это может занять некоторое время. Соответственно если пользователь знает какой у его авто протокол, то используя возможность смены протокола подключения он может поменять 0 на номер его протокола.

Считывание диагностических данных

Для считывания диагностических данных используются специальные команды PID’s. PID (Parameter id’s — Бортовые диагностические идентификаторы параметров) – коды, которые используются для запроса показателей определенных датчиков автомобиля. Основные пиды можно найти в Википедии, там полный набор основных команд, которые должны поддерживать все автомобили. Так же есть наборы команд для определенных марок и типов автомобилей, эти наборы предоставляются за отдельную плату. В нашем случае приложение заточено на базовую диагностику автомобилей соответственно мы используем базовый набор команд. Также есть возможность получать текущие данные от автомобиля при этом команда получения данных от авто будет иметь вначале 01, указывая на то что мы хотим получить real data. Если же мы хотим получить сохраненные данные автомобиля, то вначале команды необходимо указать 02. Например, команда для получения текущей скорости автомобиля – 010D, а для получения сохраненной скорости – 020D. Если внимательно посмотреть на то количество команд, которое предоставляется открытыми ресурсами, то можно как раз и заметить ту проблему, о которой я писал в самом начале, а именно проблема скорости ответа адаптера. Так как отправка и получение команд идет последовательно, то для того чтобы получить показания датчика на текущий момент времени необходимо дождаться ответа на все предыдущие команды. Соответственно если запрашивать на получение все команды, то большая вероятность того что обновление реальных данных будет происходить очень медленно. Но и эту проблему можно решить, если воспользоваться командами, которые отобразят только те команды, что существуют в автомобиле. Например: 0100 – PIDs supported [01 — 20] 0120 – PIDs supported [21 — 40] 0140 – PIDs supported [41 — 60] 0160 – PIDs supported [61 — 80] 0180 – PIDs supported [81 – A0] 01A0 – PIDs supported [A1 — C0] Я продемонстрирую как определить какие датчики присутствуют в автомобиле при помощи одного из пидов. Например:

  • 0100 \ запрос

Переводим ответ от автомобиля в двоичную систему счисления

BB1E3211(16) > 10111011000111100011001000010001(2)

Используя следующую табличку можем определить какие пиды поддерживаются нашим автомобилем, начиная от 01 до 20: Исходя из получившихся данных можем определить, что наш автомобиль поддерживает следующие пиды:

01, 03, 04, 05, 07, 08, 0C, 0D, 0E, 0F, 13, 14, 17, 1C, 20

Теперь вместо отправки всех 32 команд и ожидания ответа на них, несмотря на то, что некоторые могут отсутствовать, мы будем использовать всего 15 команд. Но и это не предел так называемой оптимизации. Для того чтобы данные обновлялись еще быстрее советую запрашивать только данные о тех датчиках, которые отображаются на экране. Хотя это ограничивает некоторый функционал приложения. Например, запись истории.

Считывание и расшифровка ошибок автомобиля

Ошибки автомобиля тоже могут быть различными и для них тоже существуют отдельные команды. Например:

  • 03 – Для отображения сохраненных кодов ошибок
  • 0A – Для отображения постоянных кодов ошибок.

Так как и с остальными командами ошибки автомобиля приходят в закодированном виде, соответственно, как и в остальных командах их нужно раскодировать чтоб получить необходимую информацию. Приведу пример работы декодирования ошибки. Код:

private final static char[] dtcLetters = {'P', 'C', 'B', 'U'}; private final static char[] hexArray = "0123456789ABCDEF".toCharArray();   private void performCalculations(String fault) {     final String result = fault;     String workingData = "";     int startIndex = 0;     troubleCodesArray.clear();      try {         if (result.contains("43")) {             workingData = result.replaceAll("^43|[rn]43|[rn]", "");         } else if (result.contains("47")) {             workingData = result.replaceAll("^47|[rn]47|[rn]", "");         }         for(int begin=startIndex; begin < workingData.length(); begin += 4) {             String dtc = "";             byte b1 =      Utility.hexStringToByteArray(workingData.charAt(begin));             int ch1 = ((b1 & 0xC0) >> 6);             int ch2 = ((b1 & 0x30) >> 4);             dtc += dtcLetters[ch1];             dtc += hexArray[ch2];             dtc += workingData.substring(begin + 1, begin + 4);              if (dtc.equals("P0000")) {                 continue;             }             troubleCodesArray.add(dtc);         }     } catch (Exception e) {         Log.e(TAG, "Error: " + e.getMessage());     } } 

А теперь пояснение. Исходя из полученного ответа мы можем получить код ошибки, для этого декодируем полученное сообщение используя следующие таблички. Первый символ: Второй символ: 3, 4, 5 символы формируются по этой таблице: Исходя из этого можем попробовать разобрать следующий ответ 0001000000111110 Код ошибки: P103E

Эпилог

На данном этапе мы разобрались в том, каким образом организовать диалог с адаптером, посылать ему команды, получать и расшифровывать его ответы. Это большая часть работы, если считать то, сколько времени уходит на изучение материала, но в то же время довольно таки интересная. За пределами этой статьи осталось множество проблем связанных с визуальным интерфейсом, а также множество дополнительных функций, таких как добавление новых пидов из файла, стандартный и расширенный способ подключения к адаптеру и построения графиков. Матвиенко Александр, Хоссейн Фахр.

Что такое ELM327

Обозначение ELM327 хорошо знакомо многим автовладельцам. Это сканер или адаптер, который подключается к бортовому компьютеру машины через разъём OBD-II. Полезный прибор используется для диагностики неисправностей, считывания показателей работы и обнуления ошибок ЭБУ (электронного блока управления).

03_1556625145-630x315.jpg
Сканер ELM327 / aliexpress.com

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

Что делает сканер ELM327

Функциональность ELM327 довольно обширна. Но во многом зависит от поддержки тех или иных возможностей конкретной версией адаптера, ЭБУ самой машины, а также ПО, которое используется для диагностики.

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

В некоторых авто с помощью адаптера ELM327 можно разблокировать и перенастроить автоматическое запирание замков и складывание зеркал, отзывчивость педали газа, данные приборной панели.

Как выбрать ELM327

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

1. Тип подключения

Существует несколько версий ELM327 с разными интерфейсами подключения. Самыми распространёнными являются адаптеры с Bluetooth, Wi-Fi и USB. Отличаются они не только возможностью соединения, но и совместимостью со смартфонами и компьютерами. В остальном функции идентичны.

  • Bluetooth — самые дешёвые сканеры, которые работают только с Android-смартфонами.
  • Wi-Fi — более дорогие версии, совместимые как со смартфонами на Android и iOS, так и с компьютерами.
  • USB — чуть дешевле сканеров с Wi-Fi. Работают только с компьютерами, зато отличаются надёжностью связи.

2. Версия прошивки

ПО адаптеров постоянно обновляется. На оригинальных ELM327 актуальная версия уже 2.2. Китайские клоны продаются с прошивками 1.5 и 2.1. Как ни странно, более свежий вариант хуже.

Попавший к китайцам чип был с микропрограммой версии 1.5. Все клоны с такой прошивкой имеют ПО оригинального ELM327. Позже появились копии сканеров версии 2.1. Последняя является лишь изменённой прошивкой 1.5, причём не в лучшую сторону — для удешевления производства китайцы убрали многие протоколы связи. Кроме того, есть обычные адаптеры с версией 1.5, которые продаются под видом 2.1.

По факту сейчас в продаже доступны три варианта клонов ELM327:

  • ELM327 1.5 — старая, но оригинальная прошивка;
  • ELM327 2.1 — урезанная оригинальная прошивка под видом более новой;
  • ELM327 2.1 — оригинальная прошивка под видом новой, но без изменений.

Очевидно, что стоит покупать адаптер именно с оригинальной прошивкой версии 1.5. Например, вот один из проверенных продавцов, у которого можно купить недорогую Bluetooth-версию ELM327.

3. Тип диагностического разъёма авто

У некоторых машин, особенно до 2000 года и отечественных, диагностический разъём имеет колодки других стандартов. Подключить к ним сканер напрямую не выйдет. Для таких случаев используют специальные переходники: с одной стороны у них совместимый разъём для конкретной модели авто, а с другой — стандартный OBD-II.

01_1556625184-630x315.jpg
Слева переходник VAG 2×2 — OBD-II (Volkswagen, Audi до 1997 г.), справа — GM12 — OBD-II (Daewoo, ВАЗ) / aliexpress.com

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

Как проверить сканер ELM327

После покупки адаптера ELM327 проверьте, что он действительно версии 1.5. При заказе с AliExpress уточните, установлен ли в нём чип PIC18F25K80 и подчеркните, что будете диагностировать сканер специальным ПО и откроете спор в случае проблем.

1. Внешний осмотр

Визуально определить качественный адаптер не так уж просто. Непрозрачный или тёмный пластиковый корпус делает невозможным осмотр компонентов. Их миниатюрность и трудночитаемая маркировка ещё больше усложняют дело.

02_1556625221-630x315.jpg
Чип PIC18F25K80 на плате сканера / aliexpress.com

Если аккуратно вскрыть корпус, можно взглянуть на платы ELM327. Внимательно осмотрите все детали и поищите процессор с кодом PIC18F25K80. Для прошивки 1.5 нужен именно такой чип, поэтому его наличие будет определённой гарантией качества.

2. Приложение-тестер

YouTube-канал Eugene Barsuk

Специальное приложение тестирует совместимость с протоколами диагностических шин и показывает реальную версию сканера. Для проверки сделайте следующее.

  1. Вставьте адаптер ELM327 в диагностический разъём авто и включите зажигание.
  2. Откройте настройки Bluetooth или Wi-Fi на смартфоне и выполните сопряжение с адаптером (пароль: 0000 или 1234).
  3. Установите приложение для проверки и нажмите кнопку «Соединение».
  4. Дождитесь окончания сканирования и проверьте результаты.
  5. Успешная работа с большинством марок авто гарантирована, если адаптер поддерживает все ревизии вплоть до 1.4 или 1.4b включительно.

ELM327 Identifier Разработчик: Daaren Fonloil Цена: Бесплатно Elm327 WiFi Check Version Разработчик: Kamil Kubis Цена: Бесплатно

Как подключиться к авто

Точная процедура настройки обычно описана в инструкции.

Шаг 1. Установка приложения для диагностики

Для соединения с ЭБУ машины используются различные программы. Существуют как бесплатные, так и платные версии для Android, iOS и Windows. В комплекте с самим сканером нужное ПО часто уже идёт в комплекте. Установите его или одно из популярных приложений.

Torque Pro (OBD2 / автомобиль) Разработчик: Ian Hawkins Цена: 165,00 ₽ OpenDiag Mobile Разработчик: Косьянчук Виктор Цена: Бесплатно inCarDoc PRO — ELM327 OBD2 автосканер Разработчик: inCarDoc Цена: 239,00 ₽ Car Scanner ELM OBD2 Разработчик: Stanislav Svistunov Цена: Бесплатно ХобДрайв Разработчик: Igor Russkikh Цена: Бесплатно EOBD Facile – Автодиагностика Разработчик: OUTILS OBD FACILE SARL Цена: Бесплатно

OpenDiag (Windows) →

Шаг 2. Подключение ELM327

YouTube-канал «Дабл тест драйв»

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

Шаг 3. Сопряжение устройств

YouTube-канал «Дабл тест драйв»

Далее необходимо включить зажигание и установить соединение сканера со смартфоном или ноутбуком. Если на адаптере есть кнопка запуска, не забудьте нажать и её.

Активируйте Bluetooth или Wi-Fi в настройках гаджета и дождитесь, когда будут найдены находящиеся рядом устройства. Выберите адаптер ELM327: обычно он называется OBDII. Подключитесь к нему. Для сопряжения используйте код 0000 или 1234.

Шаг 4. Настройка приложения

YouTube-канал «Дабл тест драйв»

Запустите установленное приложение для диагностики. Как правило, тип адаптера определяется автоматически. Если этого не произошло, откройте настройки приложения, укажите тип подключения (Bluetooth, Wi-Fi или USB) и выберите доступный сканер из списка.

Как пользоваться сканером ELM327

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

YouTube-канал «Дабл тест драйв»

Теперь можно просматривать показатели работы двигателя и различных систем, считывать ошибки ЭБУ и выполнять их сброс. Для каждой функции в приложениях есть соответствующие кнопки. Например, в самой популярной утилите Torque это «Приборная панель», «Считывание ошибок», «Графики» и другие.

Используемые источники:

  • https://elm327-obd2.ru/obzory/obd-2-diagnosticheskiy-adapter-elm327-bluetooth.html
  • https://habr.com/post/444726/
  • https://lifehacker.ru/elm327/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации