Author Topic: Model F USB controller  (Read 12044 times)

0 Members and 1 Guest are viewing this topic.

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Model F USB controller
« on: Mon, 14 April 2014, 23:40:24 »
Hi all,

This has been cross-posted over at DT so I can get a broad section of views.

Now that I have my beamsprings humming along happily on USB, I wish to adapt my USB capacitive keyboard controller to my two Model Fs (a nice PC-AT and a battered but delightfully pingy 122-key terminal).

I've put together the layout pretty quickly:
61032-0

However now I have a decision to make. You'll see that the actual guts of the controller take up a relatively small area in the centre. However in adding mounting holes I now have a lot of wasted space.

The four holes at the bottom (P3..6) are mounting holes for what I'll call the `standard' Model F controller (what's in my PC-AT and 122-key terminal). No big deal.

The two holes at the top are in (what I believe are) appropriate positions for the slightly shrunk Kishsaver controller.

In combining the two mounting holes we now have a lot of wasted space, and the PCB now costs twice as much from OSHPark compared with the beamspring controller. Overall size is still smaller than the original at 149.5mm x 42.5mm, but the extra board space on the bottom might pose an issue for Kishsavers.

Either I can make these extra mounting bits `snap-off' (and live with the extra PCB manufacturing cost), or simply have two separate board designs with appropriate mounting holes for each.

What does GH think? Can we forgo the mounting holes entirely and use some nice spongy double-sided tape-foam?

Also, so far I've made the assumption that there are only two types of detachable Model F controllers (not counting XTs or Bigfoots which have controllers integrated into the keyboard PCB itself). Is anybody aware of any other designs that I should take into account?
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #1 on: Tue, 15 April 2014, 20:27:43 »
OK based on that resounding feedback I have dropped the mounting holes so I can shrink the board substantially. I have added a few more mounting holes—at least one of them will need to be connected to the chassis somehow, perhaps by a bit of cable as I've done with the Beamsprings.

If the board won't sit nicely in place based on just the ribbon cable and possibly some foam tape, I can always make up some brackets out of steel to adapt it.

Hotlinked renders from OSH Park...

Top:


Bottom:
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline Pacifist

  • Report me *again* if there are gifs in my sig
  • * Elevated Elder
  • Posts: 3599
  • Location: Cali
  • on hiatus
Re: Model F USB controller
« Reply #2 on: Tue, 15 April 2014, 20:31:06 »
Whats the estimate of the cost? I dont know if I should convert my XT or not with a dedicated controller built into the board

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #3 on: Tue, 15 April 2014, 20:37:27 »
I haven't costed it right out yet, but the original beamspring controllers came in at around US$23 for parts, and I sold them assembled and tested for US$50. I'd expect this to be similar. So much cheaper to go down the Teensy + Soarer's converter route (I'm assuming a Teensy is less than that!).

Being an XT you're locked into the converter route anyway aren't you? Unless you hacksaw off the existing controller and start soldering air-wires onto my board.
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline poxeclipse

  • Posts: 171
  • Location: Toronto, Canada
  • Hit me with music ... yes, me friend
Re: Model F USB controller
« Reply #4 on: Sat, 19 April 2014, 22:03:55 »
 looks nice. will it work on 3791 ? my daily driver is an 1387033, really rare, but 3791 looks better to me.
tks
« Last Edit: Sun, 20 April 2014, 06:29:28 by poxeclipse »

Offline Grr8

  • Posts: 36
  • Location: ZZ9 Plural Z Alpha
  • Quack!
Re: Model F USB controller
« Reply #5 on: Sun, 20 April 2014, 06:26:27 »
Want!
Daily Driver: Poker II Backlit (Ducky Mini-fied) + Amazon o-rings. Future daily driver IBM AT Model F (restoring now). For fun: IBM SSK 1397681 (NIB), IBM SSK 1391472, IBM Industrial 101 Square label 1388032, IBM Industrial 101 Black label 1394946, IBM 1391401 (bolt-modding now), IBM 1370477, IBM 42H1292 (USA), IBM 52G9700 IBM, and more....
More
Ducky Shine w/Blues + WASD o-rings, Ducky Shine 3 TKL w/Browns + ebay o-rings, Rosewill RK-9100 w/Blues, Apple Wireless (slim), Apple Wireless White A1016, Apple Extended II ADB. Next? HHKB2Pro?

Offline Techno Trousers

  • Posts: 908
  • ʘ_ಠ
Re: Model F USB controller
« Reply #6 on: Sun, 20 April 2014, 12:25:49 »
I managed to get a kishsaver, and have a few F-122s, so I'm trying to take stock of the replacement controller options. Is this one fully programmable? Any limitations? Thanks!

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #7 on: Sun, 20 April 2014, 19:08:36 »
How do you mean fully programmable?

It will be the same essential code as in my Beamspring controllers, so I'll itemise the main `features':

 - Layer support (base layer plus three more, selectable with combination of Fn keys)
 - No macro support yet, but on the list—I'm thinking of copying Soarer's macro language with some adaptions, as most people seem very familiar and happy with it on GH and DT.
 - Full NKRO (which you can actually achieve on a beamspring/Model F, as no ghosting); achieved with a bitmapped USB descriptor, very similar to Soarer's converter
 - GUI util to communicate with controller, for remapping and layer assignment etc. and key state monitoring; runs on Linux/Windows/Mac OS X
 - On the beamsprings at least, approx 650Hz scan rate at the moment. Once upon a time was closer to 1KHz, but adding layer support and NKRO took a chunk out of that. On the Model Fs this ought to be a good deal faster, as only 16 columns to scan instead of 23.

Main limitations include lack of macro support right now as detailed above. This shouldn't be hard to add, just need to find a bit of time. The whole thing is open-source and I'm happy to receive any patches.

« Last Edit: Sun, 20 April 2014, 19:10:07 by xwhatsit »
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #8 on: Sun, 20 April 2014, 19:18:21 »
looks nice. will it work on 3791 ? my daily driver is an 1387033, really rare, but 3791 looks better to me.
tks

Sorry didn't see your edit!

Most likely—I've never seen inside a 3791 and didn't find any photos with a quick search. The key points are having a separate controller (i.e. no controller-on-board as per the XT), preferrably with the 3.96mm pitch 30-pin ribbon cable every Model F I've ever seen seems to use. Getting into details, a maximum of 16 columns and a maximum of 8 rows, preferrably in the following pinout:

Code: [Select]
pins   1..2 - GND
pins  3..10 - Rows 1..8
pins 11..12 - GND
pins 13..28 - Columns 1..16
pins 29..30 - GND

I would think it very unlikely that IBM would have changed this on one particular keyboard; even the otherwise unusual Kishsaver uses the same essential layout. In addition, using the ribbon cable (unlike the fixed unmoveable edge connector of the Beamsprings) means there is potentially a little bit of scope to swap some pins.

If you have the opportunity, take some pictures of the insides (particularly the top of the controller if you can get at it) and we might be able to figure it out.
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline Techno Trousers

  • Posts: 908
  • ʘ_ಠ
Re: Model F USB controller
« Reply #9 on: Sun, 20 April 2014, 23:59:45 »
Cool, thanks for the feature list! One of the features I'm personally looking for in a kishsaver controller is the ability to set up a new function key besides shift/ctrl/alt/win and use that for navigation so it doesn't interfere with standard modifier combos. So does the base layer include all of the standard modifiers, meaning there could actually be up to three additional independent function keys?

Real world example: if I want fn-L to be right arrow, I'd select text to the right with shift-fn-L. To select a word to the right I'd use ctrl-shift-fn-L. But I'd also like win-L to lock the computer. Doable?

Sorry if my questions are a bit noobish, but I'm new to this level of customization.

Oh, and macro capability would be awesome, especially with the F-122!

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #10 on: Mon, 21 April 2014, 16:18:10 »
Yes definitely doable. I tested that right now and it's all functional (WIn-L doesn't actually *do* anything under dwm/Xorg, but the key combination is registered with xev). I had a momentary fright with ctrl-shift-fn-L until I remembered I have ctrl mapped as capslock on that layer :)

