Author Topic: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard  (Read 6738 times)

0 Members and 1 Guest are viewing this topic.

Offline rsheldiii

  • Thread Starter
  • Posts: 21
SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« on: Sun, 30 November 2014, 23:04:50 »
hey guys,
 so I finally got my granite set from massdrop so I think it's high time to post a build log for this sucker.

SINAP (stands for SINAP Is Not A Poker) is a split, matrix-layout 60% that forgoes some bottom right keys for a control cluster with 2 extra keys. The current layout is viewable here: http://www.keyboard-layout-editor.com/#/layouts/4483b3c3b8c7533766af56aa45c1d151 The split is mostly incidental; I had .5u to spare and I figured why not, it makes the layout much nicer while adding a bit of visual flair and teaching you to separate your hands (I still have the middle keys on my ergodox bound to y,n,t,b). I know it's a layout that won't work for most, but I think it works for me just fine.

picture of my current layout on a plastic prototype plate: http://i.imgur.com/y8qNA9t.jpg
this was done with 20mm instead of 19.05mm spacing which I'm going to correct

My quest started after I built my ergodox; I realized that matrix layouts rock, and adjusting to a nonmatrix layout everyday for work sucks. I currently work on a Ducky Zero I switchswapped for 65g Originative Ergo Clears, and I plan on harvesting the switches from that for this build.

Gmail archives GChats, so we can have a wonderful look at the development of my current layout:

 http://www.keyboard-layout-editor.com/#/layouts/514b7c441d0428093be94efd752b0320
 http://www.keyboard-layout-editor.com/#/layouts/85baa751cc393fd4b3b936f248af8579
 http://www.keyboard-layout-editor.com/#/layouts/e74714f3dd28c40c37625a97b90eeaa4
 http://www.keyboard-layout-editor.com/#/layouts/3cdce492d8157c98bcfbebd5055cb441
 http://www.keyboard-layout-editor.com/#/layouts/a0ffd717743905c7244251d4708d1817
 http://www.keyboard-layout-editor.com/#/layouts/23f2075a89e06a4d0523fbd00208d768
 http://www.keyboard-layout-editor.com/#/layouts/3cdce492d8157c98bcfbebd5055cb441
 http://www.keyboard-layout-editor.com/#/layouts/fceec72a4d8eae3426c1dea262ef8295
 and the final, http://www.keyboard-layout-editor.com/#/layouts/1c498696dc3119601029641429671ca6

Obviously there are a few very good ideas I ended up throwing out in some of these. Originally I was not set on a 60% layout and I was going to have my own case machined, but I gave up that idea when I realized I wasn't going to use most of those keys. I was dead set on a split spacebar for a while, but I wasn't going to give up ergonomics for such a design. To my dismay, I realized that my thumbs sit extremely close together on a normal keyboard. even with the .5u split in my final layout, in order to get my thumbs in the center of the keys I was looking at 1.25u keys maximum and a lot of empty space, so I ditched that idea. I also was thinking about creating some kind of numpad layer, which is a part of the keyboard that totally makes sense to me, but I've never used extensively outside of Blender. I still have a 4x4 matrix of keys on the right side if you pretend the enter key is 1u, so that is still a possibility, but I gave up separating the enter key for it because that would be supremely weird.

So that leads me to a few questions, if anyone has any insight:

1. are there any good references for building plates for a poker II compatible case? I've been eyeballing screwholes off of this thread here: https://geekhack.org/index.php?topic=51565.0 but obbiously it would be nice to have the actual measurements. Luckily I have a 3d printer so rapid prototyping is easy for me
2. how do people normally do hand wired custom keyboards inside a non-custom case? risers in between the case and the plate I guess? where's a good place to get risers?

Many thanks, and look forward to some updates if you're interested; I'll be working on the plate design while I wait for the case to come in
« Last Edit: Sun, 30 November 2014, 23:55:04 by rsheldiii »

