Author Topic: Shergo v1.0 - Designing and building my first custom keyboard  (Read 13745 times)

0 Members and 1 Guest are viewing this topic.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
So here I am, feeling inspiration from the many awesome geekhackers I've been reading about for a month. I'm joining the party by building my own custom build.

A quick backstory: I switched to dvorak three or four years ago. I've know about mechanical keyboard but never been interested in them. That was until a month and a half ago when I stumbled upon this world of custom built keyboards (found the ergodox then geekhack). Now the idea of designing and building my own keyboard excites me (as of now I still have no interest in owning a 'standard' mechanical keyboard).

My goal: A split ergonomic programmable keyboard.

I'm doing my best to keep it as economical as possible without cutting too many corners.

So far I'm solid on:
- Gateron Browns
- Teensy 2.0
- DSA PBT blanks
- columnar stagger
- split design (hopefully two physical parts)
- hand wired
- integrated trackpoint

I'm thinking the following but open to change:
- 40%-60% layout. Currently http://www.keyboard-layout-editor.com/#/layouts/ca1d0773781f4a4c737b505141caffe7 but the 'bkspace' and left 'ctl shift' don't save correctly, you'll need to highlight them and push up arrow a few times. There is also a box of keys that still need a home.
- Two physical halfs connected by...something (possibly hdmi but that might be pretty tough to hand wire...but I do _want_ it to be detachable.
- Acrylic case cut at the local Makerspace.
- I also think it would be cool to make a detatcheable bottom layer to make the two halves usable on my lap. I'd have to settle for a fixed angle and such But this is just an idea...not needed.
- Calling it the Shergo v1.0 ...cause it's shaymdev's ergo board...I know...kinda lame.

Current blockers/things I'm trying to figure out (this is where I could use some help!)
- Thumb cluster. I'm not convinced of my current cluster. I want thumbs to be primarily responsible for the pinky's old jobs (modifiers, backspace, enter, etc)...which means a bunch of keys. I'm a keyboard shortcut guy so I want to still be able to use keyboard shortcuts without problem (like ctrl-shift-esc, ctrl-tab, shift-tab, ctrl-arrows, etc)
- Trackpoint location/buttons (to include or not to include dedicated buttons).
- Whether or not to include /=\ on the primary layer somehow (probably one more column on the right pinky)
- Case design. Probably acrylic layers... So maybe that won't be too much new effort once I've got my plate figured out.

I'm planning on using swill's plate builder to get the main key clusters and manually editing the output to handle my rotated keys and the pointing stick and stuff.

Any feedback would be appreciated!


update: link fixed...silly xkcd substitutions plugin changed keyboard to leopard.
« Last Edit: Wed, 13 May 2015, 06:25:33 by shaymdev »

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #1 on: Mon, 04 May 2015, 14:49:56 »
Here's my first prototype. I did the left hand first then decided I wanted a to try a bit more stagger in the right hand.

I printed out on standard paper then used a hobby knife (like x-acto knife) to cut it out in the cardboard.

99493-0
99484-1
99482-2
99480-3

« Last Edit: Mon, 04 May 2015, 17:09:27 by shaymdev »

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #2 on: Fri, 08 May 2015, 09:13:23 »
I'm now leaning toward getting rid of two of the thumb keys and making use of the tap vs hold functionality that tmk offers so that I can make the modifiers more useful if pressed alone. I'm still not sure which keys will do what. I've also dropped the lowest key on the pinkie and added another column outside the pinkies. I didn't want to but I decided I wanted the / - \ to  to be on the main layer and not have to differ too much from a standard (dvorak) layout.
 Now looking like this: http://www.keyboard-layout-editor.com/#/layouts/2c63651cd5aaabb3f2bd415b95b211e6 (that furthest thumb key on the left hand still doesn't save correctly...)
« Last Edit: Fri, 08 May 2015, 09:15:41 by shaymdev »

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #3 on: Fri, 08 May 2015, 09:54:40 »
I'm debating on how I want to make my case. I'll probably settle for some type of acrylic sandwich case since that will be easy and cost effective.

Also, I like the thoughts on this discussion, and am considering using the tactic in this post. If I do that I'll have to make sure to leave enough room for my pointing stick hardware and the teensy...which will just have to be off to the side of the keys somewhere, but I think the thinner base will be worth the bigger outline.
« Last Edit: Fri, 08 May 2015, 09:56:22 by shaymdev »

Offline technomancy

  • Posts: 134
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #4 on: Fri, 08 May 2015, 10:28:12 »
I'm debating on how I want to make my case. I'll probably settle for some type of acrylic sandwich case since that will be easy and cost effective.

Looks great! I must say the fn layer looks awfully familiar; I'm glad my designs were useful! =)

I agree with the choice to drop the stacked thumb keys; that looked uncomfortable. According to obra with his Mark 1-13 series, it never worked out comfortably anyway.

Personally I think that mirroring the modifiers on both sides is only necessary when you're hitting them with your pinkies; if you're using your thumb to hit it then you have all your pinkies free. But if you've got the extra space for it, it doesn't hurt.

Looking forward to seeing how this turns out.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #5 on: Fri, 08 May 2015, 11:02:44 »
Looks great! I must say the fn layer looks awfully familiar; I'm glad my designs were useful! =)
Indeed! I was very close to pulling the trigger on an Atreus but decided I wanted some more keys and a two part build. Thanks for your awesome work (I am using Leiningen this morning too...so you've influenced me in more than just my custom keyboard)

I should probably give credit to the other people who have influenced my build, but I don't remember all the people/places/posts that have done so... I've been doing a LOT of reading on here and DT over the last month or so. suka, lowpoly, technomancy, dox, jacobolus, peterstock, obra, and many many more.

Personally I think that mirroring the modifiers on both sides is only necessary when you're hitting them with your pinkies; if you're using your thumb to hit it then you have all your pinkies free. But if you've got the extra space for it, it doesn't hurt.

I'd never really thought about the need for mirrored modifiers being tied to the pinkie location. I guess the other reason I was thinking the mirror would be useful is for one-handed operation...but that is usually just done with the left hand (while the right is on the mouse...but I'll have a track point so that shouldn't happen too much ;) ). I'd rather use the 'extra space' for other things. So I'll have to toy with this. It's easy to pretend type sentences on my non-functional-cardboard-prototype but keyboard shortcuts and programming stuff (symbols and such) are a bit harder to get a feel for.

I've been using autohotkey (script attached for anyone interested) to test out the basics of the symbols and numberpad setup on my standard keyboard for a couple of weeks. I'm excited to use them on a better physical layout than my logitech rubberdome.
« Last Edit: Fri, 08 May 2015, 11:53:32 by shaymdev »

Offline technomancy

  • Posts: 134
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #6 on: Fri, 08 May 2015, 20:35:14 »
I should probably give credit to the other people who have influenced my build, but I don't remember all the people/places/posts that have done so... I've been doing a LOT of reading on here and DT over the last month or so. suka, lowpoly, technomancy, dox, jacobolus, peterstock, obra, and many many more.

Oh, I am not complaining; I am just glad you like the design. Of course any new design is going to be influenced by lots of sources out there.

I'd never really thought about the need for mirrored modifiers being tied to the pinkie location. I guess the other reason I was thinking the mirror would be useful is for one-handed operation...but that is usually just done with the left hand (while the right is on the mouse...but I'll have a track point so that shouldn't happen too much ;) ). I'd rather use the 'extra space' for other things. So I'll have to toy with this.

Yeah, the nice thing about this particular question is that it's not tied into the physical design in any way, so as long as you don't get labeled keycaps you can play around with it in the firmware to find the optimum layout without having to rebuild anything.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #7 on: Tue, 23 June 2015, 11:29:14 »
I've only gotten little bits of time to work on my build but this morning I made a second prototype in cardboard. I'd included the two keys on the left half as a last minute thing only to remember that is where my teensy is gonna go. As I look at it now I *might* be able to fit the teensy under the thumb keys, which would be nice because then I can put it in the right hand side with the pointing stick (the extra hole right now) and less wires would need to bridge the gap.

Is there anything wrong with turning a key sideways? I did it near the trackpoint module so that I could slide the trackpoint up closer to the keys. If I turn two of the keys sideways then their pins don't get in the way.

I've also noticed that the key spacing seems a bit excessive. I thought I designed it with the standard measurements plus taking into account a bit of kerf for the laser cut (I think I did about .5 mm kerf. Is the standard space between keys 19.05 mm? Maybe I've accounted for kerf in the wrong way.

I've attached my current svg files. I've been using inkscape and the 'layers' to align everything. There are the left and right hand files (separate) and then some files with the layers separate (prepping for the laser cutter).

Anyone willing to take a peek at my files and measure them a bit to see if I've done anything wrong?

Any other feedback would be appreciated!

Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #8 on: Tue, 23 June 2015, 23:16:13 »
Key spacing is only excessive once it becomes too wide-spaced for your hands.  I've got like a 1cm gap between a few keys on the board I'm making - don't sweat it too much.  I do seem to recall that 3/4" (19.05mm) is the standard spacing.  You wouldn't be the first person ever to get a kerf setting wrong.  It's the sort of thing to double-check before sending an order to the printer. 

I find that the standard spacing leaves a surprisingly large gap, but I suppose it allows for wobbly keys and sloppy assembly, and the caps will never, ever strike each other.

Turning a key sideways is only a problem if your OCD prevents you sleeping at night ;)

I really like the arc of thumb keys you have there.

I recommend that you consider tenting the halves, and if you do try it - try to use wedges or something to vary the height.
Jesus loves you.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #9 on: Thu, 25 June 2015, 13:53:43 »
Key spacing is only excessive once it becomes too wide-spaced for your hands.  I've got like a 1cm gap between a few keys on the board I'm making - don't sweat it too much.  I do seem to recall that 3/4" (19.05mm) is the standard spacing.  You wouldn't be the first person ever to get a kerf setting wrong.  It's the sort of thing to double-check before sending an order to the printer. 

I find that the standard spacing leaves a surprisingly large gap, but I suppose it allows for wobbly keys and sloppy assembly, and the caps will never, ever strike each other.

I made some cuts at the local makerspace last night and it looks like the keyspacing will be much tighter than my oh-so-precise-cardboard-prototype. There is little to no room for being much tighter with these key caps.

I did however run into a problem, the key on each end of the thumb cluster was in the way of the nearest key to it. I had to move them down a bit. Assuming my final product ends up like last night seemed to be indicating, I'll be happy with the spacing.

I really like the arc of thumb keys you have there.

I recommend that you consider tenting the halves, and if you do try it - try to use wedges or something to vary the height.

Thanks, hopefully I can get used to all the thumb keys.

Yes, I'd like to figure out a nice way to do the tenting. I'm considering just making a few tapped holes in the bottom later that I can put a small bolt into as the elevated feet. Its a simple basic idea so far that would be removable. The adjust-ability would come by way of using different sized screws. Not my favorite plan so I'm open to new ideas. Whatever it be I want it to be simple, and portable (I'll probably be hauling the board to-from work and such).

