Thiết kế gọn cho chatbot AI: microphone I²S, ampli loa, microSD riêng, pin 18650 và ba phương án màn hình — OLED 0.96″, LCD 1.54″ hoặc TFT 2.8″ cảm ứng.
Đặt PCB và linh kiện đi kèm — 50.000₫
Giá 50.000₫/bộ, chưa bao gồm phí vận chuyển.
Bao gồm: PCB, hàng rào chân cắm, tụ điện, điện trở và nút nhấn.
Chưa bao gồm: mạch sạc, microphone, MAX98357A, loa, màn hình và ESP32-S3 N16R8. Các linh kiện khác ngoài danh sách đi kèm cần chuẩn bị riêng.
Để đặt mua, vui lòng điền thông tin vào form bên dưới:
1. Tổng quan thiết kế
ESP32-S3 là trung tâm xử lý, kết nối Wi-Fi và chạy firmware chatbot. INMP441 thu âm qua I²S; MAX98357A khuếch đại tín hiệu I²S để phát ra loa. Module microSD riêng dùng các đường SPI GPIO11/12/13, với CS riêng ở GPIO19. PCB có ba vị trí header cho ba loại màn hình, nhưng mỗi lần chỉ lắp và cấu hình một loại.
Bài viết sử dụng ảnh PCB và thiết bị lắp ráp thực tế. Trước khi cấp nguồn, hãy đối chiếu silkscreen, sơ đồ nguyên lý và pinout của đúng bản bo với linh kiện thực tế.
▶ Video giới thiệu PCB
Xem nhanh PCB và thiết bị thực tế trước khi bắt đầu tìm hiểu linh kiện và các bước lắp ráp. Bấm Play để xem ngay trên trang.
2. Linh kiện cần chuẩn bị
Điều khiển và âm thanh
- ESP32-S3 DevKit tương thích chân cắm trên PCB
- Microphone I²S INMP441
- Ampli I²S MAX98357A
- Loa phù hợp với công suất ampli
Hiển thị và lưu trữ
- Chọn một: OLED 0.96″ I²C
- Hoặc LCD 1.54″ SPI
- Hoặc TFT 2.8″ SPI có cảm ứng XPT2046
- Module microSD SPI và thẻ microSD
Nguồn và lắp ráp
- Pin 18650 có mạch bảo vệ
- Mạch sạc 1S kết hợp boost 5V/2A
- Công tắc ON/OFF trên đường 5V
- 2 tụ hóa 100 µF, dây, đầu nối và vỏ
Hình ảnh linh kiện




Một số ảnh linh kiện minh họa từ bộ kit KS5027 của Keyestudio; ảnh loa 2828 được cập nhật riêng. Mẫu thực tế có thể khác về hình dạng nhưng cần đúng thông số.
Kiểm tra trước khi mua: xác nhận điện áp đầu vào, dòng tải liên tục và pinout của từng module thực tế. Không phải module “boost 5V 2A” nào cũng duy trì được 2A từ một cell 18650 trong mọi điều kiện.
3. PCB và thiết bị lắp ráp thực tế
Năm ảnh dưới đây cho thấy hai mặt bo mạch, cách lắp hai loại màn hình và vị trí pin/thẻ microSD. Bấm ảnh để xem kích thước lớn.
Hai mặt PCB trước khi lắp linh kiện


Hai cấu hình đã lắp: OLED và TFT 1,54″


Mặt sau sau khi lắp pin và microSD