You could also do what I had on my beamspring at one point, where you have Layer 1 identical to the Base Layer in all respects. On the base layer you then set Win to Fn1, and LCtrl to Fn2. As your layer conditions, you make both Fn1 and Fn2 point to Layer 1. However, you then tell it the *combination* of Fn1 and Fn2 point to Layer 2, where you then have all kinds of cool stuff, like remapping hjkl to arrow keys.

The result is that when you press LCtrl or Win on their own (but in combination with other keys), everything works normally. However when you chord them together, you get your next layer. That way you don't have to dedicate an entire key as a function key.

Or is that too emacs-y?
« Last Edit: Mon, 21 April 2014, 16:32:33 by xwhatsit »
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline CPTBadAss

  • Woke up like this
  • Posts: 14364
    • Tactile Zine
Re: Model F USB controller
« Reply #11 on: Mon, 21 April 2014, 16:27:41 »
I think the mounting idea you have would be fine. I cracked open a Cherry MX8100 this weekend and there were a few components inside mounted with foam tape. If it's good enough for a Cherry POS board, it's good enough for me :D.

Offline Techno Trousers

  • Posts: 908
  • ʘ_ಠ
Re: Model F USB controller
« Reply #12 on: Mon, 21 April 2014, 19:16:19 »
Cool! Personally I'd like a single dedicated fn key, and with the kishsaver it's easily doable with the short left shift and additional key between left shift and Z, that's just begging to become my fn. Keeping it on the left hand will make it easier for me to leave the right hand free for navigation.

