Sure. I'm using LibreELEC with Kodi's bundled LCDproc addon. The following LCD.conf gets the LCD working with the "stock" wiring to the GPIO pins as the unit is shipped. I would expect it to work with "vanilla" LCDproc as well.
Code:
# 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=root
# The server will stay in the foreground if set to yes.
# [default: no, legal: yes, no]
Foreground=yes
# 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 interval in microseconds for updating the display.
# [default: 125000 meaning 8Hz]
#FrameInterval=125000
# 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]
# If true the server allows transitions between different client's menus
# [default: false; legal: true, false]
#PermissiveGoto=false
# 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
[hd44780]
# Select what type of connection. See documentation for available types.
ConnectionType=i2c
# Select model if have non-standard one which require extra initialization or handling or
# just want extra features it offers.
# Available: standard (default), extended, winstar_oled, pt6314_vfd
# - standard is default, use for LCDs not mentioned below.
# - extended, hd66712, ks0073: allows use 4-line "extended" mode,
# same as deprecated now option ExtendedMode=yes
# - winstar_oled, weh00xxyya: changes initialization for WINSTAR's WEH00xxyyA displays
# and allows handling brightness
# - pt6314_vfd: allows handling brightness on PTC's PT6314 VFDs
#
# This option should be independent of connection type.
#Model = standard
# 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=0x27
# 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
# Specify if you have a switchable backlight and if yes, can select method for turning it on/off:
#
# - none - no switchable backlight is available. For compability also boolean
# 0, n, no, off and false are aliases.
# - external - use external pin or any other method defined with ConnectionType backlight
# handling. For backward compability also this value is chosen for boolean
# TRUE values: 1, y, yes, on and true.
# - internal - means that backlight is handled using internal commands according
# to selected display model (with Model option). Depending on model,
# Brightness and OffBrightness options can be taken into account.
# - internalCmds - means that commands for turning on and off backlight are given
# with extra options BacklightOnCmd and BacklightOffCmd, which would be treated
# as catch up (last resort) for other types of displays which have similar features.
#
# You can provide multiple occurences of this option to use more than one method.
# Default is model specific: Winstar OLED and PT6314 VFD enables internal backlight mode,
# for others it is set to none.
Backlight = none
# Commands for enabling internal backlight for use with Backlight=internalCmds.
# Up to 4 bytes can be encoded, as integer number in big-endian order.
#
# NOTE: this is advanced option, if command contains bits other than only brighness handling,
# they must be set accordingly to not disrupt display state. If for example 'FUNCTION SET' command
# is used for this purpose, bits of interface length (4-bit / 8-bit) must be set according to
# selected ConnectionType.
BacklightCmdOn=0x1223
# Commands for disabling internal backlight for use with Backlight=internalCmds.
# Up to 4 bytes can be encoded, as integer number in big-endian order.
BacklightCmdOff=0x1234
# 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
# 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,
# weh001602a_1]
# (hd44780_koi8_r, hd44780_cp1251, hd44780_8859_5, upd16314 and weh001602a_1
# are possible if compiled with additional charmaps)
CharMap=hd44780_default
# Font bank to be used for some displays such as the WINSTAR WEH001602A
# 0: English/Japanese (default)
# 1: Western Europe I
# 2: English/Rusian
# 3: Western Europe II
#FontBank=0
# 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=1
# 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=false
i2c_line_RS=0x01
i2c_line_RW=0x02
i2c_line_EN=0x04
i2c_line_BL=0x08
i2c_line_D4=0x10
i2c_line_D5=0x20
i2c_line_D6=0x40
i2c_line_D7=0x80
# EOF