Riêng PCB V3 màu xanh lá, cần sửa header TFT 2,8″ bị ngược theo ghi chú bên dưới trước khi lắp. Màn 2,8″ sử dụng header TFT tương ứng sau khi sửa; màn 1,54″ và OLED là hai phương án thay thế. Mỗi lần chỉ lắp một loại màn hình và nạp đúng firmware của loại đó.
Lưu ý quan trọng: PCB V3 màu xanh lá có 3 lỗi cần sửa
Áp dụng riêng cho PCB V3 màu xanh lá. Người dùng bo này cần sửa các kết nối dưới đây trước khi lắp màn hình và cấp nguồn. Bảng GPIO trong bài thể hiện kết nối đúng sau khi sửa.
| Vị trí | Lỗi trên PCB V3 | Cách khắc phục |
|---|---|---|
| Màn hình TFT 1,54″ – BL | BL đang nối nhầm GPIO13. | Ngắt đường nối BL → GPIO13, sau đó dùng dây nối BL → GPIO18. |
| ADC đo điện áp pin | Tín hiệu ADC pin đang nối nhầm GPIO21. | Ngắt đường tín hiệu ADC pin → GPIO21, sau đó dùng dây nối đầu ra cầu chia áp đo pin → GPIO14. Không nối trực tiếp cực pin vào GPIO14. |
| Màn hình TFT 2,8″ cảm ứng | Header bị ngược và thiếu kết nối T_CS; MISO màn hình đang nối GPIO13. | Đối chiếu tên từng chân trên module và PCB để đấu lại đúng thứ tự; không cắm trực tiếp màn hình vào header bị ngược. Thêm dây T_CS → GPIO8. Ngắt đường MISO của màn hình → GPIO13, để MISO màn hình không nối. Chân LED nối VCC (3.3V). |
Phân biệt GPIO13: chỉ bỏ kết nối MISO của màn hình 2,8″; vẫn giữ Touch DO → GPIO13 và MISO của module microSD riêng → GPIO13. Bản 2,8″ không dùng GPIO8 cho LED xanh vì chân này dành cho T_CS.
Ngắt USB và pin trước khi sửa. Sau khi ngắt đường mạch cũ và hàn dây mới, dùng đồng hồ kiểm tra thông mạch, thứ tự chân VCC/GND và bảo đảm không chập trước khi cấp nguồn.
4. Chọn một trong ba màn hình
Ba header là các phương án thay thế, không lắp đồng thời. Chỉ cấp nguồn và tín hiệu cho loại màn hình đang dùng.
Mini · OLED 0.96″ I²C

Dùng nguồn 3.3V và GND từ PCB. Tín hiệu I²C:
- SDA — GPIO41
- SCL — GPIO42
Firmware phải dùng đúng driver, độ phân giải và địa chỉ I²C của module thực tế.
Standard · LCD 1.54″ SPI

Dùng chung nhóm chân LCD bên dưới. Không lắp hoặc khởi tạo phần cảm ứng:
MOSI 11 · CLK 12 · CS 3 · DC 10 · RST 9 · BL 18
Driver thường gặp là ST7789. Kiểm tra độ phân giải, offset và chiều xoay trong firmware.
Pro · TFT 2.8″ SPI Touch

