Created by a human, with a brain badgeA badge with a character next to the text "Web 14," indicating that the site may contain slightly offensive materialDo What The Fuck You Want To Public License badgeD D Race Network badgemi toki e Toki Ponamade with MY OWN TWO PAWS badgeNo cookies badgeNo tracking or analytics badgeMade with server-side scripting badgeHosted on home internet badge


elephant42 choc hotswap rewire

git: https://isaacelenbaas.com/git/elephant42.git
tar: https://isaacelenbaas.com/git/elephant42.tar.gz


My fingers other than my pinkies are much longer than my pinkies. After trying a few keyboard designs I found illness072's elephant42, which fits my hands perfectly. I wanted it even more low-profile, so I did a from-scratch choc v1 hotswap wiring which somehow, despite my lack of any EE or breadboard experience, worked. Keyboards aren't complicated, but I'm still astounded.

A picture of two halves of a split keyboard. Each half resembles an elephant's head viewed from the side if the trunk were curled back. They are exposed PCBs with keyswitches, a knob, a pro-micro-esque board, TRRS jack, and reset button.

The choc v1 keycap situation is pretty bad, so I didn't order any at first to see if it would work well enough without any - as you can see, they have a larger profile than most keyswitches. The elephant42 fits my hands perfectly, so it did, and I have been using it like that since 2022.

I was able to hide nearly all of the wiring on the back side, and I quite enjoy the couple of traces that are visible on the front. I'm really happy with how this turned out; I think this is my endgame keyboard. JLCPCB's five-board minimum also meant I had enough boards to make two for home, one for work, give my parents one to put on the wall, and still have a spare.
illness072 had starred this repository when it was on GitHub which felt great - thank you for the great design, illness072!

If you are constructing this board, note that the wiring for the right side is different. I flipped things while illness072 used the same pinout for both sides. The elephant42/keyboard.json will need this added under "split":
"matrix_pins": {
"right": {
"cols": ["D1", "D0", "D4", "C6", "D7", "E6"],
"rows": ["F6", "F7", "B1", "B3"]
}
},

If using encoders, add this at the root:
"encoder": {
"rotary": [
{ "pin_a": "B2", "pin_b": "B6" }
]
},

and this under "split":
"encoder": {
"right": {
"rotary": [
{ "pin_a": "B5", "pin_b": "B4" }
]
}
}


I use Auto Shift and one symbol layer. Though the concepts were thought up by others, I rewrote Auto Shift and did most of the implementation for Retro Shift, custom auto-shifts, and making modifiers auto-shiftable. I do not feel pressured for space outside of games with lots of keybinds.