Author Topic: DIY handwired TKL with a faint hint of "Retro"  (Read 4956 times)

0 Members and 1 Guest are viewing this topic.

Offline wjrii

  • Thread Starter
  • Posts: 49
  • Location: Texas
DIY handwired TKL with a faint hint of "Retro"
« on: Mon, 16 October 2023, 23:28:42 »
Hi Everybody.  I just finished my latest project, a conversion of a pre-built 1800 (FL-Esports 980) with a lifted pad into a handwired, RP2040-powered board (KMK).  I wasn't sure how it would go, so I removed my trusty Box Navies for some Outemu dustproof reds, confirming that I will never be a linear guy, but the sound is fairly pleasant.  I may press it back into service as my work board, and maybe add a hidden macro for my email address that work makes me type 50 times a day.  Don't think I have the cajones to add one for my quarterly password.

The newest project is now kicking off in earnest.  I was noodling around old-computers.com, mostly clicking from random to random, but I realized a few aesthetic traits that might be able to be adapted into a modern TKL without affecting usability too much. I have probably a dozen different layouts saved on KLE, and I landed on one to actually make.  No one is reinventing the wheel here, though I didn't find anything exactly like what I have in mind.  I specifically picked the one that would work with the largest number of keycap sets, and after a couple of runs through Swill's plate generator, I had switch and bottom plates made out of 1/16" aluminum, which should be suitable but will also allow me some flexibility to machine with woodworking tools if, say, I need a few standoffs or to smooth a rough cut.  I've never really minded my top-case-less gamer boards, so the plan is a simple sandwich: switch plate, walnut from my scrap bin, bottom plate. The RP2040 clone that I have on-hand only has 20 easily-soldered GPIO pins, so the matrix will be a little funky for 83 keys, but it will be less annoying than the one for 98, and I made that work.  Still, I'd welcome any suggestions.

Plates have arrived, enough to make three boards if I don't screw anything up.  The main keycaps for the first board have also arrived, generic "Minimalist Business Style" DSA from AliExpress.  I have the Box Navies of course, and one MCU on-hand, plus diodes, etc.  Some design considerations:

  • Up until the Model F, it seems most keyboards followed the typewriter paradigm and kept the spacebar isolated on its row, at least mostly.  That's not very practical, but it's not too bad to shrink the Shift keys and cram a couple of 1u modifiers next to them, leaving the rest of the mods at 1u and centered with the spacebar, allowing for a bit of that typewriter/terminal look.  Upon later reflection, I realized that the layout I landed on has a LOT of similarities to the HHKB, but if anything that just emboldened me in my notions that I'm not insane to think this will be a usable board.
  • Acorn's BBC Micro series had a striking centered F row that looks really nice in red. To that end, the 13-key F row is compressed and centered, and I have blank red DSA keycaps coming to populate it. I could always change it in firmware of course, but I plan to leave the Esc key upper left on the F-Row, where the BBC's had it where the grave/tilde is on "modern" keyboards and had a dark "Break" key on the right side of the F-row.
  • If you like dedicated arrow keys, and I do, the inverted-T simply cannot be beat:  More ergonomic than a cross, more versatile and intuitive than a 1x4 or 2x2, I wasn't going to have board with this much real estate go without it.  That said, I did nudge it up half a row, far enough to emphasize the mostly-empty spacebar row but not so far that you need to rethink your keycaps. I feel like there's a certain heritage with the MSX computers, and I do have one KLE layout that uses 2u vertical L and R arrows like a couple of Sanyo MSX2 machines, but in the end, inverted T had to stay.
  • Nav cluster is retained.  In addition to dating back to the Model M, having a few keys there is used on MSX machines and Amigas. I looked at a few funkier layouts with fewer and/or 1.5u keys, but again, one of the goals was pain-free keycap compatibility without needing to use non-sculpted sets (though of course I settle on a DSA set... go figure).
  • PS/SL/PB are just nuked. Including them in their usual spots would draw the eye from the F-row and also lose that vague sense that the layout is from another time. There's a certain irony, given they're functionally the most "retro" keys on any keyboard, but hey, in my initial layout, they're 75% of the reason I even bothered with an Fn key.
  • Industrial aluminum plus oiled walnut ought to work well with the theme.  I am not a proper touch typist, but I do like a pretty flat keyboard, and zero degrees should work fine, but the simplicity of the "case" should permit plenty of flexibility.