I'm definitely interested in your controller project!

Offline dorkvader

  • Posts: 6288
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: Model F USB controller
« Reply #13 on: Tue, 22 April 2014, 19:01:26 »
looks nice. will it work on 3791 ? my daily driver is an 1387033, really rare, but 3791 looks better to me.
tks

I've never heard of one of these. What was an IBM 3791 and what sort of KB does it have? From memory, the IBM 37*4 was a banking terminal like the kishsaver, but with beamspring.

I have most of the model F keyboards, so if there's one I don't know, I want the details.
---

Xwhatsit: this looks great! As usual, your controller projects are excellent.

Offline poxeclipse

  • Posts: 171
  • Location: Toronto, Canada
  • Hit me with music ... yes, me friend
Re: Model F USB controller
« Reply #14 on: Sat, 26 April 2014, 07:03:19 »
I think I messed them up. It is a 3178 Display Terminal keyboard, PN 6052141, sometimes labelled C1 - C4, as you can see in the attached. I don't know where I've got this '3791', but I'll check.

http://deskthority.net/wiki/IBM_Model_F
http://deskthority.net/wiki/File:C1_and_c2.jpg
« Last Edit: Sat, 26 April 2014, 07:07:33 by poxeclipse »

Offline dorkvader

  • Posts: 6288
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: Model F USB controller
« Reply #15 on: Sat, 26 April 2014, 12:39:11 »
I think I messed them up. It is a 3178 Display Terminal keyboard, PN 6052141, sometimes labelled C1 - C4, as you can see in the attached. I don't know where I've got this '3791', but I'll check.

http://deskthority.net/wiki/IBM_Model_F
http://deskthority.net/wiki/File:C1_and_c2.jpg

Ohright: one of these guys:
http://imgur.com/z29mkw2
http://imgur.com/g3fT7o6
http://imgur.com/dgVOtiR
http://imgur.com/MEUXNkF

Mine (C1 for data entry) came with the 3178 manual. I'll scan the whole thing properly sometime.

To answer your question: I think it might work for these. I forgot to upload my disassembly pics from mine, but I think the controller is separate. That's the real issue: if the controller is separate or attached (like it is on the PC/XT model F)

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #16 on: Mon, 05 May 2014, 01:09:44 »
Got the PCBs, had to wait a few days before I had a spare moment, but soldered them up and modified my software to deal with both beamsprings and Model Fs and...

It works! (This post typed on it as proof :) )

Pretty well too. There's a couple of tweaks to make, mostly resistor values; the key-capacitors don't drain fast enough after each pulse, I was getting situations where the key in the same column but next row was getting wiped out if both were pressed. I think this is down to a) my key-drain resistor divider being too high-impedence to drain a whole 8 rows as fast as 4 rows were draining, and b) the capacitance of each key is higher in the Model F compared to the beamspring, making it easier to sense. For now, to fix the problem, I've just increased a delay value inside the code to wait between pulsing each column; in the beamspring it was about 10us, for now it's closer to 50us. This means our 650Hz scan rate drops down to about 500Hz. I'll try tweaking the resistor values to see if I can get this back a bit better.

The auto-calibrate part of the firmware needs to be fixed as well, as its logic is backwards for a Model F (pressed keys produce higher voltages than unpressed keys, the reverse of beamsprings).

Here's a picture of a scan (don't worry about the blue line, that's just a single column being strobed):
63619-0


You can see the nice big jump when you hold a key down. Very easy to measure.

And some crap pics of it fitted to my 122-key terminal. Apologies for a) the green wires (long ago when I was first playing around with the board I accidentally snapped the brittle single-core ribbon cable) and b) the crap photos from my crap phone.
63621-1
63623-2
63625-3
63627-4
63629-5

