What the hell? (IBM 5556?)

User avatar
snacksthecat
✶✶✶✶

03 Aug 2019, 01:52

Ladies and gentlemen, the letter "d":

Image
Last edited by snacksthecat on 04 Aug 2019, 19:21, edited 1 time in total.

User avatar
Myoth

03 Aug 2019, 01:56

not sure that's what they meant when they said "show us your d"

Findecanor

03 Aug 2019, 10:50

Because channel 2 changes when channel 3 is low, it seems that a reading from channel 2 is valid only whilst channel 3 is high.
Therefore, I would guess that ch3 is the Clock signal and ch2 is the Data signal.
Channel 0 looks like a filtered data signal. (ch3 logic-AND ch2)

A message seems to start with ch3 first going low before the first bit. Hard to tell what the first and last bit is for: either could be a data bit or for synchronisation or parity. I would sample 9 bits per message for now and figure that out later.

What kind of keyboard is this?

User avatar
snacksthecat
✶✶✶✶

03 Aug 2019, 20:01

Findecanor wrote:
03 Aug 2019, 10:50
Because channel 2 changes when channel 3 is low, it seems that a reading from channel 2 is valid only whilst channel 3 is high.
Therefore, I would guess that ch3 is the Clock signal and ch2 is the Data signal.
Channel 0 looks like a filtered data signal. (ch3 logic-AND ch2)

A message seems to start with ch3 first going low before the first bit. Hard to tell what the first and last bit is for: either could be a data bit or for synchronisation or parity. I would sample 9 bits per message for now and figure that out later.

What kind of keyboard is this?
Thanks for the interpretation. I was confused by channel 0 but your explanation makes sense.

This is from Delirious's keyboard which is suspected to be an IBM 5556. But apparently it could be something slightly different.

I snapped a few pictures while I was taking it apart. Not my best work but I was in a hurry to get to the fun stuff. I hope to post a better set later.

Image

Image

Image

Image

Image

Image

In the last picture you can see the foam layer that was installed between the PCB and plate. I've never seen this done before. It feels really really nice like this and I think I've got to give this a try next time I mod a board.

User avatar
snacksthecat
✶✶✶✶

04 Aug 2019, 19:27

Well we've decided to take this in a totally different direction. The keyboard as-is doesn't send 'break' codes. It only sends 'make' codes (and repeats the code if a key is held). This unfortunately makes it impossible to convert the protocol without making some big typing compromises.

So for that reason, we're going to be doing a controller replacement.

I started out by tracing the matrix with a multimeter and marking the matrixed pins with a sharpie

Image

Then I planned out the wiring. Since the footprint of the teensy matched up with the footprint of the main IC on the board, I soldered some header pins in those positions. For the remaining teensy pins I need, I soldered wires.

Image

Here's what it looks like seated in place, before any soldering has been done.

Image

Then finally I clipped the wires to length and soldered everything up.

Image

User avatar
Muirium
µ

04 Aug 2019, 20:37

Neatly done. Always better to pull out the old controller when it’s as daft as that. A Teensy++ usually has the same footprint and is a joy to use.

Think you could explain the process of working out the matrix? I’ve often been asked.

User avatar
snacksthecat
✶✶✶✶

05 Aug 2019, 01:59

Muirium wrote:
04 Aug 2019, 20:37
Neatly done. Always better to pull out the old controller when it’s as daft as that. A Teensy++ usually has the same footprint and is a joy to use.

Think you could explain the process of working out the matrix? I’ve often been asked.
I know you said you're video averse but it seemed like the easiest way.

Delirious

05 Aug 2019, 03:54

Amazing job, that was quicker than I thought it would take you.

listofoptions

05 Aug 2019, 16:49

nice wiring! could have saved yourself some extra wires by not removing that 74159 4-to-16 decoder though

User avatar
Muirium
µ

05 Aug 2019, 22:49

Thanks for the vid. But that’s only step one. Those pens never even left the table!

