# El OBDII Completo/Herramientas de Diagnostico/populares-adaptadores
## Herramientas de diagnóstico populares - Adaptadores

Los adaptadores OBDII comercialmente disponibles son esencialmente puentes de comunicación entre el ECU del vehículo y un dispositivo externo. Para comunicarse con el vehículo utiliza alguno de los 5 protocolos OBDII conectándose al mismo a través del conector OBDII. La comunicación hacia el dispositivo externo la realiza utilizando algún protocolo serial como WiFi, Bluetooth, USB, RS232 o UART.
La gran mayoría de los adaptadores o prácticamente todos utilizan alguna versión del chip ELM 327 (ELM Electronics, 2014) o en menor cantidad el STN1110 de OBD Solutions el cual es equivalente al ELM327. De acuerdo a información de ELM Electronics al 2016 la versión más reciente publicada es la 2.1, siendo las anteriores 1.0 a 1.4. En el mercado hay algunos dispositivos que se publican como versión 1.5. Desafortunadamente estas son versiones clonadas con algunos errores. La primera versión 1.0 salió al mercado desprotegida, por lo que en China se extrajo el código de esta primera versión y se comercializa por su cuenta como 1.5. Para cuestiones prácticas, la diferencia entre versiones es la cantidad de comandos soportados. La primera versión V1.0 soporta 52 comandos “AT” o comandos especiales como son de configuración. Mientras tanto la versión más reciente V2.1 soporta 126 comandos AT. Todos los adaptadores utilizan la misma estructura de comandos AT V1.0 desarrollada por ELM, por lo que para las aplicaciones es prácticamente transparente cual chip se utilice. Los comandos a los cuales no va a responder son los presentes en versiones superiores a la declarada por el chip. La excepción son los chips declarados como V1.5, los cuales en realidad son V1.0. Estos no responden a comandos como el AT @2 para ver el identificador, el cual es un comando disponible solamente a partir de la versión V1.3.

### 1 Generic ELM327 V1.5 OBDII Interface

Estos adaptadores son los más populares y económicos en venta por internet, estando disponibles en numerosos sitios. Su precio al 2016 anda entre $2.00 y $6.00 USD. Algunos sitios su precio se eleva hasta los $20.00 USD. Los gráficos de la etiqueta tienen ciertas variaciones pero todos conservan la misma similitud y colores azul y amarillo parecidos. El diseño de la caja es prácticamente el mismo, en forma de caja rectangular alargada con los 5 Leds de estatus en hilera por un costado.
Figura 1.1 – Adaptador OBD Genérico

#### Características de Fabricante:

Los diversos sitios muestran para el mismo adaptador diversas características. Entre las características en común se muestras las siguientes:
· Disponible mayormente con interface Bluetooth, algunas versiones con USB o WiFi
· Lee códigos de diagnóstico DTC
· Borra códigos o la luz de Check Engine llamada también MIL
· Muestra datos de sensores y parámetros del vehículo como RPM y velocidad. Algunos sitios hacen un listado de parámetros soportados.
· Soporta TODOS los protocolos OBDII. Algunos buscando entre especificaciones en letra chica mencionan en realidad cuales son los que soportan.
· Incluye un CD con programas OBDII para computadora.

#### Evaluación y Comentarios

