Firmwares for keyboard controllers
Firmwares for custom controllers to replace stock Costar controllers allowing you to program your keyboard.
- The Frosty Flake (for Cooler Master Quick Fire Rapid)
- The Kitten Paw (for Filco Majestouch full size)
- The Black Petal (for Rosewill full size)
- The Pegasus Hoof (for Filco Majestouch Tenkeyless)
For more information, please see the Costar replacement controllers page on the Deskthority Wiki.
One goal of this project is to make a keyboard firmware for ATmega32U2 based daughter boards as simple (within reason) as possible. It is supposed to be a first introduction to how a keyboard works.
Features will be limited to the following topics:
- Basic keyboard (nothing mouse or other devices)
- Simplified layout definitions
- Timer interrupt matrix scans
- Basic de-bouncing
- PWM control for LEDs
For more advanced features there are other keyboard firmwares already way ahead of this project. If you want to contribute by increasing clarity, understandability or simplicity, please do. Also feel free to fork, clone or copy selected parts to diverge however you like from the constraints of this project.
Other keyboard firmwares
Some other noteworthy keyboard firmware projects are:
- (add more here..)
Forks from this project:
- (add more here..)
Regular keyboard firmwares are located in the folder keyboards. Compiled binaries will end up in the folder binaries.
In order to compile firmwares,
required. Please ensure you have it installed before moving to next step.
You need to select the correct
LAYOUT variables in the Makefile
MODEL = [flake|paw|hoof|petal] LAYOUT = [ANSI_ISO_JIS|DVORAK] MCU = atmega32u2 F_CPU = 16000000 B_LOADER = \"jmp\ 0x7000\"
Then run the
make command in a terminal. Always run a
make clean first.
$ make clean && make
If the process is successful, you would find binary firmware with
.hex inside the binaries folder.
Flashing the controller
Make sure you install
$ dfu-programmer atmega32u2 erase $ dfu-programmer atmega32u2 flash binaries/[flake|paw|hoof|petal]_[ANSI_ISO_JIS|DVORAK].hex $ dfu-programmer atmega32u2 start
Testing and debugging firmwares
For debugging needs the firmware in the folder debugger can be used. This firmware registers as a keyboard. Every half second or so it will print a row with with (letter,number) pairs describing the rows and columns of the currently pressed keys. This can be useful to find hardware errors. The keyboard LEDs will also be flashed every cycle.
The tester firmares are for production testing only.
Compiling and Flashing
See above section under Controller firmwares.
costar_keyboard is free software released under the MIT license.
COPYING.MIT file or http://opensource.org/licenses/MIT
for more details.
Some files distributed as part of
costar_keyboard are licensed under
- portions of
Makefile: Public domain (by Eric B. Weddington, Jörg Wunsch et al.);
lib/keycode.h: GPL v2 or later (by Jun Wako);
lib/usb_keyboard_debug.c: MIT (by PJRC.COM, LLC).