-what is SMD soldering compared to regular soldering?
-What seperates one controller from the next or is teensy pretty much the gold standard?
SMT (or SMD) means Surface Mount Technology/Device. Basically any soldering with pins that are super tiny and really close together. As a beginner you want to stick with thru-hole soldering, which uses larger pins. SMT is typically done by robots, which makes it more economical at large scale. All mechanical switches are through-hole anyway, because you can't miniaturize keyboard switches.
The Teensy is the most popular controller for keyboards, but any dev board with an AtMega32u4 chip will work just as well, as long as there are enough pins. I use the A-Star Micro for mine:
https://www.pololu.com/product/3101 But you might need more pins; I only have 4 rows and 11 columns.
Wires:
-So what I got from my understanding of those articles you posted where that diodes are parts of the wires that connect to the left peg of every switch?
-you also mentioned the right direction of diodes, do they have to point a certain way?
-so resistors are just for leds? If i dont use leds at all I wont need to bother with them whatever they are?
Diodes keep the flow of current going from high to low pins on the controller. Basically all your input pins are high normally, and when a switch is pressed an electrical connection is created from the input pins to the row pins, which are brought low when that row is activated. You'll definitely want to read up on how the matrix scanning process works, since this is the whole foundation of the keyboard's operation. I have an article that describes the process from the perspective of the firmware at
http://atreus.technomancy.us/firmwareWhen you're putting together your keyboard, first just wire together one key in each row and one key in each column when you're starting out. You might even test it after soldering one or two switches in. That way if you get the diodes in backwards it's only a few you need to fix instead of the whole thing.
You can leave out diodes (early keyboards had none) but you would get spurious key presses when you have two keys in different rows and columns pressed at the same time. This is called Ghosting. It's a bit subtle to understand how it happens but you don't really need to grok it completely:
http://www.tomshardware.com/reviews/mechanical-switch-keyboard,2955-6.htmlYeah, putting in LEDs is probably not a great idea for your first design. Not worth the hassle.
can you elaborate on what an io expander is? I havnt fully thought out how i was planning on connecting the 2 halves yet.
An IO expander is a chip that has a bunch of IO pins and communicates to your main controller using a protocol like I2C which only takes a handful of pins. The scan rate is slower, (probably still below the threshold of human perception) but it gives you a lot of flexibility. The main downside is it introduces more complexity in the firmware. However, if you use the same one as the Ergodox, you might be able to just re-use the Ergodox firmware.
If you don't have an IO expander, you can run wires across from the side with a controller to the one without, but you need one wire per row plus one wire per column, so it can get awkward.
The simplest way to go is to just put a separate controller in each hand and just treat them as independent keyboards. The only downside here is that on Mac OS X, you can't press shift on one hand and have it affect key presses on the other hand. (Other OSes work fine.)
-is firmware available to acquire easily or do I have to manually code the thing myself?
As long as you use an AtMega32u4 chip, you can use the TMK firmware, which is very featureful. You just have to teach it what pins you've got connected to which rows/columns.
https://github.com/tmk/tmk_keyboard/If you know C and have a solid understanding of the keyboard matrix, writing your own is not a big deal. It can be done in a weekend with about 100 lines of code. But it's nice to be able to use a pre-existing firmware so you can type on your keyboard as soon as it's constructed and not have to wait to finish your own firmware.
-FIRSTLY--> how do people typicly design layouts for this, is there a software program that allows for this easily?
-secondly... I dont at all know the process for creating holed plates and cases, but I imagine it requires very very expensive machinery?
I did it using Inkscape, which is a vector illustration program that's pretty easy to learn. Take a look at some existing cases from OSS keyboards (Ergodox and my own Atreus, for instance) and copy/paste from there to tweak to your liking. (Of course if your design is a derivative of an existing OSS design, you need to honor the licensing it uses.) Typically you'll have at least three layers: a switch plate, a spacer, and a bottom plate to keep dust out.
http://p.hagelb.org/case.svg https://github.com/bishboria/ErgoDox/tree/master/ErgoDox%20Acrylic%20Case/ErgoDOX%20Acrylic%20Case%20-%20Designed%20by%20Litster/Standard/LeftIf you live in a major US city, you can take your design into a laser cutting shop and have it cut on wood or acrylic. If you want it cut in steel or aluminum you'll have to look a bit harder to find shops that will make that cut, and it will cost a lot more and be way heavier, but it'll look pretty cool.