How does the Arduino send more than 6 bytes via I2C I have been working with the wire library (I2C) to send data from one Arduino to another.  I read that the Arduino can only send 6 bytes per cycle, but I have been able to transfer much larger strings.  This code works without error:

  Wire.beginTransmission(4); // transmit to device #4

  for(int i = 0; i &lt; 20; i ++){
    char rand = random(65, 100);
    Wire.write(rand); 
  }

  Wire.endTransmission();    // stop transmitting


How is this possible?  It seams that 32 characters can be sent without trouble.

I read this here: http://arduino.cc/en/Tutorial/MasterReader


  Arduino 1, the Master, is programmed to request, and then read, 6 bytes of data sent from the uniquely addressed Slave Arduino.


Now that I look at this again (after reading the responses) I think that the limit was set in the code sample.
There is no reason to believe there is a 6 byte limit.

The Arduino Reference makes no mention of a 6 byte limit.

The Wire.cpp defines 'txBuffer[BUFFER_LENGTH];' where BUFFER_LENGTH = 32 (defined in Wire.h). The maximum is 32 bytes, just as you noticed.