I've ordered a bunch of usb type c receptacles (with small break outs) and cables fromhttps://www.fasttech.com/products/2412400 to hopefully implement a detachable cable between the halves.

After making a bunch of cuts last night I realized that there were many things that I could have been better prepared with and probably should have figured out before hand. I didn't test my design with the keycap sizes drawn out, which is why a few of my arched keys were touching. I also made the screw holes on a metaphorical screw size...which looking back I have no idea why I used 6mm...thats huge. I resized them for my last cut to 3mm I believe. Being a noob with a laser cutter I didn't realize the value of test cuts and using up small bits of scrap space in my acrylic sheet. I cut the whole keyboard before realizing my switch plate needed modifications.

I ordered a couple of rgb leds on my fasttech order in hopes of being able to use them to indicate the active layer. I think I'll cross that bridge when I get to the software side of this project.

I attached a blurry snapshot from last night. I am so new to much of this and that place had me marveling in the awesome nerdness.
« Last Edit: Thu, 25 June 2015, 22:46:39 by shaymdev »

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #10 on: Fri, 10 July 2015, 16:55:05 »
So I'm finally starting little bits of the build itself! I just received what I hope to be my last parts. I ordered some usb type c breakout boards. I'm using them to bridge the gap between the two halves since they are small and have lots of wires.  But I'm a bit worried as I look closer at them and how/where I will integrate them.  They're gonna have to be tucked right up against a switch.



 My primary concern is which connection pads I should use for the 11 wires. I was assuming I could just use any of them. Will there be any problem with using the ones labeled shield or the ground or VCC ones?





