使い道が決まらないまま引き出しに眠っている Raspberry Pi Zero 2 W——もし1枚でも心当たりがあるなら、この話は刺さるかもしれません。PiZZa は、Arduino IDE で書いたスケッチを Raspberry Pi Zero 2 W(と初代 Pi Zero W)上でワンボタン書き込みして動かせる、オープンソースのプロジェクトです。2026年7月1日に Adafruit のブログで紹介され、話題になりました。

ただ、実体を一次ソース(作者のリポジトリ)で確認すると、見出しの印象より一歩踏み込んだ面白さがありました。PiZZa は Pi の Linux をそのまま使うのではなく、Linux を Zephyr という RTOS に置き換えて、Pi Zero を「小さなマイコン」として動かします。その上に Arduino の書き味を乗せているのが要点です。

💡 はじめに断っておくと:これは公式製品ではありません

PiZZa は個人開発者 jetpax 氏によるオープンソースプロジェクト(ライセンス Apache-2.0)で、Arduino 社や Raspberry Pi 社の公式製品ではありません。開発途上(work-in-progress)で、機能には「対応済み・予定・対象外」の区別があります。本記事は、一次ソースで裏が取れた範囲に絞って書き、確認できなかった点は「未確認」と記します。

📌 この記事の3行まとめ
  • PiZZa は Arduino IDE のスケッチを Raspberry Pi Zero 2 W で動かせる OSS。SD の差し替えや手動の再フラッシュなしに、Upload ボタン1つで書き込める
  • 仕組みは、Pi の Linux を Zephyr RTOS に置き換え、SD 上の小さなローダがスケッチを Zephyr モジュール(llext)として読み込む方式。Pi を「マイコン」として使う
  • 公式製品ではなく開発途上。母艦 PC と micro-USB データケーブルが要り、対応は Pi Zero 2 W と初代 Zero W のみ。analogRead が非対応など制約もある

🍕 1. PiZZa とは何か

💡 ワード解説:Zephyr(ゼファー)/ RTOS

Zephyr は Linux Foundation がホストするオープンソースの RTOS(リアルタイム OS)です。RTOS は Linux のような汎用 OS より軽量で、決まった時間内に処理を返す「リアルタイム性」を重視します。マイコン開発でよく使われます。PiZZa は、この Zephyr を Raspberry Pi Zero の上で直接動かします。

作者は jetpax 氏。リポジトリは「Raspberry Pi Zero on Zephyr RTOS」と名乗り、「Lightning boot time, no bloat and hard real time performance(速い起動・無駄のなさ・ハードリアルタイム性能)」を掲げています。ハードリアルタイム性能というのは、あくまで作者側の位置づけです。Pi Zero 2 W を「クアッドコア 1GHz のマイコン」として捉え、Linux を積まずに Zephyr を直接動かすのが土台になっています。

母艦 PC に USB-CDC でつなぐと、Pi が micro-USB ケーブル1本(電源とシリアルを兼ねる)でシェルまで起動します。外部電源も USB-シリアル変換も不要です。この土台の上に Arduino ボードパッケージが乗っており、Arduino IDE でスケッチを書いて Upload できる、という構成です。

なお、リポジトリには Arduino 以外にも、Doom や Prince of Persia、DOS/Mac エミュレータ、4 コアの wipEout といった移植群が含まれ、プラットフォームの実力を示しています。本記事は Arduino 部分に絞って扱います。

🔘 2. ワンボタン書き込みの仕組み

これまで Pi でファームを差し替えるには、SD を抜いて母艦で焼き直す、という手間がありました。PiZZa は、一度だけの準備(ローダを SD に焼く)を済ませれば、あとは Arduino IDE の Upload ボタン1つで完結します。

Upload を押してからスケッチが動き出すまでを図にすると、こうなります。

flowchart TD A["Arduino IDE で Upload"] --> B["cdc-upload が USB CDC で送信"] B --> C["SD 上のローダが受信"] C --> D["boot パーティションへ書き込み"] D --> E["Pi をコールドリセット (約1秒)"] E --> F["ローダが再起動"] F --> G["/SD:/sketch.llext を自動ロード"] G --> H["スケッチをネイティブ実行"]

流れはこうです(作者リポジトリの記述より)。

  1. スケッチは再配置可能な ELF(llext モジュール)にコンパイルされる
  2. Upload を押すと、専用ツール(cdc-upload)がスケッチを USB CDC 経由でローダへ流し込む
  3. ローダはそれを SD の boot パーティションに書き、Pi をコールドリセット(約1秒)する
  4. 起動し直したローダが /SD:/sketch.llext を自動で読み込み、ネイティブに実行する

従来の手動フラッシュと並べると、違いは「毎回の物理作業があるかどうか」に集約されます。