Offline Dihedral

  • Posts: 827
  • Location: United Kingdom
  • Mostly Harmless
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #1 on: Mon, 01 December 2014, 09:45:56 »
I found this thread very useful. From mat3o's brownfox build.
https://geekhack.org/index.php?topic=45139.5

Offline rsheldiii

  • Thread Starter
  • Posts: 21
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #2 on: Tue, 02 December 2014, 15:38:54 »
thanks, Matt3o's builds are always awesome to peruse.

I ended up releasing a parameterized SCAD for prototyping build plates for 3d printing, here: http://www.thingiverse.com/thing:573578. I'll probably add some kind of stabilizer layer once I get home.

SCAD's a lot of fun, I just wish they didn't make so many bad choices. I'm sure static variables are a lot easier to implement but they make programming objects way less fun, and tying the language to your own editor is straight up unacceptable.

patiently waiting for one of the 70 replacements to mature enough to use instead...

Offline Dihedral

  • Posts: 827
  • Location: United Kingdom
  • Mostly Harmless
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #3 on: Wed, 03 December 2014, 10:30:26 »
tying the language to your own editor

That really sucks.

Offline rsheldiii

  • Thread Starter
  • Posts: 21
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #4 on: Mon, 08 December 2014, 09:37:25 »
That really sucks.

It does. I actually started to write a DSL in Ruby to fix it: https://github.com/rsheldiii/YASP, which I might continue, but there's already one with full enough coverage that does the same thing: https://github.com/Bluebie/oozby unfortunately the writer thinks that SCAD is merely a stopgap from learning Blender (wat) and doesn't want to continue work on the project. Also they don't use parentheses when defining functions with arguments which is quite annoying, and weird, considering the rest of the code seems fine.

in other news, I got my case in from Massdrop, and stuck the prototype board inside: http://i.imgur.com/08sh44X.jpg looks like I might have all the right numbers except for the rounding on the edges, which I'm going to look into. There really isn't much space underneath the plate; I'll probably have to trim the teensy headers a bit and keep it near the spacebar if I want it to fit in the channels. The case is super low profile though, which is nice

Offline Hzza

  • Posts: 377
  • Location: Windsor, UK
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #5 on: Mon, 08 December 2014, 10:21:36 »
I'm keeping an eye on this, really interesting little board. I know you've already discounted a split spacebar but I think it would be a really nice addition to have a 3u space bar underneath each block of keys with maybe a mod in between or something. 

As for a numpad layer, I've been using an inbedded one in my Phantom for the last 6 months that basically puts the number keys around the home row on the right had (456 are jkl) and then symbols and other keys on the left (qwer is +-*/, sdf is enter, delete and tab). I'm using the key to the right of left shift on an ISO layout as a momentary toggle so I can pinky into my numpad layer, enter data with my right hand and navigate with the left without leaving the home row.

Offline dorkvader

  • Posts: 6288
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #6 on: Mon, 08 December 2014, 23:09:44 »
Whoah that's great!

It's a little hard to tell because the "s" keycap in on upside down, but the "s" switch looks a little off. Is it fully seated?

Awesome project, I can't wait to see more.

Offline berserkfan

  • Posts: 2135
  • Location: Not CONUS Not CONUS Not CONUS Not CONUS
  • changing diapers is more fun than model f assembly
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #7 on: Mon, 08 December 2014, 23:27:57 »
interesting

I'm a matrix lover myself, but unlike you I have 1u spacekeys that I simply can't forego. Also I have been using spilt matrices, so I'm constantly on the lookout for 6x6-8x8 matrix keyboards. (A friend will help me set up the GH36, but I still need thumb clusters. The ideal for me is probably 8x8.)

I have a keyboard you may find interesting that you can have for $10+ shipping. It's basically the same layout as yours except for the spacebar.

https://geekhack.org/index.php?topic=62920.0


I respectfully urge you to consider a split layout. It is hard to find small matrices for left and right hand so these would be good for projects. There is no need to do an undifferentiated layout because you can actually buy them for cheap. Go check out this guy, you won't have competition to buy.
https://geekhack.org/index.php?topic=31779.msg1556608#msg1556608
Most of the modding can be done on your own once you break through the psychological barriers.

