Fuckboy

Last edited: 3 May 2018, 4:29PM

Info

The Fuckboy was a DIY keyboard project. It's a Planck keyboard that features Zealios R4 78g switches, blank SA row 3 keycaps, orange 3mm LEDs, and to add on top, a custom USB cable/keyboard bag. Most iconically, it spells out Fuck through its keycaps, though any number of words can be arranged, probably the next of which would be Cuck.

Background

I'm pretty sure it was back in July that I was thinking about getting a second keyboard. By then, I was about a month into work, and one thing that slightly bothered me was having to bring a keyboard back and forth between work and home. I had thought a while about picking up a new keyboard, and I believe sometime in mid July after talking with some friends, I decided to pull the trigger.

When I started looking for options, I wanted something different and cool and hip. I had a 60% TEX Beetle at the time which I would say was pretty unique, but I think I could do smaller and better. It hit me that I remembered seeing a 40% keyboard somewhere, and that brought me back to an old Planck Massdrop. At the time I was content with my TEX so I didn't feel a need for a new board, as interesting as the Planck looked.

The ortholinear grid pattern was very cool, and despite its missing keys it seemed funly functional if you could get used to new layers. Small, stylish, unique, programmable, sounds pretty good. I showed my friends the keyboard, and I'm pretty sure the majority of them thought it was too dumb and difficult to possibly use. Maybe that's an exaggeration, but for sure, I doubt they would ever consider buying one.

My plan was to wait for the next Massdrop since I had just unfortunately missed the 2016 summer Planck drop. By the way, if I'm looking at a few posts correctly, the next drop probably would have been January 2017. Man, that would have been a pretty long wait. Coincidentally though, a few things pushed me to start buying parts early and make a Planck on my own.

Despite some discouragement, I told my friends I was going wait for the next Planck drop, and with one of them, I spent quite some random time looking at different parts and combinations of Plancks I could make. I had no idea how a lot of keyboard parts worked, so it was good getting some advice and help. Hardware is definitely not one of my fortes, and I hope with this and some future projects, I'll learn a lot more about the subject.

First, I looked at switches. I had Cherry MX Reds on my TEX with O-rings, and I wanted something that strayed far from that for variety. No Cherry MX I decided, that's way too mainstream. I looked into some Gateron specific options. Something exotic like yellow seemed pretty cool just because of the color name. Eventually my interest was peaked by two particular switches, probably the most hipster of the bunch: Zealios and Matias/ALPS.

I mean with that kind of tagline, how could I say no. This is probably what first attracted me to Zealios, and why I eventually went with it let's be honest. The history behind it is pretty cool, one guy wanting to make his special design of tactile switches, then producing it through Gateron. He wanted something heavier than browns, but also more fluid and lubed. Whatever. To be honest, after getting a switch tester and now pressing these switches myself in person, I don't feel a huge gigantic difference, even from my reds with O-rings.

Yeah, call me uncultured or whatever. Maybe if I get another keyboard and feel another comparison, I'll make a better judgement call. But to be honest, it's probably going to be something like my brief experiences with audio, where the differences are so minuscule and ridiculous to tell that I just get a feeling of emptiness and let down in the end, even if I do get that bittersweet 1% upgrade.

It's possible I did something wrong, or I just need more time. Some of my switches are a bit clicky and have a weird bottom out. So maybe I do have some weird soldering or placement issues. Or maybe my switches are bad. I don't know. I do feel a slight tactile difference, and I won't say I dislike it, but I was expecting more of a punch and got watered down punch instead. Huh. Actually in real life I do prefer watered down punch. Usually people put way too much sugar and stuff into punch by itself.

I will say though, if I got some Matias switches instead, I might have been more satisfied. These have clickiness to them from what I heard, so at least then I'll have a significant audible difference to look forward to. What possible use I could have for it, I don't know, maybe a macro keyboard, but I am planning on making another keyboard hopefully down the line. A transparent keyboard with RGB LEDs and Matias switches. That's the dream for now. I'll be a lot more involved with this one, hopefully handwiring and doing a lot more things on my own. I saw an example picture of an ALPS keyboard with embedded LEDs that looked absolutely stunning.

So at the time I was stuck between these two. I decided to move on and see what keycaps I could get. This was where I made the decision to go for Zealios. It's just practically impossible find any keysets for ALPS style switches. There are already very few basic sets out there, and most of most sets are made for Cherry MX stems only. Next time I'll figure out a way to get my hands on ALPS caps. I may have to get it custom done somewhere, but it is a necessary evil I must do.