Edit:
Just thinking a bit more... Did I completely misunderstand how usb c works? Can I not use b2 and a2 for different things and still expect the connector to work upside down?
« Last Edit: Fri, 10 July 2015, 17:03:46 by shaymdev »

Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #11 on: Fri, 10 July 2015, 22:46:44 »
The wires don't care what goes through them, and the electrons don't care about silkscreened labels.  As long as you get continuity on the signal paths, you can use whatever connector and connections float your boat.
Jesus loves you.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #12 on: Fri, 10 July 2015, 23:17:36 »
That's what I thought, but I was reading about the usb c standard and how the cable connection can be upside down and wondered if the wire pairs were what made this possible...but I think it's about how you implement the standard in your device. Thanks for the response!

Do I need to worry about grounding?

Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #13 on: Sat, 11 July 2015, 00:02:54 »
"it depends"

If you don't need to worry about grounding and you do something to ground your parts, you lose only time.  If you needed a ground and zap the controller because you didn't implement any grounding, you're out a controller.

P.S. https://geekhack.org/index.php?topic=73470.0
Jesus loves you.

Offline squishygnomes

  • Posts: 14
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #14 on: Sat, 11 July 2015, 02:06:06 »
Yes, you have misunderstood how the USB C reversibility works. To use all pins and maintain reversibility you need to detect orientation with the CC pins. Normally this is done by the controller so it may be possible to use the teensy to do it but programming is not my strong suit.

I have no idea how the pins are broken out on that board but if A2 and B2 correspond to a rotationally symmetrical pair, then you can't use them for different things without detecting orientation.

I believe you can still get your 25 keys across in a 5x5 matrix without detecting orientation with CC pins though. The basic idea is to use 2 pins for each row/column, one on each side of the connector, to make it reversible.

The USB C pinout looks like this:

Code: [Select]
GND  TX1+ TX1- Vbus CC1   D+   D-  SBU1 Vbus RX2- RX2+ GND
 |    |    |    |    |    |    |    |    |    |    |    |
=+====+====+====+====+====+====+====+====+====+====+====+=
 |    |    |    |    |    |    |    |    |    |    |    |
GND  RX1+ RX1- Vbus SBU2  D-   D+  CC2  Vbus TX2- TX2+ GND

Since it is rotationally symmetric, if you use 2 pins for each row/column you can achieve reversibility of 12 pins

Since you only have 18 pads + shield on the breakout board, we can infer Vbus and GND's 4 wires each have been merged into 1 pad each. The pictures confirm this.

The pinout we can use now looks like this:

Code: [Select]
GND  TX1+ TX1- Vbus CC1   D+   D-  SBU1 ████ RX2- RX2+ ███
 |    |    |    |    |    |    |    |    |    |    |    |
=+====+====+====+====+====+====+====+====+====+====+====+=
 |    |    |    |    |    |    |    |    |    |    |    |
███  RX1+ RX1- ████ SBU2  D-   D+  CC2  Vbus TX2- TX2+ GND

This means that we have 10 rotationally symmetric pins, exactly what you need. Now just attach the 8 rotationally symmetric pairs to each other, then all of them + GND and Vbus to the controller or matrix.

Note that I haven't actually tested this method yet, although I also plan to use it in my split keyboard, just with 6 fewer keys. If you decide to try and do it this way, please document any issues since I'll be doing something very similar eventually.  AFAIK it will work but I might be making some stupid mistake.


