Converting an IBM Multistation with an xwhatsit
- Mattr567
- Location: Socal
- Main keyboard: Many things
- Main mouse: G502
- Favorite switch: Alps in general
- DT Pro Member: -
Hey everyone! It's Matt here with a new wacky project
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
The board as I got it:
My current layout/caps (Thick PBT P70 keycpas w/ 5140 spacebar and stab used!!!)
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
Early:
Late:
xwhatsit wiring diagram:
Stock IC's
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:
Current wiring setup:
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
The board as I got it:
My current layout/caps (Thick PBT P70 keycpas w/ 5140 spacebar and stab used!!!)
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
Early:
Late:
xwhatsit wiring diagram:
Stock IC's
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:
Current wiring setup:
- ullr
- Location: Florida
- Main keyboard: GH60
- Main mouse: MX Master
- Favorite switch: Kailh Box Navy Blue
- DT Pro Member: -
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
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
-
- Location: Beamspringville
- Main keyboard: 4704
- DT Pro Member: 0186
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.
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.
-
- Location: Des Moines / Cedar Falls, IA, USA
- Main keyboard: IBM Model F107
- DT Pro Member: 0190
Xwhatsit works on regular switches too which is awesome mostly for the ease of configuration and solenoid adding potential__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.
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
- DMA
- Location: Seattle, US
- Main keyboard: T420
- Main mouse: Trackpoint
- Favorite switch: beamspring
- DT Pro Member: NaN
- Contact:
__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..)
-
- Location: Beamspringville
- Main keyboard: 4704
- DT Pro Member: 0186
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)
... 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)
- DMA
- Location: Seattle, US
- Main keyboard: T420
- Main mouse: Trackpoint
- Favorite switch: beamspring
- DT Pro Member: NaN
- Contact:
Status display is trickier, because 99 is 2 digits, and more than that is 3 digits so displays will be WIDER.__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)
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
- Mattr567
- Location: Socal
- Main keyboard: Many things
- Main mouse: G502
- Favorite switch: Alps in general
- DT Pro Member: -
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__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.
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...
Could this be my issue?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..)
-
- Location: Des Moines / Cedar Falls, IA, USA
- Main keyboard: IBM Model F107
- DT Pro Member: 0190
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.
-
- Location: Beamspringville
- Main keyboard: 4704
- DT Pro Member: 0186
Nope. You're using xwhatsit, we're talking about CS.
-
- Location: Beamspringville
- Main keyboard: 4704
- DT Pro Member: 0186
Yah, I just looked again and see the diodes this time.Mattr567 wrote: ↑ Also this PCB is NKRO, so I should be ok in regards with diodes?
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...
- Mattr567
- Location: Socal
- Main keyboard: Many things
- Main mouse: G502
- Favorite switch: Alps in general
- DT Pro Member: -
Great news!
I fixed the column jump issue by desoldering a resistor pack that was in the direct path of the rows:
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.
I fixed the column jump issue by desoldering a resistor pack that was in the direct path of the rows:
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.
- Mattr567
- Location: Socal
- Main keyboard: Many things
- Main mouse: G502
- Favorite switch: Alps in general
- DT Pro Member: -
Typing to you on the Multistation!!!! Fully programmed and working
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 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
Spacebar setup from behind
Front of the PCB
Flip-flopped diode
Final wiring setup
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.
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 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
Spacebar setup from behind
Front of the PCB
Flip-flopped diode
Final wiring setup
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.
- //gainsborough
- ALPSの日常
- Location: United States
- Main keyboard: some kind of alps keyboard
- Favorite switch: clk: SKCM blue, lin: SKCL cream, tac: SKCM cream
- DT Pro Member: 0188
Awesome work, my dude!
I'm curious though - why did flipping diodes fix the switches? What is the primary effect of flipping diodes?
I'm curious though - why did flipping diodes fix the switches? What is the primary effect of flipping diodes?
- Mattr567
- Location: Socal
- Main keyboard: Many things
- Main mouse: G502
- Favorite switch: Alps in general
- DT Pro Member: -
I think I may have wired it backward, which means this PCB uses 16 rows 8 columns! But now its effectively the opposite//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?
- Mattr567
- Location: Socal
- Main keyboard: Many things
- Main mouse: G502
- Favorite switch: Alps in general
- DT Pro Member: -
Got so much done today! I hooked up the solenoid and fully trimmed the case among other things.
Final wiring:
Trimmed bottom case:
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.
Trimmed top case to fit the fat alts.
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!
Final wiring:
Trimmed bottom case:
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.
Trimmed top case to fit the fat alts.
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!
- Mattr567
- Location: Socal
- Main keyboard: Many things
- Main mouse: G502
- Favorite switch: Alps in general
- DT Pro Member: -
- Mattr567
- Location: Socal
- Main keyboard: Many things
- Main mouse: G502
- Favorite switch: Alps in general
- DT Pro Member: -
- Mattr567
- Location: Socal
- Main keyboard: Many things
- Main mouse: G502
- Favorite switch: Alps in general
- DT Pro Member: -
Its 100% done!!!!
Cleaning switches/case test fit
Added SKCL Lock
Trimming PCB for fitment
(good thing I bagged it!
Final fitment
Keycaps going back on
Final case trimmings
I wish this one turned out a little better, but it's not a huge deal. IRL cant really notice it.
Cable wiring
Oops
Multistation blood sacrifice
Final FINAL wiring:
Finished!
Overall I love this board, it might be my best work yet! The look, the feel, the sound. Its the complete IBM package #dta8 anyone?
Cleaning switches/case test fit
Added SKCL Lock
Trimming PCB for fitment
(good thing I bagged it!
Final fitment
Keycaps going back on
Final case trimmings
I wish this one turned out a little better, but it's not a huge deal. IRL cant really notice it.
Cable wiring
Oops
Spoiler:
Spoiler:
Finished!
Overall I love this board, it might be my best work yet! The look, the feel, the sound. Its the complete IBM package #dta8 anyone?
- depletedvespene
- Location: Chile
- Main keyboard: IBM Model F122
- Main mouse: Logitech G700s
- Favorite switch: buckling spring
- DT Pro Member: 0224
- Contact:
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...