ESP32-S3-DevKitC N16R8 CAM: Nhận diện board ESP32-S3-DevKitC N16R8 CAM
Mục tiêu bài 1:
Sau khi đọc xong, bạn sẽ:
- Nhận diện đúng board ESP32-S3-DevKitC N16R8 CAM (loại có camera DVP 24-pin + microSD + 2 USB-C).
- Biết các dấu hiệu “đúng loại/đúng dòng” để tránh mua nhầm.
- Có checklist kiểm tra nhanh board mới mua trong 10–15 phút.
Gợi ý chèn ảnh pinout bạn đã có ở đầu bài.
1) Board này là gì? Vì sao nhiều shop gọi “DevKitC”?
Board bạn đang có thường được gọi là ESP32-S3-CAM N16R8 (biến thể phổ biến của ESP32-S3). Nhiều shop đặt tên “DevKitC N16R8 CAM” để dễ tìm kiếm và dễ bán. Thực tế, đây là dev board mở rộng (có camera + microSD) chứ không phải “DevKitC chuẩn Espressif” theo kiểu dev board tối giản.
N16R8 thường được hiểu:
- N16: Flash ngoài 16MB
- R8: PSRAM ngoài 8MB
Điểm mạnh của biến thể CAM:
- Có sẵn cổng camera DVP 24-pin để gắn OV2640/OV5640…
- Có khe microSD để lưu ảnh/audio/log dữ liệu.
- Có 2 cổng USB-C (một cổng COM USB-UART, một cổng USB native/OTG).
2) Dấu hiệu nhận diện nhanh (nhìn là biết đúng loại)
2.1. Các “đặc trưng không thể nhầm”
- 2 cổng USB-C: thường in/khắc “USB” (native/OTG) và “COM” (USB-UART).
- Cổng camera DVP 24-pin (socket FPC) ở giữa board.
- Khe cắm microSD (thường ở phía trên hoặc mặt sau board tùy phiên bản).
- 2 nút: BOOT và RESET.
- RGB LED WS2812 (hay nằm ở GPIO48 theo pinout bạn gửi).
2.2. Các linh kiện bạn nên thấy trên board
- Module ESP32-S3-WROOM (N16R8) (phần shield kim loại).
- Chip USB-UART (thường CH343/CH9102/CP210x – tuỳ lô; nhiều ảnh bán hàng ghi CH343P).
- IC ổn áp (nhiều board dùng họ AMS/ASM1117 để hạ 5V xuống 3.3V).
Lưu ý: linh kiện có thể khác theo lô, nhưng “tính năng & layout tổng thể” sẽ giống.
3) Hiểu nhanh 2 cổng USB-C: cắm đúng để khỏi “tưởng hỏng”
Đây là lỗi người mới gặp nhiều nhất.
- Cổng COM: đi qua chip USB-UART → dùng để nạp code + Serial Monitor kiểu “cổ điển”. Máy thường nhận ra một cổng serial ngay.
- Cổng USB (Native/OTG): đi trực tiếp vào ESP32-S3 (USB native) → dùng cho USB-CDC, HID, MSC, debug… Tuỳ cấu hình Arduino/IDF mà máy có nhận hay không.
✅ Khuyến nghị khi mới bắt đầu: ưu tiên dùng cổng COM để nạp và xem Serial cho ổn định.
4) Checklist kiểm tra board mới mua (10–15 phút)
4.1. Kiểm tra cấp nguồn an toàn
- Chỉ cấp nguồn theo đúng chân: 5V hoặc 3V3 (nếu bạn biết chắc nguồn 3.3V sạch và đúng chuẩn).
- Không đưa trực tiếp pin Li-ion/LiPo 3.7V vào chân 3V3.
- Không cấp nguồn ngoài vào 5V/3V3 đồng thời khi đang cắm USB (tránh “đánh nhau nguồn” nếu board không có mạch bảo vệ tốt).
4.2. Kiểm tra nhận cổng trên máy tính
- Cắm vào COM → máy phải nhận một cổng serial (Windows sẽ hiện COMx; macOS/Linux sẽ có /dev/tty.*).
- Nếu cắm vào USB (native) mà không thấy gì, chưa kết luận hỏng — phần này phụ thuộc cấu hình USB-CDC.
4.3. Kiểm tra Flash/PSRAM đúng “N16R8” bằng Arduino IDE
Chuẩn bị:
- Arduino IDE v2 → Boards Manager → cài “esp32 by Espressif Systems”.
- Chọn board: ESP32S3 Dev Module (an toàn cho biến thể CAM).
- Trong Tools:
- PSRAM: Enabled
- (Nếu dùng cổng USB native) USB CDC On Boot: Enabled (tuỳ trường hợp)
Code test nhanh (nạp xong mở Serial Monitor 115200):
#include <Arduino.h>
void setup() {
Serial.begin(115200);
delay(1500);
Serial.println("=== ESP32-S3 Board Check ===");
Serial.printf("Chip model: %s\n", ESP.getChipModel());
Serial.printf("Chip rev: %d\n", ESP.getChipRevision());
Serial.printf("CPU freq: %u MHz\n", ESP.getCpuFreqMHz());
Serial.printf("Flash size: %u bytes (~%u MB)\n",
ESP.getFlashChipSize(),
ESP.getFlashChipSize() / (1024 * 1024));
bool hasPsram = psramFound();
Serial.printf("PSRAM found: %s\n", hasPsram ? "YES" : "NO");
if (hasPsram) {
Serial.printf("Free PSRAM: %u bytes (~%u MB)\n",
ESP.getFreePsram(),
ESP.getFreePsram() / (1024 * 1024));
}
}
void loop() {}
Kỳ vọng đúng “N16R8”:
- Flash ~ 16MB
- PSRAM: YES và Free PSRAM thường vài MB (không phải đúng 8MB vì hệ thống/heap dùng một phần)
Nếu PSRAM = NO: 90% là do bạn chưa bật PSRAM trong Tools, hoặc chọn sai board/partition.
5) Đọc pinout theo “nhóm chức năng” để tránh đụng camera/SD
Trong các bài tiếp theo, mình sẽ đi sâu từng nhóm. Ở bài 1 bạn chỉ cần nhớ quy tắc:
- Chân dành cho Camera: đã được gán sẵn (SIOD/SIOC/VSYNC/HREF/XCLK/PCLK/Yx). Nếu bạn lấy các chân này cho LED/relay… thì camera sẽ lỗi.
- Chân dành cho microSD: thường có SD_CMD/SD_CLK/SD_DATA… Nếu dùng nhầm, SD mount fail.
- USB native thường dùng GPIO19/20 cho D-/D+ (theo pinout bạn gửi).
- BOOT strap hay nằm ở GPIO0 → hạn chế gắn ngoại vi kéo mức logic “lạ” lúc boot.
6) Bạn sẽ học gì ở bài 2?
- Danh sách GPIO an toàn để dùng cho I2C/SPI/UART/PWM (không đụng camera/SD/USB/strap).
- Danh sách GPIO nên tránh + lý do.
- Gợi ý sơ đồ nối nhanh: OLED/I2C, UART sensor, SPI module… phù hợp board CAM.


