Диагностический адаптер ELM327 USB
Для соединения ПК с ЭБУ автомобиля.
Соединение – провод USB-OBD2.
Диагностика и сброс ошибок ЭБУ.
Поддержка К и L линии.
Адаптер ELM 327 USB предназначен для соединения диагностического программного обеспечения, установленного на персональном компьютере и “Электронного блока управления” (ЭБУ) установленного в автомобиле.
ELM 327 USB поддерживает протоколы:
- ISO 9141
- ISO 14230
- J 1850 PWM
- J 1850 VPW
- CAN (J-2284)
Диагностический адаптер, elm usb является преобразователем логических протоколов и физических уровней сигнала и преобразует сигналы, идущие от ЭБУ по протоколам OBD II в формат USB (виртуальный COM порт).
Применяется для диагностики и просмотра параметров двигателя в отечественных, elm 327 ваз, и импортных, elm usb 327, автомобилях, оснащенных двигателями управляемыми ЭБУ.
Адаптер elm327 usb работает на всех автомобилях, произведенных в США после 1996, Европе после 2001, а также на российских и азиатских автомобилях, по 2010 год.
Ко всему прочему у каждого из перечисленных протоколов есть несколько разновидностей, которые могут отличаться, например, скоростью обмена информацией. В Интернете вы можете найти «таблицы применимости», где вы легко сможете, отыскав свою марку и модель машины, узнать какой именно OBD-II протокол поддерживает ваш автомобиль. Но не стоит забывать и о том, что одна и та, же модель, созданная в один и тот, же год и с идентичным двигателем может быть выпущена для разных рынков, и поддерживать разные протоколы диагностики. А сами протоколы могут различаться по моделям двигателей и по годам выпуска.
Но все, же главное, на что стоит в первую очередь обратить внимание и что может свидетельствовать о поддержке автомобилем OBD-II диагностики, это наличие 16-контактного диагностического разъема (DLC – DiagnosticLinkConnector) трапециевидной формы.
Применяемость ELM 327 USB
Для того чтобы оценить применимость того или иного сканера для диагностики конкретного автомобиля, нужно определить: какой именно OBD2 протокол используется на вашем автомобиле и поддерживается ли он вообще.
Для этого сначала нужно отыскать техническую документацию на автомобиль и заглянув в нее, а не в общее руководство по данной марке, узнать какой OBD-II протокол поддерживается вашей маркой автомобиля. Также немаловажно провести осмотр всех идентификационных табличек на самой машине, на которой Вы можете встретить надпись: “OBD-II compliant”, что означает «поддерживает OBD-II» или “OBD-II certified”, то есть «сертифицировано на поддержку OBD-II».
Следующий способ – открыть информационную базу данных и посмотреть в ней. Но при условии, что база может иметь неточности, и содержать информацию, относящуюся к маркам автомобилей, выпущенных для другого рынка, такой способ теряет свою значимость. Лишь дилерские базы по отдельной марке способны вселять уверенность в точности данных.
Также можно применить диагностический адаптер usb, с помощью него можно легко определить какой из OBD-II протоколов используется на машине. Если же сканер отказывается предлагать протокол, то перебор можно настроить вручную, а начать следует с протокола ISO. Он является самым популярным и распространенным. Также можно узнать по таблице предположительный протокол для своей марки машины и попробовать применить его.
Ну и, наконец, можно просто исследовать самостоятельно диагностический разъем и определить есть ли в нем «выводы». «Выводы» должны подсказать какой протокол следует использовать. Так, для Pin 2 должны применяться протоколы PWM (J1850) и VPW (J1850). Для Pin 7 ISO-9141 и ISO-14230. Для pin 10 только один протокол PWM (J1850), а для Pin 15 два: ISO-9141 и ISO-14230. Но в случае с последним, при условии, что автомобиль использует L-линию диагностики.
Большинство автомобилей пользуются протоколами ISO. Но, как и в любом правиле, здесь тоже есть свои исключения: большинство легковых автомобилей и грузовиков крупной американской автомобильной корпорации General Motors пользуются протоколом SAE J1850 VPW, а также большая часть автомобилей марки Ford применяют протокол J1850 PWM.
Внимание! Поиск и установка программного обеспечения подходящего для вашего автомобиля осуществляется самостоятельно.
Предприятие-изготовитель предоставляет только драйверы адаптера и не несет ответственности за риски связанные с использованием программного обеспечения.
Адаптер elm327 usb купить можно в нашем интернет-магазине по низкой цене. Мы поддерживаем Гарантию производителя, т. к. являемся Официальными дилерами. Обеспечим Доставку по России с гарантией.
Гарантия:
Гарантия на ОРИОН Адаптер ELM 327 – USB составляет 12 месяцев.
Гарантия начинается со дня получения товара заказчиком.
Все гарантийные обязательства samara-electro-stavr.ru полностью соблюдаются.
Внимание в случае попытки самостоятельного вмешательства в конструкцию прибора для решения проблемы, прибор автоматически снимается с гарантии, в данном случае ремонт прибора идет платный.
obd ii – команда elm327 CAN для включения перманентного включения фар
спросил
Изменено 4 года, 6 месяцев назад
Просмотрено 7к раз
Я хочу отправить AT-команду, чтобы включить фары в Nissan Leaf.
Находится в ID 625
0x00 - ВЫКЛ. 0x60 - ВКЛ. 0x40 - Габаритные огни включены 0x68 - Фары и противотуманные фары включены
как изменить это, отправив команды через Терминал Можешь помочь пошагово?
- команда
- obd-ii
- can-bus
- elm327
Если ваш Nissan говорит по CAN (т. е. ваше устройство ELM 327 ответит числом от 6 до 9, когда вы отправите AT DPN
), то вы можете:
АТ Я
В E0
В L1
В СП 0
0100
В Ш 625
До сих пор у вас есть:
- сброс набора микросхем (
AT Z
) - остановил его от повторения всего, что вы пишете (
AT E0
) - включил окончания строк, поэтому его ответ не перезаписывает вашу команду в temrinal (
AT L1
) - установить протокол на «авто» (
AT SP 0
) - инициализировать шину (
0100
) (ладно, не совсем так, но это помогает чипсету определить протокол) - установить заголовок сообщения CAN на 625 (
AT SH 625
)
Теперь вы знаете, какой из байтов вам нужно изменить на 0x40, чтобы включить фары? Вы можете попробовать отправить 40 00
напрямую, но я очень сомневаюсь, что это поможет.
Примечание : не пытайтесь отправлять сообщения CAN по шине, если вы не знаете, что делаете. Не привлекайте никого к ответственности, если ваша машина начинает вести себя странно. Кроме того, не отправляйте сообщения во время вождения.
Сам проверял на ATSH 625 и затем отправка 02 40
.
Однако я обнаружил, что 625 отвечает на команду света, и это не команда. Команда 04 00 00 00 00
.
Приведенные ниже ответы были проверены на Nissan Sunny 2016.
0x00 — ВЫКЛ. 0x60 - ВКЛ. 0x40 - Габаритные огни включены
60D 04 00 00 00 00
на самом деле включает стояночные огни, и они немедленно выключаются, так как ключевое положение ручки управления светом будет выключено, если вы его не измените.
Сразу после отправки вышеуказанной команды я получил ответ: 625 02 40 FF
. Если ваша цель – прочитать статус, мониторинг 625
даст вам это, для управления освещением требуется больше обратного проектирования.
Я сам застрял, пытаясь управлять замком/отпиранием двери,
У меня есть ответ на это, но я пока не могу его контролировать.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаОбязательно, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Python obd не подключает Raspberry Pi к машине
У меня есть Raspberry Pi 3, и я пытаюсь подключить его к OBD моей машины. У меня есть сканер Veepeak Mini Bluetooth OBD2, и я проверил, что он отлично работает с Torque на Android.
[ОБНОВЛЕНИЕ ПОСЛЕ ОБНОВЛЕНИЯ ДО ПОСЛЕДНЕЙ ВЕРСИИ pythonOBD]
Оказывается, несколько дней назад была фиксация, которая привела к задержке в 0100\r
сообщение. Очевидно, это было сделано для смягчения последствий для определенного набора сканеров OBD, которые не реагировали вовремя на это конкретное сообщение. Я клонировал репозиторий и вытащил последнюю версию из мастера и изменил строку импорта на это:
import sys sys.path.insert(1, '/home/pi/python-OBD') импорт БДС
Теперь, когда я собирал отдельный набор журналов, я так и не смог получить данные о машине. Автоматический протокол по умолчанию использует протокол 6 по какой-то причине, который выводит Ошибка CAN
после сообщения 0100\r
. После настройки протокола 5, единственного, который дал многообещающие результаты, я получаю следующие журналы:
$> python obdtest.py [obd.obd] ======================= python-OBD (v0.7.1) ============== ========= [obd.obd] Использование scan_serial для выбора порта [obd.obd] Доступные порты: ['/dev/rfcomm47'] [obd.obd] Попытка использовать порт: /dev/rfcomm47 [obd.elm327] Инициализация ELM327: PORT=/dev/rfcomm47 BAUD=38400 PROTOCOL=5 [obd.elm327] напишите: 'ATZ\r' [obd.elm327] ожидание: 1 секунда [obd.elm327] читать: b'ATZ\r\r\rELM327 v1.5\r\r> ' [obd.elm327] запись: 'ATE0\r' [obd.elm327] читать: b'ATE0\rOK\r\r>' [obd.elm327] напишите: 'ATh2\r' [obd.elm327] читается: b'OK\r\r>' [obd.elm327] напишите: 'ATL0\r' [obd.elm327] читается: b'OK\r\r' [obd.elm327] напишите: 'AT RV\r' [obd.elm327] читал: b'13.9V\r\r>' [obd.elm327] напишите: 'ATTP5\r' [obd.elm327] читается: b'OK\r' [obd.elm327] запись: '0100\r' [obd.elm327] читать: b'>' [obd.elm327] нет ответа; ждать: 0,100000 секунд [obd.elm327] чтение: b'BUS INIT: OK' [obd.protocols.protocol] карта ЭБУ 16 --> ДВИГАТЕЛЬ [obd.elm327] Подключено успешно: PORT=/dev/rfcomm47 BAUD=38400 PROTOCOL=5 [obd.
obd] запрос поддерживаемых команд [obd.obd] Отправка команды: 0100: Поддерживаемые PID [01-20] [obd.elm327] запись: '0100\r' [obd.elm327] читал: b'ОСТАНОВЛЕНО\r\r>' [obd.OBDCommand] 0100: поддерживаемые PID [01-20] не получили приемлемых сообщений [obd.obd] Нет действительных данных для команды списка PID: 0100: Поддерживаемые PID [01-20] [obd.obd] Отправка команды: 0900: Поддерживаемые PID [01-20] [obd.elm327] напишите: '0900\r' [obd.elm327] читается: b'87 F1 10 49 00 01 30 00 00 00 02 \r\r>' [obd.obd] завершил запрос с поддержкой 8 команд [obd.obd] ============================================ ====================== [obd.obd] «010C: обороты двигателя» не поддерживается Никто [obd.obd] Закрытие соединения [obd.elm327] закрытие порта [obd.elm327] напишите: 'ATZ\r'
Похоже, что 0100\r
записывается дважды, а журналы возвращают чтение: b'BUS INIT: OK'
первое, а читается: b'STOPPED\r\r>'
второе. Скорость передачи, кажется, работает одинаково, будь то 38400 или 9600, так что я не думаю, что это проблема.
[Исходный вопрос]
Я настроил Bluetooth на Raspberry Pi и подключил устройство, но при попытке запустить следующий скрипт он работает примерно 1 из 10–20 попыток со следующими журналами:
импорт БДС obd.logger.setLevel(obd.logging.DEBUG) connection = obd.OBD() # автоматически подключается к порту USB или RF cmd = obd.commands.RPM # выбор команды OBD (датчик) response = connection.query(cmd) # отправить команду и проанализировать ответ print(response.value) # возвращает значения единиц измерения благодаря Pint соединение.закрыть()
При сбое (в подавляющем большинстве случаев) отображается следующее:
$> python obdtest.py [obd.obd] ======================= python-OBD (v0.7.1) ============== ========= [obd.obd] Использование scan_serial для выбора порта [obd.obd] Доступные порты: ['/dev/rfcomm47'] [obd.obd] Попытка использовать порт: /dev/rfcomm47 [obd.elm327] Инициализация ELM327: PORT=/dev/rfcomm47 BAUD=auto PROTOCOL=auto [obd.elm327] Ответ от бода 38400: '\x7f\x7f\r?\r\r>' [obd.elm327] Выбор скорости 38400 бод [obd.elm327] напишите: 'ATZ\r' [obd.elm327] ожидание: 1 секунда [obd.elm327] читать: b'ATZ\r\r\rELM327 v1.5\r\r>' [obd.elm327] запись: 'ATE0\r' [obd.elm327] читать: b'ATE0\rOK\r\r>' [obd.elm327] напишите: 'ATh2\r' [obd.elm327] читается: b'OK\r\r>' [obd.elm327] напишите: 'ATL0\r' [obd.elm327] читается: b'OK\r\r>' [obd.elm327] напишите: 'AT RV\r' [obd.elm327] читал: b'15.0V\r\r>' [obd.elm327] напишите: 'ATSP0\r' [obd.elm327] читается: b'OK\r' [obd.elm327] запись: '0100\r' [obd.elm327] читать: b'>' [obd.elm327] напишите: 'ATDPN\r' [obd.elm327] читать: b'ПОИСК...\r86 F1 10 41 00 BF BF F990 CF \r\r>' [obd.elm327] Не удалось получить текущий протокол [obd.elm327] Адаптер подключен, но зажигание выключено [obd.obd] Невозможно загрузить команды: нет связи с автомобилем [obd.obd] ============================================ ====================== [obd.obd] «010C: обороты двигателя» не поддерживается Никто [obd. obd] Закрытие соединения [obd.elm327] закрытие порта [obd.elm327] напишите: 'ATZ\r'
В случае успеха (1 из 10 или более попыток) отображается следующее:
$> python obdtest.py [obd.obd] ======================= python-OBD (v0.7.1) ============== ========= [obd.obd] Использование scan_serial для выбора порта [obd.obd] Доступные порты: ['/dev/rfcomm47'] [obd.obd] Попытка использовать порт: /dev/rfcomm47 [obd.elm327] Инициализация ELM327: PORT=/dev/rfcomm47 BAUD=auto PROTOCOL=auto [obd.elm327] Ответ от бода 38400: '\x7f\x7f\r?\r\r>' [obd.elm327] Выбор скорости 38400 бод [obd.elm327] напишите: 'ATZ\r' [obd.elm327] ожидание: 1 секунда [obd.elm327] читать: b'ATZ\r\r\rELM327 v1.5\r\r>' [obd.elm327] запись: 'ATE0\r' [obd.elm327] читать: b'ATE0\rOK\r\r>' [obd.elm327] напишите: 'ATh2\r' [obd.elm327] читается: b'OK\r\r>' [obd.elm327] напишите: 'ATL0\r' [obd.elm327] читается: b'OK\r\r' [obd.elm327] напишите: 'AT RV\r' [obd.elm327] читал: b'14.7V\r\r>' [obd.elm327] напишите: 'ATSP0\r' [obd.elm327] читается: b'OK\r' [obd.elm327] запись: '0100\r' [obd.elm327] читать: b'ПОИСК...\r86 F1 10 41 00 BF BF F990 CF \r\r>' [obd.elm327] напишите: 'ATDPN\r' [obd.elm327] читать: b'A5\r\r>' [obd.protocols.protocol] карта ЭБУ 16 --> ДВИГАТЕЛЬ [obd.elm327] Подключено успешно: PORT=/dev/rfcomm47 BAUD=38400 PROTOCOL=5 [obd.obd] запрос поддерживаемых команд [obd.obd] Отправка команды: 0100: Поддерживаемые PID [01-20] [obd.elm327] запись: '0100\r' [obd.elm327] читать: b'86 F1 10 41 00 BF BF F9 90 CF \r\r>' [obd.obd] завершен запрос с поддержкой 51 команды [obd.obd] ============================================ ====================== [obd.obd] Отправка команды: 010C: Обороты двигателя [obd.elm327] напишите: '010C\r' [obd.elm327] читается: b'84 F1 10 41 0C 08 3C 16 \r\r>' 527,0 оборотов в минуту [obd.obd] Закрытие соединения [obd.elm327] закрытие порта [obd.elm327] напишите: 'ATZ\r'
Обратите внимание, что 84 F1 10 41 0C 08 3C 16
не является MAC-адресом OBD-сканера. Кроме того, rfcomm47
устанавливается вручную на случайное значение, случайно выбранное значение 47.
В журналах успеха согласуется номер протокола (5). Где-то я видел предложение просто продолжать попытки подключения, но когда я добавляю что-то вроде этого
, в то время как len(connection.supported_commands) < 100: соединение = obd.Async("/dev/rfcomm47", протокол = "5", скорость = "38400", быстро = False, время ожидания = 30)
Я получаю эти журналы каждый раз, когда он вызывается со второго раза:
$> python sandboxobd.py <<журналы запуска>> [obd.elm327] напишите: 'ATDPN\r' [obd.elm327] читать: b'ПОИСК...\r86 F1 10 41 00 BF BF F9 90 CF \r\r>' [obd.elm327] Не удалось получить текущий протокол [obd.elm327] Адаптер подключен, но зажигание выключено [obd.obd] Невозможно загрузить команды: нет связи с автомобилем [obd.obd] ============================================ ====================== [obd.obd] ======================= python-OBD (v0.7.1) ============== ========= <<журналы запуска>> [obd.elm327] читать: b'>' [obd.elm327] напишите: 'ATDPN\r' [obd.elm327] читал: b'ПОИСК...\RUNABLE TO CONNECT\r\r>' [obd.elm327] Не удалось получить текущий протокол [obd.elm327] Адаптер подключен, но зажигание выключено [obd.obd] Невозможно загрузить команды: нет связи с автомобилем [obd.obd] ============================================ ======================
Вторая часть повторяется бесконечно. Прямое подключение к протоколу 5 с использованием connection = obd.OBD(protocol="5")
дает мне следующее:
[obd.elm327] Успешное подключение: PORT=/dev/rfcomm47 BAUD=38400 PROTOCOL=5 [obd.obd] запрос поддерживаемых команд [obd.obd] Отправка команды: 0100: Поддерживаемые PID [01-20] [obd.elm327] запись: '0100\r' [obd.elm327] читал: b'BUS INIT: STOPPED\r\r>' [obd.OBDCommand] 0100: поддерживаемые PID [01-20] не получили приемлемых сообщений [obd.obd] Нет действительных данных для команды списка PID: 0100: Поддерживаемые PID [01-20] [obd.obd] завершен запрос с поддержкой 7 команд [obd.obd] ============================================ ====================== [obd.![]()