#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