diff options
Diffstat (limited to 'posts')
-rw-r--r-- | posts/lotus58.md | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/posts/lotus58.md b/posts/lotus58.md new file mode 100644 index 0000000..2a83872 --- /dev/null +++ b/posts/lotus58.md | |||
@@ -0,0 +1,135 @@ | |||
1 | Earlier this month, I decided that I would laugh at Indian | ||
2 | customs in the face by building a split-ergo mechanical | ||
3 | keyboard from scratch rather than purchasing a Moonlander. | ||
4 | |||
5 | ![The finished product](https://u.peppe.rs/i8k.jpg) | ||
6 | |||
7 | ## Sourcing the parts | ||
8 | |||
9 | If you, like me, live in India, you might find this section | ||
10 | useful. My approach to finding parts: | ||
11 | |||
12 | - Check reputed, local online stores | ||
13 | - Check physical hardware stores | ||
14 | - Import the part | ||
15 | |||
16 | ### PCBs | ||
17 | |||
18 | This was by far the hardest component to procure. | ||
19 | Fabrication services have certain _capabilities_. | ||
20 | Capabilities are the limitations of a fabrication service. | ||
21 | For example, a service may be capable of drilling holes no | ||
22 | smaller than 0.3mm in diameter. Most sites have a | ||
23 | verification process to check if their capabilities meet | ||
24 | your design's requirements. I tried a few local PCB | ||
25 | fabrication services: | ||
26 | |||
27 | - Lion PCB: Capabilities did not meet my requirements | ||
28 | - PCBPower: Capabilities did not meet my requirements | ||
29 | - Circuitwala: Capabilities did not meet my requirements | ||
30 | |||
31 | I settled for JLCPCB, a Chinese service. PCBs themselves | ||
32 | were 16 USD, shipping was another 35 USD, and customs was | ||
33 | another 3.5K INR (ouch). | ||
34 | |||
35 | |||
36 | ### Case material | ||
37 | |||
38 | I don't really have a case for the Lotus58, it is more of a | ||
39 | "plastic sandwich". I purchased acrylic plates from Robu. | ||
40 | Cheap, fast, solid, and customizable. I cannot recommend | ||
41 | Robu enough. A full set of plates (2 top plates and 2 bottom | ||
42 | plates) cost me about 500 INR. I also bought a pair of | ||
43 | laptop height raisers on Amazon to create a budget tenting | ||
44 | setup. | ||
45 | |||
46 | ### Electronics | ||
47 | |||
48 | You'll need a few rather specific electronic components such | ||
49 | as hotswap sockets and TRRS mounts, the rest are commonly | ||
50 | available: | ||
51 | |||
52 | - Hotswap sockets: StacksKB | ||
53 | - TRRS mounts (PJ 320A): StacksKB | ||
54 | - Diodes (1N4841): StacksKB | ||
55 | - M2 screws: StacksKB | ||
56 | - M2 spacers: ThinkRobotics | ||
57 | - Arduino Pro Micro: Robu | ||
58 | |||
59 | I skimped out on optional components such as OLEDs and | ||
60 | rotary encoders. | ||
61 | |||
62 | ### Switches and Keycaps | ||
63 | |||
64 | Arguably the most fun part of the build: | ||
65 | |||
66 | - Gateron Oil King switches: Rectangles | ||
67 | - DSA blanks: Meckeys | ||
68 | |||
69 | ## Building the keyboard | ||
70 | |||
71 | The the build is extremely straightforward. Through hole | ||
72 | components are easy to solder. Be wary of component | ||
73 | placement and orientation. Check thrice, solder once. Few | ||
74 | debugging tips: | ||
75 | |||
76 | - if a single key does not actuate, check the hotswap for | ||
77 | poor soldering (reflow the joint), and the switch pins for | ||
78 | deformation during installation | ||
79 | - if an entire column or row activates on a single | ||
80 | key-press, a connection has been shorted | ||
81 | - if only some of the keys on a given row actuate, a diode | ||
82 | has been soldered on the wrong way | ||
83 | |||
84 | ## The typing experience | ||
85 | |||
86 | I decidede to give QWERTY the boot and learn Colemak along | ||
87 | with the new keyboard. The first few weeks were terrible | ||
88 | because I could neither type QWERTY nor Colemak, but I got | ||
89 | the hang of it pretty quickly. Typing websites do help, but | ||
90 | it is best to simply use it in your daily workflow. No site | ||
91 | can help you get accustomed to the various things you use | ||
92 | your keyboard for such as switching windows or navigating | ||
93 | vim/tmux. | ||
94 | |||
95 | ### Colemak | ||
96 | |||
97 | Alt layouts such as Colemak are definitely worth it. I find | ||
98 | that Colemak reduces finger movement a lot, a good portion | ||
99 | of the keys on the left hand are the same as QWERTY, it | ||
100 | is fairly easy to pick up as well. | ||
101 | |||
102 | ### Vim | ||
103 | |||
104 | Using an alt layout means most programs with keyboard | ||
105 | shortcuts are not going to work as expected, `HJKL` on vim for | ||
106 | movements being one of them. I took the short route out by | ||
107 | creating a new layer with arrow keys on the home row: | ||
108 | |||
109 | ``` | ||
110 | default homerow: | ||
111 | H N E I | ||
112 | |||
113 | "nav" layer: | ||
114 | < v ^ > | ||
115 | ``` | ||
116 | |||
117 | The remaining commands in vim are largely mnemonics. | ||
118 | Navigating with home-row arrow keys also means that I can | ||
119 | use "HJKL" globally, to scroll a website, for example. | ||
120 | |||
121 | ### Cutting down to 34 keys | ||
122 | |||
123 | A couple months into my ergo journey, I realized that I | ||
124 | could get away by moving my fingers even lesser. I moved | ||
125 | modifiers such as `Super`, `Ctrl`, `Alt` and `Shift` to the | ||
126 | home-row as QMK Mod Taps. The rest of the keys are cleverly | ||
127 | placed in layers, not too much unlike the Miryoku layout. | ||
128 | Even for someone that writes Rust (a symbol-heavy grammar), | ||
129 | I find 34-keys to be sufficient. | ||
130 | |||
131 | ## Conclusion | ||
132 | |||
133 | I have been bitten by the ergomech bug. | ||
134 | |||
135 | ![The Lotus58 in action](https://u.peppe.rs/XM3.jpg) | ||