Author Topic: Dox KB, Build your own!  (Read 203251 times)

0 Members and 1 Guest are viewing this topic.

Offline Dox

  • Thread Starter
  • Posts: 312
Dox KB, Build your own!
« on: Sun, 26 June 2011, 01:11:58 »
As some of you may know, I've started a personal keyboard project back in April after I've joined geekhack and it finally came to completion last week.

It's a 60% keyboard like the HHKB but with cherry mx switches and programmable multiple layout firmware.

Here are the details about the keyboard and all the information you need if you want to build one for yourself.

First, Ive started out by drawing up the PCB in the software from http://expresspcb.com/. Download Here.
[ Attachment Invalid Or Does Not Exist ] 19744[/ATTACH]

Then, I've redrawn the entire keyboard in Solidworks to design the case/mounting plate and to make sure everything would fit.  Download Here.
[ Attachment Invalid Or Does Not Exist ] 19745[/ATTACH]

Once I was set with the design, I've ordered the PCB from http://expresspcb.com/ directly from the software. 2 PCB cost 149$.
I've ordered 128 clear and 30 blue switches from Mouser for 160$ and a G80-3000 from Half-Saint for 45$ to harvest some cherry blue stem and springs.
I'm using ergo clear and blue switches in my keyboards.

I got 200 1N41418 diodes from onlinecomponents.com for about nothing.

For the controller, I'm using a teensy form http://www.pjrc.com/ I've ordered 3 of those for 48$.
I've took the code from PrinsValium symmetric stagger keyboard and modified it to fit my needs. Download Here.

It doesn't have NKRO but it does have 6KRO + 4 modifiers.
[ Attachment Invalid Or Does Not Exist ] 19958[/ATTACH]

Code: [Select]
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include &quot;usb_keyboard.h&quot;

#define bool            uint8_t
#define true            1
#define false           0

#define _PINB           (uint8_t *const)&PINB
#define _PORTC          (uint8_t *const)&PORTC
#define _PORTD          (uint8_t *const)&PORTD
#define _PORTF          (uint8_t *const)&PORTF

#define NULL            0
#define NA              0
#define KEY_MACRO       0
#define KEY_FN          0
#define FN_KEY1_ID     13*6+1
#define FN_KEY2_ID     0*6+1
#define MACRO_KEY_ID    0*6+0

const uint8_t is_modifier[84] = {
//ROW 0          ROW 1 ROW 2            ROW 3            ROW 4            
1,              1,               1, 1,               0,               0, // COL  0
1,               0, 0,               0,               0,   0, // COL  1
1,               0, 0,               0,               0,               0, // COL  2
0,               0, 0,               0,               0,               0, // COL  3
0,               0, 0,               0,               0,               0, // COL  4
0,               0, 0,               0,               0,               0, // COL  5
0,               0, 0,               0,               0,               0, // COL  6
0,               0, 0,               0,               0,               0, // COL  7
0,               0, 0,               0,               0,               0, // COL  8
1,               0, 0,               0,               0,               0, // COL  9
1,               0, 0,               0,               0,               0, // COL 10
0,               0, 0,               0,               0,               0, // COL 11
1,               1, 0,               0,               0,               0, // COL 12
0,               1, 0,               0,               0,                 // COL 13
 0 // COL 14
};

const uint8_t layer1[84] = {
//ROW 0          ROW 1 ROW 2            ROW 3            ROW 4            
  KEY_MACRO, KEY_FN, KEY_LEFT_SHIFT, KEY_LEFT_CTRL, KEY_TAB,         KEY_ESC, // COL  0
KEY_LEFT_GUI,    KEY_Z, KEY_A,           KEY_Q,           KEY_1,       NULL, // COL  1
KEY_LEFT_ALT,    KEY_X, KEY_S,           KEY_W,           KEY_2,           NULL, // COL  2
NULL, KEY_C, KEY_D,           KEY_E,           KEY_3,           NULL, // COL  3
NULL,            KEY_V, KEY_F,           KEY_R,           KEY_4,           NULL, // COL  4
KEY_SPACE,       KEY_B, KEY_G,           KEY_T,           KEY_5,           NULL, // COL  5
NULL,            KEY_N, KEY_H,     KEY_Y,  KEY_6,           NULL, // COL  6
NULL,            KEY_M, KEY_J,           KEY_U,           KEY_7,       NULL, // COL  7
NULL,            KEY_COMMA, KEY_K,           KEY_I,           KEY_8,           NULL, // COL  8
KEY_RIGHT_ALT,   KEY_PERIOD, KEY_L,           KEY_O,           KEY_9,           NULL, // COL  9
KEY_RIGHT_GUI,   KEY_SLASH, KEY_SEMICOLON,   KEY_P,           KEY_0,           NULL, // COL 10
NULL,            NULL, KEY_QUOTE,       KEY_LEFT_BRACE,  KEY_MINUS,       NULL, // COL 11
KEY_RIGHT_CTRL,  KEY_RIGHT_SHIFT, NULL,     KEY_RIGHT_BRACE, KEY_EQUAL,       NULL, // COL 12
KEY_DELETE,      KEY_FN, KEY_ENTER,       KEY_BACKSPACE,   KEY_BACKSLASH, // COL 13    
 KEY_TILDE // COL 14
};

