CFA635-YYE-KL photo

CFA635-YYE-KL

TTL / Logic Level (0-5v) Serial 20x4 character LCD module, Keypad, Yellow/Green LED Backlight, STN Positive, Yellow/Green, Transflective, 0C to +50C operation, and 12:00 viewing angle.

CFA635 Serial Family

  • LED backlit 20x4 LCD
  • Integrated LED backlit 6-button translucent silicon keypad with screened legend
  • Four bicolor (red + green) LEDs. The LEDs’ brightness can controlled by the host software, which allows mixing the LEDs to produce other colors (yellow and orange)
  • Current shipping hardware: v1.2
  • Current shipping firmware: s2.0
  • Three color options:
    • Yellow-green backlit positive mode LCD, yellow/green keypad backlight ("YYE")
    • White backlit negative mode LCD, blue keypad backlight ("TMF")
    • White backlit positive mode LCD, white keypad backlight ("TFE")
  • Fully decoded keypad: any key combination is valid and unique
  • LCD characters are contiguous in both X and Y directions to allow the host software to display "gapless" bar graphs in horizontal or vertical directions
  • Serial interface (115200 baud equivalent throughput)
    • KS and KS1 supports full swing RS-232 with CFARS-232 daughter board
    • KL supports 0 -5v logic level serial
  • Robust packet based communications protocol with 16-bit CRC
  • Compact size: fits in a 1U rack mount case (37mm overall height)
  • ATX power supply control functionality allows the buttons on the CFA-635 to replace the "power" and "reset" buttons on your system, simplifying your front panel design (requires additional cables or hardware).
  • Built-in factory re-programmable microcontroller
  • Non-volatile memory capability ("EEPROM"):
    • Customize the "power-on" display and LED settings
    • 16-byte "scratch" register for storing IP, netmask, system serial number
  • Available with USB interface
For reference only. For design purposes, please use the specifications in the datasheet.

Physical Characteristics

Characters x Lines 20 x 4
Module Overall
width height depth
millimeters 142 37 20.8
inches 5.59 1.45 0.81
PCB Outline
width height depth
millimeters 142 37 20.8
inches 5.59 1.45 0.81
Other Features Affecting Size
  • Keypad
Please see the datasheet
Viewing Area
width height
millimeters 82.95 27.5
inches 3.26 1.08
Active Area
width height
millimeters 77.95 22.35
inches 3.06 0.87
Character Size
width height
millimeters 3.2 4.85
inches 0.12 0.19
Character Pitch
width height
millimeters 3.9 5.6
inches 0.15 0.22
Dot Size
width height
millimeters 0.6 0.65
inches 0.02 0.02
Dot Pitch
width height
millimeters 0.65 0.7
Weight 66g
Keystroke Travel 2.4mm

Optical Characteristics

Display Technology LCD
Display Addressing passive
Glass Type/Glass Color STN/Yellow-Green
Polarizer Transflective
View Direction 12
Backlight Color Yellow-Green
Backlight Type LED
Mode Positive
Foreground Color Dark
Background Color Yellow-Green

Environmental

Operating Temperatures
min max
Celsius 50°
Farenheit 32° 122°
Storage Temperatures
min max
Celsius -10° 60°
Farenheit 14° 140°
Humidity
min max
Non-condensing 0% 90%

Electronics

Controller CFA 631/635/735
Interface Logic Level Serial

Datasheets

CFA635-xxx-KL_Data_Sheet_Release_2014-03-18.pdf (5MB, Mar 2014, Datasheet v.2014-03-18, Hardware v.h1v2, Firmware v.s2v0)
Obsolete Datasheets
CFA635-xxx-KL_Data_Sheet_Release_2013-03-06.pdf (5MB, Mar 2013, Hardware v.h1v2, Firmware v.s2v0)
Preliminary h1v2/s2v0 CFA635 KL Datasheet (7MB, Oct 2012, Datasheet v.Preliminary, Hardware v.1.2, Firmware v.s2.0)
CFA635-YYE-KL_Data_Sheet_v2.1.pdf (2MB, Oct 2010, Datasheet v.2.1, Hardware v.1.1, Firmware v.s1.6)
CFA635-YYE-KL_Data_Sheet_v2.0.pdf (1MB, Aug 2010, Datasheet v.2.0, Hardware v.1.1, Firmware v.s1.6)
CFA635YYEKL_v1.0.pdf (3MB, Mar 2010, Datasheet v.1.0, Hardware v.1.0, Firmware v.1.3)
CFA_635_v1.4a.pdf (2MB, Nov 2005, Datasheet v.1.4a, Hardware v.1.0, Firmware v.1.4)
CFA_635_v1.4.pdf (2MB, Aug 2005, Datasheet v.1.4, Hardware v.1.0, Firmware v.1.4)
CFA_635_1_0.pdf (2MB, Mar 2005, Datasheet v.1.0, Hardware v.1.0, Firmware v.1.0)

