CanMV K230 Guide¶
A setup and usage guide for the CanMV K230 v1.1 board.
Board Overview¶
| Item | Value |
|---|---|
| Board | CanMV K230 v1.1 |
| SoC | Kendryte K230 |
| RAM | 512 MB LPDDR3 |
| WiFi Chip | Broadcom (bcmdhd driver, 2.4GHz only) |
| Serial | USB via /dev/ttyACM0 at 115200 baud |
Dual-Core Architecture¶
The K230 features two Xuantie C908 (RISC-V 64-bit) cores in a heterogeneous configuration, each running a different OS.
| Big Core (CPU1) | Little Core (CPU0) | |
|---|---|---|
| Clock | 1.6 GHz | 800 MHz |
| OS | RT-Smart (real-time OS) | Linux 5.10.4 |
| Role | AI inference (KPU), media processing | System control, networking, user interaction |
| Feature | RISC-V Vector 1.0 (128-bit) | Controls big core boot sequence |
The two cores communicate via a shared filesystem (/sharefs).
KPU (AI Accelerator)
Supports INT8/INT16 inference. Models in ONNX/TFLite format are compiled to kmodel using the nncase compiler. Operators not supported by the KPU (e.g. softmax) are executed efficiently on the big core using RVV 1.0.
Links¶
Official Documentation & SDK¶
- K230 SDK (GitHub) -- Linux + RT-Smart dual OS SDK
- K230 Docs (GitHub) -- SDK reference documentation
- K230 SDK Docs (Web) -- Hardware design guide, datasheet, API reference
- K230 Linux SDK (GitHub) -- Linux-only SDK (Debian / Ubuntu image support)
CanMV (MicroPython)¶
- CanMV K230 Firmware (GitHub) -- MicroPython firmware (download images from the releases page)
- CanMV K230 Docs (Web) -- MicroPython API reference and examples
AI Development¶
- nncase (GitHub) -- Compiler to convert ONNX / TFLite models to kmodel for KPU
- K230 AI Development Tutorial -- Model inference, AI2D preprocessing, and deployment guide
- K230 Training Scripts (GitHub) -- End-to-end samples from model training to on-board inference
Hardware¶
- K230 Product Page -- Schematics, PCB data, IOMUX tool
Firmware Downloads¶
- Canaan Firmware Index -- Pre-built images for CanMV, Debian, Ubuntu, etc.
Preparing the OS Image¶
Download¶
Download the SD card image from the following URL:
https://kendryte-download.canaan-creative.com/k230/release/sdk_images/v2.0/k230_canmv_defconfig/CanMV-K230_sdcard_v2.0_nncase_v2.10.0.img.gz
wget https://kendryte-download.canaan-creative.com/k230/release/sdk_images/v2.0/k230_canmv_defconfig/CanMV-K230_sdcard_v2.0_nncase_v2.10.0.img.gz
gunzip CanMV-K230_sdcard_v2.0_nncase_v2.10.0.img.gz
Writing to SD Card¶
Check the device name
The device name for of= varies by environment (/dev/sda, /dev/sdb, /dev/mmcblk0, etc.).
Writing to the wrong device will destroy data. Verify with lsblk before proceeding.
Booting the Board¶
- Insert the prepared SD card into the K230
- Connect to the host PC via USB cable
- The board automatically boots Linux on power-up
Serial Connection¶
When connected via USB, /dev/ttyACM0 appears on the host PC.
Use picocom to access the serial console:
Installing picocom
On Debian/Ubuntu: sudo apt install picocom
Exiting picocom
Press Ctrl-a Ctrl-x to exit picocom.
If a login prompt appears, log in as root (no password).