How To Set Up LCD Output For Kodi In Windows 7

We’ve already explored how to install the nMedia PRO-LCD and drive it with information from Kodi in Ubuntu, but as I’ve discussed earlier, the final version of the VCR Project will be running Windows 7. For this, I need to find an appropriate way to drive output from Kodi to the display mounted in the front of the VCR housing.

The application that we’ll be using to set up LCD output is LCD Smartie, an open-source, extensible application that utilises a series of plugins to parse and translate information for the liquid crystal display. Before we install LCD Smartie, though, we have to download the Windows driver for the display.

Download the nMedia PRO-LCD driver from the nMedia website at http://www.nmediapc.com/LCD/download.htm, unzip it and double-click the installer to run. Reboot the computer and we can move onto the next step.

Download the latest version of LCD Smartie from their Sourceforge page. Unzip the file to a convenient location on your hard drive (I chose C:\lcdsmartie). Like EventGhost, LCD Smartie does not “install” to the hard drive–it simply sits in a folder and runs (the way applications should properly run).

While you’re on the download page for LCD Smartie, grab the L.I.S. VFD display driver, as we’re going to need it for this particular display. Unzip it and copy the lisvfd.dll file to the “displays” folder within the LCD Smartie folder.

Now, we can run LCD Smartie for the first time. Make sure you right-click and select “Run as administrator” because LCD Smartie needs the elevated permissions to interact with the display. When the application opens, you will see a small window open that’s emulating the default LCD output. In the bottom left corner of this window, click “Setup”.

In the Setup window, select “2×20” from the “LCD size” drop-down menu under the “Screen” tab beneath “Display Settings”. Then click the “Plugin” tab. In the “Display Plugin” drop-down menu, select “lisvfd.dll” from the choices. In the “Startup Parameters” field below, type in the appropriate COM port and baud rate for your LCD.

Screen Shot 2015-04-28 at 6.36.45 PMTo determine the COM port for the LCD, click “Devices and Printers” in the Start Menu. Under the “Unspecified” heading, look for “FT232R USB UART”. Right-click this device and select “Properties”.

Screen Shot 2015-04-28 at 6.44.55 PMIn the “Properties” window, click the “Hardware” tab. Note the USB Serial Port listed in the menu. Go back to LCD Smartie’s setup window and plug this COM port into the Device Parameters field. Leave the baud rate at the default 38400. Click the “Apply” and your LCD should reflect what is being shown in the emulator window.

Screen Shot 2015-04-28 at 6.46.53 PM
In this example, my LCD is connected to the COM3 port.

Close LCD Smartie for now. We need another plugin to display the information from Kodi that we want: XBMC4LCDSmartie. Download it from its Codeplex site and unzip the file. Copy XBMC4LCDSmartie.dll and Newtonsoft.Json.dll to the LCD Smartie “plugins” folder. In the LCD Smartie folder, use Windows Notepad to open the “LCDSmartie.exe.config” file and add the following code just below <configuration>:

<appSettings>
<add key="XBMC4LCDSmartie.Host" value="localhost"/>
<add key="XBMC4LCDSmartie.Port" value="9090"/>
<add key="XBMC4LCDSmartie.RefreshInt" value="300"/>
<add key="XBMC4LCDSmartie.XBMCTestMode" value="TCP"/>
</appSettings>

Save the changes and close the file. Open config.ini in Notepad and verify the following settings:

[Communication Settings]
DisplayDLLName=lisvfd.dll
DisplayDLLParameters=COM3,38400
Baudrate=6
COMPort=3
USBPalm=0
ParallelPort=888
HDAlternativeAddressing=0
HDKS0073Addressing=0
HDTimingMultiplier=1
MX3USB=0
HTTPProxy=
HTTPProxyPort=0
RemoteHost=localhost

Then, under [General Settings], verify that LCDType=7

Save any changes and close Notepad. Now, open Kodi and navigate to Settings>Network>General and change the Device Name to “XBMC”. Scroll down to “Webserver” and make sure that “Allow control of Kodi via HTTP” is enabled. The port should be 80, username should be XBMC, and password should be blank. Leave web interface at default. Scroll down to “Remote Control” and enable the switch to “Allow programs on this system to control Kodi”.

Open the setup window in LCD Smartie once again, and type the following into lines 1 and 2 of the “Screens settings” section:

Line 1: $dll(XBMC4LCDSmartie.dll,3,System.CurrentWindow,1)
Line 2: $dll(XBMC4LCDSmartie.dll,3,System.CurrentControl,1)

Make sure that “Don’t scroll this line” is checked for both lines. Check the box next to “Enabled” as well and disable all the other screens by selecting them in the “Screen” counter and unchecking “Enabled” on them one-by-one. This will serve as our test bed. Click the “Apply” button and, if Kodi is running, the LCD should display the current screen and menu selection. Navigate through some menu items and verify that everything works correctly.

Alternatively, you may get an error message that says something to the effect of “MSVCR71.dll is missing”. To fix this, we need to grab the 32-bit version of the Microsoft.net 1.1 patch to fill in some missing libraries. Close LCD Smartie, download and run the installer from the link above, follow the installer’s instructions, and re-open LCD Smartie. Everything should work fine now.

To get LCD Smartie to run at startup, use the Task Scheduler to run an instance at log on. Make sure the task starts hidden and runs with the highest privileges.

This is the most basic setup for Kodi-specific output. The XBMC4LCDSmartie documentation has a wealth of information on programming specific screens and output on which I will elaborate later. For now, though, congratulations! You have a working LCD powered by output from Kodi!

LCD Smartie Setup

There are a LOT of different options that one can employ in an LCD Smartie setup, and I’ve barely scratched the surface of what it is capable of. I’ve done a little XBMC-centric programming, just to get the display working with media. As of this writing, I have 3 different screens that activate based on whether media is playing or not.

The main LCD screen is a simple date/time display. On the second line of this screen, XBMC’s currently highlighted menu item is shown.

When a media file is playing, XBMC displays a pre-formatted text string depending on the type of media (TV, Movie, Music). Underneath, the time and duration are indicated.

When a media file is paused, the screen changes to a flashing “PAUSE” indicator that I put together.

I’ll be playing more with the screens and programming them for more functions as I add more to the setup, but for now, this will serve most of my needs.