K230 SDK Release Notes#

cover

Copyright 2023 Canaan Inc. ©

Disclaimer#

The products, services or features you purchase should be subject to Canaan Inc. (“Company”, hereinafter referred to as “Company”) and its affiliates are bound by the commercial contracts and terms and conditions of all or part of the products, services or features described in this document may not be covered by your purchase or use. Unless otherwise agreed in the contract, the Company does not provide any express or implied representations or warranties as to the correctness, reliability, completeness, merchantability, fitness for a particular purpose and non-infringement of any statements, information, or content in this document. Unless otherwise agreed, this document is intended as a guide for use only.

Due to product version upgrades or other reasons, the content of this document may be updated or modified from time to time without any notice.

Trademark Notice#

The logo, “Canaan” and other Canaan trademarks are trademarks of Canaan Inc. and its affiliates. All other trademarks or registered trademarks that may be mentioned in this document are owned by their respective owners.

Copyright 2023 Canaan Inc.. © All Rights Reserved. Without the written permission of the company, no unit or individual may extract or copy part or all of the content of this document without authorization, and shall not disseminate it in any form.

Directory#

[TOC]

preface#

Overview#

This document mainly describes the content related to the release of K230 SDK V1.2.0, including the hardware, features, and usage restrictions supported by the current version.

Reader object#

This document (this guide) is intended primarily for:

  • Technical Support Engineer

  • Software Development Engineer

Definition of acronyms#

Abbreviation

Illustrate

K230 USIP LP3 EVB

The K230 chip in the USIP package is equipped with an LPDDR3 development board

EXPIRES

Video Encoder, a video coding module

VDEC

Video Decoder, a video decoding module

VICAP

Video Input Capture, an image input acquisition module

IN

Video Output, a video output module

.AI

Audio Input, the audio input module

TO

Audio Output, the audio output module

AENC

Audio Encoder, an audio coding module

ADEC

Audio Decoder, an audio decoding module

NonAI-2D

2D graphics acceleration processing module, support OSD overlay, picture frame, CSC transformation and other functions.

MCM

Multi Camera Management

Revision history#

Document version number

Modify the description

Author

date

V1.0

Initial

System Software Department

2023-11-8

1. Version Information#

Affiliated products

Version number

Release date

K230 SDK

V1.2.0

2023-11-8

2. Supported hardware#

The K230 platform supports K230 USIP LP3 EVB, CanMV-K230 and other motherboards, and the specific hardware information is referred to the document directory:00_hardware.

3. Description of Version Usage Restrictions#

The following figure shows the memory layout of the current SDK USIP LP3 EVB and CanMV-K230:

EVB

Figure 1 SDK memory layout

You can configure the memory interval of each module by entering selection in the k230_sdk directorymake menuconfig``Memory->Configuration, and configuration is not supported at this time Memory configuration of parameter areas and intercore communication areas

4. Version function statistics#

4.1 Multimedia#

ID

Supported versions

Functional overview

Feature description

remark

1

K230 SDK V0.5

EXPIRE

H264/H265/JPEG encoding

2

K230 SDK V0.5

vdec

H264/H265/JPEG decoding

3

K230 SDK V0.5

Vicap Bind Venc

The vicap input is bound to the venc output

4

K230 SDK V0.5

vdec bind vo

VDEC is bound to VO output images

5

K230 SDK V0.5

venc_2d

OSD encoding after superposition

6

K230 SDK V0.5

nonai_2d

OSD overlay

7

K230 SDK V0.5

I2S audio input

Sampling accuracy (16/24/32), sampling rate (8K-192K), timestamp (US), two-channel, sample point per frame can be configured.

8

K230 SDK V0.5

PDM audio input

Sampling accuracy (16/24), sampling rate (8K-192K), oversampling (32/64/128), single and double channels, timestamp (US), sampling points per frame can be configured.

9

K230 SDK V0.5

I2S audio output

Sampling accuracy (16/24/32), sampling rate (8K-192K), two-channel, sample point per frame can be configured.