const uint8_t layer2[84] = {
//ROW 0          ROW 1 ROW 2            ROW 3            ROW 4            
NULL, KEY_FN, KEY_LEFT_SHIFT, KEY_LEFT_CTRL,   KEY_CAPS_LOCK,   KEY_ESC, // COL  0
KEY_LEFT_GUI,    KEY_Z, KEY_LEFT,        KEY_Q,           KEY_F1,          NULL, // COL  1
KEY_LEFT_ALT,    KEY_X, KEY_DOWN,        KEY_UP,          KEY_F2,   NULL, // COL  2
NULL, KEY_C, KEY_RIGHT,       KEY_E,           KEY_F3,   NULL, // COL  3
NULL,            KEY_V, KEY_F,           KEY_R,           KEY_F4,       NULL, // COL  4
KEY_SPACE,       KEY_B, KEY_G,     KEY_T,           KEY_F5,          NULL, // COL  5
NULL,            KEY_N, KEY_H,           KEY_Y,           KEY_F6,          NULL, // COL  6
NULL,            KEY_M, KEY_J,           KEY_U,           KEY_F7,          NULL, // COL  7
NULL,            KEY_HOME, KEY_PAGE_UP, KEY_PRINTSCREEN, KEY_F8,          NULL, // COL  8
KEY_RIGHT_ALT,   KEY_END,   KEY_PAGE_DOWN,   KEY_SCROLL_LOCK, KEY_F9,       NULL, // COL  9
KEY_RIGHT_GUI,   KEY_DOWN, KEY_LEFT,        KEY_PAUSE,       KEY_F10,         NULL, // COL 10
NULL, NULL, KEY_RIGHT,       KEY_UP,          KEY_F11,         NULL, // COL 11
KEY_RIGHT_CTRL,  KEY_RIGHT_SHIFT, NULL,            KEY_RIGHT_BRACE, KEY_F12,       NULL, // COL 12
KEY_DELETE, KEY_FN, KEY_ENTER,       KEY_BACKSPACE,   KEY_INSERT,    // COL 13
 KEY_DELETE // COL 14
};

const uint8_t layer3[84] = {
//ROW 0          ROW 1 ROW 2            ROW 3            ROW 4            
NULL, KEY_FN, KEY_LEFT_SHIFT, KEY_LEFT_CTRL, KEY_TAB,         KEY_ESC, // COL  0
KEY_LEFT_GUI,    KEY_Z, KEY_LEFT,        KEY_Q,           KEY_F1,       NULL, // COL  1
KEY_LEFT_ALT,    KEY_X, KEY_DOWN,        KEY_UP,          KEY_F2,          NULL, // COL  2
NULL, KEY_C, KEY_RIGHT,       KEY_E,           KEY_F3,          NULL, // COL  3
NULL,            KEY_V, KEY_F,           KEY_R,           KEY_F4,          NULL, // COL  4
KEY_SPACE,       KEY_B, KEY_G,           KEY_T,           KEY_F5,          NULL, // COL  5
NULL,            KEY_N, KEY_H,     KEY_Y,  KEY_F6,          NULL, // COL  6
NULL,            KEYPAD_0,   KEYPAD_1,        KEYPAD_4,        KEYPAD_7,        NULL, // COL  7
NULL,            KEY_COMMA, KEYPAD_2,        KEYPAD_5,        KEYPAD_8,        NULL, // COL  8
KEY_RIGHT_ALT,   KEY_PERIOD, KEYPAD_3,        KEYPAD_6,        KEYPAD_9,        NULL, // COL  9
KEY_RIGHT_GUI,   KEY_SLASH, KEY_SEMICOLON,   KEY_P,           KEYPAD_SLASH,    NULL, // COL 10
NULL,            NULL, KEY_QUOTE,       KEY_LEFT_BRACE,  KEYPAD_MINUS,    NULL, // COL 11
KEY_RIGHT_CTRL,  KEY_RIGHT_SHIFT, NULL,     KEY_RIGHT_BRACE, KEYPAD_PLUS,     NULL, // COL 12
KEY_DELETE,      KEY_FN, KEY_ENTER,       KEY_BACKSPACE,   KEYPAD_ASTERIX, // COL 13    
 KEY_NUM_LOCK // COL 14
};

const uint8_t *layout = layer1;

