n this video, we’ll walk through how to install a TFT LCD screen on on a Raspberry Pi for small form factor or portable projects. This screen will form part of the head-mounted display for Project Xyberpunk on element14 Presents.
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.
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.
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
<add key="XBMC4LCDSmartie.Host" value="localhost"/>
<add key="XBMC4LCDSmartie.Port" value="9090"/>
<add key="XBMC4LCDSmartie.RefreshInt" value="300"/>
<add key="XBMC4LCDSmartie.XBMCTestMode" value="TCP"/>
Save the changes and close the file. Open config.ini in Notepad and verify the following settings:
[General Settings], verify that
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:
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!
So, after taking the time to install the hardware and driver for the nMedia PRO-LCD, we need a source of information to display on the external display. This particular set of instructions deals ONLY with how to set up LCD output for Kodi in Ubuntu. In Kodi for Linux, the XBMCLCDproc add-on provides the information to be displayed on the external LCD. Install this add-on from the Settings>Add-ons>Services menu.
To maintain a level of authenticity, the VCR required an external display like the one originally installed to show status, function, channel number, etc. I opted to replace the original 7-segment display module with a USB-powered LCD to put a modern spin on the old look. There aren’t many display modules available, so I did a little research to make sure that the nMedia PRO-LCD would be compatible with Linux drivers. Fortunately, it is, but it took much cursing and gnashing of teeth to get it working.
First, make sure that the USB cord and power supply are plugged in.
Power-on the computer, and the display should show a test pattern with the words “MCE Indicator TM for Media Center” dancing around. Now, it’s time to install drivers!
From the terminal, execute the following:
sudo apt-get install LCDproc
Once LCDproc is installed, configure the daemon by editing /etc/LCDd.conf in Nano or another text editor. Change the following settings to the appropriate values:
Reboot, and your LCD is ready for input! Or is it output?