Author Topic: Keyboard build planning  (Read 1367 times)

0 Members and 1 Guest are viewing this topic.

Offline trillobite

  • Thread Starter
  • Posts: 36
  • Location: The Grid.
Keyboard build planning
« on: Fri, 12 June 2015, 23:36:51 »
Disclaimer: This is a brainstorm. As I will be having future financial troubles, this project may or may not come to reality, although, I really hope it will.

Layout:
http://www.keyboard-layout-editor.com/#/layouts/9ad15d7ba1b2d5b50dc951c051d37f6c
If the link fails to work:
https://github.com/trillobite/keyboardLayout

I have been planning on building a custom keyboard specifically designed for programmers. I am a VIM user, as you can tell by the design, but I wanted to add a bit of a custom aspect:

1. I replaced the windows key with a Fn key, this will allow the H J K L keys to report an arrow key-press.
     Reason: When renaming files on the desktop, it would be nice to hit ctrl + a to highlight the text, then press Fn + L to bring the cursor to the end of the text, when simply wanting to remove a few characters off the end of the text, without my right hand leaving the home row on the keyboard.

2. Row of programmable keys on the right to set custom macro's. These can memorize a large array of key strokes.
    Reason: If a process or a chunk of code needs to be manually injected into many files, one could hit MACRO then the key to program, type out the code as normal, and when finished, hit the MACRO key once more. The code written will be stored within the macro key, and pressing that key would cause it to write out the entire text, with each key stroke set to delay 100ms (approximately).

3. DELETE key is placed next to the BACKSPACE.
    Reason: It's more logical.

4. END placed next to RETURN.
    Reason: When coding, sometimes your in the middle of a line of text. Sometimes you just want to hit the end key, then start a new line of code with RETURN. Placing these keys near each other improves efficiency, and less hand movement.

5. INS (insert) key is removed!
    Reason: I hate that key, and why is it usually placed next to backspace? So you hit it thinking your hitting backspace and screw up your code... yea, my blood boils, so it's GONE! A Fn + BACKSPACE will cause the keyboard to report the INS key press.

6. VIM key added.
    Reason: It's simply another macro key, it's used to be able to start VIM with a macro. In Ubuntu 14.04 that would be CTRL + ALT + T. Would be able to reprogram to any key combination.

7. :Q, and :W added.
    Reason: Some find it faster to hit one key in which it executes: Esc : q. For some, pressing one key to quit vim keeps their minds focused on the code, rather than the key combinations. :q! was not added, as it can be accidentally pressed, and all unsaved data would be lost.

This keyboard is designed to be compact, so it can be placed into a backpack. At least for me, I come to work with a laptop, and wish to use the same setup at home for personal coding projects.

If I built this keyboard, I would probably produce a controller which uses the Arduino, as it would allow me to produce a keyboard which is fully programmable, without the need for any drivers being placed on the computer in use.

This keyboard will use a DIN or PS2 out, as simple converters can be used in order to plug into USB. This will also allow the keyboard to be used on much older DOS computers. For me, this would be great, as I would like to have ONE keyboard to use on all of my systems.

Another reason: I need to refresh my C++ programming skills. I have a certificate, but I need some practice. All drivers (if any) and code will be placed on GitHub. I plan on making this 100% open-source.

Some information I have referenced so far:
http://www.arduino.cc/en/Reference/MouseKeyboard
http://www.arduino.cc/en/Tutorial/KeyboardController
http://hackaday.com/2012/06/29/turning-an-arduino-into-a-usb-keyboard/
https://geekhack.org/index.php?topic=65341.0

Anyone who has any comments, concerns, or any other forms of input, please reply :D
« Last Edit: Sat, 13 June 2015, 00:00:07 by trillobite »

Offline trillobite

  • Thread Starter
  • Posts: 36
  • Location: The Grid.
Re: Keyboard build planning
« Reply #1 on: Sun, 14 June 2015, 13:32:38 »
So I used the SwillKB online CAD file generator to create the key switch mounting plate. I will most likely hand solder the whole key matrix, which is no biggie, as it will probably be quite fun.

You can grab those files yourself on my github:
https://github.com/trillobite/keyboardLayout

Anyone wishing to build the same keyboard, feel free to use any and all of my current resources. If you beat me in the build process, Kudos, I will not be angry, but actually happy.

