XBMC LCDproc - Connect failed

I’m trying to connect lcd character display to raspberry. I was following tutorial on the youtube and also I have immediately tested connected lcd using first method explained in that tutorial.
On a fresh osmc install I installed lcdproc using guide [Howto] LCD HD44780 with following configuration:

> [hd44780]
> ConnectionType=raspberrypi
> D7=11
> D6=5
> D5=6
> D4=13
> RS=26
> EN=19
> Size=16x2
> 
> [server]
> Driver=hd44780
> DriverPath=/usr/lib/arm-linux-gnueabihf/lcdproc/
> 
> Bind=127.0.0.1
> Port=13666
> ReportToSyslog=no
> WaitTime=5
> User=nobody
> ServerScreen=no
> Foreground=no
> Heartbeat=open
> InitialHeartbeat=on
> Backlight=open
> InitialBacklight=on
> BacklightBrightness=255
> BacklightOffBrightness=0

and confirmed installation using:

osmc@osmc:~$ systemctl status lcdd.service
● LCDd.service - LSB: LCD daemon
Loaded: loaded (/etc/init.d/LCDd)
Active: active (exited) since Sun 2017-10-22 18:28:29 CEST; 27min ago
Process: 288 ExecStart=/etc/init.d/LCDd start (code=exited, status=0/SUCCESS)
osmc@osmc:~$

From what i can see lcdproc is running correctly, but, lcd sreen is empty and XCBMC LCDproc is reporting following errors:

> 18:29:14.109 T:1773925360   DEBUG: ### [XBMC LCDproc] - Open 127.0.0.1:13666
> 18:29:14.110 T:1773925360   ERROR: ### [XBMC LCDproc] - Connect: Caught exception, aborting.
> 18:29:14.110 T:1773925360   ERROR: ### [XBMC LCDproc] - Connect failed. Retry in 8 seconds.

Did I miss anything? How to check which exception was thrown by XMBC LCDproc?

Thank you in advance.

I have never been able to get an lcd hooked up to a Razz Pi with a direct gpio connection, However I would suggest picking up a I2C module and a logic level converter for a couple bucks as I had that working flawlessly. If your lcd is a 5V version and you hooked it up direct to the pi without a 3.3v logic converter you have likely blown out several gpio pins.

did you ever solve this problem ?
also cant get lcd to work via gpio

At the end, I switched to LibreElec.
But, to get it to actually work I needed to adjust pin connections to the following:

1. Pin 1 (Ground) goes to the ground rail.
2. Pin 2 (VCC/5v) goes to the positive rail.
3. Pin 3 (V0) goes to the middle wire of the potentiometer.
4. Pin 4 (RS) goes to GPIO25 (Pin 22)
5. Pin 5 (RW) goes to the ground rail.
6. Pin 6 (EN) goes to GPIO24 (Pin 18)
7. Pin 11 (D4) goes to GPIO23 (Pin 16)
8. Pin 12 (D5) goes to GPIO17 (Pin 11)
9. Pin 13 (D6) goes to GPIO18 (Pin 12)
10. Pin 14 (D7) goes to GPIO22 (Pin 15)
11. Pin 15 (LED +) goes to the positive rail.
12. Pin 16 (LED -) goes to the ground rail.

And used following configuration:

# LCDd.conf -- configuration file for the LCDproc server daemon LCDd
#
# This file contains the configuration for the LCDd server.
#
# The format is ini-file-like. It is divided into sections that start at
# markers that look like [section]. Comments are all line-based comments,
# and are lines that start with '#' or ';'.
#
# The server has a 'central' section named [server]. For the menu there is
# a section called [menu]. Further each driver has a section which
# defines how the driver acts.
#
# The drivers are activated by specifying them in a driver= line in the
# server section, like:
#
#   Driver=curses
#
# This tells LCDd to use the curses driver.
# The first driver that is loaded and is capable of output defines the
# size of the display. The default driver to use is curses.
# If the driver is specified using the -d <driver> command line option,
# the Driver= options in the config file are ignored.
#
# The drivers read their own options from the respective sections.



## Server section with all kinds of settings for the LCDd server ##
[server]