Looking at those pics now I'm surprised it works with all the crazy green wires everywhere. I suppose the Model F just has high enough thresholds (bigger capacitors) that it's much easier to sense.
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline Techno Trousers

  • Posts: 908
  • ʘ_ಠ
Re: Model F USB controller
« Reply #17 on: Mon, 05 May 2014, 09:41:02 »
Wow, cool! So I see the USB cable hooked up on one side, but I also see what looks like the original molex pin connection on the other side? Or Is that to be used for something else?

Assuming a stock F with intact ribbon cable, part of the installation process will involve desoldering the original controller and soldering the new one in place? How exacting is that process?

Thanks for the update!

Offline hwood34

  • underwater squad
  • * Exalted Elder
  • Posts: 5917
  • Location: USA
  • #1 CL stan
    • Keyboard Illuminati
Re: Model F USB controller
« Reply #18 on: Mon, 05 May 2014, 09:42:29 »
Looking great!
IV KWK Info Thread & KBK Info Thread IV (out of date)

Old GBs: Gateron Switches (2015) | CF-LX R1 (2015) | CF-LX R2 (2017) | CF-LXXX (2017) | Gen.s Gem Caps (2015)

"Under no pretext should arms and ammunition be surrendered; any attempt to disarm the workers must be frustrated, by force if necessary"

Offline jdcarpe

  • * Curator
  • Posts: 8852
  • Location: Odessa, TX
  • Live long, and prosper.
Re: Model F USB controller
« Reply #19 on: Mon, 05 May 2014, 10:01:33 »
Does this controller differ from the Kishsaver/Model F controller only in that it uses SMT components instead of a Teensy++ 2.0? Or is there something else which is fundamentally different about this controller?
KMAC :: LZ-GH :: WASD CODE :: WASD v2 :: GH60 :: Alps64 :: JD45 :: IBM Model M :: IBM 4704 "Pingmaster"

http://jd40.info :: http://jd45.info


in memoriam

"When I was a kid, I used to take things apart and never put them back together."

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #20 on: Mon, 05 May 2014, 16:15:29 »
Wow, cool! So I see the USB cable hooked up on one side, but I also see what looks like the original molex pin connection on the other side? Or Is that to be used for something else?

Assuming a stock F with intact ribbon cable, part of the installation process will involve desoldering the original controller and soldering the new one in place? How exacting is that process?

Thanks for the update!
Yep horrible direct-to-board soldered USB cable—I wasn't sure if there was room for a connector. The pin headers is what I've had in my beamspring controllers since Rev4 (the latest revision); I'm calling it an `expansion header'. It has Vcc, GND and four GPIOs. On the beamsprings I'm using it to fire the solenoid clicker, on this it could be used for either the piezo buzzer on the Kishsavers or the LEDs on the PC-orientated boards.

Yes pretty much just soldering the new board on.  A pain in the neck compared with the my beamspring controllers, which have a edge connector. I'm not sure about `exacting'; I'm a pretty rubbish hand solderer, hence why I stick with surface mount and leave it up to my toaster oven.
Looking great!
Churr.
Does this controller differ from the Kishsaver/Model F controller only in that it uses SMT components instead of a Teensy++ 2.0? Or is there something else which is fundamentally different about this controller?
What's the Kishsaver/Model F controller? Is that the one wcass pointed out the other day? (EDIT: HaaTa at Deskthority has explained it)

I don't profess to be an expert on their controller, but if I recall correctly they use a sample-and-hold circuit and an ADC to get the values in. It's not dissimilar from what I'm doing in terms of the theory—using the capacitor to differentiate the rise time of the strobe signal—but the implementation is quite different.

