New and growing well-documented, feature-complete I2C device library

mem:
I think that 250ms is too short for some precision I2C devices that have long sample times.
I suggest at least doubling the default value to avoid false errors with those devices.

Good point. I was unaware of devices that take that long; my thought was that 1 sec (in your original example) was a LONG time to block for actions that typically execute orders of magnitude faster than that. As a compromise, I've left the default at 250ms and added an optional "timeout" argument to the tail end of each read* method, so that for those specific actions that might legitimately take a long time, it's easy to specify a longer timeout. You could already have just modified the I2C::readTimeout variable before calling the desired read* method, but that's not very convenient or pretty. This is much better, and I probably should have done it that way in the first place. Yay for helpful ideas from other people!

retrolefty:
Thank you very much for your quick work on this ADS1115 device. I will try and check it out with the module this weekend. One possible question I have on a quick read through, are you sure about the I2C device addresses this device would use? ... From the datasheet (QuickStart Guide, page 11) the 7 bit address is show as [1001000]. ... My understanding with using the Wire library calls, that one uses the 7 bit address for the calls and the Wire library adds the internal R/W bit to form the full 8 bit I2C address?

Lefty, you are absolutely right. I read through the address descriptions too fast, assumed the left-most bit was 0x80 instead of 0x40, and totally borked the calculations in my head. I've fixed it per your corrections and pushed the update to the repository. You'd think that knowing all base I2C addresses are 7 bits long would have thrown up a red flag while looking at a clearly 8-bit value...

Jeff