Converting an IBM Multistation with an xwhatsit

User avatar
Mattr567

15 Apr 2018, 23:39

Hey everyone! It's Matt here with a new wacky project :P

I recently acquired an IBM Multistation keyboard from Wingpad (who got it from alh) with the intention of actually using it unlike most. I decided to choose xwhatsit vs other controllers b/c I wanted to use a solenoid with this project :evilgeek:

The board as I got it:
Image
Image

My current layout/caps (Thick PBT P70 keycpas w/ 5140 spacebar and stab used!!!)
Image

Here's where I am currently with the conversion:

I have traced out both PCB's - yes two. The "early" style PCB that is used on spherical cap multistation is quite different than the later nonspherical type, but use the same IC's. I have the later type, but someone with an early type should also be able to convert in basically the same fashion.

These PCB's are rather complicated :shock:

Early:
Image
Image

Late:
Image
Image

xwhatsit wiring diagram:
Image

Stock IC's
Image

I have the xwhatsit wired up and it is detecting keypresses, but a single key can light up the whole column/row, so I need to go back through my wiring and check for grounding/bridges. I also had to desolder these diodes that connected the rows and replace them with jumpers, in order for any keypresses to be detected.

Jumpers:
Image
Image

Current wiring setup:
Image
Image
Image
Image

orihalcon

18 Apr 2018, 03:42

Good work so far! Looking forward to seeing the final result!

User avatar
ullr

21 Apr 2018, 21:35

Good luck, one of these with the spherical caps is my absolute holy grail... I would love to get one working.

I guess replacing the controller is really the way to go for these since they do not seem to be convertible to a modern protocol with a modern layout noninvasively

__red__

22 Apr 2018, 10:16

So, I'll confess being confused... As I understood it, xwhatsit was designed for capacitive keyboards, not switches. I wouldn't have expected it to work at all. I wonder if the tmk/converter for pingmaster would have worked with the original controller as this almost looks like a latter version of it?

Hard to say as most people don't have the test equipment to answer that question.

Did you succeed in completely isolating all of the other circuitry on the PCB other than the matrix?

Regardless, we can help you get this working.

orihalcon

22 Apr 2018, 15:03

__red__ wrote: So, I'll confess being confused... As I understood it, xwhatsit was designed for capacitive keyboards, not switches. I wouldn't have expected it to work at all. I wonder if the tmk/converter for pingmaster would have worked with the original controller as this almost looks like a latter version of it?

Hard to say as most people don't have the test equipment to answer that question.

Did you succeed in completely isolating all of the other circuitry on the PCB other than the matrix?

Regardless, we can help you get this working.
Xwhatsit works on regular switches too which is awesome mostly for the ease of configuration and solenoid adding potential :)

I believe I was the first to post a project using it for regular switches back in 2015 with a hand wired M0110. If you scroll to the bottom, I put one in an SSK as well with a solenoid:

https://geekhack.org/index.php?topic=69394.0

hypkx
Chasing the Dream

22 Apr 2018, 15:55

I also have a SSK with Xwhatsit, sadly the solenoid output is broken.
Currently I do also a cherry mx handwire with another one, this hopefully with working solenoid output.

User avatar
DMA

22 Apr 2018, 20:48

__red__ CS will also work on resistive keyboards. You'll just need to configure ADC to 8 bit and set thresholds to 99 (side note - should I allow thresholds up to 255? They're bytes internally..)

__red__

23 Apr 2018, 00:05

So how does it work with no diodes? 1kro?

... And yes, you should allow all the way up to 255... Not only in the setting of the limits but also in the status display.

Secret Santa had to "cheat" when building a handmade board last year (so he told me last year seeking support) :-)

User avatar
DMA

23 Apr 2018, 08:26

__red__ wrote: So how does it work with no diodes? 1kro?

... And yes, you should allow all the way up to 255... Not only in the setting of the limits but also in the status display.

Secret Santa had to "cheat" when building a handmade board last year (so he told me last year seeking support) :-)
Status display is trickier, because 99 is 2 digits, and more than that is 3 digits so displays will be WIDER.

With no diodes it will work like with diodes, only with no diodes. So, you'll be able to press second key in the same row - no restrictions. You'll also be able to press a second key in another row - also no restrictions. 3rd key you gonna be careful - you don't want to create a configuration that will short rows.
Microsoft had a good article on ghosting, IIRC

User avatar
Mattr567

23 Apr 2018, 08:39

__red__ wrote: So, I'll confess being confused... As I understood it, xwhatsit was designed for capacitive keyboards, not switches. I wouldn't have expected it to work at all. I wonder if the tmk/converter for pingmaster would have worked with the original controller as this almost looks like a latter version of it?

Hard to say as most people don't have the test equipment to answer that question.

Did you succeed in completely isolating all of the other circuitry on the PCB other than the matrix?

Regardless, we can help you get this working.
As it was triggering the whole column I was going through my wiring again and it might be wrong? You can see in my PCB trace pictures. This PCB looks to have more than 8 rows :(

Isolating all of the other circuitry?

I DID try the TMK Pingmaster converter, didn't work sadly.

Also this PCB is NKRO, so I should be ok in regards with diodes?

In the end it might be easier to handwire...
DMA wrote: __red__ CS will also work on resistive keyboards. You'll just need to configure ADC to 8 bit and set thresholds to 99 (side note - should I allow thresholds up to 255? They're bytes internally..)
Could this be my issue?

orihalcon

23 Apr 2018, 21:44

The Xwhatsit is limited in that you can only have up to 8 rows and up to 16 columns. If you are getting an entire row to light up at once your voltage threshold may be too low. Increase it slowly until you get only a single key to light up on the matrix. See where you get with that first.

