As i would like to at the very least know the process for writing my own firmware could to direct me to a source where I could learn?
I think that those who have written firmwares have read and experimented a lot on their own. There are a few threads where firmware writers discuss different techniques.
Going with TMK or Soarer's firmwares are the easiest, most popular routes that provide lots of features from the start with the least amount of programming. Soarer has not published his source code, and the firmware has to learn the matrix through configuration files.
I run my own firmware on a keyboard. I started by modifying bpiphany's
AVR-keyboard code, but now all in my source tree is my code.
AVR-Keyboard is quite simple: one source file for the main routines and a couple of source files that are specific to the keyboard matrix and layout, but no special features whatsoever.
The USB routines are from PJRC who makes the Teensy: they don't support NKRO, media or power keys or even Suspend mode, but they work. It compiles under Linux with avr-gcc and a Makefile.
All of the above are for the Teensy 2.0 (and the Teensy++ 2.0) that use a Atmel 8-bit AVR microcontroller. For the Teensy boards that use Freescale ARM Cortex-based controllers there is not as much existing source code available.
HaaTa's
Kiibohd controller firmware supports the Teensy 3.0 and 3.1.