Go Down

Topic: 1902 Shift Errors (Read 1 time) previous topic - next topic


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

Code: [Select]
  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
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)


You could switch to this library:
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

Go Up