
arduino-pico v6.1.0
Raspberry Pi Pico Arduino core、すべてのRP2040およびRP2350ボード向け
Arduino-Pico
Raspberry Pi Pico Arduino コア(全 RP2040 および RP2350 ボード対応)
これは、Arduino を RP2040(Raspberry Pi Pico プロセッサ)および RP2350(Raspberry Pi Pico 2 プロセッサ)に移植したものです。ベアメタルの Raspberry Pi Pico SDK とカスタムの GCC 14.3/Newlib 4.5 ツールチェーンを使用し、ARM および RISC-V コアをサポートしています。
ドキュメント
より詳細な使用情報については、https://arduino-pico.readthedocs.io/en/latest/ とサンプルを参照してください。
コントリビュート
プルリクエストの提出や、このコアへのライブラリ・スケッチの移植についての詳細は、コントリビューティングガイド を参照してください。
対応ボード
- 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 (configurable flash, I/O pins)
- Generic RP2350 (configurable flash, I/O pins)
機能
- Adafruit TinyUSB Arduino(USB マウス、キーボード、フラッシュドライブ、汎用 HID、CDC シリアル、MIDI、WebUSB など)
- PicoW 上の Bluetooth(Classic および BLE)。キーボード、マウス、ジョイスティック、仮想シリアルに対応
- Bluetooth Classic および BLE HID マスターモード(BT キーボード、マウス、またはジョイスティックに接続)
- 汎用 Arduino USB シリアル、キーボード、ジョイスティック、マウスのエミュレーション
- WiFi(Pico W、ESP32 ベースの ESPHost、Atmel WINC1500)
- イーサネット(有線 WizNet W6300、WizNet W6100、WizNet W5500、WizNet W5100、ENC28J60)
- HTTP クライアントおよびサーバー(WebServer)
- SSL/TLS/HTTPS
- 無線(OTA)アップグレード
- ファイルシステム(LittleFS および SD/SDFS)
- マルチコア対応(setup1() と loop1())
- FreeRTOS SMP サポート
- メニューからのオーバークロック / アンダークロック
- digitalWrite/Read、shiftIn/Out、tone、analogWrite(PWM)/Read、temperature
- DMA と内蔵 ADC を使用したアナログステレオ音声入力
- PWM ハードウェアを使用したアナログステレオ音声出力
- PicoW 上の Bluetooth A2DP オーディオソース(出力)およびシンク(入力)
- データロガー向け USB ドライブモード(SingleFileDrive、FatFSUSB)
- ペリフェラル: SPI マスター/スレーブ、Wire(I2C) マスター/スレーブ、デュアル UART、エミュレート EEPROM、I2S オーディオ入出力、サーボ
- USB シリアル経由の printf(デバッグ)出力
- PSRAM グローバルおよびヒープの透過的な使用(RP2350 のみ)
- RP2350 の ARM または RISC-V(Hazard3)サポート
- セミホストシリアルおよびファイルシステムアクセス
- GPROF プロファイリングサポート
RP2040 の PIO ステートマシン(SM)は、次のジッタフリーな生成に使用されます:
- サーボ
- トーン
- I2S 入力
- I2S 出力
- ソフトウェア UART(シリアルポート)
- ソフトウェア SPI
Arduino ボードマネージャーでのインストール
Windows 固有の注意事項
実際の Arduino アプリケーションは Windows ストア版を使用しないでください。接続された Pico ボードの検出に問題があるためです。https://arduino.cc から直接「Windows ZIP」または通常の「Windows」実行ファイル(EXE)をダウンロードし、提案されたデバイスドライバをすべてインストールしてください。そうしないと、Pico ボードが検出されない場合があります。また、Arduino 2.0 ベータ版を試す場合は、必要なデバイスドライバが存在することを確認するために、事前にリリース 1.8 版をインストールしてください。(詳細は #20 を参照してください。)
Linux 固有の注意事項
flatpak を使用して Arduino をインストールする場合(さまざまな Linux ディストリビューションの「アプリストア」でよく使用されます)、ホストへのアクセスが制限されます。これにより、次のようなエラーメッセージが表示されてアップロードが失敗する可能性があります:
Scanning for RP2040 devices
...
No drive to deploy.
この問題が発生した場合は、Arduino を別の方法でインストールするか、次のコマンドを使用して flatpak のサンドボックス機能をオーバーライドしてから、Arduino を再起動してください。
flatpak override --user --filesystem=host:ro cc.arduino.IDE2
インストール
Arduino IDE を開き、File->Preferences に移動します。
表示されたダイアログで、「Additional Boards Manager URLs」フィールドに次の URL を入力します:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

OK をクリックしてダイアログを閉じます。
IDE で Tools->Boards->Board Manager に移動します。
検索ボックスに「pico」と入力し、「Add」を選択します:

