https://sungo.io/sungo.io2024-03-24T00:00:00Zsungohttps://sungo.io/posts/2024/03/keyboards/sungoKeyboards2024-03-24T00:00:00Z2024-03-24T00:00:00Z
<p>Been a while since I talked about keyboards, even on my various social networks.
Thought maybe I’d prattle a bit about where I am with my keyboards and my
thoughts on the current state of things. Who am I? Why should you care? You
shouldn’t. Go checkout out some cat vids or something on
<a href="http://tiktok.com">TikTok</a>.</p>
<hr />
<p>Where am I with my keyboarding hobby? I guess… nowhere. It’s kind of come to a
hault. This is not for lack of interest, though. Helping people stop hurting
from keyboard use is still very important to me. However, I’ve sort of run out
of stuff to build. I have a cabinet full of builds of interesting keyboards and
I’ve not found remaining ones I can just buy. There are lots out there that
exist as gerbers which I could order but I’ve not felt great about ordering
five or ten of them, per MOQ, that’ll just fill a drawer. Also, I’m not finding
boards I think are interesting. There are only so many ways to put together
keys and maybe I’ve run that well dry, for myself.</p>
<p>So, I’m not building keyboards much. Doesn’t help I’ve had some health issues
that have kept me out of the studio.</p>
<hr />
<p>Where am I with my keyboarding in general? “Stalled” isn’t the right word. Maybe
just “happy with my choices”. When I’m at my desk, my daily driver for
non-coding work is a <a href="/keyboards/corne">corne</a> and, typically, <a href="https://git.sr.ht/~sungo/ish">my own
variant</a>.</p>
<p>But I spend a lot of time on my laptop, wandering the house, far away from my
desk. Particularly this year when I was (still am) unemployed a lot and sick a
lot, I’m often crashed out on the couch with my laptop. The custom keyboards
just don’t come into play all that much right now.</p>
<p>Which leads me to my work/coding daily driver. That’s either a
<a href="/keyboards/lily58">lily58</a> or an <a href="/keyboards/iris">iris</a>. Due to being on a
laptop a lot, I have a really hard time shaking off the need for a first layer
number row. Hitting a layer key to access the number row, particularly symbols,
is too much cognitive load at this point. I wish it were otherwise, but it’s
not, so coding/work is done on these boards with a number row. To be honest,
even sticking the right hand symbols on a layer is somewhat of a challenge. I’ve
been pondering a design for basically a split 60% where the core keys match a
corne stagger. But I’m not there quite yet.</p>
<hr />
<p>Thoughts on the hobby of keyboarding in general? In the big general sense, I
think the relatively hugely popular custom keyboarding hobby was born out of
pandemic lockdown. Tech folks were working from home, often for the first time,
went looking for a good keyboard and fell down the rabbit hole. With lots of
extra alone time, since we couldn’t go out much, there was lots of extra time to
play around with keyboards.</p>
<p>Also, a lot of folks with spare money fell down this rabbit hole which led to
lots of group buys and color ways and new switch types and just an explosion of
stuff. And lots of folks had extra spare money from not going out to events or
food or whatever else folks spent their money on when not legally ordered to
stay home.</p>
<p>But then that lifted and then we found out that most of the group buys were
scams or failures and then some folks realized that buying the same key profile
over and over again in different colors at $200 a pop was unsustainable. The
bottom fell out. In the last year, a lot of the smaller keyboard vendors have
folded. Folks aren’t that interested in group buys anymore. Folks are building
less of “that same 60% that everyone else has but mine looks like spider man”.</p>
<p>“Market contraction” is the late stage capitalism term.</p>
<p>Further, a lot of people found their forever board. I say “end game is a
conspiracy/myth” a lot but it is a real thing. It is totally possible to find a
keyboard in the right form factor, with switches that work well for you, in
colors you like, and just, you know, stop. Keep using that board. Maybe buy some
extra bits or build an extra board in case of problems. But then be just done.</p>
<p>So the hobby has contracted and faded a bit for great reasons.</p>
<p>The “ouch my wrists hurt wtf even is this keyboard” crowd is still out there and
we’re still under-served. The contraction of the larger hobby will make that
worse. Having a billion options made it much more likely to find something that
hurt less while still being aesthetically great for us. And now? I don’t know.</p>
<hr />
<p>Did I ever think about selling keyboards? I did. I still want to. I specifically
want to serve the under-served “ouch my wrists hurt” crowd. I still have the
dream of a little watch-maker-style shop that has “weird” keyboards with caps
and switches for folks to try, to help folks find an accessible board for
reasonable prices without buying a billion types to try.</p>
<p>But I had to be real with myself. My assumed ADHD means it’s unlikely I can make
a business of that type work. I struggle to remember house chores, let alone
shipping stuff to people on a deadline. I could maybe, when I’m healthier, be
talked into building a board for a friend, particularly if they already had
switches and caps and just wanted the pcb and maybe a 3d print case. But that’s
about it.</p>
<p>Also, I decided I didn’t want to add on taxes and business stuff onto something
I find fun. I feel like that’d ruin it. But if I didn’t have to worry about any
of that, I’d probably still jump on the opportunity to build keyboards for folks
and help folks find tech that makes them hurt less or that helps them.</p>
<hr />
<p>So where am I? In short, I have keyboards I like in a contracting hobby space
that I’ve largely been too unhealthy to participate in much. I’m hoping that
will change. I’m hoping to build my own lily58 variant and maybe finish up a new
version of the ish. I think I’d really like to participate more with the “ouch
my wrists hurt” and accessibility folks. But that’s a ways down the road. Until
then… I guess we’ll see.</p>
https://sungo.io/posts/2024/03/emacs-gopls/sungoEmacs + gopls = 100% cpu2024-03-17T00:00:00Z2024-03-17T00:00:00Z
<p>I’m a go developer and a while back I tried to switch from neovim to doom emacs.
As is my way, I tried to use lsp and gopls. Lo and behold, gopls started chewing
up an entire core and emacs was trying its best. emacs didn’t totally lock up
but it did get sluggish as hell. I searched for solutions but the global
response was “shrug. doesn’t happen to me” or “eglot and tree-stitter are
coming! they’ll be better!” siiiiiiigh. So I put it down and went back to neovim
for code development.</p>
<p>Now, for reasons, I’m trying emacs again, this time building my config myself,
rather than relying on a framework like doom. Same problem. So it wasn’t doom’s
fault. The internet answers were still the same so I started turning stuff on
and off to find the problem. And I finally found it.</p>
<pre><code>(setq lsp-semantic-tokens-enable t)
</code></pre>
<p>I copied that config line from god knows during my initial setup. Getting rid of
that line stopped the cpu burn problem with no noticeable side effects.</p>
https://sungo.io/posts/2024/03/ramblings/sungoRamblings2024-03-16T00:00:00Z2024-03-16T00:00:00Z
<p><em>From a thread over on fedi</em></p>
<p>had a job interview today (thank you!), an ops job, and we were talking about
the practice of coding and deployment and how that exists in this company. the
details are irrelevant for this discussion here. but I forget sometimes that,
even though I’ve spent <em>mumble</em> years being an ops person, ruthlessly practical,
hard edges and harder deadlines, even through that, I am deeply philosophical
about the whole enterprise. (I am not about to launch into that philosophy, fear
not.) My training is first and foremost as a junior philosopher. I wrote theses
on Sarte and Kierkegaard long before I ever wrote code, particularly as a “job”.
I learned to dissect ancient texts long before I had to debug code or review a
coworker’s submission. And it’s the lens through which I interrogate problems
like code organization, on onboarding new developers, on documentation, on
deploy strategies, even debugging an outage or code problem.</p>
<p>This is something
we all do unconsciously of course. Our unique histories are how we approach all
problems. But I forget that about myself sometimes and I forget how deeply it
goes. And suddenly I’m talking about intentionality in software design and
deployment, that even in chaos we can be intentional about every step based on
our consensus philosophy. And it clicks.</p>
<hr />
<p>I also get sad, of course, because most modern companies don’t think they need
intentional design like that, particularly not in ops. “We’re going to make some
AWS API calls and it’ll all be fine.” Sure, but if you don’t have that sense of
intention, you end up with the twisted horribly expensive mess that most
companies land in. (I promised I wouldn’t launch though.)</p>
<p>I get sad because the time in which my skills are desired by the larger industry
is coming to an end. Hopefully it will last long enough for me to have some
semblance of retirement but it might not. This sort of “my life’s work is fading
away” happens to most professionals, if they remain singularly focused. It’s
been my mistake in not branching out more over the years in tech. It makes me
sad, and makes me feel old before my time. So does the cane, but that’s a
different story.</p>
<hr />
<p>it occurs to me too that I discount the way my theatre work, as a youth, impacts
my tech work. There’s the obvious wearing-black working behind the scenes sort
of metaphor for backend ops work. That occurs to me quite regularly. I’m
thinking more of the ephemerality of the work, the needs of that work to
function on the day in front of live audience with no ability to fix anything.
it must be right or it must degrade gracefully and in one night, a week, a
month, the work will be torn down. parts might get reused, microphones and
lights are expensive, but the thing we spent weeks building will be destroyed
and all that will exist is the memory of whether it worked. Or preferably not
remembered at all because it worked invisibly and supported whatever theatre
piece or live show or orchestral performance happened on that stage.</p>
<p>So I don’t get precious about software or architecture. I do a thing and it
works or it doesn’t. I can carry those learnings, that design forward, but the
code and the service will either work or it won’t and in the end all we’ll have
is the memory of that event.</p>
<hr />
<p>I am intensely proud of work that no one will ever see. In some cases, work no
one believes we performed. Things for which others took credit (or more often,
patents). I can’t tell you about those works, not because of an NDA but because
they were of their time and context. Lacking that context, not being in that
time, these things lose meaning and significance. They’re all gone now and all
that’s left is the stories I carry forward and the narratives I share with the
other people involved. Again, this is true of every moment of everyone’s life,
not just ops work, but it’s something that I don’t think about enough. Something
I am not overly intentional about, which is a growth direction for me of course.
The stories just develop on their own and, particularly at this stage in my
life, I need to be more intentional about those narratives.</p>
<hr />
<p>There is no grand conclusion here, no “prophet comes down with the word of god”
sort of end, that’s never really been my forte. Just the rambilngs of a
middle-aged techie, in the midst of an extremely trying and tiring time.</p>
https://sungo.io/posts/2022/trackball-prototype/sungoPrototyping a trackball2022-01-25T00:00:00Z2022-01-25T00:00:00Z
<p>The last couple weeks I’ve been playing around with prototyping a trackball.
I’ve been babbling about it over on the fediverse and folks have asked for more
details so here we are. The hope is that this will eventually be a more polished
project, with a big fancy page and what not. But folks asked about this awful
prototype phase and who am I to say no to publishing embarrassing work?</p>
<p>This started with the <a href="https://github.com/brickbots/aball">aball</a>, an open
source buttonless trackball. I tried to build one and… let’s just say it
wasn’t for me. I have lots of opinions here but we can just move on. Come find
me elsewhere if you want those opinions. The aball works and it works well for
its creator, just not for me. Regardless, the aball was the launching point and
got me spinning. This initial prototype was basically my attempt to do an
aball-like thing on my own. (Also a shout-out to <a href="https://ploopy.co/shop/nano-trackball-kit/">the Ploopy Nano
Trackball</a> for helping me develop
additional opinions. If you want a commercial-ish aball, this is your ticket.)</p>
<p>Some goals are:</p>
<ul>
<li>Allow the controller to be easily replaced or upgraded. Pro Micro compatible
controllers fit this really nicely. They are plentiful, relatively easy to
come by, can be really cheap, and they can run QMK, an open source firmware
with pointing device support. I have a lot of these laying around because <a href="/posts/2021/keyboards/">I
build keyboards</a>. QMK’s built-in pointing device
support will lessen my coding burden significantly</li>
<li>Allow the sensor to be easily replaced or upgraded</li>
<li>Easily accessible parts so you don’t need to be sungo with sungo’s workbench
to build the thing</li>
</ul>
<h2 id="the-bill-of-materials">The Bill Of Materials</h2>
<p>Let’s talk parts.</p>
<p>First, the really important bits:</p>
<ul>
<li>Pro Micro compatible controller. Any will do but I used a <a href="https://keyhive.xyz/shop/pro-micro">USB-C Pro Micro
from Keyhive</a></li>
<li><a href="https://www.tindie.com/products/jkicklighter/pmw3360-motion-sensor/">PMW3360 Motion Sensor from JACK Enterprises /
Tindie</a></li>
<li>Three <a href="https://www.amazon.com/dp/B095PDB11S">3x7x3mm deep group ball bearings</a></li>
<li><a href="https://www.amazon.com/gp/product/B07BDGSX5X">34mm trackball</a></li>
</ul>
<p>And the connective bits:</p>
<ul>
<li><a href="https://www.adafruit.com/product/1214">Adafruit Perma-Proto Small Mint Tin Size Breadboard
PCB</a></li>
<li>One <a href="https://www.amazon.com/gp/product/B07H9ZSZD4">PCB mount tactile switch</a></li>
<li><a href="https://www.adafruit.com/product/2886">Dupont Header</a> for attaching the
sensor</li>
<li>For the MCU, I used <a href="https://www.amazon.com/gp/product/B0187LTEX2">machine pin
headers</a> because my keyboards
use machine pins exclusively. Machine pins are not required though. use
whatever makes you happy.</li>
<li>For the sensor, use <a href="https://www.adafruit.com/product/3002">standard square male
headers</a>. This is actually important
because machine pins won’t fit in the dupont connector.</li>
<li>Four M3 screws and nuts for mounting the protoboard. I recommend nylon as I’ll
discuss below.</li>
<li>Four M2x6mm or M2x8mm screws to secure the lid. Use metal screws here.</li>
<li>Three M3 screws with nuts to attach the bearings. I also recommend nylon as
I’ll discuss below.</li>
<li>Spools of wire. Dealer’s choice. I used <a href="https://www.adafruit.com/product/1311">22AWG Solid
Core</a></li>
<li>Solder, soldering kit, etc. (If you don’t have this already, this build
probably isn’t for you, to be honest)</li>
</ul>
<h2 id="the-build">The Build</h2>
<p>Here’s the end state we’re striving for. The MCU is mounted chips-down onto the
machine pin headers. The sensor is attached to a dupont header on the end which
holds the sensor pretty sturdily in place.</p>
<p><img src="/static/trackball-prototype/innards_lower_angle.jpg" alt="the guts of the thing" /></p>
<h3 id="the-wiring">The Wiring</h3>
<p>Forgive my messy wiring. The PCB is wired so that the dupont connector on the
end matches up, pin wise, with the layout of the PMW3360 sensor breakout. The
sensor’s layout is a bit wonky which makes wiring a bit of a mess. The image
below shows the PCB from above with color coding matching the MCU header
location and the destination on the dupont connector.</p>
<p><a href="/static/trackball-prototype/wiring.jpg"><img src="/static/trackball-prototype/wiring.jpg" alt="wiringdiagram" /></a></p>
<h3 id="sensor">Sensor</h3>
<p>Solder header pins on to the sensor with the pins sticking out the opposite side
from the lens (see the first picture in this section). The holes are nicely
staggered a bit and should hold the header nice and tight during soldering.
Absolutely take off the lens before getting the iron anywhere near the sensor.</p>
<h3 id="firmware">Firmware</h3>
<p>At this point, it’s possible to test the build.</p>
<p>Flash the controller with QMK before plugging it into the PCB. This will ensure
that the board is good before maybe my bad instructions cause problems. Use the
<code>handwired/aball</code> keyboard, but only after applying <a href="/static/trackball-prototype/aball.patch.txt">this
patch</a>. The patch switches the
aball to the PMW3360 sensor and ups the CPI (essentially the refresh rate) on
the sensor to its max. (This may be too sensitive for folks and it can be tuned
in <code>config.h</code> and set to a lower value.)</p>
<p>Fun fact, before we move on. The patch also inverts the X-axis. This stumped me
for a bit before I realized this is a <em>mouse</em> sensor. It’s actually built to be
upside down from my configuration. Flip it around and stick it in a rat-tail
mouse and the X axis is totally fine. For this use case, we have to invert it.</p>
<p>Also, the CS pin choice is totally arbitrary. The aball uses F7 and I carried
that over. If you want to use some other pin, go to town and set
<code>PMW3360_CS_PIN</code> appropriately in <code>config.h</code></p>
<p>Once you’ve successfully flashed the firmware, unplug the controller and smoosh
all the parts together. Plug it into a computer and move your finger slowly
above the sensor, about 3mm or so. If all is working, you’ll see the mouse move
around the screen a bit.</p>
<h2 id="the-case">The Case</h2>
<p>Once you’ve got tested and functional circuitry, it’s time to build the case.
There are two STL files you’ll need to print off. Neither requires supports or
rafts or any of that jazz. Infill and perimeters are dealer’s choice; there’s no
unusual requirements for strength and PLA works just fine.</p>
<ul>
<li><a href="/static/trackball-prototype/trackball%20case.stl">The Base</a></li>
</ul>
<div class="stlwv2-model" data-model-url="/static/trackball-prototype/trackball%20case.stl"></div>
<ul>
<li><a href="/static/trackball-protptype/trackball%20lid.stl">The Lid</a></li>
</ul>
<div class="stlwv2-model" data-model-url="/static/trackball-prototype/trackball%20lid.stl"></div>
<h3 id="draw-the-rest-of-the-owl">Draw The Rest Of The Owl</h3>
<p>Screw everything together.</p>
<p>Put M3 nylon screws through the corners of the protoboard and out the bottom,
attaching nuts there. I recommend nylon because it’s non-conductive, won’t
interfere with any of the solder bridges, and you can cut them flush to the nut
on the bottom if you want.</p>
<p>Because it’s impossible to center the MCU on the perma-proto board, the USB
adapter will not center on the opening. I’ve made the opening pretty wide though
and all my gigantic USB-C connectors work fine with my MCU.</p>
<p>While not required, I recommend putting bump-ons on the bottom corners to help
the trackball stay still and give plenty of room for the nylon nuts. <a href="https://www.amazon.com/gp/product/B08B5CRXPG">These 4mm
bumpons from Amazon</a> work great.</p>
<p>If all went well in the printing and build, the sensor should line up perfectly
inside the square opening in the lid. If not, tracking will probably be
inconsistent and weird.</p>
<p>Screw on the lid with the metal M3 screws. Use a powered screwdriver with
decent torque because these screws will be held in place by melting the plastic
during the insertion.</p>
<h3 id="attach-the-bearings">Attach The Bearings</h3>
<p>The lid features three attachment points for the bearings. Slide an M3 nylon
screw through the hole; slide the bearing onto the screw; secure it with a nut.
I recommend nylon here because the bearing might try to rotate around the screw.
If so, metal rubbing on nylon is a much better sound, and better on the bearing,
than metal on metal.</p>
<p>Drop the trackball into the opening and roll it around to make sure you get
clean rotation. It’s possible the bearings might not visibly rotate, depending
on the weight of the trackball and the amount of pressure you apply while moving
it. That’s perfectly fine and doesn’t affect operation.</p>
<h2 id="the-end-result">The End Result</h2>
<p><img src="/static/trackball-prototype/trackball%20with%20hand.jpg" alt="the actual build" /></p>
<p>And here we are (so smol). It is important to note that the MCU sticks out to
the left, not up. Yeah it’s weird. It’ll get fixed in a later build. At this
point though, you should have a functioning, buttonless, trackball. At the very
least, I do.</p>
<h2 id="future-direction">Future Direction</h2>
<p>Like I said above, this is hopefully going to end up as more of a polished
project with probably a custom PCB and buttons and other fun stuff. I’m
currently iterating through ball mounts while pondering buttons. There’s also
firmware work to be done, etc etc. Lots of work to do. If you have questions or
comments, feel free to hit me up on the fediverse or email, using links in the
footer.</p>
https://sungo.io/posts/2021/keyboards/sungo2021: The Year Of Keyboards2021-12-20T00:00:00Z2021-12-20T00:00:00Z
<p>2021 was the year I started building keyboards. It mostly started as a way to
practice soldering without needing much by way of software. It’s continued as
both a hobby with not much by way of software but also an exploration of my own
physical needs when it comes to typing.</p>
<p>I’ll continue prattling on in a moment but first. I’ve added a <a href="/keyboards">new section to
the site</a> specifically for all the keyboards I’ve built and will
build. There’s a <a href="/keyboards.xml">dedicated RSS feed</a> and the builds will not
show up in this main feed (at least not for now). I’ve not written text for all
the builds yet and that will come with time.</p>
<p>And now, the prattling.</p>
<h2 id="why">Why?</h2>
<p>This whole thing started because I like building things but kinda hate software.
My whole project list read “spend a couple days building a thing; spend the next
month getting the software right”. I needed to self-host services and figure out
… well, it was a lot like my day job but with some light soldering.</p>
<p>One day, it occurred to me I should probably have a backup to my beloved
<a href="https://kbdfans.com/collections/65-fully-assembled/products/fully-assembled-tofu65-mechanical-keyboards">tofu65</a>
keyboard. I was not, however, prepared to spend hundreds of dollars on a backup
keyboard. A friend pointed me at the <a href="https://nullbits.co/nibble/">Nibble, by
nullbits</a> and a passion was born.</p>
<h2 id="the-journey">The Journey</h2>
<p>A look at the <a href="/keyboards">keyboard list</a> will show that I got a little bit of
practice before trying my first Nibble. The Nibble is not a complicated build
but there are a lot of parts, most of which are exposed when the build is
complete. On most boards, it doesn’t matter if you muck up the diodes because no
one’s ever going to see them. On the Nibble, you’re going to see them every day.
I didn’t feel confident just going to town right away. Lots of folks do, as the
<a href="https://discord.gg/eSegJcY">Nullbits Discord</a> can speak to. (That Discord is
one of the very few truly nice keyboard communities I’ve found. Good people in
there. They were a major help and cheerleading squad as I got started.)</p>
<p>After the Nibble, I dove headlong into, shall we say, non-normative boards. All
along the way, I was learning how my hands work and how I type. I don’t normally
think about my typing. I’ve been typing on qwerty boards since I was a kid so
it’s the same as how I don’t normally think about how I walk. But once I
<em>started</em> thinking about it, watching how my hands move, paying attention to
what hurts and what doesn’t, what feels better, it was impossible to ignore the
truth that standard keyboards fucking hurt me. My wrists hurt, my joints hurt,
my shoulders hurt, and after a day at work my body was done typing. I’ve got a
couple more decades ahead of me in my industry and I’d like to not spend those
days hurting from my job.</p>
<p>The quest went from “building stuff that doesn’t require me to write software”
to “finding a path to pain-free typing”. That quest, ultimately, has led me to
the 3x6 (with thumb keys) split column stagger board called the
<a href="/keyboards/corne">Corne</a> and the 3x12 unibody <a href="/keyboards/reviung">Reviung41</a>.
The Corne is my daily driver with the split far enough apart that arms aren’t
angled in and my wrists are straight. The Reviung41 is serving in a couch/lap
role right now. I am sure I will write more about the quest and the journey to
these boards in the future. I am experimenting with some other paths but for
now, these are my drivers.</p>
<p><img src="/static/img/keyboards/desktop-2021-12.jpg" alt="my work desktop" /></p>
<h2 id="keymaps">Keymaps</h2>
<p>So, why so few keys? That’s the first thing people ask me when they see these
boards. “Who needs numbers anyway, right?” The firmware that I use,
<a href="https://qmk.fm">QMK</a>, allows for layers. Where you see 18 keys per half, those
can represent tens of layers, including macro keys. A great way to see the
possibilities is over at the <a href="https://config.qmk.fm">QMK Configurator</a> where you
can build a keymap and download a firmware binary for that map. For instance,
here is <a href="https://config.qmk.fm/#/nullbitsco/nibble/LAYOUT_ansi">the default ANSI map for the
Nibble</a>.</p>
<p>The trick is figuring out what works best for your hands. This, honestly, is the
hard part, harder than building any keyboard kit on the market, regardless of
skill. It’s trial and error. Some folks start with another person’s keymap and
build from there, often from a different base like dvorak or workman. If you’re
going to have to learn how to type again, why not go the whole way? For me, I’m
staying on qwerty (for now?) and I’ve moved the “missing” keys to more
comfortable places. Again, this is all trial and error. I load up a keymap and
start my work day. If something feels off, I tweak it. Eventually things start
to gel. I’m still polishing my coding symbols a bit, the ones like { } that I
don’t use in regular typing.</p>
<h2 id="cost">Cost</h2>
<p>Seems like this would be an expensive hobby, I’m sure. If you looking at
many of the keyboard communities, they make this seem like a <em>very</em> expensive
hobby. Keycaps alone can set you back $100 or more per board. Switches aren’t
free either, particularly if you’re into some of the new custom switches. A
bespoke board can end up costing $300 or more. Folks on Reddit regularly show
their collection of dozens of beautiful boards with impossible to find keycaps.</p>
<p>I made a decision very early on that I was not going to leave parts in a board I
wasn’t going to use. This year I’ve built twenty or so boards and only three or
four of them have switches, caps, and controllers. Also, wherever possible, I 3d
print the keyboard cases. Thanks to all this, a board I build and ultimately
reject runs in the $20-50 range, depending on the vendor. If the board is open
and I can order the PCB, that can drop to $5 per board (sadly with a five board
minimum purchase). The bits and bobs I buy in bulk from places like Mouser which
lowers the costs even further.</p>
<p>While this hobby is by no means free, and my keycap and switch tastes run
pricey, I’ve managed to cut the costs as much as I can.</p>
<h2 id="wrapping-up">Wrapping Up</h2>
<p>Building keyboards combines a lot of my interests and it’s been a lot of fun.
I’ve learned a lot, from electronics all the way up to how my body works in ways
I hadn’t considered before. This has been a particularly great additional hobby
for these times of isolation. What comes next? I don’t know. I’ll keep building
boards. Maybe eventually make my own. I don’t believe in an “end game”, where
I’ll find the perfect setup and stop there forever. If nothing else, bodies
change over time and, here in my 40s, I’ve started the downward slide. My job
means I need to be able to type and so I need options as I age. I might also get
into case design a bit. Many of these boards don’t have much by way of cases,
apart from expensive acrylic cases that can run $100 or more. We’ll see. Maybe,
this time, I’ll remember to post about it more than once a year. Until then…</p>