Offline rsheldiii

  • Thread Starter
  • Posts: 21
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #8 on: Mon, 13 April 2015, 23:02:56 »
woah nellie, it's been a while.

Problems with my ergodox and problems with my 3d printer caused me to slow down significantly on this project, but I have since returned with the final, updated layout: http://www.keyboard-layout-editor.com/#/layouts/d67141b4a642dcc613ce21c081285963

this will be the layout going on my board, and is basically the same as it was before, with the addition of a split spacebar. I went with 2U pieces because they fit with the 1.5u modifiers; you could probably buy an alpha and an ergodox kit on a PMK group buy and have a new keyset. I was worried, as my thumbs extend beyond the center of the keys in this configuration, but I've tested it and it feels fine as long as I stabilize them.

I updated the plate generation script with the correct hole placement and diameter as well as space for the stabilizer inserts, and generated a dxf. I have the keyset ready, and the switches will be harvested from my current work board, since making ergo clears is a pain in the ass. I have a teensy, some insulating rubber, a micro-usb breakout board, and diodes are in the mail. I have everything... except for the plate.

turns out there's barely anything near me that will do waterjet cutting, and the only place that does won't do anything for under 200 dollars. That was the last two weeks or so, just going from place to place seeing if anyone would cut a plate for me.

Luckily I started talking to Jack Humbert, and he said he has a nice place near him that will do the plates for 25 bucks per, as long as there's an order of 5 or more, and at 10 the price goes down. so I guess we're turning this build into a group buy, hopefully.

I'll post an IC thread in the interest check board and keep this thread going with my personal build log, which probably won't update until I get the plate in. Thanks everyone for reading and for all the suggestions!

oh, almost forgot, the new layout on a prototype plate:

« Last Edit: Mon, 13 April 2015, 23:17:08 by rsheldiii »

Offline Dihedral

  • Posts: 827
  • Location: United Kingdom
  • Mostly Harmless
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #9 on: Tue, 14 April 2015, 02:11:10 »
Nice! Now to wire it and get yourself some caps. It instantly makes me think 'granite' but granite is overused so maybe a nice GMK set...

Offline rsheldiii

  • Thread Starter
  • Posts: 21
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #10 on: Tue, 14 April 2015, 11:41:33 »
Nice! Now to wire it and get yourself some caps. It instantly makes me think 'granite' but granite is overused so maybe a nice GMK set...

I'm certainly getting there! this is just a prototype 3d printed plate to check for fitment, so I won't be wiring anything yet. I have a granite set all primed and ready, but I do love full countour SA sets, so I might get an alpha from an upcoming group buy and source the modifiers . All in due time

Offline taylordcraig

  • Posts: 1044
  • Location: BC, Canada
  • New Keyboard Enthusiast [needs to learn to solder]
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #11 on: Tue, 14 April 2015, 11:56:59 »
Nice! Now to wire it and get yourself some caps. It instantly makes me think 'granite' but granite is overused so maybe a nice GMK set...

I'm certainly getting there! this is just a prototype 3d printed plate to check for fitment, so I won't be wiring anything yet. I have a granite set all primed and ready, but I do love full countour SA sets, so I might get an alpha from an upcoming group buy and source the modifiers . All in due time

I don't even have a waterjetter on my island. I got my plate CNCed but it was $100 for a one-off. Got it the next morning though. >24hrs.

Offline rsheldiii

  • Thread Starter
  • Posts: 21
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #12 on: Mon, 15 August 2016, 03:05:48 »
apologies for the necro, but I actually finished this guy! So I figured it was appropriate. I vastly overestimated my ability to keep up with side projects when working full time, and I also vastly overestimated my enthusiasm with hand soldering 60-odd diodes to each other, and then to a keyboard matrix, and then to a microcontroller...

