user8309: I have an I2C LCD screen provided with a Sunfounder kit and certainly built by DFRobot or such a constructor (there is nothing written on the LCD), and an Arduino Uno R3 copy.
My issue is when I use lcd.print() to write a string on the LCD, only the first character of the string is printed. I can only print on other positions by using setCursor but only one character at a time.
I tried to change libraries (https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library, the one supplied with the LCD...), It always behaves the same!
For example, here's a very simplistic program which exhibits this behavior:
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);
// set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
  lcd.init();
  lcd.backlight();
}

void loop() {
  lcd.print("write");
  delay(1000);
  lcd.setCursor(10, 0);
  lcd.print("p10");
  lcd.setCursor(0, 1);
  lcd.print("0, 1 write");
  if((millis() / 1000) % 5 == 0) {
    lcd.clear();
    delay(1000);
  }
}

I end up with something like:
w      p   
0w         

On the screen (before the clear() occurs of course).
Instead of something like:
write  p10      
0, 1 writewrite

The lcd itself was ok some time ago. The only thing I could think is I recently updated to Arduino 1.6.6. Can it be a bug in the compiler?
The hello world from DFRobot also doesn't work properly (first char only, again) (please note to make it display something with my LCD I have to change the address from 0x20 to 27).

user67115: I had the same problem. My LCD only showed one character. I downloaded and tryed docens of LCD libraries and ended up with a bunch of libraries installed in my IDE. After days trying to solve the problem I decided to clear my IDE deleting the libraries directory (mind that the IDE could take them from documents/arduino/library folder). After that I tested one by one the LCD libraries. I case it did not work I deleted it. The one posted above  https://github.com/marcoschwartz/LiquidCrystal_I2C worked!!.I don't really know where was the problem exactly, maybe a conflict among the libraries intalled.

user15157: I'm incredibly new to Arduino (I literally got one a few hours ago and I'm still finding my feet with it!) so take that into account when considering anything I say however I'd be inclined to agree that this may be an issue with the 1.6.6 IDE.
I was getting pretty much the same symptoms on a Freematics MEGA2560/3.2" SSD1289 LCD using the MultiLCD library using 1.6.6. Based on your comment above I uninstalled and installed 1.6.5 instead, recompiled and uploaded and it's now displaying properly...

user15276: I tried the solution described by AFract and it solved the problem. (sorry, I couldn't reply to his comment because I don't have enough reputation.)
I got the new LiquidCrystal_I2C library here: https://github.com/marcoschwartz/LiquidCrystal_I2C
Info on the code commit is here: https://github.com/marcoschwartz/LiquidCrystal_I2C/pull/5

user19352: I have had same problem, issued on v1.6.7 and v1.6.8. I solved it with the new 'marcoschwartz' library specified in other answers.
Previously, I had used the same DFRobot library, which worked fine on IDE 1.6.0, until I upgraded on v1.6.7.

user3917: Your code contains, in part,
#include <LiquidCrystal_I2C.h>
....
LiquidCrystal_I2C lcd(0x27, 16, 2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
  lcd.init();
  lcd.backlight();
}

For all of the constructors in LiquidCrystal_I2C.h on my system, the second and third parameters are EN and RW, ie, the enable and read/write backpack-pin numbers.  They don't specify the size of the display.
I suggest trying constructor usage like
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7); // 0x27 is the I2C bus address for an unmodified backpack

and in place of lcd.init(); say
lcd.begin (16,2); // for 16 x 2 LCD module

Note, lcd.begin() will call init().

user8309: That's definitely a bug appeared in 1.6.6.
For reference, see
https://blog.arduino.cc/2015/11/03/arduino-ide-1-6-6-released-and-available-for-download/#comment-278766
https://forum.arduino.cc/index.php?topic=359652.0
http://forum.arduino.cc/index.php?topic=357312.msg2476987#msg2476987
Last link seems to provide a solution, by a updated version of LCD I2C lib : https://github.com/marcoschwartz/LiquidCrystal_I2C (not yet tried).
The 1.6.6 is a bit messy according some people, but the I2C lib too ;). So the question is : where should it be fixed ?

8309: <p>I have an I2C LCD screen provided with a Sunfounder kit and certainly built by DFRobot or such a constructor (there is nothing written on the LCD), and an Arduino Uno R3 copy.</p>

<p>My issue is when I use <code>lcd.print()</code> to write a string on the LCD, only the <strong>first character</strong> of the string is printed. I can only print on other positions by using setCursor but only one character at a time.</p>

<p>I tried to change libraries (<a href="https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library" rel="nofollow" title="github">https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library</a>, the one supplied with the LCD...), It always behaves the same!</p>

<p>For example, here's a very simplistic program which exhibits this behavior:</p>

<pre><code>#include &lt;LiquidCrystal_I2C.h&gt;

LiquidCrystal_I2C lcd(0x27, 16, 2);
// set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
  lcd.init();
  lcd.backlight();
}

void loop() {
  lcd.print("write");
  delay(1000);
  lcd.setCursor(10, 0);
  lcd.print("p10");
  lcd.setCursor(0, 1);
  lcd.print("0, 1 write");
  if((millis() / 1000) % 5 == 0) {
    lcd.clear();
    delay(1000);
  }
}
</code></pre>

