デバッグプローブの接続方法とプログラム書き込み (Raspberry Pi Pico&C/C++ SDK)

デバッグプローブをラズパイピコに接続する方法と、プログラムを書き込む方法について解説しています。デバッグプローブを使うことで、迅速なプログラム書き込みや動作検証が可能になるので、本格的な開発をする場合におすすめです。手持ちのPicoにファームウェアを書き込んでデバッグプローブとして使う方法も解説しました。

更新日 : 2025年3月12日

デバッグプローブとは

Raspberry Pi Picoシリーズは、USBケーブル1本でPCと接続するだけで動作可能です。一方で、デバッグプローブと呼ばれる機器を経由してPCとPicoを接続することもできます。

デバッグプローブをPicoに接続している様子

デバッグプローブとPicoはSWDとUARTという2つのインターフェスで接続します。

SWDはマイコンボードのデバッグ用に定められた通信仕様で、以下のような機能があります。

  • プログラムの書き込み (Picoを書き込み待ちにするためにリセットやスイッチ操作は不要です)
  • ブレークポイントの設定、プログラムのステップ実行
  • レジスター、RAM、フラッシュのデータを読み出し、書き換え

UARTは、Picoから動作ログや変数の値などをPCに送信し、シリアルモニターで確認することができます。UART通信はUSB接続でも可能ですが、USB接続だとプログラム書き換えのたびに切断されることがあり、手間がかかります。

デバッグプローブはスイッチサイエンス秋月電子通商で購入できます。また、余っているPicoがあればデバッグプローブとして利用することもできます。

SWDを接続

まず、接続先のPicoのDEBUG端子の形状を確認しましょう。

SH端子搭載Picoの場合

以下のようなSHコネクターのデバッグ端子の場合は、デバッグプローブに同梱されている両端がSHコネクターのケーブルを利用します。

SHコネクター搭載のPico H
両端がSHコネクターのケーブル

ケーブルの片方をPicoに接続します。

コネクター未搭載の場合

コネクター未搭載の場合は、以下のようにDEBUG端子にピンヘッダをはんだ付けしておきます。

PicoのDEBUG端子にピンヘッダをはんだ付け

以下のような、片側がSHコネクター、反対側がメスのコネクターを利用します。(デバッグプローブに同梱されています)

DEBUGポートのピン配置は、基板の上から見て左からSWCLK、GND、SWDIOとなっています。左から順に色のケーブルを接続してください。

接続例
端子左 (SWCLK)中央端子 (GND)右端子 (SWDIO)
赤ケーブルを接続黒ケーブルを接続黄ケーブルを接続

デバッグプローブ側は、上から見て右のコネクターにケーブルを接続します。

UARTを接続

片側がオスコネクターとなっているケーブルとブレッドボードを使用すると接続しやすいです。

片側がオスのピンヘッダのケーブル

デフォルトではPicoのピン1と2のUART0を使用してデバッグプローブとUART通信するようになっています。以下のように接続します。

ピン機能接続
1UART0 TX黄ケーブル(RX)を接続
2UART0 RX赤ケーブル(TX)を接続
3GND黒ケーブルを接続
UART接続例

UART0やピン1、2を他の用途に使用する場合などは、別のUART、ピンを使って通信することも可能です。その場合は、使用するピンに接続した上で、CMakeLists.txtかプログラム上で使用するUARTとピンを指定する必要があります。

デバッグプローブ側は、上から見て左のコネクターにケーブルを接続します。




PC、電源の接続

デバッグプローブはPCのUSBポートに接続し、Picoは電源へ接続します。デバッグプローブ経由でプログラム書き込みとUART通信できるので、PicoはUSB電源アダプターなどに接続しても良いですし、PCのUSBポートから給電してもOKです。

プログラム書き込み

CMakeとコンパイルは通常通り行っておきます。