uint8_t *const row_port[6]  = { _PINB,  _PINB,  _PINB,  _PINB,  _PINB,  _PINB};
const uint8_t   row_bit[6]  = {  0x01,   0x02,   0x04,   0x08,   0x10,   0x20};
uint8_t *const col_port[14] = {_PORTD, _PORTD, _PORTD, _PORTD, _PORTD, _PORTC, _PORTD, _PORTD, _PORTF, _PORTF, _PORTF, _PORTF, _PORTF, _PORTF};
const uint8_t   col_bit[14] = {  0x01,   0x02,   0x04,   0x08,   0x10,   0x40,   0x80,   0x40,   0x01,   0x02,   0x10,   0x20,   0x80,   0x40};

bool pressed[84];
uint8_t queue[7] = {0,0,0,0,0,0,0};
uint8_t mod_keys = 0;

void init(void);
void send(void);
void poll(void);
void key_press(uint8_t key_id);
void key_release(uint8_t key_id);

int main(void) {
  init();
  for(;;) poll();
}

void send(void) {
  uint8_t i;
  if(pressed[FN_KEY1_ID])
    layout = layer2;
  else if(pressed[FN_KEY2_ID])
 layout = layer3;
  else
    layout = layer1;
  for(i=0; i<6; i++)
    keyboard_keys[i] = layout[queue[i]];
  keyboard_modifier_keys = mod_keys;
  usb_keyboard_send();
}

void poll() {
  uint8_t row, col, key_id;
  _delay_ms(5);
  for(col=0; col<14; col++) {
    *col_port[col] &= ~col_bit[col];
    _delay_us(1);
    for(row=0; row<6; row++) {
      key_id = col*6+row;
      if(!(*row_port[row] & row_bit[row])) {
if(!pressed[key_id])
 key_press(key_id);
      }
      else if(pressed[key_id])
key_release(key_id);
    }
    *col_port[col] |= col_bit[col];
  }
}

void key_press(uint8_t key_id) {
  uint8_t i;
  pressed[key_id] = true;
  if(is_modifier[key_id])
    mod_keys |= layer1[key_id];
  else {
    for(i=5; i>0; i--) queue[i] = queue[i-1];
    queue[0] = key_id;
  }
  send();
}

void key_release(uint8_t key_id) {
  uint8_t i;
  pressed[key_id] = false;
  if(is_modifier[key_id])
    mod_keys &= ~layout[key_id];
  else {
    for(i=0; i<6; i++) if(queue[i]==key_id) break;
    for(; i<6; i++) queue[i] = queue[i+1];
  }
  send();
}

void init(void) {
  uint8_t i;
  CLKPR = 0x80; CLKPR = 0;
  usb_init();
  while(!usb_configured());
  _delay_ms(1000);
  // PORTB is set as input with pull-up resistors
  // PORTC,D,F are set to high output
  DDRB  = 0x00; DDRC  = 0xFF; DDRD  = 0xFF; DDRF  = 0xFF;
  PORTB = 0xFF; PORTC = 0xFF; PORTD = 0xFF; PORTF = 0xFF;
  for(i=0; i<84; i++) pressed[i] = false;
}


Current layout: [ Attachment Invalid Or Does Not Exist ] 19756[/ATTACH]

For the mounting plate/case I've redrawn it in the software from eachineshop.com. They quote the case at around 400$ for 2 cases depending of the material, finish, tolerances. Download Here.
[ Attachment Invalid Or Does Not Exist ] 19747[/ATTACH]
I didn't personally used emachineshop. I've ordered mine form I guy I know and I'm not pleased with the result. The bends in the parts are slightly too far out on the plates but the cutting for the switches at least is perfect. I will probably use emachineshop to order a part to fix my problem tho.
Strait switches but gap in assembly.
[ Attachment Invalid Or Does Not Exist ] 19755[/ATTACH]

Then, I've started to receive parts and assemble the keyboards.

1: Solder the diodes on the PCB.
[ Attachment Invalid Or Does Not Exist ] 19748[/ATTACH]

2: Solder some wires to the teensy and place the switches and stabilizers on the plate.
[ Attachment Invalid Or Does Not Exist ] 19749[/ATTACH]
[ Attachment Invalid Or Does Not Exist ] 19750[/ATTACH]

3: Solder the teensy to the PCB and then the PCB to the switches.
[ Attachment Invalid Or Does Not Exist ] 19751[/ATTACH]

4: Have fun with your new keyboards!
[ Attachment Invalid Or Does Not Exist ] 19753[/ATTACH]
[ Attachment Invalid Or Does Not Exist ] 19752[/ATTACH]
[ Attachment Invalid Or Does Not Exist ] 19754[/ATTACH]

So that is how you build a DoxKB!

Sorry about the bad pictures...
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline kriminal

  • Posts: 424