One thing for sure though, I knew I wanted to get SA profile caps. I don't know, something about the high profile just appeals to me. I did read tiny snippits online here and there that are probably correct in talking about how impractical the caps are, but hey whatever, they looked cool to me. Aesthetics over usability right? I also saw some guy's pretty cool looking keyboard on the Planck website that I wanted to aspire to be.

And then I had a lull where I didn't know what else I wanted to buy. I guess since I had so much time, I could wait and see if some good keyset would be available that I could grab from, but despite that, I still looked into keyboard things in my free time. One weekend I talked with my friend about what else to get, and then the idea eventually hit me. Spelling letters with keycaps.

This was something I had seen no one else do before nor mention, probably to good reason. On staggered keyboard layouts, it's difficult to spell out any coherent letters. And most sets aren't generous enough to give you enough key colors and combinations in the first place. Really, it's a niche ortholinear thing to do, and even then, most ortholinear keyboards just have simple sets. I'll take some credit for thinking up of this idea, at least originally, but in no way is it difficult or unexpected to pull off.

So then I tried spelling what letters I could. I regret a bit not purchasing 5 row ortholinear Preonic, since that would give me many more options for spelling. But it's fine, I don't regret the Planck layout. The smaller the more hipster. Eventually, to hopefully no one's surprise, I realized I could spell Fuck out of keycaps. And then there, as that idea popped up, I wanted to build the keyboard immediately.

Keyboard parts-wise, there were still some available. The Planck drop was long finished, but the remains of that were still available on olkb. There was a warning that these parts were not in perfect condition, since these were the B-status inventory that was left over. I bought the bottom plate, top plate, and PCB from here. The bottom plate was fine. The top plate was kind of jankily cut, but it was okay. The PCB was fine too, but it wasn't the version 4 with some new programming and audio features. For their lower price though, I can't complain too much.

Next were the keycaps. For SA keycaps, the only big seller I know of is PimpMyKeyboard/Signature Plastics. They have a pretty large variety of different caps, along with their own SA profile section. I could pretty much get everything I needed from them, but the only problem was the selection. I was basically forced into using orange since there were few bright colors to choose from.

Personally, I'm not a huge fan of the color, it just looks kind of dull somehow compared to other options in my opinion, but I'm still fine with how this thing turned out. There was a yellow color that was available, but I was afraid that it would get mixed up too much with the white. It would have been nice to pair orange up with some other contrasting color like blue, but ehh, it's fine, it's okay, I tell myself. I spent some time designing and hashing out what I wanted through Photoshop, and this is my best mockup:

It didn't turn out exactly like that. As you can tell, the F and c keys became the darker grey, and the background became orange. This was because of the orange LEDs. When the LEDs are on, the orange keycaps kind of get washed out, and switching out for the darker color was much better. The white keycaps do get a bit washed out too, but you can still make them out.

On the topic of LEDs, I got them through maxkeyboard, how fitting. The Planck only supports single color, so once I chose orange, I was locked in for good. For my next keyboard, I'll try and figure out RGB some way or fashion. Not quite sure if I have to break apart switches to stuff LEDs inside, but if I have to, I'll have to. Actually, now thinking about it, there was quite a bit of random stuff I bought to add on top of this keyboard.

For one, there was soldering equipment. Before this point I never soldered in my life, so I bought a $10 kit off Amazon for that. It works. It's good I guess. I ended up also buying two custom USB cables. The first one was bought from Pexon. This was a white cord with orange sheathing on top. Took a while to ship due to Pexon being in the UK. Unfortunately though, I didn't really like it. It was just too pale of a color and washed out of a orange that I wanted, so that kind of sucked. Next time, I was a lot more careful.

The next one I bought was actually for the TEX Beetle. I didn't want my TEX Beetle to be unused or as underappreciated, so I decided to try and turn it into a vomit keyboard. During this time, I was putting a bunch of random cute keycaps I liked onto there, and it was looking quite colorful. So I decided to buy a custom USB cable for it. This one was from keyclack. After learning from my mistakes and preferences with Pexon, I bought a cable I'm much more a fan of. Now it's the Fuckboy's (maybe for now), and the TEX has returned back to using its own cable.

Actually, on that note, I do have to say that the TEX is really subtly cool. I mean, there are some things I dislike about it, like randomly toggling its different modes that I still have no idea what they do. I really love the arrow keys, even the small shift. But what really surprised me was that I really, really love the cord strapper on its USB cable. It's thin, and thick, and that doesn't really make sense, but basically it's really good, and I couldn't quite find something quite like it. I ordered a strap with Pexon's cable, but that one wasn't that good. Eventually I found something close with Patu ties.

