Arduino-Pico

Núcleo Arduino para Raspberry Pi Pico, para todas las placas RP2040 y RP2350
Se trata de un port de Arduino para el RP2040 (procesador Raspberry Pi Pico) y el RP2350 (procesador Raspberry Pi Pico 2). Utiliza el SDK básico de Raspberry Pi Pico y un toolchain personalizado GCC 14.3/Newlib 4.5, y es compatible con núcleos ARM y RISC-V.
Documentación
Consulta https://arduino-pico.readthedocs.io/en/latest/ junto con los ejemplos para obtener información de uso más detallada.
Contribuciones
Lee la Guía de contribución para obtener más información sobre cómo enviar pull requests y portar librerías o sketches a este núcleo.
Placas compatibles
- Raspberry Pi Pico
- Raspberry Pi Pico W
- Raspberry Pi Pico 2
- Raspberry Pi Pico 2W
- 0xCB Helios
- Adafruit Feather RP2040
- Adafruit Feather RP2040 SCORPIO
- Adafruit Floppsy RP2040
- Adafruit ItsyBitsy RP2040
- Adafruit KB2040
- Adafruit Macropad RP2040
- Adafruit Metro RP2040
- Adafruit Metro RP2350
- Adafruit QTPy RP2040
- Adafruit STEMMA Friend RP2040
- Adafruit Trinkey RP2040 QT
- Amken Bunny
- Amken Revelop
- Amken Revelop Plus
- Amken Revelop eS
- Architeuthis Flux Jumperless
- Architeuthis Flux Jumperless V5
- Arduino Nano RP2040 Connect
- ArtronShop RP2 Nano
- BIGTREETECH SKR-Pico
- Breadstick Raspberry
- BridgeTek IDM2040-7A
- BridgeTek IDM2040-43A
- Cytron IRIV IO Controller
- Cytron Maker Pi RP2040
- Cytron Maker Nano RP2040
- Cytron Maker Uno RP2040
- Cytron Motion 2350 Pro
- Datanoise PicoADK v1
- Datanoise PicoADK v2 (RP2350)
- Degz Suibo RP2040
- DeRuiLab FlyBoard2040 Core
- DFRobot Beetle RP2040
- ElectronicCats Hunter Cat NFC
- EVN Alpha
- ExtremeElectronics RC2040
- GeeekPi RP2040 Plus
- GroundStudio Marble Pico
- Invector Labs Challenger RP2040 WiFi
- Invector Labs Challenger RP2040 WiFi/BLE
- Invector Labs Challenger RP2040 WiFi6/BLE
- Invector Labs Challenger NB RP2040 WiFi
- Invector Labs Challenger RP2040 LTE
- Invector Labs Challenger RP2040 LoRa
- Invector Labs Challenger RP2040 SubGHz
- Invector Labs Challenger RP2040 SD/RTC
- Invector Labs Challenger RP2040 UWB
- Invector Labs Challenger+ RP2350 BConnect
- Invector Labs Challenger+ RP2350 WiFi/BLE
- Invector Labs Challenger+ RP2350 NB-IoT
- Invector Labs RPICO32
- Melopero Cookie RP2040
- Melopero Shake RP2040
- METE HOCA Akana R1
- Makerbase MKSTHR36
- Makerbase MKSTHR42
- MyMakers RP2040
- Neko Systems BL2040 Mini
- Newsan Archi
- nullbits Bit-C PRO
- Olimex Pico2XL
- Olimex Pico2XXL
- Olimex RP2040-Pico30
- PicoLume Transceiver
- Pimoroni PGA2040
- Pimoroni Pico Plus 2
- Pimoroni Pico Plus 2W
- Pimoroni Plasma2040
- Pimoroni Plasma2350
- Pimoroni Plasma2350W
- Pimoroni Servo2040
- Pimoroni Tiny2040
- Pimoroni Tiny2350
- Pintronix PinMax
- PCBCupid Glyph 2040
- PCBCupid Glyph Mini 2040
- RAKwireless RAK11300
- Redscorp RP2040-Eins
- Redscorp RP2040-ProMini
- Sea-Picro
- Seeed Indicator RP2040
- Seeed XIAO RP2040
- Seeed XIAO RP2040 Plus
- Seeed XIAO RP2350
- Silicognition RP2040-Shim
- Solder Party RP2040 Stamp
- Solder Party RP2350 Stamp
- Solder Party RP2350 Stamp XL
- Soldered Electronics NULA Ethernet W55RP20
- Soldered Electronics NULA RP2350
- SparkFun IoT RedBoard RP2350
- SparkFun MicroMod RP2040
- SparkFun ProMicro RP2040
- SparkFun ProMicro RP2350
- SparkFun Thing Plus RP2040
- SparkFun Thing Plus RP2350
- SparkFun XRP Controller
- uPesy RP2040 DevKit
- VCC-GND YD-RP2040
- Viyalab Mizu RP2040
- Waveshare RP2040 Zero
- Waveshare RP2040 One
- Waveshare RP2040 Plus
- Waveshare RP2040 LCD 0.96
- Waveshare RP2040 LCD 1.28
- Waveshare RP2040 LoRa
- Waveshare RP2040 Matrix
- Waveshare RP2040 PiZero
- Waveshare RP2350 Zero
- Waveshare RP2350 PiZero
- Waveshare RP2350 Plus
- Waveshare RP2350 Plus W
- Waveshare RP2350 LCD 0.96
- WIZnet W5100S-EVB-Pico
- WIZnet W5100S-EVB-Pico2
- WIZnet W5500-EVB-Pico
- WIZnet W5500-EVB-Pico2
- WIZnet W55RP20-EVB-Pico
- WIZnet W6300-EVB-Pico
- WIZnet W6300-EVB-Pico2
- WIZnet WizFi360-EVB-Pico
- Generic RP2040 (flash configurable, pines de E/S)
- Generic RP2350 (flash configurable, pines de E/S)
Características
- Adafruit TinyUSB Arduino (ratón USB, teclado, unidad flash, HID genérico, CDC Serial, MIDI, WebUSB, otros)
- Bluetooth en la PicoW (Clásico y BLE) con teclado, ratón, joystick y serial virtual
- Modo maestro HID Bluetooth Clásico y BLE (conecta a teclado, ratón o joystick BT)
- Emulación genérica de USB Serial, teclado, joystick y ratón de Arduino
- WiFi (Pico W, ESPHost basado en ESP32, Atmel WINC1500)
- Ethernet (WizNet W6300 cableado, WizNet W6100, WizNet W5500, WizNet W5100, ENC28J60)
- Cliente y servidor HTTP (WebServer)
- SSL/TLS/HTTPS
- Actualizaciones Over-the-Air (OTA)
- Sistemas de archivos (LittleFS y SD/SDFS)
- Soporte multinúcleo (setup1() y loop1())
- Soporte FreeRTOS SMP
- Overclocking y underclocking desde los menús
- digitalWrite/Read, shiftIn/Out, tone, analogWrite(PWM)/Read, temperature
- Entrada de audio estéreo analógico mediante DMA y el ADC integrado
- Salida de audio estéreo analógico mediante hardware PWM
- Fuente (salida) y sumidero (entrada) de audio Bluetooth A2DP en la PicoW
- Modo unidad USB para registradores de datos (SingleFileDrive, FatFSUSB)
- Periféricos: SPI maestro/esclavo, Wire(I2C) maestro/esclavo, UART dual, EEPROM emulada, entrada/salida de audio I2S, Servo
- Salida de printf (es decir, depuración) a través del USB serial
- Uso transparente de globales y heap de PSRAM (solo RP2350)
- Soporte ARM o RISC-V (Hazard3) para el RP2350
- Acceso a serial y sistema de archivos semihospedados
- Soporte de perfilado GPROF
Las máquinas de estado PIO (SMs) del RP2040 se utilizan para generar sin jitter:
- Servos
- Tonos
- Entrada I2S
- Salida I2S
- UARTs por software (puertos serie)
- SPIs por software
Notas específicas para Windows
Por favor, no utilices la versión de Windows Store de la aplicación Arduino, ya que tiene problemas para detectar las placas Pico conectadas. Usa la descarga directa del ejecutable (EXE) "Windows ZIP" o "Windows" desde https://arduino.cc y permite que instale cualquier controlador de dispositivo que sugiera. De lo contrario, es posible que la placa Pico no se detecte. Además, si estás probando el Arduino beta 2.0, instala previamente la versión 1.8 para asegurarte de que los controladores de dispositivo necesarios estén presentes. (Consulta #20 para más detalles).
Notas específicas para Linux
Instalar Arduino mediante flatpak (a menudo utilizado por las "tiendas de aplicaciones" en varias distribuciones de Linux) implicará que tiene acceso restringido al host. Esto puede hacer que las subidas fallen con mensajes de error como los siguientes:
Scanning for RP2040 devices
...
No drive to deploy.
Si te encuentras con esto, deberás instalar Arduino de otra manera o anular la función de sandboxing de flatpak usando el siguiente comando, y luego reiniciar Arduino.
flatpak override --user --filesystem=host:ro cc.arduino.IDE2
Instalación
Abre el IDE de Arduino y ve a Archivo->Preferencias.
En el diálogo que aparece, introduce la siguiente URL en el campo "URLs adicionales de Gestor de placas":
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

Pulsa OK para cerrar el diálogo.
Ve a Herramientas->Placas->Gestor de placas en el IDE
Escribe "pico" en el cuadro de búsqueda y selecciona "Añadir":