10

K230 SDK V0.5

Internal Audio Codec

Support ADC, DAC, sampling accuracy (16/24), sampling rate (8K-192K)

11

K230 SDK V0.5

ai(i2s) bind ao(i2s)

AI binds AO, and I2S audio is collected to I2S audio output loopback

12

K230 SDK V0.5

ai(pdm) bind ao(i2s)

AI binds AO, PDM audio acquisition to I2S audio output loopback

13

K230 SDK V0.6

EXPIRE

Multicode, rotate and mirror

14

K230 SDK V0.6

venc_2d

Picture frame

15

K230 SDK V0.6

venc MAPI

VI->VENC-> little core storage file

16

K230 SDK V0.6

aenc

Audio coding, built-in G711A/U

17

K230 SDK V0.6

ADEC

Audio decoding, built-in G711A/U

18

K230 SDK V0.6

AI bind aenc

AI binds AENC to collect encoded data

19

K230 SDK V0.6

adec bind to the

ADEC binds to the AO and plays the output decoded audio

20

K230 SDK V0.6

audio 3a

AEC (Echo Cancellation), ANS (Noise Suppression), AGC (Automatic Gain)

21

K230 SDK V0.7

Venc GOP

Support setting encoding GOP

22

K230 SDK V0.7

venc mirror

Support setting encoding horizontal and vertical flipping

23

K230 SDK V0.7

Venc IDR

Support encoded IDR frames funciton:enable/disable

24

K230 SDK V0.7

venc multi channel

mapi_venc_2 H264 encoding

25

K230 SDK V0.7

audio i2s mapi

MAPI-audio_i2S captures audio encoding and passes it to the big core

26

K230 SDK V0.7

Audio enc mapi

Mapi-audio_ little core encoding files are passed to big core for decoding and playback

27

K230 SDK V0.7

audio volume

Added built-in audio codec digital and analog volume control interfaces.

28

K230 SDK V0.7

Mapi rtsp

MAPI-Network Transmission-RTSP audio and video streaming

29

K230 SDK V0.8

MAPI VDEC

The small-core video encoding file is transmitted to the large-core to be decoded and played

30

K230 SDK V0.8

venc mpi

deblock, sao, entropy: enable/disable

31

K230 SDK V0.8

VDEC MPI

Support down scale

32

K230 SDK V0.8

DPU Demo

Screen depth map: vicap->dma->dpu->vo

32

K230 SDK V0.8

Voice intercom demo

Add a voice intercom demo

33

K230 SDK V0.9

Peephole POC

Remote peephole realizes video intercom, voice change, video, humanoid detection and capture functions.

34

K230 SDK V1.0

Peephole POC

1. Add UI control on the peephole device. 2. Add local peephole voice intercom function. 3. The mobile phone recording function is changed to the device side implementation, and it is always recording. 4. Add playback function on the peephole device.

35

K230 SDK V1.2

Peephole POC

nor flash boot up

4.2 Images#

ID

Supported versions

Functional overview

Feature description

remark

1

K230 SDK V0.5

Vicap

Support capture sensor image (OV9732, OV9286)

2

K230 SDK V0.5

AE

AE auto exposure is supported

3

K230 SDK V0.5

Vicap Bind VO

vicap is bound to the VO output image

4

K230 SDK V0.5

GPU drawing

Vector drawing fills (straight line, quadratic Bezier curve, cubic Bezier curve, elliptic curve) Linear gradient Color lookup table Image compositing/blending, BLIT

5

K230 SDK V0.5

Image tuning

tuning tool which Connect the development board through the network and serial port for image optimization. Black level correction lens shading correction color calibration AWB CAC gamma

6

K230 SDK V0.5

display bind

VO and VICAP, VO and VDEC bindings are supported

7

K230 SDK V0.5

display display

Support OSD and YUV display, support dump frame function, support DSI and VO timing, can be configured, support interpolation frame function

8

K230 SDK V0.6

Image tuning

The tuning tool configures the sensor register

9

K230 SDK V0.6

