4 ポイント 投稿者 GN⁺ 2026-02-09 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2026-02-09
Hacker Newsの反応
  • 本当にすばらしいプロジェクト。自分でも試してみるつもり
    関連する別のプロジェクトも2つ見た

    1. Redditコミュニティ r/xteinkereader では、esp32-s3ベースの中国製電子書籍リーダー向けのOSスタイルのアプリを開発中
    2. esp32-s3向けの Linuxポート プロジェクトもある。S3にはMMUがあるが、このプロジェクトでは使われていないようだ
      Boot-Linux-ESP32S3-Playground
    • XTEinkはESP32-S3ではなく C3 を使っている。OPのS3ボードには8MBのPSRAMがあるが、C3は384kBのRAMしかなく、組み込みOS をビルドする際に大きな違いになる
  • 起動が即時なのが本当にすばらしい。こういうプロジェクトやAdafruitのFruit Jamを見ると、「不要な複雑さを取り除けば得るものが多い」とわかる
    こういうものを子どもの最初のコンピュータとして渡したい

    • これをベースにした 20ドルのノートPC がAliExpressに出てくれたらいいのに
  • 来週末に何をするか決まった。もともと別のプロジェクト用にesp32-s3を買うつもりだったが、今は2つ買わないといけなくなった

  • これらのボードの コストパフォーマンス は異常なほど高いと思う。自分はこれをKVMの代替として使うつもり
    ESP32-Bus-Pirate をフラッシュして、リモートで制御する機器に接続しておけば非常に便利。消費電力もほとんどないので、Wi‑Fiに常時接続している

    • ディスプレイ共有はどう処理しているのか気になる。リースサーバーを何台も管理しているが、予算が足りず正式なKVMは難しいので、これで代用したい
  • rp2350でも動くように移植できるのか気になる

    • 一部は可能そう。シェルは単に linenoise に少しのglueコードを加えただけ。rp2350のELFローディング状況はわからないが、ESP-IDFでは標準コンポーネントなので可能性はある
    • rp2350は FreeRTOS をサポートしているので、似たような移植はかなり簡単そう。PicoのI/O DMAコードは独特だが、かなり強力なチップだ
  • おお、あなたは xcc700 を作った人か! MCUを汎用コンピューティングに使うことにとても興味がある。どこまで押し広げられるのか気になる

    • そう。xcc700デモで使われたシェルへの要望が多かったので公開した。ESP32-S3 はまだ潜在能力のごく一部しか見せていない
      以前FabGLがゲームやDOSエミュレーションのデモを動かしていたのを覚えているかもしれない。ただ、最新のESP-IDFでは更新が難しい
      なので、もっと モジュラーな構造 で作り直している。長く保守できるように。誰かは古いMacOSをシミュレーションで動かしていたこともある
  • 本当にすごい! これを M5Stack Cardputer にすぐ入れたい

  • フラットなメモリモデルがないと、一般的なOSの実装は難しくないか? Amiga1000にもMMUはなかったが、フラットなメモリモデルではあった。これを回避するには複雑な作業が必要だったはず

    • メモリモデル自体は十分フラット。問題は、従来型のRAMが約200kBしかない点。その代わり8MBのPSRAMがあるが、4バイトアラインメント が必要で、速度も遅い
      このプラットフォームで一般的なOSが難しい理由は、メモリ保護機能の欠如 にある。ただ、自分は単にシェルとアプリインストーラを作りたかっただけなので、その程度なら解決できた
    • SoCで一般的なOSが難しい理由は、通常 MMUの欠如 にある。JavaやJSのようにポインタアクセスのない言語なら問題にならないが、Cで書かれたデスクトップアプリは常に一貫した仮想アドレスを必要とする
    • MCUに詳しくないので、この問題をもう少し説明してもらえるとありがたい
  • 今回初めて BreezyBox を知ったが、本当に興味深い。Wi‑Fi設定やアップデートのことは気にせず、ただ自分のアプリだけを書きたかった
    なぜそうしたことを代わりに処理してくれるシンプルな マイクロコントローラOS がなかったのか不思議だった。これはその基盤になり得るかもしれない
    ヘッドレス配布向けの設定フロー(フラッシュ時のWi‑Fi設定、リモートシェル/ウェブUIの配布など)があるのか気になる

    • BreezyBoxはまだ 初期開発段階。デモで見たものがほぼすべて。より多くの開発者がアプリや機能を追加してこそ広まるはず
      リモート設定用のウェブアクセスは実装できそう。すでにウェブサーバーがあるので、サーバーサイドコードを実行できるように拡張すればよい
  • 初歩的な質問だが、これはS3専用なのか、それともC3でも動くのか?

    • 大部分は C3、C6、P4 でもコンパイル可能。ただしxcc700はXtensa CPU専用なので、移植はより難しい
      egetでインストールするELFバイナリもRISC-V向けに再コンパイルする必要がある。プラットフォーム別のELFを区別するために manifestサポート を追加するのがよさそう
      また、PSRAM容量がどれだけあるかも考慮する必要がある