« Last Edit: Mon, 16 October 2023, 23:34:12 by wjrii »

Offline Findecanor

  • Posts: 5036
  • Location: Koriko
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #1 on: Tue, 17 October 2023, 01:56:23 »
Nice project. I'm too a fan of moving the arrow keys up just a little a bit from the bottom row. I think it improves ergonomics when you don't have to bend your fingers as much.

And BTW, welcome to Geekhack!

Offline wjrii

  • Thread Starter
  • Posts: 49
  • Location: Texas
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #2 on: Wed, 18 October 2023, 12:56:53 »
Nice project. I'm too a fan of moving the arrow keys up just a little a bit from the bottom row. I think it improves ergonomics when you don't have to bend your fingers as much.

And BTW, welcome to Geekhack!

Thanks!  I think this will be a fun one, and will add a touch of immersion while messing around with emulators or with RiscOS on an RPi.

Not much to report today, but I have the switches and stabs installed (could probably stand to add a touch less kerf on the next lasercut project, as they were very snug, but that has its advantages on a handwired.  I also think I've settled on a wiring layout.  I may alternate top and bottom on those crossovers, but regardless, researching old threads on GH helped me improve on what I did on my 1800 rewire.  This should require less heatshrink, have fewer stacked jumper wires, and should look a little better, though I am still not in love with the clutter in the bottom and nav area.  I'm on my last MCU, so the next ones I order will have a few more pins.  Technically, the  RP2040-Zero that I'm using has 29, but 9 of them are tiny pads on the bottom and... yeah... but also no.

Offline wjrii

  • Thread Starter
  • Posts: 49
  • Location: Texas
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #3 on: Sat, 21 October 2023, 00:49:23 »
Matrix wired up. RP2040 is on deck, temporary feet are “in the hole.”

Caught a couple of mistakes and cold joints in the course of this one. Hoping there are no surprises. Next keyboard will have an MCU with more pins. 12x7 should work okay, though, and I have a touch more room in this one than my orthos.

And oh yeah, red blanks for the function keys arrived!

Offline wjrii

  • Thread Starter
  • Posts: 49
  • Location: Texas
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #4 on: Mon, 23 October 2023, 11:17:53 »
Progress!

Wiring complete, standoffs installed as a temporary "case," found an otherwise-nice white oak turning blank with a split, but plenty enough good wood left to make a ~3/8" (9.5mm) sandwich, keycaps installed, and even found a perfectly lovely set of 1" 3M rubber feet that anchor the board down very well, and a good thing too because the aluminum is even lighter than my brain had recognized. I may have to break down and actually lube the stabs, because otherwise the sound is a very satisfying retro-vibe clicky-thunder.  Open sides and wads of insulated wiring seem to keep it from being very pingy.  I admit though, as a hard-typing, clicky-loving heathen, sound profiles are not really my forte other than "I like it" or "I don't."

I have started on the keymap in KMK, and either I have discovered an entirely new layout, or I completely mis-visualized how KMK would read the matrix.  On the plus side, the errors seem systemic and make sense based on what I wired, so I'm confident it was human error in the keymap.  All but one keys register something, and with 83 keys on an 12x7 matrix, it should just be that the intentional empty slot is actually mapped to a physical key for the moment. Just hoping there isn't something physical with the fact that I have two "7" keys.

EDIT:  Seems at least one of my AliExpress vendors may not know what is "DSA" and what isn't.  The reds (I think) are proper DSA, fairly steep slopes on the side and small keytop.  The main set looks fine, and the height is within maybe half a mm of the blank reds, but I don't think it's truly DSA (plus it's clearly double shot when described on AE as "dye-sub".  The sides are less steep so the keytop is technically a touch wider than my XDA, but the deeper dishing makes them feel more spherical.  For my particular look/use case on this board, they are fine to live together, but they're not quite the same.  C'est la vie when you're a cheap old cuss.  Anybody know if my alphas' profile actually has a name? 
« Last Edit: Mon, 23 October 2023, 12:03:19 by wjrii »

Offline wjrii

  • Thread Starter
  • Posts: 49
  • Location: Texas
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #5 on: Tue, 24 October 2023, 08:51:03 »
Some more progress yesterday and this morning.  Sorted out my issue with the keymap in KMK, and so far, so good.  No shorts or odd behavior.  In using the keyboard, I think I may have made a mistake in not trusting ISO and having the 1.25shift on the outside where my pinky wants to go, and in turn having whatever other 1u key my American heart desires on the inside.  No matter, I've decided to lean in on the BBC Micro resemblance and make a few layout tweaks.  For now at least, I'm going with a split shift, with a 1u keycap labeled "Lock."  On the Acorn machines, this was a shift lock that made caps lock cower in fear, but for me it's just a useful way to correct a small oversight.  I also moved the modifiers around a bit and decided to try out a big delete key under the backspace (for the most logical reasons of all:  it was there and it matched!).  This led to replacing the 1u delete with a button to launch the calculator, because I'm a weirdo.  I also moved the Esc key down to the num row and relegated the tilde to the Fn layer, which also got a few media controls; yay for programmable firmware!  Finally, that allowed me to make another mostly aesthetic nod to the Acorns and shift the red F keys left and promote the Pause/Break key out of the Fn purgatory, mostly because those old machines had a BREAK key in that spot, but it does have the small advantage of keeping the function keys where they would be on a more normal compressed layout.

Then, oh yeah, I figured out my keycaps.  They appear to be VSA, a DSA derivative that Vortex used for a while and still offers one set on its site.  These were clones, old stock, whatever, under $20 on AE, and while the "VSA" is still clearly visible under some of the larger keycaps, the molds look like they've seen better days.  Some of the legends are happy little reminders of how much money I saved.  :D

Offline wjrii

  • Thread Starter
  • Posts: 49
  • Location: Texas
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #6 on: Fri, 27 October 2023, 09:27:10 »
    This board is winding down.  It has been another learning experience, though I'm generally pleased with how it's turned out, particularly with the min.  The wooden "twig" case is finished.  As I worked with that board, it began to look more and more like it was red oak, not white, and any doubts were removed when I added the finish (Danish oil).  Still, nothing says 1980s (in America) like red oak, so we're all good.  The case sides moderate the sound just a bit, but on my desktop, it still has a bit of a rumbly sound on bottoming out, though you mostly hear those big ol' clickbars.  For this board's current incarnation, we're just down to fit and finish/Qol improvements:

    • Remove most of the keycaps and polish/brush/whatever the exposed parts of the switchplate.  Not worth it to unwire the whole thing and get between the switches, but there's room for improvement.
    • 3D print some rectangular grommets or blockers for the opening on the back.  I intentionally left that gap bigger than I needed to, work with the slightly fragile wiring setup in there, but it looks unfinished, so I definitely want to do this.
    • Eventually lube the stabs, at least for the spacebar.
    • Maybe a bit of tweaking and filling on the oak to ease some seams.
    • Maybe get some keyboard or laptop feet to pull us up from a fixed 0-degree typing angle.
    • Maybe reinforce the MCU a bit, or at least get a magnetic cable.  The handwiring itself is fine for me as a load-bearing structure because I made it, so I know about how much tension it can handle when plugging and unplugging, and I know how to fix it if something breaks, but it's certainly not ideal. While the RP2040-Zero has no mounting holes, I might be able to figure out something, maybe a 3D-printed caddy or just a couple of blocks glued to the plates.
    • More ambitiously, maybe add some LEDs or do new case sides.

    For boards 2 and 3, if and when I get around to them, I can take some lessons from this one:
    • "Finish" the aluminum before adding switches. Straight from the shop has a certain look, and this was a "prototype" (LOL... we shall see if that eventually changes to "a one off"), but while a mirror shine doesn't seem practical or even desirable, some sanding and a clearcoat will make a lot of sense.  This would also be the time to drill any holes for LEDs.
    • Use a slightly different MCU.  Just something with mounting holes and a few more castellated GPIO pins.  I may also finally dip my toes into QMK/VIA as the RP2040 build has matured.
    • Consider different hardware (in the "hardware store" sense).  Standoffs are what I had, so standoffs are what I used, but some hexheads or even binding posts might look a little nicer.
    • Rethink my approach to the case sides.  I called the current one a "twig" case because each side is an unjoined piece of 3/8" square stock, but they're not perfectly aligned with each other, and working with them was very fiddly. I ignored some key woodworking wisdom: "bigger is easier" and "sneak up on the cut."  If I stay with solid wood, I'll likely make an oversized frame joined using one woodworking technique or another, and then cut it down to size once it's a completed assembly.  I may also consider an "ebonized" set of sides, which is to say I set my cheap laser engraver to some thin plywood.  3D printing the "twigs" would also improve precision.
    • Maybe use hotswap sockets?  This is my fourth handwire (fifth if you count the 12-key macropad I made for my daughter).  On the first, I actually soldered all the wires to kalih hotswap sockets.  With all the delicate stuff going on, you'd have to be careful when changing switches and still do some disassembly, but let's call it a "warm-swap" keyboard.

    Big thanks to the GH community, who were helping me before I even registered for the site, what with the handwiring guides, KLE, and the plate generator.  I know this is not the world's most amazing project, either in conception or execution, but I'm really pleased with it and happy to be here.  :-)

