Hi ![]()
I've tried to read the VIN of my car with the CAN-BUS-Shield from Seeedstudio.
When I use the following code the response contains only the first three chars of the VIN (TMB).
I found this wikipedia article which describes the flow control frame. ISO 15765-2 - Wikipedia
Can someone tell me how I can read the whole VIN with this technique?
  #include <mcp_can.h>
  #include <SPI.h>
  #define CAN_BCAST 0x7df
  MCP_CAN CAN(9);
  unsigned char Flag_Recv = 0;
  unsigned char len = 0;
  unsigned char buf[8];
  char str[20];
  //EXTBYTS MODE PID UNUSED
  unsigned char canBuf[8] = {0x02, 0x09, 0x02, 0, 0, 0, 0, 0};
  unsigned char canFlow[8] = {0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
  void setup() {
   Serial.begin(9600);
  //---------------------------------------------------------------------------------------------------------------
   //Init CAN-Bus
   pinMode(2, INPUT); // Setting pin 2 for /INT input
   Serial.println("Init CAN-BUS...");
   if (CAN.begin(CAN_500KBPS) == CAN_OK)
    Serial.print("Init CAN-BUS done!");
   else
    Serial.print("Init CAN-BUS ERROR!");
   CAN.init_Mask(0, 0, 0x7f0);
   CAN.init_Mask(1, 0, 0x7f0);
   CAN.init_Filt(0, 0, 0x7e0);
   CAN.init_Filt(1, 0, 0x7e0);
   CAN.init_Filt(2, 0, 0x7e0);
   CAN.init_Filt(3, 0, 0x7e0);
   CAN.init_Filt(4, 0, 0x7e0);
   CAN.init_Filt(5, 0, 0x7e0);
  }
  void loop() {
   // put your main code here, to run repeatedly:
   Serial.println();
   Flag_Recv = 0;
   unsigned char vinBuf[8];
 Â
   CAN.sendMsgBuf(0x7df, 0, 8, canBuf);
   delay(100);
   CAN.readMsgBuf(&len, vinBuf);
   for(int i = 0; i<len; i++)  // print the data
      {
        Serial.print("");
        Serial.print(vinBuf[i], HEX);
        Serial.print("\t");
      }
   Serial.println();
   delay(100);
   CAN.sendMsgBuf(0x7df, 0, 8, canFlow);
   delay(100);
   CAN.readMsgBuf(&len, vinBuf);
  Â
   for(int i = 0; i<len; i++)  // print the data
      {
        Serial.print("");
        Serial.print(vinBuf[i], HEX);
        Serial.print("\t");
      }
   Serial.println();
   while(1);
  }
Thanks in advance! ![]()
MrDernst