<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<title>README - QMK Firmware</title>
<meta name="description" content="Keyboard controller firmware for Atmel AVR and ARM USB families">
<meta name="author" content="QMK Community">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="icon" href="themes/daux/img/favicon-blue.png" type="image/x-icon">
<!-- Mobile -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Font -->
<!-- CSS -->
<link href='themes/daux/css/theme-blue.min.css' rel='stylesheet' type='text/css'>
<!-- Tipue Search -->
<link href="tipuesearch/tipuesearch.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="themes/daux/js/html5shiv-3.7.3.min.js"></script>
<![endif]-->
</head>
<body class=" ">
<div class="Columns content">
<aside class="Columns__left Collapsible">
<button type="button" class="Button Collapsible__trigger">
<span class="Collapsible__trigger__bar"></span>
<span class="Collapsible__trigger__bar"></span>
<span class="Collapsible__trigger__bar"></span>
</button>
<a class="Brand" href="index.html">QMK Firmware</a>
<div class="Search">
<svg class="Search__icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 451 451">
<path d="M447.05 428l-109.6-109.6c29.4-33.8 47.2-77.9 47.2-126.1C384.65 86.2 298.35 0 192.35 0 86.25 0 .05 86.3.05 192.3s86.3 192.3 192.3 192.3c48.2 0 92.3-17.8 126.1-47.2L428.05 447c2.6 2.6 6.1 4 9.5 4s6.9-1.3 9.5-4c5.2-5.2 5.2-13.8 0-19zM26.95 192.3c0-91.2 74.2-165.3 165.3-165.3 91.2 0 165.3 74.2 165.3 165.3s-74.1 165.4-165.3 165.4c-91.1 0-165.3-74.2-165.3-165.4z"/>
</svg>
<input type="search" id="tipue_search_input" class="Search__field" placeholder="Search..." autocomplete="on"
results=25 autosave=text_search>
</div>
<div class="Collapsible__content">
<!-- Navigation -->
<ul class='Nav'><li class='Nav__item has-children'><a href="Getting_Started/index.html" class="folder"><i class="Nav__arrow"> </i>Getting Started</a><ul class='Nav'><li class='Nav__item '><a href="Getting_Started/Install_Build_Tools.html">Install Build Tools</a></li><li class='Nav__item '><a href="Getting_Started/Vagrant.html">Vagrant</a></li><li class='Nav__item '><a href="Getting_Started/Build_Compile_Instructions.html">Build Compile Instructions</a></li><li class='Nav__item '><a href="Getting_Started/Flashing_Firmware.html">Flashing Firmware</a></li><li class='Nav__item '><a href="Getting_Started/Contributing.html">Contributing</a></li><li class='Nav__item '><a href="Getting_Started/How_to_Use_GitHub.html">How to Use GitHub</a></li><li class='Nav__item '><a href="Getting_Started/Getting_Help.html">Getting Help</a></li></ul></li><li class='Nav__item has-children'><a href="Complete_Newbs_Guide/index.html" class="folder"><i class="Nav__arrow"> </i>Complete Newbs Guide</a><ul class='Nav'><li class='Nav__item '><a href="Complete_Newbs_Guide/Complete_Newbie's_Guide.html">Complete Newbie's Guide</a></li><li class='Nav__item '><a href="Complete_Newbs_Guide/Building_Your_First_Firmware.html">Building Your First Firmware</a></li><li class='Nav__item '><a href="Complete_Newbs_Guide/Flashing_Firmware.html">Flashing Firmware</a></li><li class='Nav__item '><a href="Complete_Newbs_Guide/Testing_and_Debugging.html">Testing and Debugging</a></li></ul></li><li class='Nav__item has-children'><a href="FAQ/index.html" class="folder"><i class="Nav__arrow"> </i>FAQ</a><ul class='Nav'><li class='Nav__item '><a href="FAQ/General_FAQ.html">General FAQ</a></li><li class='Nav__item '><a href="FAQ/Build_Compile_QMK.html">Build Compile QMK</a></li><li class='Nav__item '><a href="FAQ/Debugging_and_Troubleshooting.html">Debugging and Troubleshooting</a></li><li class='Nav__item '><a href="FAQ/Keymaps.html">Keymaps</a></li></ul></li><li class='Nav__item has-children'><a href="Hardware/index.html" class="folder"><i class="Nav__arrow"> </i>Hardware</a><ul class='Nav'><li class='Nav__item '><a href="Hardware/AVR_Processors.html">AVR Processors</a></li><li class='Nav__item '><a href="Hardware/Drivers.html">Drivers</a></li></ul></li><li class='Nav__item has-children'><a href="Features/index.html" class="folder"><i class="Nav__arrow"> </i>Features</a><ul class='Nav'><li class='Nav__item '><a href="Features/Advanced_Keycodes.html">Advanced Keycodes</a></li><li class='Nav__item '><a href="Features/Audio.html">Audio</a></li><li class='Nav__item '><a href="Features/Auto_Shift.html">Auto Shift</a></li><li class='Nav__item '><a href="Features/Backlight.html">Backlight</a></li><li class='Nav__item '><a href="Features/Bluetooth.html">Bluetooth</a></li><li class='Nav__item '><a href="Features/Bootmagic.html">Bootmagic</a></li><li class='Nav__item '><a href="Features/Command.html">Command</a></li><li class='Nav__item '><a href="Features/Dynamic_Macros.html">Dynamic Macros</a></li><li class='Nav__item '><a href="Features/Grave_Escape.html">Grave Escape</a></li><li class='Nav__item '><a href="Features/Key_Lock.html">Key Lock</a></li><li class='Nav__item '><a href="Features/Layouts.html">Layouts</a></li><li class='Nav__item '><a href="Features/Leader_Key.html">Leader Key</a></li><li class='Nav__item '><a href="Features/Macros.html">Macros</a></li><li class='Nav__item '><a href="Features/Mouse_Keys.html">Mouse Keys</a></li><li class='Nav__item '><a href="Features/Pointing_Device.html">Pointing Device</a></li><li class='Nav__item '><a href="Features/PS_2_Mouse.html">PS 2 Mouse</a></li><li class='Nav__item '><a href="Features/RGB_Lighting.html">RGB Lighting</a></li><li class='Nav__item '><a href="Features/Space_Cadet_Shift.html">Space Cadet Shift</a></li><li class='Nav__item '><a href="Features/Space_Cadet_Shift_Enter.html">Space Cadet Shift Enter</a></li><li class='Nav__item '><a href="Features/Stenography.html">Stenography</a></li><li class='Nav__item '><a href="Features/Swap_Hands.html">Swap Hands</a></li><li class='Nav__item '><a href="Features/Tap_Dance.html">Tap Dance</a></li><li class='Nav__item '><a href="Features/Terminal.html">Terminal</a></li><li class='Nav__item '><a href="Features/Thermal_Printer.html">Thermal Printer</a></li><li class='Nav__item '><a href="Features/Unicode.html">Unicode</a></li><li class='Nav__item '><a href="Features/Userspace.html">Userspace</a></li></ul></li><li class='Nav__item has-children'><a href="Keycodes/index.html" class="folder"><i class="Nav__arrow"> </i>Keycodes</a><ul class='Nav'><li class='Nav__item '><a href="Keycodes/Advanced_Keycodes.html">Advanced Keycodes</a></li><li class='Nav__item '><a href="Keycodes/Backlight.html">Backlight</a></li><li class='Nav__item '><a href="Keycodes/Basic.html">Basic</a></li><li class='Nav__item '><a href="Keycodes/Bluetooth.html">Bluetooth</a></li><li class='Nav__item '><a href="Keycodes/Bootmagic.html">Bootmagic</a></li><li class='Nav__item '><a href="Keycodes/Quantum_Keycodes.html">Quantum Keycodes</a></li><li class='Nav__item '><a href="Keycodes/RGB_Lighting.html">RGB Lighting</a></li><li class='Nav__item '><a href="Keycodes/Stenography.html">Stenography</a></li><li class='Nav__item '><a href="Keycodes/Thermal_Printer.html">Thermal Printer</a></li><li class='Nav__item '><a href="Keycodes/US_ANSI_Shifted_keys.html">US ANSI Shifted keys</a></li></ul></li><li class='Nav__item has-children'><a href="Reference/index.html" class="folder"><i class="Nav__arrow"> </i>Reference</a><ul class='Nav'><li class='Nav__item '><a href="Reference/Keyboard_Guidelines.html">Keyboard Guidelines</a></li><li class='Nav__item '><a href="Reference/Compatable_Microcontrollers.html">Compatable Microcontrollers</a></li><li class='Nav__item '><a href="Reference/Config_Options.html">Config Options</a></li><li class='Nav__item '><a href="Reference/Custom_Code.html">Custom Code</a></li><li class='Nav__item '><a href="Reference/Documentation_Best_Practices.html">Documentation Best Practices</a></li><li class='Nav__item '><a href="Reference/Documentation_Templates.html">Documentation Templates</a></li><li class='Nav__item '><a href="Reference/Glossary.html">Glossary</a></li><li class='Nav__item '><a href="Reference/Keymap_Overview.html">Keymap Overview</a></li><li class='Nav__item '><a href="Reference/Unit_Testing.html">Unit Testing</a></li></ul></li><li class='Nav__item has-children'><a href="For_Makers_And_Modders/index.html" class="folder"><i class="Nav__arrow"> </i>For Makers And Modders</a><ul class='Nav'><li class='Nav__item '><a href="For_Makers_And_Modders/Hand_Wiring_Guide.html">Hand Wiring Guide</a></li><li class='Nav__item '><a href="For_Makers_And_Modders/ISP_Flashing_Guide.html">ISP Flashing Guide</a></li></ul></li><li class='Nav__item has-children'><a href="IDEs/index.html" class="folder"><i class="Nav__arrow"> </i>IDEs</a><ul class='Nav'><li class='Nav__item '><a href="IDEs/Eclipse.html">Eclipse</a></li></ul></li><li class='Nav__item has-children'><a href="For_a_Deeper_Understanding/index.html" class="folder"><i class="Nav__arrow"> </i>For a Deeper Understanding</a><ul class='Nav'><li class='Nav__item '><a href="For_a_Deeper_Understanding/How_Keyboards_Work.html">How Keyboards Work</a></li><li class='Nav__item '><a href="For_a_Deeper_Understanding/Understanding_QMK.html">Understanding QMK</a></li></ul></li><li class='Nav__item Nav__item--active'><a href="README.html">README</a></li></ul>
<div class="Links">
<hr/>
<a href="https://qmk.fm/" target="_blank">QMK Link</a>
<br />
</div>
</div>
</aside>
<div class="Columns__right Columns__right--full">
<div class="Columns__right__content">
<div class="doc_content">
<article class="Page">
<div class="Page__header">
<h1><a href="README.html">README</a></h1>
</div>
<div class="s-content">
<ul class="TableOfContents">
<li>
<p><a href="#page_Quantum-Mechanical-Keyboard-Firmware">Quantum Mechanical Keyboard Firmware</a></p>
<ul class="TableOfContents">
<li>
<p><a href="#page_What-is-QMK-Firmware">What is QMK Firmware?</a></p>
</li>
<li>
<p><a href="#page_How-to-Get-It">How to Get It</a></p>
</li>
<li>
<p><a href="#page_How-to-Compile">How to Compile</a></p>
</li>
<li>
<p><a href="#page_How-to-Customize">How to Customize</a></p>
</li>
</ul>
</li>
</ul>
<h1 id="page_Quantum-Mechanical-Keyboard-Firmware">Quantum Mechanical Keyboard Firmware</h1>
<h2 id="page_What-is-QMK-Firmware">What is QMK Firmware?</h2>
<p>QMK (<em>Quantum Mechanical Keyboard</em>) is an open source community that maintains QMK Firmware, QMK Flasher, qmk.fm, and these docs. QMK Firmware is a keyboard firmware based on the <a href="http://github.com/tmk/tmk_keyboard" class="Link--external">tmk_keyboard</a> with some useful features for Atmel AVR controllers, and more specifically, the <a href="http://olkb.com" class="Link--external">OLKB product line</a>, the <a href="http://www.ergodox-ez.com" class="Link--external">ErgoDox EZ</a> keyboard, and the <a href="http://clueboard.co/" class="Link--external">Clueboard product line</a>. It has also been ported to ARM chips using ChibiOS. You can use it to power your own hand-wired or custom keyboard PCB.</p>
<h2 id="page_How-to-Get-It">How to Get It</h2>
<p>If you plan on contributing a keymap, keyboard, or features to QMK, the easiest thing to do is <a href="https://github.com/qmk/qmk_firmware#fork-destination-box" class="Link--external">fork the repo through Github</a>, and clone your repo locally to make your changes, push them, then open a <a href="https://github.com/qmk/qmk_firmware/pulls" class="Link--external">Pull Request</a> from your fork.</p>
<p>Otherwise, you can either download it directly (<a href="https://github.com/qmk/qmk_firmware/zipball/master" class="Link--external">zip</a>, <a href="https://github.com/qmk/qmk_firmware/tarball/master" class="Link--external">tar</a>), or clone it via git (<code>git@github.com:qmk/qmk_firmware.git</code>), or https (<code>https://github.com/qmk/qmk_firmware.git</code>).</p>
<h2 id="page_How-to-Compile">How to Compile</h2>
<p>Before you are able to compile, you'll need to <a href="Getting_Started/Install_Build_Tools.html">install an environment</a> for AVR or/and ARM development. Once that is complete, you'll use the <code>make</code> command to build a keyboard and keymap with the following notation:</p>
<pre><code>make planck/rev4:default
</code></pre>
<p>This would build the <code>rev4</code> revision of the <code>planck</code> with the <code>default</code> keymap. Not all keyboards have revisions (also called subprojects or folders), in which case, it can be omitted:</p>
<pre><code>make preonic:default
</code></pre>
<h2 id="page_How-to-Customize">How to Customize</h2>
<p>QMK has lots of <a href="Features/index.html">features</a> to explore, and a good deal of <a href="http://docs.qmk.fm" class="Link--external">reference documentation</a> to dig through. Most features are taken advantage of by modifying your <a href="Reference/Keymap_Overview.html">keymap</a>, and changing the <a href="Keycodes/index.html">keycodes</a>.</p>
</div>
<nav>
<ul class="Pager">
<li class=Pager--prev><a href="For_a_Deeper_Understanding/Understanding_QMK.html">Previous</a></li> </ul>
</nav>
</article>
</div>
</div>
</div>
</div>
<!-- JS -->
<script src="themes/daux/js/jquery-1.11.3.min.js"></script><script src="themes/daux/js/highlight.pack.js"></script><script src="themes/daux/js/daux.js"></script>
<!-- Tipue Search -->
<script type="text/javascript" src="tipuesearch/tipuesearch.js"></script>
<script>
window.onunload = function(){}; // force $(document).ready to be called on back/forward navigation in firefox
$(function() {
tipuesearch({
'base_url': ''
});
});
</script>
</body>
</html>