Firmwares for custom controllers to replace stock Costar controllers allowing you to program your keyboard.
Firmwares include:
- 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.
Some other noteworthy keyboard firmware projects are:
- https://github.com/tmk/tmk_keyboard
- (add more here..)
Forks from this project:
- https://github.com/pa3zo6/costar_keyboard
- (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, avr-gcc
is
required. Please ensure you have it installed before moving to next step.
You need to select the correct MODEL
and 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
extension .hex
inside the binaries folder.
Make sure you install dfu-programmer
first.
$ dfu-programmer atmega32u2 erase
$ dfu-programmer atmega32u2 flash binaries/[flake|paw|hoof|petal]_[ANSI_ISO_JIS|DVORAK].hex
$ dfu-programmer atmega32u2 start
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.
See above section under Controller firmwares.
costar_keyboard
is free software released under the MIT license.
See the COPYING.MIT
file or http://opensource.org/licenses/MIT
for more details.
Some files distributed as part of costar_keyboard
are licensed under
different licenses:
- 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).