4 điểm bởi GN⁺ 2026-02-09 | 1 bình luận | Chia sẻ qua WhatsApp
  • Dự án demo biến vi điều khiển ESP32-S3 thành một máy tính mini có thể khởi động tức thì, cung cấp shell, trình soạn thảo, trình biên dịch và trình cài ứng dụng
  • BreezyBox là một component mini shell cho ESP-IDF, bao gồm các lệnh kiểu UNIX cùng các chức năng vterm và VFS
  • Chạy trên bo mạch Waveshare ESP32-S3-Touch-LCD-7B, và cũng có thể dễ dàng áp dụng cho các bo mạch khác
  • Có thể fork rồi chạy trên bo mạch của riêng bạn, hoặc tận dụng xuất mã ANSI tiêu chuẩn qua USB console
  • Được phát hành theo giấy phép MIT, hướng tới mở rộng hệ sinh thái

Tổng quan về BreezyBox

  • Đây là dự án demo sử dụng ESP32-S3 như một PC mà không cần Linux, cung cấp các tính năng shell, trình soạn thảo, trình biên dịch và cài ứng dụng
    • Hướng đến trải nghiệm sử dụng tương tự Raspberry Pi, nhưng không có overhead của hệ điều hành cấp máy chủ/máy tính để bàn
    • BreezyBox là component mini shell dựa trên ESP-IDF, tạo ra môi trường thực thi lệnh đơn giản
  • ESP32-S3 có cấu trúc tài nguyên tương tự PC thời DOS, đồng thời tích hợp khả năng kết nối không dây
    • Dự án mô tả tiềm năng của con chip này là "công nghệ nhỏ gọn và thanh lịch", đồng thời tối thiểu hóa dung lượng mã

Cấu thành của BreezyBox

  • BreezyBox bao gồm vterm, VFS, theo dõi CWD, các lệnh kiểu UNIX và trình cài ứng dụng
    • Trình nạp ELF và chức năng liên kết động đã được tích hợp sẵn trong component ESP-IDF
  • Tên gọi được lấy cảm hứng từ BusyBox, và có dạng lớp không gian người dùng chạy trên FreeRTOS
    • Có thể thêm vào dự án ESP-IDF chỉ bằng một dòng và hoạt động ngay cả khi chỉ có I/O cơ bản

Đặc điểm của repository demo

  • Repository này là triển khai ví dụ của BreezyBox, được cấu hình cho một bo mạch cụ thể (Waveshare ESP32-S3-Touch-LCD-7B)
    • BreezyBox giao phần thiết lập màn hình và bo mạch cho firmware của người dùng
    • Người dùng có thể tham khảo mã nguồn để chỉnh sửa cho phù hợp với bo mạch hoặc màn hình của mình
  • Dùng control nhãn văn bản của LVGL giúp việc triển khai xuất ra LCD trở nên đơn giản, và cũng có thể chạy qua USB console

Cách sử dụng

  • Có thể fork rồi clone repository để chạy trên bo mạch của riêng mình
    • Đã được thử nghiệm trên bo mạch khoảng 40 euro, và cũng có thể dùng trên các bo LCD S3 giá rẻ
    • Nếu dùng USB console, có thể xem đầu ra mã ANSI trong IDF Monitor của VSCode hoặc Tabby
  • Trình dựng font được tác giả tự viết, nhưng đây là phần triển khai tùy chọn nhằm đảm bảo hiệu năng trên 30FPS

Đóng góp và mở rộng

  • Dự án được phát hành theo giấy phép MIT, có thể tự do chỉnh sửa và phân phối
  • Các hạng mục kêu gọi đóng góp
    • Thêm ứng dụng ELF: có thể tham khảo ví dụ trong repository breezyapps để tạo ứng dụng mới
    • Ví dụ firmware cho nhiều bo mạch khác nhau: đề xuất nhiều dạng như dựa trên C/C++, có GUI, port game retro, v.v.
  • Mục tiêu là giúp nhiều người dùng hơn tận dụng BreezyBox và mở rộng hệ sinh thái ví dụ có thể sao chép ngay lập tức

