Our new official repo is on github
LCD Smartie version 5.6 is released!
Download it now: https://github.com/LCD-Smartie/LCDSmartie/releases

Solution to jumbled characters on HD44780 displays

General discussion about LCD Smartie.

Moderators: _X7JAY7X_, caesar, IFR, mattcro, limbo, Fast351

Post Reply
Groobies
Forum Supporter
Posts: 16
Joined: July 18th, 2006, 2:24 am

Solution to jumbled characters on HD44780 displays

Post by Groobies »

Had been facing the above problem and would like to share with all the possible cause and solution to the jumbled character problem. I am not an expert in programming lingo hence I'll just be explaining it in plain english for the benefit of all. First things first, a brief description of hardware and software used.

Hardware: Silverstone FP54 (VFD Display using Parallel Port)
Software: LCD Smartie 5.4 B3 (Fast351's Clr Screen on Reboot Version)
Plugins: Speedfan, Winamp Spectrum, Width and Tiny Bar

Apparently, the speedfan software (not speedfan plugin) does install a driver GIVEIO.SYS in \windows\system32 directory which somehow in my opinion conflicted with the one (DLPORTIO.SYS ?) installed by PORT95NT.exe. Decided to launch LCD Smartie without PORT95NT installed and the display fired up nicely driven by GIVEIO.SYS I believe [Correction: The HD44780.DLL file that came with 5.4 B3 works beautifully driving the display! This is even if the SpeedFan is not installed.]. It has been 2 days and characters on the display have not even shown the slightest hint of corruption. I am using the default startup parameters of just [LPT1] (or which ever port you are running on) and running LCD Smartie and the plugins beautifully now. Last but not least, a pic of my VFD Display below. Hope this is of some help to people with similar setup to mine.

Point to note, people without the speedfan software installed, you'll still need PORT95NT.exe to drive your parallel port display. :) [Correction: the PORT95NT.exe file is not needed if you are using 5.4 B3]
Sorry for the confusion.
Image
chill1999
Posts: 10
Joined: November 10th, 2005, 2:28 am
Location: Seattle WA

Now back to garbled

Post by chill1999 »

I removed Speedfan and the Port95 drivers. It worked great for half a day, now the display gets garbled after a short time almost always.

*sigh*

I guess this solution isn't working for me.
Groobies
Forum Supporter
Posts: 16
Joined: July 18th, 2006, 2:24 am

Post by Groobies »

Hi Chil, did the problem occur after you ran Winamp's spectrum analyzer plugin? I would suggest you try running LCD Smartie without the Winamp plugin, see if that helps in narrowing down the cause of the problem. Could be a custom character mis-configuration somewhere.

As for myself, I am experiencing the garbled characters again only when I ran LCD Smartie with the Winamp plugin. Other than that minor glitch, the problem has not reoccured. Will post updates again. Good luck dude.
limbo
Plugin Author
Posts: 1604
Joined: February 13th, 2005, 7:38 pm
Location: Athens - Greece
Contact:

Post by limbo »

In most cases the "garbled" characters are caused by user's configuration. :cry:
However this isn't the only cause :cry:

@ chill1999
Please use a minimal configuration to your LCD Smartie (enabling just one or two screens only) and check if the problem persists. If so post here the screen configuration to discuss about it.
Groobies
Forum Supporter
Posts: 16
Joined: July 18th, 2006, 2:24 am

Post by Groobies »

Hi Chill, I believe I may have narrowed down the source of the problem to the use of the official Winamp Spectrum Analyzer plugin. I've managed to successfully replicated the garbled characters occurance when the Winamp plugin was used. Plugin authors any ideas on this bug or misconfig somewhere? My config.ini is as follows(P.S. I've removed lines 3,4 from the post here as they are not in used):

[Communication Settings]
Baudrate=8
COMPort=1
USBPalm=0
ParallelPort=888
MX3USB=0
HTTPProxy=
HTTPProxyPort=0
HDAlternativeAddressing=0
HDTimingMultiplier=1
HDKS0073Addressing=0
RemoteHost=localhost
DisplayDLLName=HD44780.dll
DisplayDLLParameters=LPT1

[General Settings]
RefreshRate=12
WinAmpLocation=C:\Program Files\Winamp\winamp.exe
BootDriverDelay=1
SETIEmail=test@test.com
DistLog=C:\koelog.txt
EmailPeriod=5
DLLPeriod=12
ScrollPeriod=300
AlwaysOnTop=0
Size=6
Contrast=88
Brightness=122
CFContrast=72
CFBrightness=43
NewsRefresh=120
RandomScreens=0
FoldUsername=Test
GameRefresh=1
MBMRefresh=30
CheckUpdates=1
ColorOption=4
MinFadeContrast=0
CFCGRomVersion=2
HideOnStartup=0
AutoStart=0
AutoStartHidden=1
SkinPath=images\
LCDType=7
IRBrightness=3
DLLContrast=127
DLLBrightness=127
EmulateLCD=1