Offline wjrii

  • Thread Starter
  • Posts: 49
  • Location: Texas
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #7 on: Fri, 01 December 2023, 11:47:38 »
Pics of board 1 with its sapce fillers and power LED in place, and of Board 2 more or less complete.

Board 2 has some differences:

  • Factory lubed brown switches from Novelkeys mystery buy, TTC Gold Brown Pro I believe, and Blue Samurai clones from Amazon in "CSA" profile.
  • 3D printed sides at 3 degree incline with a cutout for the USB-C (side mounted, sorry.  Daughter boards may be on the menu for future buiilds).
  • Open front and back, but standoffs holding springs in place to keep the flexing down a little. Let's call them "hope they're not buckling" springs, LOLOLOLOL.  #dadjokelife
  • "Full size" RP2040 board with enough GPIO pins that I could do a less insane matrix.  Still running KMK and if it would work in BIOS or to wake from sleep, I think it'd be about perfect.
  • A solder job that would have been my best yet by my still modest standards, except that my dumb ass soldered every single diode in series, so now there are little curlicues around the row pins where I took up the slack to do the rework.  No pictures of this.
  • hacked at the aluminum around my left shift so I could slide the switches to move the 1.25u key to the outside like a normal weirdo.
  • went at the plate with a little brasso and steel wool before assembling. Interested in how it holds up.
  • Software needs a little work.  No Fn layer set up yet, and the MCU has a simple green LED that I need to hijack for CapsLock or something, assuming it's bright enough to leak out from the back.
