# Configure and Program OTP

## OTP Overview

The K230/K230D integrates an internal One-Time Programmable (OTP) device. This device can store permanently bound information such as MAC addresses and boot parameters. Boot configuration is typically stored here.

> **WARNING: Programming incorrect OTP values, or a firmware voltage configuration that does not match the hardware, may permanently damage the chip!**

## Automatically Generate an OTP Configuration .bin File

Canaan provides a convenient graphical web interface for automatically generating OTP configuration `.bin` files. During this process, be sure to communicate fully with your hardware engineer to confirm the exact hardware settings, voltage levels, and other critical information.

Configuration tool: [OTP Configuration Tool](https://www.kendryte.com/zh/tools/otp_config_generation_tool)

![otp_tool](https://www.kendryte.com/api/post/attachment?id=551)

When generating the `.bin` file, carefully select the appropriate settings based on the hardware schematic:

* **BOOT ROM UART IOMUX** — selects the UART port used for BOOT log output (UART0 is recommended)
* **BOOT ROM UART voltage** — voltage level used by the boot UART
* **OSPI IO voltage** — voltage of the OSPI domain
* **SDIO0 IO voltage** — voltage of the MMC0 domain
* **SDIO1 IOMUX** — pin selection for MMC1
* **SDIO1 IO voltage** — voltage of the MMC1 domain

The following images use the 01Studio development board schematic as an example:

![1740391481653](https://www.kendryte.com/api/post/attachment?id=802)

![1740391571191](https://www.kendryte.com/api/post/attachment?id=560)

![1740391632742](https://www.kendryte.com/api/post/attachment?id=561)

![1740391686205](https://www.kendryte.com/api/post/attachment?id=562)

**Important reminder:** Double-check the configuration accuracy with your hardware engineer. Once incorrect values are programmed, the chip will be permanently damaged and cannot be repaired.

After completing all settings, click the **Generate Configuration File** button to generate a `.bin` file, as shown below:

![1740392534136](https://www.kendryte.com/api/post/attachment?id=565)

## Flash the OTP .bin File

Flashing tool download: [Kendryte Developer Community – Downloads](https://www.kendryte.com/zh/resource?selected=0-2-2)

Select the version corresponding to your operating system. Also note: **do not power the board for an extended period before OTP programming is complete**, as this may damage the chip.

![1740392907598](https://www.kendryte.com/api/post/attachment?id=567)

Power on the chip, connect the UART0 interface, open the BurningTool software, and select the previously generated `.bin` file:

![1740396173639](https://www.kendryte.com/api/post/attachment?id=568)

Click the **Start** button and wait for the programming process to complete:

![1740469056238](https://www.kendryte.com/api/post/attachment?id=569)

Once programming is finished, click **Confirm**.
