Author Topic: Unorthodox Split Layout: Need help with wiring ideas  (Read 1005 times)

0 Members and 1 Guest are viewing this topic.

Offline noteveneric

  • Thread Starter
  • Posts: 12
  • If it ain't <=65%, it ain't worth your time.
Unorthodox Split Layout: Need help with wiring ideas
« on: Thu, 02 January 2020, 18:19:13 »
Hey guys, 
I decided recently that I wanted to build a keyboard that would be similar to a 65%, but have a detachable numrow in case I didn't want to use it. I mentioned it in a previous topic here: https://geekhack.org/index.php?topic=104012.msg2848154#msg2848154
In short, I wasn't sure how I could go about wiring. The layout is pictured below:

I assume I'll be using a Pro Micro for the "main" board, but I didn't know how I should go about wiring the numrow in order for it to be detachable. For clarity, I do not need the numrow to be usable when detached: it doesn't need to act like a separate macro stick pad, but more of a keyboard "extension" that I could use whenever I wanted by plugging it in (ie via TRRS, but this is what I'm trying to figure out). I know that it will most likely attach to the keyboard via magnets, but I'm more worried about the wiring and power, etc. If anyone can help with this, it would be greatly appreciated!

Offline nevin

  • Posts: 616
  • Location: US
Re: Unorthodox Split Layout: Need help with wiring ideas
« Reply #1 on: Thu, 02 January 2020, 22:53:42 »
definitely unorthodox, but do-able.

if i was going to do this project...
- i'd keep it simple, one controller and a connector to add the extra row (straight through wiring, not trrs or i2c), a 16 pin jtag connector would be perfect (15 columns, 1 row = 16 pins)
- in the firmware (and wiring) i'd put the top row last. that way it won't mess up the matrix/keymap when it's not plugged in
- case, actually putting it together.... laser cut acrylic or metal plates or FR4 (PCB) plates and standoffs, or if you're handy with 3d modeling, print a case. you might need a bit of separation between the detachable number row and the qwerty row to get enough material so it doesn't fall apart (space between switches is pretty small, then divide that in half... = flimsy/brittle) and or space for connector (depending on orientation).
- layout - think about putting a Fn (raise or lower) on either side of the spacebar, having them both on the same side would force you to use two hands for a key combo (like your nav. home, end, pgup, pgdn) when it could easily be done with the same hand.

send link to KLE layout
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline hanya

  • Posts: 104
  • Location: Japan
Re: Unorthodox Split Layout: Need help with wiring ideas
« Reply #2 on: Fri, 03 January 2020, 03:40:24 »
15 keys can be read by 16bits I2C-IO expander such as TCA9555 without key matrix.
Connect each switch between IO pin and GND. You need to read 2 bytes per read.
PFU HHKB JP, Sanwa MA-TB38 trackball

Offline noteveneric

  • Thread Starter
  • Posts: 12
  • If it ain't <=65%, it ain't worth your time.
Re: Unorthodox Split Layout: Need help with wiring ideas
« Reply #3 on: Fri, 03 January 2020, 12:30:18 »
KLE layout: http://www.keyboard-layout-editor.com/#/gists/a770aa3bf4b6645a833c0dd2a08435f8
- Upper legends = raise, lower legends = lower.
- Regarding raise/lower on the right side: I think I might leave it as is, because if I use the numrow more than I planned, I wouldn't actually need raise and lower. Just FN. They're there just in case I need them: I also went ahead and mapped Ins / Home etc. but I very rarely actually use them.
- The case will most likely be a brass sandwich case.

Also, I think I kinda understand what an I2C does. It acts as an extension of the microcontroller, correct? How could I wire it and still have it be disconnectable? I'm still not quite understanding that. I'm also relatively new with microcontrollers, so this is a pretty hefty challenge.

Offline theNestruo

  • Posts: 14
