Close

Cathode ordering

A project log for MS6205 graphical mode

Modifying the MS6205 (МС6205) display to control every pixel individually instead of sending text characters

leszek-jakubowskiLeszek Jakubowski 05/30/2021 at 00:240 Comments

I replaced most of the logic board with an Arduino Nano. The only original parts used on the original board is the 12V→240V DC-DC converter, and traces feeding the 5V power through the board.

After connecting I checked that shifting values into the anode registers works correctly and that the cathode selection logic works by writing a number from 0 to 79 to achieve a full scan. Figuring out the order took a bit of looking at the logic board schematic.

an animation showing a line of orange pixels slowly moving from top of the picture (left of the display) to the bottom of the picture (right of the display); an Arduino Nano board is visible connected by thin wires on the right; more wires are going out the left side of the picture to the power supplies
Scanning from left to right (bottom of the display is facing left of the picture)

There are two cathode counters combined into one 7 bit value. First counter on H3 (MSB), H2, H1 (LSB) counting from 0 to 4 and selecting which of the vertical lines in the 5x7 character is active. Second counter on H7 (MSB), H6, H5, H4 (LSB) counting from 0 to 15 through the full set of binary values, selecting which of the 16 characters in the line is active. Putting them together in swapped order (X3, X2, X1, X7, X6, X5, X4) gives us a 7bit binary counter which counts from 0 to 79.

If X3,X2,X1 is >4 then the decoder D6 in the bottom left of the anode logic board schematic selects a not connected output. This means there's no emitter pulled down on the cathode driver matrix and so none of the transistors pull down a cathode to GND.

You can download the Arduino code from https://github.com/Makdaam/MS6205-logic/tree/cathode_scan. It can be run directly as a Platform.io project, or the contents of main.c can be copied into the Arduino IDE. At this stage the code is so simple that I didn't divide it into multiple files.

Discussions