Pico三昧(22) Raspberry Pico 2、C/C++ SDKで吉例Lチカ

Joseph Halfmoon

前回、Raspberry Pi Pico 2を受領したのに、一時寝かせてしまいました。老眼の目にはピンヘッダのハンダ付けが辛い、さらにPico 2用にソフトウエアのアップデートがメンドクセーです。まあ、折角手に入れたボードに火も入れずに打っちゃっておくのも気が咎めるので、なんとか吉例Lチカやってみましたぞ。

※Pico関係投稿一覧は こちら 『Pico三昧』は一覧の末尾付近にひっそりと。

Pico と Pico 2 ならべてみた。クリソツ

入手したPico 2にピンソケットを半田付けし、いつものようにブレッドボードに刺し込んだものが以下に。Pico_Pico2

上記、左が古い Pico ボード、右が今回入手した Pico 2 ボードです。細かい部品配置を除き、ほとんど双子なたたずまいです。Pico 2 にはシルクでPico 2と書いてあるのでこれにて何とか判別できます。

端子配列もクリソツ。御本家の以下のページからpinout図をダウンロードできます。

Pico-series Microcontrollers

良く出来たことに2種のボードのピンアウト図、完全に同一縮尺です。重ねて表示して表裏表裏とクリクリしていくと、端子配列(端子名、端子機能)もまったく同一であることが分かります。当然、Pico2の方がいろいろ追加、改良されている部分はあるハズですが、遠くからみたらまったく一緒ね。

ソフトウエアもPicoの延長上ではあるのだけれど

手元のWindows環境上にはC/C++ SDKを使って Pico 用にビルドしたオブジェクトファイル(.uf2形式)が残ってます。Pico2は同じArmでもコアCPUが異なるので、まさかとは思ったのですが、Pico2 ボードをブートモードでマウントして、それを書き込んでみました(無謀な。最初からRISC-Vとか無いよね。)

当然ながら動きませぬ。

やっぱりね~。Pico2のためにビルドしないとダメだわな。

最近(といっても1年くらい前ですが)、Windows11上にインストールした環境ばかり使ってました。が、Windwos環境ではかなりテコ入れしないとビルド無理みたいです。手元の環境はWindows用のインストーラで環境作ってもらってますが、

    • Windows版の最新版インストーラでインストールされるSDKのバージョンはv1.5.1
    • Pico 2 用のオブジェクトを生成するために必要なSDKバージョンは v2.0.0

ってこってす。Pico SDKその他をいろいろアップデートしないとPico 2には対応できない感じ。

困ったときには Raspberry Pi

もともと、ラズパイ4上にPico用のビルド環境をインストールして使用してました。イチイチ、ラズパイ4にリモートログインしてあれこれするのがメンドイのでWindows11でビルドするようになったです。しかし、困ったときにはラズパイ4でやるってもんじゃなかろうかと。なんて言ったってラズパイ財団推しの「純正」環境であります。

すでに環境が作ってある ラズパイ4 環境では、pico sdk のディレクトリに入って

$ git pull

一発で Pico SDK が v2.0.0 にアップデートされました。これだけ。

見分け方としては、pico-sdkディレクトリ配下にsrcというディレクトリがあり、v2.0.0になるとそこにrp2350というディレクトリなどが含まれてます。古い v1.5.1などでは rp2040のみで、rp2350は不在っす。また、pico-sdkディレクトリ直下の MODULE.bazel の冒頭にSDKのバージョンが書かれてます。

cmakeするときに、rp2040だか、rp2350だかハッキリさせるためにマクロを定義しておく必要があるみたいデス(以下はbuildディレクトリの中でやった場合。)

cmake -DPICO_PLATFORM=rp2350 -DPICO_BOARD=pico2 ..

もしかすると片方の指定だけでも良いのかも知れんですが、2つとも指定しても特に問題ないみたい。pico-examplesのblinkをビルドした結果が以下に。Pi4Blink

 

Flashに書き込み可能な実行オブジェクト(blink.uf2)ができとります。

これを Pico 2 ボードに転送したところが以下に。Pico2_Blink

吉例Lチカ、できましてございまする。よかった。

Pico三昧(21) Raspberry Pico 2 着弾、Arm M33とRISC-V へ戻る

Pico三昧(23) Raspberry Pico 2、Arduino IDEで吉例Lチカ へ進む