Sainsmart LCD2004 newbie question - can't get it working

There are two notations for i2c addresses: somepeople use the 7-bit convention and others the 8-bit convention. so an address of 0b010 0111 (0x27 in 7-bit convention) can be represented at 0b0100 1110 (=0x2e in 8-bit land, and that's actually how it is sent to the device).

I believe you have a typo in there which makes it difficult to follow your explanation. The 0x2e should be 0x4e.

0 1 0 0 1 1 1 (0x27) basic I2C address
0 1 0 0 1 1 1 0 (0x4E) I2C address shifted one bit to the left to allow least significant bit to be used for direction

Don

Edit: And my original correction had a different error (I wrote it as 0x6E) which is all the more reason to just stick with the bit pattern.