pictures are here: http://imgur.com/a/qu8bJ

 The original goal was an ortholinear keyboard in a 60% form factor with a navigation cluster in a stock case, but when I received my plate (thanks Jack!) and started checking for fitment I realized a hand wired matrix was never going to fit in a normal aftermarket case, especially one with the channels: https://mechanicalkeyboards.com/shop/images/products/large_626_PSIMG_0167.jpg they like to put in these days. I ended up customizing and 3d printing a case I found on Thingiverse, finishing it with some spray paint and shellac after applying some XTC-3D and sanding. The dimensions aren't exactly right on the case, and the shellac keeps picking up imprints from whatever surface you lay the keyboard on, but I never really set out to make a case so I'm fine with that. The patch cable is just a cheap micro-usb breakout I bought from adafruit or sparkfun that I hot glued and soldered to an old microusb cable, which worked out pretty well. I might make a better case in the future but for now this is more than acceptable.

 The wiring is a standard matrix a la matt3o's guide, https://deskthority.net/workshop-f7/brownfox-step-by-step-t6050.html, though I don't have nearly as steady a hand. Wiring the columns was a major pain in the ass and the main reason I took a long break; you can actually see my technique develop from left to right on the board (accompanied with lots of swearing, I promise). At first I was laboriously stripping little pieces of insulation off the wire as if I was whittling, then I decided to try burning it off like some people suggested, but that smelled bad and looked terrible, so I switched back. I eventually (like, maybe 4 columns left) realized that it's so much easier to just *shift* the insulation than try to cut it off. I'm so excited about figuring this out that I'm going to break it down step by step in case it helps anyone else:

 1. cut the wire to the correct length for the column
 2. strip a bit of insulation off the top of the wire. This is mostly to mark what side is up (I forgot multiple times), but also so you dont have a massive amount of insulation overhanging at the end.
 3. lay the wire where it will go when it is soldered, and starting at the furthest switch from the top, use an xacto knife or anything to mark exactly where you want to solder the wire. you start on the far end, because if you were to start near the top and push the insulation up, your second cut would push insulation up onto your first cut. You could start at the top and work your way to the bottom, of course, but make sure you push the insulation *down* in the next step if that's the case.
 4. using a wire stripper, cut the insulation slightly above the mark, and push it up slightly past the mark.
 5. lay the wire back down, making sure the uninsulated section you just made matches up with where it should be soldered to, and then repeat steps 3 and 4 for each switch until you are done

 This made things so much easier and as soon as I figured this out I finished the rest of the wiring in a night. as for wiring everything to the matrix, the leftmost columns were done last, and done cleanest, I think. I had a nice enough layout such that the rows and left and right columns are in neat little blocks on the GPIO pins, and I could thread the wires underneath the matrix without too much trouble. The controller is basically in the only spot with enough room for it to fit, though after I ended up making the case myself it didn't really matter.

The firmware right now is TMK, and I want to give a big shoutout to iandr0idos on reddit for his tmk builder website, http://kb.sized.io/, which is pretty awesome. I still plan on tweaking my layout, and I might compile that myself, but the website saved me a bunch of time fiddling with the row configuration array and remembering how the macro function works.

that's basically it, pretty tame build but if anyone has any questions fire away!

Offline Dihedral

  • Posts: 827
  • Location: United Kingdom
  • Mostly Harmless
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #13 on: Mon, 15 August 2016, 11:51:55 »
apologies for the necro, but I actually finished this guy! So I figured it was appropriate. I vastly overestimated my ability to keep up with side projects when working full time, and I also vastly overestimated my enthusiasm with hand soldering 60-odd diodes to each other, and then to a keyboard matrix, and then to a microcontroller...

