C.ITOH CIT324/324E - Alps Buckling Springs... (Conversion to USB?)

User avatar
snacksthecat
✶✶✶✶

18 Apr 2018, 04:01

Continuation of an old thread I started. Hopefully in a more appropriate place. :lol:
keyboards-f2/c-itoh-alps-buckling-sprin ... 18133.html

I have this Alps buckling spring keyboard from a CIT324 Video Display Terminal.
Spoiler:
Image
I've previously tried to convert it to USB with a Soarer's converter but failed. I ultimately ended up removing the interface board and wiring up the matrix directly to a teensy. It works great like this but I'd like to give the conversion another shot.

Pictures from the old thread:
Spoiler:
Image

Image

Image

Image

Image
First question I have:
Is there anything in the pictures that would indicate that this is not a 5V device?

I had some help on /r/askelectronics and the poster helping me identify the pins said:
"Connected through four parallel resistors of a value I can't make out to one side of an IC that looks like a voltage regulator. The resistors look like a small value. There are also parallel electrolytic and ceramic capacitors to ground. The other side of the probable regulator is connected to Vcc of the logic chips. This pin is the positive supply, and it's higher than 5V and regulated down to 5V.

This is what I currently believe the pinout is:
Red: Vcc
Green: Gnd
Yellow: Vcc
Blue: Gnd
Thin White: Data
Thick White: Gnd

I've tried running a few different voltages through the keyboard and used a multimeter to measure the voltage on one of the chips I presume requires 5v:
5v - chip reads 1.8v
9v - chip reads 4.2v (keyboard lets out a constant beeeeeep)
12v - chip reads 5v (no beep and the lights come on briefly)

Sorry for the brain dump. Hopefully there's something coherent in there. :lol:

zool

18 Apr 2018, 04:10

can you slide the heat sink off the regulator?

User avatar
snacksthecat
✶✶✶✶

18 Apr 2018, 04:19

Image

zool

18 Apr 2018, 04:38

input range of 78x05 is pretty wide, 12V seems like sensible choice. but lower voltages down to about 7 should also be fine, I'm thinking that you could have a bad electrolytic. I would replace them as a matter of course.

User avatar
snacksthecat
✶✶✶✶

28 Apr 2018, 19:14

Again I'm shifting my focus to capacitors to solve this case.

Here's the line up:
Image

If you know the names of any of these suspects, please let me know:

Tres Tres
Spoiler:
Image
Randy Red-text
Spoiler:
Image
Cylindrical Cindy
Spoiler:
Image
B-Boy
Spoiler:
Image
Nine-legged Larry
Spoiler:
Image

zool

28 Apr 2018, 23:58

maybe we should just get you a component identification chart. you might have trouble sourcing a through hole capacitor array(Larry No9), but its probably ok.
https://www.eevblog.com/forum/beginners ... pictures)/

User avatar
snacksthecat
✶✶✶✶

06 May 2018, 23:25

No difference after swapping out the electrolytic capacitors for new ones.

Now that I know how to "speak" serial to my keyboard, anything I should try telling it? I'll post the results here. Still not sure what protocol it uses but it seems to respond to different hex commands with various beeps and boops.

zool

07 May 2018, 03:49

So can you get codes out of the board?

just a quick observation. Since there is no crystal would guess that the cpu clock/baud rate is determined by the 555 and the pot on board. see if you can figure out the baud rate.

beeps a bloops are interesting to get, probably error beeps, but lets you know it is thinking.

Edit:Looking at it again 555 not for clock. 1951A is processor clock.

zool

08 May 2018, 05:15

out of curiosity try powering it up and pressing crlt-G?

User avatar
snacksthecat
✶✶✶✶

08 May 2018, 14:36

**Quick google search**

Image

Oh lord, you want this thing to beep at me? I feel like all it does is beep at me! It honestly sounds like a crying baby. I’m pretty sure my neighbors hear it through the wall and think, “wtf is he doing in there? Is that the smoke alarm?”

Well a deals a deal so I’ll try your experiment when I get home from work today.

As a side note, sending different command characters over serial I’m not able to get consist, reproducible results. It always responds, but not in a consistent way. I’m thinking I either have the baud rate wrong or the byte framing wrong. The user manual for a similar unit (C.ITOH CIT 326) is available online [1] and makes multiple mentions of 7bit communications. I might try to play around with that as well.

