Commands for the Serial 634

mayhem

New member
I am trying to write a custom program (shell script) to display my bandwidth usage. (using Linux)

I am trying to send data to the LCD, but it flashed on and then off.


Anyone help me with writting output to the LCD? Do you know where i can get a driver/program that allows me to do a echo > /dev/lcd ?

Please email me: mayhem@linuxathom.net

Thanks
Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.
 

CF Tech

Administrator
Mayhem:

The display is powered by the RS-232 control lines by default. Your program is probably bringing the lines high for a bit and then dropping them again.

I am not sure if this will port to Linux, but you may be able to use something like this code posted on SunHELP by Bill Bradford at:

http://www.sunhelp.org/pages.php?page=review-lcd

Here is a copy of the actual script:

01/14/2000 Update:

Here's a simple shell script I'm using to display the formatted output of the 'uptime' command on the CrystalFontz display:

#!/usr/local/bin/bash
x=`uptime`
a=`echo $x | cut -f1 -d","` ; b=`echo $x | cut -f2 -d","`
c=`echo $x | cut -f3 -d"," |cut -f1 -d":"` ; d=`echo $x |cut -f4 -d":"`
clear
echo $a;echo $b;echo $c;echo $d
echo ^L > /dev/cua/b
echo $a > /dev/cua/b ; echo $b > /dev/cua/b
echo $c > /dev/cua/b ; echo -n $d > /dev/cua/b
echo -n ^D > /dev/cua/b

Output looks like this:

7:18pm up 3 day(s)
9:25
1 user
0.09, 0.11, 0.11

If anyone else has similar contributions, feel free to send them in. I could have done this easier in perl, but this was a quickie five-minute experiment that ended up being "good enough".
 

mayhem

New member
I have tried that script but it just blinks on and off? Do i have to put it in a loop or such to make it refresh.

Basically anything I try and send turns the backlight on, and instantly it goes dead again.

Hmmm.... wish I had more time to fiddle...
 

rupert

New member
Server for LCD that might help

Hi Brent, Mayhem:

I wrote a quick server app for the 632 and 634 LCD in Python, which uses <a href="mailto:ben@thelocust.org">Ben Wilson's</a> pyCFontz module to control the LCD. Essentially, you can just have a very simple client program connect to the port that the server is running on, and issue commands like:

out 'hello world' (write out the string hello world to the screen)
cls (clear screen)
crlf (carriage return, line feed)
cursor x y (set cursor to col x, row y)
(more are supported, this is just a quick example).

It's still very early code (and not ready for formal release), but I'd be happy to share a development version with either of you if you'd like. My email address is <a href="mailto:rupe@metro.yak.net">rupe@metro.yak.net</a>, or just reply here.

Not sure if this is too much work for you, but if you're interested, let me know.
 
USB LCD Displays - Graphic and Character LCDs with a Keypad

edd91

New member
I dont know about linux, so chances are im talking about BS, If those codes need to be compiled, the chances are the compiler is closing it, when i did some windoze programming i found some compilers closed the program instead of looping or ending it
 

rupert

New member
No no...

No, it doesn't mean that at all. It's simply that when the program ends, the RTS and DTR lines go low again, so the LCD powers down. Fini.

Incidentally, compilers don't generally take the liberty of altering the flow of a program during compilation (at least not any that I've worked with). The compiler simply converts high level instructions entered by the programmer into machine code. If you loop your code, it loops. If you don't, and all conditions are exhausted, it ends.

Shell scripts and Perl are interpreted at runtime, unlike C, Java, C++, etc.

The advantage of an LCD server is that it'll drive the RTS and DTR lines high when it starts, and remain running (and therefore continue to display information) regardless of whether any new information is being displayed or not.

Sincerely,

Rupert Scammell
rupe@metro.yak.net
http://metro.yak.net
 

edd91

New member
when i was programming dos progs i know some compilers quit it at the end, as i siad, i dont know linux :)
 

salto

New member
the same problem

mayhem,

did you solve your problem to send data to the LCD?

I have the same problem: whatever I try the LCD doesn't response.
But LCDproc and WinTest work very fine; I tried (under Linux) shell, perl, c and c++.
So how can I get my program to hold the RTS and DTR lines high?

Has anyone alse an idea?

thanks
 

salto

New member
got it!

before I just tried loops like
while(i<10000) i++;

But "pause()" and "usleep(n) holds the RTS and DTS lines high i think (in C). It's really funny but it works now.
I don't understand the difference between a waiting-loop and pause() or usleep() (i mean here - not in general).

Anyway I can start programming now...:)
 
Top