[FS] xwhatsit's Grand Unified IBM Capsense USB controller thread

IBM Capsense USB Controllers

Rather than duplicating effort between the previous threads, we should try to keep everything here from now on.

I've developed a set of USB controllers for the IBM capacitive keyboards (Model F and Beamspring). These allow keyboards that otherwise have no way to hook them up to a modern PC to be used (Beamsprings), offer an alternative to Soarer's excellent converter (standard Model Fs), and also an alternative to the other intriguing capsense project around, the DPH controller. It allows the potential to go a bit further than just a converter if you're trying to do something a bit unusual—like build your own keyboard using old Model F bits, add extra keys that the original controller won't support, or get full make/break scancodes with NKRO on a terminal keyboard.

At any given time, the code as well as schematics/PCBs/precompiled binaries are available at http://downloads.cornall.co/ibm-capsense-usb

Features include:
  • Open source! (GPLv3)
  • Approx. 500Hz scan rate with fast debounce
  • Full NKRO (without needing to add diodes—yay capacitive keys) over USB on all Windows/Linux/Mac OS X, while retaining boot-mode compatibility for BIOS etc.
  • Auto-calibration of capsense thresholds
  • Media/consumer keys mappable
  • Layer support with 3 function keys; function keys support chording and recursive expansion
  • Macro support
  • Cross-platform (Windows/Linux/Mac OS X) graphical configuration utility to set layout/layers/configure scanning
  • Expansion header on all boards to support LEDs, solenoid drivers (for some Beamsprings), buzzers (on Kishsavers) etc.
  • Compact surface-mount design without needing to plug in external Teensys etc.

The Controllers

Beamspring-USB-Rev4
photo 1.JPG
photo 1.JPG (127.96 KiB) Viewed 3597 times

This supports the standard Beamspring boards, such as the 5251, 3278, 3727 etc., which have a 23x4 matrix. It will not work on a Beamspring Displaywriter despite the identical 30-pin connector, as these have a 12x8 matrix—see below for that controller.

This can be paired with the solenoid driver board (see below) for Extra Loud Click, if your Beamspring is fitted with a solenoid (the 3727 is the only one I'm aware of that isn't).

USB connects via an on-board mini-USB socket.

PCB at OSHPark: http://oshpark.com/shared_projects/bOXMsRYH



Beamspring-Displaywriter-USB-Rev1
IMG_1171.JPG
IMG_1171.JPG (122.43 KiB) Viewed 3597 times

This is to support the unusual Beamspring Displaywriter keyboards, which have a very different 12x8 matrix, with interleaved rows. They will not work with a Model F Displaywriter; as far as I'm aware these have built-in (non-removable) controllers.

USB connects via an on-board mini-USB socket.

PCB at OSHPark: http://oshpark.com/shared_projects/KcxYPs3y



Model-F-USB-Rev2
photo 2.JPG
photo 2.JPG (275.73 KiB) Viewed 3597 times

(photo shows Rev1 boards)

Rev2 PCB below (black lines show the actual board cutout):
Image

This should work with all Model F keyboards (including the Kishsaver) which have separate controllers. Unfortunately this excludes the XT and a couple of other terminal boards, which have a controller-on-board which can't be removed (except maybe with a hacksaw).