Re: Unorthodox Split Layout: Need help with wiring ideas
« Reply #4 on: Fri, 03 January 2020, 13:30:52 »
I agree with having raise/lower on both sides. With both on the same side, one of them is going to be too far from the thumb resting position. With one on each hand, think which hand do you prefer and put the most probable layer (e.g.: numbers or function keys) on that hand. I would make the detachable top row layer-symmetrical with the main top row (there are two repeated keys in your layout).

I would place "the same" key in multiple places for easier combos: for example, arrows in HJKL (with left thumb), navigation cluster in arrows (with left thumb) and in ASDZXC (with right thumb), etc.

Based on your layout, I would suggest something like:
Code: [Select]
[{t:"#000000\n\n#00589f\n#00773a",p:"R3",sm:"cherry",f:4,fa:[0,0,2]},"\n\nESC\n\n\n\n~`",{fa:[0,0,2,2]},"\n\nF1\nQ\n\n\n1!","\n\nF2\nW\n\n\n2@","\n\nF3\nE\n\n\n3#","\n\nF4\nR\n\n\n4$","\n\nF5\nT\n\n\n5%","\n\nF6\nY\n\n\n6^","\n\nF7\nU\n\n\n7&","\n\nF8\nI\n\n\n8*","\n\nF9\nO\n\n\n9(","\n\nF10\nP\n\n\n0)","\n\nF11\n[{\n\n\n-_","\n\nF12\n]}\n\n\n=+",{a:0,w:1.5},"\n\nPrtSc\nBackSpace\n\n1.5u\n\\|",{p:"R1",a:4},"\n\nIns\nPause\n\n\nDel"],
[{y:0.25,p:"R3"},"\n\n~`\n\n\n\nESC","\n\n1!\nF1\n\n\nQ","\n\n2@\nF2\n\n\nW","\n\n3#\nF3\n\n\nE","\n\n4$\nF4\n\n\nR","\n\n5%\nF5\n\n\nT","\n\n6^\nF6\n\n\nY","\n\n7&\nF7\n\n\nU","\n\n8*\nF8\n\n\nI","\n\n9(\nF9\n\n\nO","\n\n0)\nF10\n\n\nP","\n\n-_\nF11\n\n\n[{","\n\n=+\nF12\n\n\n]}",{a:0,fa:[0,0,2,2,0,0,3],w:1.5},"\n\n|\\\nPrtSc\n\n1.5u\nBackSpace",{p:"R1",a:4,fa:[0,0,2,2]},"\n\nDel\nIns\n\n\nVol+"],
[{t:"#000000",p:"R2",a:2,w:1.25},"Tab\n\n\n\n\n1.25u",{t:"#000000\n\n#00589f\n#00773a",a:4},"\n\n\nIns\n\n\nA","\n\n\nHome\n\n\nS","\n\n\nPgUp\n\n\nD",{t:"#000000",a:6,n:true},"F","G",{t:"#000000\n\n#00589f\n#00773a",a:4},"\n\nLeft\n\n\n\nH",{n:true},"\n\nDown\n\n\n\nJ","\n\nUp\n\n\n\nK","\n\nRight\n\n\n\nL",{t:"#000000",a:6},":;","\"'",{a:2,w:2.25},"Enter\n\n\n\n\n2.25u",{p:"R1",a:6},"Vol-"],
[{t:"#000000\n\n#00589f\n#00773a",a:0,w:1.75},"\n\n\nCaps\n\n1.75u\nLShift",{a:4},"\n\n\nDel\n\n\nZ","\n\n\nEnd\n\n\nX","\n\n\nPgDn\n\n\nC",{t:"#000000",a:6},"V","B","N","M","<,",">.","?/",{t:"#000000\n\n#00589f\n#00773a",a:0,w:1.75},"\n\nCaps\n\n\n1.75u\nRShift",{a:4},"\n\nPgUp\n\n\n\nUp",{t:"#000000",a:6},"Volx"],
[{a:2,w:1.25},"Ctrl\n\n\n\n\n1.25u",{w:1.25},"Alt\n\n\n\n\n1.25u",{t:"#00589f",w:1.25},"Raise\n\n\n\n\n1.25u",{t:"#000000",a:3,w:6.25},"\n\n\n\n\n6.25u",{t:"#00773a",a:2,w:1.25},"Lower\n\n\n\n\n1.25u",{t:"#000000\n\n#00589f\n#00773a",a:0,w:1.25},"\n\nMenu\n\n\n1.25u\nWin",{a:4},"\n\nHome\n\n\n\nLeft","\n\nPgDn\n\n\n\nDown","\n\nEnd\n\n\n\nRight"]