Dox KB, Build your own!
« Reply #1 on: Sun, 26 June 2011, 02:02:12 »
O_O
tough.. KB is sexy :)
Geekhacked Filco FKBN87M/EB modified with Brown, black and blue cherries, doubleshot keycaps
Deck KBA-BL82 with Black cherries
Cherry G84-4100LCMDK-0 Cherry ML switches
Cherry G80-8200hpdus-2 Brown cherries
IBM Lexmark 51G8572 Model M Keyboard
Geekhacked Siig Minitouch KB1948
IBM Model M Mini 1397681

Offline REVENGE

  • Posts: 568
Dox KB, Build your own!
« Reply #2 on: Sun, 26 June 2011, 02:38:36 »
Well I guess the production costs aren't bad for a one-off...
◕ ‿ ◕

Offline sordna

  • Posts: 2248
Dox KB, Build your own!
« Reply #3 on: Sun, 26 June 2011, 03:01:17 »
Nice! Have you considered doing a keyboard with the keys in vertical columns (no stagger) or at least with a symmetrical stagger ?

For me the worst thing about off-the-shelf keyboards is the ridiculous stagger, a keyboard from scratch like yours would present a wonderful opportunity to get rid of it.
Kinesis Contoured Advantage & Advantage2 LF with Cherry MX Red switches / Extra keys mod / O-ring dampening mod / Dvorak layout. ErgoDox with buzzer and LED mod.
Also: Kinesis Advantage Classic, Kinesis Advantage2, Data911 TG3, Fingerworks Touchstream LP, IBM SSK (Buckling spring), Goldtouch GTU-0077 keyboard

Offline Dox

  • Thread Starter
  • Posts: 312
Dox KB, Build your own!
« Reply #4 on: Sun, 26 June 2011, 03:07:05 »
That was my plan at first but I changed my mind because I couldn't figure yet the perfect layout. I'm still thinking about it and the next one will probably be a vertical column layout.
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline sordna

  • Posts: 2248
Dox KB, Build your own!
« Reply #5 on: Sun, 26 June 2011, 03:11:45 »
Well, here's an idea:


I bet you'll have it finished before that company does :-)
Kinesis Contoured Advantage & Advantage2 LF with Cherry MX Red switches / Extra keys mod / O-ring dampening mod / Dvorak layout. ErgoDox with buzzer and LED mod.
Also: Kinesis Advantage Classic, Kinesis Advantage2, Data911 TG3, Fingerworks Touchstream LP, IBM SSK (Buckling spring), Goldtouch GTU-0077 keyboard

Offline Dox

  • Thread Starter
  • Posts: 312
Dox KB, Build your own!
« Reply #6 on: Sun, 26 June 2011, 03:13:49 »
I've only build the ergo clear keyboard last night and I got to say that those switches are freaking awesome! I'm now thinking of changing my blue one to ergo clear too.
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline Dox

  • Thread Starter
  • Posts: 312
Dox KB, Build your own!
« Reply #7 on: Sun, 26 June 2011, 03:18:54 »
Yeah something like the Truly ergonomic keyboard would be good. I'll let them 2 months and if it's still not available i'll build one!
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline sordna

  • Posts: 2248
Dox KB, Build your own!
« Reply #8 on: Sun, 26 June 2011, 03:21:31 »
Quote from: Dox;368308
Yeah something like the Truly ergonomic keyboard would be good. I'll let them 2 months and if it's still not available i'll build one!

 
Send them an email, maybe they'll hire you and finally ship the thing in this lifetime! You're in Canada too!
Kinesis Contoured Advantage & Advantage2 LF with Cherry MX Red switches / Extra keys mod / O-ring dampening mod / Dvorak layout. ErgoDox with buzzer and LED mod.
Also: Kinesis Advantage Classic, Kinesis Advantage2, Data911 TG3, Fingerworks Touchstream LP, IBM SSK (Buckling spring), Goldtouch GTU-0077 keyboard

Offline keyboardlover

  • Posts: 4022
  • Hey Paul Walker, Click It or Ticket!
    • http://www.keyboardlover.com
Dox KB, Build your own!
« Reply #9 on: Sun, 26 June 2011, 06:47:55 »
Great mod Dox! Glad to hear you like the ergo clears.


Offline Dox

  • Thread Starter
  • Posts: 312
Dox KB, Build your own!
« Reply #10 on: Sun, 26 June 2011, 09:52:37 »
Quote from: acfrazier;368318
My only kvetch? FN key where the left control key is in your layout. I realize it can be changed, but:

I've always been swapping control/CapsLock key on my keyboards. And as you said, the layout can be easily changed.

Quote from: keyboardlover;368346
Great mod Dox! Glad to hear you like the ergo clears.

Show Image

Thanks, I'm modding my blue one to ergo clear today. I don't get why cherry isn't making those switches standard because they feel sooooo good!
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline keyboardlover

  • Posts: 4022
  • Hey Paul Walker, Click It or Ticket!
    • http://www.keyboardlover.com
