🛠 Flasher MicroPython sur une carte RP2350 générique et faire clignoter la première LED
Objetivos
El RP2350 es el segundo microcontrolador de Raspberry Pi (anunciado el 8 de agosto de 2024, el chip cuesta desde 0,80 $ en volumen) y equipa una galaxia de tarjetas «genéricas»: Seeed XIAO RP2350, Pimoroni Tiny2350/PicoPlus2, SparkFun Pro Micro RP2350, Stamp de Solder Party, Waveshare Core/Zero… Todas comparten el mismo método de programación: el boot ROM inmutable espera que se mantenga pulsado el botón BOOTSEL al conectar para exponer una unidad USB RPI-RP2 en la que se deposita un archivo UF2. El puerto oficial MicroPython rp2 soporta el RP2350 (documentación oficial). Al final de este tutorial, tu tarjeta hablará en Python.
Material
- 1 × tarjeta RP2350 genérica (formato Pico, Pro Micro, XIAO… da igual aquí)
- 1 × cable USB de datos (muchas tarjetas son USB-C)
- Un PC con Thonny (recomendado: gestiona el modo UF2 solo)
- El firmware adecuado: en micropython.org/download/RP2, elige el
.uf2RP2350 (¡no RP2040!)
Pasos completos
- Modo BOOTSEL: desconecta la tarjeta, mantén pulsado el botón BOOT (a veces marcado BOOTSEL o SET), vuelve a conectar el USB y suelta. Aparece la unidad
RPI-RP2. - Arrastra el
.uf2RP2350 a la unidad. El LED parpadea, la unidad desaparece: la tarjeta se reinicia con MicroPython. - En Thonny: menú inferior derecho → «Intérprete Python» → MicroPython (RP2350) (o «Generic USB CDC»), puerto serie automático. El REPL muestra:
MicroPython ...; RP2 port with board generic
>>> import machine, sys
>>> sys.platform
'rp2'
- Primer programa — en las tarjetas con formato Pico, el LED de usuario está en GP25:
# main.py — clignotement GP25 (format Pico 2)
from machine import Pin
import time
led = Pin(25, Pin.OUT)
while True:
led.toggle
time.sleep_ms(250)
En XIAO RP2350 o Tiny2350, el LED puede estar en otro lugar (a menudo RGB WS2812): consulta la ficha del fabricante — es EL dato a verificar.
Verificación esperada
El LED parpadea a 2 Hz en cuanto la tarjeta está alimentada (el archivo main.py se ejecuta al arrancar). machine.freq devuelve 150000000: el RP2350 funciona a 150 MHz nominales, frente a los 125 MHz por defecto del RP2040 — atención, es *inferior* a los 200 MHz overclockeables del RP2040, no asumas una frecuencia superior al migrar código.
Errores frecuentes
- UF2 RP2040 en lugar de RP2350: la tarjeta se reinicia pero el firmware no corresponde al chip — el REPL puede no responder nunca.
- Botón BOOT soltado demasiado pronto o cable solo de alimentación (sin datos): no aparece la unidad
RPI-RP2. Prueba otro cable. - Buscar un LED en GP25 de una tarjeta XIAO/Pro Micro: las tarjetas genéricas no tienen todas el LED de la Pico; algunas no tienen ninguno — usa un multímetro entre el pin sospechoso y GND.
- La unidad nunca aparece: mantén pulsado BOOT antes de conectar, no después; en algunas tarjetas, un cortocircuito RUN/ST-PC→GND sustituye al botón.
- «device busy» en Thonny: cierra el monitor serie abierto en otro sitio (VS Code,
picocom), luego Ctrl-C en el REPL. - Alimentación por un hub USB caprichoso: el boot ROM es exigente con los 5 V al conectar, prueba un puerto directo.
Otros tutoriales para esta placa
- Console série sur RP2350 : USB CDC natif et UART0 de secours
- Lire l'ADC 12 bits et le capteur de température interne du RP2350
- Exploiter les 3 blocs PIO et 12 machines d'état du RP2350 (avec IRQ dédiées)
- Pico SDK 2.x sur une carte RP2350 générique : CMake, board header et PICO_BOARD
- Basculer les cœurs de Arm Cortex-M33 à Hazard3 RISC-V avec ARCHSEL
- Secure boot et TrustZone-M sur RP2350 : signer son firmware sans se faire avoir
Ejemplos de código para esta placa
clignotante.pyPythonbouton-interruption.pyPythonpwm-servo.pyPythonlecture-adc.pyPythonneopixel.pyPythonoled-i2c.pyPython