Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
arduino-pico — Raspberry Pi Pico Arduino core, per tutte le schede RP2040 e RP2350 | Kitploit
Strumenti/GitHubGitHub/earlephilhower/arduino-pico
Sicurezza Sistemi EmbeddedSicurezza BluetoothSicurezza IoTSicurezza WirelessHacking HardwareSicurezza HardwareApprendimento e FormazioneAnalisi del Firmware
GitHubearlephilhower/arduino-pico

arduino-pico

Raspberry Pi Pico Arduino core, per tutte le schede RP2040 e RP2350

Vedi Repository
2.8k5602 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Arduino-Pico

Release Gitter

Core Arduino per Raspberry Pi Pico, per tutte le schede RP2040 e RP2350

Questo è un porting di Arduino per RP2040 (processore Raspberry Pi Pico) e RP2350 (processore Raspberry Pi Pico 2). Utilizza il bare Raspberry Pi Pico SDK e una toolchain personalizzata GCC 14.3/Newlib 4.5 e supporta core ARM e RISC-V.

Documentazione

Vedi https://arduino-pico.readthedocs.io/en/latest/ insieme agli esempi per informazioni più dettagliate sull'uso.

Come contribuire

Leggi la Guida per contribuire per maggiori informazioni su come inviare pull request e portare librerie o sketch su questo core.

Schede supportate

  • 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
  • RP2040 generico (flash configurabile, pin I/O)
  • RP2350 generico (flash configurabile, pin I/O)

Caratteristiche

  • Adafruit TinyUSB Arduino (mouse USB, tastiera, chiavetta USB, HID generico, seriale CDC, MIDI, WebUSB, altro)
  • Bluetooth su PicoW (Classic e BLE) con tastiera, mouse, joystick e seriale virtuale
  • Modalità master HID Bluetooth Classic e BLE (collegamento a tastiera, mouse o joystick BT)
  • Emulazione seriale USB, tastiera, joystick e mouse Arduino generica
  • WiFi (Pico W, ESPHost basato su ESP32, Atmel WINC1500)
  • Ethernet (cablate WizNet W6300, WizNet W6100, WizNet W5500, WizNet W5100, ENC28J60)
  • Client e server HTTP (WebServer)
  • SSL/TLS/HTTPS
  • Aggiornamenti Over-the-Air (OTA)
  • Filesystem (LittleFS e SD/SDFS)
  • Supporto multi-core (setup1() e loop1())
  • Supporto FreeRTOS SMP
  • Overclock e underclock dai menu
  • digitalWrite/Read, shiftIn/Out, tone, analogWrite(PWM)/Read, temperatura
  • Ingresso audio stereo analogico tramite DMA e ADC integrato
  • Uscita audio stereo analogica tramite hardware PWM
  • Sorgente audio A2DP Bluetooth (uscita) e sink (ingresso) su PicoW
  • Modalità unità USB per logger dati (SingleFileDrive, FatFSUSB)
  • Periferiche: SPI master/slave, Wire(I2C) master/slave, doppia UART, EEPROM emulata, ingresso/uscita audio I2S, Servo
  • Output printf (cioè debug) su seriale USB
  • Utilizzo trasparente di globali e heap PSRAM (solo RP2350)
  • Supporto ARM o RISC-V (Hazard3) per RP2350
  • Accesso seriale e filesystem semihostato
  • Supporto profiling GPROF

Le macchine a stati PIO (SM) dell'RP2040 sono utilizzate per generare senza jitter:

  • Servocomandi
  • Toni
  • Ingresso I2S
  • Uscita I2S
  • UART software (porte seriali)
  • SPI software

Installazione tramite Arduino Boards Manager

Note specifiche per Windows

Si prega di non utilizzare la versione di Windows Store dell'applicazione Arduino perché ha problemi nel rilevare le schede Pico collegate. Utilizzare il download "Windows ZIP" o l'eseguibile "Windows" (EXE) direttamente da https://arduino.cc e consentire l'installazione di eventuali driver di dispositivo suggeriti. Altrimenti la scheda Pico potrebbe non essere rilevata. Inoltre, se si prova la beta 2.0 di Arduino, installare prima la versione 1.8 per garantire la presenza dei driver di dispositivo necessari. (Vedere #20 per maggiori dettagli.)