デバッグプローブからプログラムを書き込むには、VS CodeのPico拡張機能メニューの「Flash Project (SWD」をクリックします。特にスイッチ操作などをせずにプログラムが書き込まれ、その後実行されます。

デバッグプローブのファームウェア書き換え

実はデバッグプローブはPicoと同じRP2040マイコンで動作しており、プログラム(ファームウェア)が公開されています。そのため、Picoと同じ方法でプログラムを書き換えることが可能です。

古いデバッグプローブの場合、OpenOCD(PC側の通信ソフト)のバージョンによっては使用できないことがあるので、新しいファームウェアを書き込むと使用できるようになります。

また、手持ちの余っているPicoにファームウェアを書き込むことでデバッグプローブとして使うこともできます。

ファームウェアを書き換えるには、まず、こちらの過去のリリース一覧から「debugprobe.uf2」というファイル名のものをダウンロードします。

次に、デバッグプローブの蓋を開け、白スイッチを押した状態でPCとUSB接続して電源を投入します。すると、一般的なUSBメモリーのようにエクスプローラーやファイルマネージャーで認識されるので、ダウンロードしたuf2ファイルをドラッグアンドドロップして書き込みます。

手持ちのPicoをデバッグプローブとして利用する

実はデバッグプローブはPicoと同じRP2040マイコンで動作しており、手持ちのPicoにファームウェアを書き込むことでデバッグプローブとして利用することが可能です。開発用のPicoとは別にもう1台Pico基板が必要です。

まずは上記の「デバッグプローブのファームウェア書き換え」と同様の手順でファームウェアをダウンロードし、デバッグプローブとして使用するPicoに書き込みます。PicoやPico WなどのRP2040マイコンを使用している製品は「debugprobe_on_pico.uf2」、Pico2やPico2WなどのRP2350マイコンを使用している製品は「debugprobe_on_pico2.uf2」ファイルをダウンロードして書き込んでください。

デバッグプローブとして使うPicoは、下表のGPIOがSWD、UART通信に使われます。

GPIO用途
GP2SWCLK
GP3SWDIO
GP4UART TX
GP5UART RX

そのため、接続は以下のようにします。なお、右の開発用のPicoにもUSB端子から電源を供給してもOKです。その場合は赤い電源ラインの配線は不要で、GNDが2基板間で導通していれば良いです。

Getting started with Raspberry Pi Pico-seriesより引用



まとめ

デバッグプローブを接続してPicoにプログラムを書き込む方法は以上です。デバッグプローブを使うことで、スイッチ操作やリセットせずともプログラムを書き込むことができるので、迅速な開発が可能になります。UARTを使ってPCのシリアルモニターにログを出力する方法の記事も参考にしてみてください。本記事では触れませんでしたが、デバッグプローブには書き込み以外にも、ブレークポイントを追加したステップ実行や、レジスター、フラッシュ、RAMのデータ確認、書き換えなども可能です。

シリアルモニターにUART/printfでログ出力 (Raspberry Pi Pico&C/C++ SDK)

ラズパイピコで、UARTとprintfを使って動作ログをPCのシリアルモニターに表示する方法を解説しています。固定メッセージだけでなく、変数の値やセンサーなどの測定値を出力することも可能です。シリアルモニターを使うことでプログラムの動作を追うことができるので、意図したとおりに動いているか確認したり、問題発生時に原因を特定するのに役立ちます。

ESP-PowerMonitor (ESP-WROOM-02/WiFi搭載 IoT電圧/電流/電力測定基板)

Arduino IDEで動作を自由にプログラミング可能なIoT電力測定基板です。WiFi内蔵マイコンであるESP-WROOM-02を採用しました。流、電力センサーとディスプレイ搭載。Raspberry Piなどの消費電力の記録、スマホなどの充電電流のモニタリング、サーバーへのデータ転送、といった使い方が可能です。

RPZ-RC-Servo (Raspberry Pi用 サーボモータードライバー)

RCサーボモーターを制御できるRaspberry Pi(ラズパイ)用拡張基板です。モーターの角度(位置)を指示すれば、自動で目標までモーターを動かしてくれます。ものを動かしたり回転させるシステムが実現できます。Raspberry Piへ電力を供給する機能もあり、単一電源でシステムを構成できます。