OBD CAN Bus Shield for ESP32 30-Pin Development Board

Model: ESP32OBDCAN2
SKU: OBD-ESP32
Out of stock
EGP 550.000
Out of stock

 Key Features:

✅ OBD-II to CAN Bus Interface → Enables ESP32 to communicate with a vehicle’s CAN network
✅ CAN Transceiver: 65HVD230 → Ensures stable, high-speed CAN communication
✅ CAN Bus ESD Protection: NUP2105 → Protects against electrostatic discharge and voltage spikes
✅ OBD-II 16-Pin Male Connector → Direct plug-in for vehicle diagnostics and data logging
✅ Built-in DC-DC Converter → Converts 12V vehicle power to 5V for ESP32
✅ Battery Voltage Measurement → Uses a 1MΩ / 270KΩ voltage divider connected to GPIO32
✅ Programmable LEDs (GPIO26 & GPIO27) → Can indicate WiFi status, CAN activity, or user-defined functions
✅ Software Compatibility:

  • SavvyCAN & ESP32RET firmware
  • Arduino CAN libraries (Arduino TWI, etc.)
  • ESP-IDF TWAI (Two-Wire Automotive Interface) driver

Description

OBD CAN Bus Shield for ESP32 30-Pin Development Board

The OBD CAN Bus Shield is a compact and powerful add-on designed for ESP32 30-pin development boards, enabling automotive diagnostics, OBD-II communication, and CAN bus data monitoring. Built with the 65HVD230 CAN transceiver and NUP2105 CAN bus ESD protection, this shield provides reliable and noise-resistant CAN communication.

The board integrates a 16-pin OBD-II male connector, allowing direct connection to vehicles for real-time data acquisition. It features programmable GPIO26 & GPIO27 LEDs, which can be used to indicate WiFi status, CAN bus activity, or other functions. A built-in DC-DC converter steps down 12V vehicle power to 5V, safely powering the ESP32. Additionally, a voltage divider (1MΩ / 270KΩ) allows the ESP32 to measure vehicle battery voltage via GPIO32.

This shield is compatible with SavvyCAN, ESP32RET, and Arduino CAN bus libraries (such as Arduino TWI), making it ideal for vehicle diagnostics, reverse engineering, and embedded CAN bus projects.


 Technical Specifications:

  • Microcontroller Compatibility: ESP32 30-Pin Development Board
  • CAN Transceiver: 65HVD230
  • ESD Protection: NUP2105
  • OBD-II Interface: 16-Pin Male Connector
  • CAN Bus Voltage Level: 3.3V Logic
  • Power Input: 12V from OBD-II Port
  • DC-DC Converter Output: 5V (Powers ESP32)
  • Battery Voltage Measurement: 1MΩ / 270KΩ Divider (GPIO32)
  • LED Indicators: GPIO26 & GPIO27 (User-Programmable)
  • Communication Protocol: CAN Bus
  • Supported Software:
    • SavvyCAN, ESP32RET
    • Arduino IDE (Arduino CAN Libraries)
    • ESP-IDF (TWAI Driver)

 Pinout & Connections:

Feature ESP32 Pin
CAN TX GPIO4
CAN RX GPIO5
Battery Voltage Measurement GPIO32
User LED 1 GPIO26
User LED 2 GPIO27
5V Power from DC-DC 5V Pin

 Applications:

🔹 Vehicle OBD-II Diagnostics – Read live vehicle data, engine status, and trouble codes
🔹 CAN Bus Data Logging – Capture CAN messages for analysis and reverse engineering
🔹 Custom Automotive Projects – Build smart dashboards, IoT vehicle monitors, or ECU tuning tools
🔹 Embedded CAN Bus Development – Develop and test CAN-based IoT and automotive applications


 Package Includes:

✔️ 1x OBD CAN Bus Shield for ESP32 30-Pin Board
✔️ Pre-soldered Female Headers for ESP32
✔️ 16-Pin OBD-II Male Connector
✔️ Built-in DC-DC Converter & Voltage Divider

This module is ideal for automotive engineers, developers, and hobbyists working on CAN bus and OBD-II projects.

 


 Sample CAN Bus TX Code:

#include <CAN.h>
#define TX_GPIO_NUM   4  // Working TX pin
#define RX_GPIO_NUM   5  // Working RX pin
void setup() {
  Serial.begin(115200);
  while (!Serial);
  delay(1000);
 pinMode(26,OUTPUT);   //LED1
 pinMode(27,OUTPUT);   //LED2
   digitalWrite(27,HIGH);
 digitalWrite(26,LOW);
  Serial.println(“CAN Sender”);
  // Set CAN TX and RX pins
  CAN.setPins(RX_GPIO_NUM, TX_GPIO_NUM);
  // Start the CAN bus at 500 kbps
  if (!CAN.begin(500E3)) {
    Serial.println(“Starting CAN failed!”);
    while (1);
  }
  Serial.println(“CAN Bus Initialized”);
}
void loop() {
  // Send standard packet
  Serial.print(“Sending packet … “);
  CAN.beginPacket(0x12);
  CAN.write(‘h’);
  CAN.write(‘e’);
  CAN.write(‘l’);
  CAN.write(‘l’);
  CAN.write(‘o’);
  CAN.endPacket();
  Serial.println(“done”);
 digitalWrite(26,HIGH);
 digitalWrite(27,LOW);
   delay(500);
   digitalWrite(27,HIGH);
 digitalWrite(26,LOW);
   delay(500);
}

 


 Sample CAN Bus RX Code:

#include <CAN.h>
#define TX_GPIO_NUM  4  // TX pin for ESP32 (connected to RX of CAN transceiver)
#define RX_GPIO_NUM  5  // RX pin for ESP32 (connected to TX of CAN transceiver)
void setup() {
  Serial.begin(115200);
  while (!Serial);
  delay(1000);
 pinMode(26,OUTPUT);
 pinMode(27,OUTPUT);
   digitalWrite(27,HIGH);
 digitalWrite(26,LOW);
  Serial.println(“CAN Receiver”);
  // Set up the pins used for CAN
  CAN.setPins(RX_GPIO_NUM, TX_GPIO_NUM);
  // Start CAN at 500 kbps
  if (!CAN.begin(500E3)) {
    Serial.println(“Starting CAN failed!”);
    while (1);
  }
  Serial.println(“CAN Bus Initialized”);
}
void loop() {
  // Check if a CAN packet is available
  int packetSize = CAN.parsePacket();
  if (packetSize) {
    Serial.print(“Received packet with ID: 0x”);
    Serial.print(CAN.packetId(), HEX);
      Serial.print(” (Standard)”);
    Serial.print(” Length: “);
    Serial.println(packetSize);
    // Read the data from the packet
    while (CAN.available()) {
      char c = (char)CAN.read();
      Serial.print(c);
    }
    Serial.println();
    Serial.println(“———————-“);
    digitalWrite(26,HIGH);
 digitalWrite(27,LOW);
   delay(100);
   digitalWrite(27,HIGH);
 digitalWrite(26,LOW);
   delay(100);
  }
}

Additional information

Weight 0.01 kg

Reviews

There are no reviews yet.

Be the first to review “OBD CAN Bus Shield for ESP32 30-Pin Development Board”
OBD CAN Bus Shield for ESP32 30-Pin Development Board EGP 550.000
Out of stock