# Crystalfontz 635 LCD.. some notes on making it work.

## elvisthedj

I had a hell of a time getting this going, but it does work now.. I thought I'd share in case someone has one of these.

I'm using lcdproc (haven't tried lcd4linux because I don't see it in portage for amd64 so I just skipped it).  

As far as kernel config, you'll need the ftdi_sio module.  After I compiled/loaded this module, dmesg told me it was attached to /dev/ttyUSB0 but the device had been created under /dev/tts/USB0.  At this point I was trying to get my display working with lcdproc 4.5 so just to see if it made a difference, I edited my udev rules to create the device as /dev/ttyUSB0.. This may have been unnecessary, but everything works now, so I see no reason to change it back.

Now, on to the fun part.  The 635 isn't supported by lcdproc 4.5, so if you've emerged it, get rid of it and head for the nightly tarball (which at this time is located here: http://lcdproc.sourceforge.net/nightly/lcdproc-CVS-current.tar.gz)

After you untar the file, you'll need to get a copy of CFontzPacket.c from cvs (at the time of this writing, this link works: http://cvs.sourceforge.net/viewcvs.py/*checkout*/lcdproc/lcdproc/server/drivers/CFontzPacket.c?rev=1.23 )

Copy the CFontzPacket.c file over the CFontz633.c file in server/drivers

run ./configure --enable-drivers=all

For me and my amd64, this wouldn't compile.  I had to edit several Makefiles to include the  -fPIC flag and then it compiled successfully.. your mileage may vary (especially since this is a nightly release.. As far as I know though, the CFontzPacket driver will only work with this branch)

Once you get it compiled, open the LCDd.conf file from your src directory and edit it appropriately.  You are using the CFontz633 driver (which we replaced with the CFontzPacket.c file).  You'll need to set the 20x4 display size and also make sure you add model=635 to the [CFontz633] section

```

[CFontz633]

Device=/dev/ttyUSB0

Size=20x4

model=635

Contrast=480

Brightness=1000

OffBrightness=50

Speed=19200 #This is what mine is set to.  It's 115200 out of the box.

# Set the firmware version (New means >= 2.0) [default: no; legal: yes, no]

# Currently this flag is not in use, there is no such thing as NewFirmware. ;=)

#NewFirmware=no

# I want to reboot the LCD to make sure we start from a known state

Reboot=yes  

```

Once edited, put it in /etc

This is from the crystalfontz forum (thanks ehall for much of the help above)

 *Quote:*   

> 
> 
> If you can't read the text, try changing the "p->contrast / 20" line in the original CFontzPacket.c file to "p->contrast / 4", change the LCDd.conf so that "contrast=480" and repeat (this is described in the mailing list archives and worked for me). 
> 
> 

 

After running make install, I was able to  start the server successfully. (it was installed to /usr/local/sbin)

Anyway.. maybe this will help somebody.  Let me know if you're stuck.

----------

## rem_proc_call

thanks for the ftd_sio mod hint, I'd still be working on this if it werent for that.    For the kernely challenged (moi  :Smile:  ) you can find it under Device Drivers->USB Support->USB Serial Converter support->USB FTDI Single Port Serial Driver (EXPIREMENTAL) in the 2.6.16 kernel.

One problem I did have is that neither the /dev/ttyUSB0 nor the /dev/tts/USB0 devices were created on startup (even though they show up in dmesg)

When I ran udevstart..... viola... the devices were created, and the 635 test software works like a charm  :Smile: 

Did the ttyUSB0 devices not get created because I'm not running hotplug?   It'd be nice to have the devices created on boot without having to run udevstart, any ideas on what I'm doing wrong?  (gonna rebuild the kernel later with hotplug support and see if that does it)

TIA!

-- rpc

----------