Note specifiche per Linux

Installare Arduino tramite flatpak (spesso usato dagli 'App Store' in varie distribuzioni Linux) significa che avrà accesso limitato all'host. Questo potrebbe causare il fallimento dei caricamenti con messaggi di errore come il seguente:

root@kitploit:~
Scanning for RP2040 devices
...
No drive to deploy.

Se si verifica questo, è necessario installare Arduino in modo diverso, oppure sovrascrivere la funzione di sandboxing flatpak utilizzando il seguente comando, quindi riavviare Arduino.

root@kitploit:~
flatpak override --user --filesystem=host:ro cc.arduino.IDE2

Installazione

Apri l'IDE Arduino e vai su File->Preferenze.

Nella finestra di dialogo che appare, inserisci il seguente URL nel campo 'URL aggiuntivi per il Boards Manager':

https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

image

Premi OK per chiudere la finestra.

Vai su Strumenti->Scheda->Board Manager nell'IDE

Digita "pico" nella casella di ricerca e seleziona "Aggiungi":

image

Installazione tramite GIT

Utenti Windows: Prima di installare tramite git su Windows, leggi e segui le istruzioni in questo link. Se i percorsi lunghi Win32 non sono abilitati e git non è configurato per usarli, potrebbero verificarsi errori durante il tentativo di clonare i sottomoduli.

Per installare tramite GIT (per le versioni più recenti e migliori) su Linux o Mac:

root@kitploit:~
mkdir -p ~/Arduino/hardware/pico
git clone https://github.com/earlephilhower/arduino-pico.git ~/Arduino/hardware/pico/rp2040
cd ~/Arduino/hardware/pico/rp2040
git submodule update --init --recursive
cd tools
python3 ./get.py

Per Windows, è necessario avere Python già installato e clonare git in un percorso diverso:

root@kitploit:~
mkdir %USERPROFILE%\Documents\Arduino\hardware\pico
git clone https://github.com/earlephilhower/arduino-pico.git %USERPROFILE%\Documents\Arduino\hardware\pico\rp2040
cd %USERPROFILE%\Documents\Arduino\hardware\pico\rp2040
git submodule update --init --recursive
cd tools
python .\get.py

Caricamento degli Sketch

Per caricare il tuo primo sketch, dovrai tenere premuto il pulsante BOOTSEL mentre colleghi il Pico al computer. Quindi premi il pulsante di caricamento e lo sketch dovrebbe essere trasferito e iniziare a funzionare.

Dopo il primo caricamento, questo non dovrebbe essere necessario poiché il core arduino-pico ha il supporto per il reset automatico. Seleziona una volta la porta seriale appropriata mostrata nel menu Arduino Strumenti->Porta->Porta Seriale (questa impostazione rimarrà e non dovrà essere toccata per caricamenti multipli). Questa selezione consente allo strumento di reset automatico di identificare il dispositivo corretto da resettare. Quindi premi il pulsante di caricamento e il tuo sketch dovrebbe caricarsi ed eseguirsi.

In alcuni casi il Pico potrebbe bloccarsi e la sua porta USB non risponderà alla richiesta di reset automatico. Se ciò accade, segui la procedura iniziale tenendo premuto il pulsante BOOTSEL mentre colleghi il Pico per entrare nel bootloader ROM.

Caricamento di Immagini del Filesystem

Il filesystem flash di bordo per il Pico, LittleFS, consente di caricare un'immagine del filesystem dalla directory dello sketch per l'uso da parte dello sketch. Scarica il plugin necessario da

  • https://github.com/earlephilhower/arduino-pico-littlefs-plugin/releases

Per installare, segui le istruzioni in

  • https://github.com/earlephilhower/arduino-pico-littlefs-plugin/blob/master/README.md

Per informazioni dettagliate sull'uso, controlla la documentazione del repository ESP8266 (ignora le note relative a SPIFFS) disponibile su

  • https://arduino-pico.readthedocs.io/en/latest/fs.html

Caricamento di Sketch con Picoprobe/Debugprobe