Estos adaptadores genéricos son apenas buenos dispositivos de entrada para iniciarse a explorar el mundo del OBDII. Representan una baja inversión inicial, la cual se puede considerar de riesgo dado que por ser de baja calidad hay una probabilidad mayor de falla, con respecto a otros adaptadores de gama más alta.
La primera consideración, siendo tal vez la más relevante es tener cuidado en la leyenda “Soporta TODOS los protocolos OBDII” lo cual es falso. En ocasiones buscando entre especificaciones vienen los nombres de los protocolos que realmente soporta. El adaptador adquirido después de pruebas solo soporta SAEJ1850VPW (GM-Chrysler) e ISO15765 CAN (modelos recientes). La especificación de internet declara soportar también ISO14230-4 (KWP2000) e ISO9141-2 utilizados por Nissan (KWP después del 2002) pero resultó ser falso, no logró conectarse en dos Sentras de diferentes modelos. En el análisis del circuito se observó que carece del hardware necesario para soportar dichos protocolos. Para vehículos a partir del 2008 se utiliza el CAN-Bus, siendo este protocolo el dominante a partir de ese modelo. Por los comentarios de numerosos y diversos foros de entusiastas del OBDII casero, estos adaptadores genéricos son funcionales en modelo 2008 y posteriores, considerando que tengan CAN-BUS.
Respecto a los comandos soportados, solamente responde a los comandos AT declarados por ELM Electronics pertenecientes a la revisión V1.0 a pesar de declarar tener versión V1.5. No responde a comandos de versiones más recientes. Esto refuerza el comentario de ELM Electronics de los chips clonados.
Estos adaptadores, por su bajo costo son utilizados por entusiastas de proyectos caseros. Hay diversos ejemplos en internet de adaptaciones realizadas a partir de los mismos. Entre las más comunes adaptaciones está el utilizar la salidas UART del IC para conectarse directo con un Arduino o similar. En algunos adaptadores, utilizan un PCB aparte para soldar encima un módulo comercial Bluetooth como el HC-05, o módulos USB o WiFi dependiendo del adaptador final. Conociendo los módulos soldados, es fácil ubicar el puerto UART para comunicarse con el Arduino.
El CD acompañante contiene programas para Windows de OBD. Usualmente son versiones anteriores de programas de acceso libre en internet. Sin embargo, para el principiante la mayor ventaja es el incluir una selección recomendada de entre la gran cantidad de opciones de programas disponibles
La conexión del adaptador con algún dispositivo como un teléfono o computadora es a través de protocolos serial conocidos como bluetooth o USB. El adaptador aparece en las búsquedas como “ELM327 V1.5 device”. Para dicha conexión los pasos son los mismos que en cualquier otro dispositivo sin mayores problemas.
Figura 1.2 – Adaptador OBD Genérico - Circuito
El circuito interno está basado en un PIC Microchip MCP2515. El Bluetooth está en el tablero con el IC BK3231. El CAN-BUS lo maneja el IC TJA1050. No se le ven componentes en el PCB faltantes o no soldados, por lo que se intuye el soporte para los otros estándares nunca fue contemplado.

#### Conclusiones

Estos adaptadores genéricos son dispositivos apenas buenos para iniciarse en comunicaciones OBDII (del inglés Entry Level Device). Son de nivel básico, propensos a fallas, limitados en funcionamiento y capacidad, aunque económicos. Un aspecto muy importante a considerar es el protocolo OBDII soportado. En modelos anteriores al 2008 no es garantía de funcionamiento. Para modelos CAN-BUS posteriores al 2008 hay mayor oportunidad de conexión. Con respecto a funcionalidad, las limitaciones de comandos lo restringen a funciones básicas. Sin embargo, para el usuario principiante estas son suficientes para iniciarse en su funcionamiento.

### 2    BAFX Products Bluetooth OBDII Scan Tool

El adaptador BAFX 3415 es perteneciente a la gama media con precios entre $20 y $60 USD. Este adaptador se vende en promedio en $22 en diversos sitios. Su mayor publicidad es la de “realmente” soportar todos los protocolos OBDI. Si bien conserva el diseño de gabinete de los adaptadores genéricos al ser rectangular con los 5 leds de estado a un costado, incluye completo el hardware recomendado por el chip. Esto le permite soportar los diversos protocolos OBD.
Figura 2.1 – Adaptador OBDII BAFX

#### Características de Fabricante:

Las características más relevantes publicitadas por el fabricante son:
· Disponible con interface Bluetooth solamente. Recomienda solamente Android o Windows, no compatible con iOS “por el momento”
· Lee códigos de diagnóstico DTC
· Borra códigos o la luz de Check Engine llamada también MIL
· Muestra datos de sensores y parámetros del vehículo como RPM y velocidad en tiempo real. Soporta aplicaciones que grafican los datos. Enlista algunos sensores de ejemplo
· Prepara el vehículo para la prueba/verificación oficial de emisiones. Esto es, soporta aplicaciones que realizan una pre-verificacion
· Soporta todos los protocolos OBDII disponibles en USA. Hace publicidad de incluir el hardware que lo soporta a diferencia de otros que no lo incluyen. En el caso de lugares fuera de USA recomienda contactarlos para asegurar la compatibilidad.
· Otorga 60 dias para devolución “sin preguntas”, dos años de garantía contra defectos. Pasados los dos años promociona como quiera contactarlos.
· Incluye un CD con programas OBDII para computadora.

#### Evaluación y Comentarios

Este adaptador de gama media se instaló en diversos vehículos, con lo que se verifico que efectivamente soporta diversos protocolos no soportados por los de gama baja. Se puede considerar como plug and play, dado que solamente se requiere conectar al vehículo y emparejar con un dispositivo bluetooth para que funcione. El dispositivo se encarga de manera automática de seleccionar el protocolo adecuado. Responde a comandos de versiones ELM327 posteriores a la V1.0 aunque al preguntarle por el ID responde como “ELM327 V1.5” de manera similar a los ICs clonados. En funcionalidad, se vuelve prácticamente transparente para la aplicación OBD, haciendo la función aparente como si la aplicación estuviese conectada directa al vehículo.
El consumo de corriente es bajo, relativo a la capacidad de batería de un vehículo. Este puede quedarse conectado en el vehículo permanentemente sin problemas.
Entre las desventajas, está el costo moderado y el tamaño físico del dispositivo. Por reglamentación ISO y SAE, el conector OBDII del vehículo debe estar ubicado en la parte media del área del conductor, por debajo de la columna de la dirección. En algunos vehículos esto hace que el adaptador quede enfrente del pedal de freno.
Figura 2.2 – Adaptador OBDII BAFX - circuito
El circuito interno está basado en in PIC Microchip PIC18F2480. El Bluetooth esta manejado a través de un plug-in soldado estilo HC-05. Tiene el mismo gabinete de plástico que un adaptador genérico. Sin embargo el PCB está notoriamente más populado que su contraparte genérica, respaldando la afirmación que soporta todos los protocolos OBDII
Conclusiones
Este adaptador es una opción recomendable para usuarios que deseen hacer uso continuo de su sistema OBD. La inversión modesta que representa queda a bien justificada de esta manera. Es un dispositivo sencillo de uso, estilo plug and play. Al soportar todos los estándares el usuario no tiene que preocuparse por compatibilidad de marcas. El dispositivo al conectarse escanea de manera automática los protocolos OBDII y selecciona el utilizado por el vehículo conectado de manera transparente para el usuario. La conexión serial bluetooth utilizada es prácticamente universal por lo que tampoco representa problemas de emparejamiento. Aparece solamente como "OBDII” para emparejamiento. Tiene un mayor soporte de comandos por lo que su funcionalidad permisible es mayor.

### 3    SparkFun OBD-II Diagnostics Kit

El tablero Sparkfun OBDII-UART es un PCB orientado específico al mercado de los desarrolladores de sistemas embebidos como el Arduino o Raspberry. Maneja los 5 protocolos OBDII y cuenta con una salida UART. Tiene puertos y conectores específicos para facilitar su conexión con un arduino. Se alimenta directo del voltaje del vehiculo a través del conector OBD. Se vende en diversos sitios a un precio de $50USD. El mismo se vende también en kit junto con un cable OBDII-DB9 a la medida del tablero por un precio de $60USD.
Figura 3.1 – Tablero SparkFun OBDII

#### Características de Fabricante:

Las características más relevantes publicitadas por el fabricante son:
· Disponible con interface UART solamente para conexión con sistemas embebidos
· Compatible con los comandos “AT” del ELM327 y los comandos extendidos ST
· Soporta todos los protocolos OBDII
· No incluye CD. Sin embargo en su página oficial incluye enlaces a esquemáticos, hojas de datos y código ejemplo para Arduino. https://www.sparkfun.com/products/9555
· Se encuentra también disponible en kit junto con un cable dedicado OBDII – DB9 para conexión directa

#### Evaluación y Comentarios

