You gave me some hope when you mentioned internal NXTs' resistors. But then I calculated that with 4.7k internal resistors and (recommended) 82k pull-up resistors I can get voltage as low as 0.23V. Even with 47k pull-up resistors I get 0.4V. But anyway, I will replace them with 330R, which is more than enough for ARM's I/O pins protection (they can handle maximum 20mA of current - 5V/0.02A = 250ohm). I always use external resistors.
I already tried all modes of I2C communication (I'm colleague of Matej and we are working together on RoboCup project on Secondary School of Electrical Engineering and Computer Science Maribor, Slovenia. Now, when compass is working properly, we have problems with this sensors)
. There are some differences, but none of them is working. Tomorrow I can attach analyse results made with USBee DX
Logic Analyzer, attached to SCL and SDA lines.
Well, I don't really need additional functions if already included ones will work properly. But I'm just used to have full control of hardware (it's very hard to get used to Java and its' high-level functions, if you program AVRs in ASM and C). I don't like implementing I2C functions in Java, because that is too slow. I have some AVRs attached as TWI/I2C Slaves, which can operate to SCL frequencies up to 1MHz (I will probably use USART for communicating with them, but anyway, sometimes I2C is better). So I would prefer adding this functions to firmware (which, I think, is programmed in C), but I get lost finding firmware files including them.
What are speeds of "Lowspeed", "Standard" and "Hispeed" I2C modes (kHz)?
And, yes, I should mention that communication between AVRs and MLX90614 sensors in working OK, whenever is use hardware (TWI) or software I2C.
Best regards, Bojan