David is right about naming not mattering and his approach would normally be fine but it requires more planning than "hook it up to anything" if you want to it to be reversible. Since the connector is already reversible I HIGHLY suggest making the effort to keep it that way, you'll have a lot of headaches plugging it in the wrong way if you don't.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #15 on: Sat, 11 July 2015, 17:57:44 »


This means that we have 10 rotationally symmetric pins, exactly what you need. Now just attach the 8 rotationally symmetric pairs to each other, then all of them + GND and Vbus to the controller or matrix.

Since the connector is already reversible I HIGHLY suggest making the effort to keep it that way, you'll have a lot of headaches plugging it in the wrong way if you don't.
Thanks for the reply, I was hoping to be able to not have to do a 5x5 but I think I agree with you that is totally worth it in order to keep the connector flippable.  I'll let you know how it goes. I'm also planning on using one of these usb c boards for the connection between the teensy and computer do I'll have to come back to the spec and make sure I implement the usb 2.0 correctly... But I think that one is fairly easy.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #16 on: Sat, 11 July 2015, 18:07:54 »


P.S. https://geekhack.org/index.php?topic=73470.0

Great idea! I was just thinking today about how I was gonna handle the tilt/tent angle of my board!

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #17 on: Mon, 13 July 2015, 22:52:53 »


The pinout we can use now looks like this:

Code: [Select]
GND  TX1+ TX1- Vbus CC1   D+   D-  SBU1 ████ RX2- RX2+ ███
 |    |    |    |    |    |    |    |    |    |    |    |
=+====+====+====+====+====+====+====+====+====+====+====+=
 |    |    |    |    |    |    |    |    |    |    |    |
███  RX1+ RX1- ████ SBU2  D-   D+  CC2  Vbus TX2- TX2+ GND

This means that we have 10 rotationally symmetric pins, exactly what you need. Now just attach the 8 rotationally symmetric pairs to each other, then all of them + GND and Vbus to the controller or matrix.

So I was just trying to test the usb c idea some more... I think I might have run into another issue. I could be wrong (first time? I think not!) but my cable might not have all the wires in it. I connected each end to one of my little receptacle breakouts. I was trying to test continuity and I could get pad 11 light the led when touching pad 2. And again for 10 and 3 and again for 8 and 8, and again for VCC and VCC and again for GND and GND. But that was it. 5 6 and 7 didn't ever seem to light up no matter the combination.

Does this sound reasonable and once again I've misunderstood something crucial? Or should I be able to get them to connect from one end of the cable to the other?

Any thoughts?

Offline squishygnomes

  • Posts: 14
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #18 on: Tue, 14 July 2015, 06:18:29 »
USC C cables can still be fully featured with only 15 wires or fewer for legacy or USB 2.0 so it's very possible you are missing some wires.

I plan to make my own cables so I haven't put much thought into how a premade cable would work. Unless you want to go read the USB C spec I'd suggest just asking fasttech about how the cable is wired up and going from there.

If it is not possible to use the premade cables male breakout boards and casings were only 50c each anyway.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #19 on: Tue, 14 July 2015, 10:15:57 »
USC C cables can still be fully featured with only 15 wires or fewer for legacy or USB 2.0 so it's very possible you are missing some wires.

I plan to make my own cables so I haven't put much thought into how a premade cable would work. Unless you want to go read the USB C spec I'd suggest just asking fasttech about how the cable is wired up and going from there.

If it is not possible to use the premade cables male breakout boards and casings were only 50c each anyway.

Where did you get male breakouts and casings? Do you think you'll be able to hand solder that many wires in such a small space (assuming they're small, otherwise your cable will be huge)?

My other option I guess is to look into detecting the orientation of the cable...but I don't know how I'll go about doing that.

Offline squishygnomes

  • Posts: 14
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #20 on: Tue, 14 July 2015, 10:32:47 »
USC C cables can still be fully featured with only 15 wires or fewer for legacy or USB 2.0 so it's very possible you are missing some wires.

I plan to make my own cables so I haven't put much thought into how a premade cable would work. Unless you want to go read the USB C spec I'd suggest just asking fasttech about how the cable is wired up and going from there.

If it is not possible to use the premade cables male breakout boards and casings were only 50c each anyway.

Where did you get male breakouts and casings? Do you think you'll be able to hand solder that many wires in such a small space (assuming they're small, otherwise your cable will be huge)?

My other option I guess is to look into detecting the orientation of the cable...but I don't know how I'll go about doing that.

I got my stuff off taobao, this listing to be specific. Hasn't arrived yet so I don't really have anything to say about them but there were plenty of other options from chinese sites.

I'm actually only running 9 wires in the cable so it shouldn't be too thick. Rather than running 2 duplicate wires in the cable i'm just going to split each wire into 2 right I connect it to the male then rejoin them just after the female and before the controller. I get the best of both worlds by keeping easy reversibility and minimising bulk. You don't need huge gauge wire anyway.

I can't help with detecting orientation using CC pins, sorry. I'm sure the information is in the spec somewhere but I don't understand it well enough.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #21 on: Wed, 15 July 2015, 00:59:25 »


The pinout we can use now looks like this:

Code: [Select]
GND  TX1+ TX1- Vbus CC1   D+   D-  SBU1 ████ RX2- RX2+ ███
 |    |    |    |    |    |    |    |    |    |    |    |
=+====+====+====+====+====+====+====+====+====+====+====+=
 |    |    |    |    |    |    |    |    |    |    |    |
