Hi,
I've run a test and that seems to work in as far as the LED on channel 0 fades up. What I did notice though was that the LCD continued to count up past 4095. Notice I placed a 1 as the value for the "ON" setting following Steve's comments. I'm hoping that is correct ?
I don't know, I haven't read the datasheet for the device you're using, I only commented on the use of I2CWRITE from a general perspective.

Just need to figure out how to specify the size of the variable as you suggest - any pointers ?
Not sure I understand... I've never used I2C but I'm pretty sure that, unlike SHIFTOUT, the transactions are always in bytes. In other words all transactions are in multiple of 8bits. If the device you're talking to is actually USING 1 or 7 or 12 or 14 bits out of the 8 or 16 you send is completely up to that device. However, if the device specify a range from 0 to 4095 then actually SENDING it value outside that range would/could result in unexpected things. Again, I haven't read the datasheet for the device in question.

As the documentation for I2CWRITE says, specifying a BYTE variable will send a byte variable, specifying a WORD variable will send a WORD variable (two bytes, high byte first).

If you want to prevent the value you're sending from ever going above 4095 you can, for example, AND it with 4095.

/Henrik.