1902 Shift Errors

Hey guys,

I am pretty new to all this, but I am having some troubles shifting out to a 1602 LCD. I have read through some other threads and haven’t been able to solve my problems yet.

I am trying to use the ShiftLCD library, but I am getting two errors:

In file included from Display.pde:56:
C:\Users\rick\Desktop\arduino-1.0.2\libraries\ShiftLCD/ShiftLCD.h:116: error: conflicting return type specified for ‘virtual void ShiftLCD::write(uint8_t)’
C:\Users\rick\Desktop\arduino-1.0.2\hardware\arduino\cores\arduino/Print.h:48: error: overriding ‘virtual size_t Print::write(uint8_t)’

Here is the code that I am using.

Any help is appreciated. Thanks

  ShiftLCD Library - Display
 Demonstrates the use a 16x2 LCD display.  The ShiftLCD library works with
 all LCD displays that are compatible with the Hitachi HD44780 driver.
 There are many of them out there, and you can usually tell them by the
 16-pin interface.
 This sketch prints "Hello World!" to the LCD and uses the 
 display() and noDisplay() functions to turn on and off
 the display.
  The circuit:
 ---Shift Register 74HC595---
 * SR Pin 14 to Arduino pin 2
 * SR Pin 12 to Arduino pin 3
 * SR Pin 11 to Arduino pin 4
 * SR Pin  8 to Ground
 * SR Pin 16 to +5v
 * SR Pin 13 to Ground
 * SR Pin 10 to +5v
 -----Shift Reg to LCD--------
 * SR Pin 15 to D7
 * SR Pin 1  to D6
 * SR Pin 2  to D5
 * SR Pin 3  to D4
 * SR Pin 5  to MOSFET gate
 * SR Pin 6  to Enable
 * SR Pin 7  to RS
 -----LCD HD44780-------------
 * Vss to Ground
 * Vdd to +5V
 * Vo  to 10k Wiper
 * R/W to Ground
 * 5v  to +5v
 * Gnd to MOSFET Drain
 ------N Chanel MOSFET--------
 * Source to Ground
 * Gate   to SP Pin 5
 * Drain  to LCD Gnd
 * 1k Resistor Between gate and source
 For a more detailed schematic, please see my blog:
 Library modified from the original LiquidCrystal Library
 This example originaly by Tom Igoe, Jul 2009
 Example modified for use with ShiftLCD
 Chris Parish, January 12th 2010

// include the library code:
#include <ShiftLCD.h>

// initialize the library with the numbers of the interface pins
ShiftLCD lcd(2, 4, 3);

void setup() {
  // set up the LCD's number of rows and columns: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");

void loop() {
  // Turn off the display:
   // Turn on the display:

You need to replace the word 'void' in shiftlcd.h line 116 with the word 'size_t'

This was a breaking change somewhere between 0.22 and 1.0

You could switch to this library: https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home It has been tested on 1.x and is a direct replacement for the LiquidCrystal library that ships with the IDE. It supports many different interfaces: 4bit, i2c, 3 wire shift register, 2 wire shift register and has been highly optimized for speed. I use the SR2W 2 wire mode with backlight control (but then I'm the author of the 2wire code :D )

--- bill

Hey Bill thanks,

I came across that library shortly after posting. In fact I am working on your 2 wire set up ( that is when I get around to it, I have a 14M old).

If I have questions can I message you?


sure. For the SR2W two pin interface, look in the file LiquidCrystal_SR2W.h It has the wiring diagram for using a 74HC595 or 74164. I've added a diagram for using a 4094 but that hasn't been released yet. (No code changes, just an additional diagram for 4094 wiring)

--- bill