geekhack
geekhack Community => Ergonomics => Topic started by: Me on Mon, 22 March 2021, 09:46:37
-
I have decided to make a split kb. I have no idea of any of the xtra parts that you would need to create a split kb(I am handwiring btw), so I came here to find out and also get some recommendations. Here is the layout that I currently am thinking about using, but I will take suggestions.
http://www.keyboard-layout-editor.com/#/gists/9d86179bad23b8cd5f583829da37af64
-
you can sift through this thread (https://geekhack.org/index.php?topic=103804.0), it's another handwired split keyboard i helped scarlet with.
you'll need
- diodes (https://keeb.io/collections/frontpage/products/1n4148-diodes) - one per switch
- wire - network cables are great, solid core wires that are easy to work with and shape roughly 24 gauge, but anything will do
- 2x controllers - promicros (https://keeb.io/collections/frontpage/products/pro-micro-5v-16mhz-arduino-compatible-atmega32u4), elite-c (https://keeb.io/collections/frontpage/products/elite-c-low-profile-version-usb-c-pro-micro-replacement-atmega32u4), postage board, etc...
- 2x trrs jacks (4 conductor) - 3.5mm 4 conductor (https://keeb.io/collections/frontpage/products/trrs-jack-3-5mm), or RJ11 4 conductor
- trrs cable 4 conductor - 4 conductor 3.5mm audio cable (https://keeb.io/collections/frontpage/products/trrs-cable) or some use phone (...land line) handset cables RJ11 connector
- 2x small tact switch for reset button (https://keeb.io/collections/frontpage/products/reset-pushbutton-switch) - not mandatory but can be helpful instead of shorting the reset pin to ground
used links to keeb.io as they have all the parts in one place, but you can order from wherever
if you are 3d printing the case, take a look at loligagger's promicro/trrs holder (https://geekhack.org/index.php?topic=88576.msg2836470#msg2836470) (designed for dactyl-manuforms but could be adjusted to fit your needs)
Some good handwiring articles:
https://geekhack.org/index.php?topic=87689.0
https://deskthority.net/viewtopic.php?t=1067
Firmware
Article https://matt3o.com/building-a-keyboard-firmware/
Qmk docs https://docs.qmk.fm/#/
https://github.com/qmk/qmk_firmware
https://caniusevia.com/
https://kbfirmware.com/
-
Thanks! Is there a way to do it with only one controller? Like maybe a cable connecting the two halves into one controller and then connecting to the computer?
-
Yes. But then you'll have all the wires for all the rows and the columns on the one half connecting the two halves. ...so like 13 or so connections instead of only 3 using serial over trrs.
-
Sorry, I don't really understand. What do you mean?
Yes. But then you'll have all the wires for all the rows and the columns on the one half connecting the two halves. ...so like 13 or so connections instead of only 3 using serial over trrs.
-
Edit: What's below is not valid anymore because the OP has change the layout ... :-þ
You have 30 keys on the left-hand-side. That would fit perfectly into a matrix of six columns and five rows if one key on the Shift-row (which has seven keys) would belong to the bottom row (which has five).
You would need 6+5=11 wires in the cable between the halves if you'd use only a single controller on the right-hand-side.
With two controllers, you would need four wires (I²C + power) or three wires (USART + power). A four-contact 3.5 mm plug ("TRRS") is common for I²C between halves of split keyboards, but only because it is small and because cables are common. It is actually not very reliable for digital signals: it is not hot-pluggable, often not shielded and there can be noise if you turn it.
The alternatives to having another controller is to use a:
* I/O expander. A simpler chip with GPIO lines and an I²C connection. Four wires. However, not much cheaper than a microcontroller these days.
* A shift register IC for strobing columns. Typically has 8 outputs. Needs 2 wires + power, but would only handle columns, so you would only win two wires (or three if you change the matrix to 8×4).
However, you should also consider how many GPIO pins you would need in total, and how easy it is to hand-wire it.
The common Pro Micro has only 18 GPIO pins.
The right-hand side would be easiest to wire as a matrix of 9×5, and with a single Pro Micro, the full matrix becomes (6+9)×5, which would require (6+9)+5 = 20 GPIO pins. If you'd assign two keys from the top to the bottom row on the right-hand-side, you could do 8×5, and (6+8)+5 =19 GPIO pins.
With two Pro Micros, the right-hand side would need only 9+5 GPIO pins for the matrix + 2 for I²C = 16 pins (leaving two GPIO pins that you could use for LEDs or a rotary encoder).
-
So basically you would need to wire up the right side, then route all the wires needed for the left side from the microcontroller through the cable connecting the 2 halves, and then wire up the left side with those. That would mean a lot more wires and hassle. But I still don't exactly understand what you would do with 2 controllers.
-
Also, is there any reason not to use 1 controller other than the xtra effort and wires?
-
using 2 controllers
- is neater, tidier, having just one thin cable between the two halves
- keeps the matrix more manageable
- be able to be used as just one half because they each have a controller (with the same programming) in each half.
- easier to wire with two controllers
using one controller
- much thicker cable between the two halves
- much larger connector to connect the two halves (if you use a connector)
- harder to wire with one controller
- even harder to wire if you go with a promicro or similar because of the number of i/o inputs available. like Findecanor was talking about. you could do it with one controller but your matrix would be confusing (not electrically wired the way the layout looks... a lot of moving keys & rows & columns around to get it into a matrix that would fit the promicro or similar)
- the other option IF using one controller is to use one with more i/o inputs to keep the matrix easier to wire & understand, like a teensy ++2.0 (https://www.pjrc.com/store/teensypp.html) (and only this one, the others on their store are not officially supported yet un QMK)
-
ok, so what would be an affordable option for a controller that you could easily buy 2 of?
-
promicros are usually dirt cheap and available at lots of places online.
keeb.io has them for 7.99/ea
i've seen packs of 2-10 promicros on amazon for less than that each. but if it was me, i'd try to order as many components from one place as possible to save on shipping.
-
allright, so promicros would be a good option here?
-
absolutely. they are probably the most used controller, especially on split boards.
keep us posted with progress and when you're ready, i can give you a diagram for the wiring, go over the firmware etc...
-
Also I had a cool idea for the connection cable between the halves. Basically, there is a button that when pressed, sucks the cable into one of the sides, rendering the keyboard not split, but you can press and hold another button to unlock the cable, allowing you to increase the distance between the halves. When you release the button, the cable locks. When you press the original button, a system(probably by tension) will pull the cable back into the side that has it. Is this feasible/done before?
-
you could probably use a retractable audio cable, something like this.
though we usually use 4 conductor connections (this is only 3)
[attach=1]
-
Allright, I'll see what i can find, thx!