Se hai costruito un Raspberry Pi Picoprobe, puoi utilizzare OpenOCD per gestire i caricamenti degli sketch e per il debugging con GDB.

Su Windows un utente amministratore locale dovrebbe essere in grado di accedere automaticamente alla porta Picoprobe, ma su Linux è necessario informare udev del dispositivo e consentire l'accesso agli utenti normali.

Per configurare l'accesso a livello utente ai Picoprobes su Ubuntu (e altri sistemi operativi che usano udev):

root@kitploit:~
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", MODE="660", GROUP-"plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000a", MODE="660", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000f", MODE="660", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-PicoProbe.rules
sudo udevadm control --reload
sudo udevadm trigger -w -s usb

La prima riga crea un file di dispositivo in /dev corrispondente al vendor USB e al product ID del Picoprobe, e abilita i permessi globali di lettura+scrittura. La seconda riga fa sì che udev carichi questa nuova regola. La terza riga richiede al kernel di generare eventi 'device change' che faranno eseguire la nostra nuova regola udev.

Se per qualche motivo il file di dispositivo non appare, scollega e ricollega manualmente la connessione USB e ricontrolla. L'output di dmesg può rivelare diagnostica utile se il file di dispositivo rimane assente.

Una volta impostati correttamente i permessi Picoprobe, seleziona la scheda 'Raspberry Pi Pico (Picoprobe)' nel menu Strumenti e carica come di consueto.

Debugging con Picoprobe, OpenOCD e GDB

Gli strumenti installati includono una versione di OpenOCD (nella directory pqt-openocd) e GDB (nella directory pqt-gcc). Questi possono essere utilizzati per eseguire GDB in una finestra interattiva come documentato nei manuali Pico Getting Started della Raspberry Pi Foundation. Utilizza la riga di comando ./system/openocd/bin/openocd -f ./lib/rp2040/picoprobe_cmsis_dap.tcl o ./system/openocd/bin/openocd -f ./lib/rp2350/picoprobe_cmsis_dap.tcl dalla directory di installazione git.

Licenze e Crediti

  • L'IDE Arduino e ArduinoCore-API sono sviluppati e mantenuti dal team Arduino. L'IDE è concesso in licenza GPL.
  • La toolchain basata su GCC per RP2040 è concessa in licenza GPL.
  • Il Pico-SDK è di Raspberry Pi (Trading) Ltd e concesso in licenza BSD 3-Clause.
  • I file core di Arduino-Pico sono concessi in licenza LGPL.
  • La libreria LittleFS scritta da ARM Limited e rilasciata sotto licenza BSD 3-clause.
  • UF2CONV.PY è di Microsoft Corporation e concesso in licenza MIT.
  • Codice di rete e filesystem preso dal ESP8266 Arduino Core e concesso in licenza LGPL.
  • Server DHCP per la modalità host AP dal Progetto Micropython, distribuito sotto licenza MIT.
  • FreeRTOS è copyright Amazon.com, Inc. o sue affiliate, e distribuito sotto licenza MIT.
  • lwIP è (c) dello Swedish Institute of Computer Science e concesso in licenza BSD.
  • La libreria BearSSL scritta da Thomas Pornin, è distribuita sotto licenza MIT.
  • UZLib è copyright (c) 2003 Joergen Ibsen e distribuito sotto licenza zlib.
  • LEAmDNS è copyright di più autori e distribuito sotto licenza MIT.
  • http-parser è copyright Joyent, Inc. e altri contributori di Node.
  • Il codice WebServer modificato dal ESP32 WebServer ed è copyright (c) 2015 Ivan Grokhotkov e altri.
  • Xoshiro-cpp è copyright (c) 2020 Ryo Suzuki e distribuito sotto licenza MIT.

-Earle F. Philhower, III
[email protected]

Scarica lo strumento
  • Il codice del filesystem a basso livello FatFS è Copyright (C) 2024, ChaN, tutti i diritti riservati.
  • Il gestore di memoria TLSF per PSRAM dal fork Espressif dell'originale di Matthew Conte è copyright Matthew Conte e concesso in licenza MIT.
  • La libreria ESPHost è concessa in licenza LGPL dai suoi maintainer.