diff --git a/firmware/V3.0.1/Klipper/Images/cfg_uart.png b/firmware/V3.0.1/Klipper/Images/cfg_uart.png
new file mode 100644
index 0000000000..c15fbd7c36
Binary files /dev/null and b/firmware/V3.0.1/Klipper/Images/cfg_uart.png differ
diff --git a/firmware/V3.0.1/Klipper/Images/menuconfig.png b/firmware/V3.0.1/Klipper/Images/menuconfig.png
new file mode 100644
index 0000000000..0b9eea683b
Binary files /dev/null and b/firmware/V3.0.1/Klipper/Images/menuconfig.png differ
diff --git a/firmware/V3.0.1/Klipper/Images/stm32f401_id.png b/firmware/V3.0.1/Klipper/Images/stm32f401_id.png
new file mode 100644
index 0000000000..9e79b10770
Binary files /dev/null and b/firmware/V3.0.1/Klipper/Images/stm32f401_id.png differ
diff --git a/firmware/V3.0.1/Klipper/README.md b/firmware/V3.0.1/Klipper/README.md
new file mode 100644
index 0000000000..9d1df9199f
--- /dev/null
+++ b/firmware/V3.0.1/Klipper/README.md
@@ -0,0 +1,69 @@
+# [切换到中文版](./README_zh_cn.md)
+
+# How to use Klipper on SKR-mini-E3-V3.0.1
+
+## NOTE:
+
+* This motherboard comes with bootloader which allows firmware update through SD card.
+
+## Build Firmware Image
+
+1. Precompiled firmware(The source code version used is [Commits on Jul 30, 2022](https://github.com/Klipper3d/klipper/commit/a709ba43af8edaaa307775ed73cb49fac2b5e550))
+ * [firmware-USB.bin](./firmware-USB.bin) Use USB to communicate with raspberry pi. Connect the type-A USB of raspberry pi with the MicroUSB of motherboard directly to communicate normally.
+ * [firmware-USART2.bin](./firmware-USART2.bin) Use TFT port USART2 to communicate with raspberry pi. Connect the UART-TX of raspberry pi with the USART-RX2 of motherboard and connect the UART-RX of raspberry pi with the USART-TX2 of motherboard directly to communicate normally.
+
+2. Build your own firmware
+ 1. Refer to [klipper's official installation](https://www.klipper3d.org/Installation.html) to download klipper source code to raspberry pi.
+ 2. `Building the micro-controller` with the configuration shown below. (If your klipper cannot select the following configuration, please update your klipper source code)
+ * [*] Enable extra low-level configuration options
+ * Micro-controller Architecture = `STMicroelectronics STM32`
+ * Processor model = `STM32F401`
+ * Bootloader offset = `16KiB bootloader (HID Bootloader)`
+ * Clock Reference = `8 MHz crystal`
+ * IF USE USB
+ * Communication interface = `USB (on PA11/PA12)`
+ * ElSE IF USE USART2
+ * Communication interface = `Serial (on USART2 PA3/PA2)`
+ * ELSE
+ * Communication interface = `The port you want`
+
+
+ 3. Once the configuration is selected, press `q` to exit, and "Yes" when asked to save the configuration.
+ 4. Run the command `make`
+ 5. The `klipper.bin` file will be generated in the folder `home/pi/kliiper/out` when the `make` command completed. And you can use the windows computer under the same LAN as raspberry pi to copy `klipper.bin` from raspberry pi to the computer with `pscp` command in the CMD terminal. such as `pscp -C pi@192.168.0.101:/home/pi/klipper/out/klipper.bin c:\klipper.bin`(The terminal may prompt that `The server's host key is not cached` and ask `Store key in cache?((y/n)`, Please type `y` to store. And then it will ask for a password, please type the default password `raspberry` for raspberry pi)
+
+## Firmware Installation
+1. You can use the method in [Build Firmware Image 2.5](#build-firmware-image) or use a tool such as `cyberduck` or `winscp` to copy the `klipper.bin` file from your pi to your computer.
+2. Renamed the `firmware-USB.bin`, `firmware-USART2.bin` or the `klipper.bin`(in folder `home/pi/kliiper/out` build by yourself) to `firmware.bin`
+**Important:** If the file is not renamed, the bootloader will not be updated properly.
+3. Copy the `firmware.bin` to the root directory of SD card (make sure SD card is in FAT32 format)
+4. power off the SKR-mini-E3-V3.0.1
+5. insert the microSD card
+6. power on the SKR-mini-E3-V3.0.1
+7. after a few seconds, the SKR-mini-E3-V3.0.1 should be flashed
+8. you can confirm that the flash was successful, by running `ls /dev/serial/by-id`. if the flash was successful, this should now show a klipper device, similar to:
+
+
+
+ (note: this test is not appicable if the firmware was compiled for UART, rather than USB)
+
+## Configure the printer parameters
+### Basic configuration
+1. Refer to [klipper's official installation](https://www.klipper3d.org/Installation.html) to `Configuring OctoPrint to use Klipper`
+2. Refer to [klipper's official installation](https://www.klipper3d.org/Installation.html) to `Configuring Klipper`. And use the configuration file [SKR-mini-E3-V3.0.1-klipper.cfg](./SKR-mini-E3-V3.0.1-klipper.cfg) as the underlying `printer.cfg`, which includes all the correct pinout for Octopus
+3. Refer to [klipper's official Config_Reference](https://www.klipper3d.org/Config_Reference.html) to configure the features you want.
+4. If you use USB to communicate with raspberry pi, run the `ls /dev/serial/by-id/*` command in raspberry pi to get the correct ID number of the motherboard, and set the correct ID number in `printer.cfg`.
+ ```
+ [mcu]
+ serial: /dev/serial/by-id/usb-Klipper_stm32f401xx_4D003C000B50345033313820-if00
+ ```
+5. If you use USART2 to communicate with raspberry pi, you need to modify the following files by inserting the SD card into the computer or by SSH command.
+ * Remove `console=serial0,115200` in `/boot/cmdline.txt`
+ * Add `dtoverlay=pi3-miniuart-bt` at the end of file `/boot/config.txt`
+ * Modify the configuration of `[mcu]` in `printer.cfg` to `serial: /dev/ttyAMA0` and enable `restart_method: command` by SSH
+ ```
+ [mcu]
+ serial: /dev/ttyAMA0
+ restart_method: command
+ ```
+
diff --git a/firmware/V3.0.1/Klipper/README_zh_cn.md b/firmware/V3.0.1/Klipper/README_zh_cn.md
new file mode 100644
index 0000000000..e11ac4912a
--- /dev/null
+++ b/firmware/V3.0.1/Klipper/README_zh_cn.md
@@ -0,0 +1,68 @@
+# [View English version](./README.md)
+
+# 在 SKR-mini-E3-V3.0.1 主板上使用 Klipper
+
+## 注意:
+
+* 此主板出厂时自带了引导程序,允许通过microSD卡更新固件(firmware.bin)。
+
+## 编译固件
+1. 预编译的固件(预编译的固件源码版本是 [Commits on Jul 30, 2022](https://github.com/Klipper3d/klipper/commit/a709ba43af8edaaa307775ed73cb49fac2b5e550))
+ * [firmware-USB.bin](./firmware-USB.bin) 使用 USB 与树莓派通信。直接通过数据线将树莓派的 USB-A 连接到主板的 MicroUSB 接口即可正常通信。
+ * [firmware-USART2.bin](./firmware-USART2.bin) 使用 TFT 端口的 USART2 与树莓派通信. 通过杜邦线将树莓派的 UART-TX 接到主板的 USART-RX2 ,将树莓派的 UART-RX 接到主板的 USART-TX2 ,并且将地线连接在一起即可正常通信。
+
+2. 自行编译最新版本的固件
+ 1. 参考 [klipper官方的安装说明](https://www.klipper3d.org/Installation.html) 下载klipper源码到树莓派
+ 2. 使用下面的配置去编译固件 (如果您的klipper无法选择如下的配置,请更新您的klipper源码)
+ * [*] Enable extra low-level configuration options
+ * Micro-controller Architecture = `STMicroelectronics STM32`
+ * Processor model = `STM32F401`
+ * Bootloader offset = `16KiB bootloader (HID Bootloader)`
+ * Clock Reference = `8 MHz crystal`
+ * 如果使用 USB 与树莓派通信
+ * Communication interface = `USB (on PA11/PA12)`
+ * 如果使用 USART2 与树莓派通信
+ * Communication interface = `Serial (on USART2 PA3/PA2)`
+ * 或者
+ * Communication interface = `你自己想使用的端口`
+
+
+ 3. 配置选择完成后, 输入 `q` 退出配置界面,当询问是否保存配置是选择 "Yes" .
+ 4. 输入 `make` 命令开始编译固件
+ 5. 当 `make` 命令执行完成后,会在树莓派的`home/pi/kliiper/out`的文件夹中生成我们所需要的`klipper.bin`固件。你可以在CMD命令行终端中通过`pscp`命令把`klipper.bin`固件复制到与树莓派在同一个局域网下的电脑上。例如 `pscp -C pi@192.168.0.101:/home/pi/klipper/out/klipper.bin c:\klipper.bin`(命令行会提示 `The server's host key is not cached` 并且询问 `Store key in cache?((y/n)`, 输入 `y` 保存 host key,然后输入树莓派默认的密码:`raspberry`)
+
+## 更新固件
+1. 你可以使用 [编译固件 2.5](#编译固件) 中的方法或者使用 `cyberduck`、 `winscp` 工具软件从树莓派中将 `klipper.bin` 文件复制到电脑上
+2. 将我们提供的`firmware-USB.bin`, `firmware-USART2.bin` 或者你自行编译的 `klipper.bin` 文件重命名为 `firmware.bin`
+**提示:** 如果没有重命名为 `firmware.bin`,引导程序将不会识别并更新此文件
+3. 复制 `firmware.bin` 到microSD卡的根目录中(确保SD卡的文件系统是FAT32格式)
+4. 将主板断电
+5. 插入microSD卡
+6. 给主板通电
+7. 仅需几秒钟,主板就会自动完成更新固件的步骤
+8. 你可以输入 `ls /dev/serial/by-id` 查询主板的串口ID来确认固件是否烧录成功,如果烧录成功了会返回一个klipper的设备ID,如下图所示:
+
+
+
+ (注意: 此步骤仅适用于USB通信的工作方式,如果使用USART通信则没有这种ID)
+
+## 配置打印机的参数
+### 基础配置
+1. 参考 [klipper官方的安装说明](https://www.klipper3d.org/Installation.html) to `Configuring OctoPrint to use Klipper`
+2. 参考 [klipper官方的安装说明](https://www.klipper3d.org/Installation.html) to `Configuring Klipper`. 并且使用我们提供的配置文件 [SKR-mini-E3-V3.0.1-klipper.cfg](./SKR-mini-E3-V3.0.1-klipper.cfg) 为基础去修改 `printer.cfg`, 此文件中包含了主板几乎所有的pinout
+3. 参考 [klipper官方的配置说明Config_Reference](https://www.klipper3d.org/Config_Reference.html) 去配置你想要的特性和功能
+4. 如果你想通过USB与树莓派通信,运行 `ls /dev/serial/by-id/*` 命令去查询主板的设备ID号,在 `printer.cfg` 设置查询到的实际设备ID号
+ ```
+ [mcu]
+ serial: /dev/serial/by-id/usb-Klipper_stm32f401xx_4D003C000B50345033313820-if00
+ ```
+5. 如果你想通过USART2与树莓派通信, 你需要修改一下的文件(你可以通过SSH终端输入命令修改,可以直接修改树莓派系统SD卡中的文件)
+ * 在 `/boot/cmdline.txt` 文件中删除 `console=serial0,115200`
+ * 在 `/boot/config.txt` 文件的末尾添加 `dtoverlay=pi3-miniuart-bt`
+ * 修改配置文件 `printer.cfg` 的 `[mcu]` 部分为 `serial: /dev/ttyAMA0` 并且添加 `restart_method: command`
+ ```
+ [mcu]
+ serial: /dev/ttyAMA0
+ restart_method: command
+ ```
+
diff --git a/firmware/V3.0.1/Klipper/SKR-mini-E3-V3.0.1-klipper.cfg b/firmware/V3.0.1/Klipper/SKR-mini-E3-V3.0.1-klipper.cfg
new file mode 100644
index 0000000000..d3f57f2a6b
--- /dev/null
+++ b/firmware/V3.0.1/Klipper/SKR-mini-E3-V3.0.1-klipper.cfg
@@ -0,0 +1,126 @@
+# This file contains common pin mappings for the BIGTREETECH SKR mini
+# E3 v3.0. To use this config, the firmware should be compiled for the
+# STM32G0B1 with a "8KiB bootloader" and USB communication.
+
+# The "make flash" command does not work on the SKR mini E3. Instead,
+# after running "make", copy the generated "out/klipper.bin" file to a
+# file named "firmware.bin" on an SD card and then restart the SKR
+# mini E3 with that SD card.
+
+# See docs/Config_Reference.md for a description of parameters.
+
+[stepper_x]
+step_pin: PC11
+dir_pin: !PC12
+enable_pin: !PC10
+microsteps: 16
+rotation_distance: 40
+endstop_pin: ^PB5
+position_endstop: 0
+position_max: 235
+homing_speed: 50
+
+[tmc2209 stepper_x]
+uart_pin: PC7
+tx_pin: PC6
+uart_address: 0
+run_current: 0.580
+stealthchop_threshold: 999999
+
+[stepper_y]
+step_pin: PB12
+dir_pin: !PB10
+enable_pin: !PB13
+microsteps: 16
+rotation_distance: 40
+endstop_pin: ^PB6
+position_endstop: 0
+position_max: 235
+homing_speed: 50
+
+[tmc2209 stepper_y]
+uart_pin: PC7
+tx_pin: PC6
+uart_address: 2
+run_current: 0.580
+stealthchop_threshold: 999999
+
+[stepper_z]
+step_pin: PB1
+dir_pin: PB0
+enable_pin: !PB2
+microsteps: 16
+rotation_distance: 8
+endstop_pin: ^PB7
+position_endstop: 0.0
+position_max: 250
+
+[tmc2209 stepper_z]
+uart_pin: PC7
+tx_pin: PC6
+uart_address: 1
+run_current: 0.580
+stealthchop_threshold: 999999
+
+[extruder]
+step_pin: PC2
+dir_pin: !PC1
+enable_pin: !PC3
+microsteps: 16
+rotation_distance: 33.500
+nozzle_diameter: 0.400
+filament_diameter: 1.750
+heater_pin: PA15
+sensor_type: EPCOS 100K B57560G104F
+sensor_pin: PC5
+control: pid
+pid_Kp: 21.527
+pid_Ki: 1.063
+pid_Kd: 108.982
+min_temp: 0
+max_temp: 250
+
+[tmc2209 extruder]
+uart_pin: PC7
+tx_pin: PC6
+uart_address: 3
+run_current: 0.650
+stealthchop_threshold: 999999
+
+[heater_bed]
+heater_pin: PB3
+sensor_type: ATC Semitec 104GT-2
+sensor_pin: PC4
+control: pid
+pid_Kp: 54.027
+pid_Ki: 0.770
+pid_Kd: 948.182
+min_temp: 0
+max_temp: 130
+
+[heater_fan heatbreak_cooling_fan]
+pin: PC8
+
+[heater_fan controller_fan]
+pin: PA8
+
+[fan]
+pin: PC9
+
+[mcu]
+serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
+
+[printer]
+kinematics: cartesian
+max_velocity: 300
+max_accel: 3000
+max_z_velocity: 5
+max_z_accel: 100
+
+[board_pins]
+aliases:
+ # EXP1 header
+ EXP1_1=PB15, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PD2, EXP1_9=,
+ EXP1_2=PB14, EXP1_4=, EXP1_6=PB4, EXP1_8=PC0, EXP1_10=<5V>
+
+# See the sample-lcd.cfg file for definitions of common LCD displays.
diff --git a/firmware/V3.0.1/Klipper/firmware-USART2.bin b/firmware/V3.0.1/Klipper/firmware-USART2.bin
new file mode 100644
index 0000000000..6a78681820
Binary files /dev/null and b/firmware/V3.0.1/Klipper/firmware-USART2.bin differ
diff --git a/firmware/V3.0.1/Klipper/firmware-USB.bin b/firmware/V3.0.1/Klipper/firmware-USB.bin
new file mode 100644
index 0000000000..12872b8fda
Binary files /dev/null and b/firmware/V3.0.1/Klipper/firmware-USB.bin differ
diff --git a/firmware/V3.0.1/Marlin/README.md b/firmware/V3.0.1/Marlin/README.md
new file mode 100644
index 0000000000..2fd1a9b3d6
--- /dev/null
+++ b/firmware/V3.0.1/Marlin/README.md
@@ -0,0 +1,8 @@
+# SKR-mini-E3 V3.0.1 Marlin firmware
+
+Note: The filename must be renamed to "firmware.bin" before coping this file to the motherboard onboard TF card.
+
+### Ender-3 Precompiled firmware
+* [firmware-ender3.bin](./firmware-ender3.bin): The original factory firmware for Ender-3, cannot support BLTouch
+
+Marlin source code in [here](https://github.com/bigtreetech/Marlin/tree/SKR-mini-E3-F401)
\ No newline at end of file
diff --git a/firmware/V3.0.1/Marlin/firmware-ender3.bin b/firmware/V3.0.1/Marlin/firmware-ender3.bin
new file mode 100644
index 0000000000..b6870c800e
Binary files /dev/null and b/firmware/V3.0.1/Marlin/firmware-ender3.bin differ
diff --git a/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_3D.pdf b/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_3D.pdf
new file mode 100644
index 0000000000..d010a708a3
Binary files /dev/null and b/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_3D.pdf differ
diff --git a/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_PIN.pdf b/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_PIN.pdf
new file mode 100644
index 0000000000..ae429bc91f
Binary files /dev/null and b/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_PIN.pdf differ
diff --git a/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_SCH..pdf b/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_SCH..pdf
new file mode 100644
index 0000000000..07b86467ee
Binary files /dev/null and b/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_SCH..pdf differ
diff --git a/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_SIZE.pdf b/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_SIZE.pdf
new file mode 100644
index 0000000000..59304a0917
Binary files /dev/null and b/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_SIZE.pdf differ
diff --git a/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_TOP_Slik_Screen_Printing.pdf b/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_TOP_Slik_Screen_Printing.pdf
new file mode 100644
index 0000000000..472d9b3e72
Binary files /dev/null and b/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT E3 SKR MINI V3.0.1_TOP_Slik_Screen_Printing.pdf differ
diff --git "a/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT SKR MINI E3 V3.0.1 \344\275\277\347\224\250\346\211\213\345\206\214.pdf" "b/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT SKR MINI E3 V3.0.1 \344\275\277\347\224\250\346\211\213\345\206\214.pdf"
new file mode 100644
index 0000000000..a5f2e0ede6
Binary files /dev/null and "b/hardware/BTT SKR MINI E3 V3.0.1/Hardware/BTT SKR MINI E3 V3.0.1 \344\275\277\347\224\250\346\211\213\345\206\214.pdf" differ