Dùng chung bus LCD, thêm cảm ứng XPT2046:
Touch CS — GPIO8
Touch DIN = GPIO11, CLK = GPIO12, DO = GPIO13, CS = GPIO8; IRQ không nối. Màn hình dùng MOSI = GPIO11, CLK = GPIO12, CS = GPIO3, DC = GPIO10, RST = GPIO9; LED nối VCC (3.3V), không dùng BL/GPIO18. Chân MISO của màn hình không nối.
Chọn đúng cấu hình: OLED dùng I²C GPIO41/42; hai bản TFT dùng SPI GPIO11/12. GPIO47 là nút cảm ứng riêng của bản OLED hoặc DHT11 tùy chọn của bản TFT, theo bảng GPIO bên dưới.
5. Bảng GPIO cho ba cấu hình màn hình
Bảng chân cập nhật cho PCB ESP32-S3 N16R8. Các số trong bảng là số GPIO; dấu “—” nghĩa là không sử dụng trong cấu hình tương ứng.
| Thiết bị / tín hiệu | 0.96″ OLED | 1.54″ TFT | 2.8″ TFT touch |
|---|---|---|---|
| Màn hình SDA / MOSI | 41 | 11 | 11 |
| Màn hình SCL / CLK | 42 | 12 | 12 |
| Màn hình CS | — | 3 | 3 |
| Màn hình DC | — | 10 | 10 |
| Màn hình RST | — | 9 | 9 |
| Đèn nền BL / LED | — | BL → GPIO18 | LED → VCC (3.3V) |
| Touch DIN | — | — | 11 |
| Touch CLK | — | — | 12 |
| Touch DO | — | — | 13 |
| Touch CS | — | — | 8 |
| Touch IRQ | — | — | Không nối |
| SD MOSI | 11 | 11 | 11 |
| SD CLK | 12 | 12 | 12 |
| SD MISO | 13 | 13 | 13 |
| SD CS | 19 | 19 | 19 |
| Micro WS | 4 | 4 | 4 |
| Micro SCK / BCLK | 5 | 5 | 5 |
| Micro DATA | 6 | 6 | 6 |
| Loa DATA | 7 | 7 | 7 |
| Loa BCLK | 15 | 15 | 15 |
| Loa LRCK / WS | 16 | 16 | 16 |
| Nút BOOT | 0 | 0 | 0 |
| Nút tăng âm lượng | 40 | 40 | 40 |
| Nút giảm âm lượng | 39 | 39 | 39 |
| Nút cảm ứng riêng | 47 | — | — |
| Đo điện áp pin | 14 | 14 | 14 |
| LED tích hợp | 48 | 48 | 48 |
| DHT11 DATA (tùy chọn) | — | 47 | 47 |
| LED xanh ngoài (mặc định) | — | 8 | Không dùng (GPIO8 dành cho Touch CS) |
| LED đỏ ngoài (mặc định) | — | 17 | 17 |
SPI: màn TFT và thẻ SD dùng các đường MOSI = GPIO11, CLK = GPIO12; MISO của SD và DO của touch dùng GPIO13. Chọn thiết bị bằng CS riêng: màn hình = GPIO3, SD = GPIO19, touch = GPIO8. OLED dùng I²C trên GPIO41/42.
GPIO47 theo cấu hình: bản OLED dùng nút cảm ứng riêng; hai bản TFT dành chân này cho DHT11 tùy chọn. LED xanh GPIO8 chỉ dùng ở bản TFT 1.54″; bản 2.8″ dành GPIO8 cho Touch CS, không dùng chân này cho LED ngoài. LED đỏ dùng GPIO17.
Đo pin: tín hiệu qua cầu chia áp vào GPIO14. Không nối trực tiếp cực pin vào GPIO; hệ số chia áp phải khớp PCB và firmware.
6. Sơ đồ nguồn

Pin 18650 cấp cho mạch sạc/boost. Đầu ra boost 5V đi qua công tắc ON/OFF rồi cấp riêng cho VIN của ESP32-S3 và VIN của MAX98357A. Các module logic còn lại dùng 3.3V từ ESP32-S3.
PIN 18650 (1 cell)
│
▼
MẠCH SẠC 1S + BOOST 5V/2A
│ +5V
▼
CÔNG TẮC ON/OFF
│
├──► VIN ESP32-S3 (5V) [C1 100µF → GND]
│
└──► VIN MAX98357A (5V) [C2 100µF → GND]
ESP32-S3 3V3 ──► INMP441, microSD, màn hình đang chọn
ESP32-S3 GPIO ─► tín hiệu I²S / SPI / I²C
MAX98357A OUT ─► loa
Chung GND: nối mass của boost, ESP32-S3, MAX98357A và các module làm một. Đặt đúng cực tụ hóa: cực dương vào VIN, cực âm vào GND. Không đặt tụ nối tiếp với nguồn.
Hai tụ 100 µF giảm sụt áp tức thời gần tải; tụ không thay thế một bộ boost đủ dòng, dây nguồn phù hợp và bố trí mass tốt. Chọn tụ có điện áp định mức trên 5V (thường 10V hoặc 16V) và lắp đúng cực.
INMP441, microSD và màn hình lấy 3.3V từ ESP32-S3. Cần kiểm tra khả năng dòng của bộ ổn áp 3.3V, nhất là đèn nền TFT 2.8″. Không cấp 5V vào chân nguồn 3.3V của module.
Pin 18650 là cell Li-ion danh định khoảng 3.6–3.7V. Mạch phải hỗ trợ đúng cấu hình một cell, có bảo vệ quá sạc/quá xả/quá dòng và khả năng sạc phù hợp. Không dùng module sạc 1S với pack nhiều cell mắc nối tiếp.
7. Các bước lắp ráp
- Kiểm tra PCB khi chưa cấp điện. So sánh mặt trước/sau với silkscreen của bo thật; xác định cực pin, VIN, GND, các header màn hình và thứ tự chân microSD.
- Lắp ESP32-S3. Canh đúng hướng cổng USB và hàng chân; hàn chắc, kiểm tra không chập giữa 5V, 3V3 và GND.
- Lắp microphone INMP441. Nối WS = 4, SCK = 5, DATA = 6; cấp 3.3V và GND. Xác nhận cổng âm thanh của module không bị vỏ che.
- Lắp MAX98357A và loa. Nối DOUT = 7, BCLK = 15, LRCK = 16; cấp VIN từ 5V sau công tắc và nối chung GND. Đặt tụ 100 µF sát VIN/GND của ampli. Nối loa đúng đầu ra của module, không nối một đầu loa xuống GND nếu đầu ra là cầu.
- Lắp microSD riêng. Nối MOSI = 11, CLK = 12, MISO = 13, CS = 19; cấp 3.3V và GND. Các đường SPI được dùng chung với màn TFT và touch, mỗi thiết bị có CS riêng. Dùng thẻ đã định dạng theo yêu cầu firmware.

