Author Topic: Model M hacking for programmability  (Read 2039 times)

0 Members and 1 Guest are viewing this topic.

Offline blastoid

  • Thread Starter
  • Posts: 143
Model M hacking for programmability
« on: Tue, 10 March 2015, 12:55:03 »
What would be needed to hack full programmability into a Model M? Would it even be possible? I'm assuming one would need something like a teensy or mchck board?

Someone has probably done this before, but my searching came up empty.

Offline SpAmRaY

  • NOT a Moderator
  • * Certified Spammer
  • Posts: 14667
  • Location: ¯\(°_o)/¯
  • because reasons.......
Re: Model M hacking for programmability
« Reply #1 on: Tue, 10 March 2015, 12:56:01 »
you can build a soarer converter with a teensy

Offline blastoid

  • Thread Starter
  • Posts: 143
Re: Model M hacking for programmability
« Reply #2 on: Tue, 10 March 2015, 13:19:16 »
you can build a soarer converter with a teensy
That's cool and all, but it looks like it's mainly just a USB converter. I was actually thinking of replacing the existing PCB with a fully programmable one. Unless there could be an inline programmable. Like, if I want my W key to be a 3rd-level Fn for macros... that sort of programmability. I don't imagine that could be done on an inline converter.

Offline vivalarevolución

  • Posts: 2146
  • Location: Naptown, Indiana, USA
  • Keep it real b/c any other way is too stressful
Re: Model M hacking for programmability
« Reply #3 on: Tue, 10 March 2015, 13:42:26 »
Wish I had some gif or quote for this space, but I got nothing

Offline blastoid

  • Thread Starter
  • Posts: 143

Offline E TwentyNine

  • Posts: 884
    • Some of My Keyboards
Re: Model M hacking for programmability
« Reply #5 on: Tue, 10 March 2015, 13:57:31 »
you can build a soarer converter with a teensy
That's cool and all, but it looks like it's mainly just a USB converter. I was actually thinking of replacing the existing PCB with a fully programmable one. Unless there could be an inline programmable. Like, if I want my W key to be a 3rd-level Fn for macros... that sort of programmability. I don't imagine that could be done on an inline converter.

