So we have the
GH60, which seems on the path of greatness.
samwisekoi started the
GH75, which also looks very impressive. It now is the time for GH100+, a full size and maybe even larger (122-terminal style) open source community keyboard.
What I am thinking is of a open source keyboard based on the GH60 as the base and extending on it with modules, which can be directly connected via a connector or ribbon cables. There will be 5 extendable modules:
- Arrow + navigation cluster - similar to the phantom style cluster, this would have 3x5 switch matrix, which can be used to create any layout you want, such as the standard arrow + nav cluster or the "+" style on the terminal Model F.
- Numpad cluster - Standard numpad cluster with 4x5 switch matrix, with 2u switch positions in normal +, Enter, and 0.
- Esc + 12 F function row - The standard function row with Esc, and F1-F12
- 24 F function rows - 12x2 switch matrix, Model F terminal style 24 function keys style matrix
- 10 key macro extension - 2x5 switch matrix, this again is similar to the Model F terminal style 2x5 matrix on the left side.
An added advantage with extendable modules is that you can play around with the positions of the modules, such as have arrow cluster on the left and the 2x5 macro module on the right side.
So what do you guys think? I have absolutely no idea on how to develop PCB circuits, however I can help with anything else.
So what say guys?
UPDATE - 22-Jan-2014Thanks to regack who is helping me learn PCB designing this project is a go. I've also changed the name to Blox.
Features I am planning- Support Alps as well as MX switches (Plate and PCB)
- Full LED support
[1]- PCB mounted Stabs
- All components SMD
[2]- SMD diodes, as well as through-hole diodes (Inside switches only)
- SMD and through-hole resistors for the LEDs
[1] Now there are three ways (That I am aware of) to setup the LEDs,
1. All in parallel, all LEDs connected to ground and power via transistor to control brightness and effect such as fading, reactive, etc. However this will not support individual control over each LED. Each LED would require its own resistor.
2. Series and parallel, like parallel but with 3 LEDs in series and groups like these in parallel. Less resistors required.
3. LED Matrix - The best method, LEDs in a Matrix like keys, requires large number of pins to controller, no individual resistor required, just one for each column.
I will go with the 1st, with the disadvantage that it would require a resistor for each LED and you can't control them individually as that would require another controller or expansion IC, since this is my first project, I want to take it easy and not sure if there is enough demand for individually controlled LEDs. Method 2 is just messy so i chose not to use it.
[2] Atleast the controller parts, so it is easy to manufacture with PnP and also keeps a lower profile, and I find things are more organised. There will be option of through-hole for things that may require changing such as diodes/resistors.
The blox0.
Central block - I plan to have a central 60% (Base) similar to the GH60 and similar flexibility in layouts, there will then be modules that can be connected using ribbon cables.
1.
5x3 block - This is the nav+arrow part on the Phantom, so you can have it in a traditional nav cluster and arrow or use the whole matrix, or something like on the terminal keyboards (Nav cluster and fours arrows with select keys in center). Can be installed on either side of the base. Now, when installing this module next to the base either as PCB mount or plate mounted, user can choose if they want to have it right next to the their base (No space between them) or with a 0.25u (u = 1 Cherry unit = 19.05mm = 0.75") gap like on a usual TKL board given the adequate mounting holes on the case and adequate plate.
2.
6(5)x2 block - 2x6 block with one row removable. This is the 2x5 keys on the left on the 122-Terminal keyboard or KMAC-MINI. Again complete flexibility on which side and with how much gap one wants to maintain between the base and the module when installing it, since this is true for all modules, I will not be re-iterating it again for the other modules.
3.
6(5)x1 block - 1x6 block with one key removable. This is the 1x5 on the MX-MINI.
4.
1x15 block - Function row that will support 15x1 configuration as well as Esc & F1-F12. This will not have the Scroll Lock/Pause/Print Screen.
5.
1x3 block - These are the Scroll Lock/Pause/Print Screen keys.
6.
2x12 block - This is the 24 Function row from the 122-Terminal.
7.
5x4 block - Your numpad, will also have have the 2x keys on 0, +, Enter.
8.
1x4 block - This is for four keys above the numpad.
Interaction between bloxThis is simple schematic of how things would connect
I've started off easy with designing the 3x5, 2x5, 1x5 modules first, I will then move onto the other ones.