improve i2c setup and handling
set SCL timeout based on speed requested
check interrupt flag rather than only timeout flag for i2c timeouts