Why do I need Wire.send(0x00) before command?

Hi,
I'am just trying to learn the Arduion together with an LCD with I2C bus. (LCD see LCD03). I use the Arduino Wire library rather than any LCD library just to learn what's going on "behind the scene".

Anyhow, I have seen that I (always?) need to use "Wire.send(0x00)" before any command e.g. Wire.send(0x13). For example to switch on the backlight I need to do this;

Wire.beginTransmission(0x63);  // The 7 bit LCD adress is 0x63
Wire.send(0x00);  // Why is this row needed?
Wire.send(0x13);  // Backlight on
Wire.endTransmission();

Why do I need to send "0x00" first?

Why do I need to send "0x00" first?

That is telling the I2C device what register number you want the next byte sent to be written to. That is most likely a 'command' register in the device that setups various options.

Lefty

Aha, thanks! Yes that makes sense.