███  RX1+ RX1- ████ SBU2  D-   D+  CC2  Vbus TX2- TX2+ GND

This means that we have 10 rotationally symmetric pins, exactly what you need. Now just attach the 8 rotationally symmetric pairs to each other, then all of them + GND and Vbus to the controller or matrix.

So I was just trying to test the usb c idea some more... I think I might have run into another issue. I could be wrong (first time? I think not!) but my cable might not have all the wires in it. I connected each end to one of my little receptacle breakouts. I was trying to test continuity and I could get pad 11 light the led when touching pad 2. And again for 10 and 3 and again for 8 and 8, and again for VCC and VCC and again for GND and GND. But that was it. 5 6 and 7 didn't ever seem to light up no matter the combination.

Does this sound reasonable and once again I've misunderstood something crucial? Or should I be able to get them to connect from one end of the cable to the other?

Any thoughts?
Ok... So I WAS wrong. I tested it more thoroughly tonight and I'm confident is going to work as @squishygnomes described. I think I was thrown off because the 5, 6 and 7 are only implemented in the one way. Like with a given cable orientation a7 on the left connects to the b7 on the other end of the cable but b7 on the left doesn't connect to a7 on the right. I guess this confused me because it was different than how the 2,3, 8,10, and 11 pins work.

I'll attach a snapshot of my scribbled notes of my plan for wiring in case anyone wants to see. It's not pretty, they were just scribbled notes to help me keep it straight.



Another question. Since I'm gonna have to do a funky wiring job to get a 5x5 matrix on the left, should I do a similar one on the right so that they kind of match or should I let the one in the right be a 6x4 since it is near the microcontroller and doesn't have to be wired across the split?

Offline squishygnomes

  • Posts: 14
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #22 on: Wed, 15 July 2015, 03:40:19 »


The pinout we can use now looks like this:

Code: [Select]
GND  TX1+ TX1- Vbus CC1   D+   D-  SBU1 ████ RX2- RX2+ ███
 |    |    |    |    |    |    |    |    |    |    |    |
=+====+====+====+====+====+====+====+====+====+====+====+=
 |    |    |    |    |    |    |    |    |    |    |    |
███  RX1+ RX1- ████ SBU2  D-   D+  CC2  Vbus TX2- TX2+ GND

This means that we have 10 rotationally symmetric pins, exactly what you need. Now just attach the 8 rotationally symmetric pairs to each other, then all of them + GND and Vbus to the controller or matrix.

So I was just trying to test the usb c idea some more... I think I might have run into another issue. I could be wrong (first time? I think not!) but my cable might not have all the wires in it. I connected each end to one of my little receptacle breakouts. I was trying to test continuity and I could get pad 11 light the led when touching pad 2. And again for 10 and 3 and again for 8 and 8, and again for VCC and VCC and again for GND and GND. But that was it. 5 6 and 7 didn't ever seem to light up no matter the combination.

Does this sound reasonable and once again I've misunderstood something crucial? Or should I be able to get them to connect from one end of the cable to the other?

Any thoughts?
Ok... So I WAS wrong. I tested it more thoroughly tonight and I'm confident is going to work as @squishygnomes described. I think I was thrown off because the 5, 6 and 7 are only implemented in the one way. Like with a given cable orientation a7 on the left connects to the b7 on the other end of the cable but b7 on the left doesn't connect to a7 on the right. I guess this confused me because it was different than how the 2,3, 8,10, and 11 pins work.

I'll attach a snapshot of my scribbled notes of my plan for wiring in case anyone wants to see. It's not pretty, they were just scribbled notes to help me keep it straight.

Show Image


Another question. Since I'm gonna have to do a funky wiring job to get a 5x5 matrix on the left, should I do a similar one on the right so that they kind of match or should I let the one in the right be a 6x4 since it is near the microcontroller and doesn't have to be wired across the split?

I'd do both sides 5x5 since it makes more sense to me but I don't see why you couldn't do 4x6 if you wanted.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #23 on: Fri, 17 July 2015, 09:24:08 »
I'm trying to figure out the wiring of the 5x5 matrix. Is there any functional difference with where I connect the column? Below are two examples, rows in red, columns in blue. The left inner most three keys are a 'row' and need to be connected to the columns.

I've got one example where they all connect to the top of the other columns.

And one example where they connect in random (easy to reach) parts of the column.

So is there any difference in function? Will they both be programmed the exact same way?

Offline squishygnomes

  • Posts: 14
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #24 on: Fri, 17 July 2015, 10:40:07 »
So long as each key has a unique row and column combination and proper diodes it should work fine. I don't know how T intersections like on the T/5/F5 of the second image but I don't see other people do that and there may be a reason.

Apart from the T intersection (possibly) both of them look like they would work.

Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #25 on: Fri, 17 July 2015, 21:39:43 »
It's just a wire.  Tapping it in the middle to make a T is the same electrically as wrapping the wire around so everything is along the same line on a drawing.
Jesus loves you.

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #26 on: Fri, 17 July 2015, 21:47:47 »
I strongly recommend against using DSA caps, if your goal is ergonomics, and your switches are all being clipped into a flat plane. DSA keycaps don’t have a height step between the home row and further away rows, and as a result require either more hand movement or less efficient finger motions.

Edit: Just noticed you’re scrapping the number row. In that case, nevermind. There isn’t enough reach for it to be too big a deal.

