#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "usb_keyboard.h"
#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;
}
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!
My only kvetch? FN key where the left control key is in your layout. I realize it can be changed, but:
Great mod Dox! Glad to hear you like the ergo clears.Show Image(http://static.images.memegenerator.net/Instances400/8/8242/8439922.jpg)
Great mod Dox! Glad to hear you like the ergo clears.Show Image(http://static.images.memegenerator.net/Instances400/8/8242/8439922.jpg)
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) 23196[/ATTACH]
Depends on how you define "all".
... as far as the key stem fitting in the hole...
definitely interested in this am interest in this layout though (Esc would actually be the main key)Show Image(http://img.photobucket.com/albums/v519/TheProfosist/GeekHack/HHKBCompetition.png)
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?
definitely interested in this am interest in this layout though (Esc would actually be the main key)Show Image(http://img.photobucket.com/albums/v519/TheProfosist/GeekHack/HHKBCompetition.png)
might even be up for a few depending.
Spacing is standard, it's a illusion with the shiny backplate.spacing looks much better in that picture
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) 29676[/ATTACH]
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.
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.
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.
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 alreadypcb, for sure. though I dont know how many I need yet. what about the plate?
Dox, is it okay that we use your files? i know some people dosen't like thier stuff used by others.I don't mind at all. that's why all the files are available.
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.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
I'm now using hasu's firmware with mouse keys and working media control in windows.
Profosist: I tweeked DOX's PCB file to fit the layout you want with the software and got this: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.Show Image(http://i6.photobucket.com/albums/y222/icbob/Layout.png)
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.
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.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.
alternatively you can just use: this (http://store.mp3car.com/30cm_LED_Strip_for_USB_LED_1_Controller_Waterproof_p/COM-151.htm) if you want lights around the border
yup basically...That would be great. the USB thing shouldnt be too hard to do. you may be able to desolder the one thats on there and get something that would mount right on the casing. if not modify a short mini usb cable and find a way to get some soft of female end to mound on the case.
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...)
just checked price for more quanitity... its going to be pretty much splitting up that $10 shipping... unless we can get ALOT of people
just checked price for more quanitity... its going to be pretty much splitting up that $10 shipping... unless we can get ALOT of peoplecould you probably get a quote on a case I can probably secure at a min 3 more orders than mys self.
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...)
I took the liberty to throw together a DOX-PCB using my KiCAD libraries. It would be a good starting point for any keyboard design. It was an easy job considering I had a larger board with more or less the same layout done already. Just had to clean everything up a bit...
I would really recommend adding the controller somewhere on the PCB as well. This saves some messy wiring...
I wanted to place the teensy under the spacebar too but I realized that it would make the keyboard much higher.
Nice PV! As you can see the controller is hard to fit in a board that small with buttons everywhere. Do you have any idea where it could be installed?
Sort of, I did it like this (http://geekhack.org/showwiki.php?title=Island:15542&viewfull=1&page=1&do=comments#post349123). It is not optimal to have the connector at the edge like that when using a case of course. But it should be possible to orient it in other ways. It's a bit tinkery but it works. The only big problem is that the switches it overlaps won't be easily removable.
That's what's being discussed... in my own design I do away with the standoff portion of the pins, although I haven't had the chance to test that yet I see no reason it wouldn't work. This would lessen the stack height of the PCBs. In the case of the Dox it's going to be a difficult time due to there being no unoccupied space on both sides of the PCB.Yeah that was my plan too for my next design I think that should be possible. As you said, the problem with the doxkb is that there is no space to mount it (not surface soldered), even with the reduced stack height I don't think that if would fit under the spacebar.
done with adding teensy to the PCB:awesome. is it coming out of the left then would this cable (http://tinyurl.com/6jkl2ud) work to take pressure off and make it head back?Show Image(http://i6.photobucket.com/albums/y222/icbob/revisionlayout.png)
i was going to try to have the usb come out the back, but staggered MX switches are impossible to work around
Doh... Prins is right, if you "surface mount" the teensy then it should fit under the plate under the space bar... I really need more sleep and less OT... wait what am I saying? I love the OT money. Think I need to figure out how to get paid OT for sleeping!Firefighting, in a quite town... Did you check if the Teensy fits there? I have no idea or possibility to check at the moment. Seems like it could get tight =P
Dual layer PCBs are not significantly more expensive in reasonable quantities, one-offs and such are probably cheaper, tho I admit not checking :)
prof i can do the layout for you once i figure out how to modify dox's layout.thanks much sorry that I cant be of more help besides just coming up with ideas.
Dox: can you explain how your layers work? it seems that you are using the semicolon to activate another layer?
can't seem to find a how to add media keys other than vol up/down and mutelol I may be a bit more qualified I havnt taken a look yet also did you grab the firmware mentioned here (http://tinyurl.com/3fr6v58)? I know a link isnt provided to it...
>.< sorry i'm a pharmacy student.. not a compsci major so this is like trying to decipher latin
prof i can do the layout for you once i figure out how to modify dox's layout.I guess you are using hasu's firmware. Yes the semicolon is a "passive" function key. If you press it normally, it will work just as expected but if you hold it and press other keys, it switch to the fn layer.
Dox: can you explain how your layers work? it seems that you are using the semicolon to activate another layer?
I guess you are using hasu's firmware. Yes the semicolon is a "passive" function key. If you press it normally, it will work just as expected but if you hold it and press other keys, it switch to the fn layer.Interesting is that the only way to implement a Fn key?
ishtob,could you use the System Request key to switch layers it doesnt have a use anyway as a normal key.
See usb_keycodes.h, you will find keycodes for media keys.
Semicolon works as Fn key and normal key. You can use a normal key as Fn key, but this is a bit confusing and imposes some bug/problem.
I'm using Semicolon to switch to mousekey layer happily, but other might find this irritating.
It is a momentary, layer switching is just valid while Fn key pressed.
My firmware has no toggle feature for layer switching at this time.
ok cool thanks...
and dox, to load hasu's firmware do I load config.h in the DoxKB folder? or do i use another .h file
To load the formware you have to "make" in the macway folder and load the maxway.hex with the teensy loader.
yup thats how i want it too profosist.two layers is all I need were you able to use the system request key to do the layer switching?
okay i got my firmware setup... soon as i get the board and have it all setup and tested i'll do one for your layout.
I think i might stick to 2 layers for now and leave the rest of the codes in there for now.
where would that key be in this layout? last time i checked the DOX layout doesn't have the sys req keyI know that my layout does have it but what is currently used to go to the second layer? hasu said that he used holding down the semi colon as the modifier could hat be chanded to sys rq sice its not even on the board?
its still a momentary switch using semicolon...He's only using that because he ran out of non-regular keys to assign to function groups. There are 7 FN defined in his codes. I'm using FN2 and FN7 right now for left and right FN, but right now they will both switch the keyboard to layer 2sounds good!
Firefighting, in a quite town... Did you check if the Teensy fits there? I have no idea or possibility to check at the moment. Seems like it could get tight =P
11.1"×3.6" double sided board with solder masks on both sides and silkscreen only on one side = $56 per board @ 2 boards (RoHS compliant = $65). Plus shipping. pcbwing.com (http://pcbwing.com/Order.php)
Edit: A new version with the ATmega32U4 mounted directly on the keyboard PCB, including the same surrounding components as on the Teensy. I only autorouted it. It probably wouldn't hurt to make some of the tracks wider. The crystal also has the wrong footprint, but it is only a quick prototype.
Hey Prins, this is exactly what I needed for my keyboard project (the files you attached). I decided to switch from a Tenkeyless to a 60% due to the new sexy aluminum poker cases from imsto's group buy. All I need to do is just move the usb port over a bit so it can fit through the usb hole on the aluminum case. I also need to put some dipswitches on the back of the pcb. I was wondering if I could use it.
EDIT1: I also need to put in some holes for the case screws. Also, need to figure out the dip switch settings.
EDIT2: Actually, Prins I was wondering if you could fix up the pcb. In exchange I will code the custom firmware since I know alot about embedded programming, and worked with the atmega series before (if you guys still need a programmer).
how much did it cost you in total to create those keyboards? (This might have been asked and answered already but i couldn't be bothered to scroll through all of the pages)The cost for the original idea is in the OP. We have just started our build pcb quote has been $56 per @ 2 boards (http://tinyurl.com/4xwum9u) but I have no clue what price ishtob got his at.
The cost for the original idea is in the OP. We have just started our build pcb quote has been $56 per @ 2 boards (http://tinyurl.com/4xwum9u) but I have no clue what price ishtob got his at.it was $56 a board with min of 2 and $10 shipping
Personally, I ordered some blank keycaps from SP but the right shift on compact cherry keyboards are 1.75how much were the key caps from SP and would it be possible to get with lettering? Im guessing that would be more. I would go through WASD but that right shift...
I think that they had the 1.75 right shift in stock in that color. But I had to get some non stock blanks that cost me 20$ each. I don't know anything about lettering but for single keycaps like that it would probably be costly.I wouldnt mind just the right shift not having lettering I wonder if they could match WASD's colors
this is the type of keybaord i got my shift key: http://www.ebay.com/itm/CHERRY-G81-3480LUNUS-2-CLASSIC-104-USB-KEYBOARD-BLACK-/250746220228?pt=PCA_Mice_Trackballs&hash=item3a61a3aec4#ht_2059wt_1168Thanks Ill keep that as a backup option if I cant get a whole new set.
but that's the laser printed one, look for the suffix of "G81-????Hxxx" for doubleshot
beauty of the DIP switch design is you can leave the WASD section off while the rest of the keyboard lit!o nice, didnt look at it that way. Any ideas on the power consumption of the LEDs? now were going to need ourselves some double shot backlight compatible keycaps.
is it possible to light the LED to like 25% power, so it would be at ~400mA?I have no clue. Other fullsize keyboards manage to run off 1 USB port and they have a fair bit more leds.
I'm not completely sure how diodes work, but I think they will not lead any current at all if their forward voltage is not reached.
This would do as a built in safety feature to make it impossible to drive more than one LED per column at time even if every row would be connected to ground. One row is at most 14 LEDs, 14 × 25mA is "only" 325mA. The diodes might be able to take short bursts of current higher than their specified continuous current rating.
This should be clear from the LED datasheet in that case.
I think this is probably an unnecessary risk though. That would require more interesting programming involving timer overflow interrupts to ensure no LEDs are burst fed for too long =) The output couldn't be increased by too much though because of the 500mA roof.
I also don't know how much current that can be passed through the Teensy board itself. The ATmega is specified to be able to supply the 40mA/pin. The ground connections on the Teensy board would be subjected to ~400mA though. I don't know how thick those traces are. It would of course be possible to wire the USB ground directly onto the keyboard PCB as well.
My idea is to interleave the scans of the two matrices. First the LED matrix is scanned. This requires the B-port to be set as outputs. Then the key matrix is scanned, B-port as inputs with pull-up resistors.
During the LED scan the column pins control which LEDs get lit, and during the key scan they control which column to scan. Depending on the key scan frequency needed N LED scans could be done per key scan.
LED's are tricky things. [...]
The standard LED driver that I've looked into is a constant current source. Since the LED is already a fixed voltage, a constant current will fix the power, brightness, etc. This is not always so simple, as the best way to make a constant current power supply seems to be making a constant voltage power supply, and running the output through a diode. So you could do that.
Perhaps a better way, and certainly one that is utilized more frequently by flashlight makers is to control the brightness by making a power supply capable of outputting the maximum current, then pulsing it (PWM).
Are you suggesting that you set up a "flicker" like what I have suggested, but instead of having each LED be hot, then neutral, you switch power down the line (I like to think of those lights going around in a circle on movie display boards outside the theater.) Hmm, that could work well, though each line would only be hot for 100/(# of columns) %of the time, so you'd probably need much higher current (theoretically (# of columns) more) for each pulse to achieve the equivalent brightness. This should not be an issue for lower brightnesses, though.
Of course this should be pretty easy to do with a microcontroller. You'd need just one pin to control the brightness, by running the signal through a transistor, which switches the power (current) from the LED powersupply (AKA 5V to 3.3V source, or otherwise current limited supply from USB power ) to the LED bank. Then, by switching the ground sinks, you can theoretically control the LED's individually as a matrix, though I don't know if there's enough pins for all that on the chip.
Ideally, I'd say you'd not be passing any appreciable current through the TEENSY, just using it to flip a transistor on and off for you. You colud power the LED's completely separately, and not even have to worry about the grounds, unless you want to also control each LED on/off with the teensy, but even then, 400 mA should be enough for that, as USB is only specc'd to 500 mA in the first place. Though maybe this is more a limitation of USB, not the teensy. Does the Teensy draw a max of 100 mA? If so, then this makes sense.
As always, I'm not a EE, so take with brick of salt.
I hope one of you decides to play with RGB LEDs soon.dont those have more than 2 leads?
dont those have more than 2 leads?
Yea, they have 4 total.To my knowledge you can only fit a led with 2 leads into a cherry switch without modification of the switch casing.
Also I think that I am going to do the Phantom build as well because 7bit's layout really peaked my interests (http://tinyurl.com/dxonvdo).
yea I was looking at that project too, I'm considering getting one to replace my GF's ducky... but she's being really resistant about me spending more $$$ on keyboards and wants to stick to her ducky brownsI really liked 7bits layout and had to take a crack at making a layout for it and I actually think the layout is better than the DOX one that I made.
ran into an issue with the LED, they are theright size, but the base of the LED is too wide for the switch's housing
anyone knows where to get a 3mm LED that doesnt have that plastic lip at the base?
It's just a program, of course it's possible. The question is how easy is it to get that particular firmware modified for that behavior.Alright, well I will have to see once the firmware for the Phantom is made available then.
o nice, didnt look at it that way. Any ideas on the power consumption of the LEDs? now were going to need ourselves some double shot backlight compatible keycaps.
going to try to make the LED into series of 2's to split the current.. we won't be able to drive any LED that requires more than 2.5V but it will significantly cut down the current usage for all the LED within the voltage range (msot are around 2.1-2.2V)have you found any LEDs that meet those specifications?
I herd NKRO gaming on the Model F AT is making a comeback in some Hipster circles.I had a temp job a while back doing books to braille and for the software we were using it was actually essential to have nkro to type out the characters. I am sure there are more efficient methods out there but you try convincing a boss who is many levels above you to change their business ways.
But other than that........................
I get 6KRO on mac, im not sure about other platforms since mac is all I have at the momentYou need to activate the NKRO feature in the code. I think it have been tested with Windows and Ubuntu, not sure about other distros and mac.
where can I find the Teensy sample code to enable NKRO over USB feature? Thanks.You,can look into Hasu's GitHub repertory. (https://github.com/tmk/tmk_keyboard).
yea I just thought now that a normal right shift might be better the I can order http://tinyurl.com/3tdnuu7 and actually use the feature. yes I know that I am going to have to change my layout a bit but I think that the normal caps might trump that. (right now im thinking of right alt for the right FN key)My idea if you remember was replace the Menu key with the Fn key, and that actually works out very comfortably with pl;' for arrow keys. (http://i.imgur.com/BMaTr.png) Try it out by placing your pinky on the menu key and reaching to the Fn layer I laid out. (I use thumb plus any finger for reaching top row comfortably)
have just tried both Menu and Right Alt. Both are uncomfortable but Menu more so than right alt both are not optimal. I vote for a layer that locking right shift into being Fn with a layer as personally I dont use the key though it shouldnt be too hard to edit this to be any key you want on the right side thats why it will be it own layer. Also left Win would be the Fn layer as Left Ctrl is also uncomfortable. Standard the keyboard will have a standard layout but there will be a toggleable layer for a HHKB layout. Also the keyboard will have a standard backspace for compatibility of key caps and because my original design was designed to have a high adoption rate with new users. I will make the layout soon, right now I am working on updating my Phantom layout.I am pretty sure WASD said he would be receiving stabilizers very soon (costar and cherry I believe) In the mean time I think mouser has the Cherry ones if I am not mistaken.
ishtob would you be willing to change up the pcb when you have time?
Also where can I source stabilizers? Because were having trouble with that in the Phantom groupbuy. I remember mention of diodes in the beginning, I understand what they are used for but where are they put?
As for the plate we still need one of those as well as some sort of backplate for those people who dont want to cannibalize a poker.
yea I just thought now that a normal right shift might be better the I can order http://tinyurl.com/3tdnuu7 and actually use the feature. yes I know that I am going to have to change my layout a bit but I think that the normal caps might trump that. (right now im thinking of right alt for the right FN key)
I can change the layout for you if that i what you wantThanks alot!, now we need to get the other stuff buttoned down. Once i know everything can be made or bought ill bite and buy everything.
Do you have any plans to develop a version to use the Chameleon or Aikon controllers?I would say probably not to the other controllers as the availability of the Teensy is much higher than any of the others. Also the teensy is what this project started out using and everything that we have worked on was designed with it in mind. Also where are you planning on getting costar stabilizers? As I was planning on using Cherry because their readily available. I believe the mini usb posrt does go out the back though ishtob might have had some trouble with that.
I would love a PCB layout to the keylayout I posted just a few posts ago if that wouldn't be any trouble. It does not need to allow for LED's so the switches can be either direction without the LED lead holes. Thank you very much in advance for any help or advice. It might be important to note that I plan on using costar stabalizers and I don't know if your original has the sizing for that or the Cherry stabalizers on the PCB
I wonder how possible it would be to place the controller as close to the middle on the top row as possible so that the keyboard could have a detatchable mini-usb angled adapter as mentioned earlier in the forum. I would be happy to investigate into this once I figure out how the rows/columns relate to the pins on the Teensy.
I would say probably not to the other controllers as the availability of the Teensy is much higher than any of the others. Also the teensy is what this project started out using and everything that we have worked on was designed with it in mind. Also where are you planning on getting costar stabilizers? As I was planning on using Cherry because their readily available. I believe the mini usb posrt does go out the back though ishtob might have had some trouble with that.As I said in a previous post I heard WASD say he would be getting them in at some point in the near future. I believe WASD keyboards use costar, he just wasn't originally selling them as separates because he wasn't stockpiling them as we would need for a groupbuy. My main gripe with cherry stabilizers is that they do not feel as natural or comfortable as costar ones. I don't want to make something I don't absolutely love 100%.
Also ishtob could we get some more pictures of home your current one turned out I know you did show a few before but I think the were only about problem areas. Also could you go over the concerns that you have again to see if we can drum up some ideas? Also where you put your teensy would we need some sort of cutout so the button is still accessible with a plate on top?
what does the costar stab's look like? I've only got a working template for the cherry PCB mounted stabs (I'm actually typing on it right now) if you can find me a schematic or something from costar's manufacturer I may be able to get something made.... though I would have no way to test it.As far as what they look like the only examples I have (at the moment) are from the wiki which have nice resolution pictures. Each one should line up perfectly under the stems as long as the keys are compatible with Filco's/WASD. I am trying to find the schematic data and I will update this post if I find it, but for tonight (it is late) I am heading to bed.
Has there been much interest in attempting to achieve NKRO via PS/2? I know for most people that isn't a deal breaker, but it has come in handy more times than not and I really don't want to go back to those dark ages without it.
I am currently looking over the PCB for changing the layout slightly to use the original sized right shift key, although I do not know the exact position for the mount. It seems like every version of the PCB I have seen on here needed modification in some way, almost every time it seems like extra wires were necessary as opposed to completely PCB based connections. Is there any documentation on the PCB to teensy connections?
oh, and those who wants to use this PCB, know that you will need to but and solder a miniusb to fit right next to the space bar switch stabilizer so taht the teensy's usb port will be connect to the one in the back, you will also need this (http://search.digikey.com/scripts/DkSearch/dksus.dll?x=14&y=21&lang=en&site=us&KeyWords=WM17115-ND) for mounting the USB to the back of the boardThe Teensy is soldered to the underside of the PCB right? This picture is just confusing me a bit I guess(http://i6.photobucket.com/albums/y222/icbob/22d6d81a.jpg) I just do not see how you would gain access to the Teensy button under neath a metal plate if it is mounted to the top side of the PCB, and couldn't that cause problems to the key travel for the spacebar or risk a short under the metal plate?
(Attachment) 32274[/ATTACH]
The Teensy is soldered to the underside of the PCB right? This picture is just confusing me a bit I guessShow Image(http://i6.photobucket.com/albums/y222/icbob/22d6d81a.jpg)I just do not see how you would gain access to the Teensy button under neath a metal plate if it is mounted to the top side of the PCB, and couldn't that cause problems to the key travel for the spacebar or risk a short under the metal plate?
I am currently without a plate, everything is just PCB mounted... haven't had time to learn to work CAD to get a plate drawn up, but if I were to draw a plate, this section would not have a plate over, and hte button can be accessed by removing the space bar keycap
I am currently without a plate, everything is just PCB mounted... haven't had time to learn to work CAD to get a plate drawn up, but if I were to draw a plate, this section would not have a plate over, and hte button can be accessed by removing the space bar keycapI think it would be possible to move the Teensy to the underside and still have a USB mount port to the top of the PCB. Give me some time and I will go over the layout in my head tomorrow and see what I can come up with. Working with multiple layers really does take a lot of getting used to visually. Since I wasn't originally planning on working with the LED leads though I am not sure I am qualified to adjust for that.
Could you wire the switch off-board so you can access the switch without removing the spacebar?I could see that being possible, but it would take modifying the Teensy and that is such tiny hardware that I wouldn't personally want to make that adjustment.
so the plate would look kind of like this:Although that is assuming the Costar stabilizer would still be balanced and hold properly given the gap right next to it. Like I said, I will think it over tonight and work on moving the Teensy to the underside of the PCB in the morning. I think it is a much better idea to just open up the case and press the button on the underside, then trying to deal with desoldering or having a metal plate with gaps. Also ensures that both types of stabilizers would be unaffected by the Teensy's shape
*snip*
I could see that being possible, but it would take modifying the Teensy and that is such tiny hardware that I wouldn't personally want to make that adjustment.
I suppose you don't have to remove that existing switch from the teensy PCB, just wire in a separate switch that you can reach easily.I suppose it is a good time for me to ask this, what all does the Teensy button do anyway? Is it something we will need to press more than once per day, week, month, year? If we only need it for the initial updating of the code I really doubt we need to access the button again and therefore leaving it hidden prevents accidental erases perhaps?
I suppose it is a good time for me to ask this, what all does the Teensy button do anyway? Is it something we will need to press more than once per day, week, month, year? If we only need it for the initial updating of the code I really doubt we need to access the button again and therefore leaving it hidden prevents accidental erases perhaps?Show Image(http://t0.gstatic.com/images?q=tbn:ANd9GcRyyKyItQsF1113nWl22qIpkWEJpBRJKvcACHSNicmyebylOgizPA)
The teensy is very teensy.
here's the layout you guys want, I have not checked this out live yet, I have a version of this latest revision (but with the short shfit +FN) in the mail, it should be here tomorrow, but spare switches aren'y coming for a week, so I won't be able to troubleshoot and look for errors until sometimes next week.what are the specs of the 2 different resistors that we would need also have you been able to track down and white leds that fall into the specification that we need to work with the DOX?
one more thing, you will see "##" over a few resisters, those will need to be different from the rest, as they are not connected to a serie of 2 LED but rather regulates 1 single LED, you will need a resister of a different value or you will burn out those LED
ok, so it looks like something we need to do on the plate, not the PCByes its something with the plate and I think the holes are the same size the only difference would be the spacing for the spacebar which should be easy to include both.
the wires I've used are to fix mistakes I've made in designing the traces. MY idea was to have the only wire you would need are to hook up the USB of the teensy to the pcb mounted USB port as seen below:couldnt you desolder the usb port on the teensy and wire directly to it would that be easier?Show Image(http://i6.photobucket.com/albums/y222/icbob/22d6d81a.jpg)
unless someone knows of a way to use the ports on the teensy to accomplish this, I dont see anyway to avoid having some wires
I suppose you don't have to remove that existing switch from the teensy PCB, just wire in a separate switch that you can reach easily.is removing the spacebar that big of deal to get at the switch?
I suppose it is a good time for me to ask this, what all does the Teensy button do anyway? Is it something we will need to press more than once per day, week, month, year? If we only need it for the initial updating of the code I really doubt we need to access the button again and therefore leaving it hidden prevents accidental erases perhaps?you only really use it until you find the layout that you like which for me has already been determined and testedShow Image(http://t0.gstatic.com/images?q=tbn:ANd9GcRyyKyItQsF1113nWl22qIpkWEJpBRJKvcACHSNicmyebylOgizPA)
The teensy is very teensy.
I use it less and less, the first week after i finished the board, I did it every day to tweak my function layers as I saw fit, but not so much anymoreThat is pretty much what I was thinking, it is something that probably shouldn't be accessible at all times since it is only really necessary at first, and maybe later down the road for very rare tweaks. Spending the first week or so with the keyboard not screwed together but still assembled allows easy access to change it at will, then once you are happy with the setup you can screw it together and the next time you need to really make a change, just unscrew it and press the button.
couldnt you desolder the usb port on the teensy and wire directly to it would that be easier?For the sake of everyone who plans on making this mod, doing as little modifying to components really would be favorable because it would make it more accessible to the public and those who are just getting started.
is removing the spacebar that big of deal to get at the switch?
what are the specs of the 2 different resistors that we would need also have you been able to track down and white leds that fall into the specification that we need to work with the DOX?
couldnt you desolder the usb port on the teensy and wire directly to it would that be easier?
is removing the spacebar that big of deal to get at the switch?
...
you only really use it until you find the layout that you like which for me has already been determined and tested
For the sake of everyone who plans on making this mod, doing as little modifying to components really would be favorable because it would make it more accessible to the public and those who are just getting started.
1. solder teensy
2. solder mx switches
3. solder usb hub
I know that isn't necessarily the actual order of course, but that isn't my point. Promoting simplicity boosts confidence. Makes the project truly user friendly and intrigues more members to try it.
No removing the spacebar is not that big of a deal, but it also looks cleaner when switching out keycaps later, or not worrying about bottoming out and hitting the micro controller. And the idea of not placing something there you won't be using all the time.
For the sake of everyone who plans on making this mod, doing as little modifying to components really would be favorable because it would make it more accessible to the public and those who are just getting started.steps for my build: (in order)
1. solder teensy
2. solder mx switches
3. solder usb hub
I know that isn't necessarily the actual order of course, but that isn't my point. Promoting simplicity boosts confidence. Makes the project truly user friendly and intrigues more members to try it.
No removing the spacebar is not that big of a deal, but it also looks cleaner when switching out keycaps later, or not worrying about bottoming out and hitting the micro controller. And the idea of not placing something there you won't be using all the time.
No, all the white I've came by are using 2.9-3.4V, if you can find anything =<2.5V it would work, but we'll need to calculate new vales for those resisters (prob 1ohm)yea your plan for the teensy usb seems fine
as for the current layout, baed on the 2.2V LED's im using, it should be 100ohm for the seried LED and 470 for the lone LED, this would provide 6mA of power to every LED, which you've seen in my pics
Yes, that would work, but is it easier?
First of all: I hate desoldering :P
secondly, those pads are tiny, and with the soldering I have I don't think I would be able to accurately solder wires to thsoe pads even after I remove the
I believe you just answered your own question
I tested and retested before ordering the board as I have a metal space bar (which mean contact of any short = bad) I've already assembled the board, using it for the past week and half and i yet to have any issues with shorting out.what if I were to get cherry stabilizers which would take a leopold spacebar would that work?
I planned it to sit at the same height as the plate (if there will be any) and the USB section would be under the switch.
There is going to be an issue for those who are going to be using the filco/leo hybrid space bar, as the USB will be directly under the leo-MX switch thingy.
edit: Oh, and I bottom out all the time... especially when i'm mad :P
no, the filco sized stabilizers gives just enough room for a cut-usb and teensy to fit with the teensy board to just touch the space bar switch (in the groove where the plate should be if i had one)the reason why I brought this up is we currenly dont have source for costar/filco stabilizer. WASD might be stocking them but I dont want to count on it as it not a definite thing
leo stabs would not leave enough room for the usb, it would still be possible for you to do the desolder usb head trick, but I would also need to move the hole where the wires from the usb goes.... since it will be directly under the stab.
I've been ordering them from onlinecomponents:those look like Cherry/Leopold to me but if you cutting your own wire it would matter. You can get the wire for the Costar/Filco ones from WASD but i dont think those would work with cherry (though i have never tried).
plate mount (http://www.onlinecomponents.com/cherry-electrical_g990224.html?p=11075022)
PCB mount (http://www.onlinecomponents.com/cherry-electrical_g990742.html?p=11075025)
These dont come with the metal bar so I've been making my own from a 1/16inch stainless steel rod
Red LED will work, they operate at 2.1-2.5V which is very similar to the 2.2-2.7 of the orangealright, otherwise you can look ast mouser idk what they have to offer but i know the have switches and stabilizers as well.
WASD already does sell the stabilizer bars http://www.wasdkeyboards.com/index.php/products/keyboard-parts-1.html And the plan he said was to get them in this December/January. Remember he already uses costar for his keyboards so he definitely has access to them he just hasn't made them available for purchase separately yet.ill go post in his subforum and find out for sure.
ill go post in his subforum and find out for sure.This was the thread I am referring to
This was the thread I am referring todone
http://geekhack.org/showthread.php?23681-costar-stabilizers
In fact you posted in that very thread, so instead of starting a new one perhaps give it a bump and a request for an update on the ETA.
no offense, but part of your layout doesnt make sense, you have 1 FN key to trigger layer 1, how do you expect to trigger layer 2 or 3? press 2 keys down at the same time? it seems inconvenient and cluncky, and more importantly I'm not sure if the firmware supports that, the FN layers might conflict since soon as you press FN2 or 3 layer 1 stops, and that stops the FN1 on layer 1, which would then stop FN2 or 3, leaving those 2 layer still unusableWell I created the layer for just the Fn layer 2 which really isnt needed as it just creates a second Fn key i would always be using this so no need and I shall eliminate it. Then all it would be is you hold Fn and you have access to layer 1. I also have it set that if you hold Fn and hit Fn 3 it toggles layer 3 on or off. This would hopefully still allow you to hold Fn and have access to layer one. I hope this would be available. If not I wont be too heartbroken for the DOX it will throw my Phantom design into a bind though.
either way I'm almost done putting together your firmware from modifying hasu and dox's keymapsthanks much you just doing layer one then right? by default just make right shift Fn cause I dont use it for shift anyway.
sure thing, we can do that until we get get the FN layer toggle figured out, its not like you cant re-flash the teensy as you see if anywaysYes hopefully once the base firmware for Phantom is worked on more Ill see if a toggleable layer is possible or if that function can be worked in.
ahh shoot, I forgot to bring my keycap puller with me, I'll have to wait to test out your firmware after I get home, later this evening.No problem its not like im completely in a hurry we still have a few things that need to be figured out before I plan on ordering.
woa.. where would we get a hold of that switch?Sorry about that, it was on the first page of the thread I linked to, I forgot to actually link it here also
sure thing, it will be next week though, i ran out of diodes and switchesGreat its cool. whats switches you getting and where are you buying from?
Well this is a link to their full stock of Cherry MX keyswitchesI do like clears but I think i may prefer brown for prolonged typing and general usage. Clears definitely have their on typing style. Maybe I should go Ergo-Clear? Would that be Blue+Clear?
http://www.onlinecomponents.com/KeywordSearch.aspx?Text=MX1A%20Cherry&Page=1
(Plate Mounted)
http://www.onlinecomponents.com/cherry-electrical_mx1ac1nn.html?p=11075427 - Clear switches
1-24 : $0.92
25-99 : $0.85
http://www.onlinecomponents.com/cherry-electrical_mx1ae1nn.html?p=11075429 - Blue switches
1-24 : $0.92
25-99 : $0.85
http://www.onlinecomponents.com/cherry-electrical_mx1a11nn.html?p=40653293 - Black switches
1-9 : $0.94
10-24 : $0.89
25-49 : $0.84
50-99 : $0.70
If you want red switches you would need to order either black+blue switches in the amount you want. or try to find either the stem or spring elsewhere, sorry. Also they do not sell brown switches.
I do like clears but I think i may prefer brown for prolonged typing and general usage. Clears definitely have their on typing style. Maybe I should go Ergo-Clear? Would that be Blue+Clear?Updated my post for ideas for Ergo clears, but again the price isn't perfect. It would end up costing about 90$ to get double the amount of switches for our boards for Red or Ergo Clear. Just to order a set of blue, black, or clear by themselves though is about 50$ Slightly less for blacks of course because of the extra price break.
I bought cherry browns, and I got alot of clear stems that i'm going to be swapping it. if you look back on all the pics I've posted, they were all ergo clears :) i love themGoin ergo clears then. I already like Clears but their definitely a bit heavy for prolonged typing even if you never bottom out. The feeling is also very different.
i did $60 on blues + an old $20 POS cherry clear board off ebayI think I would go all new and lube them up after a week or 2 of break in I can just imagine the the amazing feel.
My problem is that I like brown switches the most and I have absolutely no idea where to source those. I saw one Chinese website offering them for about 2$ per switch which adds up way too quickly.go ergo clears!
http://www.jw-shop.com/product20/page45/detail.htm I just noticed this website but I can't understand if they are using Yen or Cny (huge difference)
700 yen for 10 switches would be absolutely awesome, the only problem is that I am not sure what shipping would be, and I could be translating the "10" wrong. Also for browns only they have both With and without mounting pins for PCB
Good news, I will be getting R1 1.75's. My supplier runs this keycap in the same mold that produces the ISO Enter Key. So, even though I can't use them, I can now supply them. I expect to have these sometime in December.So maybe having the reduced size shift wouldn't be half bad after all.
Ishtob could I see the most recent code you used with "doxKB_poker_cased_long shift.pcb" I am trying to rearrange the Teensy to be on the opposite side but I need to know which row/column to line up with each pin on the Teensy. If you have the code I could look at then it would save a lot of time and frustration. Hopefully I will have the re-done design by tonight.dang I would love exact legends that would be amazing but the back lighting... I should ask if he can get short left shift as well then there could be a FN key there on the DOX as well and the layout would be even better (and closer to my phantom layout). And if that is available I think that I am going to get rid of the full size backsapce and go to a HHKB style layout
Good news everyone!
So maybe having the reduced size shift wouldn't be half bad after all.
for some reason I cant upload the firmware thorugh geekhack, I'll get it uploaded somewhere else i guess and link it.I don't think geekhack allows uploading just any file. It might work to just put the code in some [ code ] brackets. [ / code ] instead of having to upload any files
for some reason I cant upload the firmware thorugh geekhack, I'll get it uploaded somewhere else i guess and link it.Try bayimg and bayfiles, I have have used them without trouble.
/*
Copyright 2011 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* Keymap for Macway mod
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include "usb_keycodes.h"
#include "print.h"
#include "debug.h"
#include "util.h"
#include "keymap.h"
// Convert physical keyboard layout to matrix array.
// This is a macro to define keymap easily in keyboard layout form.
#define KEYMAP( \
R0C5, R1C4, R2C4, R3C4, R4C4, R5C4, R6C4, R7C4, R8C4, R9C4, R10C4, R11C2, R12C3, R13C4,\
R0C4, R1C3, R2C3, R3C3, R4C3, R5C3, R6C3, R7C3, R8C3, R9C3, R10C3, R11C1, R12C2, R13C3, \
R0C3, R1C2, R2C2, R3C2, R4C2, R5C2, R6C2, R7C2, R8C2, R9C2, R10C2, R11C0, R13C2, \
R0C2, R1C1, R2C1, R3C1, R4C1, R5C1, R6C1, R7C1, R8C1, R9C1, R10C1, R13C1, \
R0C1, R1C0, R2C0, R5C0, R9C0, R10C0, R12C0, R13C0 \
) { \
{ KB_NO, R0C1, R0C2, R0C3, R0C4, R0C5 }, \
{ R1C0, R1C1, R1C2, R1C3, R1C4, KB_NO }, \
{ R2C0, R2C1, R2C2, R2C3, R2C4, KB_NO }, \
{ KB_NO, R3C1, R3C2, R3C3, R3C4, KB_NO }, \
{ KB_NO, R4C1, R4C2, R4C3, R4C4, KB_NO }, \
{ R5C0, R5C1, R5C2, R5C3, R5C4, KB_NO }, \
{ KB_NO, R6C1, R6C2, R6C3, R6C4, KB_NO }, \
{ KB_NO, R7C1, R7C2, R7C3, R7C4, KB_NO }, \
{ KB_NO, R8C1, R8C2, R8C3, R8C4, KB_NO }, \
{ R9C0, R9C1, R9C2, R9C3, R9C4, KB_NO }, \
{ R10C0, R10C1, R10C2, R10C3, R10C4, KB_NO }, \
{ KB_NO, KB_NO, R11C0, R11C1, R11C2, KB_NO }, \
{ R12C0, KB_NO, KB_NO, R12C2, R12C3, KB_NO }, \
{ R13C0, R13C1, R13C2, R13C3, R13C4, KB_NO } \
}
#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)]))
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
static const uint8_t PROGMEM fn_layer[] = {
0, // Fn0
1, // Fn1
2, // Fn2
3, // Fn3
4, // Fn4
0, // Fn5
2, // Fn6
1 // Fn7
};
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
// See layer.c for details.
static const uint8_t PROGMEM fn_keycode[] = {
KB_NO, // Fn0
KB_NO, // Fn1
KB_NO, // Fn2
KB_SCLN, // Fn3
KB_NO, // Fn4
KB_NO, // Fn5
KB_NO, // Fn6
KB_NO // Fn7
};
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: Default Layer
* ,-----------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| |
* |-----------------------------------------------------' |
* |Caps | A| S| D| F| G| H| J| K| L|Fn3| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
* |-----------------------------------------------------------|
* |Ctr|Fn1 |Alt |Space |Alt |Gui|App| |Ctr|
* `-----------------------------------------------------------'
*/
KEYMAP( KB_ESC, KB_1, KB_2, KB_3, KB_4, KB_5, KB_6, KB_7, KB_8, KB_9, KB_0, KB_MINS, KB_EQL, KB_BSPC, \
KB_TAB, KB_Q, KB_W, KB_E, KB_R, KB_T, KB_Y, KB_U, KB_I, KB_O, KB_P, KB_LBRC, KB_RBRC, KB_BSLS, \
KB_CAPS, KB_A, KB_S, KB_D, KB_F, KB_G, KB_H, KB_J, KB_K, KB_L, KB_FN3, KB_QUOT, KB_ENT, \
KB_LSFT, KB_Z, KB_X, KB_C, KB_V, KB_B, KB_N, KB_M, KB_COMM, KB_DOT, KB_SLSH, KB_FN7, \
KB_LCTL, KB_FN1, KB_LALT, KB_SPC, KB_RALT, KB_RGUI, KB_APP, KB_RCTL),
/* Layer 1: HHKB mode (HHKB Fn)
* ,-----------------------------------------------------------.
* |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
* |-----------------------------------------------------------|
* |Fn3 |Mut|VoU|VoD| | | |Psc|PgU|Slk|Up | | |Inc |
* |-----------------------------------------------------' |
* | |PLY|PRV|NXT| | | |ScL|PgD|Lef|Dow|Rig|Enter |
* |-----------------------------------------------------------|
* |FN2 |Mb2|Mb3|Mb1|MB4| | |Brk|Hom|End| |Shift |
* |-----------------------------------------------------------|
* | |Fn1 | | | | | | | |
* `-----------------------------------------------------------'
*/
KEYMAP(KB_GRV, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_DEL, \
KB_NO, KB_NO, KB_UP, KB_NO, KB_NO, KB_NO, KB_PSCR, KB_PGUP, KB_NO,KB_NO,KB_UP, KB_NO, KB_NO, KB_INS, \
KB_NO, KB_MPLY,KB_MPRV,KB_MNXT,KB_BTN5, KB_NO, KB_SLCK,KB_NO,PGDN_LEFT,KB_DOWN,KB_RGHT,KB_RGHT,KB_ENT, \
KB_NO, KB_BTN2, KB_BTN3, KB_BTN1, KB_BTN4, KB_NO,KB_NO, KB_BRK, KB_HOME, KB_END, KB_NO, KB_FN7),
KB_NO, KB_FN1,KB_NO, KB_NO, KB_NO,KB_NO, KB_NO, KB_NO),
/* Layer 2: Vi mode (Quote/Rmeta)
* ,-----------------------------------------------------------.
* |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
* |-----------------------------------------------------------|
* |Caps | |Up | | | | | | |Slk|Pus|Up | |Psc |
* |-----------------------------------------------------' |
* |Contro|Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Enter |
* |-----------------------------------------------------------|
* |Shift | | |VoD|VoU|Mut| | |End|PgD|Dow|Shift |
* |-----------------------------------------------------------|
* | |Fn1 | | | | | | | |
* `-----------------------------------------------------------'
*/
KEYMAP(KB_GRV, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_F10, KB_F11, KB_F12, KB_DEL, \
KB_FN3, KB_NO, KB_UP, KB_NO, KB_NO, KB_NO, KB_PSCR, KB_PGUP, KB_NO,KB_NO,KB_UP, KB_NO, KB_NO, KB_INS, \
KB_NO, KB_MPLY,KB_MPRV,KB_MNXT,KB_BTN5, KB_NO, KB_SLCK,KB_NO,PGDN_LEFT,KB_DOWN,KB_RGHT,KB_RGHT,KB_ENT, \
KB_FN2, KB_BTN2, KB_BTN3, KB_BTN1, KB_BTN4, KB_NO,KB_NO, KB_BRK, KB_HOME, KB_END, KB_NO, KB_NO),
KB_NO, KB_FN1,KB_NO, KB_NO, KB_NO,KB_NO, KB_NO, KB_NO),
/* Layer 3: Mouse mode (Semicolon)
* ,-----------------------------------------------------------.
* | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|Mut|VoD|VoU| ` |
* |-----------------------------------------------------------|
* | \ |Mb3|McU|Mb2| | | | |MwU| |Pre|Ply|Nex| |
* |-----------------------------------------------------' |
* |Contro|McL|McD|McR| | | |McL|McD|McR|xxx| | \ |
* |-----------------------------------------------------------|
* |Shift | | | | | | | | | | |Shift |
* |-----------------------------------------------------------|
* |xxx|Gui |Alt |Mb1 |Alt | | | | |
* `-----------------------------------------------------------'
* Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
*/
KEYMAP(KB_GRV, KB_F1, KB_F2, KB_F3, KB_F4, KB_F5, KB_F6, KB_F7, KB_F8, KB_F9, KB_MUTE, KB_VOLD, KB_VOLU, KB_BSPC, \
KB_BSLS,KB_BTN3,KB_MS_U,KB_BTN2,KB_MS_WH_UP,KB_MS_WH_UP,KB_MS_WH_UP,KB_BTN3,KB_MS_U,KB_BTN2, KB_MPRV,KB_MPLY, KB_MNXT, KB_GRV, \
KB_LCTL,KB_MS_L, KB_MS_D,KB_MS_R,KB_MS_WH_DOWN,KB_MS_WH_DOWN, KB_MS_WH_DOWN,KB_MS_L,KB_MS_D,KB_MS_R,KB_FN3, KB_NO, KB_BSLS, \
KB_LSFT,KB_NO, KB_NO, KB_NO,KB_NO,KB_NO,KB_NO,KB_NO,KB_NO, KB_NO, KB_NO, KB_RSFT, \
KB_FN7, KB_LGUI,KB_LALT,KB_BTN1,KB_RALT,KB_NO, KB_RCTL, KB_DEL),
/* Layer 4: Matias half keyboard style (Space)
* ,-----------------------------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
* |-----------------------------------------------------------|
* |Backs| P| O| I| U| Y| T| R| E| W| Q|Tab|Tab| |
* |-----------------------------------------------------' |
* |Contro| ;| L| K| J| H| G| F| D| S| A|Con|Control |
* |-----------------------------------------------------------|
* |Shift | /| .| ,| M| N| B| V| C| X| Z|Shift |
* |-----------------------------------------------------------|
* | |Gui |Alt |xxxxxxxxxxxxxxxxxxxxxx|Alt |Gui| | |Ctr|
* `-----------------------------------------------------------'
*/
KEYMAP(KB_MINS,KB_0, KB_9, KB_8, KB_7, KB_6, KB_5, KB_4, KB_3, KB_2, KB_1, KB_NO, KB_NO, KB_ESC, \
KB_BSPC,KB_P, KB_O, KB_I, KB_U, KB_Y, KB_T, KB_R, KB_E, KB_W, KB_Q, KB_TAB, KB_TAB, KB_BSPC, \
KB_LCTL,KB_SCLN,KB_L, KB_K, KB_J, KB_H, KB_G, KB_F, KB_D, KB_S, KB_A, KB_RCTL,KB_RCTL, \
KB_LSFT,KB_SLSH,KB_DOT, KB_COMM,KB_M, KB_N, KB_B, KB_V, KB_C, KB_X, KB_Z, KB_RSFT, \
KB_NO, KB_LGUI,KB_LALT,KB_FN4, KB_RALT,KB_RGUI,KB_RCTL, KB_DEL),
};
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
{
return KEYCODE(layer, row, col);
}
uint8_t keymap_fn_layer(uint8_t fn_bits)
{
return pgm_read_byte(&fn_layer[biton(fn_bits)]);
}
uint8_t keymap_fn_keycode(uint8_t fn_bits)
{
return pgm_read_byte(&fn_keycode[(biton(fn_bits))]);
}
/*
Copyright 2011 Jun Wako
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
/*
* scan matrix
*/
#include
#include
#include
#include
#include "print.h"
#include "util.h"
#include "matrix.h"
#include "debug.h"
#if (MATRIX_COLS > 16)
# error "MATRIX_COLS must not exceed 16"
#endif
#if (MATRIX_ROWS > 255)
# error "MATRIX_ROWS must not exceed 255"
#endif
#ifndef DEBOUNCE
# define DEBOUNCE 0
#endif
static uint8_t debouncing = DEBOUNCE;
// matrix state buffer(1:on, 0:off)
#if (MATRIX_COLS <= 8)
static uint8_t *matrix;
static uint8_t *matrix_prev;
static uint8_t _matrix0[MATRIX_ROWS];
static uint8_t _matrix1[MATRIX_ROWS];
#else
static uint16_t *matrix;
static uint16_t *matrix_prev;
static uint16_t _matrix0[MATRIX_ROWS];
static uint16_t _matrix1[MATRIX_ROWS];
#endif
#ifdef MATRIX_HAS_GHOST
static bool matrix_has_ghost_in_row(uint8_t row);
#endif
static uint8_t read_col(void);
static void unselect_rows(void);
static void select_row(uint8_t row);
inline
uint8_t matrix_rows(void)
{
return MATRIX_ROWS;
}
inline
uint8_t matrix_cols(void)
{
return MATRIX_COLS;
}
void matrix_init(void)
{
// initialize row and col
unselect_rows();
// Input with pull-up(DDR:0, PORT:1)
DDRB = 0x00;
PORTB = 0xFF;
// initialize matrix state: all keys off
for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix0[i] = 0x00;
for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00;
matrix = _matrix0;
matrix_prev = _matrix1;
}
uint8_t matrix_scan(void)
{
if (!debouncing) {
uint8_t *tmp = matrix_prev;
matrix_prev = matrix;
matrix = tmp;
}
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
unselect_rows();
select_row(i);
_delay_us(30); // without this wait read unstable value.
if (matrix[i] != (uint8_t)~read_col()) {
matrix[i] = (uint8_t)~read_col();
if (debouncing) {
debug("bounce!: "); debug_hex(debouncing); print("\n");
}
debouncing = DEBOUNCE;
}
}
unselect_rows();
if (debouncing) {
debouncing--;
}
return 1;
}
bool matrix_is_modified(void)
{
if (debouncing) return false;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
if (matrix[i] != matrix_prev[i]) {
return true;
}
}
return false;
}
inline
bool matrix_has_ghost(void)
{
#ifdef MATRIX_HAS_GHOST
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
if (matrix_has_ghost_in_row(i))
return true;
}
#endif
return false;
}
inline
bool matrix_is_on(uint8_t row, uint8_t col)
{
return (matrix[row] & (1< }
inline
#if (MATRIX_COLS <= 8)
uint8_t matrix_get_row(uint8_t row)
#else
uint16_t matrix_get_row(uint8_t row)
#endif
{
return matrix[row];
}
void matrix_print(void)
{
print("\nr/c 01234567\n");
for (uint8_t row = 0; row < matrix_rows(); row++) {
phex(row); print(": ");
#if (MATRIX_COLS <= 8)
pbin_reverse(matrix_get_row(row));
#else
pbin_reverse16(matrix_get_row(row));
#endif
#ifdef MATRIX_HAS_GHOST
if (matrix_has_ghost_in_row(row)) {
print(" }
#endif
print("\n");
}
}
uint8_t matrix_key_count(void)
{
uint8_t count = 0;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
#if (MATRIX_COLS <= 8)
count += bitpop(matrix[i]);
#else
count += bitpop16(matrix[i]);
#endif
}
return count;
}
#ifdef MATRIX_HAS_GHOST
inline
static bool matrix_has_ghost_in_row(uint8_t row)
{
// no ghost exists in case less than 2 keys on
if (((matrix[row] - 1) & matrix[row]) == 0)
return false;
// ghost exists in case same state as other row
for (uint8_t i=0; i < MATRIX_ROWS; i++) {
if (i != row && (matrix[i] & matrix[row]) == matrix[row])
return true;
}
return false;
}
#endif
inline
static uint8_t read_col(void)
{
return PINB;
}
inline
static void unselect_rows(void)
{
DDRC = 0x00; DDRD = 0x00; DDRF = 0x00;
PORTC = 0x00; PORTD = 0x00; PORTF = 0x00;
// Hi-Z(DDR:0, PORT:0) to unselect
// DDRC &= ~0b11000000; // PC: 7,6
// PORTC &= ~0b11000000;
// DDRD &= ~0b11000111; // PD: 7,6,2,1,0
// PORTD &= ~0b11000111;
// DDRF &= ~0b11000000; // PF: 7,6
// PORTF &= ~0b11000000;
}
inline
static void select_row(uint8_t row)
{
// Output low(DDR:1, PORT:0) to select
// row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
// pin: PD0, PD1, PD2, PD3, PC6, PC7, PD6, PD7, PF7, PF4, PF6, PF5, PF1, PF0
switch (row) {
case 0:
DDRD |= (1<<0);
PORTD &= ~(1<<0);
break;
case 1:
DDRD |= (1<<1);
PORTD &= ~(1<<1);
break;
case 2:
DDRD |= (1<<2);
PORTD &= ~(1<<2);
break;
case 3:
DDRD |= (1<<3);
PORTD &= ~(1<<3);
break;
case 4:
DDRC |= (1<<6);
PORTC &= ~(1<<6);
break;
case 5:
DDRC |= (1<<7);
PORTC &= ~(1<<7);
break;
case 6:
DDRD |= (1<<6);
PORTD &= ~(1<<6);
break;
case 7:
DDRD |= (1<<7);
PORTD &= ~(1<<7);
break;
case 8:
DDRF |= (1<<7);
PORTF &= ~(1<<7);
break;
case 9:
DDRF |= (1<<4);
PORTF &= ~(1<<4);
break;
case 10:
DDRF |= (1<<6);
PORTF &= ~(1<<6);
break;
case 11:
DDRF |= (1<<5);
PORTF &= ~(1<<5);
break;
case 12:
DDRF |= (1<<1);
PORTF &= ~(1<<1);
break;
case 13:
DDRF |= (1<<0);
PORTF &= ~(1<<0);
break;
}
}
which file would you like to see? matrix or the keycodes?
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "usb_keyboard.h"
#define bool uint8_t
#define true 1
#define false 0
nah its okay, changing the layout is not too hard to do since i've do it so many times now :PLooking nice, are your switches going to be pcb mounted?
anyways, that tutorial we were talking about, I'm about half way done documenting it.... the diodes came super fast so I started tonight, now I just need to wait for the switches and I can complete the tute... here's a picture of its current progress:Show Image(http://i6.photobucket.com/albums/y222/icbob/3b2da2d6.jpg)
when done, the whole keyboard will be orange LED lit, and 3 areas can be turned on or off (WASD, ESC, everything else)
Another possibly very useful thing to us. This thread was just talking about some DIY poker cases and since the DOX keyboard is meant to be the same form factor we could definitely benefit from having a case to use with no modding.
http://geekhack.org/showthread.php?24068-DIY-Poker-case
By the way thank you ishtob for posting the updated code, I will be looking over it and seeing what I can learn about the Teensy from it.
ishtob you mentioned the dip siwtches for the LEDs. Where can I source a dip switch that will fit?I will look into finding what I can for the Poker style case, hopefully with just a slight modification it could be used for PCB or Plate mounted and that would be awesome
I would love more info on that and one for my DOX, care to dig in and get more info? (files and where to send them would be great!) This definitely beats the original DOX case (not that I was against it). I have one qusetion though and you somehow get a plate into the mix also? I prefer plate mounted switches.
I will look into finding what I can for the Poker style case, hopefully with just a slight modification it could be used for PCB or Plate mounted and that would be awesomeSounds great
Also I updated the image for your sig since you prefer having it right justified, it should line up properly now. And I believe it should work no matter if it is left or right aligned. Hope that helps.Show Image(http://i.imgur.com/lsEvj.png)
Oh ishtob started a modification page for the updated everything
http://geekhack.org/showwiki.php?title=Island:24082
oh, if you guys are going to use the PCB file, use the one from the tutorial, I caught 2 small mistakes on this one i'm working on. and I've corrected it on those files,Good to know. I am also working on finalizing the new DOX layout since I learned that WASD will have compatible keycaps. As we track down more stuff we should add it to the wiki. Also do we continue conversation here on in your new one since what were dealing with is more of the offshoot?
if not the trace needs to cut in 2 places:
1. key 7's LED should not be connected to anything on the topside, that small trace on the left LED hole should be severed.
2. key Y, the left hold of the LED should only be connected to the trace above it, sever the trace connecting downwards
leave the new wiki for questions, keep the discussions heresounds good to me dont want them having to go through anothe 28 pages do we.
I like have 2 FN keys both for the same layer, allow me to use my layer with either handssame here I have the default layer setup almost the same as my Phantom (http://tinyurl.com/6m2v27q) itll be up soon.
and are you sure you will be able to source that 1st row of keycaps in 1x1?Those are the same exact size as arrow keys and zxcvbnm,./ Remember sculpted row 1 and 2 use the same keys. row 3 and 4 each use their own sculpted size, and row 5 and 6 use the same sculpted shape. So there really isn't any trouble sourcing extra row 2 keys. (total of 4 different 1x1 sculpted sizes)
and are you sure you will be able to source that 1st row of keycaps in 1x1?yes you can remember "." on the numpad it uses them Edit: forgot as well as all the 1st row letter keys.
here's an idea:
use those 4 keys as the direction keys
yes you can remember "." on the numpad it uses them Edit: forgot as well as all the 1st row letter keys.Also 1 2 and 3 from the numpad use them as well.
I plan to have a layer with right shift, alt, win, menu being arrow keys will be on a mechanically toggleable layer via one of those toggleable cherry switches
Also 1 2 and 3 from the numpad use them as well.I know, I had a brain fart.
My firmware already supports NKRO feature like Soarer's.Wow thanks for the info on that no need to use up Soarer's time then.
NKRO is not active by default, you need to press LShift+RShift+N to start the feature.I think it should some work on Windows, Linux and Mac without severe problems. Though NKRO feature is never thoroughly tested yet and I doesn't used it usually. Try it.
And concerning layer switching,
at this time all Fn keys are momentary and firmware doesn't support toggle switching. I placed toggle feature on my TODO list but not coming yet.
Physical locking switch is very nice and a direct work around for this lack.
just letting you guys know the locking switch will need a different LED configuration to workso what no led on the locking switch? or what?
It's in a diff. locationOh wait nevermind don't need to measure, look at the bottom of a switch, just use the holes one over to the right if the led hole is facing you. You should see a total of 4 possible LED leads on every single switch, and on the toggle one it is just using the far right ones.
Oh wait nevermind don't need to measure, look at the bottom of a switch, just use the holes one over to the right if the led hole is facing you. You should see a total of 4 possible LED leads on every single switch, and on the toggle one it is just using the far right ones.The led is slightly off center so that will have to be noted when changing the pcb right
those are not meant for LED, they are for layouts where the diodes goes in the switchesSurprisingly they /are/ meant for the LED in this case, I have placed an LED into the housing and yes it does fit into those 2 far right pins.
are you 100% its the same as the far right one? I can go ahead and add the extra lead to the right, All you need to do is pivot the LED 180degrees to use the toggle switch
Surprisingly they /are/ meant for the LED in this case, I have placed an LED into the housing and yes it does fit into those 2 far right pins.Thats right we wanted to pimp out our keyboards a bit.
Also if we did a diode inside the housing that would make things so much easier.. but that is okay, the people wanted LED instead after all.
okay, i'll add that later this weekend, meanwhile think about which keys you guys would like to have optionMy layout is finalized and is cleared with the others that will possibly be using it. http://tinyurl.com/7zy8wzc
ahhh back to the 2 1x1 instead of backspace >.<Sorry about that, the layout worked and I am trying to keep my DOX and Phantom layouts as close as possible. And well once I found out that WASD could do the keys, things changed.
aite i'll need to redo the PCB layout too then
<-- I like the backspaceYou prefer normal backspace... Sorry, I regularly use a HHKB.
maybe I should try this too, i dont really have money for a HHKBGreat Idea! I then recommended to you my layout. By the way, Caps Lock was in the right place on the Model F they have screwed it up since the Model M.
maybe I should try this too, i dont really have money for a HHKBActually you probably do have money for a Happy Hacking Keyboard Lite which is what I normally take with me to school (This is a rubber dome keyboard, but it doesn't /feel/ like rubber dome)
Actually you probably do have money for a Happy Hacking Keyboard Lite which is what I normally take with me to school (This is a rubber dome keyboard, but it doesn't /feel/ like rubber dome)there is a Fn key on the left when you use dip switch you kill left win, just about everyone does it. And I want full size arrows or nothing, I have those half size keys.
And I would say that is the best way to get comfortable with the layout of the HHKB, although it has dedicated arrow keys which the Topre doesn't have. and an extra Fn key on the left side, which the Topre doesn't.Show Image(http://comedialabs.com/images-matti/lite2.jpg)
this is what I bring to school:Nice if only my future DOX had a case :(Show Image(http://i6.photobucket.com/albums/y222/icbob/059aeba0.jpg)
Its my dox! :D
lol im in middle of a lecture, snuck a quick snapshot with my phone, sorry for the blurry
Oh, and there will be ~10 people with a spare poker case whenever those aluminum cases gets shipped out, so try to get a hold of one from someone if you just want a quick case to start using the doxThat sir is a GREAT idea!
someone should look into who those korean at kbdmania.net does their cases... they look awesomeThat actually seems preety simple compare to other cases I have seen
something like this (http://www.kbdmania.net/xe/index.php?mid=photo&page=16&document_srl=3075176)
That actually seems preety simple compare to other cases I have seenyea looks like 4 layers of a CNC/laser cut acrylic
I personally just want those custom printed keycaps since we will all have different layouts it would be great to have front facing Fn layer lasered (or engraving, my personal choice) Most likely not double shot since that would require about eleventy billion molds.I just going to get mine in white from WASD have him etch my layout on. sadly he can only do the top curretly so the FN layer will be going in the lower right of the keycap.
But I would be happy to use blanks until we can get custom printing done to the keycaps. Because darn it I want PBT keycaps.
I just going to get mine in white from WASD have him etch my layout on. sadly he can only do the top curretly so the FN layer will be going in the lower right of the keycap.He does plan to be able to do front faces in the future, so I was hoping to buy all blank keycaps and then have them laser/etched/something later on by WASD if he can do that.
He does plan to be able to do front faces in the future, so I was hoping to buy all blank keycaps and then have them laser/etched/something later on by WASD if he can do that.I know he plans to (probably in my thread). Though, I dont know when that is going to happen though many project he originally had planned kind of stalled.
this is another interesting case I was looking at:lloks to be made the same just different material.
http://www.kbdmania.net/xe/index.php?mid=photo&page=29&document_srl=2982729
He does plan to be able to do front faces in the future, so I was hoping to buy all blank keycaps and then have them laser/etched/something later on by WASD if he can do that.
ever considered slide-transfer sheets:That would actually be pretty nice, I would have to wonder how long it will last though, or if it really is permanent
http://www.kbdmania.net/xe/index.php?mid=photo&page=42&document_srl=2893523
problem is i have no idea where we would acquire them
ever considered slide-transfer sheets:I dont really mind the fact that their on top it works if layed out right. Would definitly jave to do a fully custom layout (would probably have to do that anyway since the layout is non standard [once i contact WASD and he agrees to do the project]).
http://www.kbdmania.net/xe/index.php?mid=photo&page=42&document_srl=2893523
problem is i have no idea where we would acquire them
ever considered slide-transfer sheets:
http://www.kbdmania.net/xe/index.php?mid=photo&page=42&document_srl=2893523
problem is i have no idea where we would acquire them
ever considered slide-transfer sheets:
http://www.kbdmania.net/xe/index.php?mid=photo&page=42&document_srl=2893523
problem is i have no idea where we would acquire them
you could ask this fellow GeekHacker (http://geekhack.org/showthread.php?20464-What-did-you-add-to-your-Keyboard-today-Post-Your-Pics&p=454341&viewfull=1#post454341) he seems to have somewhat of what you're looking for.I have seen the neon glow stickers, they are not all that amazing. We are looking for the smaller style meant just for front key face text.
I want stickers to do thisShow Image(http://geekhack.org/attachment.php?attachmentid=28448&d=1318398346)
Finalized my layout, now just need to fix the layout on the PCB plus move the teensy to the back so that the plate won't interfere.plate wont interfere now though u need a hole in it. I believe we originally had it in the back was kinda complicated.Show Image(http://i.imgur.com/OP1Ky.png)Show Image(http://i.imgur.com/MTJZ3.png)
im pretty sure there is a way to design one to fit the caseAwesome, so anyone know someone who can do it?
So after staring at the keyboard matrix in relation to the Teensy pins this is what I came up with. Does it make sense to anyone? I don't understand quite what each pin on the Teensy does I guess. Why does Esc have its own pin? And in what order do the columns make sense to what pin they are wired to.Show Image(http://www.pjrc.com/teensy/features.gif)
Row 0 - B0
Row 1 - B1
Row 2 - B2
Row 3 - B3
Row 4 - B4
Esc - B5
Col 0 - D0
Col 1 - D1
Col 2 - D2
Col 3 - D3
Col 4 - C5
Col 5 - C7
Col 6 - D6
Col 7 - D7
Col 8 - F6
Col 9 - F7
Col 10 - F5
Col 11 - F4
Col 12 - F1
Col 13 - F0
What advantages does the teeny++ have over teensy?
Is it possible to use any pin as long as you declare it and it is not GND or VCC, or does it have to be one of certain pins because there are 31 pins total.
Can't be AREF, RST, GND, Vcc.I know which ones AREF, GND and VCC are. But which one is the RST?
On both models, the middle 3 holes on the end next to the button are Vcc Gnd and RST. Yes, that's so you can wire an off-board reset button.Thank you very much that helps quite a lot, I will begin working on a new layout then for the PCB traces.
Have any of you thought about building a bluetooth keyboard? I'm really interested in making a bluetooth/usb hybrid.While I do think a bluetooth keyboard is useful to some people. I personally do not like to deal with batteries (even rechargeable ones) and so I personally would most likely not be able to help in that regard. If you read through other modification threads about bluetooth you will notice that there is a pretty common five meter rule as far as how far from their bluetooth receiver they can be. I personally in this scenario would rather just hook up a 10 foot extension cable since it really wouldn't be too bad having just 1 extra wire between me and the computer. I would recommend reading up on those other modifications as I believe those would help here if you want to pursue that.
Could I get the links again to where to buy the toggle switch? I seem to have lost them. Also if you want to throw in blue and clear that would be great. Im trying to get everything together should be able to start ordering parts soon.Well this is a link to their full stock of Cherry MX keyswitches
Well this is a link to their full stock of Cherry MX keyswitchesouch just figured out itll be about $130 for full all new keyboard of ergo clears. know of any suppliers of browns?
http://www.onlinecomponents.com/cherry-electrical_mx1ac1nn.html?p=11075427 - Clear plate switches
http://www.onlinecomponents.com/cherry-electrical_mx1ae1nn.html?p=11075429 - Blue plate switches
http://www.onlinecomponents.com/cherry-electrical_mx1a11nn.html?p=40653293 - Black plate switches
http://www.onlinecomponents.com/cherry-electrical_mx1a31nn.html?p=11075424 - Toggle plate switch
Grabbing the PCB mounted links, will post below
http://www.onlinecomponents.com/cherry-electrical_mx1ac1nw.html?p=11075428 - Clear PCB switches
http://www.onlinecomponents.com/cherry-electrical_mx1ae1nw.html?p=11075430 - Blue PCB switches
No reasonable amount of Black PCB switches and there is no Toggle PCB switch. (also you cannot swap the toggle switch into a PCB switch, it will not work) Not saying it is 100% impossible, just that if you do it, you have to dremel out the wall between where the diode/led goes and where the spring is.
My problem is that I like brown switches the most and I have absolutely no idea where to source those. I saw one Chinese website offering them for about 2$ per switch which adds up way too quickly.If we were to go a group buy to reduce shipping cost that would be awesome, but I do not know how many they have in stock, and I still don't know if it is sets of 10 or something different.
http://www.jw-shop.com/product20/page45/detail.htm I just noticed this website but I can't understand if they are using Yen or Cny (huge difference)
700 yen for 10 switches would be absolutely awesome, the only problem is that I am not sure what shipping would be, and I could be translating the "10" wrong. Also for browns only they have both With and without mounting pins for PCB
This is the only one that I know of that might have it.Hmm i know that Mouser carries Cherry MX but I have never been able to decipher their model numbers.
If we were to go a group buy to reduce shipping cost that would be awesome, but I do not know how many they have in stock, and I still don't know if it is sets of 10 or something different.
Hmm i know that Mouser carries Cherry MX but I have never been able to decipher their model numbers.Let me help you with that.
Let me help you with that.Looks like they have less than I remember and no browns http://tinyurl.com/7c74o37
All switches start with
MX1A-
next is the color of the switch
next 2 are unimportant also unless you want to have it by default have a diode or LEDs (1N is default)
last is whether it is plate or pcb mounted (Plate = N, PCB = W)
Link to all mouser mx switches http://www.mouser.com/Search/Refine.aspx?Keyword=cherry+mx+keylock
MX1A-1 - Black switch
MX1A-2 - Dark Grey switch
MX1A-3 - Black switch with Grey upper housing and toggles on/off
MX1A-A - White switch
MX1A-B - Grey switch
MX1A-C - Clear switch
MX1A-D - Light Grey switch
MX1A-E - Blue switch
MX1A-F - Green switch
MX1A-G - Brown switch
MX1A-L - Red switch
Does anyone have any experience with different color LEDs because I was reading earlier that purple LEDs can be harmful if left on for long periods of times around you (usually called UV LEDs) But the color looks so nice I really wanted to use them for a Dox. Should I be concerned about ordering those instead of full blue (my second choice)Umm yea you can get purple but dont get UV they have their purposes but prolonged exposure is bad
Umm yea you can get purple but dont get UV they have their purposes but prolonged exposure is badIf you are looking to pay 70$ instead of a possibly lower price then sure that is a good idea. Perhaps you could talk to them about a group buy (meaning the group of us) so we can get closer to 500 for a price drop perhaps.
o i forgot about this thread http://tinyurl.com/83nuvcl
For bigger quantity please inquire or PM me.MX1A-G1JW the J means it has a jumper wire, I am not sure if that will be a problem or not. Also that means they are /not/ plate mounted. But since we have the holes in the board it shouldn't be a problem, we should still be able to use them with a plate AND pcb mount. Talk about impossible to damage haha.
If you are looking to pay 70$ instead of a possibly lower price then sure that is a good idea. Perhaps you could talk to them about a group buy (meaning the group of us) so we can get closer to 500 for a price drop perhaps.I just remember the thread they might not be the right switches. I still want to go with new Ergo Clears but the price is a bit muct with all the other DOX parts so I think that Im going to use some old Dark Blues that to start out with.
MX1A-G1JW the J means it has a jumper wire, I am not sure if that will be a problem or not. Also that means they are /not/ plate mounted. But since we have the holes in the board it shouldn't be a problem, we should still be able to use them with a plate AND pcb mount. Talk about impossible to damage haha.
Also how can you tell which are purple and which are UV they seem to all be marketed as UV from what I could find.
I just remember the thread they might not be the right switches. I still want to go with new Ergo Clears but the price is a bit muct with all the other DOX parts so I think that Im going to use some old Dark Blues that to start out with.Perhaps try ordering clears and then getting just the springs from the Classifieds? First make a post in classifieds seeing if you can get just the springs for around 10~15 (brown/blue/red springs) If you can get that deal then just buying the clear switches to go with them will be a cakewalk.
Perhaps try ordering clears and then getting just the springs from the Classifieds? First make a post in classifieds seeing if you can get just the springs for around 10~15 (brown/blue/red springs) If you can get that deal then just buying the clear switches to go with them will be a cakewalk.posted!
Are we infact limited to only Red, Yellow, and Orange? I mean surely there must be a way to use more LEDs since Deck makes Blue and Green full LED under all 104 keys keyboards.yea we can only use those colors i believe otherwise the led is too dim or they were drawing too much power from the usb port. someone mentioned that manufacturer might use PWM or something to that end.Show Image(http://i.imgur.com/UIYNj.png)
yea we can only use those colors i believe otherwise the led is too dim or they were drawing too much power from the usb port. someone mentioned that manufacturer might use PWM or something to that end.I wonder if we can send them an email and ask.. I can't see them having any reason not to give us a very simple advice like that since we are not making this for mass production only for those who are interested in buying the parts themselves.. They might just be willing to give advice on LEDs if we ask nicely.
I wonder if we can send them an email and ask.. I can't see them having any reason not to give us a very simple advice like that since we are not making this for mass production only for those who are interested in buying the parts themselves.. They might just be willing to give advice on LEDs if we ask nicely.Give it a try you could try asking someone whos worked with leds in that way before also EE maybe?
Well it looks like they answer posts on their forum actually.were already doing that... at least i believe so... ishtob mentioned lowering the power given to them.
-quote 1. person asking question
I read on another Forum that the Power required for the LED Lighting overloads the ability of the USB to provide the required Power. Is that True? There really are a lot of LEDs on the Keyboard.
-quote 2. their answer
Since we do not drive the LEDs at full power the current level stays below the USB limit, therefore this shouldn't be a problem for full power ports (note that there are certain cases where some laptops have USB ports that only put out 100mA - it will not work on these type of ports; this is a rare issue).
Oh this was on the side bar on their website
http://www.deckkeyboards.com/light.php
were already doing that... at least i believe so... ishtob mentioned lowering the power given to them.I believe it was mentioned but perhaps from there we can figure out exactly what change would be necessary to run all including blue/green/white/purple with no problem
I believe it was mentioned but perhaps from there we can figure out exactly what change would be necessary to run all including blue/green/white/purple with no problemI think it was originally wired that way but then rewire to cut power consumption even more it was my ideal to wire 2 leds together if possible because less resistors better power consumption and what not/ I dont know if it was mentioned about the limit on colors at the time.... I dont mind I want red. By the way know where to get red leds that meet the current specs?
I still think you should consider cycling through the rows of LEDs, having one lite at a time is maximum 15cols x 25mA = 375mA. All power routing to the LEDs has to be done externally from the Teensy, it has to be anyhow. It should be really simple to rotate the rows with only a few extra components. I more or less drew a schematic of how to do this, I think...This is a picture of only one side of the PCB and shows a good portion of the traces to show that it is being powered off of the USB power and not the Teensy.
I'm no EE, but I would be a bit cautious of wiring only two LEDs in series without any resistor even if the combined voltage drop across them should be within safe limits. This might be completely ok but ask someone who knows for sure first.
I still think you should consider cycling through the rows of LEDs, having one lite at a time is maximum 15cols x 25mA = 375mA. All power routing to the LEDs has to be done externally from the Teensy, it has to be anyhow. It should be really simple to rotate the rows with only a few extra components. I more or less drew a schematic of how to do this, I think...
I'm no EE, but I would be a bit cautious of wiring only two LEDs in series without any resistor even if the combined voltage drop across them should be within safe limits. This might be completely ok but ask someone who knows for sure first.
I didn't look to much at the picture, but you have ~60 keys, with all LEDs connected in series pairs, that is 30x20mA=600mA for common LEDs. Then you would have to restrict your LEDs to 15mA ones to meet the 500mA limit. Also if there is no control whatsoever through the Teensy, you will not be able to adjust the brightness of the back lighting. I imagine 60 LEDs could light up your complete house choosing the "right" ones =)This is infact true that we cannot change the level of the light but we can turn them off. the 4 switch on the left side next to capslock (on the underside of the keyboard, fits just like a Poker keyboard) can turn on/off LEDs
Add some way to cycle the rows, some sort of decade counter perhaps, if that one has a inhibit pin you can PWM that with the controller to set the intensity. There will be 5 transistors needed also to control the currents.
Having LED series pairs lowers the total power consumption, but again restricts the usable set of LEDs. I however imagine that you wouldn't want to drive them at full throttle anyhow, so 1500mW is probably not going to happen.
This is infact true that we cannot change the level of the light but we can turn them off. the 4 switch on the left side next to capslock (on the underside of the keyboard, fits just like a Poker keyboard) can turn on/off LEDs
I wonder how KBC managed to make the Poker PCB so clean looking, very simple and precise.Show Image(http://images.21fox.com/upload/images_desc/201107/20110726135033123.jpg)
that's exactly what I'm using the DIP switch for, one for on and off the all LED, 1 for wasd, and 1 for escI know that, I was agreeing that is what was being done, not saying you did something different. My point was it seems like they used very minimal and almost always very thin traces and managed to make the whole layout very clean. I wonder if that is possible to replicate and give more space to get all of the wiring more efficiently.
Thanks looks like ill be able to put a fair bit of lead in there depending on clearance just like they did the foam.Show Image(http://img402.imageshack.us/img402/804/kbcpokerii2of5.jpg)Show Image(http://img217.imageshack.us/img217/3190/kbcpokerii5of5.jpg)
taken from this review
http://geekhack.org/showwiki.php?title=Island:19607
Thanks looks like ill be able to put a fair bit of lead in there depending on clearance just like they did the foam.If you read their review they said they put the foam in to reduce PBC flexing. so perhaps it would be a good idea to cover your lead with a tad bit of foam too.
If you read their review they said they put the foam in to reduce PBC flexing. so perhaps it would be a good idea to cover your lead with a tad bit of foam too.Well have a plate though.
Well have a plate though.As I feared, judging by the construction of the case and the hole location, the plate wont make much difference in term of stiffness.
As I feared, judging by the construction of the case and the hole location, the plate wont make much difference in term of stiffness.Thats not good to hear. Well, I still want plate mounted switches and it will add some more weight to the keyboard.
It might add a bit of stiffness but not as much as a standard plate mounted keyboard. As you said, it will add some weight and protect the PCB too.
how hard would it be to change this to be able to use an off-center caps, 1.5 control/alt keys, and a longer 7 unit spacebar?That would be pretty awesome you would get 1.5x control/alt keys + 7x space bar fit and 2 1x modifiers. I would definitely be down for that ;D
It might add a bit of stiffness but not as much as a standard plate mounted keyboard. As you said, it will add some weight and protect the PCB too.Sounds like more than enough benefit for me.
im running the LED's at 6mA, not 25mA
As I feared, judging by the construction of the case and the hole location, the plate wont make much difference in term of stiffness.
Sounds like more than enough benefit for me.
I actually think a plate will do a lot of difference, unlike that foam which I cant see how it would help at all... The plate and PCB form sort of a sandwich construction with the switches making up for the intermediate "honeycomb".I agree with that from my experience of taking my Rosewills apart.
So the template is finished.Show Image(http://img.photobucket.com/albums/v519/TheProfosist/GeekHack/Dox_Template2.png)
is is this one?Sorry about thet. That is the template for WASD, here is a better layout of the layers http://tinyurl.com/7zy8wzc
there was like 5 different versions each with small differences
aite i'll get working on that later tonight, at school right now with a mac, so cant use the pcb design softwareIts cool once done i will be able to find out how many and what size resistors I need so I can find them and get them on my parts list. Were you able to get a LED into the toggle switch as my Fn 2 is going to use a toggle switch.
Anyone know where I can pick up the correct LEDs that meet our specifications. I tried looking on Online Components buy could really find a way to find a way to search by the specs of the LED.
erm school been busy so u notice me being a little less active, i think I got the design needed for the LED to fit, I'll have to double check though... I might just make the entire mod row have that etra hole for toggle so others who wants to do the same will be able to get LED at any mod position they likeIts cool I dont plan on ordering anything till I have a design and a source for everything and I definitely cannot order until WASD get the needed parts in. I am trying to get everything together just so that I know whats missing and to make it easier once I do order.
I have some experiance in this. But I've only ever ordered through my university tho, so I won't know about the ordering/shipping. But I've gotten things from them and they do bulk discounts.They should also have original component datasheets. If you need help picking components I may be of use. Otherwise, have a look at the following links.Yea, help would be appreciated. I just tried online components because that is where I will be getting the switches from if I cant get them from POS boards. And I have to order the toggle switch from there as I havnt seen it anywhere else. I am looking for red 3mm leds. I forgot the other specifications that ishtob mentioned.
http://www.rapidonline.com/
http://www.rs-online.com/index.html
http://www.farnell.com/
Yea, help would be appreciated. I just tried online components because that is where I will be getting the switches from if I cant get them from POS boards. And I have to order the toggle switch from there as I havnt seen it anywhere else. I am looking for red 3mm leds. I forgot the other specifications that ishtob mentioned.
Your other specs should be:The voltage should be right around 2.5.
Voltage and current ratings.
I'll have a look at the sites and pick some out for you in a bit.
I actually think a plate will do a lot of difference, unlike that foam which I cant see how it would help at all... The plate and PCB form sort of a sandwich construction with the switches making up for the intermediate "honeycomb".I didn't think about it that way but you are right, joining the PCB and the plates with the switches will add quite a bit of stiffness to the assembly!
I didn't think about it that way but you are right, joining the PCB and the plates with the switches will add quite a bit of stiffness to the assembly!Do you still need the inside measurements of the poker case from ishtob?
Yes, that would help to have the inside dimensions of the case to make sure I design it to go as close as possible to the case borders.Any idea on the cost of a plate?
The voltage should be right around 2.5.
http://www.alliedelec.com is one thats hidden in some of the previous links. They seem to do US business but not sure about the costs of shipping.Which ones from alliedelec.com would you recommend? And why are the Dialight ones so much more expensive?
http://www.alliedelec.com/search/productdetail.aspx?SKU=3980207
http://www.alliedelec.com/search/productdetail.aspx?SKU=5110712
http://www.alliedelec.com/search/productdetail.aspx?SKU=4360224
http://www.alliedelec.com/search/productdetail.aspx?SKU=6701058
Farnell is EU/Pacific based and charges 15gbp for shipping outside of EU. But they have an amazing search system.
I did my search (http://export.farnell.com/jsp/search/browse.jsp?N=204192+110155427+110163848+110195541+110186082+110153247+110134117+110133902+110316122+110184794+110194255+110145011+110133927+110190383+110134770+110123675+110153243+110134232+110197201+110144793+110189456+110145027+110155431+110123422+110166247+110145458+110231876+110145015+110134235+110181133+110198288+110123657+110176975+110197611+110179702+110179672+110200980+110173716+110155294&Ns=P_PRICE_FARNELL_EX%7C0&suppressRedirect=true&locale=en_EX_DIRECTEXP&appliedparametrics=true&getResults=true&originalQueryURL=/jsp/search/browse.jsp%3FN%3D204192%26No%3D0%26getResults%3Dtrue%26appliedparametrics%3Dtrue%26locale%3Den_EX_DIRECTEXP%26divisionLocale%3Den_EX%26catalogId%3D%26skipManufacturer%3Dfalse%26skipParametricAttributeId%3D%26prevNValues%3D204192) using the folowing parameters
Voltage: up to 2.5V
Color: Red
Size: Up to 3mm and T-1 (standard that's 3mm large)
http://export.farnell.com/avago-technologies/hlmp301-f0000/led-3mm-gaasp-red/dp/1863178
http://export.farnell.com/multicomp/mc20449/led-t-1-red-20mcd-635nm/dp/1249909
http://export.farnell.com/vishay-semiconductor/tlhr4405/led-t-1-red-10mcd-625nm/dp/1020592
http://export.farnell.com/lumex/ssl-lx3044lid/led-3mm-red-30mcd-635nm/dp/2062532
http://export.farnell.com/kingbright/l-173id/led-tombstone-2-5-x-5-mm-red/dp/2001625
http://export.farnell.com/kingbright/l-934id/led-3mm-red/dp/1142517
http://export.farnell.com/kingbright/l-424idt/led-flat-top-3mm-he-red/dp/1142497 (Float top, if you're into that kinda thing)
As you can see there's alot of choices. No real need to pick very carefully among different products. They're all pretty much the same thing.
Things you may want to notice are:
Luminosity (Brightness, tho you'll find the "dimmer" ones are still bright enough)
Max/Typical Current (Higher means you can be a bit more careless in making sure the voltage supplied doesn't blow it up)
Max/Typical Voltage (Same goes here. I'll explain some issues at the end, cos this topic is a bit long)
Things you probably don't give a rat's ass or shouldn't
Wavelength (That pretty much defines color)
Viewing Angle (I believe it's the angle at which the brightness/intensity drops below 50%)
I don't think there's anything you need to be picky about when choosing them. So Basically anything you choose won't be an issue, you might just want to go for the cheapest.
As for picking your max/typical voltage. The most important thing to remember is that if the Bulb gets too much current/voltage, it will heat up to the temperature of the sun and DIE. So for those which can't tolerate up to 2.5V you'll have to put resistors in series to stop them from frying, even if it's not I would still suggest doing so, just to be safe.
I only know these sites for getting components (I'm in the UK and Uni orders from these). So if anyone knows any better place, that's probably better.
Here it is, quick draft version, I havent double checked it yet.I can try to check. What exactly do I need to check?
hey profosist, If i post the draft version, would you be able to check for errors? I did a quick alteration to get your layout, but i need to run for a group project meeting, if not i'll take a look alot later tonight
prof dont forget when ur getting the LED to check its brightness, not all LED are made equal in its brightness, some can be dimmer but still consume the same amount of currentyes I think that hazeluff mentioned that.
Which ones from alliedelec.com would you recommend? And why are the Dialight ones so much more expensive?I think the lumex ones are actually 10mm leds T-3 so they wont work.
I think the lumex ones are actually 10mm leds T-3 so they wont work.
the dialight doesnt have much info and is super expensive compared the the others. if it was that much better I would consider it but there really arnt that many specs.
between the VCC and the Kingbright I think the VCC is better. Am I correct?
You're right about the Lumix one. And yes the dialight one is very expensive for some reason.Yea im buying enough for 2 keyboards do at least 130 do you think I should pick up some extras? Also how do if figure out what resistors I am going to need?
I did the search again.
http://www.alliedelec.com/search/productdetail.aspx?SKU=4360222#tab=Specs
I'd recommend this one, If I were picking. Its bright and cheap and will run off low voltage. Getting brighter is better than getting dimmer, as if there is anything wrong you can just put in bigger resistors to dim it down. Low typical voltage gives you more room to play around with your circuit.
Almost all of the LEDs are 30mA (I saw like one 25mA one). Also, most of them are sub 2.5V meaning you'll need a resistor in there for all of them.
How many LEDs are you buying? I hope you're getting bulk amounts (as in lighting up your whole board). Because you might as well use eBay to pick up small amounts.
Yea im buying enough for 2 keyboards do at least 130 do you think I should pick up some extras? Also how do if figure out what resistors I am going to need?
Background to this stuff (for if you want to learn some electronics):
Voltage = Current * Resistance (Voltage dropped across a component is equivalent to the current going through it multiplied by it's current)
Thats where we get
Vcc - IR = VLed (Kirchoffs voltage law)
We want the Resistor to drop the voltage to what the VLed should operate at optimally (1.85V @ 30mA).
Vcc is our power supply (2.5V/5V)
R is the resistance of the resistor in series.
For n LEDs in parallel:
The current from the resistor will be split/comes from all the LEDs (each 30mA). Therefore I can take I and multiply it by n to get the current through the resistor
Vcc - nIR = VLed.
You will definitely need/want spares (incase you blow a few ; p, I've blown like 2-3 in a project using one...5V over a LED is not smart).There will mostly be 2 leds in a series the all in parallel but there will be i believe 1 alone since there is a odd number of switches.
As for resistors, it depends on in what fashion you want to hook them up. I think it'd be most efficient in using one/one set of resistors in series with all/lots of LEDs in Parallel. It really depends on how much room you have in your board.
You can always do one resistor per LED (easy to do the maths or if you want to control each LED individually with circuitry).
If you put a ton of LEDs in parallel you may need a very small resistance for your resistors.
Lets just assume you are using you're 2.5V, and you are pulling 30mA.
For 1 resistor in series with 1 LED:
2.5 - 30m*Resistance = 1.85
Reistance ~= 22 ohm
For 1 resistor in series with n LEDs in parallel:
2.5 - 30m*n*Resistance = 1.85
Feel free to substitute 2.5 for 5v if you use power from your USB.
For the 2.5 V you can support like 20ish LEDs off a 1ohm resistor. (Simple resistor circuit).
For 5V you can do like 100 LEDs off a 1ohm resistor.
I'm not sure which one is the best way to do it. There may some pros and cons I'm not aware of when you hook up so many LEDs in parallel. But in the case of using less components you may not need many. If someone else with some good electronics knowledge will step in and comment on this, that'd be great.
Note: you can make resistance of <1ohm by putting resistors in parallel. e.g. placing 2 1ohm resistors in parallel creates a 0.5ohm equivalent resistor.
If you need to test brightness of the LEDs(for all we know it could be way too bright). You might just grab some extra resistors and hopefully can calibrate the brightness. Something cool you could do (but will cost just a bit more, is getting a potentiometer, so you can adjust brightness as you want,without soldering/adding extra resistors).
There will mostly be 2 leds in a series the all in parallel but there will be i believe 1 alone since there is a odd number of switches.
What happens in case I if one of the LEDs fails? The current through the resistor falls and so does the voltage across it, increasing the voltage across the remaining parallel paths. In this case they are probably many enough to prevent a chain reaction of failing LEDs. Or am I just thinking this wrong?
i might be able to add a pot before the DIP switch to adjust the light level, but its going to be tough fitting that in the poker case... unless you guys dont mind it topside of the poker, under the caps lock
which LED were you planning on using?The one that hazeluff recommended http://tinyurl.com/bwtfu47
oh those, I bought 200 of the orange/red version of that... i'll play around with it see what brightness works the 100ohm for the 2 series turned out to be too darkThanks I would like them as bright as I can get them with out harm as I plan to use white key caps from WASD keyboards. The glowing effect should be really cool.
your layout should have 64 keys, so its going to need 64 diodes, and 4 LED will be single while the 60 are going to be in series.... its going to be 4 of whatever value for 1 LED and 30 for the restYes, it has 64 keys. Are there any specifics that I need to know before looking up the diodes? As for the resistors, using this calculated that I would need at least 105ohms they recommended 120ohms for the single LEDs. For the 2 LEDs in a series I calculated 43.3ohms they recommended 47ohms. Does this sound correct? Screenshot of Calculation (http://img.photobucket.com/albums/v519/TheProfosist/GeekHack/LEDResistorCalculator_1321981513765.png)
theres a typo for the 1st slot, your using 1.85, not 1.58Alright so the mA is going to have change then right? The teensy takes up 100mA right? So, 400/64=6.25mA. So that changes the resistor alot 504 and 560 recommended for the single led and 208 and 220 recommended to the 2 LEDs in series. Calculator Screenshot (http://img.photobucket.com/albums/v519/TheProfosist/GeekHack/LEDResistorCalculator_1321982276998.png)
also if your running it at that current, your USB won't be able to support it... that would add up to about 650mA roughly without calculating it
i actually dont know how much current the teensy draws :P so iono, i try to keep the total current under 350 because i saw an article somewhere saying most keybaord uses 100-200mA i took the average 150mA useIve have read everything on their website I cannot figure out power draw for the teensy.
Ive have read everything on their website I cannot figure out power draw for the teensy.I have sent an email off to their tech support to see if I can dril this down.
I have sent an email off to their tech support to see if I can dril this down.I got an email back
On 11/22/2011 10:22 AM, TheProfosist wrote:
I was wondering what the power draw of the teensy was. We are using it as a keyboard controller.
With everthing on, approx 30 mA.
Part of it is going to be based on clock speed. Another part is which peripherals you're using (analog IO, PWM, ... ) And yet another part is how the firmware is written. I don't know what's possible in terms of idle loops on this arch, but the difference between an idle loop and a busy loop is most of the power usage.So do you think the number I got was accurate or should I supply some more specifications?
Oh hey, I was still writing that. As they say, with everything on 30ma... So I expect the KB firmware to be less than that (as no peripherals are used). If there's a good idle loop then it should be quite a bit less. Either way, 30ma is tiny already, anything less is noise.Sorry, so it would be less than 30ma? Hmm I should still leave at least that much available. I wonder how much power I should give to the LEDs.
So after seeing how crazy this has been over the LEDs and implementation I may just consider going no LEDs since that was my original plan to begin with. Especially since it sounds like it would take a lot of calculation to get Blue/Purple/Green LEDs working properly and I don't want to cause anyone trouble of working that all out. So now the main thing is just making sure the Teensy is on the back so the plate will fit over the front of the PCB. And possibly only then modifying the layout to add LED layout if that is still a possibility after those first 2 big points are taken care of. Keep in mind I am not trying to change the focus but this last couple page has just been a wall of text towards LEDs without a lot of easy clarification for those of us still learning electronics and electricity or with little experience.Sorry about all the led stuff just figuring out what i can while I wait on other stuff.
I would think the order of operations should be..
1. Teensy to the back so that..
2. We get a plate mount for these awesome PCBs and then if we can..
3. add LEDs after seeing how a first working PCB with that set up handles and testing how much power is being drawn.
Sorry about all the led stuff just figuring out what i can while I wait on other stuff.I don't see any reason why we cannot move the Teensy to the back actually. The coding allows for changes like that, plus the pins can be inserted into the same place on the PCB, it would involve flipping the component and do some re-routing of traces.
About moving the Teensy to the back I think that we were just going to have a cutout in the plate for it that way you dont have to take apart the whole keyboard just to flash the teensy.
Yes a plate I believe that Dox is waiting on measurements of the Poker case. I do not have one yet, I believe ishtob is the only one in this thread that has one.
I did get info from the makes of the teensy saying that it draws 30mA with everything on. Also there should be some way to check how much the keyboard ishtob has is using.
Also if you want those Leds you would have to have a resistor before every LED i believe dont quote me on that though.
I don't see any reason why we cannot move the Teensy to the back actually. The coding allows for changes like that, plus the pins can be inserted into the same place on the PCB, it would involve flipping the component and do some re-routing of traces.What about access to the teensy? You need to press the button to flash. Also it will stick out and thus no longer fit in a standard poker case.
What about access to the teensy? You need to press the button to flash. Also it will stick out and thus no longer fit in a standard poker case.have you measured the teensy as far as height, because there is a micro controller on the back of the Poker in the same place and there is a space in the Poker case to account for that, refer back to my previous pictures for proof of that. Also as I had said from the beginning we will only need to flash it a couple of times if not only once. So because of that we would still have access to the Teensy on the back without having to sacrifice structure integrity or possibly causing the spacebar stabilizers to not fit right/run out of space.
have you measured the teensy as far as height, because there is a micro controller on the back of the Poker in the same place and there is a space in the Poker case to account for that, refer back to my previous pictures for proof of that. Also as I had said from the beginning we will only need to flash it a couple of times if not only once. So because of that we would still have access to the Teensy on the back without having to sacrifice structure integrity or possibly causing the spacebar stabilizers to not fit right/run out of space.The Teensy looks much taller in this pic than anything that could fit between the PCB and the Poker Case
Case (http://img217.imageshack.us/img217/3190/kbcpokerii5of5.jpg)
Poker PCB Back (http://i.imgur.com/dFWM1.jpg)
You can flash the teensy by jumping to the bootloader with a keyboard shortcut (both shift + B) in hasu's firmware. The reset button does not need to be accessible.That is good to know that it doesnt have to be accessible though I still dont know if there is enough room (especially under the spacebar) to put the teensy underneath in the poker case
The Teensy looks much taller in this pic than anything that could fit between the PCB and the Poker CaseAh that might be from the height of those default pins that come with the "Teensy w/ Pins" Perhaps we could use a shorter alternative? It would definitely help knowing the exact height including the mini usb at the max height.Show Image(http://i6.photobucket.com/albums/y222/icbob/DOXish%20assembly/592eeb83.jpg)
That is good to know that it doesnt have to be accessible though I still dont know if there is enough room (especially under the spacebar) to put the teensy underneath in the poker case
Ah that might be from the height of those default pins that come with the "Teensy w/ Pins" Perhaps we could use a shorter alternative? It would definitely help knowing the exact height including the mini usb at the max height.I believe ishtob actually bought the normal teensy then bought the pins separately as the one with pins comes with them soldered on. And sadly I can find every dimension but that one.
Ah that might be from the height of those default pins that come with the "Teensy w/ Pins" Perhaps we could use a shorter alternative? It would definitely help knowing the exact height including the mini usb at the max height.
As you guys are building custom keyboards.I wasn't suggesting using a different microcontroller, just shorter pins so that it would have a lower profile.
It is totally possible to choose a different microcontroler/chip and implement that. Figuring out how to put it on a board with I/Os and loading code onto it will be stuff you need to figure out tho.
But looking at the Teensy controller, it looks like its pretty small and you're not gonna get much improvement using another chip.
I wasn't suggesting using a different microcontroller, just shorter pins so that it would have a lower profile.
Yes we do know of the Aikon controller and the Chameleon controller are out there. The aikon would need to be assembled since I don't think there are any out there at the moment pre-assembled. Although the Chameleon controller is avaiable at a similar cost and has similar layout to the Teensy, but is made to work for keyboards as its primary use.
Available here. http://item.taobao.com/item.htm?id=12539447015
This one is gonna result in a ton of wires going everywhere (I made a line follower using an Arduino).I dont think it would be enough to clear though the board+usb is thicker than the space would allow though I have no measurements to back this up.
From the images I don't think you can't get much shorter for the pins. Maybe if you didn't use the black mounting plastic, you could get it lower...
Also I have an update about key caps for the DOX http://tinyurl.com/6sdspp3Although I do not see why he hasn't released a 61 key set since the KBC Poker has a 61 key set and obviously will need replacement keycaps at some point..
Although I do not see why he hasn't released a 61 key set since the KBC Poker has a 61 key set and obviously will need replacement keycaps at some point..Hes waiting until he can do all layouts the Pokers will be included. Im sure that if someone really wanted a set now he would do it if they emailed him.
Teensy adds less height if mounted the other way up, but it's still about 7.5mm from the bottom of the main PCB to the peaks of the solder joints on the Teensy. I used an IC socket, and solid core wire for the pins (much thinner than the pins you'd get from PJRC, but not too thin).Why in the world did we not think of that.. mount it the same direction, but from the opposite side.. So the orientation stays the same in other words. USB on top.
Obviously care has to be taken so the USB socket doesn't short out on the solder joints of the switch above it, but actually it ended up even closer to the PCB than shown in this picture, after the switch's pins were trimmed back a bit...
Wow this had a bit of a price jump.. I was just looking over his site and noticed this.Maybe setup time is increased with the custom layouts? I dont $10 changing my mind from having custom legends or not.
$10 http://www.wasdkeyboards.com/index.php/products/custom-keyboard-options/custom-option-upload-your-key-design.html (Ability to add your own custom design per keycap, in other words changing the font/positioning etc.)
Cached version from just a couple weeks ago $0 http://webcache.googleusercontent.com/search?q=cache:OeOLXr28KQYJ:www.wasdkeyboards.com/index.php/products/custom-keyboard-options/custom-option-upload-your-key-design.html+&cd=1&hl=en&ct=clnk&gl=us
I originally was get that custom done but why add another $10 when just a couple weeks ago it was free. meh guess i'll go with blanks then.
Maybe setup time is increased with the custom layouts? I dont $10 changing my mind from having custom legends or not.that is 10$ in addition to the price of having engraved or lasered keys, which already costs more than blanks. Basically doubling the price difference.
Why in the world did we not think of that.. mount it the same direction, but from the opposite side.. So the orientation stays the same in other words. USB on top.Works for me we would just have to remember to flash it before making the botton not reachable and we have to have hazus firmware on there to activate it remotely. Wow ishtob is not going to like this.....Show Image(http://i6.photobucket.com/albums/y222/icbob/DOXish%20assembly/592eeb83.jpg)
but mount it from the opposide side as in your example.Show Image(http://geekhack.org/attachment.php?attachmentid=32716&d=1322002558)
Works for me we would just have to remember to flash it before making the botton not reachable and we have to have hazus firmware on there to activate it remotely. Wow ishtob is not going to like this.....But also remember you can add a couple wires to activate the reset button and then detach them later. Without even soldering them most likely. Remember? The 3 holes right next to the reset button
that is 10$ in addition to the price of having engraved or lasered keys, which already costs more than blanks. Basically doubling the price difference.where are you getting that from?
But also remember you can add a couple wires to activate the reset button and then detach them later. Without even soldering them most likely. Remember? The 3 holes right next to the reset buttonI dont see it as a problem just remember to put the firmware on before soldering it down.
where are you getting that from?
WASD V1 Custom Keyboard
Laser Etched OR Engraved $139.99
Laser Etched AND Engraved $149.99
Blank $129.99 Blank $49.99
WASD Custom Keycap Set
Laser Etched OR Engraved $59.99
Laser Etched AND Engraved $69.99
mount it the same direction, but from the opposite side..
I don't think that would work - the body of the USB plug is thicker than the socket, so needs more space.Usb Plug once stripped (http://i6.photobucket.com/albums/y222/icbob/DOXish%20assembly/2da74330.jpg)
87-Key Blank Cherry MX Keycap Set - $36.99You have to order a custom keycap set to get custom legends which is the one that I posted. The ones you posted are just for default legends only. If your wondering why he hasnt posted a custom 87 set its because he said the price would be almost identical.
87-Key Laser Etched Cherry MX Keycap Set - $46.99
87-Key Engraved Cherry MX Keycap Set - $46.99
+ Custom Option: Upload your keyboard layout - $10
46.99 - 36.99 = 10+10 for custom = 20. Double the costs for custom.
Soarer, any info on the thing you are building?Thing hes building? Im interested in things an building.
Why in the world did we not think of that.. mount it the same direction, but from the opposite side.. So the orientation stays the same in other words. USB on top.Show Image(http://i6.photobucket.com/albums/y222/icbob/DOXish%20assembly/592eeb83.jpg)
but mount it from the opposide side as in your example.Show Image(http://geekhack.org/attachment.php?attachmentid=32716&d=1322002558)
Also in the DOX layout you will notice it will not be direction under any switch pins, so there is no worries about it shorting out a keyswitch.
on issue with flashing, theres way too, im going to use the idea I got from the numpad I'm making:You can flash the teensy by jumping to the bootloader with a keyboard shortcut (both shift + B) in hasu's firmware. The reset button does not need to be accessible.
(Attachment) 32726[/ATTACH]
so teensy is upside-down, and add a hole over the place of the button, then we drill a hole on the bottom of case to give easy access to the teensy
I've considered this during my design, but it will need more space for you to be able to get the wires to the PCB because the USB would sit exactly 1mm away from the space bar stabilizer..... actually.. I might be able to make this work.... i'll work on it afte thanksgiving, going to be away, but i'll be on the forum through my phoneWait, why would it be sitting close to the stabilizers? Aren't the stabilizers only there for PCB mounted, and plus Plate mounted stabilizers are attached to the plate not the PCB. So it should not be getting in the way at all.. should it?
Soarer, any info on the thing you are building?
Wait, why would it be sitting close to the stabilizers? Aren't the stabilizers only there for PCB mounted, and plus Plate mounted stabilizers are attached to the plate not the PCB. So it should not be getting in the way at all.. should it?
if you look at the cherry datasheet, both will be in the same heigh and position, it only differs on the way it is attached. the plate mounted will still be sitting on top of the PCB in the same spotAnd the Teensy will be sitting under the PCB away from the stabilizers.. Is there something I am missing here?
You can flash the teensy by jumping to the bootloader with a keyboard shortcut (both shift + B) in hasu's firmware. The reset button does not need to be accessible.Im saving this link this time
thing (http://deskthority.net/viewtopic.php?f=7&t=1197)Nice! I remember that I saw that back in September but I don't go on Deskthority too often. Maybe I should look more often.
thing (http://deskthority.net/viewtopic.php?f=7&t=1197)Looks interesting though somethings seem hard to find.
And the Teensy will be sitting under the PCB away from the stabilizers.. Is there something I am missing here?
Looks interesting though somethings seem hard to find.As stated in the first post... where stuff is going on the Fn layer is still to be determined!
As stated in the first post... where stuff is going on the Fn layer is still to be determined!no sorry I meant key wise. well possibly only the spacebar.
no sorry I meant key wise. well possibly only the spacebar.Mostly easy to find, except the small spacebars. I've got two 3-unit wide ones from Access POS 'boards. The 6-unit wide, however, is the same as G8x-1800 / G8x-11900 etc, so fairly common.
I apologize for the crudeness of this photoshop but this is what we are talking about.And I still dont think you will have enough clearance. Only measurements will settle that though.Show Image(http://i.imgur.com/bwRSM.jpg)BeforeShow Image(http://i.imgur.com/eTm55.jpg)After
And I still dont think you will have enough clearance. Only measurements will settle that though.Are you talking about enough clearance in the Poker case or in general? I believe in the Poker case.. we will need measurements, but as far as clearing for the USB connector and such, I believe that will be fine as we saw from Soarers insight.
Are you talking about enough clearance in the Poker case or in general? I believe in the Poker case.. we will need measurements, but as far as clearing for the USB connector and such, I believe that will be fine as we saw from Soarers insight.yes clearance in the poker case I see being a problem.
yea.. it need to be on the top side to fit in that case, but if you guys are plannign your own then it would workNope I have 2 poker cases waiting. As soon as people get their aluminum ones their going to sell me theirs for $26 each. I think flipping the teensy over might be a good idea though its possible to help wit clearance.
actually if you guys want it in that "Flipped" orientation, nothing needs to be changed, all the pins will still be in the right places... we just need to move the holes for connecting the USB farther awaySounds goot to me as there will be more clearance for the spacebar.
I still dont understand this clearance of spacebar thing, I've been using my DOX for over a week now with this setup and never had i touched the teensy the way it is setup, seems like a lot of trouble fixing something that is working alreadyA little extra clearance isnt a bad thing.
my other reasons for it to be on top is because I will be using that aluminum case that i ordered so there won't be any space under the PCB for my to mount the teensy. and you might need to cut some of the plastic bracing inside to allow the teensy to sit under the normal case. I ended up putting it on the topside to avoid these issues.
the only thing I can think of for the teensy to be flipped topside is to be able to use the filco/Leo universal space bar... other than that there isn't really a need for that much clearance... but if you want it like that I can get it done for youYes I would really appreciate it.
im hoping to get a CAD file made by this weekend, im visiting my sister whose studying architecture, and she's got friends in product designing who might be able to help.Otherwise Dox said he sould do it pertaining her had measurements.
I believe if we had the measurements for the case that would clear up the issue of will it or will it not fit in the poker case without modification from the underside of the PCB. But also do we think the plate will be able to mount right on top of the Teensy without shorting it out or having enough clearance? That is the main reason to move the Teensy under, even if it means not being able to use a Poker case, plate mounting is very important.There will be a hole in the plate so there wont be any issues shortind out or anything this was an original planned design. That I have mentioned many times.
the teensy will be exactly (or a bit lower) than the height of the plates, so we would need a cutout in the area occupied by the teensyFine with me
Still trying to get a straight answer from the Phantom guys. I dont see why it wouldnt work since they say ISO layout works with their PCB and that row is layer out the same as ISO.It is not the PCB. The PCB can do all kinds of layouts. Take a look at the PCB picture on the first post of the thread. If there are holes for where you want your switches then you can put a switch there. BUT, Phantom is a plate-mounted design just like Filco. So you need a plate that fits your switch layout. If one of the 5 plates we have don't fit your design, then it won't work.
It is not the PCB. The PCB can do all kinds of layouts. Take a look at the PCB picture on the first post of the thread. If there are holes for where you want your switches then you can put a switch there. BUT, Phantom is a plate-mounted design just like Filco. So you need a plate that fits your switch layout. If one of the 5 plates we have don't fit your design, then it won't work.
PrinsValium gave me permission to post the plate DXF files. So I will do that.
Separately, if you have a Teensy 2.0, can you tell me the thickness of it? In your application, do you use the one with pins or do you just solder wires directly on to the Teensy PCB? Thanks.
i couldnt get my hands on solidworks, so we prob would need his help to make the plate
yes i have a spare poker caseWell I have 2 poker cases lined up and plan to use a PLU case for the Phantom to keep costs down. I would love to do what lister is doing for a acrylic Phantom case but I couldnt come up with the extra money for the case.
is that what we are to put the final product in?
i was hoping to do the acrylic thing like what lister has been working on, hehe, this is going to end up being a phantom Jr XD, i'll have to do this after finals, which is in 2 weeks
Well we need to know if the plate fits inside of a poker case though don't we? Since we all want plate mounted. And WASD is getting in those plate mounts for the stabilizers AND getting in cherry mx switches in the coming month if all goes according to plan.
Here is my revised layout:
Default LayerShow Image(http://img.photobucket.com/albums/v519/TheProfosist/GeekHack/DOX2LayerDefaultTEMP2.png)
You have a dedicated caps lock key on your default layer where the Ctrl key usually is? I am kind of surprised since I know personally I rarely use it which is why I don't have it on the default layer at all. But maybe that is just me, since I am used to only holding shift to type 3-4 cap letters when necessary. Based on your layout I thought you would want a second Fn key there so that you could one hand change your audio levels / media.I dont use caps that often but I do often remap it to do things like press to talk in vent also I already have a Fn key on the left side.
You can always throw in a random F13 or something in its spot, makes it more hotkey friendly
sio I'm looking at you guy's layout... we can do a universal plate if we use PCB mounted stabilizer and I can just set a long hole for the shifts kinda like the one they are doing on phantom for the non-orderable "7bit special shift" version of the platei wouldnt mind that but I would prefer plate mounted stabilizers since they will be available.
i personally would like to see all plate mounted stabs, but the geometry of the cutout makes it impossible to have a universal cutout to accommodate a universal cutout.... either that or we do individual plates for each of you guys, it will just cost about 2x more for us to individually order a plate ($80 for 1 and about $60 ea for 2 vs $40 for 4) and we can even get it powder coat for about $10 more dollars each if we order 4 of the same oneI may be able to get them quick will have to check though.
actually... just thought of something... if I put all of our layout onto 1 CAD file and have it done as one submission, we might be able to have each of our own unique layouts but pay a lower price..... i'll get it worked out.. i still need to work on those shift key placements you guys want
that then get the plate done... its just finals season and I only do like 30min of this a day during study breaks
where are you looking?
I feel that we should combine our efforts with them
Hey ishtob, have you considered using filled plane to simplify the design with the LEDs?
Here is what I plan on ordering to give my current DOXs some light and remove the internal wiring.
(Attachment) 34605[/ATTACH] (Attachment) 34604[/ATTACH]
one issue with doing that is you cant choose which LED to be onYou could put multiple planes for different zone and wire the planes to your dip switch.
Did you have a chance to test the quick-stem-swap slots?
whats that?
Yo ishtob, have you thought about actually getting the components of a teensy and soldering it directly onto the DOX pcb? You could even try getting an Aikon on there instead (see if SmallFry would provide you the necessary files).
Here are the teensy schematics:
http://www.pjrc.com/teensy/schematic.html
If you could model it, I'll gladly order a couple and test it.
that's exactly what I've been doing... i could get a version of the one you wanted out by next week if you'd like and get working on it, but i will keep working on getting the 1.5 mod ones up for the rest of the people
we can order 2 PCB's off PCBexpress and send the other one to you/or you to me
Wow that is a great price on those plates, very nice. As far as the design of the plates though I am definitely waiting until we have the sizes for the costar ones. Also has anyone tested if the plates fit inside of the Poker cases? It would be nice to know if I should be picking one up from the classifieds or not.yep fits http://tinyurl.com/bw4rlmr I also want costar since WASD will soon have them.
yep fits http://tinyurl.com/bw4rlmr I also want costar since WASD will soon have them.
How is it going to attach in a way that it is above the pcb, are we using some spacers between the PCB and the plate?
idk i belive the plan was to just test it first by snapping in the switches.
snapping in the switches doesn't create a underside lock on to the plate to my knowledge. the plate prevents them from falling through. If you were to press on the plate theoretically with nothing between it and the pcb it would slide down off of the switches.yep there are just little snaps on the switches not much preventing it from falling that is why I said test it (as in the plate) first.
My Filco 87key has nothing other than the switches holding the PCB and plate together/apart. Doesn't seem to be an issue.O but it does there should be posts that go through the pcb to the plate.
The posts that go through the PCB support the plate if that's what you're talking about... so yeah, the case supports the plate and switches, the PCB is presumably left hanging onto the switches.shoudl be fine because there are so many switches that most would have to release at the same time which shouldnt happen because of the clips.
However, placing the PCB on a solid surface and typing on it is no different feel wise. Noise is a bit more tho.
snapping in the switches doesn't create a underside lock on to the plate to my knowledge. the plate prevents them from falling through. If you were to press on the plate theoretically with nothing between it and the pcb it would slide down off of the switches.
it shouldnt be too had to paint the plate matt black and still be used right? woner if i should try that dampening material that people say would take the ring out of plate mounted switches
snapping in the switches doesn't create a underside lock on to the plate to my knowledge. the plate prevents them from falling through. If you were to press on the plate theoretically with nothing between it and the pcb it would slide down off of the switches.
i would try going to rubberizing paint... though the thickness of it may be an issue.
my other thought is to have extra 4-6 extra holes where we can bolt in stand offs (small plastic cylinders?), i would still need to figure out where to place those would go
I figured there was going to be standoffs in the place where the old screws would go to hold the pcb in placethat would work we need to find a plce to get the proper length standoff though.Show Image(http://i.imgur.com/M0rsK.jpg)
In other words, larger hole in the pcb so that the standoff can pass straight through it and just have the plate mounted since that would hold the pcb in place.
that would work we need to find a plce to get the proper length standoff though.
Considering the poker doesn't have a "maximum" height since it doesn't have a front cover I suppose you could make it almost any height as long as the standoff is 'tall enough'PLate still has to be below the edge of the case that the only real restriction.
I figured there was going to be standoffs in the place where the old screws would go to hold the pcb in place
In other words, larger hole in the pcb so that the standoff can pass straight through it and just have the plate mounted since that would hold the pcb in place.
do you know any brands so I can start looking?
i would consider that a great idea but where are we going to find the cylinders? and wouldnt it be a mighty pain to get the in there and make then stay without it being screwed down?
lol.. no idea.. it was just an idea
no, i was saying seperate holes for just the stand offs, so we can have the plate standing on top of the pcb, that way when we do use the original holes to screw down the whole assembly, we won't have to worry about getting the standoffs into place
How could we use separate holes for the standoffs considering the poker only has a certain amount of holes in it by default. What if instead we placed a standoff similar to the ones used for motherboards in-between the PCB and the plate? Then we could use the same exact holes to hold everything together.already mentioned the problem with the how are you going to get it inbetween and hold it in place until you put the screw in?
already mentioned the problem with the how are you going to get it inbetween and hold it in place until you put the screw in?
How could we use separate holes for the standoffs considering the poker only has a certain amount of holes in it by default. What if instead we placed a standoff similar to the ones used for motherboards in-between the PCB and the plate? Then we could use the same exact holes to hold everything together.
There are already holes in the PCB and holes in the plate, screw them in shallow and finish screwing them in once they are correctly aligned to the holes in the poker case.
Screw top of plate to standoff. insert all mx switches and solder them to pcb. finish screwing into case.
does that make sense?
i think both of you are missed what i was trying to do :P
i'm not saying we stand off to the case, we are standing off the PCB on seperate holes, so we can still screw the keybaord on based on those PCB positions, it will be like:
Plate -> stand off on PCB ---THEN--- PCB +plate screwed into the board. so the assembly would already be solid freestanding, now we can just screw the whole thing in and not worry about placing standoffs and screws in without it falling out of place
here's a text diagram if you still don't get it:
plate ---==-----plate----------------------------==------<----usual spot for the screw
.............| <--- standoff + screwed to pcb......| <--- screw to case
PCB-----------------------------------------------==-------------PCB
...........==<-- bolt for screw from plate........| <--- screw to case (same screw as the above through PCB)
case----------------------------------------------== <-- bolt on the case
smallparts.com
alright so whats the distance between the plate and PCB i know its a standard and what size screws are we going to use?
smallparts.com
cool, sorry i've been busy with family stuff for christmas season, ill get the PCB layout done soon.Alright sounds good I will need 2 in the end. how are we sitting on the plates once we finalize a design i will forward the design to the correct people to get it ordered. Also the min order for that is 2 of the same design so I am good since I need 2.
Hey, how thick of the sheet metal did are you using for the case design? Looks like 1/8"?You might want to PM DOX about that because with the current design we are using the case from a Poker.
I tried loading the eMachineShop file, but that failed in error.
anyone knows a PCB program that allow those overlapping holes, to allow the various placing of the switches?
at this point the person who wish to go with the alternate positions would be left to drill the holes themselves because expresspcb's software wont allow overlapping holes
Here is my updated DOX layout. Sorry about changing it again but I wanted it to be as close to my 7bit Phantom layout as possible. It is now nearly 100% the same and wont be changing again.Show Image(http://img.photobucket.com/albums/v519/TheProfosist/GeekHack/DOX3LayerDefaultTEMP1.png)Show Image(http://img.photobucket.com/albums/v519/TheProfosist/GeekHack/DOX3Layer1TEMP1.png)Show Image(http://img.photobucket.com/albums/v519/TheProfosist/GeekHack/DOX3Layer2TEMP1.png)
You better not be changing it! jkjk.thanks again you all the help with the WASD template hopefully itll come to fruition on my DOX
= D
thanks again you all the help with the WASD template hopefully itll come to fruition on my DOX
Here is my updated DOX layout. Sorry about changing it again but I wanted it to be as close to my 7bit Phantom layout as possible. It is now nearly 100% the same and wont be changing again.Show Image(http://img.photobucket.com/albums/v519/TheProfosist/GeekHack/DOX3LayerDefaultTEMP1.png)Show Image(http://img.photobucket.com/albums/v519/TheProfosist/GeekHack/DOX3Layer1TEMP1.png)Show Image(http://img.photobucket.com/albums/v519/TheProfosist/GeekHack/DOX3Layer2TEMP1.png)
i'll get working on this soon as i figure out a better PCB program :P
awesome thanks. Also I just though if something when a layer is toggled you cant access the default layer i think so that means that layer 2 is going to need to have all the functions that it hasnt changed of the default layer but thats something well have to figure out when the time comes.You changed your DOX layout in order to match the phantom layout? Why not just get 2 Phantoms then. I kind of thought the point of the DOX was to be more HHKB like. I am not trying to judge or anything like that, I am just saying it seemed a little strange to me to want to completely change from a DOX style to a Phantom.
Also where is hazus firmware for the DOX again im trying to find it to share with the Phantom project.
awesome thanks. Also I just though if something when a layer is toggled you cant access the default layer i think so that means that layer 2 is going to need to have all the functions that it hasnt changed of the default layer but thats something well have to figure out when the time comes.
Also where is hazus firmware for the DOX again im trying to find it to share with the Phantom project.
i think what were trying to do now is to get every option into 1 design... its kinda setting me back cuz now i need to learn a new program.... KiCAD seems promising
You changed your DOX layout in order to match the phantom layout? Why not just get 2 Phantoms then. I kind of thought the point of the DOX was to be more HHKB like. I am not trying to judge or anything like that, I am just saying it seemed a little strange to me to want to completely change from a DOX style to a Phantom.
I still like my layout I posted a while back but I will link back to it once ishtob has looked into the new PCB program. Glad to see this project is starting to get some push behind it again.
i think what were trying to do now is to get every option into 1 design... its kinda setting me back cuz now i need to learn a new program.... KiCAD seems promising
All i need to do is to copy the default layer to the toggled layer, then change the keys to the ones you want "toggled" and it will appear as if the default layer is still there, even though the whole board is now swapped out.
Read through my design guide. KiCAD is pretty simple to get the hang of. Just ask me if you run into problems.
would like to get a trackpoint into this project. how open are designers to keeping enough room open on the board/plate for adding a nubbin via daughterboard ? doing so would also probably require some extra design time for nailing trackpoint control and fitment down. willing to drive cad/controller development for this feature if people are open to it.
this would presumably be unicomp's version of the nub device, for those who care.
sorry for the delay.. classes' been pretty busy, and mid terms coming up, not sure when I'll have to time to work on the layouts
I wanna see this move forward = p. I've been here a couple months and not much has gone on ; p
i am more interested in this than the phantom :Dthat can be arranged I do have an assembly thread http://tinyurl.com/7eyjsvw and if your interested please pm me so that we can arrange something.
since i'm recently into the poker like layout :)
probably gonna need Mr Profosist to assemble it.
would it be able to somehow to a wireless mod/addon to it?
since i'm thinking that it would be a good use in the living room for my ps3 or maybe xbox or whatever console
i think the question remains the same: where do the chips and wiring go without going SMD (or who will volunteer to design and help coordinate production if we do?)Well the design that isotab had had the controller under the spacebar but this would only work if a spacebar was mandatory part of the design. you could fit one on the backside of the PCB if everyone had Plastic cases and was willing to modify them. I have never done SMD before I may very well be able to do it once I learn how and have the time the main constraint would then be time which I dont have much of.
are plans now to have it backlit or not backlit?
backlit is for wusses
Oh man I just saw the layout I want for the DOX in it's complete formShow Image(http://www.otd.kr/data/file/album/thumb_ch/96749)
Status update?
hey guys, so pharmacy school kicks ur butt pretty hard the last year, don't get too much freetime :/ kinda sad to see no one carrying this project on... at this point its looking like i will be busy with my clinical rotations till jan 2013 >.<I want a DOX :( i have everything but a PCB.
heres a photo of my office at the current rotation site at boston medical center :P .. its one of my dox prototypes and some random blank keycap set i had sitting around... hate those rubber domes they have at the officeShow Image(http://i6.photobucket.com/albums/y222/icbob/aed0963e.jpg)
im still dropping by GH every so often, so if you someone do decide to pick this up while im gone, i'm more than happy to help
you have a very small monitor, just a tad wider than your DOX. And that phone! I had one like that at work, 20 years ago!lol.. yea you should see my pager... 5 buttons, vibrate and 1 ring tone, no backlights
should i post up the layout i was using again? since the attachments are all goneI saved my layout as well. might you be able to help with phantom firmware as well?
And that phone! I had one like that at work, 20 years ago!
hey guys, so pharmacy school kicks ur butt pretty hard the last year, don't get too much freetime :/ kinda sad to see no one carrying this project on... at this point its looking like i will be busy with my clinical rotations till jan 2013 >.<I want a DOX :( i have everything but a PCB.
heres a photo of my office at the current rotation site at boston medical center :P .. its one of my dox prototypes and some random blank keycap set i had sitting around... hate those rubber domes they have at the officeShow Image(http://i6.photobucket.com/albums/y222/icbob/aed0963e.jpg)
im still dropping by GH every so often, so if you someone do decide to pick this up while im gone, i'm more than happy to help
Are you counting row 1 as spacebar, or esc row? Because it's different depending on who you're talking to.
Y U NO GB FOR THIS?!?!because you can buy all the stuff yourself easily enough...
But you have to have PCBs made and plate/case machined. :(well im just using a poker case but yes if you couldnt get one you would have to have an aluminium one made like was done in the past i forgot who ran the groupbuy. I will be ordering pcbs and plates for my self once the design is done if your interested maybe we can work something out...
I can source the rest myself, but group buying power for those two items would be nice. (Where do you find a 1.25 Return/Enter key of the correct profile?)
Why settle for a Poker or Pure when you can have a programmable board like this one?
As for PCBs and plates for the Dox, count me in for one of each. Maybe there are others interested, as well?alright sounds good ill post here of course when the PCB is done.
If this will fit in a Poker case, I have an aluminum case from treble318 I will use.
Here's the layout you wanted for PCByea talk to bpiphany about it hes the one that did the phantom pcb and plate and the one who just redid the plate for me so i could have a normal spacebar on my phantom.
does anyone know where to find the costar stab measurement/specs?
Here's the layout you wanted for PCBthanks a lot for this
does anyone know where to find the costar stab measurement/specs?
- 62 1N41418 switching diodeCan I assume you mean 1N4148?
- 62 LEDs of your choice (forward voltage must be <2.5v)
- 30 resisters calculate ohm for a chain of LED in series of 2's powered by a 5v supply source
- 4 resisters calculate ohm for single LED powered by a 5v supply source
for the leds im looking for red like on the cm storm quickfire and the brightest ones available I dont mind paying extra I think the ones I originally had specd out were correct but their no longer available http://tinyurl.com/9qc3577 though it looks like they had the little lip around the bottom which isnt correct for the ones that fit in the switch
Quote- 62 1N41418 switching diodehttp://tinyurl.com/9uwcjjsQuote- 62 LEDs of your choice (forward voltage must be <2.5v)http://tinyurl.com/8mk7deyQuote- 30 resisters calculate ohm for a chain of LED in series of 2's powered by a 5v supply sourcehttp://tinyurl.com/8sjcu2zQuote- 4 resisters calculate ohm for single LED powered by a 5v supply sourcehttp://tinyurl.com/8ca78zm
Just search on Mouser for 1N4148, sort by price ascending, pick the cheapest one that you can solder. 771-1N4148,133 is the cheapest thru hole in Q > 25.thanks a bunch i can now complete my parts list.
Here's the layout you wanted for PCB
does anyone know where to find the costar stab measurement/specs?
yes it will require some clipping itll be nearly the same PCBHere's the layout you wanted for PCB
does anyone know where to find the costar stab measurement/specs?
Will this PCB fit in a Poker case? Or will it require some clipping as detailed here: http://geekhack.org/index.php?topic=24082.0
It looks like the same PCB to me, but I'd rather be sure before I order them. Thanks!
yes it will require some clipping itll be nearly the same PCB
the new dox is designed around the teensy 2.0 and that only waht works with it each controller is different especially the teensy 3.0 which naively cant be a keyboardyes it will require some clipping itll be nearly the same PCB
Awesome, thanks for letting me know. Do you think it could be modified to fit the Teensy++, or even the Teensy 3.0? Running a keyboard with a 32 bit ARM processor could be interesting. :)
I've got a spare Teensy++, but no regular Teensies lying around. If it won't fit, it might make sense for me to get the original PCB printed instead.
Sorry for all the questions, I'm a new comer to electronics :)
the new dox is designed around the teensy 2.0 and that only waht works with it each controller is different especially the teensy 3.0 which naively cant be a keyboard
Hmm, so it won't. Is that due to the width of the LED version being 0.017 inches shorter? Again, first time using ExpressPCB... been a long time since I've used Windows too, actually.well were working on a new one that when ordered together will be cheaper and better the plate is all thats left and thats hopefully almost done i think I can post the layout for you if you want
Thanks for tolerating all my noobish questions, I feel bad.
well were working on a new one that when ordered together will be cheaper and better the plate is all thats left and thats hopefully almost done i think I can post the layout for you if you want
I'm basing mine off of this: http://lsdox.com/doxkb/doxkb_pcb.zip. It's the one by Dox, in the first post. From what I can see, they're essentially the same in terms of fitting into a Poker case. The only differences I can see that could affect matching it with the Poker case are;well it was never ment for a poker case to the screw holes might not be there... originally the plate wads extended and bent to form a case. Sorry that the pics are gone. Also you might want to wait for the GH60 GB as that has many different layouts and should suit whatever you want.
- It doesn't have the Teensy integrated, which I'm fine with.
- Currently requires case modification to power it, which I'm rectifying in my own design.
- The PCB sizes were very slightly different, which I've rectified.
Is there something that I'm missing?