Module microSD SPI; kiểm tra thứ tự chân trên module trước khi đấu dây. - Lắp đúng một màn hình. OLED dùng SDA = 41, SCL = 42; LCD 1.54″ dùng bus LCD, không cảm ứng; TFT 2.8″ dùng bus LCD và Touch CS = 8 nếu module có XPT2046. Không lắp chồng hoặc đấu song song nhiều header.
- Lắp mạch nguồn và công tắc. Đấu pin đúng cực vào mạch sạc/boost 1S. Nối đầu ra 5V của boost qua công tắc rồi phân nhánh đến VIN ESP32-S3 và VIN MAX98357A. Thêm tụ 100 µF tại mỗi VIN và nối chung GND.
- Lắp pin và cố định cơ khí. Chỉ đặt pin vào khay sau khi đã xác nhận cực tính và không có mối hàn nào có thể cọ rách lớp bọc cell. Không để pin bị ép, cong hoặc nóng.
- Đo điện áp trước khi cắm ESP32-S3. Khi chưa gắn board/module, bật nguồn và đo đầu ra: xác nhận đúng khoảng 5V, không đảo cực, công tắc ngắt/mở đúng. Tắt nguồn trước khi hoàn tất lắp ráp.
8. Kiểm tra và chạy thử
- Đo thông mạch để chắc chắn 5V không chập xuống GND; xác nhận hai tụ lắp đúng cực.
- Cấp nguồn USB cho ESP32-S3 trước, chưa gắn loa lớn; xác nhận firmware khởi động và nhận đúng màn hình.
- Thử hiển thị trước, rồi thử đọc thẻ microSD. Kiểm tra SD CS = GPIO19 và các đường MOSI/CLK/MISO = GPIO11/12/13.
- Thử thu mic và phát âm thanh ở âm lượng nhỏ. Nếu ESP32-S3 reset khi loa phát, kiểm tra dòng boost, sụt áp trên dây, điểm GND và tụ lọc.
- Thử pin: đo điện áp tại GPIO14 qua cầu chia áp. Không đưa trực tiếp điện áp pin vào GPIO; hệ số chia phải khớp với firmware.
- Kiểm tra công tắc cắt toàn bộ tải như dự kiến và kiểm tra sạc pin theo chỉ báo trên module sạc.
Chân đo điện áp pin là GPIO14 ở cả ba cấu hình. Tính năng hiển thị phần trăm pin cần được hiệu chuẩn theo cầu chia áp trên PCB và cell thực tế.
9. Nạp firmware và cấu hình Wi-Fi
Firmware chatbot và công cụ nạp được cập nhật tại trang Nạp firmware của VdLapTrinh.
Chọn đúng firmware: với PCB tự lắp trong bài, chọn đúng mẫu OLED 0,96″, TFT ST7789 1,54″ hoặc TFT 2,8″ cảm ứng tại trang nạp. Bấm Kết nối USB, chọn cổng rồi bấm Nạp firmware trong hộp thoại khi cấu hình đã có tệp phát hành. Không chọn Freenove cho PCB tự lắp.
9.1. Hoàn tất nạp firmware (Flashing Complete)
Sau khi công cụ báo nạp xong, rút cáp USB, cấp nguồn cho thiết bị và nhấn nút RST trên board ESP32-S3 để khởi động lại. Thiết bị sẽ vào chế độ cấu hình Wi-Fi.

