• We recently switched our forum platform. If you experience any issues please email support@crystalfontz.com

CFA-635 and controlling individual pixels


New member
I have a few questions regarding the CFA-635. I'm new to programming so sorry if I've missed something obvious - I'm writing in C/C++.

I've created my hello world program and all works fine. The problem is that I need more control - centre text and display graphics.

The reason being is that I need to create a GUI with menu buttons for the user to navigate around using the six input buttons provided on the LCD Module.

I already have the code to turn bitmaps into ASM, this leads me to my first problem/question: -

* ONE *

1) On a cleared/blank screen I want to turn on one individual pixel in the middle of the screen.

Is it possible to do this?

I want to use Command 22 rather than changing the Character Generator ROM with Command 9.

22: Send Command Directly to the LCD Controller

The LCD controller on the CFA-635 is S6A0073 compatible. Generally you won’t need low-level access to the LCD controller but some arcane functions of the S6A0073 are not exposed by the CFA-635’s command set. This command allows you to access the CFA-635’s LCD controller directly. Note: It is possible to corrupt the CFA-635 display using this command.

type = 22
data_length = 2
data[0]: location code
0 = "Data" register
1 = "Control" register, RE=0
2 = "Control" register, RE=1
data[1]: data to write to the selected register

I've downloaded the Data Sheet for S6A007 - please see the PDF file.


My hardware knowledge is slightly limited. Which register do I need? And what data do I write to that register?

I'm guessing that I need to turn pins COM 17 & SEG 58 (for example) high so that I get my one individual pixel coming on?

COM - Common Driver
SEG - Segment Driver

I've worked out that it is probably the data register (DR) that I want to write to first, however I cannot work out what to write?!?!?!?

Then I'm guessing I need to use a control register to send the data from the Data Register (DR) to the Display Data RAM (DDRAM).

Or have I got this completely wrong? Please can someone quickly do some pseudo code to give me an idea?

* TWO *

2) In case I have to use command 9 (and I screw the CGROM UP), plus I'd like to know anyway, where can I download the firmware for my CFA-635-YYE module?


3) How do I go about flashing the firmware?

Thanks in advance for you help.

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

CF Tech

One: There is no "graphics mode", you have to use command 9.

Two: Command 9 modifies the CGRAM (not CGROM--it cannot be changed), which will be restored by a power cycle (unless saved by command 4).

Three: There is no way to damage the firmware. You can mess up the boot state by using command 4 on a goofy screen, but that can be recovered by using 635_WinTest to reset the contrast, brightness, CGRAM and displayed characters.

Using command 22, you can muck up the LCD controller, but that will be restored by a reboot command or a power cycle.

What you are thinking of with command 22 setting a given SEG and ROW sounds promising, but I am quite certain it is not possible in the end.