pictures are here: http://imgur.com/a/qu8bJ

 The original goal was an ortholinear keyboard in a 60% form factor with a navigation cluster in a stock case, but when I received my plate (thanks Jack!) and started checking for fitment I realized a hand wired matrix was never going to fit in a normal aftermarket case, especially one with the channels: https://mechanicalkeyboards.com/shop/images/products/large_626_PSIMG_0167.jpg they like to put in these days. I ended up customizing and 3d printing a case I found on Thingiverse, finishing it with some spray paint and shellac after applying some XTC-3D and sanding. The dimensions aren't exactly right on the case, and the shellac keeps picking up imprints from whatever surface you lay the keyboard on, but I never really set out to make a case so I'm fine with that. The patch cable is just a cheap micro-usb breakout I bought from adafruit or sparkfun that I hot glued and soldered to an old microusb cable, which worked out pretty well. I might make a better case in the future but for now this is more than acceptable.

 The wiring is a standard matrix a la matt3o's guide, https://deskthority.net/workshop-f7/brownfox-step-by-step-t6050.html, though I don't have nearly as steady a hand. Wiring the columns was a major pain in the ass and the main reason I took a long break; you can actually see my technique develop from left to right on the board (accompanied with lots of swearing, I promise). At first I was laboriously stripping little pieces of insulation off the wire as if I was whittling, then I decided to try burning it off like some people suggested, but that smelled bad and looked terrible, so I switched back. I eventually (like, maybe 4 columns left) realized that it's so much easier to just *shift* the insulation than try to cut it off. I'm so excited about figuring this out that I'm going to break it down step by step in case it helps anyone else:

 1. cut the wire to the correct length for the column
 2. strip a bit of insulation off the top of the wire. This is mostly to mark what side is up (I forgot multiple times), but also so you dont have a massive amount of insulation overhanging at the end.
 3. lay the wire where it will go when it is soldered, and starting at the furthest switch from the top, use an xacto knife or anything to mark exactly where you want to solder the wire. you start on the far end, because if you were to start near the top and push the insulation up, your second cut would push insulation up onto your first cut. You could start at the top and work your way to the bottom, of course, but make sure you push the insulation *down* in the next step if that's the case.
 4. using a wire stripper, cut the insulation slightly above the mark, and push it up slightly past the mark.
 5. lay the wire back down, making sure the uninsulated section you just made matches up with where it should be soldered to, and then repeat steps 3 and 4 for each switch until you are done

 This made things so much easier and as soon as I figured this out I finished the rest of the wiring in a night. as for wiring everything to the matrix, the leftmost columns were done last, and done cleanest, I think. I had a nice enough layout such that the rows and left and right columns are in neat little blocks on the GPIO pins, and I could thread the wires underneath the matrix without too much trouble. The controller is basically in the only spot with enough room for it to fit, though after I ended up making the case myself it didn't really matter.

The firmware right now is TMK, and I want to give a big shoutout to iandr0idos on reddit for his tmk builder website, http://kb.sized.io/, which is pretty awesome. I still plan on tweaking my layout, and I might compile that myself, but the website saved me a bunch of time fiddling with the row configuration array and remembering how the macro function works.

that's basically it, pretty tame build but if anyone has any questions fire away!

That's one hell of a bump, but definitely worthwhile! Looks really nice, how does it feel to type on? Are you using both sides of the spacebar for space, or one for something else?

Offline rsheldiii

  • Thread Starter
  • Posts: 21
Re: SINAP - Sinap Is Not A Poker - Custom 60% Matrix Keyboard
« Reply #14 on: Wed, 17 August 2016, 03:52:42 »
That's one hell of a bump, but definitely worthwhile! Looks really nice, how does it feel to type on? Are you using both sides of the spacebar for space, or one for something else?


thanks! it feels nice actually, I haven't played around with gateron browns all that much and they're pretty neat. the plate is standard and wedged in pretty tight so there isn't much give even though the case is relatively soft compared to normal cases. I currently have the left thumb button bound to shift, but I find I'm not using it much. I haven't figured out the function layer yet but I might bind it to that, as it would make pressing right hand function buttons super easy. I also need to figure out the home/end keys, as I want those to be kind of multi-purpose; I might end up having 3 function keys with the only difference being what those two keys are bound to. clearly, I have to play around with it more, but that's the fun part!