🔴 I'M LIVE ON TWITCH! NOW STREAMING: Google Translated Half-Life is Whack

The Quest for a Better Keyboard - Part 2

UPDATE

There was a major oversight where this post wasn’t publicized because draft was set to true, until I found out just now on March 17, 2025. Hope this doesn’t happen again

Where we left off

In the last part, I established that I want to create an ergonomic split keyboard: the Lily 58 Pro. My rationale is that this would improve my typing experience as I kept on fumbling with the standard layout and the keyboard is what I believed would help me alleviate my problem. That, and so I have another excuse to use the soldering station I have (courtesy of my girlfriend).

With that said, the parts that I needed have arrived and the only thing I’m missing is the PCB itself. A week has passed since the tracker mentioned that the parcel has arrived in the post office. Worried, I checked with the external tracker site and it mentioned something peculiar that wasn’t mentioned in the manufacturers site: “Your parcel is ready to be picked up.”

Postal troubles

Before I actually visit the nearby post office, I tried to contact them via telephone. After all, I don’t wanna waste my time, energy, and money only to find out that my parcel’s either not in my local post office or that it’s already being delivered (it was already 3:30PM when I decided to make the call). This turns out to be an even bigger waste of time. The post office’s main landline only leads me to a deadend everytime I called, if it actually makes the connection. That’s right, fast or slow IT WON’T ALWAYS CONNECT YOU TO THEIR LINE! I thought I was pressing the wrong buttons or the number was wrong, but no it’s just that inconsistent! The local phone numbers don’t help at all because there was no info about it, and the phone number some directories have don’t even work!

Touching grass it is! So the following day, I woke up in the morning, prepare myself (routine and all), then I went out. I visited the branch that’s easier to get to, but they did not have it and they directed me to the branch that was closest to me. That other branch is a bit harder to get to - not too hard, but a bit cumbersome for me. Lo and behold, I got it!

In hindsight, I think I should’ve just went out from the getgo. Not only do they have my package, but they couldn’t even deliver it because the address’s formatting isn’t what we are all used to. Good thing I checked that external tracker, otherwise that PCB could’ve been sent all the way back to Hong Kong. And all because it couldn’t find its way to my hands. Well, at least I got my PCB’s!

For the prospective builders

Before I continue, I wanted to share some miscellaneous info about the build. If you’re building this as well, I’d suggest starting at 250°C. My soldering iron is sitting around 275-300°C throughout the build, changing it whenever I need to. Though, I wouldn’t suggest going over 290°C if possible as 250°C should be enough to solder the parts in. I had to go hotter than the recommended because I also have a fan blowing into my direction, y’know to keep me from inhaling the icky funky fumes that the lead and/or the flux exhumes, and it blows cold air so…

I would also recommend to only focus on one side of the keyboard first. This would make it manageable to build the keyboard and build up your skills and hindsight on how to go about it when you start to build the other side.

For those who will build the exact keyboard, which is the Lily58 Pro, here’s the official english build guide and kriscable’s build guide. Both are good written guides and they’re easy to follow in my opinion. I would not recommend using this post as a guide to build your keyboard, but just as a reference on what I experienced and what you can learn from my mistakes.

With all of that said, we can now continue!

Constructing the keyboard

I contemplated on just constructing it two days later as I wanted a rest from commuting, plus the fact that we have a class to attend to the following morning. My girlfriend convinced me to build it the day I got it, so I prepared my work area and my soldering iron goes brrrrrrrrrrrrrrrrr!

This part covers that process, the difficulties I encountered, and my experience with the keyboard so far. By the time I published this post, two weeks would’ve pass since I finished building the keyboard. That’s a bit of a spoiler on how it turned out in the end!

It’s to diode for!

The diode

Look how tiny this thing is!

To start things off, I soldered the diodes since that’s what I needed to do first anyways. Because the size of one of the diode feels like it’s barely any bigger that a speck of sand, I thought this would be the trickiest part of the build. As it turns out, and I would find out later as well, this is one of the easiest part of the build! The trick here is to solder one side of the pad, then while you have the iron on that side, you would position the diode into the pad. I would do this for every pad, and then solder in the other side of the diode.

The process of soldering in the diode

How I soldered the diode

Just watch out for the orientation of the diode. You need to line up the line that’s in the diode, and what’s on the PCB. If you’re having difficulty seeing the line on the diode (they can feel invisible sometimes even with good eyes), then you can use your phone’s camera to zoom into the diode. It should be enough to know which orientation to put it in.

When the sockets are hot(swappable)