Some Model F keyboards have less than 16 columns; columns can be set to `skip' using the GUI util.

These do unfortunately require soldering; IBM used a soldered-on ribbon cable for the Model F controllers, that first needs to be removed from the old controller, then attached to this one.

In the Rev2 board (unlike the Rev1 in the photo below, which has a flying lead), a USB micro (not mini!) is socket is used. This is to reduce board size a bit and these days USB micro sockets are much more common.

PCB at OSHPark: http://oshpark.com/shared_projects/eTR858GJ



Accessory boards

Beamspring-USB-Solenoid-Driver-Rev2
photo 3.JPG
photo 3.JPG (63.98 KiB) Viewed 3597 times

(photo shows prototype, not Rev2)
Image

This is drive the solenoid fitted to most beamspring keyboads. It runs off the USB voltage supply to the main controller, and uses a current-limited switch-mode power supply to boost up to 9V. This is then used to fire the solenoid when a key is pressed for Extra Loud Click coupled with Small Blinking Light.

PCB at OSHPark: http://oshpark.com/shared_projects/qdZwUHLH



Model-F-3178-Adaptor-Rev1
Image
Image

An adaptor board for IBM 3178 keyboards, which were kind of an unusual Model F version of a 3278/3727 Beamspring. They unfortunately have a different pinout and require this adaptor.

PCB at OSHPark: http://oshpark.com/shared_projects/bD4fQlCX




GUI Util
util_0.6.png
util_0.6.png (53.23 KiB) Viewed 3597 times

This is a Qt application which runs on Linux, Windows and Mac OS X. Its main purpose is to allow you to set which key location corresponds to which scancode:
Spoiler:
util_mac.png
util_mac.png (153.02 KiB) Viewed 3597 times

...but also allows tweaking expansion port settings, like whether to run in LED mode for Caps/Num/Scroll Lock indicators, or whether to fire a solenoid (and adjust timings of it etc.).

This also is handy for diagnostic output to show which keys are being sensed as up or down.



Building your own
Give it a go! Sourcecode/schematics/PCB layouts are here: http://downloads.cornall.co/ibm-capsense-usb . You can order pre-Gerbered PCBs from OSHPark by using the links above, or checking my profile on OSHPark here: http://oshpark.com/profiles/xwhatsit . There are people around (me included) who will help you if you run into issues. Surface-mount is easier than through-hole, it just looks scary!


Pricing/Availability
As mentioned above, these are open-source. If you have a soldering iron and flux, consider building your own! Don't be put off the surface mount soldering, several people (some with no previous surface-mount experience) have now built their own.

However if you're not into picking up resistors with tweezers, I can build one for you and pre-program and test it first. I have a toaster reflow oven that makes this straightforward for me, and at any given point I'm likely to have a large number of the components on hand. Just bear in mind I'm in New Zealand; if I'm out of PCBs, an order from OSHPark takes a few weeks to get to me, even before I mail the finished controller to you.

Here's my spreadsheet of bill-of-materials with pricing in NZ$:
Code: Select all
   ══════════════════════════════════════════════════════════════════════════

                            Sheet 1: Beamspring-USB

Id Designator                 Package         Quantity Designation Price  Total
 1 CON1                       USB_MINI_B             1 USB-MINI-B   $1.42  $1.42
 2 U2                         tsot-6                 1 DAC101S101   $3.16  $3.16
 3 U1                         TQFP32                 1 ATMEGA32U2   $7.00  $7.00
 6 U6                         so-14                  1 LM339A       $0.48  $0.48
 7 C3,C4                      SM0805                 2 22pF         $0.01  $0.02
 8 C10,C9,C8,C11,C6,C7,C2,C12 SM0805                 8 0.1uF        $0.01  $0.08
 9 R4                         SM0805                 1 4.7K         $0.01  $0.01
10 R3,R17                     SM0805                 2 20K          $0.01  $0.02
11 R1,R16,R2                  SM0805                 3 10K          $0.01  $0.03
12 C1                         SM0805                 1 1uF          $0.02  $0.02
13 R15                        SM0805                 1 47K          $0.01  $0.01
14 C5                         SM0805                 1 4.7uF        $0.02  $0.02
15 R6,R5                      SM0805                 2 22R          $0.01  $0.03
16 RP2                        RPACK_1206             1 100K 1%      $0.08  $0.08
17 RP1                        RPACK_1206             1 10K 5%       $0.01  $0.01
18 X1                         HC49US                 1 16MHz        $0.60  $0.60
19 U3,U5,U4                   DHVQFN16               3 74AHC595     $0.60  $1.80
20 P1                         805_396_30x2_SM        1 EDGE_30X2    $3.00  $3.00
21 P2                         pin_array_3x2          1 CONN_3X2     $0.45  $0.45
   Ground wire + crimp                               1              $0.25  $0.25
   PCB                                               1             $10.04 $10.04
                                                                   Total  $28.52

   ══════════════════════════════════════════════════════════════════════════

                     Sheet 2: Beamspring-Displaywriter-USB

Id Designator                 Package           Quantity Designation Price  Total
 2 CON1                       USB_MINI_B               1 USB-MINI-B   $1.42  $1.42
 3 U2                         tsot-6                   1 DAC101S101   $3.16  $3.16
 4 U1                         TQFP32                   1 ATMEGA32U2   $7.00  $7.00
 6 U3,U4                      so-14                    2 LM339A       $0.48  $0.96
 7 R3,R6                      SM0805                   2 20K          $0.01  $0.02
 8 C9,C10,C7,C12,C11,C8,C6,C4 SM0805                   8 0.1uF        $0.01  $0.08
 9 R4,R7                      SM0805                   2 4.7K         $0.01  $0.03
10 C5                         SM0805                   1 1uF          $0.02  $0.02
11 C1,C2                      SM0805                   2 22pF         $0.01  $0.02
12 R5,R9                      SM0805                   2 10K          $0.01  $0.02
13 R1,R2                      SM0805                   2 22R          $0.01  $0.03
14 C3                         SM0805                   1 4.7uF        $0.02  $0.02
15 R8                         SM0805                   1 1K           $0.01  $0.01
16 RP1,RP2                    RPACK_1206               2 10K 5%       $0.01  $0.02
17 RP3,RP4                    RPACK_1206               2 100K 5%      $0.08  $0.15
18 P2                         pin_array_3x2            1 CONN_3X2     $0.45  $0.45
19 X1                         HC49US                   1 16MHz        $0.60  $0.60
20 U5,U6                      DHVQFN16                 2 74AHC595     $0.60  $1.20
21 Ground wire + crimp                                 1 Chassis GND  $0.25  $0.25
22 PDW1                       805_396_30x2_pins        1 EDGE_30X2    $3.00  $3.00
   PCB                                                 1             $12.60 $12.60
                                                                     Total  $31.06

   ══════════════════════════════════════════════════════════════════════════

                              Sheet 3: Model-F-USB

  Id Designator                 Package       Quantity Designation Price  Total
   2 U2                         tsot-6               1 DAC101S101   $3.16  $3.16
   3 U1                         TQFP32               1 ATMEGA32U2   $7.00  $7.00
   5 U3,U4                      so-14                2 LM339A       $0.48  $0.96
   6 R6,R3                      SM0805               2 20K          $0.01  $0.02
   7 C9,C10,C7,C12,C11,C4,C8,C6 SM0805               8 0.1uF        $0.01  $0.08
   8 R4,R7                      SM0805               2 4.7K         $0.01  $0.03
   9 C5                         SM0805               1 1uF          $0.02  $0.02
  10 C1,C2                      SM0805               2 22pF         $0.01  $0.02
  11 R8                         SM0805               1 1K           $0.01  $0.01
  12 R5,R9                      SM0805               2 10K          $0.01  $0.02
  13 C3                         SM0805               1 4.7uF        $0.02  $0.02
  14 R2,R1                      SM0805               2 22R          $0.01  $0.03
  15 RP3,RP4                    RPACK_1206           2 100K 1%      $0.08  $0.15
  16 RP2,RP1                    RPACK_1206           2 10K 5%       $0.01  $0.02
  17 P2                         pin_array_3x2        1 CONN_3X2     $0.60  $0.60
                                right angle
  19 X1                         HC49US               1 16MHz        $0.60  $0.60
  20 U5,U6                      DHVQFN16             2 74AHC595     $0.60  $1.20
  21 P1                         USB-Micro-B          1 USB          $1.60  $1.60
     PCB                                             1             $12.95 $12.95
                                                                   Total  $28.78

   ══════════════════════════════════════════════════════════════════════════

                            Sheet 4: Solenoid-Driver

   Id Designator         Package            Quantity Designation Price Total
    1 U1                 SOT23_6                   1 MIC2009A-1  $1.70  $1.70
    2 U3                 SOT23-5                   1 MIC2250-2   $2.45  $2.45
    3 U2                 so-16                     1 ULN2003     $0.96  $0.96
    4 C5,C3              SM1210                    2 22uF        $0.36  $0.72
    5 D2                 SM1206POL                 1 LED         $0.17  $0.17
    6 R2,R4,R6           SM0805                    3 100K        $0.01  $0.03
    7 R5                 SM0805                    1 16K         $0.01  $0.01
    8 C1                 SM0805                    1 1uF         $0.02  $0.02
    9 R1,R3              SM0805                    2 470R        $0.01  $0.02
   10 C4,C2              SM0805                    2 0.1uF       $0.01  $0.02
   11 P1                 pin_array_3x2             1 CONN_3X2    $0.45  $0.45
   12 P3                 PIN_ARRAY_2X1             1 CONN_2      $0.10  $0.10
   13 D1                 DO-41                     1 1N5819      $0.30  $0.30
   14 C6                 c_elec_6.3x7.7            1 220uF       $0.70  $0.70
   15 L1                 INDUCTOR_12.8x12.8        1 22uH        $1.80  $1.80
      6-pin ribbon cable                           1             $4.22  $4.22
      + connectors
      PCB                                          1             $3.13  $3.13
                                                                 Total $16.79


The pricing for the three controllers is close enough that I will set US$50 for each controller for me to build and test each one. I think this is a fair margin over my raw costs for an hour or so soldering, assembling, testing and packaging (and heatshrinking USB cables for the Model Fs). I certainly won't get rich charging that :)

The solenoid driver I will set at US$25 for me to build/assemble/test, and the 3178 adaptor board is US$10.

Shipping in the past has been NZ$13.45 (updated! NZ post put their prices up) to pretty much anywhere with untracked airmail. It has usually taken about 2 weeks to arrive. For tracked airmail, NZ Post puts the price up to approx. NZ$45 which is reasonably steep, but may be worth it if you've had packages go missing in your part of the world before. I've rationalised these at USD$11.50 and USD$40.50 respectively.


Current orders
Round 1/June 1st batch closed, fully shipped
Final tally:
  • 24x Model-F-USB-Rev2
  • 9x Beamspring-USB-Rev4
  • 6x Beamspring-Displaywriter-USB-Rev1
  • 8x Solenoid-Driver-Rev2
  • 4x 3178-Adaptor-Rev1

Round 2/August 15th batch closed, all shipped
Final tally:
  • 18x Model-F-USB-Rev2
  • 11x Beamspring-USB-Rev4
  • 2x Beamspring-Displaywriter-Rev1
  • 13x Solenoid-Driver-Rev3
  • 1x 3178-Adaptor-Rev1

Round 3/October 18th batch open, accepting orders
[/list]
Last edited by xwhatsit on 18 Oct 2014, 13:12, edited 25 times in total.
xwhatsit

Unread post11 May 2014, 09:01

X
xwhatsit
 
Posts: 436
Joined: 25 Mar 2011, 14:38
Location: NZ
Main keyboard: IBM 3727 beamspring (converted to USB)
Main mouse: What's a mouse for?
Favorite switch: Beamspring
 
xwhatsit, Thank You again for all your projects.
---
On a side note the keys of the "great white" keyboard look pretty good! (bump)
Game Theory
User avatar
Mr. Despair

Unread post12 May 2014, 02:48

User avatar
X
Game Theory
Mr. Despair
 
Posts: 251
Joined: 26 Apr 2012, 01:18
Location: Madison WI US
Main keyboard: Realforce 104UG or Beam Spring 5251
Main mouse: Logitech MX518
Favorite switch: MX Blue in terms of MX
Club member: 0008
 
 
.. he's just a poor kid from the stupid ages.
Fantastic! Guess what just came in the post? Looks like New Zealand postal pigeons are quicker than everyone thought!

I'll get my Kishsaver open tonight. What should I be looking for, re: test points on the ribbon? There ought to be a few open spots on the matrix for this the little board. And anything I ought to do before desoldering the stock controller?
Muirium
User avatar

Unread post12 May 2014, 17:28

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
As I am too tired to research it right now...how is the compatibility with the kishysaver? Ive got one and an IBM Matrix board in the mail that I want to convert to usb.
Ascaii
User avatar

Unread post12 May 2014, 18:01

User avatar
X
Ascaii
 
Posts: 2368
Joined: 30 Jan 2011, 13:04
Location: Berlin, Germany
Main keyboard: HHKB
Main mouse: Razer Diamondback / Rollermouse Pro
Favorite switch: Ergo Clears
Club member: 0019
 
 
Im going to be selling off a lot of my collection in the next weeks, keep an eye on my thread in the marketplace.
Model-F-USB-Rev1 will probably work with the Kishy, a prototype is on the way to Muirium right now.
Then we'll know for sure.
rindorbrot
User avatar

Unread post12 May 2014, 18:04

User avatar
X
rindorbrot
 
Posts: 795
Joined: 17 Dec 2011, 22:22
Location: Bavaria, Germany
Main keyboard: Phantom
Main mouse: Zowie FK 2014
Favorite switch: Cherry MX "Ergo-Clear"
Club member: 0029
 
It's already here!
KishCon.jpg
KishCon.jpg (441.73 KiB) Viewed 3445 times

Quality time with the soldering iron awaits us later…
Muirium
User avatar

Unread post12 May 2014, 18:14

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
do it NOW!
rindorbrot
User avatar

Unread post12 May 2014, 18:27

User avatar
X
rindorbrot
 
Posts: 795
Joined: 17 Dec 2011, 22:22
Location: Bavaria, Germany
Main keyboard: Phantom
Main mouse: Zowie FK 2014
Favorite switch: Cherry MX "Ergo-Clear"
Club member: 0029
 
Okay, getting in there now. First of all I'm checking the ribbon cable (and therefore matrix) for shorts / "test points", before desoldering the stock controller. Finding plenty of them, too. 30 pins takes a while to check, bear with…
Muirium
User avatar

Unread post13 May 2014, 01:19

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
Cool bananas. What a dinky keyboard! Like a grown-ups' HHKB with real switches.

Don't forget to solder it in the right way up :P All of the components should be facing up, and the writing should be readable if the keyboard was transparent. That is, exactly the same orientation it is right now. Less obvious when you don't have a great big edge connector on it.

Let me know which pins are ground, I'm starting to freak out after I met that crazy 3178 Model F over on GH yesterday!
xwhatsit

Unread post13 May 2014, 01:33

X
xwhatsit
 
Posts: 436
Joined: 25 Mar 2011, 14:38
Location: NZ
Main keyboard: IBM 3727 beamspring (converted to USB)
Main mouse: What's a mouse for?
Favorite switch: Beamspring
 
Okay, I've tested the pins. What's the numbering convention, by the way? Neither stock nor replacement PCB has numbers on them. Is it left to right when looking down on top of the keyboard?

If so, starting with 1 on the left: 11,12,13,14,23,24,25,26,27,29,30. That's 11 out of 30 pins earthed on this little guy!
Muirium
User avatar

Unread post13 May 2014, 01:43

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
Ahhh, sweet relief.

Yes, I reckon 1 on the left is as good as any. There's kind of a little `box' on pin1 of my controller to signify the first pin.

