Современные автомобили напичканы разнообразной электроникой, и, чтобы получать данные о состоянии автомобиля, проводить его диагностику и выявлять неисправности, существует протокол OBD-II. Чтобы продиагностировать свой автомобиль сегодня не обязательно ехать в автомастерскую или покупать адаптер OBD-II, теперь его можно сделать самому.

Для этого можно воспользоваться открытым проектом obddiag.net. С помощью него можно самостоятельно собрать свой адаптер OBD-II на основе микроконтроллера LPC1517 Cortex-M3. Этот 32-разрядный микроконтроллер LPC1517 работает на тактовой частоте 72 МГц, имеет 64 КБ памяти программ, 12 КБ памяти данных и 4 КБ энергонезависимой памяти EEPROM. Его основное рабочее напряжение 3.3 В, минимальное рабочее напряжение 2.4 В. Микроконтроллер LPC1517 позиционируется своими разработчиками как устройство с низким уровнем потребления энергии. Микросхема расположена в корпусе LQFP-64, который достаточно удобен для пайки и в то же время довольно миниатюрен. Микроконтроллер LPC1517 имеет широкий диапазон рабочих температур от -40 до +105 градусов по Цельсию, поэтому он вполне может применяться в автомобильных приложениях. Впрочем, для данного адаптера OBD-II при необходимости может подойти другой микроконтроллер этого семейства, например, LPC1549 с большим объемом памяти (256 КБ). Микроконтроллеры NXP имеют записанный в ПЗУ загрузчик, который поддерживает загрузку бинарных образов во flash-память с помощью интерфейсов UART или CAN. Что является очень удобным инструментом при программировании микроконтроллеров.
Все программное обеспечение написано на языке программирования высокого уровня C++ для среды разработки NXP LPCXpresso IDE, которая использует набор инструментов GNU для процессоров ARM Cortex-M. Впрочем, написанный код может быть скомпилирован с помощью другого набора инструментов, например, GCC ARM Embedded или даже Keil uVision IDE.
Адаптер обеспечивает интерфейс последовательной передачи данных с помощью набора команд ELM327 и поддерживает все стандарты шины OBD-II такие, как SAE J1850 PWM, SAE J1850 VPW, ISO 9141-2, ISO 14230-4 и ISO 15765-4 CAN.
Схема адаптера в pdf-формате доступна здесь.
Исходный код проекта для среды разработки LPCXpresso IDE можно скачать с github.
Также имеется готовая прошивка для микроконтроллера в hex-формате.
Gerber-файлы печатной платы здесь.