
Đọc hiểu Gerber File và đặt hàng PCB tại nhà máy
Gerber layer là gì, cách kiểm tra file Gerber trước khi gửi đi, và quy trình đặt hàng PCB tại nhà máy nói chung — minh họa bằng bộ Gerber xuất ra từ mạch ESP32 + DHT22.
Bài này giải thích ý nghĩa từng lớp trong bộ file Gerber xuất ra từ KiCad, cách kiểm tra chúng bằng Gerber Viewer trước khi gửi đi, và quy trình đặt hàng PCB tại nhà máy nói chung — dùng bộ Gerber của mạch ESP32 DevKit V4 + DHT22 làm ví dụ minh họa.
Hướng dẫn chi tiết
Gerber layer nghĩa là gì, cách kiểm tra bộ Gerber bằng Gerber Viewer, và quy trình đặt hàng PCB tại nhà máy nói chung — minh họa bằng bộ Gerber xuất từ mạch ESP32 + DHT22.
1. Giới thiệu
Gerber là định dạng file tiêu chuẩn ngành mà hầu như mọi nhà máy sản xuất PCB trên thế giới đều đọc được — nó mô tả hình học của từng lớp trên board (đồng, mặt nạ hàn, in lụa, viền board...) dưới dạng vector 2D, kèm theo file khoan riêng cho các lỗ pad/via. Hiểu đúng ý nghĩa từng lớp Gerber giúp bạn tự kiểm tra thiết kế trước khi gửi đi, tránh đặt nhầm board bị lỗi vì thiếu layer hay sai kích thước lỗ khoan. Bài này giải thích các lớp Gerber phổ biến, cách xem lại bằng Gerber Viewer, và quy trình đặt hàng chung tại nhà máy PCB — dùng bộ Gerber xuất ra từ mạch ESP32 DevKit V4 + DHT22 làm ví dụ minh họa xuyên suốt.
2. Linh kiện cần có (mạch dùng để xuất Gerber minh họa)
| Linh kiện | Số lượng | Ghi chú |
|---|---|---|
| ESP32 DevKit V4 | 1 | Board điều khiển chính |
| DHT22 (AM2302) | 1 | Cảm biến ví dụ, sẽ xuất hiện trên PCB layout |
3. Sơ đồ kết nối
| DHT22 | ESP32 DevKit V4 |
|---|---|
| VCC | 3V3 |
| GND | GND |
| DATA | GPIO4 |
4. Các lớp Gerber cần biết
| Lớp (Layer) | Ý nghĩa |
|---|---|
| F.Cu / B.Cu | Lớp đồng mặt trên (Front Copper) và mặt dưới (Back Copper) — nơi các track tín hiệu và pad thực sự dẫn điện |
| F.Mask / B.Mask | Lớp mặt nạ hàn (Soldermask) — vùng KHÔNG phủ sơn cách điện, để lộ đồng cho việc hàn linh kiện; vùng còn lại được phủ sơn (thường màu xanh lá) bảo vệ đồng khỏi oxy hóa/chập mạch |
| F.SilkS / B.SilkS | Lớp in lụa (Silkscreen) — chữ, ký hiệu, viền linh kiện in trên bề mặt board để người lắp ráp dễ nhận diện vị trí/chân linh kiện |
| F.Paste / B.Paste | Lớp keo hàn (Solder Paste) — chỉ cần thiết khi làm stencil cho hàn SMD reflow, không bắt buộc với board hàn tay đơn giản |
| Edge.Cuts | Đường viền cắt board (Board Outline) — xác định hình dạng và kích thước vật lý cuối cùng của PCB |
| Drill File (Excellon) | Không phải Gerber thuần nhưng luôn đi kèm — danh sách tọa độ và đường kính từng lỗ khoan (pad xuyên lỗ, via, lỗ vít cố định) |
Với mạch ESP32 + DHT22 trong bài, board PCB tối thiểu cần có: F.Cu (đồng nối 3 tín hiệu VCC/GND/DATA), F.Mask, F.SilkS (in tên linh kiện/chân), Edge.Cuts, và Drill file cho các pad THT của header ESP32 và DHT22.
5. Kiểm tra Gerber bằng Gerber Viewer trước khi gửi đi
Sau khi xuất Gerber từ KiCad (File → Fabrication Outputs → Gerbers, kèm Generate Drill Files), luôn mở lại toàn bộ bộ file bằng Gerber Viewer (tích hợp sẵn trong KiCad, hoặc công cụ xem online của nhà máy) để kiểm tra chéo trước khi gửi:
- Bật/tắt từng lớp riêng lẻ để chắc chắn không thiếu layer nào (đặc biệt Edge.Cuts — thiếu lớp này nhà máy sẽ không biết cắt board theo hình gì).
- Kiểm tra track và pad có hiển thị đúng vị trí như trong PCB Editor không — nếu lệch, có thể do xuất sai đơn vị (mm/inch) hoặc sai gốc tọa độ (origin) khi export.
- Kiểm tra lớp Silkscreen không đè lên pad hở đồng (silkscreen over pad) — lỗi này khiến chữ in bị mất hoặc pad bị che, gây khó khăn khi hàn.
- Đối chiếu số lượng lỗ khoan trong Drill file với số lượng pad THT thực tế — thiếu lỗ khoan nghĩa là linh kiện đó sẽ không lắp được.
6. Quy trình đặt hàng chung tại nhà máy PCB
Hầu hết nhà máy chế tạo PCB áp dụng quy trình đặt hàng tương tự nhau:
- Nén file: gộp toàn bộ Gerber + Drill file vào một file .zip duy nhất.
- Tải lên hệ thống đặt hàng: hầu hết nhà máy có công cụ tự động parse Gerber và hiển thị preview 2D/3D để bạn xác nhận trước khi đặt.
- Chọn thông số sản xuất: số lớp đồng, kích thước board, độ dày board (thường 1.6mm mặc định), màu solder mask, hoàn thiện bề mặt (HASL, ENIG...), số lượng đặt.
- Xác nhận preview và thanh toán: nhà máy thường tự động chạy DRC nội bộ theo năng lực sản xuất của họ — nếu phát hiện lỗi (track quá mảnh, khoảng cách quá gần), họ sẽ báo lại trước khi sản xuất.
- Sản xuất và giao hàng: thời gian sản xuất tiêu chuẩn (không đẩy nhanh) thường vài ngày làm việc, cộng thêm thời gian vận chuyển tùy vị trí.
Giá thành cụ thể phụ thuộc vào số lớp, kích thước, số lượng và nhà máy — bài này chỉ mô tả quy trình chung, không nêu một mức giá hay nhà cung cấp cụ thể vì thị trường thay đổi liên tục.
7. Code mẫu ESP32 + DHT22 (mạch dùng để xuất Gerber minh họa)
#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const unsigned long TELEMETRY_INTERVAL_MS = 2000;
unsigned long lastTelemetryAt = 0;
void setup() {
Serial.begin(115200);
delay(200);
Serial.println();
Serial.println(F("=== ESP32 + DHT22 - Vi du minh hoa cho bai viet KiCad/PCB ==="));
Serial.println(F("Boot OK. Khoi tao cam bien DHT22..."));
dht.begin();
Serial.println(F("San sang doc du lieu."));
}
void loop() {
unsigned long now = millis();
if (now - lastTelemetryAt >= TELEMETRY_INTERVAL_MS) {
lastTelemetryAt = now;
float humidity = dht.readHumidity();
float temperatureC = dht.readTemperature();
Serial.print(F("{\"temperature_c\":"));
if (isnan(temperatureC)) {
Serial.print(F("null"));
} else {
Serial.print(temperatureC, 1);
}
Serial.print(F(",\"humidity_pct\":"));
if (isnan(humidity)) {
Serial.print(F("null"));
} else {
Serial.print(humidity, 1);
}
Serial.print(F(",\"uptime_ms\":"));
Serial.print(now);
Serial.println(F("}"));
if (isnan(humidity) || isnan(temperatureC)) {
Serial.println(F("[WARN] Doc cam bien DHT22 that bai - kiem tra day noi hoac dien tro keo len DATA."));
}
}
}
8. Lỗi thường gặp
| Lỗi | Nguyên nhân | Cách sửa |
|---|---|---|
| Nhà máy báo "missing outline layer" | Quên bật Edge.Cuts khi xuất Fabrication Outputs | Xuất lại Gerber, đảm bảo Edge.Cuts được chọn trong danh sách layer |
| Board về không đúng kích thước như thiết kế | Xuất Gerber sai đơn vị hoặc scale trong hộp thoại Plot | Kiểm tra lại đơn vị (mm) và xác nhận qua Gerber Viewer trước khi gửi, đối chiếu kích thước hiển thị với thiết kế gốc |
| Lỗ khoan bị thiếu hoặc sai vị trí | Quên tick "Generate Drill Files" hoặc dùng nhầm định dạng khoan không tương thích nhà máy | Xuất lại Drill File ở định dạng Excellon, kiểm tra số lượng lỗ khớp với số pad THT |
| Chữ Silkscreen bị mờ/mất trên board thật | Silkscreen đè lên vùng hở đồng (pad) bị nhà máy tự động cắt bớt để tránh hàn dính | Kiểm tra trong Gerber Viewer, dịch chuyển text silkscreen ra khỏi vùng pad trước khi xuất lại |
9. Tổng kết
Một bộ Gerber hoàn chỉnh gồm các lớp đồng (F.Cu/B.Cu), mặt nạ hàn (Mask), in lụa (SilkS), viền board (Edge.Cuts) và file khoan (Drill) đi kèm. Trước khi gửi cho nhà máy, luôn mở lại bằng Gerber Viewer để kiểm tra đủ layer, đúng kích thước, và không có lỗi hiển thị bất thường. Quy trình đặt hàng ở hầu hết nhà máy đều theo cùng một luồng: nén file → tải lên → xác nhận preview → thanh toán → sản xuất → giao hàng — nắm được luồng này giúp bạn tự tin đặt PCB đầu tiên mà không phụ thuộc vào một nhà cung cấp cụ thể nào.