# Where can we find the driver modules ?
# IMPORTANT: Make sure to change this setting to reflect your
#            specific setup! Otherwise LCDd won't be able to find
#            the driver modules and will thus not be able to
#            function properly.
# NOTE: Always place a slash as last character !
DriverPath=/storage/.kodi/addons/service.lcdd/lib/lcdproc/

# Tells the server to load the given drivers. Multiple lines can be given.
# The name of the driver is case sensitive and determines the section
# where to look for further configuration options of the specific driver
# as well as the name of the dynamic driver module to load at runtime.
# The latter one can be changed by giving a File= directive in the
# driver specific section.
#
# The following drivers are supported:
#   bayrad, CFontz, CFontzPacket, curses, CwLnx, ea65, EyeboxOne, futaba,
#   g15, glcd, glcdlib, glk, hd44780, icp_a106, imon, imonlcd,, IOWarrior,
#   irman, joy, lb216, lcdm001, lcterm, linux_input, lirc, lis, MD8800,
#   mdm166a, ms6931, mtc_s16209x, MtxOrb, mx5000, NoritakeVFD,
#   Olimex_MOD_LCD1x9, picolcd, pyramid, rawserial, sdeclcd, sed1330,
#   sed1520, serialPOS, serialVFD, shuttleVFD, sli, stv5730, svga, t6963,
#   text, tyan, ula200, vlsys_m428, xosd, yard2LCD
Driver=hd44780

# Tells the driver to bind to the given interface. [default: 127.0.0.1]
Bind=127.0.0.1

# Listen on this specified port. [default: 13666]
Port=13666

# Sets the reporting level; defaults to warnings and errors only.
# [default: 2; legal: 0-5]
#ReportLevel=3

# Should we report to syslog instead of stderr? [default: no; legal: yes, no]
#ReportToSyslog=yes

# User to run as.  LCDd will drop its root privileges and run as this user
# instead. [default: nobody]
User=nobody

# The server will stay in the foreground if set to yes.
# [default: no, legal: yes, no]
Foreground=no

# Hello message: each entry represents a display line; default: builtin
Hello="Welcome to"
Hello="LibreELEC"

# GoodBye message: each entry represents a display line; default: builtin
GoodBye="Thanks for using"
GoodBye="LibreELEC"

# Sets the default time in seconds to displays a screen. [default: 4]
WaitTime=5

# If set to no, LCDd will start with screen rotation disabled. This has the
# same effect as if the ToggleRotateKey had been pressed. Rotation will start
# if the ToggleRotateKey is pressed. Note that this setting does not turn off
# priority sorting of screens. [default: on; legal: on, off]
#AutoRotate=off

# If yes, the the serverscreen will be rotated as a usual info screen. If no,
# it will be a background screen, only visible when no other screens are
# active. The special value 'blank' is similar to no, but only a blank screen
# is displayed. [default: on; legal: on, off, blank]
ServerScreen=blank

# Set master backlight setting. If set to 'open' a client may control the
# backlight for its own screens (only). [default: open; legal: off, open, on]
Backlight=open

# Set master heartbeat setting. If set to 'open' a client may control the
# heartbeat for its own screens (only). [default: open; legal: off, open, on]
Heartbeat=open

# set title scrolling speed [default: 10; legal: 0-10]
TitleSpeed=4

# The "...Key=" lines define what the server does with keypresses that
# don't go to any client. The ToggleRotateKey stops rotation of screens, while
# the PrevScreenKey and NextScreenKey go back / forward one screen (even if
# rotation is disabled.
# Assign the key string returned by the driver to the ...Key setting. These
# are the defaults:
ToggleRotateKey=Enter
PrevScreenKey=Left
NextScreenKey=Right
#ScrollUpKey=Up
#ScrollDownKey=Down


## The menu section. The menu is an internal LCDproc client. ##
[menu]
# You can configure what keys the menu should use. Note that the MenuKey
# will be reserved exclusively, the others work in shared mode.

# Up to six keys are supported. The MenuKey (to enter and exit the menu), the
# EnterKey (to select values) and at least one movement keys are required.
# These are the default key assignments:
MenuKey=Escape
EnterKey=Enter
UpKey=Up
DownKey=Down
#LeftKey=Left
#RightKey=Right