You might find this thread useful:
https://geekhack.org/index.php?topic=62848
« Last Edit: Fri, 17 July 2015, 21:50:49 by jacobolus »

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #27 on: Sat, 18 July 2015, 11:46:40 »
I strongly recommend against using DSA caps, if your goal is ergonomics, and your switches are all being clipped into a flat plane. DSA keycaps don’t have a height step between the home row and further away rows, and as a result require either more hand movement or less efficient finger motions.

Edit: Just noticed you’re scrapping the number row. In that case, nevermind. There isn’t enough reach for it to be too big a deal.

You might find this thread useful:
https://geekhack.org/index.php?topic=62848
Yeah, I think because I've only got the one row above and one below the home row that out won't be too bad. That being said I think I'd probably really like another profile that gives some dimension to the board. I'll keep my eyes peeled for a cheap set that would accommodate my layout and please my eyes and fingers!

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #28 on: Sat, 18 July 2015, 20:53:24 »
I know I'm a super noob but this tiny tiny soldering on the usb c breakouts is too difficult. I'm afraid saving this one is probably out of the question, right?




I think I'm in need of some advice for how to solder tiny things like this.
« Last Edit: Sat, 18 July 2015, 21:04:07 by shaymdev »

Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #29 on: Sat, 18 July 2015, 23:18:32 »
The main thing is a tiny soldering iron tip and tiny gauge solder.  What's good for through-hole components may not be for SMD scale devices and baby interconnects like this.
Jesus loves you.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #30 on: Mon, 03 August 2015, 22:44:26 »
I haven't gotten a new solder tip yet...and with my impatience tried again using a hacky diy solution (http://cdn.instructables.com/F8G/X19D/FROA0ONL/F8GX19DFROA0ONL.MEDIUM.jpg) to try and get me by. It worked great for a few pads then I ended up ruining another port/breakout board. So I'm being patient by necessity (I only have enough parts to cover my needs, with no margin for error). In the meantime I couldn't wait to try out just the right half since that's where the teensy is housed and I don't need to have my usb-c stuff figured out.

I built a basic firmware (none of my extra layers or anything) with tmk using matt3o's guide. I used the gh60 as a base since that's what he recommended. In my haste I didn't change the led.c and tried my keyboard. It was going crazy outputting 'xpbk'. Which doesn't make much sense since those letters don't share columns or rows (even in my twisted layout to achieve a 5x5 matrix). But then I remembered that I have the OS on my computer doing the dvorak layout stuff for me. So I switched it to qwerty and was getting 'brnv', which makes more sense since those do all share a column. Quick google search led me to http://deskthority.net/workshop-f7/tmk-keyboard-firmware-collection-t4478-150.html where they were having '5TGV' repeated when capslock was held. He found it was caused by not changing led.c. So of course I remember right then that I skipped that part of the tutorial, which makes me dumb.

Fixed that real quick and now my right half works! Now I've just gotta figure out that blasted miniature soldering for the usb-c ports and hopefully be on my way!

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #31 on: Tue, 04 August 2015, 13:09:52 »
I just had a quick thought.

