Repository navigation
Releases
ak-mcu-base v1.3.11 — 30/10/2026 · RAM 32K, bootloader 1.4.0
App 1.3.11, bootloader 1.4.0.
Nâng cấp từ v1.3.10: nạp bootloader 1.4.0 bằng ST-Link trước, rồi mới nạp app. App mặc định dùng RAM 32K, stack
bắt đầu ở0x20008000; bootloader 1.3.0 coi đó là bảng vector hỏng và cài lại bản BACKUP. Đã thử trên kit: không
treo, chỉ là app mới không chạy. Sau khi có bootloader 1.4.0 thì các lần sau nâng bằng OTA như cũ.
Không cần kit: bên trong firmware · lập trình kéo thả · chạy thử firmware trên trình duyệt
Thay đổi
- RAM 32K. Chip STM32L151CB của kit là loại Cat.2 (mã chip
0x429), có 32K RAM; base trước đây khai 16K, con số
sót lại từ kit 2.1. Bản demo giờ còn khoảng 24 KB RAM chưa dùng (trước: 8 KB). Chip Cat.1 (0x416, 16K) thì build
ram_size_kb = 16. Bootloader 1.4.0 vẫn link 16K nên khởi động trên mọi chip, và từ chối app 32K nếu chip báo Cat.1.
Lệnhinfoinchip id. - Bootloader 1.4.0: loader trên đường thứ hai (
BOOT_AUX_LOADER, mặc định tắt). Bật lên thì sau mỗi lần reset
bootloader nghe cổng RS485 300 ms; thiết bị chủ trên đường đó (ví dụ gateway) nạp lại được app hỏng mà không cần cổng
console. Bản đính kèm build với cờ tắt. - App Android nạp firmware qua USB OTG (
tools/android/): xem thông tin board, nạp.img, xác nhận, quay lui,
console. Giao thức đã qua test trên giả lậpak_sim. - Drone / bộ điều khiển bay (P0–P2): lõi điều khiển
src/fc, lệnh đofcbtrongkit_tools, tay điều khiển và bên
thu qua nRF24 (rc_tx,rc_rx), bảnfcchạy vòng điều khiển 500 Hz. Chi tiết trongdocs/drone-ak-mcu.md.
Đã kiểm tới đâu
- Máy tính và CI: 13 bộ test C đạt; CI build mọi bản STM32, bản trình duyệt, app Android và chạy bootloader + app
STM32G071 trong giả lập Renode. - Trên AK Base Kit (30/10/2026), bằng chính các file đính kèm: nạp bootloader 1.4.0 + demo 1.3.11 bằng ST-Link,
khởi động sạch; OTA qua UART ảnhapp(21,8 KB trong 3,2 s) rồi OTA trả lạidemo, cả hai tự xác nhận sau 30 s;
nhật ký sự cố trống. - RAM 32K trên kit: ghi/đọc qua SWD ở
0x20003FF0và0x20007FF0giữ hai giá trị khác nhau (không lặp địa chỉ);
demo chạy khối 3D, mê cung, tự chơi 60 s không lỗi; bootloader 16K gặp app 32K thì tự quay về bản BACKUP, không treo;
không nối SWD thì firmware vẫn đọc được mã chip. - Chưa thử: app Android trên điện thoại; bootloader bật
BOOT_AUX_LOADERtrên chip; bảnapp_mbmaster; FC, tay
điều khiển và bên thu trên phần cứng.
File đính kèm
| File | Nội dung |
|---|---|
ak-mcu-base_boot_v1.4.0.bin |
Bootloader. Nạp bằng ST-Link vào 0x08000000 (kèm reset: -rst) |
ak-mcu-base_demo_v1.3.11.img |
Demo trên AK Base Kit (gồm Blocks, Modbus slave và OTA) |
ak-mcu-base_app_v1.3.11.img |
App mẫu, Modbus slave (địa chỉ 1, 9600 8N1) |
ak-mcu-base_app_mbmaster_v1.3.11.img |
App mẫu, Modbus master |
ak-flash.apk |
App Android nạp firmware (bản build của CI, chưa chạy trên điện thoại) |
ak-foundation-logo-3d.akv |
Clip mẫu cho màn hình Video (không đổi) |
ba file .elf |
Để debug bootloader, bản slave và bản demo |
ak-mcu-base v1.3.10 — 16/10/2026 · OLED nhanh hơn, Modbus không chặn
App 1.3.10, bootloader 1.3.0 (không đổi, giống từng byte bản v1.3.9). Từ v1.3.9 nâng lên bằng OTA qua UART (tools/ak_fw.py) hoặc RS485 (tools/ak_mb.py), không cần ST-Link. Từ bản cũ hơn v1.3.9: làm theo mục "Nâng cấp từ v1.3.8" của v1.3.9.
Không cần kit: bên trong firmware · lập trình kéo thả · chạy thử firmware trên trình duyệt
Thay đổi
- OLED chỉ gửi đoạn cột đã đổi.
gfx_flush()gửi trong mỗi trang từ cột đổi đầu tới cột đổi cuối (kit_lcd_write(page, x, data, n)), lệnhuiin số byte của khung trước. - Modbus slave không chặn.
hal_rs485_send()gửi bằng ngắt TXE, ngắt TC nhả chân hướng;mb_slave_poll()chỉ nhận khung khi đường dây đã im 3,5 ký tự. Trước đây mỗi câu trả lời giữ CPU 146–266 ms. COMMIT của OTA chỉ cài sau khi câu trả lời đã ra hết dây. - Kernel:
task_post_pure_msg_try(),task_post_common_msg_try()trả 0 khi pool đầy thay vì FATAL;AK_DYNAMIC_MSG_POOL_SIZE=0bỏ message động cùngmalloc/free(app −328 B flash). - Demo:
ui_scratch()320 B dùng chung cho bộ đệm lớn của màn hình đang mở (−376 B RAM). - Build và CI: CMake
-DAK_APP=demo|kit_tools|remote,make stm32-all; CI build mọi bản và chặn khi RAM còn cho heap + stack dưới 3 KB;make test-fast. - Trang "Bên trong firmware" (
docs/play/inside.html): vòng lặp chính, mọi message thật của firmware, chạy từng bước.
Đã kiểm tới đâu
- Trên máy tính: 8 bộ test C (ASan/UBSan) đạt; sáu bản build sạch với
-Werror. - Trên AK Base Kit (16/10/2026), bản demo cùng mã nguồn (còn mang số 1.3.9), nạp qua UART. Thời gian một khung (trung bình 20 mẫu):
| Màn hình | v1.3.9 | v1.3.10 |
|---|---|---|
| Tetris | 15,4 ms | 3,8 ms |
| Pong RS485 | 13,8 ms | 2,6 ms |
| Khối 3D | 28,6 ms | 8,9 ms |
| Flappy | 35,0 ms | 16,9 ms |
| Mê cung 3D | 31,8 ms | 19,4 ms |
Màn OLED hiện đúng (nhìn bằng mắt). Modbus RS485 ở 9600 baud: đọc/ghi và exception đúng, 841 cặp ghi + đọc liên tục không lỗi, thời gian khung không đổi khi có tải; OTA 58 KB qua RS485 trong 78 s; ngắt OTA giữa chừng thì firmware đang chạy không bị đụng; Pong qua RS485 chạy được. Nhật ký sự cố trống.
- Chưa thử: các file đính kèm mang số 1.3.10 chưa nạp lên kit (chỉ khác số phiên bản); bản
appkhông demo vàapp_mbmastertrên kit.
File đính kèm
| File | Nội dung |
|---|---|
ak-mcu-base_boot_v1.3.0.bin |
Bootloader, không đổi. Nạp bằng ST-Link vào 0x08000000 khi kit chưa có bootloader 1.3.0 |
ak-mcu-base_demo_v1.3.10.img |
Demo trên AK Base Kit (gồm Blocks, Modbus slave và OTA) |
ak-mcu-base_app_v1.3.10.img |
App mẫu, Modbus slave (địa chỉ 1, 9600 8N1) |
ak-mcu-base_app_mbmaster_v1.3.10.img |
App mẫu, Modbus master |
ak-foundation-logo-3d.akv |
Clip mẫu cho màn hình Video (không đổi) |
ba file .elf |
Để debug bootloader, bản slave và bản demo |
ak-mcu-base v1.3.9 — 13/10/2026 · Bootloader 1.3.0: xác nhận và quay lui
App 1.3.9, bootloader 1.3.0. Gộp mọi thay đổi trên main sau v1.3.8: xác nhận và quay lui ảnh, ký số ảnh, gateway Modbus TCP ↔ RTU, port STM32G071, làm gọn kernel.
Không cần kit: lập trình kéo thả · chạy thử firmware trên trình duyệt · mô hình 3D của kit
Nâng cấp từ v1.3.8: đọc trước khi nạp
Bootloader 1.3.0 đổi định dạng bản ghi boot_ctrl, nên không nạp qua OTA được và bootloader mới không hiểu lệnh cài của app cũ:
- Nạp
ak-mcu-base_boot_v1.3.0.binbằng ST-Link vào0x08000000. - Nạp app (
.img) bằng ST-Link vào0x08003000. Nếu OTA từ app cũ, ảnh nằm trong STAGING nhưng không được cài, kit vẫn chạy app cũ (không hỏng). - Từ app 1.3.9 trở đi, OTA qua UART và RS485 chạy bình thường, đi qua đường cài mới.
Dump nguyên chip trước khi nạp đè nếu kit đã có firmware cần giữ.
Thay đổi
- Xác nhận và quay lui (bootloader 1.3.0). Phân vùng BACKUP 116K trên flash SPI ở
0xA0000. Trước khi cài, bootloader chép ảnh đang chạy sang BACKUP; ảnh mới chạy thử, app tự xác nhận sau 30 s (APP_FW_CONFIRM_MS) hoặc bằngfw confirm; không xác nhận sau 3 lượt thì bootloader cài lại BACKUP.fw rollbackquay lui chủ động. Lệnh shellfw. - Ký số ảnh ECDSA P-256 (biến thể build
AK_IMAGE_SIGN, bootloader 16K). Khoá riêng không nằm trong repo:python tools/ak_sign.py devkeytạo khoá phát triển trong từng clone. Bản phát hành này không đính kèm bản ký. - Gateway Modbus TCP ↔ RTU qua W5500 (
pio run -e app_gateway). Không đính kèm file. - Port STM32G071RB chạy trong Renode (
make stm32g0). - Làm gọn: header message 8 byte (-384 B RAM), bootloader bỏ
strcmp,timer_set()đặt lại timer đang chạy, sửa dấu trừ củaxprintf,-Werrorthêm vào PlatformIO. - Log bản ghi trên flash SPI cho trạm thời tiết (số liệu giữ qua reset).
Đã kiểm tới đâu
- Trên máy tính: 6 bộ test C (ASan/UBSan), test bộ dịch khối dưới Node, build sạch bảy bản, CI xanh (có cả biến thể ký số và Renode).
- Trên AK Base Kit 3.0 (13/10/2026), với bản build cùng mã nguồn nhưng còn mang số 1.3.8: bootloader 1.3.0 nạp bằng ST-Link; app nạp bằng ST-Link; OTA qua UART đi qua đường cài mới (sao lưu, chạy thử, tự xác nhận); tự quay lui khi ảnh thử không xác nhận sau 3 lượt;
fw rollback; chương trình khối còn sau khi rút USB và sau OTA; nhật ký sự cố trống. - Chưa thử: các file
.imgcủa bản này (mang số 1.3.9) chưa được nạp lên kit; cắt điện giữa lúc bootloader chép ảnh (chỉ có test mô phỏng); biến thể ký số trên kit; gateway với W5500 thật; port STM32G071 trên board thật.
File đính kèm
| File | Nội dung |
|---|---|
ak-mcu-base_boot_v1.3.0.bin |
Bootloader mới. Nạp bằng ST-Link vào 0x08000000 |
ak-mcu-base_demo_v1.3.9.img |
Demo trên AK Base Kit, 17 màn hình (gồm cả Blocks, Modbus slave và OTA) |
ak-foundation-logo-3d.akv |
Clip mẫu cho màn hình Video (không đổi). Nạp bằng tools/ak_video.py upload |
ak-mcu-base_app_v1.3.9.img |
App mẫu, Modbus slave (địa chỉ 1, 9600 8N1) |
ak-mcu-base_app_mbmaster_v1.3.9.img |
App mẫu, Modbus master (shell mb read / mb write) |
ba file .elf |
Để debug bootloader, bản slave và bản demo |
Nạp .img vào 0x08003000 bằng ST-Link (lần đầu, xem trên), về sau OTA: tools/ak_fw.py (UART) hay tools/ak_mb.py (RS485).
ak-mcu-base v1.3.8 — 12/10/2026 · Lập trình kéo thả
App 1.3.8, bootloader 1.2.1 (không đổi, giống từng byte với bản v1.3.7). Bản đầu tiên phát hành từ cấu trúc repo mới (src/).
Không cần kit: lập trình kéo thả · chạy thử firmware trên trình duyệt · mô hình 3D của kit
Thay đổi
- Lập trình kéo thả. Kéo các khối (đèn, còi, nút, màn hình, cảm biến, biến, vòng lặp), bấm Chạy: chương trình chạy ngay trên kit trong trang, hoặc gửi sang kit thật qua USB (Web Serial, Chrome hoặc Edge). Trang dịch khối thành bytecode; firmware có máy ảo
src/demo/blk_vm.cvà màn hình mới Blocks (màn hình thứ 17) chạy nó. Không biên dịch, không nạp firmware. Chương trình được lưu vào flash SPI của kit. Lệnh shellblk. Bảy ví dụ có sẵn. Chi tiết và giới hạn: docs/demo-kit.md. - Mô hình 3D của AK Base Kit 3.0: trang tự chứa, xoay được, nhấn vào linh kiện thì hiện thông tin.
- Kit làm dụng cụ đo trên bàn: lệnh
i2cquét và đọc cổng I2C1 (có trong bản demo). Bản buildkit_toolsthêm lệnhspibắt gói SPI trên J6 và lệnhrfnghe / phát bằng nRF24L01+. - Bản build
remotecho AK Base Kit 2.1 (chip 64K, nRF24L01+ và OLED SSD1306 trên bo), lệnh shellrc. kit.c: tuỳ chọnKIT_LCD_SSD1306vàKIT_LCD_COL_OFFSET; mặc định không đổi gì với kit 3.0.- Repo đổi cấu trúc và đổi tên thành
ak-mcu-base(07/10): mã nguồn trongsrc/, base cũ tronglegacy/.
Đã kiểm tới đâu
- Trên máy tính: 6 bộ test C (ASan/UBSan), test bộ dịch khối dưới Node, build sạch bốn bản.
- Trên AK Base Kit 3.0 (12/10/2026), với bản build cùng mã nguồn nhưng còn mang số 1.3.7: OTA qua UART; gửi ba chương trình khối qua UART và bằng nút gửi của trang (Web Serial); màn hình đúng như bản giả lập; nút B1 đếm đúng; sau khi reset, chương trình đã lưu chạy lại; nhật ký sự cố trống.
- Chưa thử: các file
.imgcủa bản phát hành này (mang số 1.3.8) chưa được nạp lại lên kit; tắt hẳn nguồn rồi bật lại với chương trình khối; ví dụ nhiệt kế với cảm biến SHT45 thật; lệnhrftrên kit 3.0 (CSN ở PA4). Lệnhi2c,spi,rfchưa có test riêng. Bảnkit_toolsvàremotekhông đính kèm, tự build bằngpio run -e kit_tools/-e remote.
File đính kèm
| File | Nội dung |
|---|---|
ak-mcu-base_boot_v1.2.1.bin |
Bootloader (không đổi). Nạp bằng ST-Link vào 0x08000000 |
ak-mcu-base_demo_v1.3.8.img |
Demo trên AK Base Kit, 17 màn hình (gồm cả Blocks, Modbus slave và OTA) |
ak-foundation-logo-3d.akv |
Clip mẫu cho màn hình Video (không đổi). Nạp bằng tools/ak_video.py upload |
ak-mcu-base_app_v1.3.8.img |
App mẫu, Modbus slave (địa chỉ 1, 9600 8N1), nhận OTA qua UART và RS485 |
ak-mcu-base_app_mbmaster_v1.3.8.img |
App mẫu, Modbus master (shell mb read / mb write) |
ba file .elf |
Để debug bootloader, bản slave và bản demo |
Nạp .img vào 0x08003000, hoặc OTA: tools/ak_fw.py (UART) hay tools/ak_mb.py (RS485).
Cập nhật từ bản trước
Chỉ cần cập nhật app bằng OTA, không cần ST-Link: bootloader vẫn là 1.2.1. Sector cuối của kho media trên flash SPI nay dành cho chương trình khối; clip video dài sát 512 KB sẽ đè lên nó.
ak-mcu-base v1.3.7 — 07/10/2026 · LED đúng pha, bootloader 1.2.1
App 1.3.7, bootloader 1.2.1. Bản đầu tiên có firmware sửa theo schematic của AK Base Kit 3.0, và sửa hai lỗi lộ ra khi chạy trên kit thật.
Không cần kit: chạy thử firmware trên trình duyệt · xem hai kit chơi Pong với nhau
Thay đổi
- LED nhịp tim đúng pha với bo. LED đỏ ở PB8 nối giữa 3V3 và chân, sáng khi chân ở mức thấp. Trước đây "bật" trong firmware là tắt trên bo. Thêm
PORT_LED_ACTIVE_LOW(mặc định 1; đặt 0 cho bo có LED sáng mức cao). - Bootloader 1.2.1: cùng bản sửa LED. Bootloader 1.2.0 bật LED suốt khoảng 73 ms nó kiểm ảnh, nhìn thấy như một cái chớp lúc khởi động. Ngoài LED, 1.2.1 không khác 1.2.0.
- Chân CSN của mô-đun SPI ở J6 là PA4. Tuỳ chọn
PORT_KIT_NRF24_CSN(mặc định tắt) giờ giữ PA4 ở mức cao thay cho PB9; kit đời trước ghi đè ba macroPORT_NRF_CSN_*. - Sửa
ui dumptrên màn hình đổi liên tục. Ở màn hình System, trang cuối không bao giờ được gửi và bản chụp không tự tắt, nêntools/ak_screen.py shotbáo "no screen received". - Sửa bộ đọc khung của
tools/ak_fw.py. Một byte0xA5lạc trong log của board đứng ngay trước khung trả lời làm lệnh hết giờ. - Sơ đồ cổng nối: J5, J8, J11 (Grove 2,0 mm) là jack tuỳ chọn, bo thương mại không hàn.
File đính kèm
| File | Nội dung |
|---|---|
ak-mcu-base_boot_v1.2.1.bin |
Bootloader. Nạp bằng ST-Link vào 0x08000000 |
ak-mcu-base_demo_v1.3.7.img |
Demo trên AK Base Kit, 16 màn hình (gồm cả Modbus slave và OTA) |
ak-foundation-logo-3d.akv |
Clip mẫu cho màn hình Video (không đổi). Nạp bằng tools/ak_video.py upload |
ak-mcu-base_app_v1.3.7.img |
App mẫu, Modbus slave (địa chỉ 1, 9600 8N1), nhận OTA qua UART và RS485 |
ak-mcu-base_app_mbmaster_v1.3.7.img |
App mẫu, Modbus master (shell mb read / mb write) |
ba file .elf |
Để debug bootloader, bản slave và bản demo |
Nạp .img vào 0x08003000, hoặc OTA: tools/ak_fw.py (UART) hay tools/ak_mb.py (RS485).
Cập nhật từ bản trước
- Chỉ cập nhật app (OTA, không cần ST-Link): LED nhấp nháy đúng pha, nhưng vẫn chớp một cái lúc khởi động vì bootloader 1.2.0 còn trên bo.
- Muốn hết chớp: nạp thêm
ak-mcu-base_boot_v1.2.1.binbằng ST-Link. App 1.3.7 chạy được với cả bootloader 1.2.0 và 1.2.1.
Đã kiểm gì
- Test trên máy tính (kernel, bootloader/OTA có cắt điện, Modbus, demo 485 phép kiểm, bộ đọc khung, nạp trên bộ giả lập) và build STM32 trong CI.
- Trên AK Base Kit 3.0 (07/10/2026), với mã của bản này build trước khi tăng số phiên bản: LED đúng pha và không chớp lúc khởi động (bootloader mới nạp bằng ST-Link),
ui openmở đủ 16 màn hình,ak_screen.py shotchụp đủ 16 màn hình, OTA qua UART. - Chưa kiểm: các file đính kèm ở trên (mang số 1.3.7 / 1.2.1) chưa được nạp lại lên kit; tuỳ chọn giữ CSN ở PA4 với mô-đun nRF24 cắm thật; các mục chưa kiểm của những bản trước (Pong với hai kit thật, mất điện thật khi bootloader đang cài) vẫn còn nguyên.
Chi tiết: CHANGELOG.md.
ak-mcu-base v1.3.6 — 06/10/2026 · Sơ đồ phần cứng và phần mềm
App 1.3.6. Bootloader không đổi: dùng ak-mcu-base_boot_v1.2.0.bin của bản v1.2.0.
Mã firmware không đổi so với v1.3.4 ngoài số phiên bản. Bản này là sơ đồ, và sửa tài liệu cho khớp với schematic của kit.
Không cần kit: chạy thử firmware trên trình duyệt · xem hai kit chơi Pong với nhau
File đính kèm
| File | Nội dung |
|---|---|
ak-mcu-base_demo_v1.3.6.img |
Demo trên AK Base Kit, 16 màn hình (gồm cả Modbus slave và OTA) |
ak-foundation-logo-3d.akv |
Clip mẫu cho màn hình Video (không đổi). Nạp bằng tools/ak_video.py upload |
ak-mcu-base_app_v1.3.6.img |
App mẫu, Modbus slave (địa chỉ 1, 9600 8N1), nhận OTA qua UART và RS485 |
ak-mcu-base_app_mbmaster_v1.3.6.img |
App mẫu, Modbus master (shell mb read / mb write) |
hai file .elf |
Để debug bản slave và bản demo |
Nạp .img vào 0x08003000, hoặc OTA: tools/ak_fw.py (UART) hay tools/ak_mb.py (RS485).
Chín sơ đồ trong tài liệu
Tất cả là SVG, sinh từ ba script trong ak-mcu-base/tools/ (pinout_svg.py, connectors_svg.py, diagrams_svg.py): đổi số liệu thì sửa script rồi chạy lại.
Phần cứng, theo schematic AK MCU KIT 3.0:
- Sơ đồ khối của bo: từng khối nối vào vi điều khiển bằng đường nào, chân nào.
- Sơ đồ chân STM32L151CBT6: đủ 48 chân, đã đối chiếu với schematic.
- Các cổng nối: 10 cổng, từng chân một, kèm các cầu hàn chọn nguồn.
- Cây nguồn: USB 5V, LDO 3V3, tăng áp 12,5V cho OLED.
Phần mềm, theo mã nguồn:
- Các lớp và ba nơi cùng một mã chạy: chip, máy tính (unit test), trình duyệt (WebAssembly).
- Bản đồ bộ nhớ: flash trong, flash SPI, EEPROM.
- Một lần cập nhật firmware: năm bước, và mất điện ở từng bước thì sao.
- Demo chạy trên kernel như thế nào: từ timer tới điểm ảnh trên OLED.
- Pong qua RS485: đường dây và ai nói lúc nào trong mỗi chu kỳ 50 ms.
Xem trong README, README của ak-mcu-base và tài liệu demo.
Sửa theo schematic
- Sơ đồ chân: PA4, PA8, PB1 không phải chân trống mà ra cổng SPI mở rộng J6 (CSN, CE, IRQ); PA15 vừa là reset màn hình vừa có trên J13; BOOT0 có nút bấm; LED đỏ sáng ở mức thấp. Mọi chân firmware đang dùng đều khớp.
- SHT45 không nằm trên bo. Nó không có trong schematic và BOM bản 3.0; tài liệu trước đây gọi nó là cảm biến của kit. Màn hình trạm thời tiết cần một mô-đun SHT45 cắm vào cổng I2C (J7 hoặc J9).
Đã biết, chưa sửa
- LED nhịp tim ngược pha. Theo schematic LED đỏ ở PB8 sáng khi chân ở mức thấp, còn
hal_led_set(1)kéo chân lên cao. LED vẫn nháy, chỉ là "bật" trong firmware là tắt trên bo. - Tuỳ chọn nRF24 trong
port_cfg.h(mặc định tắt) vẫn trỏ chân CSN về PB9 theo kit đời trước; trên bản 3.0 là PA4.
Đã kiểm
- Unit test trên máy tính: kernel 78, fw/boot/nhật ký 233, Modbus 174, demo 467 kiểm tra; CI xanh, gồm cả bước build WebAssembly.
- Từng sơ đồ đã được xem ở kích thước thật, không có nhãn chồng nhau.
Chưa kiểm
- Ảnh
.imgcủa bản 1.3.6 chưa được nạp lên kit. Kit thử nghiệm đang ở bản 1.3.2; lệnhui open(thêm ở v1.3.4) vẫn chưa chạy trên phần cứng thật. - Hai chi tiết trong sơ đồ cổng nối đọc từ hình vẽ của schematic, chưa đo trên bo: chân 4 và 6 của J9 (ghi là GND), và việc ba cổng Grove 2,0 mm có được lắp hay không.
- Các mục chưa kiểm của những bản trước vẫn còn nguyên: Pong với hai kit thật, rút điện giữa lúc bootloader đang cài.
ak-mcu-base v1.3.5 — 06/10/2026 · Sơ đồ chân và ảnh kit
App 1.3.5. Bootloader không đổi: dùng ak-mcu-base_boot_v1.2.0.bin của bản v1.2.0.
Mã firmware không đổi so với v1.3.4 ngoài số phiên bản. Bản này thêm ảnh kit và sơ đồ chân vào tài liệu.
Không cần kit: chạy thử firmware trên trình duyệt · xem hai kit chơi Pong với nhau
File đính kèm
| File | Nội dung |
|---|---|
ak-mcu-base_demo_v1.3.5.img |
Demo trên AK Base Kit, 16 màn hình (gồm cả Modbus slave và OTA) |
ak-foundation-logo-3d.akv |
Clip mẫu cho màn hình Video (không đổi). Nạp bằng tools/ak_video.py upload |
ak-mcu-base_app_v1.3.5.img |
App mẫu, Modbus slave (địa chỉ 1, 9600 8N1), nhận OTA qua UART và RS485 |
ak-mcu-base_app_mbmaster_v1.3.5.img |
App mẫu, Modbus master (shell mb read / mb write) |
hai file .elf |
Để debug bản slave và bản demo |
Nạp .img vào 0x08003000, hoặc OTA: tools/ak_fw.py (UART) hay tools/ak_mb.py (RS485).
Mới trong tài liệu
- Sơ đồ chân STM32L151CBT6 trên kit (
docs/kit/stm32l151-pinout.svg): đủ 48 chân của vỏ LQFP-48, mỗi chân ghi tên và việc nó làm trong firmware, tô màu theo nhóm (console, RS485, flash SPI, OLED, I2C, nút bấm, còi và LED, SWD). Các chân firmware điều khiển lấy từ cấu hình trongport/stm32l151; các chân ra chân cắm lấy theo chữ in trên bo. Sinh bởiak-mcu-base/tools/pinout_svg.py: đổi chân thì sửa một bảng rồi chạy lại. - Ảnh kit và sơ đồ mặt trên của bo, lấy từ repo ak-base-kit-stm32l151 của AK Foundation (giấy phép MIT), cùng bản dựng 3D của bo mạch.
- Ảnh và sơ đồ có trong README tiếng Việt, README tiếng Anh, tài liệu demo và trang chạy thử.
Đã kiểm
- Unit test trên máy tính: kernel 78, fw/boot/nhật ký 233, Modbus 174, demo 467 kiểm tra; CI xanh, gồm cả bước build WebAssembly.
- Sơ đồ chân đã được xem ở kích thước thật, không có nhãn chồng nhau.
Chưa kiểm
- Ảnh
.imgcủa bản 1.3.5 chưa được nạp lên kit. Kit thử nghiệm đang ở bản 1.3.2; lệnhui open(thêm ở v1.3.4) vẫn chưa chạy trên phần cứng thật. - Sơ đồ chân chưa được đối chiếu với schematic: nó dựa trên cấu hình firmware đã chạy trên kit và chữ in trên bo.
- Các mục chưa kiểm của những bản trước vẫn còn nguyên: Pong với hai kit thật, rút điện giữa lúc bootloader đang cài.
ak-mcu-base v1.3.4 — 06/10/2026 · Trang chạy thử sống, hai kit chơi Pong
App 1.3.4. Bootloader không đổi: dùng ak-mcu-base_boot_v1.2.0.bin của bản v1.2.0.
Không cần kit: chạy thử firmware trên trình duyệt · xem hai kit chơi Pong với nhau
File đính kèm
| File | Nội dung |
|---|---|
ak-mcu-base_demo_v1.3.4.img |
Demo trên AK Base Kit, 16 màn hình (gồm cả Modbus slave và OTA) |
ak-foundation-logo-3d.akv |
Clip mẫu cho màn hình Video (không đổi so với v1.3.3). Nạp bằng tools/ak_video.py upload |
ak-mcu-base_app_v1.3.4.img |
App mẫu, Modbus slave (địa chỉ 1, 9600 8N1), nhận OTA qua UART và RS485 |
ak-mcu-base_app_mbmaster_v1.3.4.img |
App mẫu, Modbus master (shell mb read / mb write) |
hai file .elf |
Để debug bản slave và bản demo |
Nạp .img vào 0x08003000, hoặc OTA: tools/ak_fw.py (UART) hay tools/ak_mb.py (RS485).
Mới trong firmware
-
Lệnh shell
ui open <tên>: mở thẳng một màn hình theo một phần tên trong menu, không phải bấm qua menu.> ui open tetris > ui open 3d > ui open menuHai app mẫu (slave, master) không đổi gì ngoài số phiên bản.
Mới trên web
- Trang chạy thử sống ngay khi mở. Kit tự đi một vòng qua các màn hình đẹp nhất cho tới khi có người bấm nút. Có hàng ô mở thẳng từng màn hình và link chia sẻ dạng
play/?screen=tetris. - Hai kit chơi Pong trên một trang. Hai bản firmware cạnh nhau, nối bằng đường RS485 giả lập: xem được ai làm chủ, số byte qua lại, và rút dây để thấy chúng tự quay về chơi một mình.
port/web/kit-ui.js: một kit thành một thành phần nhúng được vào trang bất kỳ (AkKitUI.create(phần_tử)). Trang giới thiệu của dự án giờ có kit chạy thật ngay đầu trang.- Âm thanh trên điện thoại: to hơn, có tiếng bíp thử khi bật.
Mới trong tài liệu
- README mở đầu bằng GIF 19 giây các cảnh đẹp nhất (
tools/highlights_gif.py), nút chạy thử và bảng lối vào. - Thêm README tiếng Anh.
Đã kiểm
- Unit test trên máy tính: kernel 78, fw/boot/nhật ký 233, Modbus 174, demo 467 kiểm tra (có test cho việc tìm màn hình theo tên); CI xanh, gồm cả bước build WebAssembly.
- Trong trình duyệt: vòng tự trình diễn, nút tắt, link
?screen=, trang Pong (tự phân vai, rút và cắm lại dây), kit trên trang giới thiệu; âm thanh đã được nghe trên điện thoại.
Chưa kiểm
- Ảnh
.imgcủa bản 1.3.4 chưa được nạp lên kit, và lệnhui openchưa chạy trên phần cứng thật: mới chạy trong unit test và trong bản trình duyệt (cùng mã nguồn). Kit thử nghiệm đang ở bản 1.3.2. - Trang Pong và trang giới thiệu trên điện thoại thật.
- Các mục chưa kiểm của v1.3.2 vẫn còn nguyên: Pong với hai kit thật, rút điện giữa lúc bootloader đang cài.
ak-mcu-base v1.3.3 — 06/10/2026 · Clip logo xoay 3D
App 1.3.3. Bootloader không đổi: dùng ak-mcu-base_boot_v1.2.0.bin của bản v1.2.0.
Mã firmware không đổi so với v1.3.2 ngoài số phiên bản. Bản này thêm clip mẫu cho màn hình Video và tool tạo clip.
Không có kit? Chạy thử firmware ngay trên trình duyệt rồi mở màn hình Video.
File đính kèm
| File | Nội dung |
|---|---|
ak-mcu-base_demo_v1.3.3.img |
Demo trên AK Base Kit, 16 màn hình (gồm cả Modbus slave và OTA) |
ak-foundation-logo-3d.akv |
Clip mẫu: logo AK Foundation xoay 3D, 6 giây, 19 KB. Nạp bằng tools/ak_video.py upload |
ak-mcu-base_app_v1.3.3.img |
App mẫu, Modbus slave (địa chỉ 1, 9600 8N1), nhận OTA qua UART và RS485 |
ak-mcu-base_app_mbmaster_v1.3.3.img |
App mẫu, Modbus master (shell mb read / mb write) |
hai file .elf |
Để debug bản slave và bản demo |
Nạp .img vào 0x08003000, hoặc OTA: tools/ak_fw.py (UART) hay tools/ak_mb.py (RS485).
Clip nằm trong flash SPI, không nằm trong ảnh firmware: nạp firmware xong phải nạp clip riêng.
python tools/ak_video.py upload --port COMx ak-foundation-logo-3d.akvMới
-
Clip mẫu là logo AK Foundation xoay 3D, thay cho clip đốm trắng; bản chạy trên trình duyệt phát sẵn clip này. Logo thuộc về AK Foundation.
-
tools/spin_clip.py: biến một logo bất kỳ (ảnh trên nền trơn) thành clip.akvxoay 3D. Ảnh thành một tấm có bề dày quay quanh trục đứng: mặt trước trắng, cạnh bên tô dither, mặt sau cũng đọc được.python tools/spin_clip.py logo.png -o clip.akv --preview xem-truoc.gif
Tài liệu: demo-kit.md.
Đã kiểm
- Nạp clip vào flash SPI của kit (3 giây) và phát ở màn hình Video; không có bản ghi sự cố.
- Unit test trên máy tính: kernel 78, fw/boot/nhật ký 233, Modbus 174, demo 456 kiểm tra; CI xanh, gồm cả bước build WebAssembly.
Chưa kiểm
- Ảnh
.imgcủa bản 1.3.3 chưa được nạp lên kit: kit thử nghiệm đang chạy bản 1.3.2, cùng mã nguồn, chỉ khác số phiên bản. - Dòng chữ nhỏ dưới logo không đọc được ở độ phân giải 128×64.
- Các mục chưa kiểm của v1.3.2 vẫn còn nguyên: Pong với hai kit thật, âm thanh và điện thoại của bản trình duyệt, rút điện giữa lúc bootloader đang cài.
ak-mcu-base v1.3.2 — 06/10/2026 · Chạy trên trình duyệt, Pong RS485, máy hiện sóng
App 1.3.2. Bootloader không đổi: dùng ak-mcu-base_boot_v1.2.0.bin của bản v1.2.0.
Không có kit? Chạy thử firmware này ngay trên trình duyệt.
File đính kèm
| File | Nội dung |
|---|---|
ak-mcu-base_demo_v1.3.2.img |
Demo trên AK Base Kit, 16 màn hình (gồm cả Modbus slave và OTA) |
ak-mcu-base_app_v1.3.2.img |
App mẫu, Modbus slave (địa chỉ 1, 9600 8N1), nhận OTA qua UART và RS485 |
ak-mcu-base_app_mbmaster_v1.3.2.img |
App mẫu, Modbus master (shell mb read / mb write) |
hai file .elf |
Để debug bản slave và bản demo |
Nạp .img vào 0x08003000, hoặc OTA: tools/ak_fw.py (UART) hay tools/ak_mb.py (RS485).
Build bằng PlatformIO (gcc 7.2.1, LTO), staging trên flash SPI ngoài.
Mới
- Bản chạy trên trình duyệt. Chính mã C của firmware (kernel, shell, Modbus slave, bộ demo) biên dịch sang WebAssembly bằng Emscripten; chỉ lớp bo mạch được thay bằng trang web. Có màn hình, ba nút, console gõ lệnh shell, nút gây FATAL để xem nhật ký sự cố. Mở trang ở hai tab là hai bản firmware chơi Pong với nhau. Mã nguồn:
port/web/, dựng lại bằngpython port/web/build.py. - Pong qua RS485. Hai kit nối chung dây RS485 tự nhận ra nhau và tự phân vai chủ/khách; một mình thì kit chơi với máy.
tools/pong_peer.pycho máy tính đóng vai kit thứ hai. Khi màn hình này mở, Modbus tạm nghỉ. - Xem màn hình kit trên máy tính.
tools/ak_screen.pychụp ảnh, quay GIF, hoặc mở cửa sổ xem trực tiếp có phím bấm thay ba nút, qua cổng console (ui dump,ui stream). - Máy hiện sóng mini (màn hình Scope). Đồ thị cuộn của các số gửi tới kit bằng lệnh shell
plot <số>hoặc thanh ghi Modbus 16.tools/ak_plot.pygửi số liệu qua UART hay RS485. app_main()tách thêmapp_init()cho port không có vòng lặp vô hạn; hành vi trên chip không đổi.
Tài liệu: demo-kit.md · tổng kết phiên làm việc: tong-ket-2026-10-06.md.
Đã kiểm
- Pong trên kit với máy tính ở cả hai vai qua USB-RS485: 20 khung/giây, 300/300 khung được trả lời, không khung hỏng; rời màn hình thì Modbus trả lời lại.
- Xem màn hình: 19 hình/giây với màn hình ít đổi, khoảng 9,5 hình/giây khi cả màn hình đổi liên tục.
- Máy hiện sóng trên kit: 121 điểm qua UART và 81 điểm qua Modbus, không mất điểm nào.
- Bản trình duyệt: menu, bấm nút bằng chuột và phím, shell, gây FATAL rồi đọc
crash, video, máy hiện sóng, Pong giữa hai tab. - Unit test trên máy tính: kernel 78, fw/boot/nhật ký 233, Modbus 174, demo 456 kiểm tra; CI xanh (thêm bước build WebAssembly).
Chưa kiểm
- Pong với hai kit thật (mới thử kit với máy tính, và hai tab trình duyệt).
- Pong, máy hiện sóng, Tetris, Breakout, Invaders, màn hình chờ: chưa có người chơi bằng nút thật trên kit.
- Bản trình duyệt: âm thanh, điện thoại thật, Safari và Firefox.
- Rút điện giữa lúc bootloader đang cài; OTA ảnh gần 116K (như các bản trước).

