Thanks for your help, I think I have made those pin changes, I am using Syzmon's code at the moment, but am still struggling to get anything to appear. I have adjusted the display contrast as you suggested.
This stuff is hard to debug if you get it wrong
Can you give me the wiring between the shift register and the LCD pin for pin?
Also did you try and change BitOrder.LSBFirst to BitOrder.MSBFirst? Does that make a difference?
Step to the first SendCommand(0x03) and into that until the code has set the E pin high and sent the byte then check that the relevant pins on the output of the shift register are high / low.
Using the wiring I assume you are:
+--------- 0x80 d7 |+-------- 0x40 d6 ||+------- 0x20 d5 |||+------ 0x10 d4 |||| +---- 0x08 enable |||| |+--- 0x04 rw |||| ||+-- 0x02 rs |||| |||+- 0x01 backlight 7654 3210
The byte should have been output as 0011 1011 to the Q7 to Q0 pin respectively:
Q7: low = d7
Q6: low = d6
Q5: high = d5
Q4: high = d4
Q3: high = E
Q2: low = RW
Q1: high = RS
Q0: high = BL
HTH
-(e)