Dox KB, Build your own!
« Reply #11 on: Sun, 26 June 2011, 09:53:39 »
I know, I agree completely.

Hey, I just realized you're in Quebec. I was in Quebec City a couple weeks ago and loved it!
« Last Edit: Sun, 26 June 2011, 09:58:34 by keyboardlover »

Offline laden3

  • Posts: 594
Dox KB, Build your own!
« Reply #12 on: Sun, 26 June 2011, 21:21:12 »
Dear Dox,

Could you do some of us a favor by tweaking the case of your keyboard a little so that a kbc poker can fit into it? I really enjoy my poker and my only complain is that there are no metal plates available...

laden3
I rrrove brrracks.

Offline Dox

  • Thread Starter
  • Posts: 312
Dox KB, Build your own!
« Reply #13 on: Sun, 26 June 2011, 21:34:20 »
I would need a Poker to see if it's even possible to fit a plate in it but I don't currently own one.
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline Input Nirvana

  • Master of the Calculated Risk
  • Posts: 2316
  • Location: Somewhere in the San Francisco Bay area/Best Coast
  • If I tell ya, I'll hafta kill ya
Dox KB, Build your own!
« Reply #14 on: Sun, 26 June 2011, 22:23:52 »
Quote from: keyboardlover;368346
Great mod Dox! Glad to hear you like the ergo clears.

Show Image

 
Tappity tap tap tap tap tap TAP TAP TAP TAP TAP TAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAPTAP!!!!!!!!
Kinesis Advantage cut into 2 halves | RollerMouse Free 2 | Apple Magic Trackpad | Colemak
Evil Screaming Flying Door Monkeys From Hell                     Proudly GeekWhacking since 2009
Things change, things stay the same                                        Thanks much, Smallfry  
I AM THE REAPER . . . BECAUSE I KILL IT
~retired from forum activities 2015~

Offline didjamatic

  • Posts: 1352
Dox KB, Build your own!
« Reply #15 on: Mon, 27 June 2011, 07:34:00 »
Seriously awesome keyboard build!  The links are very helpful, I might just have to do some myself.  Well done!
IBM F :: IBM M :: Northgate :: Cherry G80 :: Realforce :: DAS 4

Offline Dox

  • Thread Starter
  • Posts: 312
Dox KB, Build your own!
« Reply #16 on: Fri, 01 July 2011, 13:48:51 »
Thanks didjamatic! It would be great to see someone else try it. If you have any questions just ask!
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline Mr. Perfect

  • Posts: 380
  • Location: United States
Dox KB, Build your own!
« Reply #17 on: Fri, 01 July 2011, 22:35:35 »
Nice work. How did you go about tracing out the PCB? Does it have NKRO? I was half considering a mod that would give a G80-8113 a standard nav cluster and move the numpad to the left side, but if you need an electrical engineering degree then I'd best forget about it. :noidea:
Mr. Perfect - A name fraught with peril.

G80-8113HRBUS MX Clears, FC200R MX Clears, RK-9000v2 MX Blues.

Offline Dox

  • Thread Starter
  • Posts: 312
Dox KB, Build your own!
« Reply #18 on: Fri, 01 July 2011, 22:45:36 »
I've ordered the PCB from expressPCB.com. Tracing it is nothing more than linking rows and columns of switches. It doesn't have NKRO but it does have 6KRO + 4 modifiers. You don't need and engineering degree to make it but it you have any experience with soldering and programming it would help.

edit: [ Attachment Invalid Or Does Not Exist ] 19957[/ATTACH]
« Last Edit: Fri, 01 July 2011, 22:49:00 by Dox »
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline Teal

  • Posts: 5
Dox KB, Build your own!
« Reply #19 on: Tue, 02 August 2011, 15:36:09 »
Where did you get the switch stabilizers (for spacebar/LShift/Enter) and keycaps?

Offline alaricljs

  • I be WOT'ing all day...
  • ** Moderator Emeritus
  • Posts: 3715
  • Location: NE US
Dox KB, Build your own!
« Reply #20 on: Tue, 02 August 2011, 15:47:33 »
Filco w/ Imsto thick PBT
Ducky 1087XM PCB+Plate, w/ Matias "Quiet Click" spring-swapped w/ XM Greens

Offline Teal

  • Posts: 5
Dox KB, Build your own!
« Reply #21 on: Tue, 02 August 2011, 16:00:11 »
Ah, thank you. I couldn't find any relevant thread, but I suppose my Google-fu is just that weak. I'm assuming general Cherry boards use those stabilisers -> have fitting keycaps?

Offline alaricljs

  • I be WOT'ing all day...
  • ** Moderator Emeritus
  • Posts: 3715
  • Location: NE US