If I were to put a micro controller in each half I could plug both keyboards into the computer and have it work just fine (except on macs...but that's ok). I'm wondering if I could do that and have the connection from one half go into the other half and 'daisy chain' onto the cable that connects to the computer. I'm certain this type of thing is possible but I'm not sure how to accomplish it. I don't have room to put a usb hub in there.

Any ideas from anyone?

Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #32 on: Tue, 04 August 2015, 20:19:26 »
You need at least a baby hub for that to work.  You can get them about as small as a thumb drive, especially if you are willing to cut unused ports off a 2 or 4 port unpowered hub. If you're going two controllers, maybe you will consider going with two full length cables and run them straight back on the desk.  It doesn't really look worse, and could look better, than one cable back and one across.

If the twisted-on copper wire didn't work, I'm giving even odds it didn't work because it twisted on the tip of the iron.  Solve that by running a LOT more wire on the iron.  WAY up on the shaft of the iron where it stays cold, maybe even onto the handle.  Loose coils, like you were trying to make a checkerboard, not tight like is shown on the tip in that picture.  And pull hard when you twist. Lots of wire, lots of friction.  Not so much slipping.  Yes it looks cheezy - but hey, if it works...
Jesus loves you.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #33 on: Wed, 05 August 2015, 12:21:30 »
You need at least a baby hub for that to work.  You can get them about as small as a thumb drive, especially if you are willing to cut unused ports off a 2 or 4 port unpowered hub. If you're going two controllers, maybe you will consider going with two full length cables and run them straight back on the desk.  It doesn't really look worse, and could look better, than one cable back and one across.

Seeing as how I already have to shave a bunch of plastic off the underside of my switches to get the teensy to fit...I probably won't have room to get a baby hub of any sort in there. It was an idea that I can see won't work with my current build, but I'll keep it in mind for the future. I probably won't go with two controllers in this build unless I get into some real sticky spots with the connection between the two halves.  Also I might try the wire-wrapped tip again, if I do I'll try your suggestion to avoid the wire moving on me.

I still don't know how Ill address my smd soldering issues. Fine tips for my cheap-o iron seem difficult to source and I was told that the pads coming off could also be caused by too high of temperatures. I really don't want to have to buy another iron, but I think I might have to get one with better tip availability and temperature control (of some sort). I'm thinking maybe this one . I also got thinking that the stiff magnet wire that I'm using might also create a lot of leverage/stress on the solder pads when I move things around, that combined with the heat is popping them off. I might try to rig up some type of harness or something to hold all the wires in place and relieve the tension on the solder pads. Not sure how I'll do it, but it sounds like it might help...

Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #34 on: Wed, 05 August 2015, 19:29:54 »
OK if you're thinking of getting a better iron, do yourself a huge favor and get one that's better-enough to be more useful.  Changeable tips WITH various sizes easily available and a digital readout or at least marked temperatures on the dial, at a minimum.   That one has 1-8 markings and 60W is likely more than you'll need for anything keyboard related. 

If you don't mind a chinese knockoff, this is the sort of thing I'm thinking of.  I'd like to recommend a $170 Weller or Hakko but...
http://www.ebay.com/itm/Digital-Soldering-Station-937D-with-Cel-Fah-Switch-5-Iron-Tip-More-SMD-/181687669706?hash=item2a4d6dd3ca
http://www.ebay.com/itm/GAOYUE-936B-SMD-Digital-Dispaly-Solder-Station-Soldering-Iron-Welding-50W-/331602134263?hash=item4d350704f7

If magnet wire is moving too much, hot glue is a decent if ugly way to hold it steady.
Jesus loves you.

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #35 on: Thu, 06 August 2015, 04:43:14 »
Definitely look for used soldering gear on ebay. You can save a ton of money that way.

Ask Parak on IRC (#geekhack channel on freenode, or click 'IRC' in the bar at the top of this page) if you want specific recommendations.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #36 on: Mon, 10 August 2015, 20:56:03 »
I made some more progress over the weekend. I think I've gotten past the usb c port hurdle that was blocking my progress. I used the hacky work around for my fine tip soldering needs and used a really thin wired ribbon cable that was very much more flexible than the magnet wire I've been using. I think the wire wrapped iron also helped because it was harder to over heat the pads and pull them off (though I managed to still pull one off I tried to uncover the trace and solder to that, holding things in place with a bit of electrical tape).

I've got a few more connections to solder up in the left hand then I think I'll be ready to test my firmware (because I'm too impatient to wait). I'm still debating on any type of led indicators for layer or layout but I'll probably try something since I purchased some white and some rgb leds.


Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #37 on: Tue, 11 August 2015, 12:05:56 »
This morning I realized I'd wired up the left hand columns to the wrong pads on the port to match the right hand side. I rewired them and hurried along to get the left hand side done. Once I loaded my firmware and tested the keys I found two problems. I still managed to get two columns flipped on the left hand side and the 'g' key (right middle finger top row) where the port comes in and I had to shave the key plastic down...it physically sticks real bad. Apparently I did a poor job shaving the key down and got some plastic in the way. I don't have switch holes in my plate that can allow for switches to open...so I'm not sure how I'm gonna address this issue. I don't want to have to completely desolder and deglue the switch...but I might have to unless anyone has any other ideas. I'll try to post pictures of it next time I'm near the board. Other than that the basics are done and working! Still have a bunch to do for finishing touches (leds, hole for teensy reset, bevel sharp edges, feet, etc) ...and get the pointing stick wired up and put in.

Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #38 on: Tue, 11 August 2015, 21:28:48 »
You shaved the body of the switch itself, to clear the controller?  I'd have said to try shaving the case to move the controller a little first, because the keys are moderately precision machines.  Do post a closeup or two of that area.
Jesus loves you.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #39 on: Tue, 11 August 2015, 21:48:39 »
Yeah, I didn't even get a chance to look at it after I noticed it was sticking. This afternoon I got a chance and it was as I suspected. I'd shaved the switch plastic under the led spot which is fine... But I went a touch farther and some of the melted shavings were pressing against the switch stem when depressed. 30 seconds with a razor blade and the problem was solved. Sorry I forgot to take pictures when I did it. I'll try to remember that detail shot in my final write up. Rather than rewire the flipped columns on the left hand side, I just changed them in the keymap_common.h in the tmk firmware. I also found a mistake in that file that was causing the tab key to be wrong. After fixing those few things real quick I got it typing! Like I said before I've still got some finishing touches to make and still need to figure out the trackpoint and make some changes to the modifier layout but I'll show you guys the sneak peek!

Offline VoteForDavid

  • Posts: 221
  • Location: Texas
    • Vote For David
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #40 on: Wed, 12 August 2015, 19:52:10 »
Hooray and score one for programmable keyboard firmware!

Jesus loves you.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #41 on: Wed, 19 August 2015, 21:06:38 »
I've been typing on the unfinished board for about a week now and I'm loving it. The staggered columns rock. It's taking some time but I'm getting used to them, and the thumb clusters as well but they're a bit more difficult.

Since it's unfinished though the cables can't be easily removed and reinserted since the ports aren't fastened in place. Because of this I think one of my solder joints or pads has been compromised. The keyboard stops working and I have to make sure the cable/port are at a certain angle.

So I think my next step is to somehow fuse the top two layers then I can secure the port into place. I'm not sure the best way to fuse the two layers. It seems like I've seen mention of using acetone and acrylic shavings to make an adhesive. I've also heard of specific chemicals to bond them. Any advice or tips?

I'm also thinking I'll probably just hot glue the port into place. I'm not sure if that will be strong enough to handle plugging/unplugging those usb c plugs over and over and over, they seem to require quite a bit of force to get seated. Because of this I may look into creating some sort of post or screw that go through a little hole I'll make into the port's breakout board. Though there may not be enough room for that sort of thing.
« Last Edit: Wed, 19 August 2015, 21:17:41 by shaymdev »

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #42 on: Mon, 24 August 2015, 09:25:32 »
Little update: Over the weekend I tried to work on the pointing stick and the leds that I want to use for layer indication. Instead of accomplishing anything I broke it. The weak connections made after trying to get around the lifted solder pads broke off of the port that connects teensy to computer. This morning I took a few minutes to try and get it fixed to a working state again...because I've been using it for a week or two now and didn't want to have to go back to work without it!

I I found that three of the connections on that port had broken, vbus, and the two data pins for USB. Luckily the matching data pins on the other side of the port were still holding strong, so I cut my losses and just got the vbus connected again (I tried to get the others but failed). The port will no longer be flippable, but I'm ok with that at this point. I did something I should have done from the beginning and  hotglued the ports to the acrylic middle layer. I don't know how strong they'll hold but my initial tests indicate it might be good enough.

I took the opportunity to snap a few pictures of the switch that I had cut to give room for the port/wiring. You can see the spring exposed in there. Like I said earlier, a bit of plastic had just gotten push in and was catching the switch when it was depressed. I removed the plastic with a knife and it's all good now.

Offline Heliobb

  • Posts: 94
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #43 on: Sun, 30 August 2015, 05:03:03 »
Sad to hear that.

I'm planning to do nearly the same as you. For the moment I've just ordered a old cherry keyboard to grab some keycaps and switches at cheap price and make a prototype with cardboard like you. I'm quite stuck with the layout for the moment because I'm writing very often accents יאש and I'm using vim. Don`t want to move hjkl keys and to have easy accent of punctuation for programming. Probably make a 60% but I`m completely stuck with all the thoughts with thumb cluster (I've probably read to much on it).
Novatouch TKL - Leopold FC660C - PBT my life.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #44 on: Wed, 21 October 2015, 12:16:29 »
I haven't forgotten about the thread. I've just been caught up in other things. I haven't finished the build yet but I've been using it as my daily driver all along. I still need to put the pointing stick in and fix the weak ports (I haven't unplugged them for months for fear of breaking them). I am considering grinding the edges down to soften it up a bit but I never rest against them so that's not too big a deal. I'm also thinking I've got enough extra parts that I'll probably make another one to keep at home.

I grabbed a few keycaps from a friend's keycool. For now I've been using some Row 1 profile keys upside down on my left thumb cluster and his wasd cluster on my right thumb cluster (row 2 and 3 mix). I'm actually really enjoying the thumb clusters with these keys since the front edge of the key is lower it is much more comfortable on my thumb. I was finding that my dsa keys were slightly uncomfortable as the edge would dig into the thumb slightly. I've also been toying with some tenting options. I'll attach my current setup at work. I'm using some tile coasters and sticky notes for tent/palm rests.

Offline Heliobb

  • Posts: 94
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #45 on: Thu, 22 October 2015, 02:45:46 »
Nice to get feedbacks of your project.

I was finding that my dsa keys were slightly uncomfortable as the edge would dig into the thumb slightly.

Can you more develop this point ? Key in lower position is not enough ?
Novatouch TKL - Leopold FC660C - PBT my life.

Offline Kad

  • Posts: 44
  • Location: San Francisco, CA
  • Δ E S T H E T I C S
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #46 on: Thu, 22 October 2015, 17:31:58 »
Looks very cool, and very interesting layout with the curved thumb keys. Did it take a while to get used to this?

Great job!

[WASD v2 w/ MX Blues]

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #47 on: Thu, 22 October 2015, 18:03:51 »
Nice to get feedbacks of your project.

I was finding that my dsa keys were slightly uncomfortable as the edge would dig into the thumb slightly.

Can you more develop this point ? Key in lower position is not enough ?

I've attached some pictures so you can see what I mean. With the white DSA you can see the edge of it digs into my finger a bit and is the main point of contact/pressure. With the blue OEM profile R1 turned upside down you can see the angle plays nicer with the angle of my thumb, little to no edge pressure and increased surface contact.

Looks very cool, and very interesting layout with the curved thumb keys. Did it take a while to get used to this?

It didn't take too long to get used to since I'd been training myself for thumb clusters for a while on my standard keyboard using AHK. But there were still some things that took a few days to really nail down. I always laughed at myself when I swung up to hit the backspace or esc key (where they would be on a standard keyboard) and just hit empty air. Shift and Control were the only other ones that were a bit tricky to get used to.
« Last Edit: Thu, 22 October 2015, 18:06:24 by shaymdev »

Offline Heliobb

  • Posts: 94
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #48 on: Fri, 23 October 2015, 01:53:42 »
Great thanks for the feedbacks
Novatouch TKL - Leopold FC660C - PBT my life.

Offline shaymdev

  • Thread Starter
  • Posts: 56
  • Location: SLC, UT
Re: Shergo v1.0 - Designing and building my first custom keyboard
« Reply #49 on: Fri, 23 October 2015, 10:14:41 »
Oh, another problem I need to fix in the firmware is with my number/symbol layer. Sometimes my numberpad keys (on the right half) act like numlock is off (and behave as arrows) if hit immediately after the symbol keys (on the left half) while holding the layer key. It has to do with how I had to implement the symbol keys. The firmware has to hit shift, the symbol, and let go of shift. I think I'm hitting my next key (one of the numpad keys) before shift has been 'released'. I can emulate it by holding both the layer and the shift key, then the numpad keys always act like arrows.