Timestamp, frame number

Supports timestamp and frame number

10

K230 SDK V0.6

ISP+KPU Demo

Face detection demo

11

K230 SDK V0.7

dewarp

Add the dewarp function to achieve distortion correction

12

K230 SDK V0.7

AE Side

Added FaceAE function and corresponding FaceAE demo

13

K230 SDK V0.7

Add Imx335

Add Imx335 sensor driver and demo

14

K230 SDK V0.8

Add DRM

Linux little core adds DRM driver and demo

15

K230 SDK V0.8

Add LVGL

Linux little core adds LVGL and demo

16

K230 SDK V0.8

Launch the APP quickly

Quick Start APP Sensor changed to Imx335 (with crystal oscillator)

17

K230 SDK V0.9

mcm

Supports up to three sensors

18

K230 SDK V0.9

display mapi

Add the video output class MAPI

19

K230 SDK V1.0

Debug-Dump sensor raw

Support for dump sensor RAW data

20

K230 SDK V1.0

Commissioning - frame count statistics

Support total input and output frame count function

21

K230 SDK V1.0

dewarp split-screen

Support 2, 4 split screen output

22

K230 SDK V1.0

HDR

Support HDR function, support Imx335 2dol HDR

23

K230 SDK V1.1

MAPI

Add vicap’s MAPI

24

K230 SDK V1.1

HDR frequency conversion

Supports HDR frequency conversion

25

K230 SDK V1.1

Parameter export

Support ISP Dewarp parameter export

26

K230 SDK V1.2

Add Dictionary Pen POC

Add Dictionary Pen POC

4.3 Platform#

ID

Supported versions

Functional overview

Feature description

remark

1

K230 SDK V0.5

Start the peripheral

Support eMMC, 1/4-wire SD card

2

K230 SDK V0.5

big core DPU driver

Image input and output driver development, basic functions, EG reading parameters, support dynamic update of long-period parameters, output buffer, timestamp, algorithm, etc. Support pipeline binding

3

K230 SDK V0.5

little core UBOOT

DDR training, disk drive (emmc, sd, spi 1 line); Supports PUFS and gzip decompression

4

K230 SDK V0.5

little core SPI driver

1 line

5

K230 SDK V0.5

little core SDIO driver

SDIO0/1 is supported to mount SDCard

6

K230 SDK V0.5

Small-core USB (UVC) driver

Support UVC driver (K230 chip as slave)

7

K230 SDK V0.5

Small-core GPIO drivers

Supports separate allocation of each IO as a logical resource; Supports IO and interrupts

8

K230 SDK V0.5

little core disks and file systems

Support SDIO0/1 to mount SDCard, support SDIO0/1 to mount eMMC; Supports ext2/3/4, FAT32 file systems

9

K230 SDK V0.5

I2C driver

Large and little core I2C bus driver

10

K230 SDK V0.5

UART driven

Large and little core UART drivers

11

K230 SDK V0.5

UVC basic demo

UVC Camera, which uses the board as a camera

12

K230 SDK V0.5

GSDMA (Big Core Drive)

Support using gdma for image migration, configure channel properties to achieve image rotation and mirroring, transport multiple image formats (such as YUV400, YUV420, YUV444), move images with multiple pixel widths (such as 8bit, 10bit, 16bit); Support data migration using SDMA, support 1D mode and 2D mode handling. Support pipeline binding.

13

K230 SDK V0.6

Large-core GPIO drivers

Supports independent configuration and use of IO functions, independent configuration and triggering interrupts, and hardware mutexes are added to ensure the mutex of register access.

14

K230 SDK V0.6

Start the peripheral

Support SPI nor Flash image generation and startup

15

K230 SDK V0.6

uboot SPI norflash driver

Supports 8-wire DMA

16

K230 SDK V0.6

big core ADC drive

Allows the ADC to read voltage values

17

K230 SDK V0.7

Large and little core WDT drivers

Support for watchdog reset SoC

18

K230 SDK V0.7

big core SPI driver

