The RejsaCAN_OBD is a diagnostic interface designed for vehicles that utilize the CAN (Controller Area Network) protocol. It enables communication with the onboard computer systems, allowing users to read diagnostic trouble codes (DTCs), monitor real-time data, and analyze vehicle performance. This component is ideal for automotive diagnostics, performance tuning, and real-time data logging.
The RejsaCAN_OBD is designed to interface with the OBD-II port of vehicles and supports the CAN protocol. Below are the key technical details:
Parameter | Value |
---|---|
Protocol Support | CAN (ISO 11898) |
Operating Voltage | 5V (via microcontroller) |
Communication Interface | UART (Serial) |
Baud Rate | Configurable (default: 500 kbps) |
Operating Temperature | -40°C to +85°C |
Dimensions | 50mm x 25mm x 10mm |
Pin Name | Pin Number | Description |
---|---|---|
VCC | 1 | Power input (5V) |
GND | 2 | Ground connection |
RX | 3 | UART receive pin (connect to TX of microcontroller) |
TX | 4 | UART transmit pin (connect to RX of microcontroller) |
CAN_H | 5 | CAN high signal (connect to vehicle OBD-II port) |
CAN_L | 6 | CAN low signal (connect to vehicle OBD-II port) |
VCC
pin to a 5V power source and the GND
pin to ground.RX
pin of the RejsaCAN_OBD to the TX
pin of your microcontroller.TX
pin of the RejsaCAN_OBD to the RX
pin of your microcontroller.CAN_H
pin to the CAN high line of the vehicle's OBD-II port.CAN_L
pin to the CAN low line of the vehicle's OBD-II port.Below is an example of how to use the RejsaCAN_OBD with an Arduino UNO to read data from a vehicle:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial RejsaCAN(10, 11); // RX = pin 10, TX = pin 11
void setup() {
Serial.begin(9600); // Initialize Serial Monitor
RejsaCAN.begin(500000); // Initialize RejsaCAN_OBD at 500 kbps
Serial.println("RejsaCAN_OBD Initialized");
delay(1000);
}
void loop() {
// Send a request to the vehicle (e.g., engine RPM)
RejsaCAN.println("010C"); // OBD-II PID for engine RPM
// Wait for a response
if (RejsaCAN.available()) {
String response = "";
while (RejsaCAN.available()) {
char c = RejsaCAN.read();
response += c;
}
Serial.println("Response: " + response);
}
delay(1000); // Wait 1 second before sending the next request
}
010C
with the appropriate OBD-II PID for the data you want to retrieve.SoftwareSerial
library is installed and configured correctly.No Response from the Module:
CAN_H
and CAN_L
connections are correct.Incorrect or Garbled Data:
Module Not Powering On:
VCC
pin is receiving 5V.Vehicle Not Responding:
Q: Can the RejsaCAN_OBD be used with vehicles that do not support CAN?
A: No, the RejsaCAN_OBD is specifically designed for vehicles that utilize the CAN protocol.
Q: How do I know if my vehicle supports the CAN protocol?
A: Most vehicles manufactured after 2008 support the CAN protocol. Check your vehicle's manual or OBD-II port specifications for confirmation.
Q: Can I use the RejsaCAN_OBD with other microcontrollers besides Arduino?
A: Yes, the RejsaCAN_OBD can be used with any microcontroller that supports UART communication, such as ESP32, STM32, or Raspberry Pi.
Q: Is it safe to leave the module connected to the vehicle?
A: Yes, but it is recommended to disconnect the module when not in use to prevent unnecessary power drain.
Q: How do I clear diagnostic trouble codes (DTCs)?
A: Send the OBD-II command 04
to clear all stored DTCs. Ensure you understand the implications of clearing codes before proceeding.