Sure/Smartie LCDProc
Recently I’ve been looking at getting a computing device into the Land Rover. Short of buying a full sized 7″ touch screen, I opted to go for a slightly cheaper £20 4×20 LCD display. This was more to be proof of concept, and give me a starter to work on, before I decide whether or not to put a full sized screen in.
Ultimately, I purchased a SmartieLCD module from Ebay. It arrived, I plugged it into my laptop running Windows at work, and it worked first time. Now it was time to get it working with LCDProc!
Earlier on I had spotted that SmartieLCD in Windows used the Matrix Orbital DLL file. Sadly, when using LCDProc in Linux, Matrix didn’t work at all. It was time to go looking
Enthused by http://lists.omnipotent.net/pipermail/lcdproc/2009-July/013021.html, and manufacturers documentation, I decided to check out the CVS copy of LCDProc. The last ‘release’ was back in 2007, so if I was to get anything recent it would have to be from CVS
cvs -d:pserver:anonymous@lcdproc.cvs.sourceforge.net:/cvsroot/lcdproc login
cvs -z3 -d:pserver:anonymous@lcdproc.cvs.sourceforge.net:/cvsroot/lcdproc co -P lcdproc
Having a look around the source files indicate that Sure Electronics displays were supported, but not enabled by default. A simple ./configure flag would enable them, so it was time to get compiling. Firstly some support files have to be installed first.
sudo apt-get install libusb-dev autogen automake
After that, kick off the build process, and enable Sure Electronics support at configure time.
sh ./autogen.sh
./configure –enable-drivers=SureElec
make
sudo make install
Now that the software is installed, LCDd needs configured in order to send data to the LCD display.
sudo vim /usr/local/etc/LCDd.conf
In here, a few parts need changed -
driver=SureElec
DriverPath=/usr/local/lib/lcdproc/
Edition=3
Contrast=200
Brightness=480
And that’s it! Execute /usr/local/sbin/LCDd, and you should get a Clients: 0 and Screens: 0 on the LCD display.
All is good!











