ESP32-C6 / Rust

Kế hoạch · cách vận hành

Nhịp làm việc và cách không bỏ cuộc

Một phiên chính mỗi tuần là nhịp mong manh nhất có thể duy trì được với embedded. Trang này nói về những quy tắc giữ cho nó không chết.

Phiên chínhmục tiêu 2h, đụng phần cứng
Phiên phụ30–45', không cần board
Quy tắc cứng15 phút cuối là bất khả xâm phạm

Hai loại phiên, và vì sao phải tách

Phiên chính — dài, mục tiêu 2h, là phiên đụng phần cứng: nối dây, đo, flash, debug. Những việc cần mạch đang cắm sẵn và không muốn tháo ra giữa chừng.

Phiên phụ — ngắn, 30–45 phút, dùng cho việc không cần board: đọc datasheet, viết và cargo test phần code thuần (công thức bù, serialize, payload MQTT), đọc examples/ của upstream Nguồn source · ví dụ esp-rs/esp-hal — examples/ và qa-test/ Tài liệu thật của dự án. README nói thẳng: xem examples ở đúng tag của bản esp-hal đang dùng, đừng đọc nhánh main. Mở trong tab mới · Esc để đóng .

Tách như vậy thì một phiên phụ 30 phút vẫn có giá trị thật, và phiên chính không bị tốn vào việc đọc tài liệu — thứ hoàn toàn làm được ở chỗ khác.

Cấu trúc một phiên chính

Đặt mục tiêu 2 giờ, không phải 3.

ĐoạnThời lượngViệc
Mở đầu10 phútĐọc lại 3 dòng ghi chú và ảnh breadboard phiên trước. Không viết code.
Thân~95 phútĐúng một mục tiêu. Không nhảy sang việc khác dù có ngứa tay.
Đóng15 phút, cứngDừng làm cái mới. Chụp ảnh breadboard, ghi 3 dòng, commit.
Phần hay bị bỏ nhất, và bỏ nó là thứ giết cả mô hình

Phần "đóng" là phần người mới hay cắt đi khi thấy còn đang có đà. Nhưng cách nhau một tuần là đủ để quên mạch đang cắm gì và lỗi đang mở là lỗi nào — tuần sau mất 30 phút chỉ để nhớ lại, tức là một phần tư phiên.

Ba dòng phải ghi, không hơn:

  • Đang ở đâu
  • Lỗi đang mở
  • Việc đầu tiên của phiên sau

Quy tắc gia hạn

Được kéo sang giờ thứ ba chỉ khi đang có đà — đang lần ra manh mối, mỗi phép đo cho thêm thông tin.

Không bao giờ gia hạn khi đang bí. Giờ thứ ba lúc bí là giờ anh sửa lung tung mà không ghi lại, và kết thúc phiên ở trạng thái tệ hơn lúc bắt đầu — tuần sau phải gỡ lại.

Có một chi tiết tâm lý đáng để ý ở đây: đặt mục tiêu 2h rồi làm 3h là thắng lợi; đặt 3h rồi bỏ ở 2h là cảm giác thất bại. Cùng một lượng công việc, hai cảm giác khác nhau. Mà cảm giác thất bại lặp vài lần là bỏ cuộc.

Quy tắc dừng sớm

Nếu bí quá 30 phút đã đi đo mà vẫn không ra — hoặc nếu nhận ra mình đang đổi thứ này thứ kia mà không ghi lại — thì dừng luôn, làm phần đóng, để dành cho phiên phụ đọc datasheet.

Một phiên ngắn kết thúc gọn gàng hơn hẳn một phiên dài kết thúc trong đống rối.

Quy tắc 30 phút

Bí quá 30 phút thì dừng đọc code, đi đo.

  • Đo áp trên chân nguồn
  • Đo thông mạch từng sợi dây dupont
  • Cắm logic analyzer Đọc thêm tài liệu chính chủ sigrok wiki — PulseView Phần mềm bắt và giải mã waveform; con trỏ đo khoảng thời gian nằm ở đây. Mở trong tab mới · Esc để đóng

Phần lớn lỗi của người mới nằm ở lớp vật lý, và lớp vật lý là lớp duy nhất mà đọc code không bao giờ tìm ra.

Sổ nhật ký lỗi

Mỗi lỗi tốn hơn 30 phút thì ghi lại ba thứ: triệu chứng, nguyên nhân thật, và cách phát hiện ra.

Cột thứ ba là cột có giá trị nhất và cũng là cột hay bị bỏ. Biết "hoá ra là dây đứt" không giúp được gì cho lần sau; biết "phát hiện bằng cách đo thông mạch từng sợi thay vì nhìn" thì có.

Sau vài tháng, đây là tài sản giá trị nhất của dự án — hơn cả code.

Theo giai đoạn

GĐ 0–1 việc rời rạc, 90 phút là đủ. GĐ 2 và GĐ 5 có những chuỗi debug không chia nhỏ được — đó là chỗ nên dùng hết 2h và cân nhắc gia hạn.

Từ GĐ 5, chính khoảng trống giữa hai phiên chính trở thành bài test độ bền miễn phí: tiêu chí "chạy 72 giờ liên tục" vừa khít với một tuần lịch.

Board dự phòng và chuyện mua ở hai shop

Lý do mua 2 board ngay từ Đợt 1 không chỉ là vì GĐ 4 cần hai con. Nó còn là để khi một con chết — cắm ngược nguồn, chập chân — thì không mất một tuần chờ hàng, tức là mất một phiên.

Nếu mua board có antenna trên PCB clone thì nên mua ở hai shop khác nhau: hàng cùng lô thì lỗi cũng cùng lỗi, không dùng để loại trừ được. Với board dùng module bọc thiếc do Espressif làm thì chuyện này không quan trọng — phần RF nằm trong module, PCB clone không đụng tới Nguồn source · ví dụ wuxx/nanoESP32-C6 — schematic mã nguồn mở Board dùng trong lộ trình này: LED RGB nối GPIO nào, chân 3V3 lấy nguồn từ đâu, LDO là loại gì. Mở trong tab mới · Esc để đóng .

Một lợi ích phụ: hai board giống hệt nhau làm bài đo tỉ lệ mất gói ở GĐ 4 sạch hơn — hai đầu cùng antenna, nên con số phản ánh code chứ không phản ánh chênh lệch RF giữa hai loại board.

Nhịp tối thiểu: phiên chính, không bỏ. Embedded phạt nặng việc học ngắt quãng — không phải vì kiến thức bay mất, mà vì trạng thái vật lý trên bàn bay mất.

Đọc trước hoặc trong phiên