Support SPI single-wire mode, support NANDFLASH

19

K230 SDK V0.7

little core SPI driver

Support SPI single-wire, eight-wire mode, support NordFlash

20

K230 SDK V0.7

Quick-up feature

The SDK defaults to fast starting, and non-fast versions can turn off CONFIG_QUICK_BOOT macros through make menuconfig. The fast version uboot will not enter the command line.

21

K230 SDK V0.7

Secure mirroring

The SDK does not generate a secure image by default, and you can configure the CONFIG_GEN_SECURITY_IMG to generate a secure image by making menuconfig

22

K230 SDK V0.7

UVC basic demo

Added support for H264 format, there is currently a bug, can only run for a while

23

K230 SDK V0.7

DPU、GSDMA

The number of buffers is configurable

24

K230 SDK V0.8

big core timer、rtc、pwm

The big core adds timer driver and demo; the big core adds the PWM driver and demo; and the big core adds the RTC driver and demo.

25

K230 SDK V0.8

SPI NAND support

The little core (uboot, Linux) supports 4-wire SPI NAND driver, and the SDK supports booting from Spiron;

26

K230 SDK V0.8

UVC basic demo

UVC supports IMX335 camera, UVC supports MJPEG format

27

K230 SDK V0.8

spinor adds parameter partitioning such as face characteristics

SPI NOR adds parameter partitions such as face features, AI models, calibration parameters, big core apps, speckles, and quick-start parameters; when booting from Spinor, uboot parses and loads the data of each partition.

28

K230 SDK V0.9

little core PWM driver

Supports little core PWM drivers

29

K230 SDK V0.9

little core ADC drive

Supports small-core ADC driving

30

K230 SDK V0.9

Support K230D development board

SDK support K230D development board (SD card boot)

31

K230 SDK V0.9

STING

Support OTA upgrade

32

K230 SDK V1.0

Large nuclear FFT

Support FFT driver

33

K230 SDK V1.0.1

Support CanMV-K230 development board

SDK support CanMV-K230 development board (SD card boot)

34

K230 SDK V1.1

little core Wifi driver

The little core supports AP6256 drivers

35

K230 SDK V1.1

little core three-color lamp driven

The little core supports the I2S interface WS2812 driver

35

K230 SDK V1.1

little core SPI LCD driver

The little core supports SPI interface ST7735S 0.96 inch LCD screen driver

36

K230 SDK V1.1

BurnTool Burning Tool V2

Delete the full image burning page and add loader_sip.bin support for SIP burning, see K230_SDK_Burntool User Guide.md for details

37

K230 SDK V1.1

USB port use

USB1 is fixed in host mode, which can be connected to peripherals such as USB-ETH or U disk, and EVB’s J5 pin pin 3 is connected to pin4 jumper cap to enable power supply to peripherals. USB0 is used for USB gadget testing and USB upgrades, and EVB’s J5 pin headers, pins 1 and pin2, are no longer connected using jumper caps.

38

K230 SDK V1.2

canmv wifi ap6212

canmv support ap6212

39

K230 SDK V1.2

canmv only linux

add k230_canmv_only_linux_defconfig config

40

K230 SDK V1.3

debian ubuntu image

add debian and ubuntu image

4.4 Architecture#

ID

Supported versions

Functional overview

Feature description

remark

1

K230 SDK V0.5

Multimedia memory management

Multimedia area memory management driver, MPI, MAPI; video buffer pool driver, MPI, MAPI

2

K230 SDK V0.5

Log management

Multimedia log management driver, MPI, MAPI

3

K230 SDK V0.5

System binding

Multimedia system binding driver, MPI

4

K230 SDK V0.5

Large-core multimedia debugging

The proc file system is provided for debugging

5

K230 SDK V0.5

Internuclear communication

Internuclear communication drive

6

K230 SDK V0.5

Internuclear control communication

IPCMSG library

7

K230 SDK V0.5

Internuclear data communication

DATAFIFO library

8

K230 SDK V0.5

Shared file system