The next thing that I turn my attention to is the sockets for the key switches. I tried to do the same trick I did for the diodes, but it doesn’t work well as I need to fit the sockets into the holes for it; it just made it harder to fit it in. Instead, I would place the sockets, and then let the solder from my iron flow through the side of a pad. You’ll know that there’s solder in there if there’s a hint of shine in between the pad on the PCB, and the leg of the socket. If I am a bit doubtful about the solder, I can put a bit more until I am sure there’s a connection between the socket and the pad.

The shine on the socket leg

A sample of the in-between solder shine. Edited to make the shine even more obvious. Image taken from a later step of the build process.

The bits and bobs

Once I am done with the bits for the switches, I then turn my attention to the TRRS Jack and the reset button. Some people suggest that you should tape the parts, especially the jack, so they won’t fall off. The button doesn’t need taping as the legs do the attaching itself.

Soldering these are easy enough, no drama here. I can’t say the same for the microcontroller.

The brains of the operation

Oh boy! This part is the one that gave me the most headache, in more ways than one.

The pin headers that I bought, which makes the microcontroller hotswappable, would render the whole thing too tall to install it in the case, the Manta58/s. Instead of buying the part to make it work, I decided to hardwire the microcontroller to the board, and just make it hotswappable in the future. This actually took me a while longer to do as the pins refused to be soldered until I cranked up the heat a little bit. I wouldn’t suggest you do this as it could damage your microcontroller. If you also have a fan that cools you and blows the funky fumes off from your face, I could suggest instead to turn off the fan for a while and hold your breath while you solder into the thing; just breath in-between soldering the stuff. For extra safety, wear an N95 mask or stronger. I think this job made me consider getting or making a fume extractor/ventilation.

That’s not the only problem I have with the microcontroller…

Something’s wrong, I can feel it

When I completed both halves, I tried to install the QMK firmware that the keyboard normally comes with. Well here’s the thing: when I was purchasing my stuff, I looked for a ProMicro that has a USB-C port instead of the Micro USB that the standard Pro Micro has until I decided to buy a ProMicro NRF52840. The rammifications this purchase had did not occur to me until it was time to install the firmware after soldering in the parts. I found out that QMK is not compatible with the board because of a license issue that prevents them from supporting it. So I had to install the ZMK firmware instead. If that did not click into your head, I basically accidentally created a wireless keyboard out of negligence! I should’ve researched about this a bit more instead of hastily purchasing my items. At least I can still use the TRRS Jack, as long as I don’t have a battery on the other board.

The Test Result

There's still more problems than I anticipated.

Even with all of that, some of the rows and columns don’t register when I tested the keyboard. It felt off as there was a sort of a pattern on which rows or columns didn’t work. I tried resoldering some of the pads, even the pins of the microcontroller, but that didn’t do anything. I have spent 6 hours soldering both halves and it was around 9 in the evening; I was tired from soldering for the day and I have class the next day. After I packed everything up, I looked and see if the issue lies in the firmware instead, with the pattern of non-working rows and columns as a hint. I checked the code for the ZMK firmware as I theorized that the firmware’s pin layout could be configured for a modified Lily58 that has the nice!nano in mind (spoilers: no, that firmware is for the vanilla Lily58 Pro. Nothing’s changed). I even contemplated and tried building a firmware based out of RMK, but I gave up about an hour into that idea. For the rest of the evening, I believed that it was the firmware’s fault. I was feeling a bit frantic about it. After all this time, I was almost there…

The notes I placed for the next day

I made notes on the board itself for the next day; noting down the corresponding pins that didn't work.

After my head clears for a bit, I thought that maybe, just maybe, it wasn’t the firmware’s fault and it could just be an error on my part. So I took note of the pins that doesn’t work, and slept for there is class the next morning. After I got home from college, I quickly prepared my station again for hopefully the last time (for this project anyways).

A revelation came to light

The microbridges I overlooked

And there it is... the problem that was plaguing me the previous evening.

After all that time, it was because some of the pins made contact with the pads that’s made for the other side of the board. I thought those bridges wouldn’t cause an issue, but apparently it did. This was a humbling experience. The “pattern” was just a red herring. It’s not an issue with the firmware as I thought, as once I was done fixing the microbridges suddenly all of the keys worked!

I tested the keys by directly making contact with the pins on the microcontroller that correspond with a row and a column on the keyboard. I did not test out sockets themselves (subtle foreshadowing).

Once again I packed my station and I went straight to my bedroom to finally put it all together in one nice package.

Now to put everything together

I can finally finish the build after what felt like for an eternity. I referenced the build guide for the Manta58, and I just built it however I felt more convienient.

The keyboard, work in progress

Everything's smooth so far...