This is basically the same as my beamspring controllers, except with 16 columns and 8 rows (and some firmware changes naturally, for active-low to active-high keys). It uses 74AHC shift registers for column strobe to get some decent punch, and then a set of comparators to very quickly read the resulting waveform against a reference voltage from a DAC. It's basically the method IBM used in the original controllers; or at least what they described in their patents.
« Last Edit: Mon, 05 May 2014, 20:02:44 by xwhatsit »
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #21 on: Mon, 05 May 2014, 20:02:11 »
I had a play around over lunch and swapping the 47K/10K resistor divider for key-drain for a 4.7K/1.0K divider, I can boost the scanrate up to 550Hz or so. I might leave it at that; there's no point in going too much higher, as you then start having to increase your number of debouncing scans to compensate. I expect there's a probably a hard cap on both Beamsprings and Model Fs of around 2–3ms per key (so 333–500Hz) for mechanical reasons (yes, capacitive keyboards still need debouncing, there's just less bounce). In any case, after adding NKRO and layers and all the other crap my original 1KHz scanrate on the beamsprings dropped down to around 600Hz; most of the gains could probably come from optimising the rest of the code a bit better, rather than playing with the scanning.

Sorted out the autocalibration as well. Really confused myself with active-low and active-high terminology; the LM339 has open-collector N-channel outputs, so the row inputs to the µC are the opposite of what the keyboard is (Model F→active high, Beamspring→active low) ... d'oh!

Getting used to typing on the Model F, it's nice having so many F-keys and a proper numpad, but still miss the sound and feel of the 3727 Beamspring with the solenoid firing >.<

All right, fresh boards. One for my PC-AT, one to go in the post to Murium for Kishsaver testing. All gone!
63752-0

Analogue (row sense) end:
63754-1

µC end:
63756-2
« Last Edit: Mon, 05 May 2014, 21:49:57 by xwhatsit »
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #22 on: Tue, 06 May 2014, 01:10:48 »
Now fitted inside my PC-AT (typing on it now, man I need to fix that heavy spacebar, it's ridiculous).

Holy balls, never ever want to desolder/solder one of those ribbon cables again. Need to find a better method for testing these when I start making them for other people. Who ever EVER thought through-hole technology was a good idea?! IBM had already used surface-mount in the 60s (with the Apollo landing guidance computer), why didn't they stick with a good thing!

Melted the ribbon cable a bit, hence the kapton tape (just in case):
63771-0

Close-up showing comparison with old controller, and pin-swapped ribbon cable connector for LEDs (they work by the way; quite amusing to tell the expansion header that it's to operate in "Beamspring Solenoid" mode and watch the Caps-Lock LED blink away for every keypress):
63773-1

Oh yeah and my current desk. All running off USB with ibm-capsense-usb controllers of some description (that's my new name for the project, can't call it "beamspring-usb-5251" anymore—maybe I should set up a combined thread once I hit v1.0). I didn't bring the other beamspring (5251) in from the next room, as my desk is rather full.
63775-2
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #23 on: Tue, 06 May 2014, 23:55:52 »
And here is the v0.6 source/schematics release (why 0.6? Because we already had five previous beamspring-only releases. Combined project now).

I will work on getting binaries when possible.
63899-0
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline poxeclipse

  • Posts: 171
  • Location: Toronto, Canada
  • Hit me with music ... yes, me friend
Re: Model F USB controller
« Reply #24 on: Thu, 08 May 2014, 18:13:15 »
Really impressive, life is beautiful. Thank you for this work. What is the ETA for the next batch ? I'm in for two.
« Last Edit: Thu, 08 May 2014, 18:30:03 by poxeclipse »

Offline Techno Trousers

  • Posts: 908
  • ʘ_ಠ
Re: Model F USB controller
« Reply #25 on: Thu, 08 May 2014, 20:46:06 »
Yes, me too. I think I'm going to want three, actually.

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #26 on: Thu, 08 May 2014, 21:47:03 »
And here is v0.6.1.

This fixes a reasonably major issue on Windows 7 64bit (I think?) which had major issues with the two keyboard descriptors (the fake padding of the boot-mode 6-key only interface was freaking it out and causing the NKRO descriptor to get sent STALLs).

There was also a major bug in the GUI util which prevented 8-row keyboards (Model Fs and Beamspring Displaywriters) from displaying their top four rows of scancodes on layers 1–3.

There was also a minor padding bug in the descriptor for the NKRO interface with the addition of the LEDs; neither Linux or Mac OS X cared, but it really annoyed Windows.

I've also got binaries compiled on Windows and Mac OS X, along with pre-compiled hex files for all the variants so far.

As always, use the old version of the util to put the keyboard into the bootloader first, then flash the keyboard. Afterwards, use the new version of the util to talk to it. Make sure you pick the right hex file to match your board type and revision!

You can download them all here: http://linode.cornall.co/ibm-capsense-usb/0.6.1/
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #27 on: Thu, 08 May 2014, 21:50:38 »
Really impressive, life is beautiful. Thank you for this work. What is the ETA for the next batch ? I'm in for two.
Yes, me too. I think I'm going to want three, actually.

Jebus.

Anybody else? I was only going to put in an order for another three. The biggest leadtime is the PCB, which can take 3–4 weeks to get to NZ sometimes.

What are your keyboards?
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline JPG

  • Posts: 1124
  • Location: Canada (Beloeil, near Montreal)
  • Model F is my new passion!
Re: Model F USB controller
« Reply #28 on: Thu, 08 May 2014, 22:00:46 »
If one day you have the chance to explain (not necessarily in too much details) the basics of how this controller works it would be awesome. I am curious about what are the basic differences with a matrix for cherry switches for example and mostly what are the biggest challenges in this controller.

But awesome work man!
IBM F122, IBM XT F X2, IBM AT F (all Soarer converted), Filco Camo TKL Browns

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #29 on: Thu, 08 May 2014, 22:44:21 »
Cheers JPG—there's a couple of posts (and pictures of scope traces) on my original beamspring controller thread. I'll link to a particular post: http://geekhack.org/index.php?topic=45097.msg942959#msg942959
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline Techno Trousers

  • Posts: 908
  • ʘ_ಠ
Re: Model F USB controller
« Reply #30 on: Thu, 08 May 2014, 22:52:57 »
I have 3 F122s and a Kishsaver. I already bought two Teensies for Soarer conversion of F122s, so I thought one of your controllers for each remaining type, plus one spare to hang onto for the future would be great.

That said, if you don't think it's quite ready for mass release, I can keep on waiting.

Thanks!

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #31 on: Fri, 09 May 2014, 00:14:19 »
It's ready for mass-release—the only thing I'm interested in changing is tweaks to mounting holes (which might be contingent on what Murium says about fitting it inside his Kishsaver), and maybe increasing the size of the ribbon cable holes to make it less painful to solder (a shame there's no 3.96mm-pitch 30-pin IDC connector out there!).

The rest of the things I'd want to add (macros, what else?) are in software, which can be upgraded whenever.

I might set up a new combined thread with all of my capsense projects in it, so I can see who wants what and order everything in one hit.
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline poxeclipse

  • Posts: 171
  • Location: Toronto, Canada
  • Hit me with music ... yes, me friend
Re: Model F USB controller
« Reply #32 on: Fri, 09 May 2014, 06:15:35 »
Really impressive, life is beautiful. Thank you for this work. What is the ETA for the next batch ? I'm in for two.
Yes, me too. I think I'm going to want three, actually.

Jebus.

Anybody else? I was only going to put in an order for another three. The biggest leadtime is the PCB, which can take 3–4 weeks to get to NZ sometimes.

What are your keyboards?

I need it for kishsaver and the 3178 writer. I know, you asked for pictures of the interior of 3178, I'll upload some this weekend.
For F122 I'm using Soarer converter. My daily driver is an unsaver 1387033 with Soarer.

Here are some pictures of the 3178.
« Last Edit: Sat, 10 May 2014, 12:08:14 by poxeclipse »

Offline Techno Trousers

  • Posts: 908
  • ʘ_ಠ
Re: Model F USB controller
« Reply #33 on: Fri, 09 May 2014, 07:21:55 »
Okay, I should wait for the hole placement finalization then.

What I'd suggest you do, once the holes are finalized, is create a thread in Group Buys. There you can summarize the choices and what they do, and have a sign up form for people  to use, with a deadline for sign ups. That way, you won't have to continuously place small orders. Maybe we can even take advantage of price breaks if enough people are interested at once.

You could even run multiple rounds if there's enough demand.

If you decide to go this way, I'd appreciate it if you could post a link to the GB in this thread, since I'm subscribed.

Thanks!

Offline CPTBadAss

  • Woke up like this
  • Posts: 14364
    • Tactile Zine
Re: Model F USB controller
« Reply #34 on: Fri, 09 May 2014, 07:30:16 »
I'd be interested in a controller for my 6019284. It's fine either way to me, whether its the DPH controller or this one. I just want that keyboard to work. As I said before, I'd be willing to run a GB if I get help since I've been busy lately.

Offline JPG

  • Posts: 1124
  • Location: Canada (Beloeil, near Montreal)
  • Model F is my new passion!
Re: Model F USB controller
« Reply #35 on: Fri, 09 May 2014, 09:23:14 »
I don't really need one right now since I can Soarer all my boards, but I would still be interested in trying one depending on the price, more for the fun of it :)


I have an XT I could use without crying if it got in a bad shape cause of my lack of skill lol.
IBM F122, IBM XT F X2, IBM AT F (all Soarer converted), Filco Camo TKL Browns

Offline Techno Trousers

  • Posts: 908
  • ʘ_ಠ
Re: Model F USB controller
« Reply #36 on: Fri, 09 May 2014, 10:16:17 »
I have an XT too, but I just can't stomach the layout for regular use. I'm waiting for the XTant project to go forward for that one!

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #37 on: Sun, 11 May 2014, 17:52:48 »
I need it for kishsaver and the 3178 writer. I know, you asked for pictures of the interior of 3178, I'll upload some this weekend.
For F122 I'm using Soarer converter. My daily driver is an unsaver 1387033 with Soarer.

Here are some pictures of the 3178.
Hey Pox, got your PM and checking out those photos.

Interestingly, the controller actually looks most similar to a Beamspring controller.

In some ways this doesn't surprise me; the actual key layout of the keyboard looks identical to my 3727 and many 3278 beamsprings. I note it even has a solenoid!

The real clue is the little silver square IBM-branded chip; I see it's at the right-hand-side of the board. This is the bit which does the analogue sensing of the rows. On the Model Fs it's normally at the left-hand side.

I know it's a bit of an ask, but do you own a multimeter? What I'm interested in working out is which pins on that ribbon connector are grounded and which aren't.

If you're up for it, all you need to do is set your multimeter to continuity mode (if it has it, otherwise set it to Resistance/Ohms and look for when the resistance drops right down to 0 ohms). Put one probe on one of those gold hex-head bolts holding the controller to the board. Make sure you've got good contact by checking continuity to the other hex-head bolt. Then, check against each pin of the 30-pin ribbon cable.

What I'm hoping is that it will look like a beamspring layout (23 columns and 4 rows, with a ground as the first pin and the pin between the columns and the rows), so you can use a beamspring controller. If this isn't the case, we might have to get a bit cleverer, maybe come up with a wiring harness, or maybe a new board entirely.

Sorry for the trouble! Very cool board though. I'd love to try a Model F fitted with a solenoid!
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline poxeclipse

  • Posts: 171
  • Location: Toronto, Canada
  • Hit me with music ... yes, me friend
Re: Model F USB controller
« Reply #38 on: Sun, 11 May 2014, 18:47:56 »
I need it for kishsaver and the 3178 writer. I know, you asked for pictures of the interior of 3178, I'll upload some this weekend.
For F122 I'm using Soarer converter. My daily driver is an unsaver 1387033 with Soarer.

Here are some pictures of the 3178.
Hey Pox, got your PM and checking out those photos.

Interestingly, the controller actually looks most similar to a Beamspring controller.

In some ways this doesn't surprise me; the actual key layout of the keyboard looks identical to my 3727 and many 3278 beamsprings. I note it even has a solenoid!

The real clue is the little silver square IBM-branded chip; I see it's at the right-hand-side of the board. This is the bit which does the analogue sensing of the rows. On the Model Fs it's normally at the left-hand side.

I know it's a bit of an ask, but do you own a multimeter? What I'm interested in working out is which pins on that ribbon connector are grounded and which aren't.

If you're up for it, all you need to do is set your multimeter to continuity mode (if it has it, otherwise set it to Resistance/Ohms and look for when the resistance drops right down to 0 ohms). Put one probe on one of those gold hex-head bolts holding the controller to the board. Make sure you've got good contact by checking continuity to the other hex-head bolt. Then, check against each pin of the 30-pin ribbon cable.

What I'm hoping is that it will look like a beamspring layout (23 columns and 4 rows, with a ground as the first pin and the pin between the columns and the rows), so you can use a beamspring controller. If this isn't the case, we might have to get a bit cleverer, maybe come up with a wiring harness, or maybe a new board entirely.

Sorry for the trouble! Very cool board though. I'd love to try a Model F fitted with a solenoid!


I got continuity for pins 9 and 22, counting left to right on the ribbon cable.

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #39 on: Sun, 11 May 2014, 18:50:53 »
9 and 22!?

Interrreeeeestting.

If you had continuity on 9 and 22, are you sure you didn't also have it on 5 and 26?

It's sounding a bit like a displaywriter now. What the! As before, neat keyboard.
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #40 on: Sun, 11 May 2014, 18:54:37 »
Actually, if it's not too much trouble, could you unscrew the controller and take a picture of the back side? Might be able to spot where some of the traces go.

Cheers!
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline poxeclipse

  • Posts: 171
  • Location: Toronto, Canada
  • Hit me with music ... yes, me friend
Re: Model F USB controller
« Reply #41 on: Sun, 11 May 2014, 19:24:17 »
Only 9 and 22. Which is a sort of symmetric, for 8 pins are to the left or right of them.
Cheers.
« Last Edit: Sun, 11 May 2014, 19:31:34 by poxeclipse »

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #42 on: Sun, 11 May 2014, 19:51:38 »
Well well. Very interesting.

So looks like a 12x8 matrix. You could definitely use a Model F controller, but it would probably require splitting the ribbon cable's plastic with a knife between pins  19 and 20 to bridge the extra ground pin the Model F controller has between the columns and the rows.

Alternatively a simple adaptor board could be designed which will allow a standard Model F controller to plug into it and convert the connections through.

If you're a real keen soldering nutjob you could do something similar to the green spaghetti pictures in this post: http://geekhack.org/index.php?topic=57103.msg1317776#msg1317776
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline poxeclipse

  • Posts: 171
  • Location: Toronto, Canada
  • Hit me with music ... yes, me friend
Re: Model F USB controller
« Reply #43 on: Sun, 11 May 2014, 20:10:11 »
Sounds good. I can solder, but I'm not an expert, especially in green spaghetti, lol. I guess I can do the bridge, if this would make it work.
Do I need to keep the solenoid ?
« Last Edit: Sun, 11 May 2014, 20:14:00 by poxeclipse »

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #44 on: Sun, 11 May 2014, 20:14:19 »
Would an adaptor board be a better idea then? It may come in useful in the future anyway, I see there's at least two similar keyboards on eBay right now: http://www.ebay.com/itm/IBM-6052101-3178-KEYBOARD-NEW-/141249299485?pt=PCA_Mice_Trackballs&hash=item20e31d441d and http://www.ebay.com/itm/IBM-3178-TERMINAL-PN-5894000-5640980-5640911-/370868280496?pt=COMP_EN_Servers&hash=item565978dcb0

It wouldn't be particularly expensive, the adaptor board, probably about US$10 or so.
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline poxeclipse

  • Posts: 171
  • Location: Toronto, Canada
  • Hit me with music ... yes, me friend
Re: Model F USB controller
« Reply #45 on: Sun, 11 May 2014, 20:48:00 »
Would an adaptor board be a better idea then? It may come in useful in the future anyway, I see there's at least two similar keyboards on eBay right now: http://www.ebay.com/itm/IBM-6052101-3178-KEYBOARD-NEW-/141249299485?pt=PCA_Mice_Trackballs&hash=item20e31d441d and http://www.ebay.com/itm/IBM-3178-TERMINAL-PN-5894000-5640980-5640911-/370868280496?pt=COMP_EN_Servers&hash=item565978dcb0

It wouldn't be particularly expensive, the adaptor board, probably about US$10 or so.

If you can make the adaptor board, would be great. Put it on my order, please.
This keyboard is brand new, and I bought it because it has the smallest bottom bezel of all model fs I know of. The layout is not the best, but I can handle it.
Thank you
« Last Edit: Sun, 11 May 2014, 21:23:36 by poxeclipse »

Offline dorkvader

  • Posts: 6288
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: Model F USB controller
« Reply #46 on: Sun, 11 May 2014, 21:10:51 »
that is interesting. My 3178 controller looks completely different.

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #47 on: Sun, 11 May 2014, 21:27:44 »
Did you ever take any pictures of it dorkvader?

I'd love to do something with that big blue switch on those boards. It's a shame it's attached to the original controller directly. It could be wired to the expansion port on the controller, but you'd have to first desolder it from the original controller and mount it somewhere.
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline xwhatsit

  • Thread Starter
  • Posts: 297
  • Location: NZ
Re: Model F USB controller
« Reply #48 on: Sun, 11 May 2014, 22:33:51 »
OK here's an adaptor board. I think US$10 should hold by the time the 3.96mm headers are added.

Top:


Bottom:
Beam spring IBM 5251 (7361073/7362149) & IBM 3727 (5641316) | Model F IBM 122-key terminal & IBM PC-AT 84-key | Model M Unicomp 122-key terminal | Cherry MX Blue Leopold Tenkeyless

Offline poxeclipse

  • Posts: 171
  • Location: Toronto, Canada
  • Hit me with music ... yes, me friend
Re: Model F USB controller
« Reply #49 on: Mon, 12 May 2014, 08:35:54 »
What about that solenoid ? I saw you have a accessory for it, that's why I ask. Do I need one for 3178 ?