観点 従来(手動フラッシュ) PiZZa
書き込み操作 SD を抜く → 母艦で焼く → 挿し直す Arduino IDE の Upload を1回
SD の抜き差し 書き込みのたびに必要 初回のローダ焼きだけ
反映まで カード操作のぶん手間がかかる コールドリセット約1秒で自動反映

SD の差し替えも手動の再フラッシュも要らない、というのはこの流れを指します。USB が使えない環境向けに、SD カードリーダ経由で sketch.llext をコピーする代替アップロード方法も用意されています。

シリアルは USB CDC(Arduino の Serial)に割り当てられ、Serial1 は GPIO14/15 のミニ UART です。ここは起動ログを兼ねているため、ローダの様子も覗けます。

🎯 3. 何に向く・何に向かないか

まず、これは「値段の話」ではなく「使い方の話」です。先日の値上げ記事では「そのワークロード、Linux SBC でなくマイコンで足りないか」を扱いましたが、PiZZa はいわば逆方向——Arduino の手軽さで、余っている Pi Zero を(Linux を外して)マイコンのように使うという補完的な選択肢です。引き出しに眠る Pi Zero 2 W があれば、追加の出費なしにこの遊びができます。

Arduino(手軽な MCU)、PiZZa(Arduino の手軽さで Pi のハードを使う)、Raspberry Pi + Linux(自由だが重い)を「手軽さ」と「自由度・規模」の2軸に置くと、PiZZa はちょうど中間に位置します。

quadrantChart title 手軽さと自由度のポジション x-axis 手軽 --> 自由度と規模 y-axis 重い --> 軽い quadrant-1 軽くて自由度が高い quadrant-2 軽くて手軽 quadrant-3 手軽だが重い quadrant-4 自由だが重い "Arduino": [0.18, 0.82] "PiZZa": [0.42, 0.70] "Raspberry Pi + Linux": [0.82, 0.28]

向いていること:

  • 手持ちの Pi Zero 2 W を Arduino 的に使ってみたい
  • USB ケーブル1本の最小構成で、はんだ付けなしに GPIO・I2C・SPI・PWM・WiFi を触りたい
  • Zephyr や RTOS を、Arduino の入口から覗いてみたい

対応している Arduino 機能(作者リポジトリの記述より):

機能 Pi Zero 2 W 初代 Pi Zero W 注記
GPIO
Serial(USB-CDC) Serial1 はミニ UART(GPIO14/15)
SPI Zero 2 W はループバック確認済み
I2C(Wire)
WiFi Zero W は v0.5.0〜
PWM(analogWrite) D15=GPIO12 / D16=GPIO13 の2ピンのみ
analogRead × × オンチップ ADC 無し。外付け ADC で代替

凡例:○ 対応/△ 限定・未検証/× 非対応(ハード制約)/— 公式の対応一覧に記載なし

向かない・注意したいこと:

  • analogRead() は非対応。Pi にオンチップ ADC が無いためで、アナログ入力は ADS1115 や MCP3008 などの外付け ADC で補います
  • PWM(analogWrite)は D15=GPIO12 と D16=GPIO13 の2本のみ。他ピンは半分スケールのデジタル出力に落ちます
  • 対応ボードは Pi Zero 2 W と初代 Pi Zero W のみ。Pi 4 / 5・Pico は非対応で、Pi 3 系は未検証です
  • リアルタイム性については、Zephyr RTOS を積む構成なので「Linux ボードだから応答が読めない」という一般論はそのまま当てはまりません。ただし、公開中のシェルイメージは現状シングルコア動作で、クロックも約600MHz 固定です。4 コア対応(SMP)は「次のイメージで入る」段階だとされています。本物のマイコン級の一貫した応答を用途に求めるなら、この成熟度を踏まえて評価してください
💡 深掘り:アナログ入力が欲しいときは外付け ADC

analogRead() が使えないのは PiZZa 固有の制限ではなく、Pi のシリコンにアナログ入力回路(ADC)が無いためです。アナログ値が必要なときは、外付け ADC を足すのが電子工作の定番手です。

代表格が ADS1115(16bit・4ch・I2C)と MCP3008(10bit・8ch・SPI)です。ADS1115 なら I2C で配線し、Wire で変換結果のレジスタを読みます。上の表のとおり Pi Zero 2 W は Wire(I2C)と SPI に対応しているので、この定番構成がそのまま使えます。分解能も、内蔵 ADC 相当(10〜12bit)より高い 16bit を選べます。

I2C で外付け IC を足して Wire で叩く配線の流れは、MCP23017 で GPIO を拡張する記事 が参考になります(機能は GPIO 拡張で別物ですが、I2C デバイスを足して読み書きする手順は同じです)。

🧪 4. いま試せるのか(要件・成熟度)

試せます。作者が「そのまま焼けるローダイメージ」を配布しており、次を用意すれば動きます。