So you'll need to set Column Skip for columns 1, 2, 11, 12, 13, 14 and 15. It's really a 9x8 matrix! 72 possible keys.

Interesting that pins 1 and 2 aren't grounded, they usually are. Maybe just unconnected entirely.
xwhatsit

Unread post13 May 2014, 01:49

X
xwhatsit
 
Posts: 436
Joined: 25 Mar 2011, 14:38
Location: NZ
Main keyboard: IBM 3727 beamspring (converted to USB)
Main mouse: What's a mouse for?
Favorite switch: Beamspring
 
Actually, they are, I bollocksed up. Was testing the wrong line of solder joints. Here's a picture:
Stock Kish.jpg
Stock Kish.jpg (664.36 KiB) Viewed 3346 times

This is the stock controller still installed, viewed from underneath, but still with pin 1 on the left, 30 on the right. I was testing the top row of contacts instead of the actual pins underneath them!

Updated earthed pins list: 1,2,11,12,23,24,25,26,27,29,30.
Muirium
User avatar

Unread post13 May 2014, 02:00

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
Goodly, no worries then, your updated list of Column Skips are: 11, 12, 13, 14 and 15.

Interestingly looks like Column 16 is still attached if pin 28 isn't grounded. Weird, I'm sure IBM had their reasons for laying it out strangely though.
xwhatsit