I find the hard bit, which varies from board to board, happens when you try to plot them in a grid. That’s what you ultimately want, after all, for your controller. Here’s a particularly gnarly example: an Access IS ortholinear board with columns running down diagonals!

viewtopic.php?p=422407#p422407

So many boards have hidden connections and hidden diodes. And so any have a bizarre logical matrix which doesn’t really follow their physical layout. We, including myself for sure, could really use a worked example of a hard one, and maybe even a flowchart! It gets complicated.

User avatar
snacksthecat
✶✶✶✶

05 Aug 2019, 23:05

Muirium wrote:
05 Aug 2019, 22:49
We, including myself for sure, could really use a worked example of a hard one, and maybe even a flowchart! It gets complicated.
E-Z, P-Z, fuck-all impossible!

Really, as you know, you have to have a bit of understanding of how different matrixes are laid out, or at least the ability to recognize patterns.

If I could put together a simple guide, I totally would. The fact of the matter is there’s just too much variability between boards.

What I can recommend is to abstract yourself from the complexity as much as possible. I know that sounds like a bullshit thing a yoga instructor might say but it’s true! I like to think I have a few tricks up my sleeve which enable that.

I’ll try to make this more meaningful later but for now I just gotta say: grab a beer, grab a multimeter, and go where the traces lead you.

Image

User avatar
snacksthecat
✶✶✶✶

10 Aug 2019, 21:23

Feeling cute. Might post more later

Image

User avatar
Redmaus
Gotta start somewhere

10 Aug 2019, 22:17

snacksthecat wrote:
10 Aug 2019, 21:23
Feeling cute. Might post more later

Image
I'm so happy with what's happening to this board. Was the plate red like that stock?

User avatar
snacksthecat
✶✶✶✶

13 Aug 2019, 03:11

Redmaus wrote:
10 Aug 2019, 22:17
I'm so happy with what's happening to this board. Was the plate red like that stock?
Nah, Delirious painted it. Looks great, right?

I had a little bit of fun seeing what the board looks like with these SantiGo cables

Image

Image

Image

Image

Image

Image

Image

User avatar
snacksthecat
✶✶✶✶

25 Aug 2019, 04:08

Another day another buzzer.

One thing I guess I didn't show in any of the photos is that this thing came with a buzzer/speaker doodad. I think it would be really cool to get that functioning again! You know, preserve another little piece of the original keyboard.

I explained in another thread the headaches I had, caused by not knowing the differences between active and passive buzzers. In that case I was working with an active buzzer; where you simply provide 5V to the thing to make noise. Here with the multistation it's a passive buzzer; where we need to send it a square wave signal in order to make any noise.

To test this buzzer out I used this simple arduino sketch:

Code: Select all

int buzzer = 27;

void setup() {
  pinMode(buzzer,OUTPUT);
}

void loop() {
  unsigned char i,j;
  while(1) {
    for(i=0;i<80;i++) {
      digitalWrite(buzzer,HIGH);
      delay(1);//wait for 1ms
      digitalWrite(buzzer,LOW);
      delay(1);//wait for 1ms
    }
    for(i=0;i<100;i++) {
      digitalWrite(buzzer,HIGH);
      delay(2);//wait for 2ms
      digitalWrite(buzzer,LOW);
      delay(2);//wait for 2ms
    }
  }
}
Here's what that sounds like:
Not bad. Kind of gives you an idea of what's possible. So I know it's going to be a buzz rather than a beep or a click. And we have some control over the range.

I did some googling and found out that QMK actually has an audio feature! This only works on certain pins which have PWM capabilities. I checked these pins against the ones I used for the matrix and found one that would work perfectly for me.

I wired the whole thing up and here's the result:
Yeah, that's still pretty annoying. Luckily QMK has some settings that you can tweak to get different sounds. Though, I'm sure I'm expecting too much out of this little speaker.

Image

So next steps for me are:
  1. Play around with the audio settings, see if the sound can be improved
  2. Work the volume knob into the equation

Post Reply

Return to “Workshop”