__red__

24 Apr 2018, 04:33

Mattr567 wrote:
DMA wrote: __red__ CS will also work on resistive keyboards. You'll just need to configure ADC to 8 bit and set thresholds to 99 (side note - should I allow thresholds up to 255? They're bytes internally..)
Could this be my issue?
Nope. You're using xwhatsit, we're talking about CS.

__red__

24 Apr 2018, 04:43

Mattr567 wrote: Also this PCB is NKRO, so I should be ok in regards with diodes?
Yah, I just looked again and see the diodes this time.

I just had a curious thought, and it aligns as to why you had to replace those diodes with jumpers before you saw anything. Others on the thread, please give your thoughts in my hypothesis.

I'm wondering if the rows/cols is "backwards".

All controllers strobe and sense. I don't know which way around xwhatsit is, but I'm wondering if it's backwards relative to this PCB. It's not like there's a standard or anything. That could explain the symptoms we're seeing...

User avatar
DMA

24 Apr 2018, 07:25

__red__ wrote: I don't know which way around xwhatsit is
It drives columns. Driving by rows is a clowny idea - i.e. mine.

User avatar
Mattr567

26 Apr 2018, 02:14

Great news!

I fixed the column jump issue by desoldering a resistor pack that was in the direct path of the rows:
Image

All switches no longer jump anything! Now just have to get all the switches working (some that used to work stopped after I desoldered the resistor pack etc)

But once I get every switch working I can start programming it ;) A good 85-90% of them work currently.

EDIT: Also before I did this I reinstalled those diodes I replaced with jumpers, but put them in backwards! Works just fine.

orihalcon

26 Apr 2018, 02:33

That is good news indeed! Hope to get mine converted in the next few months based on your wiring for sure. Will want to see lots of close up pics of the end result :)

User avatar
Mattr567

30 Apr 2018, 07:04

Typing to you on the Multistation!!!! Fully programmed and working :D

Image

Besides dead switches, the issue was with the rest of the diodes. You see, the later type PCB is actually 6KRO, so a few switches in the matrix had there own diodes. Welp, these were the switches that didn't work.

The fix, of course, was to flip them :lol: So I ended up flipping ALL the diodes on this PCB for everything to work. Only had 3 actual dead switches.

Desoldering the whole PCB just to do this was fun :roll:

Image
Image

Spacebar setup from behind

Image

Front of the PCB

Image

Flip-flopped diode

Image

Final wiring setup

Image

So whats left you might ask?

Well, I need to clean the switches, mod the case to fit everything, and install the solenoid, not much!! ;) Will keep updating this thread as I get stuff done.

User avatar
//gainsborough
ALPSの日常

30 Apr 2018, 09:06

Awesome work, my dude!

I'm curious though - why did flipping diodes fix the switches? What is the primary effect of flipping diodes?

User avatar
Mattr567

01 May 2018, 05:39

//gainsborough wrote: Awesome work, my dude!

I'm curious though - why did flipping diodes fix the switches? What is the primary effect of flipping diodes?
I think I may have wired it backward, which means this PCB uses 16 rows 8 columns! But now its effectively the opposite :lol:

User avatar
Mattr567

01 May 2018, 05:47

Got so much done today! ;) I hooked up the solenoid and fully trimmed the case among other things.

Final wiring:

Image

Trimmed bottom case:

Image

Slight trimming of the bottom case here as well. Cut the foot (was already damaged anyway) to fit the solenoid and hot glued the end to the case so it looks unassuming from the outside. The metal pieces I cut from a junk Sharp typewriter plate and taped them to the bottom of the solenoid for noise purposes.

Image
Image
Image

Trimmed top case to fit the fat alts.

Image


So whats left you might ask?!

1. Trim PCB; needs a little in order to fit the driver PCB in the case.
2. Clean switches.
3. Clean case and cable, some caps.
4. Run USB through original AT cable for looks purposes.
5. Final assembly! :evilgeek:

User avatar
Mattr567

01 May 2018, 05:59


__red__

01 May 2018, 06:21

Mattr567 wrote: I think I may have wired it backward, which means this PCB uses 16 rows 8 columns! But now its effectively the opposite :lol:
Man, if only someone had hypothesized that earlier in the thread ;-D

User avatar
Mattr567

01 May 2018, 06:27

__red__ wrote:
Mattr567 wrote: I think I may have wired it backward, which means this PCB uses 16 rows 8 columns! But now its effectively the opposite :lol:
Man, if only someone had hypothesized that earlier in the thread ;-D
Only take inspiration from the best ;)

User avatar
Mattr567

05 May 2018, 18:49

Its 100% done!!!! :D

Cleaning switches/case test fit

Image

Added SKCL Lock

Image

Trimming PCB for fitment

Image

(good thing I bagged it! :shock:

Image
Image
Image
Image
Image

Final fitment

Image

Keycaps going back on

Image

Final case trimmings

Image
Image
Image
Image

I wish this one turned out a little better, but it's not a huge deal. IRL cant really notice it.

Image

Cable wiring

Image
Image
Image

Oops
Spoiler:
Image
Multistation blood sacrifice :roll:
Spoiler:
Image
Final FINAL wiring:

Image

Finished! ;)

Image

Overall I love this board, it might be my best work yet! The look, the feel, the sound. Its the complete IBM package :evilgeek: #dta8 anyone? :P

hypkx
Chasing the Dream

05 May 2018, 19:31

Very nice work, well done.

User avatar
depletedvespene

06 May 2018, 11:03

Outstanding work! Congratulations! You just know you're gonna have to score another multistation and repeat this job, right? Because it wouldn't be proper that this should be a one-of-a-kind... :mrgreen:

Post Reply

Return to “Workshop”