Raspberry Pi PicoのBootselボタンは何のため?所説検証した結果まとめ

pico-bootselRaspberry Pi

本記事の内容

Raspberry Pi Picoの基板上に存在するBootselボタンの本来の役割と使い方について、いろいろなサイトやDataSheetを参考にまとめてみました。

私自身Raspberry Pi Picoを一年近く使用していますが、Bootselボタンなんて最近は全く意識していませんでした。そんなRaspberry Pi Picoの盲点機能「Bootselボタン」について解説します。

Bootselボタンとは

Raspberry Pi Picoには基板上にBootsel(リセット)ボタンが一つ備わっています。

pico-bootsel-button

結論から述べると、Bootselボタンは機能上は押しても押さなくても問題のないボタンです。また、ROM上のソースコードを加工することで、通常の入力装置として扱うことは可能なようです。

まず、Bootselボタンの本来の役割から見ていきます。

初回PC接続時のセットアップ用?ではない

Raspberry Pi Pico & Bootselで検索すると、「初めてRaspberry Pi PicoをPCに接続するときは、Bootselボタンを押しながらusb type-bケーブルを差し込む」と解説されています。

確かに半年ほど前は、Raspberry Pi PicoをPCに接続するときは、Bootselボタンを押さないとUSBデバイスの一種として認識されなかった気がします。

しかし最近では、Bootselボタンを押さなくとも、自動でPC上に「RPI RP2 USB Device」と認識されるようになっています。(Raspberry Pi Picoの製造Lotが更新された?それともWindowsのOSが賢くなった?)

そのため、直近に新調したRaspberry Pi Picoでは、Bootselボタンを押した記憶がありません。(つい先ほども新品を開けてみましたが、セットアップのためにBootselを押す必要はありませんでした。)

とはいえ、別にBootselボタンを押して接続しても、PC上でRaspberry Pi Picoは正しく認識されます。Bootselボタンは押しても押さなくても問題ない、さしずめ「おまじない」といったところでしょうか。

main.pyの停止用?でもない

Raspberry Pi Picoではmain.pyを記述したプログラムが存在すると、usb type-bケーブルを接続した際(電源投入時)に自動でmain.pyを実行するという機能が備わっています。

したがって、main.pyを書き換えたい時でも、PC接続時に勝手にmain.pyが実行され、プログラムコードを書き換える術がありませんでした。

一部知恵袋ではBootselボタンを押して接続すると、ストレージデバイスとして認識されるため、一度プログラムの実行が止まってmain.pyを書き換えられると書かれていました。

しかし、こちらもBootselボタンを押さずとも、Thonny IDEのStopボタンで停止させられることは現時点で検証済みです。

(もしかすると、以前のMicro Pythonのファームウェアでは、Bootselボタンを押す必要があった?)

Raspberry Pi PicoのDatasheetを読むと

それでは、Bootselボタンは一体どのような使い方を想定したボタンなのでしょうか。一番信頼のできるRaspberry Pi財団公式ページのDatasheetを確認してみました。

The simplest way to reprogram the Pico’s Flash is to use the USB mode. To do this, depower the board, then hold the BOOTSEL button down during board power-up (e.g. hold BOOTSEL down while connecting the USB). The Pico will then appear as a USB Mass Storage Device. Dragging a special

Raspberry Pi Picoをフラッシュディスクとして(再)プログラムする最も簡単な方法は、USBモードです。USBモードとするには、ボードの電源投入時にBOOTSELボタンを押し続けます(USBを接続する間、BOOTSELを押し続ける)。そうすると、Raspberry Pi PicoはUSBマスストレージデバイスとしてPC上に表示されます。

https://datasheets.raspberrypi.com/pico/pico-datasheet.pdf

したがって、どうやら正解は「初回PC接続時のセットアップ用」だそうです。。。が、やっぱり押さなくても問題ないのであれば、Bootselボタンを押す必要はないでしょう。

Bootselボタンを入力装置として扱うことは可能?

おおよそ一年前の記事ですが、Raspberry Pi PicoのROM上のソースコードを加工することで、Bootselボタンを入力装置として扱っている方の記事はありました。

「Raspberry Pi PicoのBOOTSELボタンを使ってMDX playerを制御する(Qiita)」

残念ながら私の理解を超えた電子工作だったので、マネすることはできませんでした。どうやら頑張れば、Bootselボタンを入力装置として扱うことは可能なようです。

まとめ

Raspberry Pi PicoのBootselボタンの使い方をWeb上で調べてみましたが、いずれの場合もBootselボタンを押さなくても正常に動作しました。

Raspberry Pi財団公式の解答としても「初回PC接続時のセットアップ用」の用途だそうですが、「押さなくても良いボタンであれば、敢えて押す必要はないでしょう」というのが個人的な所感です。

コメント