Editing
Easy AVR USB Keyboard Firmware
From Deskthority Wiki
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
[[Category:Firmware]] The Easy AVR USB Keyboard Firmware Project is an open source keyboard [[firmware]] and keymapping GUI for custom keyboards based on USB AVRs. It's powerful but also really easy to use. The project is hosted on [https://github.com/dhowland/EasyAVR Github]. Most discussion and support occurs in a [https://geekhack.org/index.php?topic=51252.0 dedicated thread] at [[Geekhack]]. ==Features== * Fully programmable (of course) * 10 layers * Fn and modifier keys can be configured for normal (combination) style, toggle style, or dual-use (tap keys) * Rapid fire (auto-repeat) keys * Keys can be assigned with automatic modifiers * 16 firmware macros * 1 RAM macro, recordable on the fly * N-Key Rollover (NKRO) * 1kHz polling rate * Media keys * Mouse keys * Programmable LEDs * Backlighting effects * LED dimming * Virtual Numpad * Win Lock on Scroll Lock * Default layer selection * Customizable debounce algorithms and timing * Unlink Num Lock ==Supported Hardware== Easy AVR will run on any Atmel USB AVR part. Currently supported hardware includes ATmega32U4, ATmega32U2, and ATmega16U2, including project boards such as the [[Teensy]]. Other parts such as the AT90USB1287 are possible. The firmware has been ported to the following programmable keyboards: * [https://geekhack.org/index.php?topic=41390.0 Epsilon] [Tested working] * [https://geekhack.org/index.php?topic=43183.0 Qazpad (Tau)] [Tested working] * [https://geekhack.org/index.php?topic=71161.0 CompactTKL (Zeta)] [Tested working] * [https://geekhack.org/index.php?topic=79589.0 Sigma] [Tested working] * [[Phantom]] [Tested working] * [[HID Liberation Device - DIY Instructions|HID Liberation Device]] (custom controller for the Filco MJ2) [Tested working] * [[Costar replacement controllers|Kitten Paw]] (custom controller for the Filco fullsize) * [[Costar replacement controllers|Pegasus Hoof]] (V1/V2) (custom controller for the Filco MJ2) * [[Costar replacement controllers|Black Petal]] (custom controller for the Rosewill RK-9000) [Tested working] * [[Costar replacement controllers|Frosty Flake]] (v1/v2) (custom controller for the Quickfire Rapid) * [[Costar replacement controllers|Ghost Squid]] (custom controller for the Quickfire XT) * [https://geekhack.org/index.php?topic=41464.0 GH60] (rev.B, rev.CHN) * [https://geekhack.org/index.php?topic=61306 GH36] * [https://geekhack.org/index.php?topic=38963 GHpad] * [http://www.originativeco.com/collections/custom-keyboards/products/kmac-2 KMAC] (OG KMAC / KMAC 1.2 / KMAC 2) [Tested working] * [https://geekhack.org/index.php?topic=47133.0 JD40] (Smallfry) * [https://geekhack.org/index.php?topic=62641.0 JD45] (v1/v2) * [https://geekhack.org/index.php?topic=55523.0 Orion] [Tested working] * [https://geekhack.org/index.php?topic=65036.0 Octagon] * [http://atreus.technomancy.us/ Atreus] * [http://ortholinearkeyboards.com/ Planck PCB] * [https://geekhack.org/index.php?topic=67338.0 SixShooter] (custom controller for CM Switch Tester) * [http://techkeys.us/collections/accessories/products/techkeys-keyboard-business-card Techkeys Card] * [http://techkeys.us/products/threekeyboard Techkeys ThreeKeyBoard] * [http://techkeys.us/products/sixkeyboard Techkeys SixKeyBoard] * ... and many more ==Downloads== '''Releases are now hosted on Github''' [https://github.com/dhowland/EasyAVR/releases Latest Releases] Windows users can use the stand-alone builds, which are formatted "easykeymap_windows_X_XX_XX.zip" Developers and Mac/Linux users can use the Python package. This requires an installation of Python 3.5+ and wxPython 4.0+. More information is available in the [http://dhowland.github.io/EasyAVR/build/html/install.html User's Guide] ==How To Use== # Unzip # Run easykeymap.exe (or 'python -m easykeymap' for the package version) # Create a new layout and select your board -or- open a previously saved layout (File menu) # Modify your layout by clicking a button and pressing the new key you want mapped, or selecting the scancode from the selection dialog # Save your layout (File menu) # Build your firmware into a .hex file (Build menu) # Put your keyboard into bootloader mode # Program your new .hex file using the [http://www.pjrc.com/teensy/loader.html Teensy] loader for Phantom/JD40/JD45/GH36 or [http://www.atmel.com/tools/FLIP.aspx Flip] for everything else Find more detailed instructions in the [http://dhowland.github.io/EasyAVR/build/html/userguide.html User's Guide] ==Frequently Asked Questions== Q. I get a runtime error, "The program can't start because MSVCP100.dll is missing from your computer."<br> A. Install the Visual Studio 2010 redistributable package for x86 from [http://www.microsoft.com/en-in/download/details.aspx?id=5555 microsoft.com]. Q. Hey, my number row is mapping to numpad and I didn't tell it to do that!<br> A. TKL boards have Virtual Numpad on by default. Either turn off NumLock or disable Virtual Numpad. Q. Why is my numpad is sending the wrong scancodes?<br> Q. Why won't the Numlock LED turn on?<br> A. You have "Unlink Numlock" enabled. Disable that setting to get normal numpad scancodes. Q. Why doesn't my Windows key work?<br> A. Turn off Scroll Lock or disable the "Win Lock on Scroll Lock" setting. Q. Why does my QFR turn on the Windows Lock LED when Scroll Lock is pressed?<br> A. Disable the "Win Lock on Scroll Lock" setting. Q. I lost all my configuration settings!<br> A. You probably installed a new version of the firmware. If the firmware detects an different version of EEPROM data, it erases everything and installs defaults to be on the safe side. The settings are easy to change, just put them back the way you like. Q. I bricked my keyboard! What are you going to do about it?<br> A. I'll help you fix it if I can, but I don't owe you anything. I've programmed all sorts of boards with all kinds of firmware (both good and bad) and I've never bricked anything. Just press the reset switch. If you really managed to brick it, it's your own fault. Q. My computer acts weird when the keyboard is plugged in, or the keyboard just isn't recognized by some of my computers.<br> A. Try disabling the advanced USB interfaces in the config console. This will limit you to 6KRO, but it should improve compatibility with quirky hosts. Q. If this software is supposed to be so "easy", why do I have to use Flip or Teensy Loader?<br> A. It has to do with the bootloader software that's already part of the supported boards. The short answer is that a goal of the project is to be easy to setup and use with good compatibility, and that means using the "OEM" software loading methods. Q. Can you add a swap Caps/Ctrl (or Backspace/Backslash, Esc/grave, etc.) feature?<br> A. Those are great features on a normal keyboard. However, this firmware is used on programmable keyboards. The way to implement those features is with alternate layers. You have 10 to work with. Q. Why am I getting unwanted extra characters while typing in Linux when pressing the NON_US_HASHMARK_AND_TILDE and/or the BACKSLASH_AND_PIPE key?<br> A. The bit-packed vector that is used for NKRO support is not well supported in linux when using those keys. I think there may be some kind of translation layer for internationalization that is causing keys to be virtually lifted and redetected even though the user holds the key steady IRL. To work around this you can use the "Basic keyboard" config option to disable NKRO and use 6KRO instead. Q. The F13-F24 keys don't work.<br> A. The NKRO field is not wide enough to fit those nonstandard scancodes. AVR microcontrollers are extremely limited in memory and this was a compromise that had to be made. To use those scancodes, disable NKRO. Q. The BOOT key doesn't work.<br> A. This usually means that the firmware doesn't have the correct address of the bootloader. Make sure the "Teensy" config item is set correctly for your board. A. On boards that use the Astar microcontroller, this is a known problem. The custom bootloader on the Astar requires a boot key in a specific place that is not reserved by the EasyAVR firmware. ==Developer Notes== Requirements: Atmel Studio 7 and Python 3.5+ The firmware and keymapper are released under the GPL2 license. All development activity is managed at [https://github.com/dhowland/EasyAVR Github] ==ToDo and Requests== Users, edit this page with requests, or start a discussion in the official Geekhack thread, or create a new issue on Github. Note: The Github [https://github.com/dhowland/EasyAVR#supporting-custom-boards README] contains information for creating a custom layout with keyboard-layout-editor.com. It is considered "good manners" to give this a shot first, and to provide a link to a hardware description of the new board. * Support KMAC Mini * Support Viper * Support Lightpad * Support Lightsaver * Support KC60 * Support RS60 * Support Nerd60 * Support TMK64 Alps * Support KBDfans DZ60 [[Category:Keyboard modding]] [[Category:Keyboard creation]]
Summary:
Please note that all contributions to Deskthority Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Project:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Page actions
Page
Discussion
Read
Edit
Edit source
History
Page actions
Page
Discussion
More
Tools
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Navigation
Main page
Deskthority forum
Support Deskthority
Search
Main categories
Guides
Keyboards
Keyboard switches
Keycaps
Keyboard modding
Pointing devices
Brands & companies
Group buys
Other topics
Wiki info & links
Recent changes
Random page
All pages
Deskthority wiki help
MediaWiki help
Tools
What links here
Related changes
Special pages
Page information