Unread post13 May 2014, 02:27

X
xwhatsit
 
Posts: 436
Joined: 25 Mar 2011, 14:38
Location: NZ
Main keyboard: IBM 3727 beamspring (converted to USB)
Main mouse: What's a mouse for?
Favorite switch: Beamspring
 
My desoldering technique is melting the solder, wiggling around, and then sticking the iron through the hole to chase the pin out. Slow job, but seems to be working. I've at least got it started tonight.

I'll check those earths again without the controller hooked up, and in daylight…
Muirium
User avatar

Unread post13 May 2014, 02:34

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
Nice, you're doing better than me. Maybe it was my big ugly hoof tip (great for SMT, maybe not for THT).

You might find some of the earths on the ribbon cable don't actually check out; the controller itself often does much of the linking between different grounded pins.
xwhatsit

Unread post13 May 2014, 02:38

X
xwhatsit
 
Posts: 436
Joined: 25 Mar 2011, 14:38
Location: NZ
Main keyboard: IBM 3727 beamspring (converted to USB)
Main mouse: What's a mouse for?
Favorite switch: Beamspring
 
Interesting. I'm putting it aside now for the night. I presume that I configure your controller before I solder it in, specifically to avoid (with column skips) probing those shorts?
Muirium
User avatar

Unread post13 May 2014, 02:54

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
It's not a major problem; I imagine maybe long term if a column strobe was being continuously shorted to ground you might cause some damage, but it's unlikely, unless the firmware freaked out and left the strobe on permanently.

