There may be others who read here who are as marginally competent in coding as i am, but....
After discovering that the Honeywell Sensors I need for a project are sold with a single I2C address despite suggestions that they might be made in 8 or so flavors in the sales literature, I washed up on the shores of SoftI2CMaster.
Since this is a package which enables the use of any of the Arduino digital pins to substitute for the hardware I2C interface, I assumed it would provide a workaround for this address conflict issue. I also, foolishly as it turned out, assumed that with the substitution of the SoftI2Cmaster library for the Wire library and some fussing with pin numbers, I would simply be able to do a search and replace of Wire with "I2C" in the "Wire.whatever" commands resident in the existing and useful sketches already available for my sensors. And it would work!
But alas, this was not to be. None of the extant versions of SoftI2CMaster provides the following functions:
Wire.requestFrom(HONEYWELL1, 4);
while(Wire.available() == 0);
Wire.requestFrom(HONEYWELL1, 4);
byte a = Wire.read();
etc....
The beauty of this version of requestFrom is that it allows the specification of the number of bytes to be read from the specified register, and the while(Wire.available() == 0) lays them out so that they can be read a byte at a time.
easypeasy in Wire.
So the issue is that some very good libraries have been constructed for people who can code the sketches themselves, which I suppose like a lot of other things, I'll eventually work out.
But it could have been so easy. There appear to be four or five libraries available to use digital pins instead of hardware for I2C, and a couple of them are quite sophisticated, and yet....
I can't be the first person to have thought of this. Maybe code that works on the digital pins must necessarily be so different that the commonality in architecture between Wire and SoftI2CMaster isn't
reliably achievable.
Am I missing something here?
BTW, nothing I've said above should be interpreted as critical of the people who have put together these libraries, some with a considerable amount of signal testing. Really admirable.
Maybe I should work harder on my code.