Sure it could.  I don't know if Soarer's code could do it (don't think it does locking layers) but there have been others written that could, like Hasu's.

https://geekhack.org/index.php?topic=14618.0
Daily driver: SSK or Tenkeyless IBM AT
1984 Model M Industrial Prototype ⌨ 1992 Black Oval Industrial SSK ⌨ 1982 5251 Beam Spring ⌨ 89 Key "SSK" ⌨ M13 triplets

Offline Jotokun

  • Posts: 56
Re: Model M hacking for programmability
« Reply #6 on: Tue, 10 March 2015, 14:28:06 »
you can build a soarer converter with a teensy
That's cool and all, but it looks like it's mainly just a USB converter. I was actually thinking of replacing the existing PCB with a fully programmable one. Unless there could be an inline programmable. Like, if I want my W key to be a 3rd-level Fn for macros... that sort of programmability. I don't imagine that could be done on an inline converter.

Sure it could.  I don't know if Soarer's code could do it (don't think it does locking layers) but there have been others written that could, like Hasu's.

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

It is capable of locking layers. I've got the one in my M set up to swap Ctrl and Caps lock, and toggle hjkl arrow movement on certain key combinations.
85 IBM Model F "120" ANSI-Modded | 86 IBM Model M | Cherry G84-4100 | TG3 Data911 (MX Blacks) | 90 Apple Extended II (Linear modded Cream ALPS) | 95 Apple Extended II (Dampened White ALPS)

Offline E TwentyNine

  • Posts: 884
    • Some of My Keyboards
Re: Model M hacking for programmability
« Reply #7 on: Tue, 10 March 2015, 14:48:16 »
It is capable of locking layers. I've got the one in my M set up to swap Ctrl and Caps lock, and toggle hjkl arrow movement on certain key combinations.

Thanks, don't recall that being a function last time I really dug into it.

You have a sample .sc that will toggle a locking layer?  I don't remember seeing it in the docs and when I tried I was only able to get it to be a momentary activation.
« Last Edit: Tue, 10 March 2015, 14:51:10 by E TwentyNine »
Daily driver: SSK or Tenkeyless IBM AT
1984 Model M Industrial Prototype ⌨ 1992 Black Oval Industrial SSK ⌨ 1982 5251 Beam Spring ⌨ 89 Key "SSK" ⌨ M13 triplets

Offline Jotokun

  • Posts: 56
Re: Model M hacking for programmability
« Reply #8 on: Tue, 10 March 2015, 15:24:29 »
It is capable of locking layers. I've got the one in my M set up to swap Ctrl and Caps lock, and toggle hjkl arrow movement on certain key combinations.

Thanks, don't recall that being a function last time I really dug into it.

You have a sample .sc that will toggle a locking layer?  I don't remember seeing it in the docs and when I tried I was only able to get it to be a momentary activation.

Sure. With this setup, right Ctrl is an Fn key, FN + Ctrl or FN + Caps will swap the caps, FN + Space will remap hjkl.

Main .sc:
Code: [Select]
#Keyboard config for 1986 Terminal Silver Label Model M

ifselect 1
include 1986silver_swapCapsCtrl.sc

ifselect 3
include 1986silver_vimnav.sc

ifselect any

layerblock
FN1 2
endblock

#fix incorrect keys
remapblock
#Top row section
F13 ESC
F23 PRINTSCREEN
F24 SCROLL_LOCK
LANG_4 PAUSE

#Numpad section
ESC NUM_LOCK
NUM_LOCK PAD_SLASH
SCROLL_LOCK PAD_ASTERIX
EXTRA_SYSRQ PAD_MINUS
PAD_ASTERIX PAD_MINUS #Extra numpad key
PAD_MINUS PAD_PLUS
PAD_PLUS PAD_ENTER

LCTRL LGUI
RCTRL FN1

endblock

remapblock
layer 2 #Key bindings are as if above remap doesn't exist

F23 MEDIA_MUTE #PRINTSCREEN
F24 MEDIA_VOLUME_DOWN #SCROLL_LOCK
LANG_4 MEDIA_VOLUME_UP #PAUSE

F13 SYSTEM_SLEEP #ESC

RALT RALT #LGUI
ENTER RCTRL

H LEFT
J DOWN
K UP
L RIGHT

LSHIFT CAPS_LOCK

CAPS_LOCK SELECT_1
LCTRL SELECT_1

SPACE SELECT_3

endblock

caps lock sc:
Code: [Select]
remapblock
LCTRL CAPS_LOCK
CAPS_LOCK LCTRL
endblock

vim sc:
Code: [Select]
remapblock

I SELECT_3

H LEFT
J DOWN
K UP
L RIGHT

1 F1
2 F2
3 F3
4 F4
5 F5
6 F6
7 F7
8 F8
9 F9
0 F10
MINUS F11
EQUAL F12

BACK_QUOTE ESC
endblock
85 IBM Model F "120" ANSI-Modded | 86 IBM Model M | Cherry G84-4100 | TG3 Data911 (MX Blacks) | 90 Apple Extended II (Linear modded Cream ALPS) | 95 Apple Extended II (Dampened White ALPS)

Offline E TwentyNine

  • Posts: 884
    • Some of My Keyboards
Re: Model M hacking for programmability
« Reply #9 on: Tue, 10 March 2015, 15:40:27 »
It is capable of locking layers. I've got the one in my M set up to swap Ctrl and Caps lock, and toggle hjkl arrow movement on certain key combinations.

Thanks, don't recall that being a function last time I really dug into it.

You have a sample .sc that will toggle a locking layer?  I don't remember seeing it in the docs and when I tried I was only able to get it to be a momentary activation.

Sure. With this setup, right Ctrl is an Fn key, FN + Ctrl or FN + Caps will swap the caps, FN + Space will remap hjkl.

Don't know how I missed the SELECT_n properties in the config docs, I'm not big on layering but like to know what the code can do...

Thanks.
« Last Edit: Tue, 10 March 2015, 15:42:15 by E TwentyNine »
Daily driver: SSK or Tenkeyless IBM AT
1984 Model M Industrial Prototype ⌨ 1992 Black Oval Industrial SSK ⌨ 1982 5251 Beam Spring ⌨ 89 Key "SSK" ⌨ M13 triplets