[Screen 01]
Enabled=1
Theme=1
ShowTime=20
Sticky=0
Skip=2
InteractionTime=20
Interaction=0
Text01="$dll(width.dll,1,8x,CPU:$CPUUsage%%)RAM:$MemU%%"
Text02="$dll(width.dll,1,8x,$Chr(20)$NetSpUpK(1)kb)$dll(width.dll,1,8x,$Chr(21)$NetSpDownK(1)kb)"
NoScroll01=1
NoScroll02=1
ContinueNextLine01=0
ContinueNextLine02=0
Center01=0
Center02=0

[Screen 02]
Enabled=1
Theme=1
ShowTime=10
Sticky=0
Skip=1
InteractionTime=15
Interaction=0
Text01="$dll(winamp,1,2x16,u#1#FWl#80#20)"
Text02="$dll(winamp,2,0,0)"
NoScroll01=0
NoScroll02=0
ContinueNextLine01=0
ContinueNextLine02=0
Center01=0
Center02=0
chill1999
Posts: 10
Joined: November 10th, 2005, 2:28 am
Location: Seattle WA

BTVSmartie causing garbled characters?

Post by chill1999 »

I finally had time to try experimenting with LCDSmartie. I started with a clean install (no plugins) and tested successfully a screen with the time and date for several hours with no garbled characters.
Then I added my Yahoo Weather plugin (based on .Net) and again tested for several hours without any garbled characters while displaying temperature information.
I then tried adding a bar graph showing free space on a drive and processor useage (taken directly from the SysInfo tab in LCDSmartie). The bar graph worked for a while but over time the custom characters in the bars became corrupted and the bars started to look garbled. Everything else, though, looked normal. Just the bars looked strange.
Finally, I added the BTV Smartie plugin (BeyondTV display dll). It is an old plugin and I discovered the garbled characters return after a short time. Strangely enough, it seemed the garbled characters would occur even if I have the BTVSmartie.dll plugin in the plugins directory but didn't use it on the screens. Deleting the dll from the plugins directory seems to have eliminated the problem.

So it appears that a badly behaving plugin can cause data corruption of the display even if the plugin isn't present on any of the active screens.

It sucks to not be able to display BeyondTV information but sucks a lot less than garbled characters! Maybe when I get some free time I'll try developing a new BTV plugin that doesn't have these issues.
marauder
Posts: 8
Joined: June 7th, 2006, 4:11 am

Post by marauder »

I think there's 2 seperate problems related to the garbled characters. The first being the issues you have pointed out and the second being a problem like mine where it seems to garble after a very short time when the CPU is 100% or something like that. If I leave the PC idle and don't do anything, it won't garble. I can have a fresh LCD Smartie with no plugins in there and just the basic default screen setup and it'll garble after a very short time if there's CPU utilization. I hope somebody can solve this, because it's frustrating not being able to use the screen! As I've also said previously, the screen works perfect in Vista without any problem at all.
chill1999
Posts: 10
Joined: November 10th, 2005, 2:28 am
Location: Seattle WA

CPU issue

Post by chill1999 »

I think you are right. My previous "solution" now has stopped being a solution... the display ends up garbling quite frequently. It's made my display useless.
marauder
Posts: 8
Joined: June 7th, 2006, 4:11 am

Post by marauder »

Today I decided to get out a parallel extension cable and hook up the Silverstone unit to my other box (which is older hardware).

Details of that box:
CPU - Athlonxp 2600 (socket A)
MB - Asus A7N8X Deluxe

Results:
40+ hours now continuous and no corruption (both in XP and even Vista RC1). This was how it used to be on that box when it was my main rig a long time ago. Since then, I've gone through newer motherboards and chips and I've had the corruption problem on all including my current hardware in my #1 box:
CPU - Athlon 4200 x2 (Socket 939)
MB - A8N-SLi Deluxe

So it would definately have to be either a motherboard or cpu incompatability, but judging from how it does NOT corrupt when left idle but only when CPU usage is high, it seems most definately it's the CPU.
Because I'm using the dual core, I tried setting the 'affinity' options in the task manager making LCD Smartie operate on 1 core only, but that has no effect.
It seems there's a timing issue or something similar involved between the more modern CPUs and the LPT hardware when used for LCD or with the HD44780 driver.
marauder
Posts: 8
Joined: June 7th, 2006, 4:11 am

Post by marauder »

I was thinking I might leave it plugged in to the other box and have a look at using Samurize to get the temp monitoring stuff transferred over until a solution comes along?