It could very well cause scanning issues though, because for that very short period while the shorted column is pulsed, you'll briefly draw a lot of current and possibly cause Vcc to sag a bit.

You can set up the skips now though, just hit `Store in EEPROM' on that tab once you're done.
xwhatsit

Unread post13 May 2014, 03:00

X
xwhatsit
 
Posts: 436
Joined: 25 Mar 2011, 14:38
Location: NZ
Main keyboard: IBM 3727 beamspring (converted to USB)
Main mouse: What's a mouse for?
Favorite switch: Beamspring
 
Okay, setting that up just now…
xwhatsit wrote:Goodly, no worries then, your updated list of Column Skips are: 11, 12, 13, 14 and 15.

Screen Shot 2014-05-13 at 06.00.38 pm.png
Screen Shot 2014-05-13 at 06.00.38 pm.png (311.82 KiB) Viewed 3225 times


Is this what you mean? I'm not sure about polarity: whether the check boxes indicate skip or scan…
Muirium
User avatar

Unread post13 May 2014, 19:02

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
Ha! No I meant the opposite, but I see your point. I'll try and make it a bit more obvious.

So tick 11 through 15.
xwhatsit

Unread post13 May 2014, 22:46

X
xwhatsit
 
Posts: 436
Joined: 25 Mar 2011, 14:38
Location: NZ
Main keyboard: IBM 3727 beamspring (converted to USB)
Main mouse: What's a mouse for?
Favorite switch: Beamspring
 
Will do.

I've desoldered the stock controller, and found another earthed pin (14) by testing them all against pin 1; otherwise all the others are still present. New list: 1,2,11,12,14,23,24,25,26,27,29,30.

New controller installation is proving slow by how stiff these wires are within the ribbon. I'm tempted to get out the green jump cables!
Muirium
User avatar

Unread post13 May 2014, 22:50

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
Pin 14 is Column 2, so add that to the list as well. Looks like a 10x8 matrix at this stage. These are the connections:

model-f-usb.png
model-f-usb.png (12.92 KiB) Viewed 3176 times


With the controller installation, would it be easier if the holes were bigger? I stuck with the same size holes as the original controller, but did wonder if they could be enlarged to make the now slightly-poozed ribbon cable easier to insert.
xwhatsit

Unread post13 May 2014, 22:57

X
xwhatsit
 
Posts: 436
Joined: 25 Mar 2011, 14:38
Location: NZ
Main keyboard: IBM 3727 beamspring (converted to USB)
Main mouse: What's a mouse for?
Favorite switch: Beamspring
 
Thanks for the diagram!

Yes, bigger holes would be a real improvement. Also, only one of the Kishsaver's two controller mounting screws is anywhere near the new board, and the metal bracket it's on collides with the 6 pin header for the speaker. I'll try to take a few photos so you can see. Nothing too horrible to prevent installation with a bit of creativity, I think, but awkward.
Muirium
User avatar

Unread post13 May 2014, 23:01

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
Ah cheers for the mounting info. We might have to increase the size of the board then to make it easily installable on a Kishsaver. Photos would be great! Sorry for the trouble getting the damned thing to fit.

If you can't get any of the screws in, the board will be ungrounded and prone to inteference/noise; in that case, run a wire from one of the mounting holes on the controller to one of the mounting brackets on the board.

Oh, and I can't remember if I ever sent instructions on setting up a controller from scratch with no layout. I'll write them here anyway:


1) Using util, first set voltage threshold to 1; all the keys will initially appear `pressed' with a Model F doing this
2) Slowly raise the voltage threshold until keys start registering (probably about 110–160). There will probably be one or two keys that will appear `always on' and don't correspond to keys, don't worry about this for now
3) Now you can assign each key using the drop-down boxes on the Base Layer tab
4) Once you're done, you will be left with a bunch of blank keys set to (Ignored). If they are `Up' (i.e. not pressed), set them to (RELEASED). If they are `Down' (the background is dark grey), set them to `(PRESSED)'. This is for the autocalibration
5) Try out the autocalibration, see if it gives a useful result. If it doesn't, make sure you've got the (PRESSED) and (RELEASED) keys set up right
6) If you're happy, don't forget to press `Store in EEPROM' to save the layout, otherwise it won't be saved the next time it's unplugged from USB