Dox KB, Build your own!
« Reply #22 on: Tue, 02 August 2011, 16:07:08 »
Some boards use Cherry, some use Costar, all are physically compatible as far as the key stem fitting in the hole.  On the retail available Cherry stabilizers space bars are not necessarily compatible.  Filco spacebars will not fit on any of them, but the only issue is the stabilizer wire which can be bent and cut to the shorter length needed for a Filco spacebar.
Filco w/ Imsto thick PBT
Ducky 1087XM PCB+Plate, w/ Matias "Quiet Click" spring-swapped w/ XM Greens

Offline mtl

  • Posts: 180
Dox KB, Build your own!
« Reply #23 on: Tue, 02 August 2011, 17:12:51 »
Great work!
MX13 SpaceSaver | Phantom | Tactoblack Filco -10 | Realforce 103U-UW | Variable Clicky Deck 82 | Deck Legend

Offline Dox

  • Thread Starter
  • Posts: 312
Dox KB, Build your own!
« Reply #24 on: Tue, 02 August 2011, 17:26:00 »
Thanks, mtl!

I've ordered the stabilizers from Mouser. Cherry stabilizers. As alaricljs said, the space bar one had a too long wire so I cut it and bend it to fit.
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline alaricljs

  • I be WOT'ing all day...
  • ** Moderator Emeritus
  • Posts: 3715
  • Location: NE US
Dox KB, Build your own!
« Reply #25 on: Wed, 03 August 2011, 10:48:49 »
Quote from: ripster;392276
Actually that's not quite true either.  Datacomp built keyboards have stabilizers with different spacing.

This came out so well I'll drag Geekgirl out of retirement.
(Attachment Link) 23196[/ATTACH]

Nothing I said is inconsistent with what you just said.
Filco w/ Imsto thick PBT
Ducky 1087XM PCB+Plate, w/ Matias "Quiet Click" spring-swapped w/ XM Greens

Offline alaricljs

  • I be WOT'ing all day...
  • ** Moderator Emeritus
  • Posts: 3715
  • Location: NE US
Dox KB, Build your own!
« Reply #26 on: Wed, 03 August 2011, 11:19:44 »
Quote from: ripster;392288
Depends on how you define "all".

No it doesn't, since I qualified that statement by saying:

Quote from: alaricljs;391811
...  as far as the key stem fitting in the hole...
Filco w/ Imsto thick PBT
Ducky 1087XM PCB+Plate, w/ Matias "Quiet Click" spring-swapped w/ XM Greens

Offline TheProfosist

  • Posts: 3671
  • Location: Wisconsin, USA
  • Custom Layouts Only!
Dox KB, Build your own!
« Reply #27 on: Mon, 24 October 2011, 05:51:06 »
definitely interested in this am interest in this layout though (Esc would actually be the main key)

might even be up for a few depending.

as to me it looks like there is a larger gap between the keys than normal.

which stabilizers are used for this? ones like Filco or Leopold? Also where can you get the plate mounted part?
« Last Edit: Mon, 24 October 2011, 06:13:03 by TheProfosist »

Offline Dox

  • Thread Starter
  • Posts: 312
Dox KB, Build your own!
« Reply #28 on: Mon, 24 October 2011, 09:08:18 »
Quote from: TheProfosist;437875
definitely interested in this am interest in this layout though (Esc would actually be the main key)
Show Image

might even be up for a few depending.

as to me it looks like there is a larger gap between the keys than normal.

which stabilizers are used for this? ones like Filco or Leopold? Also where can you get the plate mounted part?


Spacing is standard, it's a illusion with the shiny backplate.
All the files are available to download and modify in the article.
I used cherry stabilizers from Mouser.
I got the plates from a contact but I give a link in the article for a place online.

Edit: See the spacing:
[ Attachment Invalid Or Does Not Exist ] 29676[/ATTACH]
« Last Edit: Mon, 24 October 2011, 09:10:54 by Dox »
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline sordna

  • Posts: 2248
Dox KB, Build your own!
« Reply #29 on: Mon, 24 October 2011, 09:28:01 »
Quote from: TheProfosist;437875
definitely interested in this am interest in this layout though (Esc would actually be the main key)
Show Image

might even be up for a few depending.

I think moving the arrow keys to IJKL would be better than PL;'  ... also, having an additional set of arrow keys on the left (WASD) would be cool too!
Kinesis Contoured Advantage & Advantage2 LF with Cherry MX Red switches / Extra keys mod / O-ring dampening mod / Dvorak layout. ErgoDox with buzzer and LED mod.
Also: Kinesis Advantage Classic, Kinesis Advantage2, Data911 TG3, Fingerworks Touchstream LP, IBM SSK (Buckling spring), Goldtouch GTU-0077 keyboard

Offline TheProfosist

  • Posts: 3671
  • Location: Wisconsin, USA
  • Custom Layouts Only!
Dox KB, Build your own!
« Reply #30 on: Mon, 24 October 2011, 09:29:18 »
Quote from: Dox;437922
Spacing is standard, it's a illusion with the shiny backplate.
All the files are available to download and modify in the article.
I used cherry stabilizers from Mouser.
I got the plates from a contact but I give a link in the article for a place online.

