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.
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ạn | Thời lượng | Việc |
|---|---|---|
| Mở đầu | 10 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. |
| Đóng | 15 phút, cứng | Dừng làm cái mới. Chụp ảnh breadboard, ghi 3 dòng, commit. |
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 và đã đ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
- 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.
- 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.
- 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ì.