- 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
Ý 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
Boot-Linux-ESP32S3-Playground
Đ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
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
Blog so sánh các tùy chọn ESP32 SoC
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
Không biết có thể port để chạy trên rp2350 không
Ồ, 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
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
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
Đâ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.)
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?
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