【RP2350】Pico 2互換の「16MB最強版」をArduino IDEでLチカ

AliExpress(アリエク)でウィンドウショッピングをしていると、ふと目に留まったのが、USB Type-Aのオス端子がいきなり生えている開発ボードでした。

RP2350 Development Board Module For Raspberry PI Dual Core 16MB

よく見ると、搭載チップは話題のRP2350。 Raspberry Pi Pico(RP2040)はこれまで何度も触ってきましたが、後継のRP2350はまだ未体験です。「最新チップ」かつ「ケーブル不要の直挿しスタイル」。この2つの要素に惹かれ、気づけばカートに入れて決済を済ませていました。完全な衝動買いです。

届いたのは「Development Board Module For Raspberry PI Dual Core 16MB」という、いかにも中華製な名前のボード。 純正Pico 2の4倍となる16MBの大容量フラッシュを積んでいるのも見逃せません。

せっかく手元に来たのですから、このユニークなボードを使っていろいろ試してみたいと思います。まずは電子工作の基本中の基本、Lチカ(LED点滅)から攻略していきます。

目次

ボードを使用可能な状態にする

このボード、見た目はUSBメモリのようでスマートですが、マニュアルもなければサポートもありません。 今回の目的は、この「素性不明のRP2350ボード」をArduino IDEで認識させ、自在にプログラミングできる環境を構築することです。

具体的には、以下の3つのゴール(定量目標)をクリアします。

  1. 環境構築: Arduino IDEでRP2350を認識させ、16MBの領域をフルに使えるように設定する。
  2. 書き込み: ケーブルレスでUSBポートに直挿しし、プログラムを転送する。
  3. Lチカ: ボード上のLED(詳細不明)を制御して点滅させる。

非公式コア(Earle Philhower版)の導入

Arduino IDE標準のボード定義では、まだRP2350に完全対応していないか、機能が制限されている場合があります。そこで、高機能なコミュニティ版のコア定義を導入します。

環境設定: Arduino IDEのメニューから「ファイル」→「基本設定」を開きます。

URLの追加: 「追加のボードマネージャのURL」の欄に、以下のURLを貼り付けます。

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

追加のボードマネージャのURL

インストール: 左側の「ボードマネージャ」を開き、検索窓に pico と入力します。 検索結果に出てくる 「Raspberry Pi Pico/RP2040 by Earle F. Philhower, III」 をインストールします。 ※この時、バージョンが 4.0.0以上 であることを必ず確認してください(これより古いとRP2350が出てきません)。

Raspberry Pi Pico/RP2040 by Earle F. Philhower, III

ボード設定は「Generic」を選ぶ

ここが16MBを活かすための最大のポイントです。「Raspberry Pi Pico 2」を選んでしまうと、4MBしか使えません。

  • ボード: Generic RP2350 を選択。
  • Flash Size: メニューに追加された項目で 16MB (Sketch: 16MB / FS: 0MB) などを選択。

Generic RP2350

これで、コンパイルの準備は整いました。

PCに挿しても「認識しない」問題と解決策

意気揚々とPCのUSBポートに挿しましたが、PCは全く反応しません。 デバイスマネージャにも表示されず、Arduino IDEのポート一覧にも出てこない状態です。「まさか初期不良?」と焦りましたが、私の環境では以下の対処を行うことで無事に認識されるようになりました。

「最初の1回」だけ手動で書き込む

私の場合、以下の手順を踏むことで解決しました。

  1. BOOTボタンで接続: ボード上の 「BOOT」ボタンを押しながら USBに挿します。すると「RP2350」というフォルダ(ドライブ)が開きます。
  2. ファイルをドロップ: Arduino IDEで「コンパイルしたバイナリを出力」し、生成された .uf2 ファイルをそのフォルダに入れます。
  3. その後は自動認識: 一度この方法で書き込みを成功させると、次からはBOOTボタンを押さなくても、挿すだけで「COM14 (Raspberry Pi Pico 2W)」として認識されるようになりました。

推測される原因

おそらく、購入直後の(またはプログラムが入っていない)状態では、PCと通信するための機能が動いていないため、COMポートとして認識されなかったのだと思われます。 手動でプログラムを書き込んだことで、プログラム内のUSB通信機能が有効になり、PCが認識できるようになったのでしょう。

Lチカの実装:LEDは「GP22」の「NeoPixel」

基板上のLEDのそばに小さく「22」と印字されていました。さらに部品の形状から、単なるLEDではなく「NeoPixel(WS2812B)」であると判明。 ライブラリ Adafruit NeoPixel を導入し、ピン番号 22 を指定することで、鮮やかな3色Lチカに成功しました。

NeoPixelのLEDを使うためにライブラリのインストールをしてください

ツール>ライブラリを管理>Adafruit NeoPixelをインストール

#include <Adafruit_NeoPixel.h>

// — 設定エリア —
// 基板の記載通り 22番ピン を指定
const int RGB_LED_PIN = 22;
const int NUM_PIXELS = 1;

// NeoPixelオブジェクトの作成
Adafruit_NeoPixel pixels(NUM_PIXELS, RGB_LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  Serial.begin(115200);

  // LEDの初期化
  pixels.begin();
  pixels.setBrightness(30); // 明るさ控えめ

  delay(1000);
  Serial.println("\n— GPIO 22 LED Test Start! —");
}

void loop() {
  // 赤
  Serial.println("Red");
  pixels.setPixelColor(0, pixels.Color(255, 0, 0));
  pixels.show();
  delay(500);

  // 緑
  Serial.println("Green");
  pixels.setPixelColor(0, pixels.Color(0, 255, 0));
  pixels.show();
  delay(500);

  // 青
  Serial.println("Blue");
  pixels.setPixelColor(0, pixels.Color(0, 0, 255));
  pixels.show();
  delay(500);

  // 白 (全点灯)
  Serial.println("White");
  pixels.setPixelColor(0, pixels.Color(255, 255, 255));
  pixels.show();
  delay(1000);

  // 消灯
  pixels.clear();
  pixels.show();
  delay(500);
}

まとめ

一時は「壊れているのか?」と疑ったUSB直挿しボードでしたが、「最初の儀式(BOOTモードでの書き込み)」 を行うことで、正常にArduino IDEから制御できるようになりました。

  • 教訓: 買ってきたばかりのRP2350が認識しなくても焦らない。まずはBOOTボタンで魂(プログラム)を吹き込むべし。

この「16MB」という広大な空き地と、RP2350のパワー。 準備運動は完了です。次回は、このボードにSDカードスロットを増設して「データロガー」へと進化させていこうと考えています。