At least I'll be able to make sure of the darn thing! It's annoying seeing this nice VFD every day but nothing on it.
limbo
Plugin Author
Posts: 1604
Joined: February 13th, 2005, 7:38 pm
Location: Athens - Greece
Contact:

Post by limbo »

I suppose the problem is on the parallel port (motherboard)...#-o try to tweak the values of EPP/ECP on the bios...
marauder
Posts: 8
Joined: June 7th, 2006, 4:11 am

Post by marauder »

Thanks for the suggestion, but yeah have changed every possible thing I could. I even found a registry entry in XP to disable it from polling the port all the time, but that made no diff either.

There must be some modifications to the HD47480 driver that could be tried though? Seems unlikely there is any user-level solution.
Whitewolfke
Posts: 11
Joined: September 18th, 2006, 7:30 pm

Post by Whitewolfke »

I have a similar problem. I use the standard VFD from my Ahanix DVine5 case. At first, everything seems to be fine. But after 5 minutes, the characters begin to mess up. First a few characters, then almost all characters, and finally the bottom line isn't visible anymore :(

It's a 2x16 VFD, with a parallel connection thingie (plugged in at my motherboard). I tried updating LCD Smartie, but the result remained the same.
Whitewolfke
Posts: 11
Joined: September 18th, 2006, 7:30 pm

Post by Whitewolfke »

I noticed that if my characters are all messed up, and I close LCDSmartie and run it again, my chars are fine again.

So can I "reboot" lcdsmartie in the background automatically or something? Or is there an easier solution? :wink:
marauder
Posts: 8
Joined: June 7th, 2006, 4:11 am

Post by marauder »

Yeah restarting LCDsmartie fixes it up only because it reinitializes the driver of course. The only auto thing you could do is create a vbscript (wsh) to kill and restart the lcdsmartie.exe task on a set timer, but I suppose that would only be useful if your character corruption only happens after a long period of time?
chill1999
Posts: 10
Joined: November 10th, 2005, 2:28 am
Location: Seattle WA

A sort of fix

Post by chill1999 »

I use a Snapstream Firefly remote control to run the PC with the LCD. I modified the profile for it so that when switching between Music, DVD, Videos, Photos, TV, etc. besides launching or switching to the applicable application it also shuts down and restarts LCD Smartie. Not a fix by any means but it gives me an easy way to reset the LCD on demand (just push one of the media buttons). It also is transparent to other users (if they push TV they "fix" the LCD if it has problems).
Still hoping for a fix of some sort but at least now the LCD is usually useable.
Whitewolfke
Posts: 11
Joined: September 18th, 2006, 7:30 pm

Post by Whitewolfke »

After about 5 mins my chars are messed up. But I still have no clue why it gets messed up. It's really weird.

Can anyone write me the code for this little script pls? I don't know that language :(
Whitewolfke
Posts: 11
Joined: September 18th, 2006, 7:30 pm

Re: A sort of fix

Post by Whitewolfke »

chill1999 wrote:I use a Snapstream Firefly remote control to run the PC with the LCD. I modified the profile for it so that when switching between Music, DVD, Videos, Photos, TV, etc. besides launching or switching to the applicable application it also shuts down and restarts LCD Smartie. Not a fix by any means but it gives me an easy way to reset the LCD on demand (just push one of the media buttons). It also is transparent to other users (if they push TV they "fix" the LCD if it has problems).
Still hoping for a fix of some sort but at least now the LCD is usually useable.
Can it reboot lcdsmartie automatically or do you always have to push a button?
Moxica
Posts: 8
Joined: December 6th, 2006, 10:53 am
Location: Akitrojis

Post by Moxica »

I have this same problem with the display characters randomly getting encrypted. Sometimes after 2 minutes, sometimes after 4 hours. The top row typically starts showing something like .#""2".#".#2.." and shuffles those chars around. Sometimes the top row works just fine and the bottom row is blank.

Does anyone have some sort of reboot-script available, that reboots this program every.. say.. 15 minutes? Or could a nev version of the program be released, one with just a quick and dirty fix that simply reinitializes after every loop.

Anything?
caesar
Forum Supporter
Posts: 734
Joined: October 15th, 2005, 10:39 am
Location: Romania
Contact:

Post by caesar »

This certainly looks like a timing problem as driving the LCD on the parallel port is a time critical operation. When your CPU is very busy parallel data out may get corrupted.

Have you all tried writing in the Display Setting tab, in the Startup parameter box this?
LPT1,3
It just sets besides LPT1 a timing multiplyer of 3 as most VFD's seem to need it.
If this doesn't work, try incresing LCDSmartie's priority in the Task manager.

