ATTINY85 + HD44780 + 74HC595 (3 pin interface, need help to troubleshoot)

Hi,

Before we begin, I should advise that this is my first post and I am fairly new to Arduino. I do have very basic programming knowledge though (VB.NET).

I am trying to connect ATTINY85 to the HD44780 LCD via the use of a 74HC595. I have managed to upload the program and breadboard the units together. However, the LCD is displaying garbled letters and symbols (Image attached). I am programming the ATTINY85 via USBasp.

Using Arduino v1.0.5
Library: LiquidCrystal595.7z (Attached) (https://code.google.com/p/arduino-lcd-3pin/downloads/list)

LCD P01 > GND
LCD P02 > +5V
LCD P03 > 10K Trimpot
LCD P04 > 74HC595 P07
LCD P05 > GND
LCD P06 > 74HC595 P15
LCD P07 > Not Connected
LCD P08 > Not Connected
LCD P09 > Not Connected
LCD P10 > Not Connected
LCD P11 > 74HC595 P01
LCD P12 > 74HC595 P02
LCD P13 > 74HC595 P03
LCD P14 > 74HC595 P04
LCD P15 > +5V
LCD P16 > BC547 Base

74HC595 P05 > Not Connected
74HC595 P06 > BC547 Emitter (Collector to GND)
74HC595 P08 > GND
74HC595 P09 > Not Connected
74HC595 P10 > +5V
74HC595 P13 > GND
74HC595 P16 > +5V

ATTINY85 P1 > USBasp RST
ATTINY85 P2 > 74HC595 P12
ATTINY85 P3 > 74HC595 P11
ATTINY85 P4 > GND
ATTINY85 P5 > USBasp MOSI
ATTINY85 P6 > USBasp MISO
ATTINY85 P7 > 74HC595 P14 ; USBasp SCK
ATTINY85 P8 > +5V

My code:

/* -----------------------------------------------------------------------------------
 * Adaption of the LCD4Bit library shipped with Arduino 22
 * for use with 74C595 shift register adapter board found on:
 * http://www.stephenhobley.com
 
 * Code adaption by Steve Hobley - February 2011

 /*---Shift Register 74HC595---
 * [SR Pin 14 (DS)]    to Arduino pin - Yellow wire [datapin]
 * [SR Pin 12 (ST_CP)] to Arduino pin - Green wire  [latchpin]
 * [SR Pin 11 (SH_CP)] to Arduino pin - White wire  [clockpin]
 * Black wire to Ground
 * Red wire to +5v

 -----Shift Reg to LCD--------
 * SR Pin 15  - ENABLE        10000000
 * SR Pin 1   - D4            00000010 
 * SR Pin 2   - D5	      00000100
 * SR Pin 3   - D6	      00001000
 * SR Pin 4   - D7	      00010000
 * SR Pin 5   - MOSFET / LED1 00100000
 * SR Pin 6   - LED 2         01000000
 * SR Pin 7   - RS            00000001
 *
 * ----------------------------------------------------------------------------------- */
// include the library code:
#include <LiquidCrystal595.h>

// initialize the library with the numbers of the interface pins + the row count
// datapin, latchpin, clockpin, num_lines
LiquidCrystal595 lcd(2,3,4);

void setup() 
{
  lcd.begin(16,2);

  // Print a message to the LCD.
  lcd.setCursor(0,0);
  lcd.print("This is line 1");
  delay(1000);
  
  lcd.setCursor(0,1);
  lcd.print("This is line 2");
  delay(1000);
  
  lcd.setCursor(0,2);
  lcd.print(127, HEX);
  delay(1000);
  
  lcd.setCursor(0,3);
  lcd.print("This is line ");
  lcd.print(4, BIN); // << Snagged from the Print class
  delay(1000);
  
  
}

void loop() 
{
  
}

Thank you for taking the time to read and respond in advance.

LiquidCrystal595.7z (6.49 KB)