If you don't end up with any keys in step 2 that appear always-on, then you will be unable to autocalibrate (it will most likely give an inaccurate number). You can get around this by finding a happy number for voltage threshold, then clicking `Store override in EEPROM'.
xwhatsit

Unread post13 May 2014, 23:05

X
xwhatsit
 
Posts: 436
Joined: 25 Mar 2011, 14:38
Location: NZ
Main keyboard: IBM 3727 beamspring (converted to USB)
Main mouse: What's a mouse for?
Favorite switch: Beamspring
 
it is actually an 8x8 matrix plus a few test pads on a 9th column.
1-8 = pins 3-10, A-H = pin 15-22 with test pads on 28.
KS Matrix.jpg
KS Matrix.jpg (245.6 KiB) Viewed 3147 times


i have high res scans of the PCB, would that help?
wcass
User avatar

Unread post14 May 2014, 03:16

User avatar
X
wcass
 
Posts: 196
Joined: 27 Nov 2011, 23:18
Location: Fort Lauderdale, FL, USA
Main keyboard: ibm model m
Main mouse: kensington expert mouse
Favorite switch: buckeling spring
 
NIce! Got a picture of the back with the columns?
xwhatsit

Unread post14 May 2014, 04:01

X
xwhatsit
 
Posts: 436
Joined: 25 Mar 2011, 14:38
Location: NZ
Main keyboard: IBM 3727 beamspring (converted to USB)
Main mouse: What's a mouse for?
Favorite switch: Beamspring
 