[1] https://archive.org/details/bitsavers_c ... 87_7365735

User avatar
snacksthecat
✶✶✶✶

09 May 2018, 02:49

No luck with typing ctrl-G. Still not able to get any key presses to produce an output. I did some other experiment where I tried sending the keyboard 8bit commands with the teensy and snapshotted what got sent back to me by the keyboard. I started with 0x05 which the CIT101 manual told me was "ENQ".

0x05 at different baud rates:
Spoiler:
@300Image

@1200
Image

@2400
Image

@4800
Image

@9600
Image

@19200
Image
Finally decided to pick a lane and go with it. I went with 4800 baud for the rest. These are from also from the CIT101 manual.
Spoiler:
0x06 (ACK) @4800
Image

0xFE (BEL) @4800
Image
These are from an AT (?) keyboard? Not sure, I just quickly googled and tried some out for fun.
Spoiler:
0xEE @4800
Image

0xFF @4800
Image

zool

09 May 2018, 03:12

snacksthecat wrote:
Oh lord, you want this thing to beep at me?
yes, :) The general idea was if the keyboard controller was in a happy state it would beep back at you with a ctrl-g, but that is just a guess mind you.

looking at the traces, 4800 looks like a decent baud rate. but hard to tell if it wants 7 or 8 bit. it looks like 7 bit.

just to clarify if you type you get nothing out?

User avatar
snacksthecat
✶✶✶✶

09 May 2018, 04:17

Correct, when I press the keys I see nothing.

When I say "beep" I guess I mean "the shrill scream of satan himself" :lol:

zool

09 May 2018, 04:47

yeah I would guess it is not initialized properly yet?

does it stop if you type any of the escape cmds? in particular breaks/disconnects?