Offline noteveneric

  • Thread Starter
  • Posts: 12
  • If it ain't <=65%, it ain't worth your time.
Re: Unorthodox Split Layout: Need help with wiring ideas
« Reply #5 on: Fri, 03 January 2020, 13:36:59 »
Yeah, thanks! That's a nice revision. Because the layout hasn't changed in terms of key size or location, I could always try that via QMK and revert it to my original design if needed. However, I don't often use raise or lower, so you've gotta keep that in mind. Hopefully I'll reform and use them more in the future. That being said, I think putting |\ as raise-backspace is a good choice: that way it wouldn't interfere heavily with muscle memory (but I will have to work on that because of escape / tab).

Offline nevin

  • Posts: 616
  • Location: US
Re: Unorthodox Split Layout: Need help with wiring ideas
« Reply #6 on: Fri, 03 January 2020, 14:12:50 »
Quote
Also, I think I kinda understand what an I2C does. It acts as an extension of the microcontroller, correct? How could I wire it and still have it be disconnectable? I'm still not quite understanding that. I'm also relatively new with microcontrollers, so this is a pretty hefty challenge.

serial or i2c is how 2 controllers talk to each other. the TRRS is just a cable between the two controllers (or i/o expander)
TRRS can be any type of cable but most popular are 3.5mm (headphone cables with 4 conductors) or a RJ11 (4 conductor telephone cable). 3 conductors needed for serial, 4 conductors needed for i2c (as well as pull-up resistors for i2c if using 2 pro-micros)

i've never messed with i/o expanders, but they've been popular in the orthodox split keyboards.
i could be wrong, but i think you need other components (resistors, etc) to get the expander to function. (again, i could be wrong)

the JTAG connector isn't the sexiest way to do it but it's definitely the simplest, component & programming wise.
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline theNestruo

  • Posts: 14
Re: Unorthodox Split Layout: Need help with wiring ideas
« Reply #7 on: Fri, 03 January 2020, 14:19:46 »
Everyone uses the keyboard in a different way so personal tweaking is almost mandatory :)

Regarding muscle memory: swap Tab and Esc! Tab will be in the usual place, and Esc is rarely used (unless you are a vim user, and then Esc is better placed where CapsLock is).
Also: my mistake; but having Raise/Lower+Shift acting as CapsLock makes impossible to input symbols (shift+number) or function keys combos involving shift. But if you swap Tab and Esc, then Raise/Lower+Esc being CapsLock seems the next logical step...