9.2. Cấu hình Wi-Fi cho thiết bị (How to Configure Device Wi-Fi)
- Giữ thiết bị đang cấp nguồn và nhấn RST để vào chế độ cấu hình. Đèn RGB (nếu có) nhấp nháy xanh dương.
- Trên điện thoại hoặc máy tính, mở danh sách Wi-Fi và kết nối mạng Xiaozhi-XXXXXX do thiết bị phát ra.
- Trình duyệt thường tự mở trang cấu hình. Nếu không, truy cập
http://192.168.4.1. - Chọn mạng Wi-Fi 2.4 GHz, nhập mật khẩu rồi nhấn Connect. Với hotspot iPhone, bật “Maximum Compatibility”.
- Khi trang hiện Done, thiết bị tự khởi động lại sau khoảng 3 giây.
Ảnh minh họa từ tài liệu KS5027 của Keyestudio.
Cấu hình lại: nếu board có nút cấu hình riêng, giữ nút đó rồi nhấn RST; nhả RST trước, sau đó nhả nút cấu hình. PCB trong bài không có nút này — Touch CS của bản 2.8″ dùng GPIO8 — nên hãy dùng cách cấu hình lại của bản firmware đang nạp. Với firmware từ 0.2.2, thiết bị tự về chế độ cấu hình sau ba lần kết nối Wi-Fi thất bại.
Đèn trạng thái (nếu board có LED RGB): xanh dương nháy = đang kết nối; xanh lá nháy = đã kết nối; xanh dương sáng = đang cập nhật OTA; đỏ = đang ghi âm; xanh lá sáng = đang phát âm thanh.
9.3. Thêm thiết bị vào Xiaozhi
- Sau khi kết nối Wi-Fi, thiết bị đọc một mã xác minh gồm 6 chữ số. Có thể đánh thức thiết bị bằng giọng nói để nghe lại mã.
- Mở xiaozhi.me, đăng nhập và vào Console.
- Tạo agent, đặt tên và chọn giọng nói.
- Chọn Add New Device, nhập mã 6 số và lưu.
- Cấu hình vai trò và mô hình AI, sau đó lưu lại.
9.4. Khởi động lại và bắt đầu trò chuyện
Nhấn RST hoặc ngắt nguồn rồi cấp lại. Sau khi đèn báo kết nối xanh, đánh thức thiết bị bằng câu lệnh thoại để bắt đầu trò chuyện.
Restart the Xiao Zhi AI Chatbot to start chatting! — Khởi động lại Xiao Zhi AI Chatbot để bắt đầu trò chuyện.
10. Lưu ý firmware và an toàn
- Chọn đúng cấu hình màn hình/driver, độ phân giải, chiều xoay, offset và chế độ màu. Tên GPIO đúng vẫn chưa đủ để bảo đảm ảnh hiển thị đúng.
- OLED SSD1306 128×64 dùng SDA = GPIO41, SCL = GPIO42; cấu hình này có nút cảm ứng riêng GPIO47 và không dùng LED ngoài theo bảng.
- Màn 1.54″ bỏ toàn bộ phần cảm ứng. TFT 2.8″ chỉ dùng cảm ứng nếu đúng controller XPT2046; GPIO8 là CS, IRQ không nối theo config hiện tại.
- Module microSD riêng dùng MOSI = GPIO11, CLK = GPIO12, MISO = GPIO13 và CS = GPIO19. Màn TFT và touch dùng chung các đường SPI với CS riêng; firmware phải cấu hình phù hợp.
- Ở hai bản TFT, DHT11 DATA = GPIO47 là tùy chọn và LED đỏ = GPIO17. LED xanh GPIO8 chỉ dùng ở bản 1.54″; bản 2.8″ dành GPIO8 cho Touch CS. Không áp dụng các chức năng này cho bản OLED.
- Ảnh thực tế giúp nhận biết vị trí lắp; trước khi cấp nguồn vẫn cần đối chiếu nhãn chân, cực tính, bảng GPIO và kiểm tra mối hàn trên bo.
Bảng GPIO đã được cập nhật theo ba cấu hình màn hình của PCB. Các thông số như dòng loa, dung lượng pin, IC sạc/boost và loại panel màn hình cần được xác nhận theo linh kiện thực tế.

