Контроллер RP2040¶
RP2040 - это микроконтроллер Raspberry Pi. Самая известная плата на нём - Raspberry Pi Pico.
Для самодельной периферии вокруг 3D-принтера RP2040 - один из самых практичных вариантов: он дешёвый, хорошо документирован, работает с 3.3V логикой, удобно прошивается по USB и хорошо подходит как дополнительная MCU для Klipper.
Где RP2040 полезен¶
RP2040 хорошо подходит для:
- дополнительной платы ввода-вывода для Klipper;
- контроллера вентиляторов через MOSFET/драйверы;
- чтения термисторов и простых аналоговых датчиков;
- подключения OLED по I2C;
- подключения RFID/NFC по SPI или UART;
- управления сервоприводом сигналом PWM;
- простой автономной платы без Wi-Fi;
- тестового стенда для датчиков и интерфейсов.
Если нужна сеть из коробки, проще смотреть на ESP32 или Pico W. Если нужна дополнительная проводная MCU для Klipper, RP2040 часто удобнее.
Почему Raspberry Pi Pico удобна¶
Raspberry Pi Pico - это готовая dev board на RP2040. На ней уже есть USB, flash-память, стабилизатор питания, кнопка BOOTSEL и выведенные пины.
Плюсы Pico:
- низкая цена;
- нормальная документация и распиновка;
- USB для прошивки и связи;
- много GPIO;
3.3Vлогика;- 2 UART, 2 SPI, 2 I2C;
- 16 PWM-каналов;
- 3 ADC-входа на выведенных пинах Pico;
- PIO для нестандартных интерфейсов;
- удобная прошивка UF2 через USB mass storage.
Для первого проекта лучше взять Pico или Pico H с распаянными пинами, чем голый RP2040-чип. Голый чип требует собственной платы, flash-памяти, питания, USB, разводки и проверки.
BOOTSEL и UF2¶
Одна из сильных сторон Pico - простой режим прошивки:
- Зажать кнопку
BOOTSEL. - Подключить USB к компьютеру.
- Плата появится как USB-накопитель.
- Скопировать файл прошивки
.uf2. - Плата перезагрузится с новой прошивкой.
Это удобно для MicroPython, CircuitPython, C/C++ проектов и Klipper firmware. Новичку такой способ обычно понятнее, чем ST-Link, DFU или отдельный USB-UART.
RP2040 и Klipper¶
RP2040 - хороший кандидат для дополнительной MCU в Klipper.
Типовая схема:

