Lộ trình tự học · bắt đầu từ con số 0 về embedded
Viết firmware ESP32-C6 bằng Rust, không dùng thư viện chuẩn
Từ dòng log đầu tiên trên serial monitor tới một thiết bị chạy pin, cập nhật firmware qua sóng, và tự xuất hiện trong Home Assistant. Ghi lại trong lúc làm, không phải viết lại sau khi xong.
Site này là sổ tay của một người đã viết Rust nhưng chưa từng đụng vi điều khiển. Nó không dạy Rust, và cũng không phải tuyển tập ví dụ chép được. Thứ nó cố giữ lại là cơ chế bên dưới và những chỗ đã trả giá — hai thứ mà tutorial thường bỏ qua vì chúng chỉ lộ ra khi mạch nằm trên bàn.
Nguyên tắc chi phối, lý do chọn ESP32-C6, ba đợt mua linh kiện mở khoá theo milestone, và lộ trình 7 giai đoạn với tiêu chí hoàn thành kiểm chứng được.
Tuần này làm gì Phiên học17 phiên chia theo khối, mỗi phiên một mục tiêu falsifiable. Giáo trình chi tiết soạn just-in-time, không soạn trước.
Tra nhanh giữa lúc đang đo Dụng cụCẩm nang đồng hồ vạn năng cho người chưa từng cầm: nghi thức bốn bước, bảng số kỳ vọng, và ba cách làm hỏng đồ.
Năm nguyên tắc chi phối toàn bộ
- Mua theo đợt, không mua một lần. Mỗi đợt được mở khoá bởi một milestone đã hoàn thành, không phải bởi hứng thú. Cách phổ biến nhất để dự án embedded chết là mua hết linh kiện trong tuần đầu, dùng 10%, rồi bỏ.
- Ưu tiên đo hơn đoán. Khi backend sai, log nói cho anh biết. Khi embedded sai, không có gì nói cả — có thể là code, dây lỏng, nguồn sụt áp, hoặc cảm biến hàng giả.
- Một biến số tại một thời điểm. Không đổi board, đổi cảm biến và nâng version HAL cùng lúc.
- Tách phần test được trên host ra khỏi firmware. Công thức bù
cảm biến, serialize gói, format payload — tất cả là code thuần, chạy
cargo testtrên máy tính. Chỉ phần đụng peripheral mới phải nạp lên board. - Không chuyển giai đoạn khi tiêu chí chưa đạt. "Về cơ bản là chạy" không tính.
Cách đọc site này
Mỗi trang mở đầu bằng cơ chế bên dưới, rồi mới tới việc cần làm. Thứ tự đó cố ý: biết vì sao một bước tồn tại thì lúc nó hỏng anh mới biết nhìn vào đâu.
Khẳng định nào có nguồn kiểm chứng được thì có một nút nhỏ ngay sau nó. Bấm vào để xem nguồn, và phần đọc thêm được tách riêng khỏi nguồn — hai thứ trả lời hai câu hỏi khác nhau.
Trang giáo trình phiên không bao giờ chứa lời giải cho phần code phải tự viết. Chuỗi lệnh vận hành thì gập trong spoiler để tự làm trước rồi mở ra đối chiếu.
Site cập nhật theo tiến độ thật. Chỗ nào là suy đoán chưa kiểm chứng thì được ghi rõ là suy đoán — kể cả khi suy đoán đó nghe hợp lý.