Edit: See the spacing:
(Attachment Link) 29676[/ATTACH]
spacing looks much better in that picture
yes I know they are problem is that I have no experience in CAD or C (i believe whats used for the teensy)
Wondering if anyone else would be interested. That way we could make a few and split costs. Also if we all stick with the same layout we could probably get a discount through WASD.

Offline TheProfosist

  • Posts: 3671
  • Location: Wisconsin, USA
  • Custom Layouts Only!
Dox KB, Build your own!
« Reply #31 on: Mon, 24 October 2011, 09:32:08 »
Quote from: sordna;437926
I think moving the arrow keys to IJKL would be better than PL;'  ... also, having an additional set of arrow keys on the left (WASD) would be cool too!
arrow key are where they are so that you can hold right Fn with your pinky. media keys are over by WASD because the fit nicely also the standard user is used to using arrows with their right hand.

Offline ishtob

  • Posts: 514
  • Location: Boston,MA
Dox KB, Build your own!
« Reply #32 on: Mon, 24 October 2011, 09:53:44 »
if you get that layout setup i'd be interesting in a case too, but i'd prob modify the function layer... i really don't like the way the arrows are setup... the HHKB arrow setup, it works better when holding down the Fn key with the pinky.

Offline TheProfosist

  • Posts: 3671
  • Location: Wisconsin, USA
  • Custom Layouts Only!
Dox KB, Build your own!
« Reply #33 on: Mon, 24 October 2011, 10:01:23 »
Quote from: ishtob;437941
if you get that layout setup i'd be interesting in a case too, but i'd prob modify the function layer... i really don't like the way the arrows are setup... the HHKB arrow setup, it works better when holding down the Fn key with the pinky.
I agree with you there but from my testing this should still work may take some getting used to. I designed this layout as a competitor to a HHKB, one that someone should be able to use with almost no adjustment from a standard keyboard.

So you would be in for everything except for the keycaps? I think wasd would have a problem if it would just be a slight alteration.

Do you think I should post an interest check in the Group Buy sub forum?

Offline TheProfosist

  • Posts: 3671
  • Location: Wisconsin, USA
  • Custom Layouts Only!
Dox KB, Build your own!
« Reply #34 on: Mon, 24 October 2011, 10:02:42 »
Dox do you think that you could post some more pic of the inside. Im kind of wondering how you did everything in there.

Offline ishtob

  • Posts: 514
  • Location: Boston,MA
Dox KB, Build your own!
« Reply #35 on: Mon, 24 October 2011, 11:09:09 »
i would be in for the board and case, I got extra blue, clear, and brown donor boards sitting around that i can make some ergo clears with.

Offline Dox

  • Thread Starter
  • Posts: 312
Dox KB, Build your own!
« Reply #36 on: Mon, 24 October 2011, 11:17:01 »
Quote from: TheProfosist;437947
Dox do you think that you could post some more pic of the inside. Im kind of wondering how you did everything in there.
I'll try to take some pictures tonight.
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline sordna

  • Posts: 2248
Dox KB, Build your own!
« Reply #37 on: Mon, 24 October 2011, 12:13:26 »
Solution to the arrow key disagreements is to make the 2nd layer user programmable. The "proper / touch-typing way" for multi-key combos is to hold the modifer (in this case the Fn) with the opposite hand, it's very strenuous for the hand to hold the Fn with the pinky and do arrow work with other fingers of the same hand... it's a similar stress to dragging/drawing with a mouse: bad for RSI.
Kinesis Contoured Advantage & Advantage2 LF with Cherry MX Red switches / Extra keys mod / O-ring dampening mod / Dvorak layout. ErgoDox with buzzer and LED mod.
Also: Kinesis Advantage Classic, Kinesis Advantage2, Data911 TG3, Fingerworks Touchstream LP, IBM SSK (Buckling spring), Goldtouch GTU-0077 keyboard

Offline ishtob

  • Posts: 514
  • Location: Boston,MA
Dox KB, Build your own!
« Reply #38 on: Mon, 24 October 2011, 12:42:48 »
so who would be interested in getting a group buy for the pcb? think i'd be interested in getting the board to play around with customizing... i do have a teensy sitting around already

Offline ishtob

  • Posts: 514
  • Location: Boston,MA
Dox KB, Build your own!
« Reply #39 on: Mon, 24 October 2011, 13:31:03 »
Dox, is it okay that we use your files? i know some people dosen't like thier stuff used by others.

I'm considering printing that board but use it with a modified key layer

Offline TheProfosist

  • Posts: 3671
  • Location: Wisconsin, USA
  • Custom Layouts Only!