Good luck,
Caesar
Moxica
Posts: 8
Joined: December 6th, 2006, 10:53 am
Location: Akitrojis

Post by Moxica »

Just did so. Didn't fix anything, the same thing happened again.
The top line now shows fgff5W?gg?'lGff& and the bottom row is blank.

My computer is currently at no load at all. It fluctuates between 0 and 1% and peaks 2%. At this moment, only firefox and mirc is open and winamp is playing. This thing happens even when the computer stands completely idle, winamp closed, no programs at all are open, it's just showing the desktop. I leave the room and the display looks OK, return 20 minutes later and the display shows random characters.

Can the "lcdsmartie" program read data back from the display and detect these errors, then restart itself when needed? Something needs to be done about this bug.
caesar
Forum Supporter
Posts: 734
Joined: October 15th, 2005, 10:39 am
Location: Romania
Contact:

Post by caesar »

It could be possible to read data back on LPT connection from the LCD but there is a communication problem when those characters are showing and the lcd must be restarted and/or reinitialised again.

Some questions to help me understand what is happening:
1. how long are your wires from the LPT port to the LCD
2. how do you power your LCD's

I think that there is some problem in connection wires - lenght, type of wires, grounding, different potentials due to different power sources, etc. as Smartie can't possibly screw it up this bad as its source code is pretty straightforward and without problems.

From my personal experience: I had problems with wires longer than 0.5meters and while powering it from some other source (not the computer).
Always try to route for every data line 1 ground wire if the lenght exceeds 0.5m (you'll have almost double the number of wires but better grounding)
Moxica
Posts: 8
Joined: December 6th, 2006, 10:53 am
Location: Akitrojis

Post by Moxica »

The LPT cable is approximately 65cm (2ft) long. It runs from the parallel port, down the back of the computer, goes through a opening just above the top video card, then up to the PSU and from there straight to the front. I have a bigtower, so cables must be of certain length to reach. If shortened to 50cm, it wouldn.'t reach. The VFD is positioned second from the top. There are 2 empty 5.25" slots under it, then there are two DVD-RW's. There's nothing close to the cable that should be able to inject extraordinary quantities of noise into it.

The display is powered by the same PSU that powers the rest of the computer. This is a very stable PSU and with 4 rails. CPU+mobo on 1 rail, the two video cards on rail 2 and 3, then the harddrives, dvd, vfd and fans on rail 4, so they are pretty evenly loaded.

I don't quite follw this: "Always try to route for every data line 1 ground wire if the lenght exceeds 0.5m".
Does it mean i should try shield the lpt cable, and if so, would it be sufficient to put a copper shield around it? something like this: http://www.svalander.se/shoppen/images/skarm_500.jpg and ground it at one or both ends.

And no matter the lcdsmartie code and any other involved code is perfect or not, so many people are apparently having this problem that the code should imo assist in fixing it, in whatever way possible and regardless who's fault this turns out to be. Reading the characters back every once in a while and restarting the app when the wrong characters are read, that would solve a lot. By logging what happens, it could also assist in giving an explanation to why this is at all happening.
caesar
Forum Supporter
Posts: 734
Joined: October 15th, 2005, 10:39 am
Location: Romania
Contact:

Post by caesar »

For connecting my HD44780 lcd I use flat cable like the one on UDMA133 HDD connectors after every data wire (E1, E2, RW, RS, D0-D7) the next wire in the cable is a ground connection. At 1meter cable lenght I have no problems using this wiring method.
When I first built that cable I used only 16 wires without shielding and the display got corrupted after a while (increasing the timing multiplier helped even in this case and eliminated in 99% of the cases the diplay corruption problem - mobile phones, other radio transmiters still corrupt the display).

Have you tried LCDSmartie 5.3.2 and putting a greater value in the timing multiplier box? (I think that 5.4beta doesn't apply the timing multiplier the same way as 5.3.2 final)
Please report back with 5.3.2 results.
Moxica
Posts: 8
Joined: December 6th, 2006, 10:53 am
Location: Akitrojis

Post by Moxica »

I've now tried to shield the cable with copper foil and grounded that, but it makes no difference at all. Absolutely nothing. I don't have an 80-wire IDE cable of sufficient length, they're all 45 cm in length and that's way too short, it doesn't even reach from front to back of the case.

Increasing the timer value make no difference. Sometimes the display works fine for 4-5 hours, sometimes it gets scrambled after just 30 seconds. Setting the timer to 75ms makes no difference either. It can work fine for 4 hours, then just for 30 seconds the next time. There's no pattern in this, it's totally random.

The only solution to this problem appears to be that appropriate changes are made to the code. Read the display data back after each cycle or after each "screen" and reset it if data doesn't match what should be on the display.
Post Reply