-
Notifications
You must be signed in to change notification settings - Fork 0
/
sunshine.html
229 lines (215 loc) · 23.6 KB
/
sunshine.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<!DOCTYPE html>
<html>
<!-- HIIIII PLEASE DON'T LOOK AT MY CODE ( 〃▽〃) IT'S EMBARASSING -->
<head>
<title>sunshine</title>
<style>
.gs {
filter: grayscale(100%);
}
kbd {
outline: white solid ;
outline-width: 1px;
}
body {
background: #000000;
color: #FFFFFF;
text-align:left;
}
footer {
text-align:center;
}
p {
margin-left: 30px;
margin-right: 30px;
margin-top: 10px;
margin-bottom: 10px;
}
h1 {
font-family:Times;
color:black;
background-color: white;
}
h2 {
font-family:Times;
color:black;
background-color: white;
}
table {
outline: white solid;
outline-width: 5px;
}
th {
text-align: center;
}
a:link {
color: rgb(0, 0, 0);
background-color: white;
text-decoration: none;
}
a:visited {
color: black;
background-color: white;
text-decoration: line-through solid currentcolor;
}
a:hover {
color: black;
background-color: white;
text-decoration: underline;
filter: drop-shadow(5px 2px 8px #ffffff);
}
a:active {
color: white;
background-color: white;
text-decoration: underline;
}
</style>
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=2">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=2">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=2">
<link rel="manifest" href="/site.webmanifest?v=2">
<link rel="mask-icon" href="/safari-pinned-tab.svg?v=2" color="#5bbad5">
<link rel="shortcut icon" href="/favicon.ico?v=2">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
</head>
<body>
<!-- #####################################Top of the page############################################ -->
<h1>Sunshine Experimental Keyboard</h1>
<img src="sunshine.png" alt="All is in your hands." height="300" >
<p>A unique and ergonomic column stagger split keyboard developed to comfortably utilize the entire hand by way of palm and wrist-rest keys. Also, up to four solenoids because I like loud noises (not pictured).</p>
<p>Feel free to use this table of contents to skim the sections you're interested in!</p>
<table>
<th>Table of Contents</th>
<tr><td><a href="#TLDR"> 00. Abstract  </a></td></tr>
<tr><td><a href="#Intro"> 0. Background  </a></td></tr>
<tr><td><a href="#Objectives"> 1. Objectives  </a></td></tr>
<tr><td><a href="#Design"> 2. Design Process  </a></td></tr>
<tr><td><a href="#CAD">  2.1. Cardboard Aided Design  </a></td></tr>
<tr><td><a href="#FinalFinalFinalV26FinalRealFinal-2">    2.1.1. Final Design  </a></td></tr>
<tr><td><a href="#PCB">  2.2. Designing the PCB  </a></td></tr>
<tr><td><a href="#Keymap">  2.3. My Keymap  </a></td></tr>
<tr><td><a href="#Discoveries"> 3. Discoveries  </a></td></tr>
<tr><td><a href="#Plans">  3.1. Epilogue / Plans for future versions  </a></td></tr>
<tr><td><a href="#Bye"> 4. The End  </a></td></tr>
</table>
<!-- #####################################Abstract########################################### -->
<h2 id="TLDR"> Abstract, a fancy term for T.L.D.R.</h2>
<p>Using the most scuffed, path-of-least-resistance strategies, I developed the best keyboard ever. That's right, the best. Until I make the second version, I mean. Following is an overly-detailed explanation of everything I did and why I did it. Don't worry, there's pictures.</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/kSz5plE_5Rc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<!-- ###########################################Background###################################################### -->
<h2 id="Intro"> Background</h2>
<p>I have always been interested in keyboards. When I was six, I meticulously dismantled my mother's non-functioning
<a href="http://herculesworkshop.com/images/d/4717/Hercules_Workshop_Smith_Corona_SD_300.jpg">Smith Corona SD 300</a> beyond any possible repair or reassembly. <br>
Sorry, Mom, I just wanted to know how it worked...<br>
As I grew up, I eventually learned about mechanical keyboards from the internet as we all do. Inevitably, I came across the hobby scene for it and bought a few kits to put together.
The <a href="https://github.com/kata0510/Lily58">Lily58</a> became my first ever split keyboard, and I loved it. After learning about circuits to discover how I had botched adding a rotary encoder I eventually moved on to Keeb.io's
<a href="https://keeb.io/collections/iris-split-ergonomic-keyboard">Iris</a> for double the amount of rotary encoders. <br>
Despite my immediate love for ergonomic keyboards, I had a few problems with the ones I was using. While I have big hands, my fingers are proportionally rather short. The uppermost of the four rows on most split boards felt like a big waste of space to me; and my pinkies could not reach the second uppermost row without moving my whole hand for them, let alone the second uppermost row in the outermost columns.<br>
<img src="lily.png" alt="Okay maybe not UNUSABLE, but they're not convenient" height="300" >
<br>This meant there were<b> twenty-two </b>unusable keys on the Lily, and twenty on the Iris, but only because it was missing two of those unusable keys in the first place.
Additionally, while I loved the knobs on the Iris, I missed having four thumb keys like on the Lily.
—Except that fourth thumb key on the Lily was somewhat uncomfortable to reach.—
<br>There needed to be a different way to lay them out. Although I saw keyboards like the <a href="https://www.ergodox.io/">Ergodox</a> had multiple rows of thumb keys, I didn't like the idea. It seemed inelegant and just as hard to reach. The <a href="https://github.com/splitkb/kyria">Kyria</a> seemed to have a better way of handling it.
<br>What's more, I needed some sort of wrist-rest to keep my wrists straight due to the height of the keyboards. I had seen some people solve this with weird squishy memory foam things, and others by switching from Cherry MX <a href="https://www.gboards.ca/">to Kailh Choc and having no case for the pcb.</a><br> I had a different idea, however, that would allow me to offset my hands exactly as much as I needed for key switches, without losing the 4mm travel distance afforded by MX switches. As I used keyboards, observed strategies employed by others, and read writeups about design rationales, I would begin to think about what an ideal keyboard might look like for me.
</p>
<!-- #########################################Objectives########################################### -->
<h2 id="Objectives"> Objectives and Considerations</h2>
<p>As my keyboard experiences deepened and widened and I came to learn what I liked and disliked, I started to adopt a few notions of what I wanted to consider in designing my keyboard.</p>
<h3>My "theories" on design.</h3>
<!-- <h4>It's okay to design for yourself.</h4>
<p>The first tenet of design for the Sunshine was that designing with other people in mind is undesirable.
Too often, designing for others, when making a product, or when making anything you assume others may use, ends up meaning constantly making concessions to options you like less out of a sense of courtesy, humbleness, or a misplaced sense of uniqueness. This is a fallacy, because the same memetic influences and events in your life that came to cause you to like that design are acting on plenty of other people in this day and age. <br>
There's assuredly people just like you who, if you tamed your design, would be missing out. <br> An exaggerated example of this would be someone who likes columnar staggered split keyboards opting for an orthagonal monoblock layout because they assume such a thing would be more appealing to someone who is expecting a keyboard to look like the archetypal typewriter skeumorph. A less drastic example would be including a useless number row on the assumption that people would find it annoying to use layers. That's not to say my design ended up particularly niche or inaccessible, it fits quite
boringly alongside every other split ergonomic keyboard minus a few quirks.</p> -->
<h4>Phalanges aren't the only useful part of the hand.</h4>
<img src="hand anatomy.png" alt="HIGHLY scientific diagram of the hand" height="300">
<p>In anatomy, the muscles at the end of the metatarsals form a landmark known as the 'ball' of the foot. There is a similar landmark on the hands at the end of the metacarpals that I will refer to as the ball of the hand because I don't know anything about anatomy and have no idea if there is a proper name for it. <br>If you know what it's called, please tell me.<br> Equally, I will refer to the landmark at the bottom of the palm containing the carpals as the heel. Thankfully this at least seems to be accepted terminology.<br>It is my belief that these two landmarks are underutilized when it comes to keyboards, especially when the position of the heel itself is highly important to achieving a straight wrist to avoid pain. With the appropriate layout, these can be used to grant <i>at least</i> four more keys.</p>
<h4>Keyboards need to assist easy access to combinations.</h4>
<!-- Include photo of thumb multi-track drifting -->
<p>This means designing to enable myself to avoid combinations involving the pinkies and allow for combos without moving my hands. The best way I can explain this is to break continuity in the story and explain it using the finished product.<br> The shortcut keys on the Sunshine are laid out in a very specific way. That is because sometime you need to press say, <br> <kbd>CTRL</kbd> + <kbd>ALT</kbd> + <kbd>Z</kbd> <br> On other layouts, you might use your pinky for <kbd>CTRL</kbd> your ring finger for <kbd>Z</kbd> and your thumb for <kbd>ALT</kbd>. On the Sunshine, you just put your thumb between <kbd>CTRL</kbd> and <kbd>ALT</kbd> and push both at once. Your hand doesn't have to move and your pinky can hit <kbd>Z</kbd>.<br>For the very common shortcuts that include <br> <kbd>CTRL</kbd> + <kbd>SHIFT</kbd> <br>The heel key takes care of that.</p>
<br>Thus, I had formed a laundry list of features I wanted, combining pet concepts and accomodations for myself.<br> These were now my objectives for my design:
<ul>
<li>More thumb keys. These are perfect for keys used often on their own or in combination with others like <kbd>SPACE</kbd> <kbd>CTRL</kbd> <kbd>ALT</kbd> or <kbd>GUI</kbd>.</li>
<li>Wrist-rest that also serves as an input.</li>
<li>Key that takes advantage of the outer "ball" of the hand at the fourth and fifth metacarpals.</li>
<li>Split, duh.</li>
<li>Columnar stagger that accommodates my hands, high stagger on the pinkies in particular.</li>
<li>A unique look that stands out from the myriad similar projects.</li>
<li>Low spring weight so I can try stenotyping. (This would have interesting pitfalls.)</li>
</ul>
<!-- ##########################################Design####################################### -->
<h2 id="Design"> Creating the perfect keyboard, the easy way</h2>
<p>Design began properly some time around March 11, 2022 after I returned to the United States from a long trip to Ireland. Though I had been experimenting with <a href="http://www.keyboard-layout-editor.com/#/">Keyboard Layout Editor</a> throughout my trip and prior, I had finally come up with a design (which borrowed heavily from the aforementioned SplitKB Kyria) I liked. It did away with some of the less accessible looking keys from the Kyria, and increased the stagger on the outermost columns. I added keys for the parts of the hand I thought deserved them, and that was that.</p>
<img src="type-22.png" alt="First design." height="300">
<p>I think this one is the best looking, but least usable. My palms are too long. Note the 1.25U keys in the outermost pinky columns. It's supposed to keep things looking nice</p>
<h3 id="CAD">Cardboard Aided Design</h3>
<p>In order to rapidly prototype my designs I decided to put the layout into cardboard. I used <a href="https://plate.keeb.io/">Keeb.io's plate generator</a> to generate a svg I could print as a paper template.<br> </p>
<img src="cardboard assisted design.png" alt="Synthesis of Computer Aided and Cardboard Aided Design, CACAD" height="200" class="gs">
<p><br>I would then take the template and tape it down to the cardboard and cut from each of the four corners inwards, supporting around the underside of the cut using a wheel of packing tape. By no means is this good enough for a permanent hand-wire build, but it works enough to test the layout.</p>
<img src="cardboard assisted design mas.png" alt="Cutting this sucked there were tons of tiny squares" height="200" class="gs">
<p>Once twenty two small squares were cut out, I could place the keys down. Here is where I realized the <kbd>BALL</kbd> key could not be such a strange size, and I would have to settle for a 2.75u key. This was for the best, as that let me fit the fourth thumb key.</p>
<img src="cardboard 3.png" alt="Cardboard sounds pretty good when you type on it, just saying." height="200" class="gs">
<p>But yeah, all that work just to find out it wasn't really that comfortable. I could have just measured my hand... No big loss, though, it was just cardboard and a few minutes.</p>
<h3 id="FinalFinalFinalV26FinalRealFinal-2">Finalizing the Design, or why I have hundreds of 13.97mm squares of cardboard.</h3>
<p>Long story short, I went through a lot of different iterations on cardboard. Most important to note is that I was attempting to try to move the <kbd>HEEL</kbd> bar around in really small adjustments and then cut out new boards every time.<br> I would print them out, cut them out, and bring them to my mom to test if it was comfy every time. This started to add up in how much time it took. This design pictured here shows the original attempt at a method for pressing <kbd>CTRL</kbd> and <kbd>ALT</kbd> at the same time.</p>
<img src="type-22 (3).png" alt="Moved the bar further" height="100" >
<p> <br> I figured out, thankfully, I could just cut off the bar and move it to where it was comfy and then measure with my calipers where it ended up.<br></p>
<img src="cardboard 4.png" alt="" height="200" class="gs">
<p><br>Eventually, I was happy with the design and the positioning of the thumb cluster and the <kbd>HEEL</kbd> bar.<br></p>
<img src="very last.png" alt="" height="200" >
<p><br>I would go on to export a dxf from keeb.io's plate generator and import it into fusion, then cut it out on my mill. In cardboard.<br></p>
<img src="cardboard 5.png" alt="" height="200" class="gs">
<p><br>I attempted to leave an onionskin, since I didn't have a wasteboard underneath and on the first hole I accidentially milled into the bed. Which meant cutting out more squares by hand.<br>
I was happy with that, and went on to cut two plates out of polycarbonate, then came designing the pcb.
<h3 id="PCB">Adventures in PCB design.</h3>
<p>Prior to the Sunshine, I had designed only one PCB ever before. While I had a strip of a few RP2040s, I wanted the ability to use <a href="QMK.fm">QMK</a> because I had experience with it and at the time there wasn't support for the 2040. I instead used an Elite-C because I wanted the ATMega32u4, and those are currently either stupidly expensive or out of stock everywhere.<br>After watching a very convincing video by <a href="https://www.youtube.com/watch?v=euJgtLcWWyo">Mitxela on curved traces</a> I resolved to abandon the 45 degree defaults in KiCad. <br>The PCBs, unlike most well-designed split keyboards, are not reversible because I wanted a certain look on the front and rear.<br> Here are some carefully curated photos that make my pcbs look really good and slightly out of focus. In full color, ruining my theme for this page.<br></p>
<img src="pcb0.png" alt="ALL IS IN YOUR HANDS. Get it? Literally in your hands..." height="200" >
<p><br>Really more like under your hands.<br></p>
<img src="pcb4.png" alt="" height="300" >
<p><br>The place where all the big components go, the Elite-C, the solenoid circuit, TRRS jacks, and reset button.<br></p>
<img src="pcb2.png" alt="" height="200" >
<p><br>PRO-TIP: This silkscreen decal excuses my design from all shortcomings.<br></p>
<img src="pcb3.png" alt="" height="200" >
<p><br>Back left side.<br></p>
<img src="pcb5.png" alt="" height="200" >
<p><br>I really like how the key matrix came out.<br></p>
<img src="pcb6.png" alt="" height="200" >
<p><br>A friendly face to keep me company while soldering.<br></p>
<p>I won't be posting the PCB files themselves, not until the second version. I'm very proud but simultaneously self-conscious. I hope you like the photos.</p>
<!-- ##########################################Keymap############################################ -->
<h3 id="Keymap"> My Keymap, and other personal adjustments</h3>
<!-- <p>I won't bore you with another sanctimonious over-explanatory rant about the superiority and unassailable holiness of Colemak-DH over QWERTY. I think that's entirely unnecessary. In an incredibly interesting way, QWERTY+horizontal stagger has been self-optimized by the way most people have naturally begun using it. Despite the typewriter skeuomorph being such an unergonomic design, users largely manage to avoid pitfalls of the design it by adapting a typing style that does not respect official textbook typing. Notice how in world record wpm videos typists' hands gravitate to specific areas and do not really rest in the homerow at all. The movement is not in their fingers but rather in their elbows. Am I saying that QWERTY belongs on monoblock keyboards? No, it doesn't really belong anywhere, but it's totally inoffensive. However I do not think QWERTY lends itself at all to <i>any</i> physical layout other than perhaps the typewriter skeuomorph. And then only barely. My issue is when it's used on split keyboards. I won't lie, my heart breaks when I see ergonomic keyboards using QWERTY keymaps. What was the point of all the effort of assembly and design?</p> -->
<p>I'll skip the details about assembly, they're boring, it was easy. (Apart from arduously lubing switches and springs...) After it was assembled and sitting on my desk the Sunshine was everything I could have hoped. I set up VIAL and flashed the Elite-Cs with my keymap. My keymap is pretty simple, it's really easier to show it than to talk about it. Colemak-DH and some layers, nothing crazy. Most important notes are that I felt comfortable leaving keycodes intended for normie keyboards like <kbd>=+</kbd> instead of separating them because of how easy it was to add <kbd>SHIFT</kbd> to any combination. The main personal adjustment I want to talk about is spring weight. My alphanumerics are all 25 gram, which is very light. 2U keys need to be heavier but I'm putting off desoldering them and making due. That's why my spacebar is using a 1U key. The <kbd>HEEL</kbd> bars, however are using awesomely heavy 650 gram springs. This makes them exceedingly comfortable as wrist-rests, but simultaneously possible to press down when needed. YMMV, not all wrists weigh the same. If I wasn't using heavy springs I would invert things in firmware so SHIFT would activate when the bars are no longer depressed. <br>
Oh and I never use that second alt key. If you have ideas on what I should put instead, hmu pls.
</p>
<img src="keymap1.png" alt="" height="300" >
<img src="keymap2.png" alt="" height="300" >
<img src="keymap3.png" alt="" height="300" >
<img src="keymap4.png" alt="" height="300" >
<h2 id="Discoveries"> The things I found out along the way</h2>
<p>Just as I discovered new likes and dislikes through experiencing and researching previous keyboards, using the Sunshine has lead me to learn new things too. These include:</p>
<ul>
<li>Going between pointing tools and the right side of the keyboard can make combinations harder.</li>
<li>My pinkies STILL have a hard time reaching the highest row and the outermost columns. (Though not AS hard.)</li>
<li>I miss the convenience of rotary encoders.</li>
<li>Came across this <a href="https://shop.keyboard.io/pages/model100">keyboard</a> by total chance. It has a thenar eminence key, could be a really cool input to add to the next Sunshine. Would require a big rework of the overall design but it could be done.</li>
<li>The <kbd>BALL</kbd> key needs to be taller to reach the fourth and fifth metacarpals.</li>
</ul>
<img src="cardboard 6.png" alt="Kind of tempted to do this with hot glue..." height="200" class="gs">
<p><br>My attempt during cardboard prototyping to rectify the height issue. Impeccable elegance, of course.</p>
<h2 id="Plans"> My plans for the next version.</h2>
<h3>Adjusted and optimized layout</h3>
<p>I think I will need to adjust the staggers again and go far more drastic. I may also investigate splay. While this might require a whole second round of cardboard prototyping, I have another method I'm eager to try. You'll hear about that next time. While the Kyria-esque layout serves me well, I think I want more stagger.</p>
<h3>Feature creep</h3>
<p>I want to add rotary encoders to the next build, at least one. They make pausing and playing media ultra convenient and volume adjust is super welcome too. However, there's more convenience to be had. For one, I love Guilty Gear, and sometimes I actually play Strive instead of listening to the albums while doing other things. I think a small 8-directional switch could be really nice to add if it could fit nicely. I doubt it would replace my fight stick, but it would still be really sweet. That aside, I need a pointing device of some sort, which an 8-directional switch is not suited for. An <a href="https://atulloh.github.io/oddball/">Oddball</a>-esque arrangement would be really nice.</p>
<h3>Production-ready, professional looking design</h3>
<p>I want to be able to release plans for the second version gasket mounted in a case (maybe even sell it 🤔), I think a new version would benefit from the <kbd>HEEL</kbd> bars having a separate PCB, as there is massive wasted area on the PCB as it stands. What's more, I want to use the RP2040 on-board instead of using something like the Elite-C. There are obvious benefits to this, cost being one of them, but I want to do it because it's just more elegant. I also want to find a better way for handling the mosfets and capacitors for the solenoid circuit. They take up a <i>lot</i> of space. Lastly, I want to have cute full-board artwork and better routed traces. I had a lot of cool ideas based on my pothos plant I never implemented and I'd like to give those another go.</p>
<h2 id="Bye">Until next time!</h2>
<p>I hope you enjoyed hearing about the keyboard I made. Sorry if my writing is a bit stiff or awkward. I haven't read a book since last year. If you want to reach out to me, I'm on github at <a href="https://github.com/pelmeniboiler">pelmeniboiler</a>, discord at pelmeniboiler#8372, reddit at <a href="https://old.reddit.com/u/pelmeniboiler">/u/pelmeniboiler</a> and twitter at <a href="https://twitter.com/pelmeniboiler">@pelmeniboiler</a>. <br></p>
</body>
<footer>
<p><a href="index.html"> Return to main page. </a></p>
<img src="coa.png" alt="All is in your hands." height="100" >
</footer>
</html>