GIT 経由でのインストール
Windows ユーザー: Windows で git を使用してインストールする前に、このリンク の指示を読んで従ってください。Win32 の長いパスが有効になっておらず、git がそれらを使用するように設定されていない場合、サブモジュールのクローン作成時にエラーが発生する可能性があります。
Linux または Mac で GIT 経由でインストールする場合(最新版の場合):
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
Windows の場合、Python がすでにインストールされている必要があり、git clone は別のパスで行います:
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
スケッチのアップロード
最初のスケッチをアップロードするには、Pico をコンピューターに接続する際に BOOTSEL ボタンを押したままにする必要があります。その後、アップロードボタンを押すと、スケッチが転送されて実行が開始されます。
arduino-pico コアには自動リセット機能があるため、最初のアップロード後はこの操作は必要ありません。Arduino の Tools->Port->Serial Port メニューに表示される適切なシリアルポートを一度選択してください(この設定は保持され、複数回のアップロードで変更する必要はありません)。この選択により、自動リセットツールがリセットするデバイスを識別できます。その後、アップロードボタンを押すと、スケッチがアップロードされて実行されます。
場合によっては、Pico がハードハングを起こし、USB ポートが自動リセット要求に応答しないことがあります。その場合は、最初の手順と同様に、BOOTSEL ボタンを押したまま Pico を接続して ROM ブートローダーに入ってください。
ファイルシステムイメージのアップロード
Pico のオンボードフラッシュファイルシステムである LittleFS を使用すると、スケッチディレクトリからファイルシステムイメージをアップロードして、スケッチで使用できます。必要なプラグインを次からダウンロードしてください:
インストールするには、次の指示に従ってください:
詳細な使用方法については、次で入手できる ESP8266 リポジトリのドキュメント(SPIFFS 関連の注意事項は無視)を確認してください:
Picoprobe/Debugprobe を使用したスケッチのアップロード
Raspberry Pi Picoprobe を構築した場合は、OpenOCD を使用してスケッチのアップロードと GDB によるデバッグを処理できます。
Windows では、ローカルの管理者ユーザーが Picoprobe ポートに自動的にアクセスできるはずですが、Linux では udev にデバイスを認識させ、通常のユーザーがアクセスできるように設定する必要があります。
Ubuntu(および udev を使用する他の OS)で Picoprobe へのユーザーレベルのアクセスを設定するには:
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
最初の行は、Picoprobe の USB ベンダー ID とプロダクト ID に一致するデバイスファイルを /dev に作成し、グローバルな読み取り+書き込み権限を有効にします。2 行目は udev にこの新しいルールをロードさせます。3 行目は、カーネルに「デバイス変更」イベントを生成させ、新しい udev ルールを実行させます。
何らかの理由でデバイスファイルが表示されない場合は、USB 接続を手動で抜き差ししてもう一度確認してください。デバイスファイルがまだ存在しない場合は、dmesg の出力が有用な診断情報を提供することがあります。
Picoprobe の権限が正しく設定されたら、Tools メニューでボード「Raspberry Pi Pico (Picoprobe)」を選択し、通常どおりアップロードします。
Picoprobe、OpenOCD、GDB を使用したデバッグ
インストールされたツールには、OpenOCD(pqt-openocd ディレクトリ内)と GDB(pqt-gcc ディレクトリ内)のバージョンが含まれています。これらを使用して、Raspberry Pi 財団の Pico Getting Started マニュアルに記載されているとおり、インタラクティブウィンドウで GDB を実行できます。git インストールディレクトリから、コマンドライン ./system/openocd/bin/openocd -f ./lib/rp2040/picoprobe_cmsis_dap.tcl または ./system/openocd/bin/openocd -f ./lib/rp2350/picoprobe_cmsis_dap.tcl を使用してください。
ライセンスとクレジット
- Arduino IDE と ArduinoCore-API は Arduino チームによって開発・保守されています。IDE は GPL ライセンスです。
- RP2040 GCC ベースのツールチェーン は GPL ライセンスです。
- Pico-SDK は Raspberry Pi (Trading) Ltd によるもので、BSD 3-Clause ライセンスです。
- Arduino-Pico のコアファイルは LGPL ライセンスです。
- LittleFS ライブラリは ARM Limited によって作成され、BSD 3-clause ライセンス で公開されています。
- UF2CONV.PY は Microsoft Corporation によるもので、MIT ライセンスです。
- ESP8266 Arduino Core から取られたネットワークおよびファイルシステムコードは、LGPL ライセンスです。
- AP ホストモード用の DHCP サーバーは Micropython Project によるもので、MIT License で配布されています。
- FreeRTOS は Amazon.com, Inc. またはその関連会社の著作物であり、MIT ライセンスで配布されています。
- lwIP は Swedish Institute of Computer Science の著作物であり、BSD ライセンスです。
- BearSSL ライブラリは Thomas Pornin によって作成され、MIT License で配布されています。
- UZLib は Copyright (c) 2003 Joergen Ibsen であり、zlib ライセンスで配布されています。
- LEAmDNS は複数の著者による著作物であり、MIT ライセンスで配布されています。
- http-parser は Joyent, Inc. およびその他の Node コントリビューターの著作物です。
- WebServer コードは ESP32 WebServer から変更されたもので、Copyright (c) 2015 Ivan Grokhotkov およびその他の者の著作物です。
- Xoshiro-cpp は Copyright (c) 2020 Ryo Suzuki であり、MIT ライセンスで配布されています。
- FatFS 低レベルファイルシステム コードは Copyright (C) 2024, ChaN, all rights reserved です。
- Espressif フォーク版 PSRAM 用 TLSF メモリマネージャ(オリジナル は Matthew Conte による)は Matthew Conte の著作物であり、MIT ライセンスです。
- ESPHost ライブラリ は、そのメンテナーによって LGPL ライセンスで提供されています。
-Earle F. Philhower, III
[email protected]