• Logic board replacement connections

    Leszek Jakubowski05/30/2021 at 12:04 0 comments

    I forgot to describe the hardware changes I made in the previous project log. The changes were made only to the logic PCB↔anode driver PCB connections (made with individual wires soldered between both boards).

    The connector pins are numbered 1 to 16, where 1 is the +240V line coming out of the diode bridge near the big transformer, and 16 is the thick GND trace on the other side. I unsoldered all logic wires (pins 2-13 and 15) and left only +240V (pin 1), +5V (pin 14) and GND (pin 16) connected. Then I soldered the pins on the anode driver PCB except KSI2 (pin 4) to an Arduino Nano (pin mapping can be changed with the #define statements) and added a wire between GND and the Arduino to reference a common Ground in all my signals. The Arduino is powered from USB for now since that makes programming it much easier.

    I decided to drive both anode shift register clocks (ASICh pin 2 and ASIN pin 3) from one Arduino pin mostly because it will take less cycles to shift the proper values in.

  • Cathode ordering

    Leszek Jakubowski05/30/2021 at 00:24 0 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.

  • Good news everyone!

    Leszek Jakubowski05/24/2021 at 20:32 0 comments

    Turns out that all the Anodes are available and connected up to the anode driver PCB where some of them are left not connected. Same thing with cathodes and cathode driver PCB. So at least my version of MS6205 is open for modifying it into a full 100x100 matrix display.

    Bad news is that Sharp and other manufacturers (I'm looking at you Электроника) mostly stopped making arrayed drivers for high voltages, but single or dual transistors are still available, so I'm going to try to leverage that or source some old stock chips.

    One more thing, if your neon plasma display begins glowing in pink instead of orange (plus several pixels around it light up in all directions) then the current is too high, check for shorts to the high voltage rail that bypass the pull-up resistor.

  • Logic board interface

    Leszek Jakubowski05/24/2021 at 15:39 0 comments

    Edit: I had KSI1 and KSI2 mixed up. I fixed the pin and graph descriptions.

    After connecting an oscilloscope to the different pins of the logic PCB-anode PCB interface I think I've got enough info to work on driving every connected pixel.

    The pins are as follows:

    1.  +240В (+240V)
    2.  АСИЧ (ASICh) - anode clock 2 (for even anodes)
    3. АСИН (ASIN) - anode clock 1 (for odd anodes)
    4. КСИ2 (KSI2) - cathode clock 2 (only signal going from anode driver PCB to logic driver PCB)
    5. КСИ1 (KSI1) - cathode clock 1
    6. Х1 (H1) - lowest bit of cathode selection number
    7. Х3
    8. Х2
    9. Х6
    10. Х7 (H7) - highest bit of cathode selection number
    11. Х5
    12. Х4
    13. Гр. А2, А4, А6 (Gr. A2, A4, A6) - even anodes serial data
    14. +5В (+5V)
    15. Гр. А1, А3, А5, А7 (Gr. A1, A3, A5, A7) - odd anodes serial data
    16. Общий - Ground

    The clocks for loading anode data work at a 3:4 ratio since every character is 7 lines high and there are 4 odd and 3 even pixels to load. The loading is split to speed up the whole process.

    an oscilloscope diagram showing 3 pulses and an empty space equal to 1 pulse cycle, measurements of the whole pulse cycle with approximately 50% fill read 2.4µs and 416.6kHz
    Pin 2 - 1 clock tick missing after every 3 ticks
    an oscilloscope diagram showing a series of uninterrupted pulses, measurements of the whole pulse cycle with approximately 50% fill read 2.4µs and 416.6kHz
    Pin 3 - all 4 ticks present

    The clocks are going at about 416kHz, but the exact timing is not critical. The clock source is a RC stabilized oscillator done on 4 XOR gates of D20 (bottom of logical board schematic. As long as the shift registers, RAM, ROM and address generation logic can keep up the clock signal is valid.

    Next up is the Cathode clock pulses by the monostable trigger on the anode driver side from a square wave into very short pulses. It's sent back to the logic board on KSI2 (cathode clock 2) as a "ready for another vertical line" signal. This is the only signal going backwards.

    oscilloscope diagram showing 2 spike pulses, measurement between the 2 spikes read 95.6µs and 10.46kHz
    Pin 4 - pulse spacing
    oscilloscope diagram a zoomed in pulse with diagonal rise and fall, measurements show 150ns pulse width
    Pin 4 - pulse shape measurements
    oscilloscope diagram, another zoomed in pulse with more vertical rise and fall, measurements show 100ns pulse width
    Pin 4 - pulse shape measurements

    The square pulse, which is sent after all the Anode data is shifted into the registers and the right number is set on H1-H7 to select the loaded vertical line and latch the data from the anode shift registers into outputs. Triggers latch on falling edge. It's  just a square blip on KSI1 (cathode clock 1).

    oscilloscope diagram, a series of square pulses, approximately 25% fill, measurements from one pulse to another shows 96µs and 10.42kHz
    Pin 5 - pulse spacing
    oscilloscope diagram, a series of square pulses, approximately 25% fill, measurements of the pulse width shows 19µs
    Pin 5 - pulse shape

    KSI2 and ¬KSI2 are more interesting on the anode driver PCB, where they control the latching of both the H1-H7 cathode selection number and the anode shift registers into the actual high voltage outputs.

  • A little bit of disappointment

    Leszek Jakubowski05/23/2021 at 22:08 0 comments

    After reading the schematics more carefully it turns out that only some anodes are connected to the nMOS drivers, some are not connected, some are permanently pulled up to 240V (the underscore lines).

    I'll probably divide the project into phases:

    • Phase 1 - connect a replacement of the Logic board
    • Phase 2 - find a driver circuit for anodes and cathodes based on modern/available components
    • Phase 3 - build an additional board with replacement logic, missing driver circuitry
    • Phase 4 - replace the logic board completely

    We'll see how it goes tomorrow.

  • How is the neon tube driven?

    Leszek Jakubowski05/23/2021 at 18:26 0 comments

    The display tube has 100 anodes (in the default mounting orientation going horizontally from left to right) and a 100 cathodes (going vertically from top to bottom). Whenever the voltage between an anode-cathode pair goes above 235V the pixel on their intersection begins to glow and is extinguished when the voltage goes below 100V (according to the lamp's datasheet).
    See https://en.wikipedia.org/wiki/Neon_lamp for how the lamp works in more detail.

    A simplified diagram of the driving elements

    The anodes are pulled up constantly to 240V via 390kΩ resistors, and selectively pulled down via 330kΩ using the КН1150КН1 nMOS array (very similar to Sony LZ1032A). Each nMOS array has a TTL compatible shift register built in, which is filled with the data of the whole vertical line to be displayed. There are 2 groups on Anodes, so the loading of data is not as simple as clocking all bits in sequence, but I'll get to that later.

    When it comes to the cathodes, only 80 out of the 100 are connected to the driving circuit. They're arranged in a groups of 5 driven, 1 not connected and additionally some not connected on the edges. Because the display was originally intended to only show 5x7 pixel characters the vertical lines between the letters weren't needed.

    Maybe in the next version of the project I'll add driving circuits to the missing cathodes. It would be great if the wires are soldered to the PCB but if they're not I'm not going to risk breaking the neon tube when separating the epoxy glued PCB.

    The cathode selection circuitry is much simpler there's an array of high volatage NPN transistors (packed 4 per IC) where the collector is connected to the cathode, the base and emitter are driven by TTL logic pull-downs and 1kΩ pull-ups to 5V on the Anode Driver PCB. Whenever the Base is pulled up to 5V and the Emitter is pulled down to 0V the cathode connected to the Collector is active.

    The arrangement of the TTL decoders and not gates guarantees that there's at most 1 Base pulled up and at most 1 Emitter pulled down at the same time.

  • MS-6205 - short description

    Leszek Jakubowski05/23/2021 at 18:12 0 comments

    The MS-6205 came out in different versions (looking at schematics it was probably dependent on IC availability), but the external electrical interface was kept the same and the neon matrix lamps used were very similar.

    The model that I have consists of (going in order from the neon matrix):

    • Cathode Driver PCB - glued to the lamp with epoxy, contains cathode driving NPN transistor ICs, the lamp wires are soldered to the PCB.
    • Anode Driver PCB - permanently attached to the Cathode Driver PCB with flex ribbons on 2 sides (no easy way to flip open), contains anode driving circuitry and cathode selection logic
    • Logic PCB - connected with separate wires on one side to the Anode Driver PCB, has the high voltage generator (12V to 240V) and all the logic needed to store pages of text written to the display and turn them into pixels (page RAM, character ROM, clock generators, page selection logic etc.) and obviously the big 2 row connector.

    For people who don't have connector labels: if you orient the display so that the side with the connector is facing you and the neon matrix is facing down (see zoomed in connector corner photo). Then row A is the bottom one, row B (Б) is the top one. The pins are numbered starting with 1 on the right and ending with 32 on the left. If your connector has a group of 3 pins, then a gap, you should count the gaps too so that it all adds up to 32. Be aware that in your version of the display the connector can be rotated 180°, row A is always the one with the widening notches.

    To complete my project It should be enough to replace the Logic PCB (maybe except for the high voltage generator) and start controlling the pixels while skipping the character page/character ROM logic completely.