« Last Edit: Fri, 01 December 2023, 11:54:31 by wjrii »

Offline wjrii

  • Thread Starter
  • Posts: 49
  • Location: Texas
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #8 on: Fri, 01 December 2023, 11:53:36 »
Rest of the pics.

Offline Nlight

  • Posts: 57
  • Location: France
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #9 on: Mon, 11 December 2023, 09:18:23 »
Wow, that matrix is WILD, efficient for sure, but really wild.
Wasn't it a bit of nightmare to map in the firmware ?

Nice job anyway

Offline wjrii

  • Thread Starter
  • Posts: 49
  • Location: Texas
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #10 on: Mon, 11 December 2023, 11:13:31 »
Wow, that matrix is WILD, efficient for sure, but really wild.
Wasn't it a bit of nightmare to map in the firmware ?

Nice job anyway

Yes.  It was challenging to map, but in the end KMK is so straightforward that it is manageable. I believe there are ways to assign aliases so the keymap itself would look more human readable, but in the end it's just a keyboard.  There are only 83 keys   :)  Its little brother has a different MCU with more pins, so it is less crazy.

Here is the actual keymap pulled from my firmware, which is to say the plaintext python file:

Code: [Select]
[KC.F1, KC.F2, KC.F3,          KC.F4, KC.F5, KC.F6, KC.F7,
KC.ESCAPE, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6,
KC.TAB, KC.Q, KC.W, KC.E,    KC.R, KC.T, KC.Y,
KC.CAPS, KC.A, KC.S, KC.D,    KC.F, KC.G, KC.H,
KC.LSHIFT, KC.LSHIFT, KC.Z, KC.X, KC.C, KC.V, KC.B,
KC.NO, KC.LCTRL, KC.LALT, KC.SPACE, KC.N,        KC.M, KC.COMMA,
WINCALC, KC.F12, KC.F11, KC.F10,      KC.F9, KC.F8, KC.N7,
KC.INSERT, KC.BSPACE, KC.EQUAL, KC.MINUS,    KC.N0, KC.N9, KC.N8,
KC.BSLASH, KC.RBRACKET, KC.LBRACKET, KC.P,        KC.O, KC.I, KC.U,
KC.DELETE, KC.ENTER, KC.QUOTE, KC.SCOLON,  KC.L, KC.K, KC.J,
KC.PGUP, KC.HOME, KC.END, KC.MO(1),  KC.RSHIFT, KC.SLASH, KC.DOT,
KC.PGDOWN, KC.UP, KC.RIGHT, KC.DOWN,    KC.LEFT, KC.RCTRL, KC.RWIN]



