Yes, two 10k resistors i parallel should correspond to a single 5k resistor. Well, it was just a thought.
Looking again at your code and comparing to the user manual you referred to, it seems you're are doing the reads wrong. You should read location 2 and 3 separately to get the high and low byte respectively. As it is now, you issue a series of four transactions where the read buffer gets overwritten by the the second read transaction. Your read buffer is 2 bytes but I think it only need be one byte since first you should read the high byte and then you read the low byte (the order does not seem to matter).
Also, I believe the location counter (address counter) auto-increments for each read performed so you could probably do something like this instead (here, the read buffer is still 2 bytes long):
xActions = new I2CDevice.I2CTransaction[]{ I2CDevice.CreateWriteTransaction(new byte[] { 0x02 }), I2CDevice.CreateReadTransaction(RegisterValue),}int c = srf02.Execute(xActions, 1000);Debug.Assert(c > 0, "I2C write/read failed!");int val = (RegisterValue[0] << 8)|RegisterValue[1];As you know, the Netduino is 5V tolerant and I wonder if the the LLC is really necessary - have you tried without it?
Hmm, seems like I have not understood this from the beginning... So LSB shall be skipped? Then why is both MSB and LSB available (Range High byte/MSB and Range Low byte/LSB)... I'm getting correct results now when only reading the MSB and doing the shift etc with it Why did you changed so that 2 is the number that means that the I2C operation has failed? I know that the N+ is 5V tolerant, but only the pins and the circuit board in my interpretation, I have never understood that the logic supports it as well...
Thanks for your time and help!