使い道が決まらないまま引き出しに眠っている 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)で、機能には「対応済み・予定・対象外」の区別があります。本記事は、一次ソースで裏が取れた範囲に絞って書き、確認できなかった点は「未確認」と記します。
- 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 は 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 を押してからスケッチが動き出すまでを図にすると、こうなります。
流れはこうです(作者リポジトリの記述より)。
- スケッチは再配置可能な ELF(llext モジュール)にコンパイルされる
- Upload を押すと、専用ツール(
cdc-upload)がスケッチを USB CDC 経由でローダへ流し込む - ローダはそれを SD の boot パーティションに書き、Pi をコールドリセット(約1秒)する
- 起動し直したローダが
/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 はちょうど中間に位置します。
向いていること:
- 手持ちの 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)は「次のイメージで入る」段階だとされています。本物のマイコン級の一貫した応答を用途に求めるなら、この成熟度を踏まえて評価してください
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 スターターキット(技適取得済・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 がある人には敷居の低い遊びです。
🔗 関連記事
- メモリ高騰が電子工作を直撃|ArduinoとRaspberry Piが相次ぎ値上げ — 「そのワークロード、MCU か Linux SBC か」を扱った記事。PiZZa はその逆方向の選択肢
- 【Arduino入門】Arduino IDE 2 のインストールからLチカまで完全ガイド — PiZZa も使う Arduino IDE 2 の基本はこちら
- ESP32 シリーズの選び方|S3・C3・C6・H2・P4 の違いと使い分け — MCU 側で作るならこちらの選択肢も