Other Files

Subscribe to Part Change Notices by email Email subscription for changes to CFA635-YYE-KL or RSS RSS feed for changes to CFA635-YYE-KL

Part Change Notice #10406

Products Affected: CFA635-TMF-KU1, CFA635-TMF-KU2, CFA635-TFE-KU1, CFA635-TFE-KU2, CFA635-YYE-KU1, CFA635-YYE-KU2, CFA635-YYE-KS, CFA635-TMF-KS, CFA635-TFE-KS, CFA635-TMF-KL, CFA635-TFE-KL, DB635-ALTMF-KU1, DB635-ALTMF-KU2, DB635-ALTMF-KU3, DB635-ALYYE-KU1, DB635-ALYYE-KU2, DB635-ALYYE-KU3, DB635-BGTMF-KU1, DB635-BGTMF-KU2, DB635-BGTMF-KU3, DB635-BGYYE-KU1, DB635-BGYYE-KU2, DB635-BGYYE-KU3, DB635-BKTMF-KU1, DB635-BKTMF-KU2, DB635-BKTMF-KU3, DB635-BKYYE-KU1, DB635-BKYYE-KU2, DB635-BKYYE-KU3, DB635-AKTMF-KU1, DB635-AKTMF-KU2, DB635-AKTMF-KU3, DB635-AKYYE-KU1, DB635-AKYYE-KU2, DB635-AKYYE-KU3, DB635-AKTFE-KU1, DB635-AKTFE-KU2, DB635-AKTFE-KU3, CFA635-TFE-KU, CFA635-YYE-KL, DB635-ALTFE-KU1, DB635-ALTFE-KU2, DB635-ALTFE-KU3, DB635-BGTFE-KU1, DB635-BGTFE-KU2, DB635-BGTFE-KU3, DB635-BKTFE-KU1, DB635-BKTFE-KU2, DB635-BKTFE-KU3, XES635BK-TFE-KU, XES635BK-TMF-KU, XES635BK-YYE-KU, CFA635-TMF-KU, CFA635-YYE-KU
Date Issued: March 20, 2012
Summary: Supporting firmware for the reactivation of the CFA635 family of modules.
Last revision: 1v6
Description: The CFA635 family of modules is being reactivated with a new LCD controller chip, the Rockworks RW1067. The majority of the changes to the firmware have been in support of the RW1067 LCD controller and are transparent to the user interface. The changes to the CFA635 2v0 firmware:

For hardware changes related to this firmware update, please see PCN #10405

Updates
Command 1 (0x01): Get Hardware & Firmware Version
Modules with the serial interface, -KL and -KS suffix, will report: CFA635:h1v2,s2v0
Modules with the USB interface, -KU suffix, will report: CFA635:h1v2, u2v0

Command 12 (0x0C): Set LCD Cursor Style
Option 4 = inverting, blinking block is no longer supported. This option will result in a blinking underscore.

Command 22 (0x16): Send Command Directly to the LCD Controller
Any command sent specifically to the Samsung S6A0073 will need to be reviewed / modified for the commands / registers of the Rockworks RW1067. Please contact the Crystalfontz Engineering Support Team at support@crystalfontz.com for the RW1067 datasheet.

Enhancements
Command 28 (0x1C): Set ATX Power Switch Functionality
Added auto polarity switch.
Improved pulse length functionality.
Added feature to hold until system off during power down.

