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