hlutabréf

The little core is the server, and the big core is the client

9

K230 SDK V0.5

System control

Large and little core clock power supply and reset drive

10

K230 SDK V0.5

KPU

KPU driven

11

K230 SDK V0.5

big core system debugging

JTAG debugging, local serial port, CPU usage statistical analysis, etc

12

K230 SDK V0.5

Small-core system debugging

JTAG debugging, serial port debugging, network port debugging, CPU usage statistical analysis, performance debugging methods, debugging and log output ports (physical serial ports), kernel and exception information output, dump, debug version

Perf is not configured into the kernel and buildroot by default

13

K230 SDK V0.7

Software SHA256

The SHA256 software implementation is added under the large-core MPP

14

K230 SDK V0.7

OTP read and write function

The OTP read and write function is added to the large-core rt-smart, and the OTP read function is added to the small-core Linux

15

K230 SDK V0.7

Tsensor read function

Tsensor read function is added to the large-core rt-smart, and Tsensor read function is added to the small-core Linux to read the chip junction temperature

16

K230 SDK V0.7

TRNG read function

Added TRNG read function in small-core Linux

17

K230 SDK V0.7

quickly demo

Add a big core to quickly launch the face detection demo

18

K230 SDK V0.7

PMU function

Add PMU standby and wake-up functions for small-core Linux

19

K230 SDK V0.8

Door lock POC

The big core adds POC door lock function, and the little core adds UI function, and the face is registered and recognized through the UI interface or SD card

20

K230 SDK V0.9

Door lock POC

Support ov9286, face detection and recognition (including IR and speckle live, speckle including DPU deep extraction)

21

K230 SDK V0.9

Encryption and decryption

Adds AES-GCM encryption and decryption for small-core Linux

22

K230 SDK V0.9

Power control

uboot adds chip clock/power domain management, big core rt-smart adds power control for CPU1, DPU, VPU, KPU, display, and little core Linux adds power control for display

23

K230 SDK V1.0

Door lock POC

Add the function of scanning and decrypting facial feature values

24

K230 SDK V1.0

SH256 drive

Added SH256 driver for large and little core hardware

25

K230 SDK V1.1

big core encryption and decryption driver

Added big core hardware AES-GCM driver and SM4-ECB/CBC/CFB/OFB/CTR driver

26

K230 SDK V1.2

Door lock OTA

Add Door lock OTA

4.5 Miscellaneous#

ID

Supported versions

Functional overview

Feature description

remark

1

K230 SDK V0.5

to the demos

Provide three AI demos door_lock, object_detect, and image_classify;

2

K230 SDK V0.5

AiW4211LV10 WiFi driver

Support network data communication; support control command sending;

3

K230 SDK V0.6

AiW4211LV10 WiFi firmware

Firmware compatible with instructions and network configuration, support network connection reconnection, support K230 level monitoring and wake-up

4

K230 SDK V0.6

Touch screen support

Touch screen support

5

K230 SDK V0.7

Software image

SDK compilation will generate demo executables, but will not be packaged into images by default, and security image files will not be generated by default, so you can configure them manually

6

K230 SDK V0.7

Toolchain

The big core toolchain version is updated to: riscv64-unknown-linux-musl-rv64imafdcv-lp64d-20230420.tar.bz2

7

K230 SDK V0.8

Software image

When the EMMC/SDCARD image is packaged, the demos of the big core will be packaged into the little core/sharefs

8

K230 SDK V0.8

Demo

In order to adapt to different camera modules and modify the relevant demo, such as encoding/UVC, the specific use of the demo can be found in the “K230 SDK Demo User Guide”

5. Legacy issues and limitations of the version#

ID

Function modules

Problem/limitation description

remark

1

VPU encoding

VPU repeats the code many times and is probabilistic stuck

2

usb

Transporting H264 encoding over USB for a long time is abnormal

3

Peephole

During the operation of the simulated mobile phone, the network cannot be automatically reconnected after it is disconnected

Comments list

Comments list

Comments
Log in