Сканер OBD2 в OpenWrt
С появлением в автомобилях OBD2 (On-Board Diagnostics) на рынке появилось множество моделей различных сканеров, которые позволяют подключаться и заглядывать в «мозги» автомобиля. Некоторые из вас наверняка собирали на коленке свой первый Kline адаптер для того, чтобы разобраться самому о причинах индикации CHECK ENGINE на панели. Поэтому этот раздел, наверное, в большей степени будет интересен автомобилистам, которые наверняка раньше и представить себе не могли, что машину можно продиагностировать с помощью домашнего роутера ))).
На этапе конфигурации OpenWrt нужно отметить следующие модули:
Kernel modules:
USB Support:
На момент написания статьи в состав OpenWrt не входит утилит для работы с obd2. Поэтому предлагаю рассмотреть программу Freediag вот отсюда
Загружаемся и устанавливаем пакеты:
root@OpenWrt:/# opkg install kmod-usb-serial-ftdi Installing kmod-usb-serial-ftdi (2.6.36.2-1) to root... Downloading ftp://ftp:ftp@192.168.0.9/kmod-usb-serial-ftdi_2.6.36.2-1_brcm47xx.ipk. Installing kmod-usb-serial (2.6.36.2-1) to root... Downloading ftp://ftp:ftp@192.168.0.9/kmod-usb-serial_2.6.36.2-1_brcm47xx.ipk. Configuring kmod-usb-serial. Configuring kmod-usb-serial-ftdi. |
Подключаем сканер OBD2 к разъему для диагностики в вашем автомобиле. Должен загореться синенький светодиод внутри корпуса сканера OBD2. Подключаем сканер OBD2 в USB-порт и смотрим вывод dmesg:
root@OpenWrt:/# dmesg ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0 ftdi_sio 1-1.3:1.0: device disconnected usb 1-1.3: new full speed USB device using ohci_hcd and address 6 ftdi_sio 1-1.3:1.0: FTDI USB Serial Device converter detected usb 1-1.3: Detected FT232RL usb 1-1.3: Number of endpoints 2 usb 1-1.3: Endpoint 1 MaxPacketSize 64 usb 1-1.3: Endpoint 2 MaxPacketSize 64 usb 1-1.3: Setting MaxPacketSize 64 usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0 |
Сканер OBD2 определился в системе как устройство ttyUSB0 .
Запускаем Freediag. В основе Freediag лежит утилита scantool, поэтому запускаем scantool.
root@OpenWrt:/# ./scantool scantool: version 0.3 scantool: Type HELP for a list of commands scantool: Type SCAN to start ODBII Scan scantool: Then use MONITOR to monitor real-time data scantool> |
Документация на Freediag scantool есть как на сайте, так и в директории с исходным кодом. Поэтому доступный набор команд можно посмотреть там. Команда scan — запускает сканирование.
scantool> scan Trying SAEJ1850-VPW ... failed! Trying SAEJ1850-PWM ... failed! Trying ISO14230_FAST ... Failed to open hardware interface failed! Trying ISO14230_FAST !ISO9141-2 Connection to ECU established MIL light OFF, 0 stored DTC(s) |