Updated version (simplified top row(s), raise/lower back to the right side, restored F13, ...):
Code: [Select]
[{t:"#000000\n\n#00589f",p:"R3",sm:"cherry",f:4,fa:[0,0,2]},"\n\nEsc\n\n\n\n~`",{t:"#000000\n\n#00589f\n#00773a"},"\n\nF1\n\n\n\n1!","\n\nF2\n\n\n\n2@","\n\nF3\n\n\n\n3#","\n\nF4\n\n\n\n4$","\n\nF5\n\n\n\n5%","\n\nF6\n\n\n\n6^","\n\nF7\n\n\n\n7&","\n\nF8\n\n\n\n8*","\n\nF9\n\n\n\n9(","\n\nF10\n\n\n\n0)","\n\nF11\n\n\n\n-_","\n\nF12\n\n\n\n=+",{a:0,w:1.5},"\n\nF13\n\n\n1.5u\n|\\",{p:"R1",a:4},"\n\nIns\n\n\n\nDel"],
[{y:0.25,t:"#000000\n\n#00589f",p:"R3"},"\n\n~`\n\n\n\nTab",{t:"#000000\n\n#00589f\n#00773a",fa:[0,0,2,2]},"\n\n1!\nF1\n\n\nQ","\n\n2@\nF2\n\n\nW","\n\n3#\nF3\n\n\nE","\n\n4$\nF4\n\n\nR","\n\n5%\nF5\n\n\nT","\n\n6^\nF6\n\n\nY","\n\n7&\nF7\n\n\nU","\n\n8*\nF8\n\n\nI","\n\n9(\nF9\n\n\nO","\n\n0)\nF10\n\n\nP","\n\n-_\nF11\n\n\n[{","\n\n=+\nF12\n\n\n]}",{a:0,fa:[0,0,2,2,0,0,3],w:1.5},"\n\n|\\\nF13\n\n1.5u\nBackSpace",{p:"R1",a:4,fa:[0,0,2,2]},"\n\nDel\nIns\n\n\nVol+"],
[{p:"R2",a:0,w:1.25},"\n\nCapsLock\n\n\n1.25u\nEsc",{a:4},"\n\nIns\n\n\n\nA","\n\nHome\n\n\n\nS","\n\nPgUp\n\n\n\nD",{t:"#000000",a:6,n:true},"F","G",{t:"#000000\n\n#00589f",a:4},"\n\nLeft\n\n\n\nH",{n:true},"\n\nDown\n\n\n\nJ","\n\nUp\n\n\n\nK","\n\nRight\n\n\n\nL",{t:"#000000",a:6},":;","\"'",{a:2,w:2.25},"Enter\n\n\n\n\n2.25u",{t:"#000000\n\n#00589f\n#00773a",p:"R1",a:4},"\n\n\nPrtSc\n\n\nVol-"],
[{t:"#000000",a:2,w:1.75},"LShift\n\n\n\n\n1.75u",{t:"#000000\n\n#00589f\n#00773a",a:4},"\n\nDel\n\n\n\nZ","\n\nEnd\n\n\n\nX","\n\nPgDn\n\n\n\nC",{t:"#000000",a:6},"V","B","N","M","<,",">.","?/",{a:2,w:1.75},"RShift\n\n\n\n\n1.75u",{t:"#000000\n\n#00589f\n#00773a",a:4},"\n\n\nPgUp\n\n\nUp","\n\n\nPause\n\n\nVolx"],
[{t:"#000000",a:2,w:1.25},"Ctrl\n\n\n\n\n1.25u",{t:"#000000\n\n#00589f\n#00773a",a:0,w:1.25},"\n\n\nMenu\n\n1.25u\nWin",{t:"#000000",a:2,w:1.25},"Alt\n\n\n\n\n1.25u",{a:3,w:6.25},"\n\n\n\n\n6.25u",{t:"#00589f",a:2,w:1.25},"Raise\n\n\n\n\n1.25u",{t:"#00773a",w:1.25},"Lower\n\n\n\n\n1.25u",{t:"#000000\n\n#00589f\n#00773a",a:4},"\n\n\nHome\n\n\nLeft","\n\n\nPgDn\n\n\nDown","\n\n\nEnd\n\n\nRight"]

Offline noteveneric

  • Thread Starter
  • Posts: 12
  • If it ain't <=65%, it ain't worth your time.
Re: Unorthodox Split Layout: Need help with wiring ideas
« Reply #8 on: Fri, 03 January 2020, 15:18:51 »
I think I'll keep Esc. and Tab where they are: Part of it will be for aesthetic purposes, but the other part of me needs it there because I'm always used to hitting the top leftmost key on my keyborad for escape. Without the num row, I think that would feel off. But again, I would just need to break it in: that can be a post-build change if I wanted to :)

Offline psxndc

  • Posts: 187
Re: Unorthodox Split Layout: Need help with wiring ideas
« Reply #9 on: Sat, 04 January 2020, 11:14:12 »
May be worth reaching out to worldspawn for advice. His houndstooth keyboard is a split that uses just one microcontroller and a vanilla ribbon cable to connect the two halves. No need for TRRS/I2C or extra resistors.