必要なもの(作者リポジトリの記述より):

  • Raspberry Pi Zero 2 W または初代 Pi Zero W(ストック品・はんだ付け不要)
  • microSD カード(2GB 以上)と書き込み手段(Raspberry Pi Imager)
  • micro-USB のデータケーブル(充電専用ケーブルは不可)
  • Arduino IDE 2.x(Apple Silicon の macOS/Linux/Windows)

Pi Zero 2 W をまだ持っていない場合は、技適取得済みのスターターキットが手軽です。本体に加えて USB-OTG ケーブル・ヒートシンク・2×20 ピンヘッダ・ミニ HDMI アダプターが付属するので、PiZZa で GPIO を触る用途にもそのまま使えます。なお、PiZZa の書き込みには上記のとおり micro-USB のデータケーブルが必要です。キット付属のケーブルで書き込みまで通るかは、手元で確認してください。

Raspberry Pi Zero 2 W スターターキット ▶ Raspberry Pi Zero 2 W スターターキット(技適取得済・Amazon)

※本記事にはアフィリエイトリンク(Amazon アソシエイト)が含まれます。

注意点:

  • Intel Mac は非対応。Zephyr SDK 1.0.1 に Intel Mac 向けツールチェーンが無いためで、Apple Silicon Mac か Linux/Windows を使います
  • 母艦 PC は必要です。Upload は母艦から行い、Pi は母艦の USB 電源で(約600MHz で)動きます
  • Boards Manager の URL は v0.6.0 で変わっています。古い URL を登録していたら差し替えてください

成熟度:

  • ライセンスは Apache-2.0、GitHub の star は約110(2026-07-26 時点)。2026年5月末に公開され、活発に更新されています
  • これは作者の Zephyr フォークの「配布側」で、本体は Zephyr 本家への取り込みを RFC で議論中です。取り込まれれば本家のタグを指すようになる、とされています
  • 機能表には「対応済み・予定・対象外」が明記され、開発途上であることが読み取れる形になっています
⚠️ バージョンは動きます

本記事は Arduino ローダ v0.5.0・リポジトリ 2026-07-24 更新時点の記述にもとづきます。対応 API・URL・成熟度は今後変わります。導入前に、作者リポジトリの最新 README を確認してください。

✅ まとめ

PiZZa の面白さは、「Arduino の書き味」と「Pi のハードウェア」を、Linux を外した Zephyr RTOS の上でつなぐ点にあります。SD の抜き差しが要らないワンボタン書き込みは、Arduino の手軽さをそのまま Pi Zero に持ち込むもので、引き出しに眠る Pi Zero 2 W に新しい役割を与えます。

一方で、これは公式製品ではない開発途上の一プロジェクトで、analogRead 非対応やシングルコア動作といった、現時点の制約もあります。「余った Pi で遊ぶ」「RTOS を Arduino の入口から覗く」ための入口として捉えるのが、いまの立ち位置に合っています。

MCU で作るか、Linux SBC で作るか——その境界に、PiZZa は「Arduino の入口から Pi のシリコンを触る」という別の道を差し込んできます。手持ちのボードで試せるので、気になる人はローダを焼いて L チカから始めてみてください。

❓ よくある質問(FAQ)

Q. PiZZa は公式の Arduino / Raspberry Pi 製品ですか? A. いいえ。個人開発者 jetpax 氏によるオープンソースプロジェクト(Apache-2.0)です。開発途上で、Zephyr 本家への取り込みを議論している段階です。

Q. Pi の Linux 上で Arduino スケッチが動くのですか? A. 違います。PiZZa は Linux を積まず、Zephyr RTOS を Pi 上で直接動かします。スケッチはその上で Zephyr モジュール(llext)としてネイティブに実行されます。

Q. 本当にワンボタンで書き込めますか?SD の差し替えは? A. 一度ローダを SD に焼く初期設定だけ必要で、以降は Arduino IDE の Upload ボタン1つです。スケッチが USB 経由でローダに渡り、Pi が約1秒でリセットして自動で読み込みます。SD の差し替えも手動の再フラッシュも要りません。

Q. どのボードで動きますか?母艦 PC は要りますか? A. Raspberry Pi Zero 2 W(主対象)と初代 Pi Zero W です。母艦 PC(Apple Silicon Mac/Linux/Windows)と micro-USB データケーブルが必要です。Intel Mac は非対応です。

Q. Arduino のどの機能が使えますか? A. Pi Zero 2 W では GPIO・SPI・Wire(I2C)・Serial・WiFi・PWM(2ピン)が使えます。analogRead() はオンチップ ADC が無いため非対応で、外付け ADC(ADS1115 や MCP3008 など)で補います。

Q. 追加の出費なしで試せますか? A. Pi Zero 2 W とデータケーブル、2GB 以上の SD があれば、ソフトは無料で試せます。余っている Pi Zero がある人には敷居の低い遊びです。

🔗 関連記事