« Last Edit: Mon, 11 December 2023, 11:17:19 by wjrii »

Offline Nlight

  • Posts: 57
  • Location: France
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #11 on: Mon, 11 December 2023, 14:00:39 »
yeah that looks pretty clear  😄😋
Nice making it through

Offline wjrii

  • Thread Starter
  • Posts: 49
  • Location: Texas
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #12 on: Sat, 30 December 2023, 09:07:36 »
Board 3 of 3 has kicked off.  This one will have its switch plate nested into a 3D printed frame/case loosely inspired by the Atari XEGS keyboard.  Wedge shaped feet on the bottom will give it a slight angle and (from certain angles) continue the aesthetic.  Through a design oversight, I didn't give myself the literal wiggle room I needed, so a little superglue and sanding are necessary. I'll paint this one a nice retro yellow, though I am not going to try to hide the fact that its 3D printed, because I don't hate myself.  The color is Krylon "Bauhaus Yellow" which looks a little like Kraft Mac & Cheese, but also a bit like the yellow used sparingly on the Atari 400 and 800 keyboards.

Switch-wise, I am probably going to use some exceedingly cheap knockoff 67g holy pandas from AE that I have lying around.  I doubt they compare to the real thing, but I've never done a build with heavy tactiles at all, so it might come out nice.  I think once I use these up, I'll settle in and start buying Box Navies in bulk because I am who I am. Keycaps, I'll see which of the complete sets I have lying around looks better, the Apple-esque XDAs, or the no-name white-on-blue Cherry.  Seems like something spherical in a glossy brown ABS would work well if it comes out how I think it will, though.


Offline wjrii

  • Thread Starter
  • Posts: 49
  • Location: Texas
Re: DIY handwired TKL with a faint hint of "Retro"
« Reply #13 on: Sun, 07 January 2024, 15:19:00 »
So this should wrap up the project.  Board number 3 completed. 

-“Holy Panda v2” 67g tactile switches from AE. How did they sell 110 of them for sixteen bucks? It’s a mystery.
-Laser cut aluminum switch plate and base plate.
-Random stabilizers. One or two of them are Durock I think.
-3D printed case, feet, and grommet. Case spraypainted “Krylon Bauhaus Yellow”.
-Handwired with a “YD-RP2040” and running KMK. USB-C pigtail for strain relief.
-Akko SA-L black and gold keycaps.

Lessons on this one:
-For thickness-sensitive measurements, my 3D printer needs about 0.3-0.5mm of wiggle room.  Is what it is.  Note for next time.
-Only hot air for heat shrink tubing that touches other wires.  If the other wire gets too hot, it'll melt right through and you'll have to redo your columns.
-Poor measurements on your grommet?  Never fail, 3D pen to the rescue!
-Careful on those captive nuts.  Pretty sure one of the 8 is just rattling around loose and the screw is biting into plastic.  Oh well.
-Next time, I'll try "fuzzy skin" (Joe Scotto loves this) or telling the printer to "iron" the top layer.  Concealing the construction method was never the goal though, and overall I'm pleased and learned something on every board.

« Last Edit: Sun, 07 January 2024, 16:52:35 by wjrii »