I was working on an application that needs the stop condition immediately. So this adds a timer after each byte is received/sent and if the bus is idle at the timeout, send the stop. Also, I noticed when you use the i2c-slave-eeprom, if you read some data and then read some data again, the last byte of the first read will be the first byte of the second read. This is because i2c-slave-eeprom expects a read-ahead. That's what the documentation says, at least. -corey