The biggest delay in the project came from the Zealios switches. I ordered a switch tester as mentioned earlier, and that had its own scuffles to deal with. When I bought it, the shipping cost actually outweighed the tester cost. Blame DHL I guess. To make matters worse, when the shipment came, I wasn't at the door, so I had to find one morning in the weekday to drive 30 minutes out to some pickup depot in order to get it. Apparently they opened only on weekdays from 9 to 5ish.

Kind of a pain. I didn't make the same mistake when I ordered the full set of actual switches. These switches though, boy did they have a pretty lengthy wait time. I decided to wait for the version 4/R4 Zealios, which did not start coming out until about mid November. The reason was because I wanted to get the 78g switches. Heavier switches seemed old school and modern. There was a remark on the website that said that the R4 fixed some consistency or something issues, so I decided to wait for those changes.

In the down time, I didn't really do much for the keyboard. I had Dualive to keep me busy in my free time. I did get more involved in the mechanical keyboards community, not posting actively but at least lurking around more in threads. I think some time in early November I saw a post in the subreddit about custom made keyboard sleeves, and I thought that would be a great addition to my boy. I bought the orange sleeping bag you see in the picture from switchsmith.

Fast forward to late November, it actually kind of surprised me when I was able to start putting things together. I was waiting so long for the Zealios that it was kind of a surprising "Oh, I guess I can start now, yeah?" kind of feeling. Altogether, the actual physical build process was not that difficult. I was a bit scared starting to solder, but with some practice and time, I've gotten more comfortable with the process.

My working setup was kind of ghetto. I took one of our extra tables in the living room, which, by the way was not probably the most stable thing in the world, and brought that out to the small porch area outside. I set up a fan, a light, and the solder equipment there, where conveniently there was an outlet. I didn't have a thick mat to work on so a flattened cardboard box was my substitute. Also, it was pretty cold outside, so I had on like three layers of clothes to keep myself warm.

I pretty much followed Jack's guide to a tee. First I started with the switches. It took me two nights to put the switches in because I wasn't sure if the PCB could fit on correctly. This led to a lot of sore fingertips as I tried to force switches into the top plate. The switch holes in the top plate weren't cut particularly well. It's not like the switches couldn't go in, but it took a non-trivial amount of work to push the Zealios in.

Because it was hard to put in the switches, my first course of action was putting in all the switches into the top plate and then forcing the PCB onto the completed back. One Planck build video I watched did this, so I tried to replicate the same. This didn't quite work. The problem was that when I trying to push the PCB into the pins, some parts of the PCB would just pop back up and wouldn't lay snug against the switches. I got paranoid about leaving too much space, as I thought it would have problems fitting in the case.

Eventually, I removed all the switches from the plate/PCB and restarted again. This time I followed Jack's video, laying the plate and PCB first atop each other and putting each switch into the plate/PCB in one step. It wasn't as difficult as I thought, and there was a minor amount of improvement. I don't think I did a 100% of a perfect job as I believe some switches may be sitting a bit off center. It's difficult to tell without inspecting closely though.

After the switches were done, I didn't move onto the LEDs immediately. Just in case I had any errors, I wanted to test and make sure what I had worked. Then came the challenge of setting up the software, and this was not simple and easy. The QMK firmware guide is a bit scattered in some parts and difficult to I think approach without prior knowledge of it. Having gone through the process once, I'm a lot more familiar with it, but I had quite a few problems starting off.

The biggest issue was that setting up the build environment on Windows just flat out did not work. After tinkering and dabbling, I got MinGW set up properly, but when I tried to compile, I ran into issues with pathing where my environment started using MinGHC (Haskell related) that I installed almost a year ago. I have no idea why. I believe an error happens because the MinGHC directory path has a space in it, which is bound to occur because my computer name is Wax Chug da Gwad.

I tried uninstalling everything and restarting, but then the setup scripts for QMK stopped functioning. This was really odd. When I ran the first build script, a single window would quickly pop up and then nothing would show. The second script would just pop up new windows over and over. I tried editing the setup batch files, and that got me further, but then I ran into pnputil errors during compilation time. I don't know. Something screwed up during the install and uninstall, and nothing worked the same.

Eventually, the only solution I found was using the Windows Subsystem for Linux (WSL) to run Linux on Windows. This was a beta feature that recently came out for Windows 10 and let me use Bash as I would on Ubuntu on Windows. There was a section in the QMK guide about this, but it was recommended not to do this since I guess it seemed kind of hacky. The preferred method above should be used. Welp, using the WSL was the only way I got things to work. Yup, just nonchalantly run Linux on Windows, apt-get some things, move into the Windows directory, and it compiles. Cool.