1 bình luận

 
GN⁺ 2026-02-09
Ý kiến trên Hacker News
  • Dự án này thật sự rất tuyệt. Tôi định sẽ tự mình thử
    Tôi cũng đã thấy thêm hai dự án liên quan

    1. Cộng đồng reddit r/xteinkereader đang phát triển các ứng dụng kiểu OS cho máy đọc sách điện tử Trung Quốc dựa trên esp32-s3
    2. Cũng có một dự án port Linux cho esp32-s3. S3 có MMU, nhưng có vẻ dự án này không sử dụng nó
      Boot-Linux-ESP32S3-Playground
    • XTEink không dùng ESP32-S3 mà dùng C3. Bo mạch S3 của OP có 8MB PSRAM, còn C3 chỉ có 384kB RAM, nên tạo ra khác biệt rất lớn khi build một OS nhúng
  • Điểm khởi động gần như tức thì thật sự rất ấn tượng. Nhìn các dự án như thế này hay Fruit Jam của Adafruit, có thể thấy rằng “loại bỏ sự phức tạp không cần thiết sẽ mang lại rất nhiều lợi ích”
    Tôi muốn đưa thứ như thế này cho con làm chiếc máy tính đầu tiên

    • Sẽ thật tuyệt nếu có một laptop giá $20 trên AliExpress dựa trên nền này
  • Vậy là đã quyết định được cuối tuần sau sẽ làm gì. Ban đầu tôi định mua một con esp32-s3 cho dự án khác, nhưng giờ chắc phải mua hai con

  • Tôi thấy giá trên hiệu năng của những bo này là quá điên rồ. Tôi định dùng nó để thay thế KVM
    Flash ESP32-Bus-Pirate rồi gắn vào thiết bị cần điều khiển từ xa thì cực kỳ tiện. Nó gần như không tốn điện nên tôi cứ để kết nối Wi‑Fi thường trực

    • Tôi tò mò không biết họ xử lý chuyện chia sẻ màn hình như thế nào. Tôi đang quản lý vài máy chủ repurposed, nhưng ngân sách không đủ để mua KVM chính thức nên muốn dùng cái này thay thế
  • Không biết có thể port để chạy trên rp2350 không

    • Có vẻ một phần là được. Shell chỉ đơn giản là linenoise với một ít mã glue. Tôi không rõ tình trạng nạp ELF trên rp2350 ra sao, nhưng trong ESP-IDF nó là một thành phần tiêu chuẩn nên có hy vọng
    • rp2350 hỗ trợ FreeRTOS, nên một bản port tương tự có lẽ khá đơn giản. Mã I/O DMA của Pico hơi khác thường, nhưng đây là con chip khá mạnh
  • Ồ, bạn là người làm ra xcc700 phải không! Tôi rất quan tâm tới việc dùng MCU cho tính toán đa dụng. Không biết có thể đẩy nó đi xa đến mức nào

    • Đúng vậy. Có khá nhiều yêu cầu về shell dùng trong demo xcc700 nên tôi đã công khai nó. ESP32-S3 mới chỉ cho thấy một phần cực nhỏ tiềm năng của nó
      Có thể bạn còn nhớ trước đây FabGL từng chạy demo game và mô phỏng DOS. Nhưng trên ESP-IDF mới thì rất khó cập nhật
      Vì vậy tôi đang làm lại nó theo kiến trúc mô-đun hơn. Để có thể duy trì lâu dài. Đã từng có người chạy cả mô phỏng các phiên bản MacOS cũ
  • Thật sự rất tuyệt! Phải cài ngay cái này lên M5Stack Cardputer

  • Không có mô hình bộ nhớ phẳng thì chẳng phải sẽ khó triển khai một OS thông thường sao? Amiga1000 cũng không có MMU, nhưng nó có mô hình bộ nhớ phẳng. Có lẽ đã phải làm khá nhiều việc phức tạp để lách qua điều này

    • Mô hình bộ nhớ là đủ phẳng. Vấn đề là RAM truyền thống chỉ khoảng 200kB. Bù lại có 8MB PSRAM, nhưng cần căn chỉnh 4 byte và tốc độ chậm
      Lý do khiến OS thông thường khó chạy trên nền tảng này là do thiếu cơ chế bảo vệ bộ nhớ. Nhưng tôi chỉ muốn tạo một shell và trình cài ứng dụng, nên mức đó là xử lý được
    • Lý do OS thông thường khó chạy trên SoC thường là do thiếu MMU. Với các ngôn ngữ không có truy cập con trỏ như Java hay JS thì không sao, nhưng ứng dụng desktop viết bằng C luôn cần địa chỉ ảo nhất quán
    • Tôi không quen với MCU lắm, nên muốn hỏi liệu bạn có thể giải thích kỹ hơn vấn đề này không
  • Đây là lần đầu tôi biết tới BreezyBox và thấy nó cực kỳ thú vị. Tôi không muốn phải bận tâm tới những thứ như cấu hình Wi‑Fi hay cập nhật, tôi chỉ muốn viết ứng dụng của mình
    Tôi không hiểu vì sao lại chưa có một OS vi điều khiển đơn giản để lo giúp những việc này. Cái này có thể trở thành nền tảng cho điều đó
    Tôi tò mò không biết đã có luồng cấu hình cho triển khai headless chưa (cấu hình Wi‑Fi khi flash, triển khai shell từ xa/web UI, v.v.)

    • BreezyBox vẫn còn ở giai đoạn phát triển rất sớm. Những gì bạn thấy trong demo gần như là tất cả. Nó chỉ có thể lan rộng nếu có thêm nhiều nhà phát triển bổ sung ứng dụng và tính năng
      Truy cập web cho cấu hình từ xa có vẻ hoàn toàn làm được. Đã có sẵn web server rồi, chỉ cần mở rộng để nó chạy mã phía máy chủ
  • Câu hỏi hơi cơ bản, nhưng cái này chỉ dành cho S3 hay C3 cũng chạy được?

    • Phần lớn có thể compile cho C3, C6, P4. Tuy nhiên xcc700 chỉ dành cho CPU Xtensa nên port sẽ khó hơn
      Các binary ELF cài bằng eget cũng phải được biên dịch lại cho RISC-V. Có lẽ nên thêm hỗ trợ manifest để phân biệt ELF theo từng nền tảng
      Ngoài ra cũng cần cân nhắc dung lượng PSRAM có bao nhiêu