Dox KB, Build your own!
« Reply #40 on: Mon, 24 October 2011, 15:40:04 »
Quote from: ishtob;438029
so who would be interested in getting a group buy for the pcb? think i'd be interested in getting the board to play around with customizing... i do have a teensy sitting around already
pcb, for sure. though I dont know how many I need yet. what about the plate?

Offline Dox

  • Thread Starter
  • Posts: 312
Dox KB, Build your own!
« Reply #41 on: Mon, 24 October 2011, 17:01:57 »
Quote from: ishtob;438074
Dox, is it okay that we use your files? i know some people dosen't like thier stuff used by others.

I'm considering printing that board but use it with a modified key layer
I don't mind at all. that's why all the files are available.
I'm now using hasu's firmware with mouse keys and working media control in windows.
ErgoDox x2 | DoxKB x2 |   IBM SSK   | HHKB pro2

Offline TheProfosist

  • Posts: 3671
  • Location: Wisconsin, USA
  • Custom Layouts Only!
Dox KB, Build your own!
« Reply #42 on: Mon, 24 October 2011, 17:07:41 »
Quote from: Dox;438349
I don't mind at all. that's why all the files are available.
I'm now using hasu's firmware with mouse keys and working media control in windows.
both of those sound really nice to add it hink I would put the mouse buttons on ZXC so I could hold left win with my pinky
 z=right x=middle c=left possibly f=forward v=back
« Last Edit: Mon, 24 October 2011, 17:12:31 by TheProfosist »

Offline ishtob

  • Posts: 514
  • Location: Boston,MA
Dox KB, Build your own!
« Reply #43 on: Tue, 25 October 2011, 01:32:41 »
Profosist: I tweeked DOX's PCB file to fit the layout you want with the software and got this:


I also moved a few traces so I can use the PCB mounted stabilizers if I end up not being able to afford the casing (just go all PCB mounted :D)

Offline TheProfosist

  • Posts: 3671
  • Location: Wisconsin, USA
  • Custom Layouts Only!
Dox KB, Build your own!
« Reply #44 on: Tue, 25 October 2011, 01:37:16 »
Quote from: ishtob;438704
Profosist: I tweeked DOX's PCB file to fit the layout you want with the software and got this:
Show Image


I also moved a few traces so I can use the PCB mounted stabilizers if I end up not being able to afford the casing (just go all PCB mounted :D)
I was thinking about this would it be any more expensive or hard to add the ability to have leds in the keys? I dont have any real reasoning behind this because getting backlight keys would be hard and I am not that intered in a back light board just thought it would be an option and might have some nice glow effect since there is no case around the switches.

Offline ishtob

  • Posts: 514
  • Location: Boston,MA
Dox KB, Build your own!
« Reply #45 on: Tue, 25 October 2011, 01:44:19 »
Just checked price, I can order 2 keep one and ship you the other for $65-70. The price quote right now is $56 per board + 10.50 shipping

Offline ishtob

  • Posts: 514
  • Location: Boston,MA
Dox KB, Build your own!
« Reply #46 on: Tue, 25 October 2011, 01:45:08 »
Quote from: TheProfosist;438707
I was thinking about this would it be any more expensive or hard to add the ability to have leds in the keys? I dont have any real reasoning behind this because getting backlight keys would be hard and I am not that intered in a back light board just thought it would be an option and might have some nice glow effect since there is no case around the switches.

it would take alot of time since we would need to flip all the switches 180 degrees for the LED to be on the right side.

alternatively you can just use: this if you want lights around the border

Offline TheProfosist

  • Posts: 3671
  • Location: Wisconsin, USA
  • Custom Layouts Only!
Dox KB, Build your own!
« Reply #47 on: Tue, 25 October 2011, 01:51:27 »
Quote from: ishtob;438716
it would take alot of time since we would need to flip all the switches 180 degrees for the LED to be on the right side.

alternatively you can just use: this if you want lights around the border
so you would have to basically remake the PCB. which would kinda suck. I just though I would put some LEDs in since I have to do everything already. but its just more work and changes so ill skip. also I have some other interested people and I couldnt do this right away. Also we could try a PCB group buy to start out with because I know I dont have the money to do the entire build right away.
« Last Edit: Tue, 25 October 2011, 02:00:11 by TheProfosist »

Offline ishtob

  • Posts: 514
  • Location: Boston,MA
Dox KB, Build your own!
« Reply #48 on: Tue, 25 October 2011, 01:59:23 »
yup basically...

im going to keep tweeking around see if i can get the teensy to be able to be soldered straight onto the underside of the board or at the space under the spacebar (gives us access to that button on the topside... but not sure if its useful, and we would also need to somehow route the USB out to the back too...)

Offline ishtob

  • Posts: 514
  • Location: Boston,MA
Dox KB, Build your own!
« Reply #49 on: Tue, 25 October 2011, 02:00:34 »
just checked price for more quanitity... its going to be pretty much splitting up that $10 shipping... unless we can get ALOT of people