How communicate with a tractor using isobus ?

Hello everyone,

I am trying to establish communication with the ISOBUS on my tractor (PUMA Case IH 185 hp) using an Arduino Uno and an MCP2515 CAN module from AZ-Delivery.

I searched for details and information about isobus on my specific tractor but i found nothing...

Here's what I've done so far:

  1. Hardware Setup:
  • Arduino Uno
  • MCP2515 CAN module from AZ-Delivery
  • Properly connected CANH and CANL lines to the ISOBUS on the tractor
  • Ensured the module and Arduino are correctly powered
  1. Software:
   #include <CAN.h>

void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.println("CAN Receiver");

  // Start the CAN bus at 500 kbps
  if (!CAN.begin(500E3)) {
    Serial.println("Starting CAN failed!");
    while (1);
  }
}

void loop() {
  int packetSize = CAN.parsePacket();

  if (packetSize) {
    Serial.print("Received packet with id 0x");
    Serial.print(CAN.packetId(), HEX);
    Serial.print(", length ");
    Serial.print(packetSize);
    Serial.println();

    byte data[packetSize];

    // Read the data into the array
    for (int i = 0; i < packetSize; i++) {
      data[i] = CAN.read();
    }

    Serial.print("Data in HEX: ");
    for (int i = 0; i < packetSize; i++) {
      if (data[i] < 0x10) {
        Serial.print('0');  // Pad single hex digits with a leading zero
      }
      Serial.print(data[i], HEX);
      Serial.print(' ');
    }
    Serial.println();

    Serial.print("Data in DEC: ");
    for (int i = 0; i < packetSize; i++) {
      Serial.print(data[i]);
      Serial.print(' ');
    }
    Serial.println();

    Serial.print("Data as ASCII: ");
    for (int i = 0; i < packetSize; i++) {
      if (data[i] >= 32 && data[i] <= 126) {  // Printable ASCII range
        Serial.print((char)data[i]);
      } else {
        Serial.print('.');
      }
      Serial.print(' ');
    }
    Serial.println();
    Serial.println(); // Blank line between packets
  }
}

Despite my efforts, after connecting my device to the tractor, I receive no messages or responses at all—nothing appears on the serial monitor.

Could anyone provide some guidance or tips on what I might be missing? Are there any specific PGNs (Parameter Group Numbers) I should be filtering for, or any additional steps I need to take to successfully read data from the tractor's ISOBUS?

Thank you in advance for your help!

Best regards

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.