]> git.donarmstrong.com Git - qmk_firmware.git/blob - docs/compatible_microcontrollers.md
[Keyboard] Add hand swap config matrix for preonic rev 3 (#7460)
[qmk_firmware.git] / docs / compatible_microcontrollers.md
1 # Compatible Microcontrollers
2
3 QMK runs on any USB-capable AVR or ARM microcontroller with enough flash space - generally 32kB or more, though it will *just* squeeze into 16kB with most features disabled.
4
5 ## Atmel AVR
6
7 The following use [LUFA](https://www.fourwalledcubicle.com/LUFA.php) as the USB stack:
8
9 * [ATmega16U2](https://www.microchip.com/wwwproducts/en/ATmega16U2) / [ATmega32U2](https://www.microchip.com/wwwproducts/en/ATmega32U2)
10 * [ATmega16U4](https://www.microchip.com/wwwproducts/en/ATmega16U4) / [ATmega32U4](https://www.microchip.com/wwwproducts/en/ATmega32U4)
11 * [AT90USB64](https://www.microchip.com/wwwproducts/en/AT90USB646) / [AT90USB128](https://www.microchip.com/wwwproducts/en/AT90USB1286)
12
13 Certain MCUs which do not have native USB will use [V-USB](https://www.obdev.at/products/vusb/index.html) instead:
14
15 * [ATmega32A](https://www.microchip.com/wwwproducts/en/ATmega32A)
16 * [ATmega328P](https://www.microchip.com/wwwproducts/en/ATmega328P)
17
18 ## ARM
19
20 You can also use any ARM chip with USB that [ChibiOS](http://www.chibios.org) supports. Most have plenty of flash. Known to work are:
21
22 ### STMicroelectronics (STM32)
23
24  * [STM32F0x2](https://www.st.com/en/microcontrollers-microprocessors/stm32f0x2.html)
25  * [STM32F103](https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html)
26  * [STM32F303](https://www.st.com/en/microcontrollers-microprocessors/stm32f303.html)
27
28 ### NXP (Kinetis)
29
30  * [MKL26Z64](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kl-series-cortex-m0-plus/kinetis-kl2x-72-96-mhz-usb-ultra-low-power-microcontrollers-mcus-based-on-arm-cortex-m0-plus-core:KL2x)
31  * [MK20DX128](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k2x-usb/kinetis-k20-50-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-based-on-arm-cortex-m4-core:K20_50)
32  * [MK20DX256](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/k-series-cortex-m4/k2x-usb/kinetis-k20-72-mhz-full-speed-usb-mixed-signal-integration-microcontrollers-mcus-based-on-arm-cortex-m4-core:K20_72)
33
34 ## Atmel ATSAM
35
36 There is limited support for one of Atmel's ATSAM microcontrollers, that being the [ATSAMD51J18A](https://www.microchip.com/wwwproducts/en/ATSAMD51J18A) used by the [Massdrop keyboards](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop).