OK, I've trimmed this down as much as I can. The "hello world" printed to the LCD in setup() works fine, and then the mills() counter starts. On the serial line it continues fine, but on the LCD it gets as far as ~4k to ~6k (i.e. 4 to 6 seconds) and then stops.
I'm using the IDE version 1.0.2 on Mac OSX Mountain Lion on a 2012 macbook Pro 15". I've copied the new LiquidCrystal library V1.2.1 (from here https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads) into my libraries folder.
I've tried this with 4k7 pull-up resistors between SDA and +5V and between SDL and +5V.
//DFRobot.com
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h> // F Malpartida's NewLiquidCrystal library
#define I2C_ADDR 0x20 // Define I2C Address where the PCF8574A is
#define BACKLIGHT_PIN 7
#define En_pin 4
#define Rw_pin 5
#define Rs_pin 6
#define D4_pin 0
#define D5_pin 1
#define D6_pin 2
#define D7_pin 3
#define LED_OFF 0
#define LED_ON 1
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
void setup()
{
Serial.begin(9600);
lcd.begin (20,4); // initialize the lcd
// Switch on the backlight
lcd.setBacklightPin(BACKLIGHT_PIN,NEGATIVE);
lcd.setBacklight(LED_ON);
lcd.setCursor(0, 0);
lcd.print("Hello world");
delay(1000);
lcd.setCursor(0, 0);
lcd.print(" ");
}
void loop()
{
delay(1000);
Serial.println(millis());
lcd.setCursor ( 0, 0 );
lcd.print(millis());
}