Review: CrystalFontz Model 634 Reflective 20×4 LCD Display

Reviewer: Bill Bradford
Vendor: CrystalFontz

Review Date: Started 01/07/2000

Tested on system: Ultra 5/270 (256k cache), 128mb, 8.4gig, PGX32 gfx

Some of you may have seen the
cool LCD display panels
available from places such as LinuxCentral and Matrix Orbital, for people running Linux on their PC-based
computers, and might have wished for such a thing for your Sun system.

I’m proud to say that I’ve found a way to add a backlit or non-backlit
2 or 4-line 20-character LCD display to your Solaris system with no hardware
modifications necessary, and around $20-30 cheaper than equivalent displays
from LinuxCentral.

Check out CrystalFontz. They make
great LCD displays with intelligent serial interfaces in 16×2 and 20×4 sizes.
I recently ordered one of their model 634 reflective (non-backlit) displays,
and received it on Friday, January 7th.

Since I was at work, without access to a Solaris system, the first thing I did
was hook up the module to my desktop machine at the office, a Pentium II/400
machine with 128mb of RAM running RedHat Linux 6.1. Since the model 634
reflective display is powered through your system’s serial port, all I needed
to do was connect one end of a DB9 F-F serial cable to the DB9M port on the
back of the display module, and the other to a 9-pin serial port on the
back of my system. I then downloaded and compiled/installed the infamous
LCDproc program, configured it
to use the CrystalFontz display protocol, and fired it up. Everything worked
perfectly, and the display ran an active system load graph for most of the
day. However, their was one question remaining – could I get it to work
with Solaris 8 on my Ultra5?

It didnt take me long to find out. Once I got home, I connected the
serial cable to my Ultra5’s PC-style DB9 serial port, and the other to
the LCD module. I fired up “tip” at 9600 baud, using the following
command line:

tip -9600 /dev/cua/b

and saw “Connected”. From that point on, anything I typed showed up in
the LCD display, and I could issue control characters to do such things as
clear the display, enable scroll, etc. I got the control parameters from
the full
data sheet
that CrystalFontz makes available for their LCD products.

I havent been able to get LCDproc to compile successfully on my Ultra5
yet, but it should be working soon. After that, I only need to build a
small box enclosure for the module. Ultra 10/60 users are lucky enough
that they can also use CrystalFontz’s

PC mounting bracket
to mount a module in two empty 5.25″ drive bays.

Overview: A great, fun, enjoyable little hobbyist project to tinker
with, and no soldering or re-wiring required, just plug-and-go. Customer
service from CrystalWorkz is *excellent*, as are their products, which
consistently beat out the competition on pricing. I’ll definitely be
ordering more modules of various types from them in the future, including
their backlit models which can be powered off of a disk drive power connector.

Pictures:
(click on any picture for a larger version)



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”.