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:
- 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
- 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