#klipper #kalico #mcu #firmware #reference #electronics
# Overview
Every microcontroller architecture and specific chip Klipper can build firmware for, taken from the `make menuconfig` choices in the Klipper source (`src/Kconfig` and each architecture's `Kconfig`) as of 2026-09-23. That's 10 architectures and roughly 60 selectable chips.
For *which* MCU to pick on a new board design, see [[Klipper Compatible MCU Comparison]].
For a chip-by-chip STM32 breakdown against the G0B1, see [[Klipper STM32 Family Comparison]].
# Architectures
| `menuconfig` label | Kconfig symbol | Source dir |
|---|---|---|
| Atmega AVR | `MACH_AVR` | `src/avr` |
| SAM3/SAM4/SAM E70 | `MACH_ATSAM` | `src/atsam` |
| SAMC21/SAMD21/SAMD51/SAME5x | `MACH_ATSAMD` | `src/atsamd` |
| LPC176x | `MACH_LPC176X` | `src/lpc176x` |
| STMicroelectronics STM32 | `MACH_STM32` | `src/stm32` |
| Huada Semiconductor HC32F460 | `MACH_HC32F460` | `src/hc32f460` |
| Raspberry Pi RP2040/RP235x | `MACH_RPXXXX` | `src/rp2040` |
| Beaglebone PRU | `MACH_PRU` | `src/pru` |
| Allwinner A64 AR100 | `MACH_AR100` | `src/ar100` |
| Linux process | `MACH_LINUX` | `src/linux` |
| Host simulator | `MACH_SIMU` | `src/simulator` — dev/testing only |
# Chips by family
## Atmel AVR (8-bit)
- atmega2560, atmega1280
- atmega1284p, atmega644p
- atmega328p, atmega328, atmega168
- atmega32u4
- at90usb1286, at90usb646
- lgt8f328p — LogicGreen atmega328p clone
## Atmel/Microchip SAM (Cortex-M3/M4/M7)
- SAM3X8E (Arduino Due), SAM3X8C
- SAM4S8C, SAM4E8E
- SAME70Q20B
## Atmel/Microchip SAMC / SAMD / SAME5x
- SAMC21G18
- SAMD21G18, SAMD21E18, SAMD21J18, SAMD21E15
- SAMD51G19, SAMD51J19, SAMD51N19, SAMD51P20
- SAME51J19, SAME51N19, SAME54P20
## NXP LPC176x
- LPC1768 (100 MHz)
- LPC1769 (120 MHz)
## STMicroelectronics STM32
| Series | Chips |
|---|---|
| F0 | STM32F031, STM32F042, STM32F070, STM32F072 |
| F1 / F2 | STM32F103, STM32F207 |
| F4 | STM32F401, STM32F405, STM32F407, STM32F429, STM32F446 |
| F7 | STM32F765 |
| G0 | STM32G070, STM32G071, STM32G0B0, STM32G0B1 |
| G4 | STM32G431, STM32G474 |
| H7 | STM32H723, STM32H743, STM32H750 |
| L4 | STM32L412 |
| Clones (same code path) | Nation N32G452, Nation N32G455 |
## Huada Semiconductor
- HC32F460
## Raspberry Pi
- RP2040
- RP2350 (RP235x — also covers the RP2354 stacked-flash variants; see [[RP2354A Hardware Design Reference]])
## BeagleBone
- AM335x PRU — the SoC's Programmable Realtime Unit cores run the Klipper MCU code
## Allwinner
- AR100 — the OpenRISC co-processor inside the A64 SoC
## Linux host process
- Not a chip: runs Klipper's MCU code as a process on the host (Raspberry Pi etc.) so its GPIO / SPI / I2C can be used as a secondary `[mcu]` — e.g. an ADXL345 wired to the Pi's SPI for input shaping
# Notes
- Boards in the vault and their MCUs: SKR Pico = RP2040 ([[SKR Pico GPIO Budget And Servo Control]]); Einsy Rambo = atmega2560 ([[Klipper on Einsy Rambo]]).
- Kalico is a Klipper fork and generally carries the same MCU support (confirmed for RP2040/RP2350 in [[Klipper Compatible MCU Comparison]]); ==not checked family-by-family against Kalico `main`==. See [[Kalico General Setup]].
- Chips inside one family differ mainly in flash/RAM (e.g. STM32F042's 32 KB flash forces `HAVE_LIMITED_CODE_SIZE`), USB vs CAN capability, and clock speed — details for the parts under consideration live in [[Klipper Compatible MCU Comparison]].
# References
- [Klipper Features — supported micro-controllers and step benchmarks](https://www.klipper3d.org/Features.html)
- [`src/Kconfig`](https://github.com/Klipper3d/klipper/blob/master/src/Kconfig) — architecture list
- [`src/avr/Kconfig`](https://github.com/Klipper3d/klipper/blob/master/src/avr/Kconfig) · [`src/atsam/Kconfig`](https://github.com/Klipper3d/klipper/blob/master/src/atsam/Kconfig) · [`src/atsamd/Kconfig`](https://github.com/Klipper3d/klipper/blob/master/src/atsamd/Kconfig) · [`src/lpc176x/Kconfig`](https://github.com/Klipper3d/klipper/blob/master/src/lpc176x/Kconfig) · [`src/stm32/Kconfig`](https://github.com/Klipper3d/klipper/blob/master/src/stm32/Kconfig) · [`src/rp2040/Kconfig`](https://github.com/Klipper3d/klipper/blob/master/src/rp2040/Kconfig)
- [[Klipper Compatible MCU Comparison]]
- [[Klipper STM32 Family Comparison]]
- [[RP2354A Hardware Design Reference]]
- [[STM32G0B1CBT6 LQFP-48 Layout Playbook]]
# Changelog
## 2026-09-23
- Note created from the Klipper master `Kconfig` processor choices and the Features page
- Linked the new [[Klipper STM32 Family Comparison]] from Overview and References