Este tablero, junto al Freemantle mencionado en el siguiente punto son los únicos encontrados disponibles para desarrolladores de sistemas OBDII. La orientación del mismo es precisamente para el mercado de personas que desee desarrollar un sistema por su cuenta. Cuenta con interface UART para conectarse directamente con sistemas embebidos como el Arduino. Como otros tableros de desarrollo o shields, es un tablero abierto sin gabinete. Esto lo hace propenso a accidentes si no se maneja con cuidado. Cuenta con un conector DB9 con pinout propietario para conectarse con el OBDII. Aparte de este, no cuenta con otros conectores por lo que requiere soldarle ya sea cables, pines o algún conector. El PCB cuenta con pin holes dedicados para su interface. Se alimenta con el voltaje de la batería del vehículo, cuenta con un regulador 5V onboard. Sin embargo, no provee alimentación o salida alguna para el sistema embebido a conectar por lo que se le debe proporcionar el suyo propio. El tablero está basado en un STN110, el equivalente al ELM327. Es un tablero abierto sin gabinete.
Es un tablero relativamente sencillo de funciones. Viene por default configurado para buscar automáticamente el estándar OBD adecuado. Durante la evaluación, el problema encontrado fue en la interface UART. De fábrica está configurado en 9600bps, una velocidad no estándar para interfaces USB o bluetooth por lo que hubo que hacer adecuaciones y reconfiguraciones. Una vez lograda la comunicación, no se comportó muy estable. Constantemente marcaba caracteres inválidos, aunque se le puede dar beneficio de la duda de haber sido un agente externo no identificado durante la evaluación.
Una vez lograda la comunicación a través de un arduino, el tablero permite la comunicación directa con el ECU del vehículo de manera transparente de manera similar a los otros adaptadores OBDII comerciales. No provee mayor funcionalidad, la misma queda en manos del desarrollador de la aplicación.

#### Conclusiones

Este tablero es la opción común encontrada entre entusiastas desarrolladores de sistemas OBD. Provee una conexión entre cualquiera de los 5 sistemas OBDII y una interface UART. La interface UART permite la conexión directa con sistemas embebidos como lo es un Arduino o Raspberry.
Entre las desventajas está el ser un tablero abierto, propenso a accidentes. Cuenta con un conector OBDII a través de un DB9 con pinout propietario haciendo “recomendable” el comprar el cable dedicado. No cuenta con otros conectores por lo que requiere soldarle interfaces al gusto del cliente. No proporciona mayores funcionalidad que ser una interface OBDII-UART, por lo que pare el precio ofertado $50USD comparado con otros adaptadores es un precio elevado. En diversos foros de entusiastas hay opciones desarrolladas con otros adaptadores comerciales más económicos, los cuales en algunos incluso se conectan internamente directo al UART del adaptador.

### 4    Freematics OBD-II Telematics DIY Kit

Este kit desarrollado por Freematics de Australia es un paquete completo de solución de desarrollo para un sistema de monitoreo de OBDII. Cuenta con Arduino y pantalla así como un adaptador OBDII y sensor GPS. Viene pre-programado por lo que puede instalarse directo saliendo de la caja. En pantalla muestra los parámetros más relevantes a partir de los sensores. El precio dependiendo de las opciones y el sitio de venta es entre $80USD a $185USD
Figura 4.1 – Tablero SparkFun OBDII

#### Características de Fabricante:

Las características más relevantes publicitadas por el fabricante son:
· Incluye:
o un Arduino MEGA 2560,
o pantalla LCD 3.2” touchscreen con microSD, Bluetooth, puertos I/O, conectores, montable directo en el arduino MEGA
o Adaptador OBD-II UART. Disponible versión I2C con sensores MEMS de 6-axis.
o Sensor GPS M8030 GLONASS
o Soporte estilo teléfono para todo el sistema
· Incluye extensas librerías de código abierto de desarrollo disponibles en GitHub, actualizadas periódicamente.
· El kit basado en Arduino es ideal para construir un sistema de telemetría del vehículo hecho a medida con registro de datos de OBD y GPS. Con display de datos en vivo y conectividad Bluetooth. Todo es alimentado por el mismo puerto OBDII. Las librerías arduino constantemente actualizadas lo hacen un kit perfecto para hacer un sistema por cuenta de uno.
· El adaptador es puente OBDII-UART con librerías open source disponibles. La versión I2C incluye sensores de 6 o 9 ejes MEMS y un voltímetro para leer el voltaje del vehículo. Provee voltaje al sistema embebido (Arduino). Soporta solo CAN-BUS y KWP2000. Compatible con comandos ELM327 AT.
· Cuenta con un shield microSD en el LCD para hacer registro de datos paramétricos y de posición. Estos pueden cargarse en Google Maps y mostrar el recorrido realizado.

