
Atmel chips are quite commonly used these days as keyboard controllers; QMK is a firmware management system being used for a bunch of keyboards. See: <https://github.com/qmk/qmk_firmware>, and, for a list of keyboards supported, see <https://github.com/qmk/qmk_firmware/tree/master/keyboards> My wee bit of "bragging rights" in there is that my keymap for my Planck keyboard is in the codebase <https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck/keymaps/cbbrowne> The authors are using C rather than assembler; I'm not sure there's any really big "why" there aside from historical inertia. I'd be quite interested to see what the keymaps would look like in assembler. I observe that most of the "code" consists of 2-dimensional arrays of keymaps. At any rate, the toolchain parallels that which Peter is using; for those that would prefer to use GCC, I'll toss this in. Crucial build tools are commonly "native" parts of Debian/Ubuntu/Fedora these days: # apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi Some interesting authoritative links: https://dfu-programmer.github.io/ http://www.nongnu.org/avr-libc/