- ESP32-S3マイクロコントローラを即座に起動可能な小型PCへ変え、シェル、エディタ、コンパイラ、アプリインストーラーを提供するデモプロジェクト
- BreezyBoxはESP-IDF向けのミニシェルコンポーネントで、UNIXライクなコマンド、vterm、VFS機能を含む
- Waveshare ESP32-S3-Touch-LCD-7Bボードで動作し、ほかのボードにも簡単に適用可能
- フォーク後に自分のボードで実行でき、USBコンソール経由で標準ANSIコード出力を利用可能
- MITライセンスで公開されており、エコシステム拡張を目指している
BreezyBox概要
- ESP32-S3をLinuxなしでもPCのように使うデモプロジェクトで、シェル・エディタ・コンパイラ・アプリインストール機能を提供
- Raspberry Piに似た使い勝手を目指しつつ、サーバー/デスクトップ級OSのオーバーヘッドがない
- BreezyBoxはESP-IDFベースのミニシェルコンポーネントで、簡単なコマンド実行環境を構成
- ESP32-S3はDOS時代のPCに近いリソース構成を持ち、無線通信機能を含む
- プロジェクトはこのチップの可能性を**「小さくエレガントな技術」**と表現し、コード量を最小化
BreezyBoxの構成
- BreezyBoxはvterm、VFS、CWD追跡、UNIXライクなコマンド、アプリインストーラーを含む
- ELFローダーと動的リンク機能はESP-IDFコンポーネントにすでに含まれている
- 名前はBusyBoxに着想を得ており、FreeRTOS上で動作するユーザー空間レイヤーという形
- ESP-IDFプロジェクトに1行で追加でき、基本入出力さえあれば動作する
デモリポジトリの特徴
- このリポジトリはBreezyBoxのサンプル実装であり、特定のボード(Waveshare ESP32-S3-Touch-LCD-7B)向けに構成されている
- BreezyBoxはディスプレイおよびボード設定をユーザーファームウェアに委ねる
- ユーザーはコードを参考にして自分のボードやディスプレイに合わせて修正可能
- LVGLテキストラベルコントロールを使えばLCD出力の実装は簡単で、USBコンソールでも実行可能
使い方
- リポジトリをフォークしてクローンし、自分のボードで実行できる
- 約40ユーロのボードでテストされており、低価格のLCD S3ボードでも利用可能
- USBコンソールを使えばVSCodeのIDF MonitorやTabbyでANSIコード出力を確認できる
- フォントレンダラーは独自実装だが、これは30FPS以上の性能確保のための選択的な実装
貢献と拡張
- プロジェクトはMITライセンスで公開されており、自由に修正・配布可能
- 貢献募集項目
- ELFアプリの追加: breezyappsリポジトリの例を参考に新しいアプリを作成可能
- さまざまなボード向けファームウェア例: C/C++ベース、GUI付き、レトロゲーム移植など多様な形を提案
- 目標は、より多くのユーザーがBreezyBoxを活用し、すぐに複製できるサンプルエコシステムを広げること
1件のコメント
Hacker Newsの反応
本当にすばらしいプロジェクト。自分でも試してみるつもり
関連する別のプロジェクトも2つ見た
Boot-Linux-ESP32S3-Playground
起動が即時なのが本当にすばらしい。こういうプロジェクトやAdafruitのFruit Jamを見ると、「不要な複雑さを取り除けば得るものが多い」とわかる
こういうものを子どもの最初のコンピュータとして渡したい
来週末に何をするか決まった。もともと別のプロジェクト用にesp32-s3を買うつもりだったが、今は2つ買わないといけなくなった
ESP32 SoCオプション比較ブログ
これらのボードの コストパフォーマンス は異常なほど高いと思う。自分はこれをKVMの代替として使うつもり
ESP32-Bus-Pirate をフラッシュして、リモートで制御する機器に接続しておけば非常に便利。消費電力もほとんどないので、Wi‑Fiに常時接続している
rp2350でも動くように移植できるのか気になる
おお、あなたは xcc700 を作った人か! MCUを汎用コンピューティングに使うことにとても興味がある。どこまで押し広げられるのか気になる
以前FabGLがゲームやDOSエミュレーションのデモを動かしていたのを覚えているかもしれない。ただ、最新のESP-IDFでは更新が難しい
なので、もっと モジュラーな構造 で作り直している。長く保守できるように。誰かは古いMacOSをシミュレーションで動かしていたこともある
本当にすごい! これを M5Stack Cardputer にすぐ入れたい
フラットなメモリモデルがないと、一般的なOSの実装は難しくないか? Amiga1000にもMMUはなかったが、フラットなメモリモデルではあった。これを回避するには複雑な作業が必要だったはず
このプラットフォームで一般的なOSが難しい理由は、メモリ保護機能の欠如 にある。ただ、自分は単にシェルとアプリインストーラを作りたかっただけなので、その程度なら解決できた
今回初めて BreezyBox を知ったが、本当に興味深い。Wi‑Fi設定やアップデートのことは気にせず、ただ自分のアプリだけを書きたかった
なぜそうしたことを代わりに処理してくれるシンプルな マイクロコントローラOS がなかったのか不思議だった。これはその基盤になり得るかもしれない
ヘッドレス配布向けの設定フロー(フラッシュ時のWi‑Fi設定、リモートシェル/ウェブUIの配布など)があるのか気になる
リモート設定用のウェブアクセスは実装できそう。すでにウェブサーバーがあるので、サーバーサイドコードを実行できるように拡張すればよい
初歩的な質問だが、これはS3専用なのか、それともC3でも動くのか?
egetでインストールするELFバイナリもRISC-V向けに再コンパイルする必要がある。プラットフォーム別のELFを区別するために manifestサポート を追加するのがよさそう
また、PSRAM容量がどれだけあるかも考慮する必要がある