Источник: Wikimedia Commons, Phiarc, CC BY-SA 4.0
Смысл такой:
- Linux-хост с Klipper остаётся главным;
- Pico/RP2040 прошивается Klipper MCU firmware;
- в
printer.cfgдобавляется основная или дополнительная секция[mcu]; - пины RP2040 можно использовать для вентиляторов, датчиков, PWM и другой периферии;
- силовые нагрузки всё равно подключаются через MOSFET, драйвер, реле или SSR.
Это полезно, когда нужно вынести часть периферии в отдельный блок: например вентиляторы, датчики камеры, фильтр, подсветку, кнопку, концевик или сервисные выходы.
GPIO и логика 3.3V¶
RP2040 работает с 3.3V логикой. Это значит:
- не подавай
5Vна GPIO; - для
5Vмодулей может понадобиться преобразователь уровней; - I2C подтяжки должны быть к
3.3V; - GPIO не должен питать нагрузку напрямую;
- для вентилятора, LED-ленты, реле или нагревателя нужен внешний ключ/драйвер.
Если модуль "Arduino-compatible", это не значит, что он безопасен для RP2040. Нужно проверять уровни входов и подтяжки.
Питание¶
Pico обычно питается от USB или через пин VSYS. На плате есть стабилизатор для питания микроконтроллера.
Практические правила:
- не питай моторы, сервоприводы и реле от
3V3пина Pico; - для нагрузок используй отдельное питание;
- соединяй общий GND с низковольтными драйверами;
- проверяй, откуда приходит питание на
VSYSи USB; - учитывай ток внешних модулей, а не только ток самой Pico.
Если при старте сервопривода или вентилятора Pico перезагружается, почти всегда проблема в питании, земле или помехах.
ADC на Pico¶
У Pico есть ADC-входы, которые можно использовать для простых аналоговых задач:
- термистор через делитель;
- потенциометр;
- датчик освещённости;
- измерение низкого напряжения через делитель.
Ограничения:
- вход ADC не должен превышать допустимое напряжение GPIO;
- для измерения
12Vили24Vнужен делитель и защита; - термистор требует правильного резистора, таблицы/модели и механического контакта;
- ADC не заменяет мультиметр или промышленный измеритель.
Для нагревателей важно помнить: ADC только читает датчик. Безопасность нагрева обеспечивают силовой ключ, прошивочные лимиты, предохранитель и независимая термозащита.
PIO простыми словами¶
PIO - это Programmable I/O. У RP2040 есть маленькие программируемые блоки, которые могут генерировать или читать нестандартные сигналы без постоянной нагрузки на основной код.
Новичку не обязательно начинать с PIO. Но это одна из причин, почему RP2040 любят для интерфейсов, таймингов и нестандартной периферии.
Для простого iDryer-подобного устройства чаще хватит обычных GPIO, PWM, I2C, SPI, UART и ADC.
Pico, Pico W и Pico 2¶
Важно не путать платы:
- Pico / Pico H - классическая плата на RP2040 без Wi-Fi;
- Pico W / Pico WH - RP2040 с Wi-Fi/Bluetooth-модулем на плате;
- Pico 2 / Pico 2 W - новое поколение на RP2350, это уже не RP2040.
Если в статье или проекте написано RP2040, обычно речь про Pico первого поколения или совместимую плату. Pico 2 похожа по идее, но это другой микроконтроллер, и совместимость прошивки/пинов нужно проверять отдельно.
Что проверить перед покупкой¶
Перед покупкой платы на RP2040 проверь:
- это оригинальная Pico, Pico W или клон;
- есть ли распаянные пины;
- есть ли USB-разъём нужного типа;
- есть ли нормальная распиновка;
- какие GPIO доступны;
- нужен ли Wi-Fi;
- подходит ли плата для Klipper firmware;
- как будет питаться плата и нагрузки;
- хватает ли ADC/PWM/I2C/SPI/UART для задачи;
- есть ли место в корпусе и крепёж.
Если планируется Klipper MCU, заранее проверь существующие инструкции для конкретной платы и способ прошивки.
Типовые ошибки¶
- подают
5Vна GPIO RP2040; - питают сервопривод или реле от
3V3; - забывают общий GND с MOSFET/драйвером;
- считают Pico W обычной Pico и не учитывают занятые ресурсы/питание Wi-Fi;
- покупают Pico 2, ожидая точного поведения RP2040;
- измеряют
12V/24Vна ADC без делителя; - подключают нагреватель напрямую к пину;
- выбирают RP2040 для Wi-Fi задачи, хотя обычная Pico не имеет Wi-Fi;
- не проверяют распиновку конкретного клона.
Главное¶
RP2040 и Raspberry Pi Pico - сильный выбор для проводной самодельной периферии и дополнительной MCU в Klipper. Плата дешёвая, понятная, хорошо документированная и удобная в прошивке.
Но RP2040 - это 3.3V микроконтроллер, а не силовой контроллер. Нагрузки подключаются через драйверы, MOSFET, реле или SSR. Для Wi-Fi задач нужно брать Pico W или другой сетевой контроллер.
Материалы по теме¶
- Raspberry Pi: RP2040 specifications - официальные характеристики RP2040: CPU, SRAM, UART/SPI/I2C, PWM, USB и PIO.
- Raspberry Pi Documentation: Pico-series microcontrollers - различия Pico, Pico W, Pico 2, GPIO, ADC, PWM и варианты плат.
- RP2040 Datasheet - подробное техническое описание микроконтроллера, периферии, PIO, GPIO и ADC.
- Raspberry Pi Pico Datasheet - документация именно по плате Pico: питание, USB, выведенные GPIO и ограничения платы.
- Raspberry Pi Documentation: C/C++ SDK - Your First Binaries - официальный пример BOOTSEL, USB mass storage
RPI-RP2и копирования UF2 на Pico. - Klipper Configuration Reference - контекст поддержки RP2040 в Klipper и настройки периферии вроде I2C.