brake
Shift-brake
esc-`
etc.

User avatar
snacksthecat
✶✶✶✶

11 May 2018, 02:24

Not sure where to go from here. I'm going to try sending it different bytes and see what comes back. I'll use this thread to document the results.
Spoiler:
0
237 0xED

1
237 0xED

2
237 0xED

3
237 0xED

4
237 0xED huge beep

5
237 0xED

6
237 0xED beep

7
237 0xED

8
237 0xED

9
237 0xED

10
237 0xED

11
237 0xED

12
237 0xED beep

13
237 0xED

14
237 0xED beep

15
237 0xED

16
237 0xED

17
237 0xED

18
237 0xED

19
237 0xED

20
237 0xED beep

21
237 0xED

22
237 0xED beep

23
237 0xED

24
237 0xED

zool

11 May 2018, 03:50

I think its name is Ed, or maybe Edd, or is it Eddy? : P

I had a look at the manual, its hard to tell, but I don't think that is the manuals that match this keyboard. If it is you should have some more LED's.

If that is right, them what system did it pair with? If you can figure that out... as it is clearly missing a handshake of some kind.

User avatar
hasu

11 May 2018, 23:39

The user manual said in chapter 3 as "The CIT326 keyboard is a fully compatible DEC VT220-style keyboard. "
So you can know its interface and protocol from DEC documents probably?

User avatar
snacksthecat
✶✶✶✶

12 May 2018, 06:47

hasu wrote: The user manual said in chapter 3 as "The CIT326 keyboard is a fully compatible DEC VT220-style keyboard. "
So you can know its interface and protocol from DEC documents probably?
Really great idea!

Googling around, I found this forum post [1] where the guy talks about the CIT324 being a clone of the VT320.

That lead me to search on "vt320 serial keyboard" which brought me this explaination of the LK201 keyboard [2].

Within that article, the author links to someone who has detailed LK201 keyboard protocol [3].

I haven't dug deep into this info yet but it certainly seems promising!


[1] http://www.vcfed.org/forum/showthread.p ... orld-of-VT
[2] https://vt100.net/keyboard.html
[3] http://www.netbsd.org/docs/Hardware/Mac ... lk201.html

User avatar
snacksthecat
✶✶✶✶

12 May 2018, 16:46

My current thinking is that it doesn't play by the same rules as the LK201/LK401 keyboard but that this is on the right track.

My reasoning for this is because when you plug in those other boards, they send a 4 byte sequence to initiate a handshake. When I plug in this board, it sends nothing until I send it something first.

Interestingly enough I'm able to get the LEDs to come on by sending 0x13 (a code that is mentioned in link #3 above).

That's the first sign of any reproducible behavior that I've been able to get out of this thing!

User avatar
snacksthecat
✶✶✶✶

13 May 2018, 00:01

One thing I cant get past is that this keyboard seems to have only 1 pin for data (rather than an RX and TX). Those DEC keyboards both have RX/TX.

Image

Assuming it is in fact serial, shouldn't it have a separate RX and TX? Unless it was just sending data (which doesn't seem to be the case).

zool

13 May 2018, 12:34

snacksthecat wrote: My current thinking is that it doesn't play by the same rules as the LK201/LK401 keyboard but that this is on the right track.

My reasoning for this is because when you plug in those other boards, they send a 4 byte sequence to initiate a handshake. When I plug in this board, it sends nothing until I send it something first.

Interestingly enough I'm able to get the LEDs to come on by sending 0x13 (a code that is mentioned in link #3 above).

That's the first sign of any reproducible behavior that I've been able to get out of this thing!
That sounds promising.

what about if you then follow that up with the other LED commands?

eg 0x13, then 0x81/0x82/0x84/0x88/0x8f. ?

If there is only one data line, there must(probably) also be a way to resolve bus contention, common technique involve holding the dataline high or low, or toggling dataline.

User avatar
hasu

13 May 2018, 14:47

DEC VT100 keyboard has just one signal line for communication and the line is bidirectional but half duplex, while VT220 and later models has two signal lines for RX and TX respectively or full duplex.

I guess that this keyboard uses half duplex like VT100, that being said, its 4800bps asynchronous serial signal conforms to rather VT220. VT100 seems to use different protocol from VT220, I think you should refer to VT220 Tech Ref, not VT100 one.


My reasoning for this is because when you plug in those other boards, they send a 4 byte sequence to initiate a handshake. When I plug in this board, it sends nothing until I send it something first.
VT220 Techref p.7-29 says like below, you may want to check your matrix and keys.

http://www.bitsavers.org/pdf/dec/termin ... _Nov84.pdf
"""
If the keyboard finds a key pressed on the first scan, it
continues to look for an ALL UPS condition. The keyboard sends the
corrected four-byte power-up sequence when the pressed key is
released. This avoids a fatal error condition if a key is pressed
by mistake while powering up.
"""

Interestingly enough I'm able to get the LEDs to come on by sending 0x13 (a code that is mentioned in link #3 above).
Great, this indicates you are on right track clearly.

EDIT: VT100 keyboard is bidirectional full duplex on single line :shock: , not half duplex. This is really clever. I didn't know it is possble to realize full duplex with just a line. p.4-34 and 4-36
http://www.bitsavers.org/pdf/dec/termin ... _Jul82.pdf

zool

13 May 2018, 20:56

hasu wrote: VT220 Techref p.7-29 says like below, you may want to check your matrix and keys.

http://www.bitsavers.org/pdf/dec/termin ... _Nov84.pdf
"""
If the keyboard finds a key pressed on the first scan, it
continues to look for an ALL UPS condition. The keyboard sends the
corrected four-byte power-up sequence when the pressed key is
released. This avoids a fatal error condition if a key is pressed
by mistake while powering up.
"""
That would also explain the "error scream of hell" on power up.

User avatar
snacksthecat
✶✶✶✶

14 May 2018, 01:14

I wanna think that the matrix is okay because it was brand spankin' new when I got it. Literally had never seen the light of day.

I'm considering exploring the following two avenues:

a. buying an actual CIT324 and sniffing the communication between the board and the machine

or

b. sourcing a second keyboard and raffling it off to anyone else interested in taking on the puzzle

of course it depends how much these things cost. I'm hoping that the supply of 90s era computer equipment outpaces the demand :P

User avatar
hasu

14 May 2018, 02:15

snacksthecat wrote: I wanna think that the matrix is okay because it was brand spankin' new when I got it. Literally had never seen the light of day.

I'm considering exploring the following two avenues:

a. buying an actual CIT324 and sniffing the communication between the board and the machine

or

b. sourcing a second keyboard and raffling it off to anyone else interested in taking on the puzzle

of course it depends how much these things cost. I'm hoping that the supply of 90s era computer equipment outpaces the demand :P
I thought the keyboard was took apart and you did bolts an nuts mod on it and suspected one of keys is stuck or something.
What if you remove the membrane of matrix from controller? The controller should send the 4 bytes at power up anyway?

zool

15 May 2018, 06:48

looking at the bidirectional interface, its very clever, but I can't help but think why oh why did they just not use 1 extra wire and save all the fuss. There must have been a good reason at the time, I wonder what it was. Did they have extra long keyboard cable runs?

I were gambling I would guess someone has a bright spark and said, "this is too clever not to use somewhere."

User avatar
snacksthecat
✶✶✶✶

15 May 2018, 17:56

hasu wrote: I thought the keyboard was took apart and you did bolts an nuts mod on it and suspected one of keys is stuck or something.
What if you remove the membrane of matrix from controller? The controller should send the 4 bytes at power up anyway?
That's a good point and didn't occur to me. I think the matrix is okay though because if I detach the membrane from the board, it behaves the same (no message on power up, responds to 1 byte commands in a handful of ways -- 0x00, 0xED, Beep). The keyboard also works perfectly with the Teensy controller I built for it last year (I used TMK -- Thank you!).
hasu wrote: EDIT: VT100 keyboard is bidirectional full duplex on single line , not half duplex. This is really clever. I didn't know it is possble to realize full duplex with just a line. p.4-34 and 4-36
http://www.bitsavers.org/pdf/dec/termin..._Jul82.pdf
Oof, I totally missed this edit! Sounds promising! I'm going to take a closer look at that manual on my ride home today.
zool wrote: what about if you then follow that up with the other LED commands?

eg 0x13, then 0x81/0x82/0x84/0x88/0x8f. ?
Different combinations of the LEDs come on but I'm not recognizing any pattern and it doesn't match the expected outcome based on that link (then again, it has different LED indicators than that board as well).
zool wrote: looking at the bidirectional interface, its very clever, but I can't help but think why oh why did they just not use 1 extra wire and save all the fuss. There must have been a good reason at the time, I wonder what it was. Did they have extra long keyboard cable runs?

I were gambling I would guess someone has a bright spark and said, "this is too clever not to use somewhere."
I'm looking forward to reading that manual that hasu posted but some of it is a bit over my head at this point. What are the novel characteristics about that interface? Is it the use of pulse width modulation, the host constantly sending a status byte, something else, or a combination of things?

Again, this is mostly over my head but I'm hoping to find some common thread that might point me in a new direction.

zool

15 May 2018, 18:18

snacksthecat wrote:
I'm looking forward to reading that manual that hasu posted but some of it is a bit over my head at this point. What are the novel characteristics about that interface? Is it the use of pulse width modulation, the host constantly sending a status byte, something else, or a combination of things?

Again, this is mostly over my head but I'm hoping to find some common thread that might point me in a new direction.
It is a couple of things, but mainly they came up with a low cost way of doing what I think can be full duplex(maybe) over one wire, by spiting the signal in half at each end using a simple voltage divider and comparator, and the pwm I think solves any ambiguity about the 4 possible states the wire can be in.

User avatar
snacksthecat
✶✶✶✶

16 May 2018, 02:11

Darn, I had a lead on four more of these keyboards but it turned out to be an inventory error. Why is this particular terminal so obscure?! :lol:

zool

16 May 2018, 04:06

snacksthecat wrote: Darn, I had a lead on four more of these keyboards but it turned out to be an inventory error. Why is this particular terminal so obscure?! :lol:
all just a guess:

Product timing with competing technology, PC terminal emulation, token ring, ethernet, mulitdrop networks etc.

To paraphrase a grey beard I asked over the weekend: "you might keep a VT100, but vt220‽; hunk of junk. Gave mine away 20 years ago and it was a hunk of junk then too".

So you have this keyboard which is not a DEC, but part of a compatible system. and not usable on a PC. Add all those up and if its not pickup by a gov or big business then I guess there would not be that many made?.

Post Reply

Return to “Workshop”