this is what i have. sorry the connections are hidden some - but you can see that first column going to pin 15. I can do another scan after i remove the controller.
PCB bottom.jpg
PCB bottom.jpg (304.88 KiB) Viewed 3135 times

PCB bot detail.jpg
PCB bot detail.jpg (630.19 KiB) Viewed 3134 times
wcass
User avatar

Unread post14 May 2014, 04:31

User avatar
X
wcass
 
Posts: 196
Joined: 27 Nov 2011, 23:18
Location: Fort Lauderdale, FL, USA
Main keyboard: ibm model m
Main mouse: kensington expert mouse
Favorite switch: buckeling spring
 
No dramas, simply adding column 1 (pin 13) to the list should suffice; the rest is easy to figure out with the GUI util by pressing each key and seeing what happens.

Thanks for the photos!
xwhatsit

Unread post14 May 2014, 05:06

X
xwhatsit
 
Posts: 436
Joined: 25 Mar 2011, 14:38
Location: NZ
Main keyboard: IBM 3727 beamspring (converted to USB)
Main mouse: What's a mouse for?
Favorite switch: Beamspring
 
Okay, I have it in! Typing via the controller right now in fact. Hoorah! I still need to fix my S key – which is faulty anyway – but the basics look good. I'm struggling a bit with the GUI utility because it doesn't horizontally scroll on OS X: no auto calibrate for me until I can set all those keys over there to released. But the hardware works! Nicely done, Xwhatsit!
Muirium
User avatar

Unread post16 May 2014, 18:46

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
My brother reminded me that I have Retina MacBook Pro, and can cheat a fair old bit, like this:

Screen Shot 2014-05-16 at 06.39.03 pm.png
Screen Shot 2014-05-16 at 06.39.03 pm.png (214.29 KiB) Viewed 2901 times


Boom!

I have a few suggestions for the interface:

  • Hide the Current Threshold box from principle keyboard focus, because hitting it accidentally is enormously destructive. I've bumbled into it a few times now. The danger is that its accidental new value fires all keys simultaneously and you're blocked from setting it back! I had to yank the USB cable, crash the utility (which always happens when you do that), and revert back to saved settings.
  • Copy and pate in the mapping UI would be a big step forward. Manually selecting (RELEASED) from a drop down menu a few dozen times is a pain. The same is even more true when assigning new layers. Copying a current layer to use as a starting point would be fantastic!
  • Disable scroll through a cell's contents (on the Mac at least) as when I scroll up and down through the map, whatever is under my mouse pointer goes mental, losing its state. OS X multitouch scrolling fires off a ton of fast scroll events, so just a nudge when the pointer is over a box will send it flying through the list!