<p>I end up with something like:</p>

<pre><code>w      p   
0w         
</code></pre>

<p>On the screen (before the <code>clear()</code> occurs of course).</p>

<p>Instead of something like:</p>

<pre><code>write  p10      
0, 1 writewrite
</code></pre>

<p>The lcd itself was ok some time ago. The only thing I could think is I recently updated to Arduino 1.6.6. Can it be a bug in the compiler?</p>

<p><a href="http://www.dfrobot.com/index.php?route=product/product&amp;path=156_53&amp;product_id=135" rel="nofollow" title="The hello world from dfrobot">The hello world from DFRobot</a> also doesn't work properly (first char only, again) (please note to make it display something with my LCD I have to change the address from 0x20 to 27).</p>
 67115: <p>I had the same problem. My LCD only showed one character. I downloaded and tryed docens of LCD libraries and ended up with a bunch of libraries installed in my IDE. After days trying to solve the problem I decided to clear my IDE deleting the libraries directory (mind that the IDE could take them from documents/arduino/library folder). After that I tested one by one the LCD libraries. I case it did not work I deleted it. The one posted above  <a href="https://github.com/marcoschwartz/LiquidCrystal_I2C" rel="nofollow noreferrer">https://github.com/marcoschwartz/LiquidCrystal_I2C</a> worked!!.I don't really know where was the problem exactly, maybe a conflict among the libraries intalled.</p>
 15157: <p>I'm incredibly new to Arduino (I literally got one a few hours ago and I'm still finding my feet with it!) so take that into account when considering anything I say however I'd be inclined to agree that this may be an issue with the 1.6.6 IDE.</p>

<p>I was getting pretty much the same symptoms on a Freematics MEGA2560/3.2" SSD1289 LCD using the MultiLCD library using 1.6.6. Based on your comment above I uninstalled and installed 1.6.5 instead, recompiled and uploaded and it's now displaying properly...</p>
 15276: <p>I tried the solution described by AFract and it solved the problem. (sorry, I couldn't reply to his comment because I don't have enough reputation.)</p>

<p>I got the new LiquidCrystal_I2C library here: <a href="https://github.com/marcoschwartz/LiquidCrystal_I2C" rel="nofollow">https://github.com/marcoschwartz/LiquidCrystal_I2C</a></p>

<p>Info on the code commit is here: <a href="https://github.com/marcoschwartz/LiquidCrystal_I2C/pull/5" rel="nofollow">https://github.com/marcoschwartz/LiquidCrystal_I2C/pull/5</a></p>
 19352: <p>I have had same problem, issued on v1.6.7 and v1.6.8. I solved it with the <a href="https://github.com/marcoschwartz/LiquidCrystal_I2C" rel="nofollow">new 'marcoschwartz' library</a> specified in other answers.</p>

<p>Previously, I had used the same DFRobot library, which worked fine on IDE 1.6.0, until I upgraded on v1.6.7.</p>
 3917: <p>Your code contains, in part,</p>

<pre><code>#include &lt;LiquidCrystal_I2C.h&gt;
....
LiquidCrystal_I2C lcd(0x27, 16, 2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
  lcd.init();
  lcd.backlight();
}
</code></pre>

<p>For all of the constructors in <code>LiquidCrystal_I2C.h</code> on my system, the second and third parameters are <code>EN</code> and <code>RW</code>, ie, the enable and read/write backpack-pin numbers.  They don't specify the size of the display.</p>

<p>I suggest trying constructor usage like</p>

<pre><code>LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7); // 0x27 is the I2C bus address for an unmodified backpack
</code></pre>

<p>and in place of <code>lcd.init();</code> say</p>

<pre><code>lcd.begin (16,2); // for 16 x 2 LCD module
</code></pre>

<p>Note, <code>lcd.begin()</code> will call <code>init()</code>.</p>
 8309: <p>That's definitely a bug appeared in 1.6.6.
For reference, see
<a href="https://blog.arduino.cc/2015/11/03/arduino-ide-1-6-6-released-and-available-for-download/#comment-278766" rel="nofollow">https://blog.arduino.cc/2015/11/03/arduino-ide-1-6-6-released-and-available-for-download/#comment-278766</a>
<a href="https://forum.arduino.cc/index.php?topic=359652.0" rel="nofollow">https://forum.arduino.cc/index.php?topic=359652.0</a>
<a href="http://forum.arduino.cc/index.php?topic=357312.msg2476987#msg2476987" rel="nofollow">http://forum.arduino.cc/index.php?topic=357312.msg2476987#msg2476987</a></p>

<p>Last link seems to provide a solution, by a <strong>updated version of LCD I2C lib</strong> : <a href="https://github.com/marcoschwartz/LiquidCrystal_I2C" rel="nofollow">https://github.com/marcoschwartz/LiquidCrystal_I2C</a> (not yet tried).</p>

<p>The 1.6.6 is a bit messy according some people, but the I2C lib too ;). So the question is : where should it be fixed ?</p>
