Когда речь заходит о диагностике автомобиля, первое, что приходит на ум, это сканер ELM327, подключаемый по интерфейсу OBD-II. Его можно без лишних трудностей заказать из-под небесной, выбрав нужный интерфейс (USB, Bluetooth, WiFi). Однако на данный момент довольно часто возникают ситуации, когда сканер "криво" работает, либо и вовсе нет. Причин может быть несколько: как "левая" аппаратная конструкция (сейчас под этим подразумеваются сканеры, не на основе PIC18*), так и программное обеспечение (например, указана версия 1.5, по факту ею не являющейся). Стало интересно разобраться, есть только один рабочий вариант по аппаратно-программной начинке, или же различные реализации заточены под разные задачи.
Ниже предложена методика, для прогона каждой реализации ELM327.
Задача
Поставим задачей создание сводной таблицы, содержащей различные реализации ELM327, их программно-аппаратные характеристики и результаты тестирования с различным прикладным ПО (Torque, Pyren). Для выполнения задачи был создан репозиторий на GitHub'e.
Предмет испытаний
В качестве первого испытуемого образца выступает ELM327 Mini Bluetooth:
И его начинка:
На данный момент, считаю, что необходимости детально расписывать всю элементную базу нет, достаточно выделить SoC, которым здесь является Beken BK3231, имеющий CPU — ARM968E-S (архитектура ARM).
Результаты испытаний
-
Torque Pro
(Torque — программа для смартфона, позволяющая просматривать ошибки и состояние датчиков автомобиля)
Здесь особых нареканий нет, программа нормально распознает адаптер, определяет его версию (1.5) и обменивается данными.
-
Pyren
(Pyren — набор скриптов на Python, с помощью которых помимо просмотра состояний датчиков и диагностики ошибок, можно править "мозги" автомобиля, т.е., например, разблокировать отключенные фишки бортового компьютера)
Тестированием посредством встроенного скрипта (chkelm_4a_launcher.py) провалено.
Opening ELM
v1.0 ATZ [OK]
v1.0 ATE1 [OK]
v1.0 ATL0 [OK]
v1.0 ATI [OK]
v1.0 AT@1 [OK]
v1.0 ATAL [FAIL]
v1.0 ATBD [FAIL]
v1.0 ATBI [FAIL]
v1.0 ATCAF0 [FAIL]
v1.0 ATCF 123 [FAIL]
v1.0 ATCF 12345678 [FAIL]
v1.0 ATCFC1 [FAIL]
v1.0 ATCM 123 [FAIL]
v1.0 ATCM 12345678 [FAIL]
v1.0 ATCP 01 [FAIL]
v1.0 ATCS [FAIL]
v1.0 ATCV 1250 [FAIL]
v1.0 ATD [OK]
v1.0 ATDP [OK]
v1.0 ATDPN [OK]
v1.0 ATH0 [OK]
v1.0 ATI [OK]
v1.0 ATIB 10 [FAIL]
v1.0 ATIB 96 [FAIL]
v1.0 ATL1 [OK]
v1.0 ATM0 [OK]
v1.0 ATMA [FAIL]
v1.0 ATMR 01 [FAIL]
v1.0 ATMT 01 [FAIL]
v1.0 ATNL [FAIL]
v1.0 ATPC [OK]
v1.0 ATR1 [FAIL]
v1.0 ATRV [OK]
v1.0 ATSH 001122 [FAIL]
v1.0 ATSH 012 [FAIL]
v1.0 ATSP A6 [FAIL]
v1.0 ATSP 6 [OK]
v1.0 ATST FF [FAIL]
v1.0 ATSW 96 [FAIL]
v1.0 ATSW 34 [FAIL]
v1.0 ATTP A6 [FAIL]
v1.0 ATTP 6 [FAIL]
v1.0 ATWM 817AF13E [FAIL]
v1.0 ATWS [OK]
v1.1 ATFC SD 300000 [FAIL]
v1.1 ATFC SH 012 [FAIL]
v1.1 ATFC SH 00112233 [FAIL]
v1.1 ATFC SM 1 [FAIL]
v1.1 ATPP FF OFF [FAIL]
v1.1 ATPP FF ON [FAIL]
v1.1 ATPPS [FAIL]
v1.2 ATAR [FAIL]
v1.2 ATAT1 [FAIL]
v1.2 ATDM1 [FAIL]
v1.2 ATIFR H [FAIL]
v1.2 ATIFR0 [FAIL]
v1.2 ATIIA 01 [FAIL]
v1.2 ATKW0 [FAIL]
v1.2 ATMP 0123 [FAIL]
v1.2 ATMP 0123 4 [FAIL]
v1.2 ATMP 012345 [FAIL]
v1.2 ATMP 012345 6 [FAIL]
v1.2 ATSR 01 [FAIL]
v1.3 ATCRA 012 [FAIL]
v1.3 ATCRA 01234567 [FAIL]
v1.3 ATD0 [FAIL]
v1.3 ATFE [FAIL]
v1.3 ATJE [FAIL]
v1.3 ATJS [FAIL]
v1.3 ATKW [FAIL]
v1.3 ATRA 01 [FAIL]
v1.3 ATS1 [FAIL]
v1.3 ATSP 00 [FAIL]
v1.3 ATV0 [FAIL]
v1.4 ATCEA [FAIL]
v1.4 ATCEA 01 [FAIL]
v1.4 ATCV 0000 [FAIL]
v1.4 ATIB 48 [FAIL]
v1.4 ATIGN [FAIL]
v1.4 ATPB 01 23 [FAIL]
v1.4 ATRD [FAIL]
v1.4 ATSD 01 [FAIL]
v1.4 ATSI [FAIL]
v1.4 ATFI [FAIL]
v1.4 ATSS [FAIL]
v1.4 ATTA 12 [FAIL]
v1.4 ATCSM1 [FAIL]
v1.4 ATJHF1 [FAIL]
v1.4 ATJTM1 [FAIL]
v1.4 ATJTM5 [FAIL]
v1.4b ATCRA [FAIL]
v2.0 ATAMC [FAIL]
v2.0 ATAMT 20 [FAIL]
v2.1 ATCTM1 [FAIL]
v2.1 ATCTM5 [FAIL]
****************************************
* RESETTING ELM
****************************************
*
* ERRORS STATISTIC
*
* error_frame = 0
* error_bufferfull = 0
* error_question = 81
* error_nodata = 0
* error_timeout = 0
* error_rx = 0
* error_can = 0
*
* RESPONSE TIME (Average)
*
* response_time = 0.00783081786622
*
****************************************
Uncompatible adapter on ARM core
pyren would not work with it
Result: 16 from 95
Max
version:v1.0
P.S.
Данная публикация является исключительно побудительной для тех, у кого есть адаптеры ELM327, дабы провести испытания по аналогичной методике и дополнить репозиторий.
Автор: Барак Адама