Really simple firmware for the Costar replacement controllers
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
binaries Swapped LEDs on hoof_2013 Jul 24, 2016
debugger
documentation Added debugger. Re-arranged parts. May 18, 2016
keyboard Swapped LEDs on hoof_2013 Jul 24, 2016
libraries
models
tester
.gitignore
COPYING.MIT
README.md

README.md

Firmwares for keyboard controllers

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.

Intentions

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:

Forks from this project:

Controller firmwares

Regular keyboard firmwares are located in the folder keyboards. Compiled binaries will end up in the folder binaries.

Compiling

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.

Flashing the controller

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

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.

License

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).