Anyway, I'm pure chuffed that my Kishsaver is running so well now. Huge thanks to the Summoner, Xwhatsit! Absolutely brilliant responsiveness, and a great selection of features in the GUI, once I've got the basics nailed. I'll pop it back open to address that troublesome S key and to show where I've stashed the controller, given the Kishaver's misplaced mounts.

Anyone any ideas what's wrong with my S? I tooth picked / chopsticked two unresponsive switches (identified earlier with Hasu's converter) and apostrophe works fine with a Model M spring, but S is a whole other story. It clicks, and when I had the chopstick in, I could activate it by directly moving the flip plate so I know the cap sense pads are good. Remapping such a frequently used key is slowing my typing, as you can guess!
Muirium
User avatar

Unread post16 May 2014, 19:57

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
Completed the main map now (lots of quality time with the mouse…) and here's my Kishaver's settings for reference:

Code: Select all
# Base Layer
0x02 0x02 0x1e 0x1f 0x21 0x23 0x25 0x27 0x2e 0x2a 0x02 0x02 0x02 0x02 0x02 0x02
0x02 0x02 0x29 0x14 0x20 0x22 0x24 0x26 0x2d 0x02 0x02 0x02 0x02 0x02 0x02 0x02
0x02 0x02 0x2b 0x1a 0x15 0x1c 0x0c 0x13 0x2f 0x30 0x02 0x02 0x02 0x02 0x02 0x01
0x02 0x02 0xd0 0x04 0x08 0x17 0x18 0x12 0x31 0x4c 0x02 0x02 0x02 0x02 0x02 0x01
0x02 0x02 0xe1 0x16 0x09 0x0b 0x0d 0x33 0x34 0x28 0x02 0x02 0x02 0x02 0x02 0x02
0x02 0x02 0x16 0x1b 0x07 0x0a 0x0e 0x0f 0x38 0x02 0x02 0x02 0x02 0x02 0x02 0x02
0x02 0x02 0xe2 0x1d 0x06 0x05 0x11 0x37 0xe6 0xe5 0x02 0x02 0x02 0x02 0x02 0x01
0x02 0x02 0xe0 0xe3 0x19 0x2c 0x10 0x36 0xe7 0xd1 0x02 0x02 0x02 0x02 0x02 0x02

# Layer 1
0x00 0x00 0x3a 0x3b 0x3d 0x3f 0x41 0x43 0x45 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x3c 0x3e 0x40 0x42 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0xd0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0xe1 0x00 0x00 0x00 0x00 0x50 0x4f 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0xe2 0x00 0x00 0x00 0x00 0x00 0xe6 0xe5 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0xe0 0xe3 0x00 0x00 0x00 0x00 0xe7 0xd1 0x00 0x00 0x00 0x00 0x00 0x00

# Layer 2
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

# Layer 3
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

# Layer Conditions
(1 0 0)   1
(0 1 0)   1
(1 1 0)   2
(0 0 0)   255
(0 0 0)   255
(0 0 0)   255
(0 0 0)   255
(0 0 0)   255

# Column Skips
[1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0]

# Expansion header
+ 0 255 255

Bear in mind the broken S key (I assigned it where I guess it really is in the matrix, and I also mapped the ISO key right of left Shift so I can actually, if awkwardly, type it) but other than that we are looking good! I've just added the essential HHKB arrows on Layer 1 and haven't even touched Layer 2 yet, but they'll be very useful in good time!

The threshold is a low 150-170 by the way. How does that compare to other Model Fs and the beam springs?
Muirium
User avatar

Unread post16 May 2014, 20:22

User avatar
X
Muirium
 
Posts: 10857
Joined: 03 Feb 2013, 12:11
Location: Edinburgh, Scotland
Main keyboard: IBM Model F Kishsaver
Main mouse: Apple Magic Mouse
Favorite switch: Gotta Try 'Em All
Club member: 0047
 
 
Jasker Muir
Project Andala
Next

Who is online

Users browsing this forum: Arcoril, Baidu [Spider], cooldiscretion, decayl, finnr, javifast and 4 guests