when i connect a client, it’s stop working, and stop working usb too!!!
here a piece of /var/log/messages (i hope you may arrange in code box!!!!)
please note that i tried to kill the pid, for this reason i’ve a :”Server shutting down on SIGTERM”
Jan 2 15:04:56 phenom LCDd: LCDd version 0.5dev starting
Jan 2 15:04:56 phenom LCDd: Built on Jan 2 2010, protocol version 0.3, API version 0.5
Jan 2 15:04:56 phenom LCDd: Using Configuration File: /usr/local/etc/LCDd.conf
Jan 2 15:04:56 phenom LCDd: Set report level to 5, output to syslog
Jan 2 15:04:56 phenom LCDd: Server forking to background
Jan 2 15:04:56 phenom LCDd: parent = 2542
Jan 2 15:04:56 phenom LCDd: Listening for queries on 127.0.0.1:13666
Jan 2 15:04:56 phenom LCDd: child = 2543
Jan 2 15:04:56 phenom LCDd: SureElec driver: init(0x24294e0)
Jan 2 15:04:56 phenom LCDd: SureElec: using Device /dev/ttyUSB0
Jan 2 15:04:56 phenom LCDd: SureElec: screen size 20 x 4.
Jan 2 15:04:56 phenom LCDd: SureElec: Contrast (in config) is ’500′
Jan 2 15:04:56 phenom LCDd: SureElec: Brightness (in config) is ’600′
Jan 2 15:04:56 phenom LCDd: SureElec_init: OffBrightness (in config) is ’100′
Jan 2 15:04:56 phenom LCDd: Driver [SureElec] loaded
Jan 2 15:04:56 phenom LCDd: Key “Escape” is now reserved exclusively by client [-1]
Jan 2 15:04:56 phenom LCDd: Key “Enter” is now reserved shared by client [-1]
Jan 2 15:04:56 phenom LCDd: Key “Up” is now reserved shared by client [-1]
Jan 2 15:04:56 phenom LCDd: Key “Down” is now reserved shared by client [-1]
Jan 2 15:04:56 phenom LCDd: child_ok_func(signal=10)
Jan 2 15:04:56 phenom LCDd: screenlist_switch: switched to screen [_server_screen]
Jan 2 15:04:56 phenom LCDd: SureElec: BL turned on
Jan 2 15:06:12 phenom LCDd: Server shutting down on SIGTERM
Jan 2 15:06:19 phenom kernel: [ 154.628622] usb 4-4: USB disconnect, address 2
Jan 2 15:09:46 phenom kernel: [ 360.930117] khubd D 0000000000000000 0 40 2 0×00000000
Jan 2 15:09:46 phenom kernel: [ 360.930125] ffff88006d5a5be0 0000000000000046 ffff88005b5b38a0 0000000000015880
Jan 2 15:09:46 phenom kernel: [ 360.930132] ffff88006d59b110 0000000000015880 0000000000015880 0000000000015880
Jan 2 15:09:46 phenom kernel: [ 360.930137] 0000000000015880 ffff88006d59b110 0000000000015880 0000000000015880
Jan 2 15:09:46 phenom kernel: [ 360.930143] Call Trace:
Jan 2 15:09:46 phenom kernel: [ 360.930155] [] usb_kill_urb+0×85/0xc0
Jan 2 15:09:46 phenom kernel: [ 360.930164] [] ? autoremove_wake_function+0×0/0×40
Jan 2 15:09:46 phenom kernel: [ 360.930170] [] ? usb_get_urb+0×16/0×20
Jan 2 15:09:46 phenom kernel: [ 360.930175] [] usb_hcd_flush_endpoint+0×123/0×130
Jan 2 15:09:46 phenom kernel: [ 360.930181] [] usb_disable_endpoint+0x5a/0xa0
Jan 2 15:09:46 phenom kernel: [ 360.930186] [] usb_disable_device+0×30/0×130
Jan 2 15:09:46 phenom kernel: [ 360.930191] [] usb_disconnect+0xca/0×140
Jan 2 15:09:46 phenom kernel: [ 360.930195] [] hub_port_connect_change+0x8a/0×960
Jan 2 15:09:46 phenom kernel: [ 360.930200] [] hub_events+0x3a2/0×590
Jan 2 15:09:46 phenom kernel: [ 360.930206] [] ? thread_return+0×48/0x37f
Jan 2 15:09:46 phenom kernel: [ 360.930211] [] ? hub_thread+0×0/0×190
Jan 2 15:09:46 phenom kernel: [ 360.930215] [] hub_thread+0x3a/0×190
Jan 2 15:09:46 phenom kernel: [ 360.930219] [] ? autoremove_wake_function+0×0/0×40
Jan 2 15:09:46 phenom kernel: [ 360.930224] [] ? hub_thread+0×0/0×190
Jan 2 15:09:46 phenom kernel: [ 360.930228] [] kthread+0xa6/0xb0
Jan 2 15:09:46 phenom kernel: [ 360.930233] [] child_rip+0xa/0×20
Jan 2 15:09:46 phenom kernel: [ 360.930238] [] ? kthread+0×0/0xb0
Jan 2 15:09:46 phenom kernel: [ 360.930241] [] ? child_rip+0×0/0×20
That looks suspiciously like the kernel having issues rather than LCDproc – hence the change from “LCDd” to “kernel” in the 4th column. The Smartie just presents itself as a serial to USB device, just like the PL2303 chips on other devices.
Firstly I would check to make sure that your kernel is up to date, as you say it takes out your entire USB subsystem instead of just the display. With the kernel up to date, it should also update the cp210x module as well.
Failing all that, I would suggest asking the LCDproc mailing list, cos I’m all out of ideas
Kyle