Skip to content

How to choose a controller

This section describes four families of controllers: ESP32, Arduino, RP2040, and STM32. All of them can control fans, read sensors, and switch loads. The difference is what each one is best suited for.

Quick selection

Task Controller
Standalone dryer or Wi-Fi sensor ESP32
Educational prototype, first experiments Arduino
MCU in Klipper (extra pins) RP2040
Printer board, MCU in Klipper STM32

If you work with Klipper

Klipper uses a "host + MCU" architecture. The host is a Raspberry Pi or similar computer. The MCU is a separate microcontroller that manages heaters, fans, and sensors in real time.

For an MCU in Klipper, look at RP2040 or STM32: they are well supported, can be flashed without ST-Link, and work directly over USB or CAN.

ESP32 is not the best choice as an MCU for Klipper — it does not have native Klipper firmware support in the same way that STM32 or RP2040 do.

If you are building a standalone device

ESP32 is a good choice if the device must work on its own: read sensors, manage heating, send data over Wi-Fi, or show a page in a browser.

Arduino is suitable for a simple prototype or educational project, but its limitations — RAM, Flash, weak ADC, and outdated USB — make it a poor choice for a final device.

  • ESP32 — Wi-Fi, sensors, web interface
  • Arduino — getting started and experiments
  • RP2040 — Klipper MCU, simple firmware
  • STM32 — printer boards, CAN, SWD
  • MCU in Klipper — how an MCU is integrated into a Klipper system