Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use SparkFun OBD-II UART: Examples, Pinouts, and Specs

Image of SparkFun OBD-II UART
Cirkit Designer LogoDesign with SparkFun OBD-II UART in Cirkit Designer

Introduction

The SparkFun OBD-II UART (Manufacturer Part ID: WIG-09555) is a compact interface module designed to facilitate communication with OBD-II compliant vehicles. It provides a UART interface, enabling users to access vehicle diagnostics, sensor data, and other critical information from the vehicle's onboard computer. This module is ideal for automotive diagnostics, data logging, and vehicle performance monitoring.

Explore Projects Built with SparkFun OBD-II UART

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino Nano OBD-II Data Logger with TFT Display and CAN Bus Interface
Image of inzynierka: A project utilizing SparkFun OBD-II UART in a practical application
This circuit is an OBD-II vehicle diagnostic interface that uses an Arduino Nano to communicate with a vehicle's CAN bus via an MCP2515 CAN controller. It includes a 7805 voltage regulator to step down the vehicle's 12V supply to 5V, powering the Arduino and other components, and a 1.44-inch TFT display for visual output. A pushbutton is also included for user interaction.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based OBD-II Car Speed Display with ILI9488 TFT Screen
Image of tachometr2: A project utilizing SparkFun OBD-II UART in a practical application
This circuit connects an ESP32 Devkit V1 microcontroller to an LCD TFT screen using SPI communication for display purposes and to an OBD2 diagnostic tool for vehicle data retrieval. The ESP32 reads vehicle speed data from the OBD2 interface via UART and displays it on the LCD screen. The circuit is designed for automotive diagnostics, specifically to read and display real-time vehicle speed.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-CAM and IR Sensor Interface with USB UART Communication
Image of esp32cam parking: A project utilizing SparkFun OBD-II UART in a practical application
This circuit features an ESP32 CAM module interfaced with an IR sensor and a SparkFun USB UART Breakout board. The ESP32 CAM provides power to the IR sensor and receives its output signal, likely for processing or triggering camera actions based on IR detection. The USB UART Breakout board is connected to the ESP32 CAM for serial communication, enabling programming, debugging, or data exchange with a computer.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Uno Bluetooth Controlled Car with LCD Display
Image of bluetooth car 2025: A project utilizing SparkFun OBD-II UART in a practical application
This circuit is an Arduino-based Bluetooth-controlled car with four DC motors driven by an L298N motor driver. The car's movement is controlled via Bluetooth commands received from an HC-05 module, and it features an LCD display for status messages and LEDs for visual indicators.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with SparkFun OBD-II UART

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of inzynierka: A project utilizing SparkFun OBD-II UART in a practical application
Arduino Nano OBD-II Data Logger with TFT Display and CAN Bus Interface
This circuit is an OBD-II vehicle diagnostic interface that uses an Arduino Nano to communicate with a vehicle's CAN bus via an MCP2515 CAN controller. It includes a 7805 voltage regulator to step down the vehicle's 12V supply to 5V, powering the Arduino and other components, and a 1.44-inch TFT display for visual output. A pushbutton is also included for user interaction.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of tachometr2: A project utilizing SparkFun OBD-II UART in a practical application
ESP32-Based OBD-II Car Speed Display with ILI9488 TFT Screen
This circuit connects an ESP32 Devkit V1 microcontroller to an LCD TFT screen using SPI communication for display purposes and to an OBD2 diagnostic tool for vehicle data retrieval. The ESP32 reads vehicle speed data from the OBD2 interface via UART and displays it on the LCD screen. The circuit is designed for automotive diagnostics, specifically to read and display real-time vehicle speed.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of esp32cam parking: A project utilizing SparkFun OBD-II UART in a practical application
ESP32-CAM and IR Sensor Interface with USB UART Communication
This circuit features an ESP32 CAM module interfaced with an IR sensor and a SparkFun USB UART Breakout board. The ESP32 CAM provides power to the IR sensor and receives its output signal, likely for processing or triggering camera actions based on IR detection. The USB UART Breakout board is connected to the ESP32 CAM for serial communication, enabling programming, debugging, or data exchange with a computer.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of bluetooth car 2025: A project utilizing SparkFun OBD-II UART in a practical application
Arduino Uno Bluetooth Controlled Car with LCD Display
This circuit is an Arduino-based Bluetooth-controlled car with four DC motors driven by an L298N motor driver. The car's movement is controlled via Bluetooth commands received from an HC-05 module, and it features an LCD display for status messages and LEDs for visual indicators.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Reading and clearing diagnostic trouble codes (DTCs)
  • Monitoring real-time vehicle sensor data (e.g., speed, RPM, temperature)
  • Developing custom automotive applications
  • Vehicle performance analysis and tuning
  • Educational projects related to automotive systems