#### Evaluación y Comentarios

Este sistema es para desarrolladores medio a avanzados por la relativa complejidad del hardware y lo completo del código y el sistema en sí. Sin embargo, el kit tal cual saliendo de la caja se puede conectar y funciona. Viene pre-programado con el código Megalogger disponible en GitHub. Este despliega algunos parámetros como lo es velocidad, revoluciones, carga del motor, posición GPS, tiempo y distancia recorrida. El soporte incluido es del tamaño justo del Arduino Mega por lo que lo vuelve en un sistema listo para instalación. Solo se arma el arduino con la pantalla, se conecta el GPS y el OBD-UART, se coloca el tablero en el soporte y está listo para funcionar.
Las librerías disponibles son bastante extensas, con diversos comentarios. Se actualizan periódicamente. Por lo extenso de las mismas, requiere paciencia y conocimientos de programación para poder darles seguimiento y adaptarlos a las propias necesidades. Una vez comprendido lo básico, es relativamente sencillo ir haciendo modificaciones al programa.
Entre las desventajas está el adaptador incluido de solo soportar CAN-BUS y KWP2000 (modelos asiáticos recientes). Sin embargo, se puede conectar otra interface al mismo puerto UART. Otra desventaja está en el alto costo, sin embargo considerando todo el hardware que se incluye y las librerías ya desarrolladas el precio queda razonable.
El tablero UART-OBDII está basado en un uP STM32F. La conexión CAN-BUS está a través de un IC MCP2551. El modelo UART adquirido tiene provisión para conexión I2C y modulos de señores axiales como el MCP9050
Figura 2.30.3.2 – Tablero SparkFun OBDII - Circuito
Para poder utilizarlo con otro protocolo que no son los soportados por el adaptador, se hizo la modificación de un adaptador genérico, tal como se mencionó anteriormente. Se retiró el modulo Bluetooth. De este módulo, se conectaron cables en el Tx/Rx y estos se utilizaron como puertos UART.
Figura 4.3 – Adaptación UART
Respecto al código, el software Megalogger está basado en una librería OBD para todas las aplicaciones Freemantle. El adaptador recibe todos los comandos (hasta 8) simultáneamente. Despues, con el comando “AT” regresa todos los valores. Esto no es soportado por un adaptador ELM327 normal
Para modificar el código, en la librería OBD.cpp se forza a leer uno por uno realizando la siguiente modificación:
byte COBD::readPID(const byte pid, byte count, int result)
// send a multiple query command
char buffer[128];
char *p = buffer;
byte results = 0;
/* Codigo original, comentado para removerlo
for (byte n = 0; n < count; n++) {
p += sprintf(p, "%02X%02X\r", dataMode, pid[n]);
write(buffer);
// receive and parse the response
for (byte n = 0; n < count; n++) {
byte curpid = pid[n];
if (getResult(curpid, result[n]))
results++;
// codigo agregado para forzar con el FOR a leer uno por uno
DEBUG.println("READPID \n\r");
for (byte n = 0; n < count; n++) {
*p = sprintf(p, "%03X%02X\r", dataMode, pid[n]);
DEBUG.println(buffer);
write(buffer);
byte curpid = pid[n];
if (getResult(curpid, result[n]))
DEBUG.println(result[n]);
results++;
return results;

#### Conclusiones

Este kit de desarrollo es sin duda una muy buena alternativa para desarrolladores de sistemas OBDII que deseen hacer sistemas más avanzados. Lo más valioso además del hardware incluido son las librerías. Las mismas son bastante extensas y con diversos comentarios incluidos lo que las hacen entendibles y relativamente fáciles de modificar al gusto y necesidades del desarrollador. Una desventaja está en el alto costo, sin embargo considerando todo el hardware que se incluye y las librerías ya desarrolladas el precio queda razonable. Otra desventaja relevante a considerar son los protocolos soportados por el adaptador incluido. Solo soporta CAN-BUS (posteriores a 2008) y KWP2000 (asiáticos posteriores a 2002).

### 5    Innova 3100 Car Scanner

De acurdo a su fabricante, la computadora de taller INNOVA 3100 ha sido la herramienta de diagnóstico más vendida, con un millón de unidades vendidas al 2011 desde su introducción en 2001. Sigue en el mercado en venta en diversos lugares con precio en el rango $100 a $140USD. Es una herramienta amigable para rápidamente diagnosticar problemas en los vehículos. Los reparadores profesionales podrán reconocer sus muchas ventajas, mientras que los usuarios domesticos lo encontraran fácil de usar.

#### Características de Fabricante:

Las características más relevantes publicitadas por el fabricante son:
· Funciona con cualquier vehículo, camión ligero, SUV o hibrido fabricado posterior a 1996 (OBDII)
· Pantalla patentada que muestra 20 funciones de información simultaneas, incluyendo códigos de falla DTC
· Menú seleccionable inglés, francés, español
· Leds rojo, amarillo y verde indican si el vehículo está listo para prueba de emisiones.
· Datos de cuadro fijo indican datos del motor al momento de la última falla.
· Por medio de conexión USB a computadora, se conecta a internet y despliega en computadora soluciones comunes al problema registrado.

#### Evaluación y Comentarios

La mayor ventaja de este sistema es ser stand-alone o de ser una unidad sola contenida. No requiere otro tipo de conexiones ni interfaces como lo es un teléfono externo. Está contenido en una carcasa robusta hecho para manejo rudo dentro de un taller mecánico. Como el fabricante lo indica, está diseñado pensando en el taller de gama media que desea un diagnostico por computadora rápido de la falla del “check engine” entre otros datos. Además está pensado para el consumidor casero que desea una herramienta fácil de diagnóstico para su vehículo. Solamente se conecta con el motor encendido y automáticamente gestiona comunicaciones y descarga de datos. En un momento despliega en pantalla el estatus de fallas (si hay) y condiciones de los sensores más comunes. La navegación por las teclas es intuitiva. Puede borrar códigos, con lo que se apaga el “check engine”. Es una herramienta útil para quien desea enfocarse al diagnóstico solamente sin involucrar circuitos, aplicaciones externas o conexiones bluetooth
La desventaja, además del costo es el ser una herramienta solo para diagnostico por medio de los DTC. No tiene datos en tiempo real ni maneja parámetros. No tiene conexión de los mismos a una computadora por lo que no hay manera de hacer interface directo con el ECU. Hay otras soluciones que permiten la conexión con el ECU o datos en tiempo real por medio de los cuales se puede ver por decir en grafica tiempo real el desbalance entre cilindros. Dichas soluciones van en costos por arriba de los $250USD
El circuito es completamente propietario. El procesador principal es un Atmel AT91SAM7X256
Figura 5.2 – INNOVA3100 - Circuito

#### Conclusiones

La mayor ventaja de este sistema es ser stand-alone o de ser una unidad sola contenida. No requiere otro tipo de conexiones ni interfaces como lo es un teléfono externo. Su desventaja precisamente, además del costo es el ser una herramienta solo para diagnostico por medio de los DTC. No tiene datos en tiempo real ni maneja parámetros. No tiene conexión de los mismos a una computadora por lo que no hay manera de hacer interface directo con el ECU. Sin embargo, sigue siendo una herramienta muy sencilla, robusta y recomendable para el taller de gama media o usuario casero que desee hacer diagnósticos por computadora de códigos de falla sin tener que lidiar con circuitos o aplicaciones en el teléfono.

## Para mayor referencia

Wikipedia ELM327 (ingles)
Elm electronics - On Board Diagnostics (OBD) ICs
Next Page: Herramientas de diagnóstico populares - aplicaciones Previous Page: [– OBD to RS232 IC] Main Page: El OBDII Completo - Indice