Feel free to follow me in the build process! It appears that the only way I will be able to afford this build is by purchasing bulk quantities from alibaba, and selling off the excess with marginal profits.

Offline trillobite

  • Thread Starter
  • Posts: 36
  • Location: The Grid.
Re: Keyboard build planning
« Reply #2 on: Sun, 14 June 2015, 13:44:05 »
Instead of reinventing the wheel, I have actually been contimplating using a keyboard controller from the Gateway AnyKey keyboard. This will reduce cost, and possibly complexity. I feel I will probably have to use the old mylar plastic sheet which contains the key traces in order to replicate the same key matrix with the MX compatible switches.



What is interesting about these controllers, is that they produce a fully programmable keyboard, and each key can store a whole paragraph worth of characters. Time and again, I have attempted to reach the maximum of what a macro can store on this controller, but it always simply finds a way to store it all!

That does not mean that I will scrap my Arduino controller idea, I believe it should be a project all in it's own, and I must first practice building a single keyboard before attempting such a thing. It would also be nice to have a programmable keyboard back in action to program the controller with.
« Last Edit: Sun, 14 June 2015, 13:51:51 by trillobite »

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: Keyboard build planning
« Reply #3 on: Sun, 14 June 2015, 13:49:42 »
Is that old controller reprogrammable?  If it is you can make your own matrix, if not your FN key is not going to do what you want...
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline trillobite

  • Thread Starter
  • Posts: 36
  • Location: The Grid.
Re: Keyboard build planning
« Reply #4 on: Sun, 14 June 2015, 14:00:13 »
Is that old controller reprogrammable?  If it is you can make your own matrix, if not your FN key is not going to do what you want...

Good point, I would probably have to do some re-design on the current matrix. I am sure the existing controller can be reprogrammed as it is an intel chip, though I do not have the tools to do so. In order to operate the Fn key, I would probably have to do some simple electronics engineering, where the Fn key-press would operate transistors in which the H J K L keys would join a separate matrix where the arrow keys previously existed on.

In other words, a simple logic circut: if Fn pressed, H J K L joins arrow key matrix, else report as normal.
« Last Edit: Sun, 14 June 2015, 14:02:32 by trillobite »

Offline False_Dmitry_II

  • Posts: 1107
Re: Keyboard build planning
« Reply #5 on: Sun, 14 June 2015, 14:45:22 »
Should just use something like Soarer's Controller, and a teensy or something. I don't think there's a reason to go and use something like that anymore.
"Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety." - Ben Franklin (11 Nov. 1755)

Offline trillobite

  • Thread Starter
  • Posts: 36
  • Location: The Grid.
Re: Keyboard build planning
« Reply #6 on: Sun, 14 June 2015, 23:34:17 »
Should just use something like Soarer's Controller, and a teensy or something. I don't think there's a reason to go and use something like that anymore.

The teensy looks nice! Would there be a way to get it to work on an old DOS machine with the 5 pin DIN connector? That's the main reason I was thinking about using an ancient controller.

Offline False_Dmitry_II

  • Posts: 1107
Re: Keyboard build planning
« Reply #7 on: Mon, 15 June 2015, 20:33:06 »
The goal is usually to get to USB.

But it may be easier to go ahead and do the custom with the teensy and USB, and buy something like a space invader switch keyboard on ebay which already has an AT connector for that computer.
"Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety." - Ben Franklin (11 Nov. 1755)

Offline Findecanor

  • Posts: 5042
  • Location: Koriko
Re: Keyboard build planning
« Reply #8 on: Tue, 16 June 2015, 08:13:10 »
The PS2AVR firmware for the AVR family of microcontrollers (which is in the Teensy) talks PS/2 instead of USB, although there are also USB versions.
🍉

Offline Oobly

  • * Esteemed Elder
  • Posts: 3929
  • Location: Finland
Re: Keyboard build planning
« Reply #9 on: Tue, 16 June 2015, 08:54:57 »
With a Teensy that has some free IO pins you can implement both PS/2 and USB in the same unit, but it takes a bit of fiddling.

If you only want PS/2 you can use PS2AVR code in an Atmega16-based controller, but you may have to make your own circuit for it and you'll need some way to flash the AVR.

I'd try first with Teensy2.0 and USB only. Then try adding a PS/2 output to it.
Buying more keycaps,
it really hacks my wallet,
but I must have them.