Technical Specifications

The following table outlines the key technical details of the SparkFun OBD-II UART module:

Parameter Specification
Supply Voltage 5V (via UART interface or external power source)
Communication Protocol UART (9600 bps default, configurable)
OBD-II Protocol Support ISO15765-4 (CAN), ISO9141-2, ISO14230-4 (KWP2000), SAE J1850 VPW, SAE J1850 PWM
Operating Temperature -40°C to +85°C
Dimensions 1.8" x 1.2" (45.7mm x 30.5mm)
Connector Type DB9 (OBD-II) and 6-pin UART header

Pin Configuration

The module features a 6-pin UART header for interfacing with microcontrollers or other devices. The pin configuration is as follows:

Pin Name Description
1 GND Ground
2 VCC Power supply input (5V)
3 TX UART Transmit (data from module to host)
4 RX UART Receive (data from host to module)
5 RTS Request to Send (optional, for flow control)
6 CTS Clear to Send (optional, for flow control)

Usage Instructions

Connecting the Module

  1. Power Supply: Connect the VCC pin to a 5V power source and the GND pin to ground.
  2. UART Interface: Connect the TX pin of the module to the RX pin of your microcontroller, and the RX pin of the module to the TX pin of your microcontroller.
  3. OBD-II Connector: Plug the DB9 connector into the OBD-II port of your vehicle.
  4. Optional Flow Control: If required, connect the RTS and CTS pins for hardware flow control.

Using with Arduino UNO

The SparkFun OBD-II UART module can be easily interfaced with an Arduino UNO. Below is an example code snippet to read data from the module:

#include <SoftwareSerial.h>

// Define RX and TX pins for SoftwareSerial
SoftwareSerial obdSerial(10, 11); // RX = pin 10, TX = pin 11

void setup() {
  Serial.begin(9600); // Initialize hardware serial for debugging
  obdSerial.begin(9600); // Initialize OBD-II UART communication

  Serial.println("Initializing OBD-II UART...");
  delay(1000); // Allow time for initialization
}

void loop() {
  // Check if data is available from the OBD-II module
  if (obdSerial.available()) {
    String obdData = ""; // Variable to store incoming data

    // Read all available data from the module
    while (obdSerial.available()) {
      char c = obdSerial.read();
      obdData += c;
    }

    // Print the received data to the Serial Monitor
    Serial.println("OBD-II Data: " + obdData);
  }

  delay(500); // Delay to avoid flooding the Serial Monitor
}

Important Considerations

  • Ensure the vehicle is OBD-II compliant before connecting the module.
  • Use a stable 5V power source to avoid damaging the module.
  • Configure the UART baud rate if the default (9600 bps) does not match your application.
  • Avoid connecting or disconnecting the module while the vehicle is powered on.

Troubleshooting and FAQs

Common Issues

  1. No Data Received from the Module

    • Ensure the TX and RX pins are correctly connected.
    • Verify that the vehicle is OBD-II compliant.
    • Check the baud rate settings of your microcontroller and the module.
  2. Module Not Powering On

    • Confirm that the VCC pin is receiving a stable 5V supply.
    • Check the ground connection.
  3. Unrecognized OBD-II Protocol

    • Ensure the vehicle supports one of the protocols listed in the specifications.
    • Try resetting the module and reconnecting.
  4. Data Corruption or Incomplete Data

    • Use shorter UART cables to reduce noise.
    • Enable hardware flow control by connecting the RTS and CTS pins.

FAQs

Q: Can this module be used with a Raspberry Pi?
A: Yes, the module can be connected to a Raspberry Pi via its UART pins. Ensure proper voltage level shifting if required.

Q: How do I change the UART baud rate?
A: The baud rate can be configured by sending specific AT commands to the module. Refer to the manufacturer's datasheet for details.

Q: Is the module compatible with electric vehicles (EVs)?
A: The module can access OBD-II data from EVs if they support standard OBD-II protocols. However, some EVs may use proprietary protocols.

Q: Can I use this module for real-time data logging?
A: Yes, the module is suitable for real-time data logging when paired with a microcontroller or computer.

By following this documentation, users can effectively integrate the SparkFun OBD-II UART module into their projects and access valuable vehicle data.