Fixes
Updates to timings and sequence of Serial interface power up to prevent possible corruption of data displayed
Reason: When the CFA635 family was scheduled for End of Life (see PCN #10365) there was no replacement available for the Samsung S6A0073 LCD controller. The CFA735 family was designed as replacement for the CFA635, allowing a path for improved performance, graphics, and the ability for end users to write their own firmware to take advantage of the capabilities of the enhanced hardware.

After the development of the CFA735 family, the RW1067 was developed as a replacement for the Samsung S6A0073 LCD controller for Crystalfontz America, Inc by Rockworks (China).
Impact: This announcement impacts all variants, interfaces, and part numbers that currently use the CFA635 family of modules. The CFA635 can continue to be used in current and future designs.
Recommendation: Continue to order and build with the CFA635 as required by production schedules. Transition to the CFA635 1v2 hardware and supporting firmware should be a seamless process. Engineering samples for qualification for the revised CFA635 are scheduled to be available Q3 of 2012.
Availability: Q2 2012
Review / Update customer Defined Part custom firmware

Q3 2012
New hardware and supporting firmware available for engineering samples
Estimated - Begin transition to 1v2 hardware as 1v1 hardware inventory is depleted
NOTE: We will not ship production orders of 1v2 hardware until the 1v1 inventory is depleted

Q4 2012
Estimated - CFA635 1v1 hardware to be exhausted, transition to CFA635 1v2 hardware complete
Price Change: No scheduled price change at this time.

Part Change Notice #10405

Products Affected: CFA635-TMF-KU1, CFA635-TMF-KU2, CFA635-TFE-KU1, CFA635-TFE-KU2, CFA635-YYE-KU1, CFA635-YYE-KU2, CFA635-YYE-KS, CFA635-TMF-KS, CFA635-TFE-KS, CFA635-TMF-KL, CFA635-TFE-KL, CFA635-TFE-KU, CFA635-YYE-KL, XES635BK-TFE-KU, XES635BK-TMF-KU, XES635BK-YYE-KU, CFA635-TMF-KU, CFA635-YYE-KU, DS635-ALTMF-KU1, DS635-ALTMF-KU2, DS635-ALTMF-KU3, DS635-ALYYE-KU1, DS635-ALYYE-KU2, DS635-ALYYE-KU3, DS635-BGTMF-KU1, DS635-BGTMF-KU2, DS635-BGTMF-KU3, DS635-BGYYE-KU1, DS635-BGYYE-KU2, DS635-BGYYE-KU3, DS635-BKTMF-KU1, DS635-BKTMF-KU2, DS635-BKTMF-KU3, DS635-BKYYE-KU1, DS635-BKYYE-KU2, DS635-BKYYE-KU3, DS635-AKTMF-KU1, DS635-AKTMF-KU2, DS635-AKTMF-KU3, DS635-AKYYE-KU1, DS635-AKYYE-KU2, DS635-AKYYE-KU3, DS635-AKTFE-KU1, DS635-AKTFE-KU2, DS635-AKTFE-KU3, DS635-ALTFE-KU1, DS635-ALTFE-KU2, DS635-ALTFE-KU3, DS635-BGTFE-KU1, DS635-BGTFE-KU2, DS635-BGTFE-KU3, DS635-BKTFE-KU1, DS635-BKTFE-KU2, DS635-BKTFE-KU3
Date Issued: March 20, 2012
Summary: Reactivation of the CFA635 family of modules with 1v2 hardware and supporting firmware.
Last revision: 1v1
Description: The CFA635 family of modules is being reactivated with a new LCD controller chip, the Rockworks RW1067. The changes to the CFA635 1v2 hardware are as follows:

  1. LCD controller changing from Samsung S6A0073 to Rockworks RW1067

  2. Supporting driving circuitry between the LCD controller and the LCD glass has been updated to support the Rockworks RW1067

  3. The PCB layout has been updated to support the Rockworks RW1067

  4. Firmware updates to support the Rockworks RW1067 and functional improvements See PCN #10406


The only changes to the CFA635 family are to support the Rockworks RW1067 controller. There are no other physical changes to the CFA635.
Reason: When the CFA635 family was scheduled for End of Life (see PCN #10365) there was no replacement available for the Samsung S6A0073 LCD controller. The CFA735 family was designed as replacement for the CFA635, allowing a path for improved performance, graphics, and the ability for end users to write their own firmware to take advantage of the capabilities of the enhanced hardware.

After the development of the CFA735 family, the RW1067 was developed as a replacement for the Samsung S6A0073 LCD controller for Crystalfontz America, Inc by Rockworks (China).
Impact: This announcement impacts all variants, interfaces, and part numbers that currently use the CFA635 family of modules. The CFA635 can continue to be used in current and future designs.
Recommendation: Continue to order and build with the CFA635 as required by production schedules. Transition to the CFA635 1v2 hardware and supporting firmware should be a seamless process. Engineering samples for qualification for the revised CFA635 are scheduled to be available Q3 of 2012.
Availability: Q2 2012
Review / Update customer Defined Part custom firmware

Q3 2012
New hardware and supporting firmware available for engineering samples

Estimated - Begin transition to 1v2 hardware as 1v1 hardware inventory is depleted

NOTE: We will not ship production orders of 1v2 hardware until the 1v1 inventory is depleted

Q4 2012
Estimated - CFA635 1v1 hardware to be exhausted, transition to CFA635 1v2 hardware complete
Price Change: No scheduled price change at this time.

Product Update #10377

Products Affected: CFA635-TMF-KU1, CFA635-TMF-KU2, CFA635-TFE-KU1, CFA635-TFE-KU2, CFA635-YYE-KU1, CFA635-YYE-KU2, CFA635-YYE-KS, CFA635-TMF-KS, CFA635-TFE-KS, CFA635-TMF-KL, CFA635-TFE-KL, CFA635-TFE-KU, CFA635-YYE-KL, CFA635-TMF-KU, CFA635-YYE-KU, CFA735-TFK-KR, CFA735-TFK-KT, CFA735-TFK-KT1, CFA735-TFK-KR1, CFA735-TFK-KR2, CFA735-TML-KR, CFA735-TML-KR1, CFA735-TML-KR2, CFA735-TML-KT, CFA735-TML-KT1, CFA735-YYK-KR, CFA735-YYK-KR1, CFA735-YYK-KR2, CFA735-YYK-KT, CFA735-YYK-KT1
Date Issued: January 3, 2012
Summary: CFA635 to CFA735 Migration
Description: Detailed in formation on migrating from the CFA635 family to the CFA735 family of intelligent modules. The document covers the similarities and differences between the two family of modules.
Reason: Support for the CFA735 product announcement.
Recommendation: All CFA635 users should download and read the document.
Availability: Q1 2012 Initial run of CFA735 family available. Limited Quantities.

Q2 2012 Production level shipments of CFA735 family.

Q3 2012 - CFA735 fully replaces CFA635.
Attachment: CFA735_Migration_doc.pdf (734KB)

Part Change Notice #10365

Products Affected: CFA635-TMF-KU1, CFA635-TMF-KU2, CFA635-TFE-KU1, CFA635-TFE-KU2, CFA635-YYE-KU1, CFA635-YYE-KU2, CFA635-YYE-KS, CFA635-TMF-KS, CFA635-TFE-KS, CFA635-TMF-KL, CFA635-TFE-KL, DB635-ALTMF-KU1, DB635-ALTMF-KU2, DB635-ALTMF-KU3, DB635-ALYYE-KU1, DB635-ALYYE-KU2, DB635-ALYYE-KU3, DB635-BGTMF-KU1, DB635-BGTMF-KU2, DB635-BGTMF-KU3, DB635-BGYYE-KU1, DB635-BGYYE-KU2, DB635-BGYYE-KU3, DB635-BKTMF-KU1, DB635-BKTMF-KU2, DB635-BKTMF-KU3, DB635-BKYYE-KU1, DB635-BKYYE-KU2, DB635-BKYYE-KU3, DB635-AKTMF-KU1, DB635-AKTMF-KU2, DB635-AKTMF-KU3, DB635-AKYYE-KU1, DB635-AKYYE-KU2, DB635-AKYYE-KU3, DB635-AKTFE-KU1, DB635-AKTFE-KU2, DB635-AKTFE-KU3, CFA635-TFE-KU, CFA635-YYE-KL, DB635-ALTFE-KU1, DB635-ALTFE-KU2, DB635-ALTFE-KU3, DB635-BGTFE-KU1, DB635-BGTFE-KU2, DB635-BGTFE-KU3, DB635-BKTFE-KU1, DB635-BKTFE-KU2, DB635-BKTFE-KU3, XES635BK-TFE-KU, XES635BK-TMF-KU, XES635BK-YYE-KU, CFA635-TMF-KU, CFA635-YYE-KU
Date Issued: October 6, 2011
Summary: End of Life announcement: CFA635 family of Intelligent Modules.
Last revision: HW: v1.1, FW: v1.6
Description:

Effective 2012-03-19:

The CFA635 family of modules is no longer End of Life and is recommended for new designs.

For a hardware changes please see PCN #10405

For a firmware changes please see PCN #10406




2011-10-06:
Effective immediately, Crystalfontz America, Inc is announcing the End of Life (EOL) for the CFA635 family of modules.

The CFA635 is a character based intelligent LCD module built around a Cypress PsoC micro-controller and a Samsung S6A0073 LCD controller. Samsung announced the EOL of the S6A0073 at the end of 2007. After the announcement, Crystalfontz America, Inc began designing a replacement module and planned for continuing to manufacture and support the CFA635 family until a compatible replacement module was designed and available.

REVISED: 2011-12-15
REVISED: 2012-03-19
Reason: As part of our continuous improvement process, the engineering services group at Crystalfontz America Inc. is announcing the End of Life (EOL) to our CFA635 family of modules. This end of life is scheduled to take place at the end of 2012 Q2.

The CFA635 is being replaced with the first of a new generation of intelligent modules from Crystalfontz America, Inc. This new module is the CFA735 family. The CFA735 family has been primarily designed to be a replacement for the CFA635 family with a number of enhancements / improvements.
Impact: This announcement impacts all variants, interfaces, and part numbers that currently use the CFA635 family of modules.

The CFA635 family is not recommended for new designs.
Recommendation: Continue to order and build with the CFA635 as required by schedules. Plan on making transition to the CFA735 family of modules when available.

To obtain more information on the CFA635 family replacement, the CFA735 family, please send an email to support@crystalfontz.com. We will provide you the following when available:
  • preliminary datasheet

  • notification of the initial run of CFA735 modules

  • notice of any updates or changes to the CFA735

Availability: Q4 2011:
  • Pilot run of CFA735 family available

  • CFA735 New product announcement


Q1 2012:
  • Final shipments of CFA635 from partner factory


Q2 2012:
  • CFA635 begins phase out and inventory draw down

  • Last CFA635 orders accepted

  • Production level shipments of CFA735 start


Q3 2012:
  • CFA635 inventory purged

  • CFA735 fully replaces CFA635
Price Change: There is no scheduled price change to the CFA635 family at this time. Pricing will be reviewed on a monthly basis.
Attachment: CFA635_EOL_Notes.pdf (75KB)

Part Change Notice #10282

Products Affected: CFA633-YYB-KS, CFA633-TMC-KS, CFA633-RMC-KS, CFA633-YYB-KU, CFA633-TMC-KU, CFA633-RMC-KU, CFA635-TMF-KU1, CFA635-TMF-KU2, CFA635-TFE-KU1, CFA635-TFE-KU2, CFA635-YYE-KU1, CFA635-YYE-KU2, CFA635-YYE-KS, CFA635-TMF-KS, CFA635-TFE-KS, CFA635-TMF-KL, CFA635-TFE-KL, CFA635-TFE-KU, CFA635-YYE-KL, CFA635-TMF-KU, CFA635-YYE-KU, CFA533-YYH-KS, CFA533-YYH-KU, CFA533-TMI-KS, CFA533-TMI-KU, CFA533-YYH-KL, CFA533-TMI-KL, CFA533-YYH-KC, CFA533-TMI-KC, CFA533-TMI-KI, CFA533-YYH-KI
Date Issued: June 6, 2010
Summary: Keypad height change
Description: Over the next 6 months or so, we will be transitioning to a keypad that is 1.5mm taller than the keypad currently shipping on these modules.
Reason: We have found that in all cases that we are aware of, the keypad being 1.5mm taller will alleviate some customer difficulties.
Recommendation: If you need the keypad to remain the same height for your application, please email support@crystalfontz.com so that we can set aside some of the shorter keypads for your company's application.
Availability: ~0-6 months.
Price Change: None.

Part Change Notice #10280

Products Affected: CFA635-TMF-KU1, CFA635-TMF-KU2, CFA635-TFE-KU1, CFA635-TFE-KU2, CFA635-YYE-KU1, CFA635-YYE-KU2, CFA635-YYE-KS, CFA635-TMF-KS, CFA635-TFE-KS, CFA635-TMF-KL, CFA635-TFE-KL, DB635-ALTMF-KU1, DB635-ALTMF-KU2, DB635-ALTMF-KU3, DB635-ALYYE-KU1, DB635-ALYYE-KU2, DB635-ALYYE-KU3, DB635-BGTMF-KU1, DB635-BGTMF-KU2, DB635-BGTMF-KU3, DB635-BGYYE-KU1, DB635-BGYYE-KU2, DB635-BGYYE-KU3, DB635-BKTMF-KU1, DB635-BKTMF-KU2, DB635-BKTMF-KU3, DB635-BKYYE-KU1, DB635-BKYYE-KU2, DB635-BKYYE-KU3, DB635-AKTMF-KU1, DB635-AKTMF-KU2, DB635-AKTMF-KU3, DB635-AKYYE-KU1, DB635-AKYYE-KU2, DB635-AKYYE-KU3, DB635-AKTFE-KU1, DB635-AKTFE-KU2, DB635-AKTFE-KU3, CFA635-TFE-KU, CFA635-YYE-KL, DB635-ALTFE-KU1, DB635-ALTFE-KU2, DB635-ALTFE-KU3, DB635-BGTFE-KU1, DB635-BGTFE-KU2, DB635-BGTFE-KU3, DB635-BKTFE-KU1, DB635-BKTFE-KU2, DB635-BKTFE-KU3, XES635BK-TFE-KU, XES635BK-TMF-KU, XES635BK-YYE-KU, CFA635-TMF-KU, CFA635-YYE-KU, DS635-ALTMF-KU1, DS635-ALTMF-KU2, DS635-ALTMF-KU3, DS635-ALYYE-KU1, DS635-ALYYE-KU2, DS635-ALYYE-KU3, DS635-BGTMF-KU1, DS635-BGTMF-KU2, DS635-BGTMF-KU3, DS635-BGYYE-KU1, DS635-BGYYE-KU2, DS635-BGYYE-KU3, DS635-BKTMF-KU1, DS635-BKTMF-KU2, DS635-BKTMF-KU3, DS635-BKYYE-KU1, DS635-BKYYE-KU2, DS635-AKTMF-KU1, DS635-AKTMF-KU2, DS635-AKTMF-KU3, DS635-AKYYE-KU1, DS635-AKYYE-KU2, DS635-AKYYE-KU3, DS635-AKTFE-KU1, DS635-AKTFE-KU2, DS635-AKTFE-KU3, DS635-ALTFE-KU1, DS635-ALTFE-KU2, DS635-ALTFE-KU3, DS635-BGTFE-KU1, DS635-BGTFE-KU2, DS635-BGTFE-KU3, DS635-BKTFE-KU1, DS635-BKTFE-KU2, DS635-BKTFE-KU3
Date Issued: April 10, 2010
Summary: Firmware change
Description: Firmware / reset circuit change from v1.4 to v1.6
Reason: To make LCD module less sensitive to supply variations
Impact: Range checking on command 0 is corrected.
Parameter checking on command 20 is corrected.
Module will return "CFA635:h1.1,v1.6" for command 1.

Customers who have customized part numbers will not be affected by this change unless they contact Crystalfontz to have their part definition changed.
Availability: 2010/05/01
Price Change: N/A

For reference only. For design purposes, please use the specifications in the datasheet.
add a note add a note

User Contributed Notes for CFA635-YYE-KL

allen at crystalfontz the com Aug 23, 2012 11:36AM
Java on Windows for changing text commands to CRC16 data packets understandable by CFA631, CFA533/CFA633, CFA635, and CFA735 LCDspublic class CRC16 extends Object
{
    public static void main(String[] args)
    {
        byte[] data = new byte[2];
        // hw - fw
        data[0] = 0x01;
        data[1] = 0x00;
        System.out.println("hw -fw req");
        System.out.println(Integer.toHexString(compute(data)));

        // ping
        data[0] = 0x00;
        data[1] = 0x00;
        System.out.println("ping");
        System.out.println(Integer.toHexString(compute(data)));

        // reboot
        data[0] = 0x05;
        data[1] = 0x00;
        System.out.println("reboot");
        System.out.println(Integer.toHexString(compute(data)));

        // clear lcd
        data[0] = 0x06;
        data[1] = 0x00;
        System.out.println("clear lcd");
        System.out.println(Integer.toHexString(compute(data)));

        // set line 1
        data = new byte[18];
        data[0] = 0x07;
        data[1] = 0x10;
        String text = "Test Test Test  ";
        byte[] textByte = text.getBytes();
        for (int i=0; i < text.length(); i++) data[i+2] = textByte[i];
        System.out.println("text 1");
        System.out.println(Integer.toHexString(compute(data)));
    }
    
    private CRC16()
    {
    }
    
    private static final int[] crcLookupTable =
    {
        0x00000,0x01189,0x02312,0x0329B,0x04624,0x057AD,0x06536,0x074BF,
        0x08C48,0x09DC1,0x0AF5A,0x0BED3,0x0CA6C,0x0DBE5,0x0E97E,0x0F8F7,
        0x01081,0x00108,0x03393,0x0221A,0x056A5,0x0472C,0x075B7,0x0643E,
        0x09CC9,0x08D40,0x0BFDB,0x0AE52,0x0DAED,0x0CB64,0x0F9FF,0x0E876,
        0x02102,0x0308B,0x00210,0x01399,0x06726,0x076AF,0x04434,0x055BD,
        0x0AD4A,0x0BCC3,0x08E58,0x09FD1,0x0EB6E,0x0FAE7,0x0C87C,0x0D9F5,
        0x03183,0x0200A,0x01291,0x00318,0x077A7,0x0662E,0x054B5,0x0453C,
        0x0BDCB,0x0AC42,0x09ED9,0x08F50,0x0FBEF,0x0EA66,0x0D8FD,0x0C974,
        0x04204,0x0538D,0x06116,0x0709F,0x00420,0x015A9,0x02732,0x036BB,
        0x0CE4C,0x0DFC5,0x0ED5E,0x0FCD7,0x08868,0x099E1,0x0AB7A,0x0BAF3,
        0x05285,0x0430C,0x07197,0x0601E,0x014A1,0x00528,0x037B3,0x0263A,
        0x0DECD,0x0CF44,0x0FDDF,0x0EC56,0x098E9,0x08960,0x0BBFB,0x0AA72,
        0x06306,0x0728F,0x04014,0x0519D,0x02522,0x034AB,0x00630,0x017B9,
        0x0EF4E,0x0FEC7,0x0CC5C,0x0DDD5,0x0A96A,0x0B8E3,0x08A78,0x09BF1,
        0x07387,0x0620E,0x05095,0x0411C,0x035A3,0x0242A,0x016B1,0x00738,
        0x0FFCF,0x0EE46,0x0DCDD,0x0CD54,0x0B9EB,0x0A862,0x09AF9,0x08B70,
        0x08408,0x09581,0x0A71A,0x0B693,0x0C22C,0x0D3A5,0x0E13E,0x0F0B7,
        0x00840,0x019C9,0x02B52,0x03ADB,0x04E64,0x05FED,0x06D76,0x07CFF,
        0x09489,0x08500,0x0B79B,0x0A612,0x0D2AD,0x0C324,0x0F1BF,0x0E036,
        0x018C1,0x00948,0x03BD3,0x02A5A,0x05EE5,0x04F6C,0x07DF7,0x06C7E,
        0x0A50A,0x0B483,0x08618,0x09791,0x0E32E,0x0F2A7,0x0C03C,0x0D1B5,
        0x02942,0x038CB,0x00A50,0x01BD9,0x06F66,0x07EEF,0x04C74,0x05DFD,
        0x0B58B,0x0A402,0x09699,0x08710,0x0F3AF,0x0E226,0x0D0BD,0x0C134,
        0x039C3,0x0284A,0x01AD1,0x00B58,0x07FE7,0x06E6E,0x05CF5,0x04D7C,
        0x0C60C,0x0D785,0x0E51E,0x0F497,0x08028,0x091A1,0x0A33A,0x0B2B3,
        0x04A44,0x05BCD,0x06956,0x078DF,0x00C60,0x01DE9,0x02F72,0x03EFB,
        0x0D68D,0x0C704,0x0F59F,0x0E416,0x090A9,0x08120,0x0B3BB,0x0A232,
        0x05AC5,0x04B4C,0x079D7,0x0685E,0x01CE1,0x00D68,0x03FF3,0x02E7A,
        0x0E70E,0x0F687,0x0C41C,0x0D595,0x0A12A,0x0B0A3,0x08238,0x093B1,
        0x06B46,0x07ACF,0x04854,0x059DD,0x02D62,0x03CEB,0x00E70,0x01FF9,
        0x0F78F,0x0E606,0x0D49D,0x0C514,0x0B1AB,0x0A022,0x092B9,0x08330,
        0x07BC7,0x06A4E,0x058D5,0x0495C,0x03DE3,0x02C6A,0x01EF1,0x00F78
    };

    public static int compute(byte[] data)
    {
        int newCrc = 0x0FFFF;
        for (int i = 0; i < data.length; i++)
        {
            int lookup = crcLookupTable[(newCrc ^ data[i]) & 0xFF];
            newCrc = (newCrc >> 8) ^ lookup;
        }
        return(~newCrc);
    }
}
  
allen at crystalfontz the com Aug 23, 2012 11:10AM
This is C# (C sharp) used to control CFA633, CFA635, CFA631 USB LCDs and keypad buttons. It's bare-bones. Does not monitor return packets or SCAB/Keypad reports. 

The first thing to improve would be to open the serial port in a class constructor or open method, then close it in a destructor or a close method so that ports aren't continually opening and closing for each packet, as they are in this example code.
using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Text;
namespace ConsoleApplication1
{
    publicclassLCD
    {
        public SerialPort Port = newSerialPort("COM3", 115200, Parity.None, 8, StopBits.One);
        public struct PACKET_STRUCT
        {
            public Byte command, data_length;
            public Byte[] data;
            public uint crc;
            public PACKET_STRUCT(Byte[] byteArray, Byte c, Byte length)
            {
                command = c;
                data_length = length;
                data = byteArray;
                crc = uint.MinValue;
            }
        }

        private static uint[] crcLookupTable =
        {
            0x00000,0x01189,0x02312,0x0329B,0x04624,0x057AD,0x06536,0x074BF,
            0x08C48,0x09DC1,0x0AF5A,0x0BED3,0x0CA6C,0x0DBE5,0x0E97E,0x0F8F7,
            0x01081,0x00108,0x03393,0x0221A,0x056A5,0x0472C,0x075B7,0x0643E,
            0x09CC9,0x08D40,0x0BFDB,0x0AE52,0x0DAED,0x0CB64,0x0F9FF,0x0E876,
            0x02102,0x0308B,0x00210,0x01399,0x06726,0x076AF,0x04434,0x055BD,
            0x0AD4A,0x0BCC3,0x08E58,0x09FD1,0x0EB6E,0x0FAE7,0x0C87C,0x0D9F5,
            0x03183,0x0200A,0x01291,0x00318,0x077A7,0x0662E,0x054B5,0x0453C,
            0x0BDCB,0x0AC42,0x09ED9,0x08F50,0x0FBEF,0x0EA66,0x0D8FD,0x0C974,
            0x04204,0x0538D,0x06116,0x0709F,0x00420,0x015A9,0x02732,0x036BB,
            0x0CE4C,0x0DFC5,0x0ED5E,0x0FCD7,0x08868,0x099E1,0x0AB7A,0x0BAF3,
            0x05285,0x0430C,0x07197,0x0601E,0x014A1,0x00528,0x037B3,0x0263A,
            0x0DECD,0x0CF44,0x0FDDF,0x0EC56,0x098E9,0x08960,0x0BBFB,0x0AA72,
            0x06306,0x0728F,0x04014,0x0519D,0x02522,0x034AB,0x00630,0x017B9,
            0x0EF4E,0x0FEC7,0x0CC5C,0x0DDD5,0x0A96A,0x0B8E3,0x08A78,0x09BF1,
            0x07387,0x0620E,0x05095,0x0411C,0x035A3,0x0242A,0x016B1,0x00738,
            0x0FFCF,0x0EE46,0x0DCDD,0x0CD54,0x0B9EB,0x0A862,0x09AF9,0x08B70,
            0x08408,0x09581,0x0A71A,0x0B693,0x0C22C,0x0D3A5,0x0E13E,0x0F0B7,
            0x00840,0x019C9,0x02B52,0x03ADB,0x04E64,0x05FED,0x06D76,0x07CFF,
            0x09489,0x08500,0x0B79B,0x0A612,0x0D2AD,0x0C324,0x0F1BF,0x0E036,
            0x018C1,0x00948,0x03BD3,0x02A5A,0x05EE5,0x04F6C,0x07DF7,0x06C7E,
            0x0A50A,0x0B483,0x08618,0x09791,0x0E32E,0x0F2A7,0x0C03C,0x0D1B5,
            0x02942,0x038CB,0x00A50,0x01BD9,0x06F66,0x07EEF,0x04C74,0x05DFD,
            0x0B58B,0x0A402,0x09699,0x08710,0x0F3AF,0x0E226,0x0D0BD,0x0C134,
            0x039C3,0x0284A,0x01AD1,0x00B58,0x07FE7,0x06E6E,0x05CF5,0x04D7C,
            0x0C60C,0x0D785,0x0E51E,0x0F497,0x08028,0x091A1,0x0A33A,0x0B2B3,
            0x04A44,0x05BCD,0x06956,0x078DF,0x00C60,0x01DE9,0x02F72,0x03EFB,
            0x0D68D,0x0C704,0x0F59F,0x0E416,0x090A9,0x08120,0x0B3BB,0x0A232,
            0x05AC5,0x04B4C,0x079D7,0x0685E,0x01CE1,0x00D68,0x03FF3,0x02E7A,
            0x0E70E,0x0F687,0x0C41C,0x0D595,0x0A12A,0x0B0A3,0x08238,0x093B1,
            0x06B46,0x07ACF,0x04854,0x059DD,0x02D62,0x03CEB,0x00E70,0x01FF9,
            0x0F78F,0x0E606,0x0D49D,0x0C514,0x0B1AB,0x0A022,0x092B9,0x08330,
            0x07BC7,0x06A4E,0x058D5,0x0495C,0x03DE3,0x02C6A,0x01EF1,0x00F78        
        };
        
        public static uint CalculateCRC(byte[] data, int offset, int length)
        {
            uint newCrc = 0x0FFFF;
            for (int i = offset; i < length; i++)
            {
                uint lookup = crcLookupTable[(newCrc ^ data[i]) & 0xFF];
                newCrc = (newCrc >> 8) ^ lookup;
            }
            return (~newCrc);
        }

        public void Send_Packet(ref PACKET_STRUCT packet)
        {
            byte[] linear_array = new byte[26];
            byte[] crc_bytes;
    
            linear_array[0] = packet.command;
            linear_array[1] = packet.data_length;

            if(packet.data_length > 0)
            {
                Array.Copy(packet.data, 0, linear_array, 2, packet.data_length);
            }

            packet.crc = CalculateCRC(linear_array, 0, packet.data_length + 2);
    
            crc_bytes = BitConverter.GetBytes((ushort)packet.crc);
            Array.Copy(crc_bytes, 0, linear_array, packet.data_length + 2, 2);
 
            Port.Open();
            Port.Write(linear_array, 0, packet.data_length + 4);
            Port.Close();
        }

        public LCD()
        {
            PACKET_STRUCT outgoing = new PACKET_STRUCT();
            outgoing.command = 0x06;
            outgoing.data_length = 0;
            outgoing.data = null;
            Send_Packet(ref outgoing);
        }
    }
}

Then you run this to actually make an object out of the aboveusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        staticvoid Main(string[] args)
        {
            LCD LCD = new LCD(); 
        }
    }
}

Quantity:
Ship Qty Price
1 $71.30
10 $66.90
20 * $62.40
50 * $58.00
100 * $53.50
200 * $49.10
500 * $44.70
1000 * $40.20
* These quantities may have up to 90 days lead time.

More Like This One