I started by screwing in the standoffs onto the base. I did it by holding the screw with the screwdriver from the bottom and screwing in the standoff from there. Then I started on inserting the switches to the board starting from the corners to the edges so that when I started to insert the center switches the plate would be secured by the standoffs and the switches from the edges.

After I placed all of the switches in, I did a final test to make sure everything still works… and there was a problem… I forgot to solder in one of the pads of one of the socket

The oversight, a missed pad

I may or may not have forgotten to solder a pad.

Quickly, I prepped my station again for the very last time, and soldered in the pad of the socket. Thankfully that did not take me more than half an hour to do in total. With that fixed, I once again tested everything… and SUCCESS!!! Everything worked as expected and I can now finish the build once and for all!

I screwed in the plate to the base via the standoffs, and I placed in my keycaps. I already planned a layout for the keyboard about a week or two ago while I was waiting for the PCB. I still wanted to go for the QWERTY layout, so games aren’t a hassle to setup. I also want the right side of the keyboard to have the symbols that would’ve been omitted by kata0510’s layout barring the grave and tilde key (the [`~] key) as I planned on just hiding it in one of the momentary layer. I also made some changes to the thumb clusters.

My planned layout for the default layer

The layout I planned. Some of the keys gets switched out later.

The funniest part of placing in the keycaps is that I have to really push it into the switches. Because of that, whenever I wanted to swap a keycap sometimes the whole switch comes with it as well!

The keycap puller with the whole keyswitch

It's like pulling a loose tooth.

Finally… it’s here! I’ve finally completed the keyboard!

The final build

After everything... it's finally here!

Day Zero Patch

The only thing left to do now is to customize the layers of my keyboard. There’s some changes that I wanted to make, and add. One of the things that I added was a gaming layer. I can toggle between the normal, default typing layer to the gaming one whenever I want to. The gaming layer swaps the positions of the shift/ctrl and the raise/space keys. This would make it easier for me to use the standard WASD layout. More on this later.

I also made my own raise and lower layer layouts to fit my needs as well. The raise layer have “shortcuts” for the copy, paste, cut, and select all commands. Since the ctrl key is in an awkward spot for those commands, I might as well make shortcuts for those commands in my raise layer. The point of the raise layer is so that I have more control with my left hand, the hand that stays on the keyboard and never moves from it. The lower layer just brings the numpad functionality to the right half of the keyboard. I just miss the numpad.

I gotta say, changing out the layout is a big pain in the bum. You need to reinstall the firmware everytime you made a change to the layout and I just wish that ZMK would have the same on-demand ability to change it like what QMK and Vial has. It took me quite a while to even land on the configuration that I am satisfied with for the time being. Although I just realized I don’t have a caps lock key…

My keymap

My keymap configuration as of this post. I may edit the image later.

If you want to get this firmware for yourself, you can head on over to the release page of my GitHub repository and download it for yourself. You can also fork it if you want to make some changes to it! I used Keymap Editor to edit my layout.

To conclude, for now…

It’s been a bit past two week now since I have the keyboard, and I am enjoying my time with it! Sure, there was a bit of a growing pain with removing most of my memory muscle from the standard keyboard layout and transitioning to this new layout especially in gaming. The vertical position of the A key compared to the S and D keys is no joke. I needed to get used to it, and even then it’s still needs some time to get comfortable with it. I contemplated on either remapping my movement keys to ESDF or shift the entire left half one key to the left, though there are certain factors from making me commit to either changes - from some games not letting you remap them (Roblox comes to mind), or the confusion it would ensue when I want to type something in the gaming layer. I might still do the latter, but I want to give the default one a shot for now; maybe the stagger would grow on me

The whole latency issue is still a non-issue, as even though I am using what’s basically a wireless keyboard that acts as a wired one I don’t feel any input lag. There’s a video that compares the latency of different keyboard firmwares out there, ZMK and QMK included. Apparently the default configuration for the ZMK connected through USB and QMK share a similar latency of about 8ms. That’s not all though as I just found out that you can configure the firmware to have a latency as low as 1ms when connected through USB. I’ll do that later as I need to reflash the firmware for the nth time again and I just feel lazy right now.

Right now, I am still getting the hang of this keyboard as I do not touch type properly even with a standard layout and I’m still prone to butterfingering some keys every now and then. Next time you’ll be hearing from me about the keyboard in a post will be around 3 weeks from now. That will cover my progress with learning to type with this keyboard (let alone learn how to touch type properly), some updates about the keyboard, and my recommendation to top it all off.

Now if y’all excuse me, I will doze off now as it’s now past midnight. This week’s game stream will be The Sims 2, and no, I will not buy the legacy collection that EA has just released. They did not put any effort on the rerelease besides implementing DENUVO on it for wright knows why.

^ Back to the Top ^