### Driver sections are below this line, in alphabetical order  ###

## Hitachi HD44780 driver ##
[hd44780]
ConnectionType=raspberrypi

pin_D4=23
pin_D5=17
pin_D6=27
pin_D7=22
pin_EN=24
pin_RS=25
#pin_BL=17

# Select what type of connection. See documentation for available types.
#ConnectionType=4bit
#ConnectionType=i2c

# I/O address of the LPT port. Usual values are: 0x278, 0x378 and 0x3BC.
# For I2C connections this sets the slave address (usually 0x20).
Port=0x20

# Device of the serial, I2C, or SPI interface [default: /dev/lcd]
Device=/dev/i2c-1

# Bitrate of the serial port (0 for interface default)
Speed=0

# If you have a keypad connected.
# You may also need to configure the keypad layout further on in this file.
Keypad=no

# Set the initial contrast (bwctusb, lcd2usb, and usb4all)
# [default: 800; legal: 0 - 1000]
#Contrast=0

# Set brightness of the backlight (lcd2usb and usb4all):
# Brightness is the brightness while the backlight is set to 'on'.
# [default: 800; legal: 0 - 1000]
#Brightness=1000

# OffBrightness is the brightness while the backlight is set to 'off'.
# [default: 300; legal: 0 - 1000]
#OffBrightness=0

# If you have a switchable backlight.
Backlight=no

# If you have the additional output port ("bargraph") and you want to
# be able to control it with the lcdproc OUTPUT command
OutputPort=no

# Specifies if the last line is pixel addressable (yes) or it controls an
# underline effect (no). [default: yes; legal: yes, no]
#Lastline=yes

# Specifies the size of the LCD.
# In case of multiple combined displays, this should be the total size.
Size=16x2

# For multiple combined displays: how many lines does each display have.
# Vspan=2,2 means both displays have 2 lines.
#vspan=2,2

# If you have an HD66712, a KS0073 or another controller with 'extended mode',
# set this flag to get into 4-line mode. On displays with just two lines, do
# not set this flag.
# As an additional restriction, controllers with and without extended mode
# AND 4 lines cannot be mixed for those connection types that support more
# than one display!
#ExtendedMode=yes

# In extended mode, on some controllers like the ST7036 (in 3 line mode)
# the next line in DDRAM won't start 0x20 higher. [default: 0x20]
#LineAddress=0x10

# Character map to to map ISO-8859-1 to the LCD's character set
# [default: hd44780_default; legal: hd44780_default, hd44780_euro, ea_ks0073,
# sed1278f_0b, hd44780_koi8_r, hd44780_cp1251, hd44780_8859_5, upd16314 ]
# (hd44780_koi8_r, hd44780_cp1251, hd44780_8859_5 and upd16314 are possible if
# compiled with additional charmaps)
CharMap=hd44780_default

# If your display is slow and cannot keep up with the flow of data from
# LCDd, garbage can appear on the LCDd. Set this delay factor to 2 or 4
# to increase the delays. Default: 1.
#DelayMult=2

# Some displays (e.g. vdr-wakeup) need a message from the driver to that it
# is still alive. When set to a value bigger then null the character in the
# upper left corner is updated every <KeepAliveDisplay> seconds. Default: 0.
#KeepAliveDisplay=0

# If you experience occasional garbage on your display you can use this
# option as workaround. If set to a value bigger than null it forces a
# full screen refresh <RefreshDiplay> seconds. Default: 0.
#RefreshDisplay=5

# You can reduce the inserted delays by setting this to false.
# On fast PCs it is possible your LCD does not respond correctly.
# Default: true.
DelayBus=true

# If you have a keypad you can assign keystrings to the keys.
# See documentation for used terms and how to wire it.
# For example to give directly connected key 4 the string "Enter", use:
#   KeyDirect_4=Enter
# For matrix keys use the X and Y coordinates of the key:
#   KeyMatrix_1_3=Enter
KeyMatrix_4_1=Enter
KeyMatrix_4_2=Up
KeyMatrix_4_3=Down
KeyMatrix_4_4=Escape

# EOF

I hope it helps.