After compiling was the keymapping. Before looking into the formatting for that, I needed to first decide on how I wanted keys to be placed. I skimmed over at a few different mappings, but eventually I just wanted to try something on my own. I'm a big fan of using both hands to do a lot of work, so I wanted to have symmetrical modifiers on both sides of the keyboards. This led me eventually to make this kind of setup:

On top of the somewhat unusual modifiers, I completely moved the comma and period keys out to have a fancy parentheses setup. I thought I'd take advantage of the fact that I had roughly 4 layers, including shift, to work with, and jam all the parentheses or parentheses-like commands into two keys. I'm not too sure about the double space bar. I'm a very right hand dominant space presser so I pretty much only press it with my right thumb. Maybe I'll try and get used to left pressing over time.

Come time to actually make the keymap.c file, I had to scavenge a bit for information. The QMK guide did not cover the basics of the keymap file and mostly went over the more complicated parts of it. I referenced the TMK (of which the QMK was forked from) guide on the keymapping as well as a few random other sources. It took a while, but I did get most of all the information I needed. What helped me the most was referencing the default Planck keymap and understanding what it specified or how it did a particular effect. There were some subtleties that got overlooked when I tried to work from scratch.

The most difficulty I had in the keymap came from figuring out how to manage multiple layers. Here's an example of what I had to deal with. Hold down right upper, press the L key, and this produces a hyphen. Keep the right upper held, hold down the left upper, press the L key, and this also produces an L. What is happening is that both right and left uppers go to the same layer, but when any one of these gets released, the keyboard automatically drops back to the default layer.

This is problematic because I want to retain the same upper layer functionality when either the upper left or right key or both are held down. To solve this, I made two different layers for each of the uppers. The left and upper keys now go to the left upper layer and right upper layer respectively. What this does is that if one of the keys are released, the layer changes as well, but because there is another upper layer present, you won't drop down to the default layer.

There were also some other small things I adjusted. I fixed a problem where A, B, and C failed to type characters because I set up some enumerations wrong and needed SAFETY_RANGE set properly. I messed around with sticky keys and transfer keys to get some better flow with the modifiers. I may edit some more things in the future to my liking, but that's probably going to be kind of difficult now since I only have a single keyboard either here or at work. I think I'm getting used to this though and probably won't need to change any time soon. To see the final keymap, you can go to my GitHub repo with the files I worked with.

Once the typing was fine, I worked on the LEDs. These were a bit of a pain to solder. I should have followed Jack's guide and bent the pins back once I put them in. What ended up happening was that because I soldered with the board flipped upside down, the LED would fall if I didn't hold it in place. My solution was to put in the LED and put a keycap underneath to lock it in place. Wasn't perfect, and some of my LEDs are probably a bit off because of that. After mostly tedious work, I finished these.

Finally was coding the backlight. I copied over some code I referenced from the default Planck keymap and got that to work. Originally I wanted the LEDs to be on all the time, but if I ever stepped away, I do want to have an option to dim or set them to off. Currently I have it set to step to different brightness levels, but toggle might be better in my specific case. If I get a chance I'll update that. And that's pretty much it. The rest has just been playing around with it.

I'll reiterate what I said before in that it doesn't really seem too different from the TEX. The heaviness doesn't quite bother me. I do feel a bit of tactility, though it's nothing too apparent. Overall, I'd say it's a small, unique improvement. osu!-wise, it will take a bit of getting used to. Streaming is a bit different than before, and I'll need to gain back my control and speed for that, though that's always something I need to work on.

One weird thing with this keyboard is that because the keys are so small, I do bump into other keys while playing, at least with Z and X set originally for the tap keys. I moved the tab button so I wouldn't accidentally trigger myself turning that on in the middle of a map. I also had a problem with the shift key, where if you pressed shift, you actually dropped all input of the default layer. This meant that if I was holding down Z or X for a slider and I hit the shift key, then it would act as if I let go.

I thought it'd just take some getting used to, but eventually I decided to switch my keys. I started with right control and shift. This was perfectly fine, but I'm a little worried about using modifiers as inputs. I had a problem in the past where using these had problems with delayed input. So to keep my mind at ease I switched the keys to backspace and p. Because these keys are all in their bottom left respective corners, they prevented me from accidentally hitting any other keys.

Hmm, now to think about what to do for my next project. I'm definitely going to use Matias/ALPS in some way or fashion. I'm definitely going to do RGB. I'm definitely going to hand wire and look into making my own parts and cases. Then I'm not so sure. Maybe smaller is better since that seems like less time, money, and work. Maybe I'll make a controller for osu! or Sound Vortex or maybe a controller for something else. I'll think about it and be back later.