Merge branch 'main' of github.com:sipeed/sipeed_wiki

This commit is contained in:
Neucrack
2025-09-05 20:35:06 +08:00
145 changed files with 3398 additions and 479 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 979 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

View File

@@ -68,6 +68,12 @@ The STA LED indicates the operating status of the NanoKVM. When functioning prop
> If `VIDevFPS` is not 0 and `VIFPS` is 0, it indicates that NanoKVM is not correctly configured for HDMI parameters. The Cube can replug the HDMI to auto-detect, while PCIe can click `Reset HDMI` under `Video` to auto-detect.
> Check if `VIInImgWidth` and `VIInImgHeight` match the actual HDMI resolution. If they are different, it means NanoKVM did not auto-detect the correct HDMI parameters. Manually configure the resolution parameters as described in point 4.
### No Display After Host Wakes from Sleep
1. Check if you are using a cheap DP to HDMI (passive adapter). These types of adapters lack a proper wake mechanism and cannot notify the NanoKVM that the display has been restored.
2. For PCIe versions, you can click the "Reset HDMI" button to forcefully retrieve the display.
3. The Cube/Lite versions lack a reset function; please switch to an active DP adapter.
### Serious screen delay in internal network environment
1. Try replacing the switch or power supply

View File

@@ -57,7 +57,8 @@ The wiring diagram for the NanoKVM-Full version is as follows. The Lite version
![](./../../../assets/NanoKVM/unbox/hdmi.png)
+ Connect NanoKVM to a router/switch using an Ethernet cable.
+ Connect NanoKVM to a router/switch using an Ethernet cable.
> Note: In some cases NanoKVM Ethernet port might not work вгу ещ electromagnetic interference. In such cases shielded Ethernet cable is recommended.
+ Use another USB C to A data cable to connect the KVM-B board to the ATX interface of NanoKVM (located above the Ethernet port).

View File

@@ -137,6 +137,10 @@ Note:
1. **Permanently Disable:** Execute `touch /etc/kvm/ssh_stop` to disable SSH login on the next boot. To enable it again, remove the file using `rm /etc/kvm/ssh_stop`.
2. **Temporarily Enable:** Execute `touch /boot/start_ssh_once` or create an empty file named `start_ssh_once` in the /boot partition. This will enable SSH on the next boot, and the file will be automatically deleted.
### Setting DNS
+ If you need to set a DNS list, create `/boot/resolv.conf`. This will enforce your own DNS configuration after booting.
### About mDNS
+ mDNS (Multicast DNS) is a protocol used for name resolution within a local network, allowing devices to discover and communicate with each other using hostnames instead of IP addresses. It enables automatic discovery of services and devices on the network without a central DNS server.

View File

@@ -136,6 +136,10 @@ Note: The NCM connection method was added after version 2.1.5, but the default r
1. **Permanently Disable:** Execute `touch /etc/kvm/ssh_stop` to disable SSH login on the next boot of NanoKVM. To enable it again, delete the file using `rm /etc/kvm/ssh_stop`.
2. **Temporarily Enable:** Execute `touch /boot/start_ssh_once` or create an empty file named `start_ssh_once` in the /boot partition. This will enable SSH on the next boot of NanoKVM, and the file will be automatically deleted.
### Setting DNS
+ If you need to set a DNS list, create `/boot/resolv.conf`. This will enforce your own DNS configuration after booting.
### About mDNS
+ mDNS (Multicast DNS) is a protocol used for name resolution within a local network, allowing devices to discover and communicate with each other using hostnames instead of IP addresses, without needing a central DNS server.

View File

@@ -0,0 +1,88 @@
---
title: ATX Getting Started Guide
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool, PCIe
update:
- date: 2025-8-26
version: v0.1
author: BuGu
content:
- Release docs
---
## Unboxing
### NanoKVM-ATX Unboxing List
![](./../../../assets/NanoKVM/pro/start/unbox1.png)
![](./../../../assets/NanoKVM/pro/start/unbox2.png)
The NanoKVM-ATX includes:
+ NanoKVM-ATX host with full-height PCIe bracket + OLED *1;
+ HDMI cable 150cm *1;
+ HDMI cable 50cm *1;
+ USB Type A to Type C 100cm *2;
+ 4Pin internal USB cable 40cm *1;
+ ATX-9Pin split power switch cable 30+30cm *1;
+ Small Phillips screwdriver *1;
+ Antenna *1 (WiFi version only);
## Interface Definition
![](./../../../assets/NanoKVM/pro/start/ATX-Interface.jpg)
## Wiring
1. Connect the power. The NanoKVM-Pro has slightly higher power requirements, and some motherboard USB ports may not provide sufficient current. To ensure the proper operation of the NanoKVM-Pro, it is strongly recommended to use an external power supply of 5V 1A or higher (actual power consumption is about 3W).
![](./../../../assets/NanoKVM/pro/start/01_Power.png)
2. Connect the USB-HID interface:
+ ATX version: can use either internal case wiring or external USB-C connection.
![](./../../../assets/NanoKVM/pro/start/02_USB.png)
> ❗❗❗For the first batch of users (the cable is different from Figure B below), if you choose the internal chassis wiring method, please check your email and follow the modification instructions provided in the email to connect the cables. Alternatively, refer to [here](https://wiki.sipeed.com/nanokvmpro-usb) to modify the cable.
![](./../../../assets/NanoKVM/pro/start/cable.png)
3. Use an Ethernet cable to connect the router/switch to the NanoKVM-Pro. If there is no wired network, this step can be skipped; Wi-Fi can be configured after powering on (requires purchasing the WiFi version).
![](./../../../assets/NanoKVM/pro/start/05_ETH.png)
4. Connect HDMI-IN. If the motherboard has only one video port and an external display is needed, connect HDMI-OUT to your display.
![](./../../../assets/NanoKVM/pro/start/06_HDMI.png)
> Note that NanoKVM-Pro supports a maximum capture of 4K30FPS. The built-in HDMI splitter actively reads the resolution and frame rate of the external display and provides a common mode list to the host.
> If you connect a 4K60FPS display, the computer will recognize it as a maximum supported 4K30 display (limited by the capture device; you can turn off capture to allow 4K60 direct output to the monitor).
> If you connect a 1080P display, the computer will recognize it as a maximum 1080P display (limited by the loop-out display).
5. (Optional) Connect the ATX power control interface.
![](./../../../assets/NanoKVM/pro/start/07_ATX.png)
## Internal Network Access
### Connecting to the Network
1. If using a wired connection, after powering on, the KVM will obtain an IP address assigned by the router's DHCP, and this step can be skipped.
2. Wi-Fi Connection
+ The ATX version can configure the network via OLED. The steps are as follows:
1. Connect to the NanoKVM-ATX's AP: Long press the USR button, and the KVM will release a Wi-Fi signal (AP). The OLED will display this IP information, allowing you to scan the QR code for quick connection.
2. Log in to the webpage to enter the Wi-Fi account and password: After connecting to Wi-Fi, the OLED will display the webpage link. You can manually enter the URL or scan the QR code for quick access to the webpage for configuration.
3. If needed, you can also connect via USB-NCM.
### Accessing the Page
1. For the ATX version: After connecting to the network, the OLED will display the local IP address (E IP is the IP obtained from the wired network; W IP is the IP obtained from the Wi-Fi network, automatically switching display by default).
2. Use a computer on the same internal network to input the IP address in a browser (Chrome is recommended) to access the page.
![](./../../../assets/NanoKVM/pro/start/SSL.png)
> It is normal to see this warning. NanoKVM-Pro has enabled HTTPS for enhanced security and uses a self-signed SSL certificate.
3. The default initial account is `admin`, and the password is `admin`. It is strongly recommended to change the account password immediately.
4. Check if the image, keyboard/mouse, and power buttons are functioning correctly.
![](./../../../assets/NanoKVM/pro/start/nanokvm4K.png)
## Remote Connection
1. NanoKVM-Pro comes pre-installed with the Tailscale application, allowing you to log in with your Tailscale account in the web settings. All devices logged into Tailscale will automatically join the same virtual internal network environment, assigning each device a `100.xxx.xxx.xxx` IP, which can be used to remotely access and control your host.
2. Other remote networking tools: NanoKVM-Pro is based on Ubuntu and can install applications via `apt`, such as ZeroTier. Please follow the official instructions to install related applications.

View File

@@ -0,0 +1,3 @@
# NanoKVM-Desk Getting Started Guide
Coming Soon

View File

@@ -0,0 +1,110 @@
---
title: Advanced Applications
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool, PCIe
update:
- date: 2025-8-26
version: v0.1
author:
content:
- Release docs
---
## Switching to PiKVM
In addition to running the NanoKVM framework, NanoKVM Pro is also compatible with the PiKVM software framework. You can switch between them as needed.
### Switching to PiKVM
By default, the NanoKVM Pro uses the NanoKVM framework. You can switch to PiKVM in `Settings` -> `About` -> `Switch Device`.
![](./../../../assets/NanoKVM/pro/extended/SwitchtoPiKVM.png)
After clicking, the system will automatically restart and boot into the PiKVM framework. This process takes about 30 seconds. If it does not switch automatically for a long time, please refresh the webpage manually.
![](./../../../assets/NanoKVM/pro/extended/PiKVMLogin.png)
The default username and password for the PiKVM framework are also `admin`, `admin`. However, the two platforms use their own usernames and passwords, which are not unified. It is strongly recommended to change them after logging in.
![](./../../../assets/NanoKVM/pro/extended/PiKVM-Setting.png)
> Some functions in the PiKVM framework require the use of a web terminal, such as Wi-Fi configuration and Tailscale setup.
> When updating NanoKVM, the PiKVM framework will be updated simultaneously.
### Switching to NanoKVM
Switching back from the PiKVM system to NanoKVM is equally simple. Just go to `Options` -> `Switch to NanoKVM` and click `Switch Now`.
![](./../../../assets/NanoKVM/pro/extended/SwitchtoNanoKVM.png)
After clicking, the system will automatically restart and boot into the NanoKVM framework. This process takes about 30 seconds. If it does not switch automatically for a long time, please refresh the webpage manually.
## SSH
To ensure security, SSH is disabled by default on the NanoKVM Pro. If you need SSH access or want to preview a new version, you can enable SSH by going to `Settings` -> `Device`.
The default username is `root` and the password is `sipeed`. If you change the web account password under the NanoKVM framework, the SSH password will be updated accordingly.
## Updates
NanoKVM Pro will periodically push new application versions that include new features and bug fixes. You can update the application version in `Settings` -> `Check for Updates`.
![](./../../../assets/NanoKVM/pro/extended/Update.png)
After clicking download, the new application installation package will be automatically downloaded, which includes `kvmcomm_x.x.x_arm64.deb`, `nanokvmpro_x.x.x_arm64.deb`, and `pikvm_x.x.x_arm64.deb`:
+ `kvmcomm_x.x.x_arm64.deb` is responsible for driving the shared hardware in the NanoKVM and PiKVM frameworks;
+ `nanokvmpro_x.x.x_arm64.deb` is the NanoKVM application software;
+ `pikvm_x.x.x_arm64.deb` is the PiKVM application software.
Enabling the preview update feature will allow you to access the latest experimental application, which usually includes updated features but may lack stability. It is recommended to enable SSH before downloading preview updates.
You can also download specific versions and install them manually.
```shell
# Example of downloading version 1.0.10
# Download files
curl -L -o nanokvm_pro_1.0.10.tar.gz https://cdn.sipeed.com/nanokvm/pro/kvmcomm_1.0.10_arm64.deb
curl -L -o nanokvm_pro_1.0.10.tar.gz https://cdn.sipeed.com/nanokvm/pro/nanokvmpro_1.0.10_arm64.deb
curl -L -o nanokvm_pro_1.0.10.tar.gz https://cdn.sipeed.com/nanokvm/pro/pikvm_1.0.10_arm64.deb
sudo apt install ./*1.0.10*
```
## How to Use Serial Ports
NanoKVM Pro provides two available serial ports, UART1/UART2 (the ATX version does not expose them due to bracket specifications, retaining only internal pads).
+ Connect to other serial terminal devices:
```shell
# Use UART1 at 115200 baud rate on the web terminal, exit with Ctrl+A+Q
picocom -b 115200 /dev/ttyS1
# Use UART2 at 115200 baud rate on the web terminal, exit with Ctrl+A+Q
# picocom -b 115200 /dev/ttyS2
```
+ Send serial commands only:
```shell
# Set ttyS1 to 115200 baud rate
stty -F /dev/ttyS1 115200
# Send hexadecimal data 0x11, 0x22, 0x33
echo -n -e '\x11\x22\x33' > /dev/ttyS1
```
## How to Modify EDID
EDID (Extended Display Identification Data) is a set of data provided by a display device to the host, including device information, resolution and frame rate lists, color characteristics, audio capabilities, etc. The host adjusts the display settings based on the received EDID.
NanoKVM Pro supports modifying the EDID exposed by the virtual display. You can clone the EDID from a monitor or write your own EDID to achieve specific screen ratios, refresh rates, or color characteristics.
> Modifying the EDID may risk improper display functionality. Please proceed with caution. If issues arise, restore the default EDID.
Writing method:
```shell
# 1. Prepare the EDID file, typically 256 bytes, and scp it to the system
ls -l /root/customize.bin
# -rw-r--r-- 1 1000 1000 256 Aug 19 14:44 /root/customize.bin
# 2. Write the EDID
cat /root/customize.bin > /proc/lt6911_info/edid
# 3. Restore the default EDID:
cat /kvmcomm/edid/e18.bin > /proc/lt6911_info/edid
```

View File

@@ -0,0 +1,115 @@
# F&Q
## Updating to Solve Issues
NanoKVM Pro will periodically update applications, and some issues may have been resolved in newer versions. Therefore, please try updating the application first.
## Green LED Flashing
The green LED is the power indicator for NanoKVM Pro. If a power supply with insufficient capacity is connected, the green LED may fail to start due to unstable voltage. Please disconnect all power sources and replace the power supply.
## Image Burning Methods
### USB Burning
NanoKVM Pro supports restoring or updating the system via USB image burning.
#### Preparation
- Prepare a USB data cable
- Download the latest NanoKVM Pro image file
- Prepare a burning tool (such as balenaEtcher, Rufus, or the dd command)
#### Burning Steps
1. **Download the Image and Burning Tool**
- Visit the [NanoKVM Pro Release Page](https://github.com/sipeed/NanoKVM-Pro/releases/latest) to download the latest image file.
- Download and install the burning tool [balenaEtcher](https://etcher.balena.io/).
2. **Enter Burning Mode**
- Use the USB data cable to connect the NanoKVM Pro's HID interface to your computer.
- Press and hold the User button on the NanoKVM, then power it on (or press the Reset button while powered on) until the orange LED turns off.
- The device will then enter burning mode, and the orange LED will start flashing again. Check if your computer recognizes the new disk device.
<div style="display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; align-items: flex-end;">
<div style="text-align: center; flex: 1; max-width: 400px; min-width: 300px;">
<img src="./../../../assets/NanoKVM/pro/faq/update_win.jpeg" alt="Windows Recognizing Device" style="width: 100%; height: auto; object-fit: contain; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
<p style="margin-top: 8px; margin-bottom: 0; font-style: italic; color: #666; font-size: 16px;">Windows Recognizing Device</p>
</div>
<div style="text-align: center; flex: 1; max-width: 400px; min-width: 300px;">
<img src="./../../../assets/NanoKVM/pro/faq/update_linux.jpeg" alt="Linux Recognizing Device" style="width: 100%; height: auto; object-fit: contain; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
<p style="margin-top: 8px; margin-bottom: 0; font-style: italic; color: #666; font-size: 16px;">Linux Recognizing Device</p>
</div>
</div>
3. **Burn Using balenaEtcher (Recommended)**
- Launch balenaEtcher.
- Click "Flash from file" and select the downloaded image file.
- Click "Select target" and choose the recognized NanoKVM Pro device.
- Click "Flash!" to start the burning process.
- Wait for the burning to complete and verify.
<div align="center">
<img src="./../../../assets/NanoKVM/pro/faq/flash.jpeg" style="width: 80%; height: auto; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);" alt="Flash">
</div>
- If prompted that the partition table cannot be found, it is normal; click continue.
<div align="center">
<img src="./../../../assets/NanoKVM/pro/faq/miss_part.jpeg" style="width: 70%; height: auto; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);" alt="Missing Partition">
</div>
4. **Burn Using Command Line**
```bash
# Find the device name
sudo fdisk -l
# Decompress the image file (if it is in .xz format)
xz -dv 20250828_NanoKVMPro_1_0_10.img.xz
# Burn the image (replace /dev/sdX with the actual device name)
sudo dd if=20250828_NanoKVMPro_1_0_10.img of=/dev/sdX bs=4M status=progress
sudo sync
```
5. **Restart the Device**
- After burning is complete, safely eject the device.
- Disconnect the USB connection.
- Reconnect the power, and the device will automatically start the new system.
#### Notes
- Ensure you select the correct device to avoid accidentally operating on other storage devices.
- Do not disconnect the power or remove USB connections during the burning process.
- The first startup may take a long time for initialization and configuration.
- If the orange light does not turn on or the disk device does not appear, please refer to the methods below to use AXDL for burning.
### AXDL Burning
AXDL is an official burning tool provided by Aixin, designed for burning AXP format system images. It currently supports Windows platform only.
#### Preparation
- Prepare a USB data cable.
- Visit the [NanoKVM Pro Release Page](https://github.com/sipeed/NanoKVM-Pro/releases) to download the latest AXP format image file.
- Download and install the AXDL tool and corresponding drivers [Download Link](https://dl.sipeed.com/shareURL/MaixIV/M4N-Dock/10_PC_Software).
#### Burning Steps
1. **Connect the Device**
- Use the USB data cable to connect the NanoKVM Pro's HID interface to your computer.
2. **Configure the Burning Tool**
- Open the AXDL tool.
- Select the downloaded AXP format image file.
- Click the start burning button.
<div align="center">
<img src="./../../../assets/NanoKVM/pro/faq/axdl.jpeg" style="width: 80%; height: auto; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);" alt="AXDL Burning Tool Interface">
</div>
3. **Enter Burning Mode and Start Burning**
- Press and hold the User button on the NanoKVM, then power it on (or press the Reset button while powered on).
- The burning process will start automatically, wait for the progress bar to complete.
- Wait until the prompt indicates that burning was successful; the entire process is complete.

View File

@@ -0,0 +1,89 @@
---
title: Introduction
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, ARM, tool, PCIe
update:
- date: 2025-8-25
version: v0.1
author: BuGu
content:
- Release docs
---
## Introduction
NanoKVM Pro is the continuation of NanoKVM, inheriting the extreme compactness and powerful expandability of the NanoKVM series as an IP-KVM product. It has made a significant leap in performance, making it more suitable for remote working scenarios.
To meet different user needs, NanoKVM Pro offers two forms: NanoKVM-Desk and NanoKVM-ATX:
![](./../../../assets/NanoKVM/pro/introduce/combine.png)
NanoKVM-Desk is the desktop version of NanoKVM Pro, featuring an anodized matte metal shell. The front panel has a 1.47-inch touchscreen that displays core KVM information and allows for easy hardware function settings or can be used as a mini secondary screen, providing a more tactile user experience with the left-side infinite knob.
NanoKVM-ATX is the internal version of NanoKVM Pro, equipped with half-height/full-height brackets for installation inside a case. It allows for easier installation for host users with built-in USB cables and power control interfaces. Remote control can be achieved via external HDMI, network, and USB connections.
NanoKVM Pro uses the AX630 as its main control core, featuring an ARM 1.2G dual-core A53 CPU. The external 1GB LPDDR4 memory provides strong computing support for remote desktop connections. It has built-in HDMI loop-out and capture chips, offering up to 4K60FPS HDMI loop-out and 4K45FPS video capture. Thanks to AX630's efficient and powerful image processing architecture, NanoKVM-Pro can transmit high-resolution images with very low latency, with typical delays as low as 60ms at 2K resolution.
The IP-KVM series products are hardware add-ons for remote desktops, capturing images via HDMI, synchronizing images and keyboard/mouse operations in real time over the network, and simulating keyboard/mouse control of the computer. Since this entire process does not require host software and is completely implemented by external hardware, NanoKVM can achieve BIOS-level control of the host, making it widely applicable in scenarios such as remote power on/off, multi-system switching, BIOS configuration, and remote installation.
Due to its upgraded powerful performance, NanoKVM Pro not only provides reliable support for temporary maintenance but also excels in the remote working field due to its low-latency and high-resolution characteristics. We will continue to upgrade the software of NanoKVM Pro, offering more convenient automation/MCP features and broader compatibility.
To meet different user needs, NanoKVM Pro offers optional features such as WiFi, PoE, and screen-edge synchronized LED strips. Please refer to the purchase page for related configurations and pricing.
## Specifications
| Product | NanoKVM-Pro | NanoKVM | GxxKVM | JxxKVM |
|---------------|----------------|--------------|-------------|-------------|
| Main Control | AX630C | SG2002 | RV1126 | RV1106 |
| Core | 2xA53@1.2G | 1xC906@1.0G | 4xA7@1.5G | 1xA7@1.2G |
| Memory | 1G LPDDR4X | 256M DDR3 | 1G DDR3 | 256M DDR3 |
| Storage | 32G eMMC | 32G microSD | 8G eMMC | 16G eMMC |
| System | NanoKVM+PIKVM | NanoKVM | GxxKVM | JxxKVM |
| Resolution | 4K@45fps, 2K@95fps[4] | 1080P@60fps | 4K@30fps, 2K@60fps | 1080P@60fps |
| HDMI Loop-Out | 4K Loop-Out | × | × | × |
| Video Encoding | MJPG/H264/H265[5] | MJPG/H264 | MJPG/H264 | MJPG/H264 |
| Audio Transmission | √ | × | √ | × |
| UEFI/BIOS Support | √ | √ | √ | √ |
| Simulated USB Keyboard/Mouse | √ | √ | √ | √ |
| Simulated USB ISO | √ | √ | √ | √ |
| IPMI | √ | √ | √ | × |
| Wake-on-LAN (WOL) | √ | √ | √ | √ |
| WebSSH | √ | √ | √ | √ |
| Custom Scripts | √ | √ | × | × |
| Serial Terminal | 2 Channels | 2 Channels | None | 1 Channel |
| Storage Performance | 32G eMMC 300MB/s | 32G MicroSD 12MB/s | 8G eMMC 120MB/s | 8G eMMC 60MB/s |
| Ethernet | 1000M | 100M | 1000M | 100M |
| Internal Form Factor | Optional ATX version | Optional PCIe version | × | × |
| WiFi | Optional WiFi6 | Optional WiFi6 | × | × |
| ATX Power Control | √ | √ | +15$ | +10$ |
| Display | 1.47-inch 320x172 LCD<br>0.96-inch 128x64 OLED | 0.96-inch 128x64 OLED | None | 1.66-inch 280x240 |
| Additional Features | Synchronized LED effects, Smart Assistant | | | |
| Power Consumption | 0.6A@5V | 0.2A@5V | 0.4A@5V | 0.2A@5V |
| Power Input | USB-C/PoE | USB-C/PoE/PCIe | USB-C | USB-C |
| Dimensions | 65x65x28mm | 40x36x36mm | 80x60x7.5mm | 60x6x24-30mm |
## NanoKVM-PCIe Information
+ [NanoKVM Pro Image Download (To be updated)](https://github.com/sipeed/NanoKVM-Pro/releases/latest)
+ [ATX Getting Started Guide](https://wiki.sipeed.com/hardware/en/kvm/NanoKVM_Pro/atx_start.html)
+ [Advanced Applications](https://wiki.sipeed.com/hardware/en/kvm/NanoKVM_Pro/extended.html)
+ [FAQ](https://wiki.sipeed.com/hardware/en/kvm/NanoKVM_Pro/faq.html)
## Purchase Links
[Pre-sale Page](https://sipeed.com/nanokvm/pro)
[Official Taobao Purchase Link (To be updated)]()
[AliExpress Purchase Link (To be updated)]()
## Product Feedback
If you encounter any issues or have suggestions during use, please provide feedback through the following channels:
+ [Github Issues](https://github.com/sipeed/NanoKVM-Pro/issues)
+ [MaixHub Forum](https://maixhub.com/discussion/nanokvm)
+ QQ Group: 703230713
> [1] In scenarios with only loop-out, the capture function can be turned off to directly loop out 4K60 images; when loop-out and capture are running simultaneously, it can achieve 4K30FPS.
> [2] Latency may vary due to network bandwidth and nodes; the measured data comes from Sipeed Labs.
> [3] The USB-HID interface can be wired internally in the case or connected externally; choose one.
> [4] Due to 4K45FPS being a non-standard mode, the factory default uses 4K30+2K60; methods to unlock 4K45FPS/2K95FPS/1080P144FPS will be provided in future updates.
> [5] Currently, the factory supports H264/MJPEG modes; future updates will provide H265 support.

View File

@@ -0,0 +1,39 @@
---
title: How to Modify USB 4-Pin
---
## Method 1: Connect as Shown Below
![](./../../../assets/NanoKVM/pro/usb/usb1.png)
Note: The black 5V cable needs to be cut at the position indicated in the figure below. Avoid having the wire end touch other components, which could cause a short circuit.
![](./../../../assets/NanoKVM/pro/usb/usb2.png)
## Method 2: Requires Swapping Some Wire Positions
1. Use a tool like tweezers, a toothpick, or a small screwdriver to lift the plastic tab of the 1.27mm terminal header.
![](./../../../assets/NanoKVM/pro/usb/usb3.png)
2. Pull out the cable (repeat steps 1/2 for all 4 cables).
![](./../../../assets/NanoKVM/pro/usb/usb4.png)
3. Press here.
![](./../../../assets/NanoKVM/pro/usb/usb5.png)
4. Use a tool like tweezers, a toothpick, or a small screwdriver to lift the plastic tab for the red wire on the 2.54mm terminal header.
![](./../../../assets/NanoKVM/pro/usb/usb6.png)
5. Cut both ends of the red wire. Be sure to insert the scissors deep into the heat shrink tubing to cut, avoiding any exposed wire ends.
![](./../../../assets/NanoKVM/pro/usb/usb7.png)
![](./../../../assets/NanoKVM/pro/usb/usb8.png)
6. Insert the 1.27mm wires into the connector as shown in the figure below.
![](./../../../assets/NanoKVM/pro/start/cable.png)

View File

@@ -0,0 +1,112 @@
---
title: Screen Expansion LED Strip
keywords: NanoKVM, LED Strip
update:
- date: 2025-9-05
version: v0.1
author: iawak9lkm
content:
- Release docs
---
## Package Accessories Overview
If you purchased the LED strip package, you will receive the following items:
![ledstrip\_ov](../../../assets/NanoKVM/pro/ledstrip/ledstrip_ov.jpg)
1. 1-to-2 data cable
2. LED strip adapter kit (includes 6 adapters and 3 right-angle cables)
3. One roll of LED strip
---
## Installation Steps
### Confirm Installation Orientation
![ledstrip_screen](../../../assets/NanoKVM/pro/ledstrip/ledstrip_screen.jpg)
> Segment ④ is optional. You can choose between three-sided or four-sided mode based on your needs.
>
> The sampling order of the strip is: **Bottom-left → Top-left → Top-right → Bottom-right → Bottom-left**.
> Ensure consistency during installation. The green end is the strips Type-C connector, and the other end connects to NanoKVM-Pro via the adapter cable.
### Cut the LED Strip
![ledstrip_cut_st0](../../../assets/NanoKVM/pro/ledstrip/ledstrip_cut_st0.jpg)
Cut the LED strip according to the screens width and height.
> The number of LEDs on opposite sides must remain consistent.
Example: Screen height 18 LEDs, width 30 LEDs.
* Segment ①: 18 LEDs
* Segment ②: 30 LEDs
* Segment ③: 18 LEDs
* Segment ④: 30 LEDs
When cutting, make sure to cut along the red line (the midpoint between contacts):
![ledstrip_cut_st1](../../../assets/NanoKVM/pro/ledstrip/ledstrip_cut_st1.jpg)
### Open the Adapter Connector
In the image below, the right side shows the **side view** of the adapter connector. Pry open the connector at the red-marked area, resulting in the state shown on the left:
![ledstrip_con_st2](../../../assets/NanoKVM/pro/ledstrip/ledstrip_con_st2.jpg)
### Insert the Cables
Insert the LED strip and right-angle cable into opposite sides of the adapter connector, ensuring that the metal contacts align with the bridging metal inside the connector. Close the connector to secure.
![ledstrip_con_st3](../../../assets/NanoKVM/pro/ledstrip/ledstrip_con_st3.jpg)
Connect the other end of the right-angle cable. **Ensure that the arrow direction on the LED strip (signal flow direction) remains consistent**.
Repeat this process until all strips are connected.
![ledstrip_con_st4](../../../assets/NanoKVM/pro/ledstrip/ledstrip_con_st4.jpg)
### Attach the LED Strip
Peel off the protective film of the double-sided adhesive on the back of the strip, then firmly attach it to the back of the screen.
### Connect to NanoKVM-Pro
The connection layout is as follows:
* ① Connect to NanoKVM-Pro PWR port
* ② Connect to LED strip
* ③ Connect to power adapter
> ⚠️ Note: Please ensure the power supply specification is **5V ≥ 3A**.
![ledstrip_pwr](../../../assets/NanoKVM/pro/ledstrip/ledstrip_pwr.jpg)
---
## Enable the LED Strip
* Enable via Web
1. Log in to NanoKVM via a browser
2. Navigate to **Settings → Device → LED Strip Settings**
![ledstrip_web1_en](../../../assets/NanoKVM/pro/ledstrip/led_strip_web1_en.jpg)
3. Enter the number of LEDs and enable the feature
![ledstrip_web2_en](../../../assets/NanoKVM/pro/ledstrip/led_strip_web2_en.jpg)
* Enable via Desk UI
1. Go to the `Settings` page
2. Select `Ambilight` to enter the sub-settings page
3. Configure the number of LEDs and enable the feature
---
## Demonstration
![ledstrip_show](../../../assets/NanoKVM/pro/ledstrip/ledstrip_show.png)

View File

@@ -17,6 +17,12 @@ keywords: NanoKVM-USB, Lichee, PiKVM, RISCV, tool
+ Some Linux distributions come with `brltty`, a Braille display tool that occupies the `/dev/ttyUSB0` serial port, causing the webpage to be unable to detect it. If you are not using `brltty`, it is recommended to uninstall it with `sudo apt remove brltty`.
### Poor Video Quality
+ First, check if you're using a USB 2.0 cable/HOST interface. When the resolution is high, USB 2.0 may not provide sufficient bandwidth, which can lower the video quality. It is recommended to use a USB 3.0 cable.
+ At 2K resolution, the video quality may decrease due to the chip's encoding capability. Please switch to 1080P.
+ If the target device is connected to a Windows host, go to System Settings > Display Settings > Advanced Display Settings, and change to 1080P60 in the "List all modes" section. Also, check if the "Desktop Resolution" and "Active Signal Resolution" are consistent.
### Unable to Open NanoKVM-USB Corresponding Serial Device After Opening Web Page
+ This may be due to other programs occupying the serial port. Please ensure it is not in use before trying again.

View File

Before

Width:  |  Height:  |  Size: 484 KiB

After

Width:  |  Height:  |  Size: 484 KiB

View File

@@ -73,4 +73,4 @@ ethaddr=d0:00:00:00:00:03
eth1addr=d0:00:00:00:00:04
```
![](../../../zh/maixIV/assets/m4n/set-macaddress.png)
![](../../../zh/maixIV/assets/m4c/set-macaddress.png)

View File

@@ -1,4 +1,4 @@
# Deploying AI Models on M4N
# Deploying AI Models on M4C
## Deploying Large Language and Multimodal Models

View File

@@ -62,7 +62,7 @@ Example for Linux:
- Option 1: Power cycle (unplug and replug power).
- Option 2: Press and release the `RST` button while powered on.
Note for M4N-Dock: If the front panel is obstructed, remove it by unscrewing the 3 screws and rotating it open.
Note for M4C-Dock: If the front panel is obstructed, remove it by unscrewing the 3 screws and rotating it open.
After completing these steps, the Live system should boot. You can observe the boot logs via UART0.
@@ -86,6 +86,8 @@ There are two methods are provided below for flashing the image to eMMC:
sync # 确保分区表生效
dd if=/dev/mmcblk1p1 of=/dev/mmcblk0p1 bs=64M conv=fsync
dd if=/dev/mmcblk1p2 of=/dev/mmcblk0p2 bs=1G conv=sparse,fsync status=progress
fsck -y /dev/mmcblk0p2
sync
```
3. After completion, remove the TFCard. Just press the `RST` button and the system will now directly boot from eMMC.
@@ -115,7 +117,7 @@ For detailed steps, refer to the `AXDL 工具使用指南.pdf` in the official S
The AXDL software (Windows only) is located in the `PC_Software` directory on the download site.
**Important Notes for M4N-Dock:**
**Important Notes for M4C-Dock:**
- **The USB flashing port is the bottom `USB-A port` near the `HDMI` connector (Ethernet side). Use an `A-to-A` cable or `A-to-C` cable if your PC has a `Type-C port`.**

View File

@@ -2,7 +2,7 @@
**Taobao link: [Click to Buy](https://item.taobao.com/item.htm?spm=1619a.1.0.0.3f0865abb4Wq5c&id=744014549573&ns=1&abbucket=18#detail)**
The M4N-Dock is an edge computing box featuring hybrid-precision computing capabilities, developed by Sipeed and powered by AXERA's third-generation high-efficiency AI vision chip, the AX650N. It delivers an impressive 72 TOPS@INT4 or 18 TOPS@INT8 of built-in AI computing power, capable of running popular large-scale AI models.
The M4C-Dock is an edge computing box featuring hybrid-precision computing capabilities, developed by Sipeed and powered by AXERA's third-generation high-efficiency AI vision chip, the AX650N. It delivers an impressive 72 TOPS@INT4 or 18 TOPS@INT8 of built-in AI computing power, capable of running popular large-scale AI models.
Equipped with an advanced ISP supporting 8K@30fps video processing and AXERA's proprietary AI-ISP technology for superior low-light night vision performance, it also integrates H.264/H.265 codecs capable of stable 8K@60fps decoding and 8K@30fps encoding. Real-world testing demonstrates reliable 32-channel 1080P@30fps decoding and 16-channel 1080P@30fps encoding.

View File

@@ -38,7 +38,7 @@ Use a serial tool to view kernel logs or log in directly via terminal.
For SSH access, expand network connectivity via USB Ethernet/WiFi dongles.
Note: The system only has the root superuser, and SSH password login is disabled by default for security. For temporary access, refer to [here](../m4n/FAQ.md)。
Note: The system only has the root superuser, and SSH password login is disabled by default for security. For temporary access, refer to [here](../m4c/FAQ.md)。
## Interactive Image Segmentation & Inpainting

View File

@@ -1,21 +1,21 @@
## Introduction
The M4N-Hat is a highly integrated AI computing module developed by Sipeed, featuring a compact design powered by AXERA's AX650N/C chip. As an embedded expansion module, it delivers 72 TOPS@INT4 (18 TOPS@INT8) computing power while retaining 8K video encoding/decoding capabilities, making it ideal for space-constrained edge computing applications.
The M4C-Hat is a highly integrated AI computing module developed by Sipeed, featuring a compact design powered by AXERA's AX650N/C chip. As an embedded expansion module, it delivers 72 TOPS@INT4 (18 TOPS@INT8) computing power while retaining 8K video encoding/decoding capabilities, making it ideal for space-constrained edge computing applications.
This module supports plug-and-play compatibility with mainstream Raspberry Pi development boards and accelerates Transformer-based architectures. With its onboard 0.8mm 4-pin USB and Type-A USB SS 5Gbps interfaces, it enables quick expansion for peripherals like cameras and storage, making it perfect for smart cameras, industrial inspection, and other lightweight AI applications. The PCIE 2.0 expansion interface is fully compatible with Raspberry Pi 5, supporting multi-modal edge computing nodes and the deployment of quantized large models such as QWen 2.5, QWen 3, DeepSeek, and InternVL2.5.
## Showcase
<div style="display: flex; flex-wrap: wrap; gap: 10px; width: 100%;">
<img src="../../../zh/maixIV/assets/m4nhat/DSC07555.JPG" style="width: calc(50% - 5px);">
<img src="../../../zh/maixIV/assets/m4nhat/DSC07569.JPG" style="width: calc(50% - 5px);">
<img src="../../../zh/maixIV/assets/m4nhat/DSC07556.JPG" style="width: calc(50% - 5px);">
<img src="../../../zh/maixIV/assets/m4nhat/neofetch.jpg" style="width: calc(50% - 5px);">
<img src="../../../zh/maixIV/assets/m4chat/DSC07555.JPG" style="width: calc(50% - 5px);">
<img src="../../../zh/maixIV/assets/m4chat/DSC07569.JPG" style="width: calc(50% - 5px);">
<img src="../../../zh/maixIV/assets/m4chat/DSC07556.JPG" style="width: calc(50% - 5px);">
<img src="../../../zh/maixIV/assets/m4chat/neofetch.jpg" style="width: calc(50% - 5px);">
</div>
## Interface Annotation Diagram
![Interface Annotation Diagram](../assets/m4nhat/IAD.png)
![Interface Annotation Diagram](../assets/m4chat/IAD.png)
## Key Specifications
@@ -35,8 +35,8 @@ This module supports plug-and-play compatibility with mainstream Raspberry Pi de
## Performance Benchmarks
![](../../../zh/maixIV/assets/m4n/benchmark.png)
![](../../../zh/maixIV/assets/m4n/normalized_benchmark.png)
![](../../../zh/maixIV/assets/m4c/benchmark.png)
![](../../../zh/maixIV/assets/m4c/normalized_benchmark.png)
| Models | RK3588@6T| Maix4@18T | Hailo8 26T | Hailo8 13T |
|-------------|----------|------------|------------|------------|

View File

@@ -0,0 +1,914 @@
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
# Raspberry Pi 5 PCIe Acceleration Guide
## Final Demo
After completing the following prerequisites for Raspberry Pi 5, running [the large language model DeepSeek-R1:1.5B](https://huggingface.co/AXERA-TECH/DeepSeek-R1-Distill-Qwen-1.5B-GPTQ-Int4)(Int4 Quantization for Model Parameters) achieves 13.69 tokens/s (performance for smaller models is limited by PCIe link bandwidth, showing a gap compared to the standalone board's 19 tokens/s),but RPI5 can only achieve 6.12 tokens/s. Watch the demo video:
<video controls autoplay src="../../../zh/maixIV/assets/m4chat/PCIe/axcl-run-llm-on-raspi5-2025-08-19-3xspeedup.mp4" type="video/mp4"> Your browser does not support video playback. </video>
## Preparation
- Maix4-HAT
- sdcard-20250818.img.zst or newer
### Installation
<div style="display: flex; justify-content: space-between;">
<img src="../../../zh/maixIV/assets/m4chat/DSC07559.JPG" style="width: 48%;">
<img src="../../../zh/maixIV/assets/m4chat/DSC07561.JPG" style="width: 48%;">
</div>
![](../../../zh/maixIV/assets/m4chat/DSC07569.JPG)
### Flashing the Maix4-HAT Slave System
1.Connect the Maix4-HAT to the Raspberry Pi 5's PCIe slot using an FPC cable and secure it.
2.Powering the Raspberry Pi 5 and Maix4-HAT.
3.Refer to the [System Flashing Guide](../m4c/system-update.html#Booting-into-the-Live-System-(Manual-Intervention-Required)) and boot into the TFCard Live System。
4.Execute `dd if=/boot/spl_AX650_card_signed.bin of=/dev/mmcblk0 conv=fsync` to flash the slave system for supporting PCIe boot:
```bash
root@m4chat-08080a:~# dd if=/boot/spl_AX650_card_signed.bin of=/dev/mmcblk0 conv=fsync
512+0 records in
512+0 records out
262144 bytes (262 kB, 256 KiB) copied, 0.0165514 s, 15.8 MB/s
```
5.Enable Raspberry Pi 5's PCIe x1 Interface.
Run `sudo raspi-config → 6 Advanced Options → A8 PCIe Speed → Select Yes` for PCIe x1 Gen3.
5.1.or Manually add contents below to `/boot/firmware/config.txt`:
```bash
[all]
dtparam=pciex1_gen=3
```
Actually the `config.txt` file is located in the FAT32 type partition, so you can modify it after mount it on your PC directly.
> Note: Newly flashed Raspberry Pi SD cards lack the /boot/firmware directory. Boot once to generate it.
6. Reboot Raspberry Pi. Verify the accelerator card is detected with `lspci`:
```bash
sipeed@rpi-sipeed:~$ lspci
0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21)
0001:01:00.0 Multimedia video controller: Axera Semiconductor Co., Ltd Device 0650 (rev01)
0002:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21)
0002:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0 South Bridge
```
The first two lines confirm PCIe initialization and detection of the Axera AX650 controller. ANd the `Multimedia video controller: Axera Semiconductor Co., Ltd Device 0650 (rev01)` has been mounted correctly.
### Installing AXCL Software on Raspberry Pi 5
You can download it separately to the Raspberry Pi development board from the download site, or directly use the provided AIDemos.tar.zst below.
After PCIe detection, install the AXCL package for model acceleration:
```bash
$ sudo apt install axcl_host_aarch64_V3.6.2_20250603154858_NO4873.deb
# If your PCIe device is detected (visible in lspci), but axcl-smi fails to display it, follow these steps to reinstall the driver:
sudo apt install --reinstall axcl_host_aarch64_V3.6.2_20250603154858_NO4873.deb
```
Reboot the Pi. Verify installation with `axcl-smi`:
```bash
sipeed@rpi-sipeed:~$ axcl-smi
+------------------------------------------------------------------------------------------------+
| AXCL-SMI V3.6.2_20250603154858 Driver V3.6.2_20250603154858 |
+-----------------------------------------+--------------+---------------------------------------+
| Card Name Firmware | Bus-Id | Memory-Usage |
| Fan Temp Pwr:Usage/Cap | CPU NPU | CMM-Usage |
|=========================================+==============+=======================================|
| 0 AX650N V3.6.2 | 0001:01:00.0 | 148 MiB / 945 MiB |
| -- 55C -- / -- | 0% 0% | 18 MiB / 7040 MiB |
+-----------------------------------------+--------------+---------------------------------------+
+------------------------------------------------------------------------------------------------+
| Processes: |
| Card PID Process Name NPU Memory Usage |
|================================================================================================|
```
## Model Demonstration Guide
Download [AIDemos.tar.zst](https://mega.nz/folder/NxxEzRAB#e-sA_IK0K5JqQM6FnCH6_Q) from the cloud storage and extract it to reproduce and experience the following deployed models.
### Preparation:
Prepare the Python environment and install the `axengine` package.
```bash
cd /path/to/AIDemos/extra
python -m venv venv-llm
source venv-llm/bin/activate
pip install -r requirements.txt
pip install axengine-0.1.3-py3-none-any.whl
```
Result:
```bash
sipeed@rpi-sipeed:~/Downloads/AIDemos/extra $ ls -lh
total 44M
-rw-r--r-- 1 sipeed sipeed 44M Aug 14 09:04 axcl_host_aarch64_V3.6.2_20250603154858_NO4873.deb
-rw-r--r-- 1 sipeed sipeed 19K Aug 14 09:46 axengine-0.1.3-py3-none-any.whl
-rw-r--r-- 1 sipeed sipeed 1.3K Aug 18 08:50 requirements.txt
drwxr-xr-x 6 sipeed sipeed 4.0K Aug 18 03:24 venv-llm
```
### YOLO11
Link: https://huggingface.co/AXERA-TECH/YOLO11
Preparation:
```bash
source ../extra/venv-llm/bin/activate
```
Example:
```bash
sipeed@rpi-sipeed:~/Downloads/AIDemos/YOLO11 $ ls
axcl_yolo11 ax_yolo11 football.jpg ssd_horse.jpg yolo11s.axmodel yolo11x.axmodel
sipeed@rpi-sipeed:~/Downloads/AIDemos/YOLO11 $ ./axcl_yolo11 -m yolo11s.axmodel -i football.jpg
--------------------------------------
model file : yolo11s.axmodel
image file : football.jpg
img_h, img_w : 640 640
--------------------------------------
axclrtEngineCreateContextt is done.
axclrtEngineGetIOInfo is done.
grpid: 0
input size: 1
name: images
1 x 640 x 640 x 3
output size: 3
name: /model.23/Concat_output_0
1 x 80 x 80 x 144
name: /model.23/Concat_1_output_0
1 x 40 x 40 x 144
name: /model.23/Concat_2_output_0
1 x 20 x 20 x 144
==================================================
Engine push input is done.
--------------------------------------
post process cost time:0.90 ms
--------------------------------------
Repeat 1 times, avg time 3.34 ms, max_time 3.34 ms, min_time 3.34 ms
--------------------------------------
detection num: 7
0: 95%, [ 759, 213, 1126, 1152], person
0: 94%, [ 0, 359, 315, 1107], person
0: 94%, [1350, 344, 1629, 1036], person
0: 89%, [ 490, 480, 658, 996], person
32: 73%, [ 771, 888, 830, 939], sports ball
32: 67%, [1231, 876, 1280, 924], sports ball
0: 62%, [ 0, 565, 86, 995], person
--------------------------------------
```
<div style="display: flex; justify-content: space-between;">
<img src="../../../zh/maixIV/assets/m4chat/PCIe/football.jpg" style="width: 48%;">
<img src="../../../zh/maixIV/assets/m4chat/PCIe/yolo11_out.jpg" style="width: 48%;">
</div>
<div style="width: 80%; margin: 0 auto;">
<canvas id="YOLOv11BarChart"></canvas>
<script>
var ctx = document.getElementById('YOLOv11BarChart').getContext('2d');
var YOLOv11BarChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['YOLOv11s', 'YOLOv11x'], // Now the models are the labels
datasets: [
{
label: 'Maix4 HAT 24T(PCIe mode)',
data: [298, 40.48],
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderColor: 'rgba(255, 99, 132, 1)',
borderWidth: 1
},
{
label: 'Jetson Orin Nano Super 67T',
data: [196.85, 50.25],
backgroundColor: 'rgba(54, 162, 235, 0.2)',
borderColor: 'rgba(54, 162, 235, 1)',
borderWidth: 1
},
{
label: 'Hailo8 26T',
data: [147, 0],
backgroundColor: 'rgba(255, 206, 86, 0.2)', // Gold
borderColor: 'rgba(255, 206, 86, 1)',
borderWidth: 1
}
]
},
options: {
responsive: true,
plugins: {
title: {
display: true,
text: 'YOLOv11 Performance Benchmark(fps)', // Chart title added here
font: {
size: 20
}
},
legend: {
position: 'top',
},
tooltip: {
callbacks: {
label: function(tooltipItem) {
return tooltipItem.dataset.label + ': ' + tooltipItem.raw + ' fps';
}
}
}
},
scales: {
y: {
beginAtZero: true
}
}
}
});
</script>
</div>
Data Source Attribution: [Ultralytics](https://docs.ultralytics.com/zh/guides/nvidia-jetson/#nvidia-jetson-orin-nano-super-developer-kit_1), [RK3588](https://github.com/yuunnn-w/rknn-cpp-yolo?tab=readme-ov-file#report-inference-results-and-speed)
### DeepSeek-R1-Distill-Qwen-1.5B-GPTQ-Int4
Link: https://huggingface.co/AXERA-TECH/DeepSeek-R1-Distill-Qwen-1.5B-GPTQ-Int4
Usage:
```bash
./run_from_pi.sh
```
Example:
```bash
sipeed@rpi-sipeed:~/Downloads/AIDemos/DeepSeek-R1-Distill-Qwen-1.5B-GPTQ-Int4 $ ./run_from_pi.sh
Main script running (PID: 9852), subprocess PID: 9856
build time: Feb 13 2025 15:44:57
[I][ Init][ 111]: LLM init start
bos_id: 151646, eos_id: 151643
100% | ████████████████████████████████ | 31 / 31 [17.22s<17.22s, 1.80 count/s] init post axmodel okremain_cmm(-1 MB)
[I][ Init][ 226]: max_token_len : 1023
[I][ Init][ 231]: kv_cache_size : 256, kv_cache_num: 1023
[I][ load_config][ 282]: load config:
{
"enable_repetition_penalty": false,
"enable_temperature": true,
"enable_top_k_sampling": true,
"enable_top_p_sampling": false,
"penalty_window": 20,
"repetition_penalty": 1.2,
"temperature": 0.9,
"top_k": 10,
"top_p": 0.8
}
[I][ Init][ 288]: LLM init ok
Type "q" to exit, Ctrl+c to stop current running
>> what can you do?
<think>
</think>
I'm DeepSeek-R1, an AI assistant created exclusively by DeepSeek. My purpose is to help you generate helpful responses. I don't have personal experiences or emotions, so I don't have feelings, but I'm focused on providing accurate and useful information. For more information, please visit DeepSeek's official website.
[N][ Run][ 610]: hit eos,avg 13.69 token/s
>>
```
<div style="width: 80%; margin: 0 auto;">
<canvas id="DeepSeekR1BarChart"></canvas>
<script>
var ctx = document.getElementById('DeepSeekR1BarChart').getContext('2d');
var DeepSeekR1BarChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['DSR1:1.5B', 'DSR1:7B'], // Models as labels
datasets: [
{
label: 'Maix4 HAT 24T(PCIe mode)',
data: [13.69, 4.64],
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderColor: 'rgba(255, 99, 132, 1)',
borderWidth: 1
},
{
label: 'RPI5',
data: [6.12, 1.43],
backgroundColor: 'rgba(54, 162, 235, 0.2)',
borderColor: 'rgba(54, 162, 235, 1)',
borderWidth: 1
}
]
},
options: {
responsive: true,
plugins: {
title: {
display: true,
text: 'DeepSeek-R1 Performance Benchmark(higher is better)', // Chart title added here
font: {
size: 20
}
},
legend: {
position: 'top',
},
tooltip: {
callbacks: {
label: function(tooltipItem) {
return tooltipItem.dataset.label + ': ' + tooltipItem.raw + ' token/s';
}
}
}
},
scales: {
y: {
beginAtZero: true
}
}
}
});
</script>
</div>
Data Source Attribution: [deepseek-r1-on-RPI5](https://dev.to/jeremycmorgan/running-deepseek-r1-locally-on-a-raspberry-pi-1gh8)
### InternVL2_5-1B
Link: https://huggingface.co/AXERA-TECH/InternVL2_5-1B
Usage:
```bash
./run_from_pi.sh
```
Example:
```bash
sipeed@rpi-sipeed:~/Downloads/AIDemos/InternVL2_5-1B $ ./run_from_pi.sh
Main script running (PID: 10379), subprocess PID: 10383
[I][ Init][ 128]: LLM init start
[I][ Init][ 321]: connect http://127.0.0.1:49152 ok
bos_id: -1, eos_id: 151645
7% | ███ | 2 / 27 [0.70s<9.41s, 2.87 count/s] embed_selector init ok
[I][ run][ 30]: AXCLWorker start with devid 0
100% | ████████████████████████████████ | 27 / 27 [18.42s<18.42s, 1.47 count/s] init post axmodel ok,remain_cmm(6433 MB)6574 MB)
[I][ Init][ 225]: image_encoder_height : 448, image_encoder_width: 448
[I][ Init][ 227]: max_token_len : 1023
[I][ Init][ 230]: kv_cache_size : 128, kv_cache_num: 1023
[I][ Init][ 238]: prefill_token_num : 320
[I][ Init][ 240]: prefill_max_token_num : 320
________________________
| ID| remain cmm(MB)|
========================
| 0| 6066|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
[I][ load_config][ 282]: load config:
{
"enable_repetition_penalty": false,
"enable_temperature": true,
"enable_top_k_sampling": true,
"enable_top_p_sampling": false,
"penalty_window": 20,
"repetition_penalty": 1.2,
"temperature": 0.9,
"top_k": 10,
"top_p": 0.8
}
[I][ Init][ 337]: LLM init ok
Type "q" to exit, Ctrl+c to stop current running
prompt >> describe the picture in English
image >> ssd_car.jpg
[I][ Encode][ 393]: image encode time : 362.10 ms, size : 229376
[I][ Encode][ 453]: offset : 42 out_embed.size() : 276864
[I][ Run][ 481]: input token num : 309, prefill_split_num : 1
[I][ Run][ 604]: ttft: 510.61 ms
The image shows a classic red double-decker bus parked on the side of a city street. The bus is adorned with advertisements, one of which reads, "THINGS GET MORE EXCITING WHEN YOU SAY YES," along with a website, "VMGIVING.COM." The bus number on it is 16.
In the foreground, a woman is standing with a cheerful expression. She is wearing a black coat, a scarf, and jeans and appears to be smiling at the camera. In front of her, there is a streetcar, also red, passing by. The street is marked with a bicycle lane, indicated by a dashed white line on the road. In the background, several multi-story buildings, likely commercial establishments, are visible.
The setting appears to be a bustling urban area, with a mix of historical and modern architecture, suggesting a city center.
[N][ Run][ 756]: hit eos,avg 18.73 token/s
prompt >>
```
![ssd_car.jpg](../../../zh/maixIV/assets/m4chat/PCIe/ssd_car.jpg)
### lcm-lora-sdv1-5
Link: https://huggingface.co/AXERA-TECH/lcm-lora-sdv1-5
Preparation:
```bash
source ../extra/venv-llm/bin/activate
```
Usage:
```bash
python run_txt2img_axe_infer_once.py --prompt 'two beautiful girl'
# or
python run_txt2img_axe_infer_loop.py # wait it be ready and then type prompt and press Enter
# or
python run_img2img_axe_infer.py --prompt "8k, cute" --init_image txt2img_output_axe.png
```
Example:
```bash
(venv-llm) sipeed@rpi-sipeed:~/Downloads/AIDemos/lcm-lora-sdv1-5 $ python run_txt2img_axe_infer_once.py --prompt 'two beautiful girl'
[INFO] Available providers: ['AXCLRTExecutionProvider']
prompt: two beautiful girl
text_tokenizer: ./models/tokenizer
text_encoder: ./models/text_encoder
unet_model: ./models/unet.axmodel
vae_decoder_model: ./models/vae_decoder.axmodel
time_input: ./models/time_input_txt2img.npy
save_dir: ./txt2img_output_axe.png
[INFO] Using provider: AXCLRTExecutionProvider
[INFO] SOC Name: AX650N
[INFO] VNPU type: VNPUType.DISABLED
[INFO] Compiler version: 3.4 9215b7e5
text encoder take 4936.9ms
[INFO] Using provider: AXCLRTExecutionProvider
[INFO] SOC Name: AX650N
[INFO] VNPU type: VNPUType.DISABLED
[INFO] Compiler version: 3.3 972f38ca
[INFO] Using provider: AXCLRTExecutionProvider
[INFO] SOC Name: AX650N
[INFO] VNPU type: VNPUType.DISABLED
[INFO] Compiler version: 3.3 972f38ca
load models take 25627.9ms
unet once take 433.6ms
unet once take 433.4ms
unet once take 433.5ms
unet once take 433.5ms
unet loop take 1736.7ms
vae inference take 914.8ms
save image take 206.9ms
(venv-llm) sipeed@rpi-sipeed:~/Downloads/AIDemos/lcm-lora-sdv1-5 $ python run_img2img_axe_infer.py --prompt "8k, cute" --init_image txt2img_output_axe.png
[INFO] Available providers: ['AXCLRTExecutionProvider']
prompt: 8k, cute
text_tokenizer: ./models/tokenizer
text_encoder: ./models/text_encoder
unet_model: ./models/unet.axmodel
vae_encoder_model: ./models/vae_encoder.axmodel
vae_decoder_model: ./models/vae_decoder.axmodel
init image: txt2img_output_axe.png
time_input: ./models/time_input_img2img.npy
save_dir: ./img2img_output_axe.png
[INFO] Using provider: AXCLRTExecutionProvider
[INFO] SOC Name: AX650N
[INFO] VNPU type: VNPUType.DISABLED
[INFO] Compiler version: 3.4 9215b7e5
text encoder take 2954.0ms
[INFO] Using provider: AXCLRTExecutionProvider
[INFO] SOC Name: AX650N
[INFO] VNPU type: VNPUType.DISABLED
[INFO] Compiler version: 3.3-dirty 2ecead35-dirty
[INFO] Using provider: AXCLRTExecutionProvider
[INFO] SOC Name: AX650N
[INFO] VNPU type: VNPUType.DISABLED
[INFO] Compiler version: 3.3 972f38ca
[INFO] Using provider: AXCLRTExecutionProvider
[INFO] SOC Name: AX650N
[INFO] VNPU type: VNPUType.DISABLED
[INFO] Compiler version: 3.3 972f38ca
load models take 15804.3ms
vae encoder inference take 459.1ms
unet once take 433.6ms
unet once take 433.3ms
unet loop take 868.3ms
vae decoder inference take 913.7ms
grid image saved in ./lcm_lora_sdv1-5_imgGrid_output.png
save image take 445.9ms
```
![img2img_output_axe](../../../zh/maixIV/assets/m4chat/PCIe/img2img_output_axe.png)
<div style="width: 80%; margin: 0 auto;">
<canvas id="SDV1_5BarChart"></canvas>
<script>
var ctx = document.getElementById('SDV1_5BarChart').getContext('2d');
var SDV1_5BarChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['U-Net (it/min)', 'VAE Decoder (frame/min)'], // Models as labels
datasets: [
{
label: 'Maix4 HAT 24T(PCIe mode)',
data: [139.53, 65.93],
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderColor: 'rgba(255, 99, 132, 1)',
borderWidth: 1
},
{
label: 'RK3588',
data: [10.62, 5.39],
backgroundColor: 'rgba(54, 162, 235, 0.2)',
borderColor: 'rgba(54, 162, 235, 1)',
borderWidth: 1
}
]
},
options: {
responsive: true,
plugins: {
title: {
display: true,
text: 'Stable-Diffusion-1.5 (512x512) Performance Benchmark (lower is better)', // Chart title added here
font: {
size: 20
}
},
legend: {
position: 'top',
},
tooltip: {
callbacks: {
label: function(tooltipItem) {
return tooltipItem.dataset.label + ': ' + tooltipItem.raw;
}
}
}
},
scales: {
y: {
beginAtZero: true
}
}
}
});
</script>
</div>
Data Source Attribution: [RK3588](https://huggingface.co/happyme531/Stable-Diffusion-1.5-LCM-ONNX-RKNN2)
### Depth-Anything-V2
Link: https://huggingface.co/AXERA-TECH/Depth-Anything-V2
Preparation:
```bash
source ../extra/venv-llm/bin/activate
```
Usage:
```bash
python infer.py --model depth_anything_v2_vits.axmodel --img examples/demo01.jpg
# or
python infer_onnx.py --model depth_anything_v2_vits.onnx --img examples/demo02.jpg
```
![depth_ouput_ax1](../../../zh/maixIV/assets/m4chat/PCIe/depth_ouput_ax1.png)
![depth_ouput_ax2](../../../zh/maixIV/assets/m4chat/PCIe/depth_ouput_ax2.png)
<div style="width: 80%; margin: 0 auto;">
<canvas id="Depth_Anything_V2BarChart"></canvas>
<script>
var ctx = document.getElementById('Depth_Anything_V2BarChart').getContext('2d');
var Depth_Anything_V2BarChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['Depth-Anything-V2 (fps)'], // Models as labels
datasets: [
{
label: 'Maix4 HAT 24T(PCIe mode)',
data: [24.39],
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderColor: 'rgba(255, 99, 132, 1)',
borderWidth: 1
},
{
label: 'Jetson Orin',
data: [10.2],
backgroundColor: 'rgba(54, 162, 235, 0.2)',
borderColor: 'rgba(54, 162, 235, 1)',
borderWidth: 1
}
]
},
options: {
responsive: true,
plugins: {
title: {
display: true,
text: 'Depth-Anything-V2 (518x518) Performance Benchmark (fps)', // Chart title added here
font: {
size: 20
}
},
legend: {
position: 'top',
},
tooltip: {
callbacks: {
label: function(tooltipItem) {
return tooltipItem.dataset.label + ': ' + tooltipItem.raw + ' fps';
}
}
}
},
scales: {
y: {
beginAtZero: true
}
}
}
});
</script>
</div>
Data Source Attribution: [Jetson Orin](https://github.com/IRCVLab/Depth-Anything-for-Jetson-Orin)
### clip
Link:
- https://huggingface.co/AXERA-TECH/clip
- https://github.com/AXERA-TECH/clip.axera
Preparation:
```bash
source ../extra/venv-llm/bin/activate
```
Example:
```bash
(venv-llm) sipeed@rpi-sipeed:~/Downloads/AIDemos/clip $ ls
clip_vit_l14_336px_image_encoder_all_u16_fc_u8.axmodel clip_vit_l14_336px_text_encoder_u16.axmodel images infer.py Tokenizer.py vocab.txt
(venv-llm) sipeed@rpi-sipeed:~/Downloads/AIDemos/clip $ python infer.py
[INFO] Available providers: ['AXCLRTExecutionProvider']
[INFO] Using provider: AXCLRTExecutionProvider
[INFO] SOC Name: AX650N
[INFO] VNPU type: VNPUType.DISABLED
[INFO] Compiler version: 4.0 685bfee4
input.1 [1, 3, 336, 336] float32
4002 [1, 768] float32
[INFO] Using provider: AXCLRTExecutionProvider
[INFO] SOC Name: AX650N
[INFO] VNPU type: VNPUType.DISABLED
[INFO] Compiler version: 4.0 685bfee4
texts [1, 77] int32
text_features [1, 768] float32
(14, 768)
(11, 768)
=== logits_per_image ===
cat dog husky airplane car cityscape fire person eagle bike pineapple
bike2.jpg 0.00 0.02 0.01 0.00 0.46 0.00 0.01 0.29 0.0 0.21 0.00
eagle.jpg 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.0 0.00 0.00
mv2seg.png 0.00 0.00 0.00 0.00 0.98 0.00 0.00 0.01 0.0 0.00 0.00
husky.jpeg 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.0 0.00 0.00
fire.png 0.00 0.00 0.00 0.00 0.00 0.00 1.00 0.00 0.0 0.00 0.00
dog.jpg 0.00 0.12 0.04 0.00 0.04 0.00 0.00 0.00 0.0 0.80 0.00
cat.jpg 0.91 0.03 0.01 0.00 0.01 0.00 0.01 0.00 0.0 0.01 0.03
big-dog.jpg 0.00 0.15 0.07 0.00 0.56 0.00 0.03 0.09 0.0 0.01 0.08
pineapple.jpg 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0.00 1.00
bike.jpg 0.00 0.00 0.01 0.00 0.01 0.00 0.00 0.05 0.0 0.92 0.00
cityscape.png 0.00 0.00 0.00 0.00 0.19 0.24 0.50 0.00 0.0 0.00 0.05
air.jpg 0.00 0.00 0.00 0.94 0.04 0.00 0.01 0.00 0.0 0.01 0.00
dog-chai.jpeg 0.00 0.23 0.04 0.00 0.57 0.00 0.06 0.07 0.0 0.01 0.02
grace_hopper.jpg 0.02 0.07 0.00 0.00 0.55 0.00 0.28 0.07 0.0 0.00 0.00
=== logits_per_text ===
bike2.jpg eagle.jpg mv2seg.png husky.jpeg fire.png dog.jpg cat.jpg big-dog.jpg pineapple.jpg bike.jpg cityscape.png air.jpg dog-chai.jpeg grace_hopper.jpg
cat 0.00 0.01 0.00 0.00 0.00 0.00 0.92 0.01 0.0 0.00 0.00 0.00 0.04 0.02
dog 0.00 0.02 0.00 0.01 0.00 0.40 0.01 0.14 0.0 0.00 0.00 0.00 0.41 0.01
husky 0.00 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.0 0.00 0.00 0.00 0.00 0.00
airplane 0.00 0.07 0.00 0.00 0.00 0.00 0.00 0.01 0.0 0.00 0.00 0.91 0.01 0.00
car 0.03 0.01 0.29 0.00 0.00 0.05 0.00 0.19 0.0 0.00 0.01 0.01 0.38 0.03
cityscape 0.00 0.01 0.05 0.00 0.00 0.00 0.00 0.05 0.0 0.09 0.64 0.00 0.16 0.00
fire 0.00 0.01 0.00 0.00 0.94 0.00 0.00 0.01 0.0 0.00 0.01 0.00 0.02 0.01
person 0.15 0.04 0.01 0.00 0.00 0.03 0.00 0.22 0.0 0.17 0.00 0.00 0.33 0.03
eagle 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0.00 0.00 0.00 0.00 0.00
bike 0.01 0.00 0.00 0.00 0.00 0.69 0.00 0.00 0.0 0.29 0.00 0.00 0.00 0.00
pineapple 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.0 0.00 0.00 0.00 0.00 0.00
```
### Whisper
Link: https://huggingface.co/AXERA-TECH/Whisper
Preparation:
```bash
source ../extra/venv-llm/bin/activate
```
Usage:
```bash
python whisper_onnx.py --model_path ./models-onnx/base/ -t base --wav ./demo.wav
python whisper.py --model_path ./models/small/ -t small --wav ./demo.wav
# or
./whisper_axcl_aarch64 -e ./models/small/small-encoder.axmodel -m ./models/small/small-decoder-main.axmodel -l ./models/small/small-decoder-loop.axmodel -p ./models/small/small-positional_embedding.bin -t ./models/small/small-tokens.txt -w ./demo.wav
```
Example:
```bash
(venv-llm) sipeed@rpi-sipeed:~/Downloads/AIDemos/Whisper $ ./whisper_axcl_aarch64 -e ./models/small/small-encoder.axmodel -m ./models/small/small-decoder-main.axmodel -l ./models/small/small-decoder-loop.axmodel -p ./models/small/small-positional_embedding.bin -t ./models/small/small-tokens.txt -w ./RP1intro.wav --language en
encoder: ./models/small/small-encoder.axmodel
decoder_main: ./models/small/small-decoder-main.axmodel
decoder_loop: ./models/small/small-decoder-loop.axmodel
wav_file: ./RP1intro.wav
language: en
Load encoder take 2442.17 ms
Load decoder_main take 4068.22 ms
Load decoder_loop take 3837.32 ms
Read positional_embedding
Encoder run take 190.63 ms
First token: 41154 take 51.20ms
Next Token: 17741 take 30.39 ms
Next Token: 1025 take 30.33 ms
Next Token: 307 take 30.36 ms
Next Token: 3094 take 30.25 ms
Next Token: 1228 take 30.30 ms
Next Token: 264 take 30.26 ms
Next Token: 497 take 30.30 ms
Next Token: 48 take 30.30 ms
Next Token: 16 take 30.36 ms
Next Token: 39839 take 30.21 ms
Next Token: 1969 take 30.29 ms
Next Token: 11 take 30.34 ms
Next Token: 257 take 30.30 ms
Next Token: 7372 take 30.22 ms
Next Token: 19273 take 30.29 ms
Next Token: 22848 take 30.20 ms
Next Token: 4761 take 30.13 ms
Next Token: 294 take 30.31 ms
Next Token: 1782 take 30.33 ms
Next Token: 295 take 30.32 ms
Next Token: 41154 take 30.29 ms
Next Token: 17741 take 30.33 ms
Next Token: 13 take 30.28 ms
Next Token: 50257 take 30.31 ms
All Token: take 778.48ms, 32.11 token/s
All take 1010.35ms
Result: Raspberry Pi 5 is built using the RQ1 IO control, a package containing silicon designed in house of Raspberry Pi.
```
### MeloTTS
Link: https://huggingface.co/AXERA-TECH/MeloTTS
Preaparation:
```bash
source ../extra/venv-llm/bin/activate
cp -R nltk_data ~/
```
Usage:
```bash
(venv-llm) sipeed@rpi-sipeed:~/Downloads/AIDemos/MeloTTS/python $ cd python
(venv-llm) sipeed@rpi-sipeed:~/Downloads/AIDemos/MeloTTS/python $ python melotts.py -h
[INFO] Available providers: ['AXCLRTExecutionProvider']
usage: melotts [-h] [--sentence SENTENCE] [--wav WAV] [--encoder ENCODER] [--decoder DECODER] [--dec_len DEC_LEN] [--sample_rate SAMPLE_RATE] [--speed SPEED]
[--language {ZH,ZH_MIX_EN,JP,EN,KR,ES,SP,FR}]
Run TTS on input sentence
options:
-h, --help show this help message and exit
--sentence SENTENCE, -s SENTENCE
--wav WAV, -w WAV
--encoder ENCODER, -e ENCODER
--decoder DECODER, -d DECODER
--dec_len DEC_LEN
--sample_rate SAMPLE_RATE, -sr SAMPLE_RATE
--speed SPEED
--language {ZH,ZH_MIX_EN,JP,EN,KR,ES,SP,FR}, -l {ZH,ZH_MIX_EN,JP,EN,KR,ES,SP,FR}
```
Example:
```bash
(venv-llm) sipeed@rpi-sipeed:~/Downloads/AIDemos/MeloTTS/python $ python melotts.py -s "Dig the well before you are thirsty." -l EN
[INFO] Available providers: ['AXCLRTExecutionProvider']
sentence: Dig the well before you are thirsty.
sample_rate: 44100
encoder: ../encoder-onnx/encoder-en.onnx
decoder: ../decoder-ax650/decoder-en.axmodel
language: EN
> Text split to sentences.
Dig the well before you are thirsty.
> ===========================
split_sentences_into_pieces take 0.7653236389160156ms
[INFO] Using provider: AXCLRTExecutionProvider
[INFO] SOC Name: AX650N
[INFO] VNPU type: VNPUType.DISABLED
[INFO] Compiler version: 3.3 3251425d
load models take 1990.5009269714355ms
Sentence[0]: Dig the well before you are thirsty.
Load language module take 11539.379358291626ms
encoder run take 30.54ms
Decode slice[0]: decoder run take 99.54ms
Decode slice[1]: decoder run take 92.79ms
Decode slice[2]: decoder run take 92.74ms
Save to output.wav
```
## AXCL Inference Performance
Run `axcl_run_model` (usage mirrors native ax_run_model). Example with YOLOv5s (single-core model; full-core performance scales ~3x):
```bash
sipeed@rpi-sipeed:~/Downloads/AIDemos/models $ axcl_run_model -m yolov5s.axmodel
Run AxModel:
model: yolov5s.axmodel
type: 1 Core
vnpu: Disable
warmup: 1
repeat: 1
batch: { auto: 1 }
axclrt ver: 1.0.0
pulsar2 ver: 1.2-patch2 7e6b2b5f
tool ver: 0.0.1
cmm size: 12730188 Bytes
------------------------------------------------------
min = 7.837 ms max = 7.837 ms avg = 7.837 ms
------------------------------------------------------
```
Performance Benchmarks Table
| Model | Input Size | Batch 1 (IPS) | Batch 8 (IPS) |
|---------------|------------|---------------|---------------|
| Inceptionv1 | 224 | 1073 | 2494 |
| Inceptionv3 | 224 | 478 | 702 |
| MobileNetv1 | 224 | 1508 | 4854 |
| MobileNetv2 | 224 | 1366 | 5073 |
| ResNet18 | 224 | 1066 | 2254 |
| ResNet50 | 224 | 576 | 1045 |
| SqueezeNet11 | 224 | 1560 | 5961 |
| Swin-T | 224 | 342 | 507 |
| ViT-B/16 | 224 | 162 | 207 |
| YOLOv5s | 640 | 326 | 394 |
| YOLOv6s | 640 | 282 | 322 |
| YOLOv8s | 640 | 248 | 279 |
| YOLOv9s | 640 | 237 | - |
| YOLOv10s | 640 | 298 | - |
| YOLOv11n | 640 | 860 | - |
| YOLOv11s | 640 | 305 | - |
| YOLOv11m | 640 | 114 | - |
| YOLOv11l | 640 | 87 | - |
| YOLOv11x | 640 | 41 | - |
## Known Issues
### Maix4-HAT Fails to Mount After Soft Reboot RPI5
Due to PCIe reset timing limitations, cold boot (power cycle) is required for successful mounting. A soft reboot leaves PCIe link down (line 18):
```bash
7.11 fs_open: 'armstub8-2712.bin'
7.15 Loading 'kernel_2712.img' to 0x00000000 offset 0x200000
7.33 Read kernel_2712.img bytes 9727677 hnd 0x3c43
9.93 PCI1 reset
9.03 PCI2 reset
9.13 set_reboot_order 0
9.13 set_reboot_arg1 0
9.14 USB-OTG disconnect
9.56 MESS:00:00:09.256590:0: Starting OS 9256 ms
9.62 MESS:00:00:09.262115:0: 00000040: -> 00000480
9.63 MESS:00:00:09.263966:0: 00000030: -> 00100080
9.68 MESS:00:00:09.268679:0: 00000034: -> 00100080
9.73 MESS:00:00:09.273392:0: 00000038: -> 00100080
9.78 MESS:00:00:09.278105:0: 0000003c: -> 00100080
NOTICE: BL31: v2.6(release):v2.6-240-gfc45bc492
NOTICE: BL31: Built : 12:55:13, Dec 4 2024
[ 0.695249] brcm-pcie 1000110000.pcie: link down
Debian GNU/Linux 12 rpi-sipeed ttyAMA10
My IP address is 192.168.10.176 fdae:b0ae:ebf1:0:b270:135e:b646:70c3
rpi-sipeed login:
```
**Workaround:**
Before rebooting, reset the Maix4-HAT via GPIO:
```bash
gpioset gpiochip0 28=0 # Force Maix4-HAT reset
reboot
```
## Additional Resources for AXCL
- [AXCL Documentation](https://axcl-docs.readthedocs.io)
- [RPi 5 AXCL Guide](https://axcl-pi5-examples-cn.readthedocs.io)
- Refer to [here](../m4c/axmodel-deploy.html) for detailed model development.

View File

@@ -1,5 +1,5 @@
## System Update
For details, refer to the [Flashing OS Image](../m4n/system-update.html)The TFCard&eMMC image (Debian 12) is recommended.
For details, refer to the [Flashing OS Image](../m4c/system-update.html)The TFCard&eMMC image (Debian 12) is recommended.
The following instructions are based on this image. If using a custom-built image, pay attention to operational details.
@@ -16,15 +16,15 @@ The following instructions are based on this image. If using a custom-built imag
### Normal Boot
<div style="display: flex; flex-wrap: wrap; gap: 10px; width: 100%;">
<img src="../../../zh/maixIV/assets/m4nhat/DSC07545.JPG" style="width: calc(50% - 5px);">
<img src="../../../zh/maixIV/assets/m4nhat/DSC07546.JPG" style="width: calc(50% - 5px);">
<img src="../../../zh/maixIV/assets/m4chat/DSC07545.JPG" style="width: calc(50% - 5px);">
<img src="../../../zh/maixIV/assets/m4chat/DSC07546.JPG" style="width: calc(50% - 5px);">
</div>
1. Login Interface
- Connect a display via mini HDMI and power on. The core boards blue LED and Hat baseboards white LED should light up, indicating normal power supply.
- If the eMMC contains the default Raspberry Pi slave image, flash a new standalone image to the TF card and insert it into the M4N-Hat.
- If the eMMC contains the default Raspberry Pi slave image, flash a new standalone image to the TF card and insert it into the M4C-Hat.
- Press and hold the `BOOT0` button, then press `RST`. After ~20 seconds, the LightDM login screen will appear, indicating a successful boot.
@@ -42,7 +42,7 @@ Use a serial tool to view kernel logs or log in directly via terminal.
For SSH access, expand network connectivity via USB Ethernet/WiFi dongles.
Note: The system only has the root superuser, and SSH password login is disabled by default for security. For temporary access, refer to [here](../m4n/FAQ.md)。
Note: The system only has the root superuser, and SSH password login is disabled by default for security. For temporary access, refer to [here](../m4c/FAQ.md)。
## LLM
@@ -52,19 +52,19 @@ Note: The system only has the root superuser, and SSH password login is disabled
Left: [DeepSeek-R1 1.5B](https://huggingface.co/AXERA-TECH/DeepSeek-R1-Distill-Qwen-1.5B)
Right: [QWen3 0.6B](https://huggingface.co/AXERA-TECH/Qwen3-0.6B)
Deployment guide: [here](../m4n/axmodel-deploy.html#部署大语言、多模态模型)
Deployment guide: [here](../m4c/axmodel-deploy.html#部署大语言、多模态模型)
![DSr1-1.5B-and-QWen-0.6B](../../../zh/maixIV/assets/m4nhat/DSr1-1.5B-and-QWen-0.6B.jpg)
![DSr1-1.5B-and-QWen-0.6B](../../../zh/maixIV/assets/m4chat/DSr1-1.5B-and-QWen-0.6B.jpg)
## VLM
### internVL3
![internVL3-demo](../../../zh/maixIV/assets/m4nhat/internVL3-demo.jpg)
![internVL3-demo](../../../zh/maixIV/assets/m4chat/internVL3-demo.jpg)
Demo video:
<video controls autoplay src="../../../zh/maixIV/assets/m4nhat/m4nhat-run-llm-internVL-2025-07-07.mp4" type="video/mp4"> Your browser does not support video playback. </video>
<video controls autoplay src="../../../zh/maixIV/assets/m4chat/m4chat-run-llm-internVL-2025-07-07.mp4" type="video/mp4"> Your browser does not support video playback. </video>
## DepthAnything v2
@@ -78,9 +78,9 @@ Demo video:
source ../venv-llm/bin/activate
python python/infer.py --img examples/demo02.jpg --model depth_anything_v2_vits_ax650.axmodel
```
![DepthAnything-v2-before](../../../zh/maixIV/assets/m4nhat/DSC07539.JPG)
![DepthAnything-v2-after](../../../zh/maixIV/assets/m4nhat/DSC07540.JPG)
![depthanything-output](../../../zh/maixIV/assets/m4nhat/depthanything-output.png)
![DepthAnything-v2-before](../../../zh/maixIV/assets/m4chat/DSC07539.JPG)
![DepthAnything-v2-after](../../../zh/maixIV/assets/m4chat/DSC07540.JPG)
![depthanything-output](../../../zh/maixIV/assets/m4chat/depthanything-output.png)
## Interactive Image Segmentation & Inpainting

View File

@@ -1,183 +0,0 @@
# Installing M4N-Hat on Raspberry Pi 5
## Final Demo
After installation on Raspberry Pi 5, running the large language model QWen3 achieves 13.2 tokens/s (performance for smaller models is limited by PCIe link bandwidth, showing a gap compared to the standalone board's 19 tokens/s). Watch the demo video:
<video controls autoplay src="../../../zh/maixIV/assets/m4nhat/axcl-run-llm-on-raspi5-2025-07-03-4xspeedup.mp4" type="video/mp4"> Your browser does not support video playback. </video>
The video demonstrates:
1. Downloading the pre-supported QWen3-0.6B model
2. Setting up a Python virtual environment and installing required libraries
3. Running QWen3 and completing two Q&A sessions
## Installation
<div style="display: flex; justify-content: space-between;">
<img src="../../../zh/maixIV/assets/m4nhat/DSC07559.JPG" style="width: 48%;">
<img src="../../../zh/maixIV/assets/m4nhat/DSC07561.JPG" style="width: 48%;">
</div>
![](../../../zh/maixIV/assets/m4nhat/DSC07569.JPG)
## Flashing the M4N Slave System
1. Refer to the [System Flashing Guide](../m4n/system-update.html) and use AXDL to flash [AX650_card_V3.6.2_20250603154858_xxx.axp](https://dl.sipeed.com/MaixIV/M4N-Dock/09_Image/)。
2. Connect the M4N-Hat to the Raspberry Pi 5's PCIe slot using an FPC cable and secure it.
3. Power on the Raspberry Pi. Verify the accelerator card is detected with `lspci`:
```bash
# 应能看到以下输出
sipeed@raspberrypi:~$ lspci
0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21)
0001:01:00.0 Multimedia video controller: Axera Semiconductor Co., Ltd Device 0650 (rev01)
0002:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21)
0002:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0 South Bridge
```
The first two lines confirm PCIe initialization and detection of the Axera AX650 controller. ANd the `Multimedia video controller: Axera Semiconductor Co., Ltd Device 0650 (rev01)` has been mounted correctly.
**Troubleshooting PCIe Detection**
If the above output is missing, the PCIe x1 port may be disabled (default). Enable it via:
- Run `sudo raspi-config → 6 Advanced Options → A8 PCIe Speed → Select Yes` for PCIe x1 Gen3.
- or Manually add contents below to `/boot/firmware/config.txt`:
```bash
[all]
dtparam=pciex1_gen=3
```
Actually the `config.txt` file is located in the FAT32 type partition, so you can modify it after mount it on your PC directly.
> Note: Newly flashed Raspberry Pi SD cards lack the /boot/firmware directory. Boot once to generate it.
## Installing AXCL Software on Raspberry Pi 5
After PCIe detection, install the AXCL package for model acceleration:
```bash
$ sudo apt install axcl_host_aarch64_V3.6.2_20250603154858_NO4873.deb
```
Reboot the Pi. Verify installation with `axcl-smi`:
```bash
sipeed@raspberrypi:~$ axcl-smi
+------------------------------------------------------------------------------------------------+
| AXCL-SMI V3.6.2_20250603154858 Driver V3.6.2_20250603154858 |
+-----------------------------------------+--------------+---------------------------------------+
| Card Name Firmware | Bus-Id | Memory-Usage |
| Fan Temp Pwr:Usage/Cap | CPU NPU | CMM-Usage |
|=========================================+==============+=======================================|
| 0 AX650N V3.6.2 | 0001:01:00.0 | 148 MiB / 945 MiB |
| -- 55C -- / -- | 0% 0% | 18 MiB / 7040 MiB |
+-----------------------------------------+--------------+---------------------------------------+
+------------------------------------------------------------------------------------------------+
| Processes: |
| Card PID Process Name NPU Memory Usage |
|================================================================================================|
sipeed@raspberrypi:~$
```
## Testing AXCL Model Inference
Run `axcl_run_model` (usage mirrors native ax_run_model). Example with YOLOv5s (single-core model; full-core performance scales ~3x):
```bash
sipeed@raspberrypi:~$ axcl_run_model -m yolov5s.axmodel
Run AxModel:
model: yolov5s.axmodel
type: 1 Core
vnpu: Disable
warmup: 1
repeat: 1
batch: { auto: 1 }
axclrt ver: 1.0.0
pulsar2 ver: 1.2-patch2 7e6b2b5f
tool ver: 0.0.1
cmm size: 12730188 Bytes
------------------------------------------------------
min = 7.837 ms max = 7.837 ms avg = 7.837 ms
------------------------------------------------------
```
Performance Benchmarks Table
| Model | Input Size | Batch 1 (IPS) | Batch 8 (IPS) |
|---------------|------------|---------------|---------------|
| Inceptionv1 | 224 | 1073 | 2494 |
| Inceptionv3 | 224 | 478 | 702 |
| MobileNetv1 | 224 | 1508 | 4854 |
| MobileNetv2 | 224 | 1366 | 5073 |
| ResNet18 | 224 | 1066 | 2254 |
| ResNet50 | 224 | 576 | 1045 |
| SqueezeNet11 | 224 | 1560 | 5961 |
| Swin-T | 224 | 342 | 507 |
| ViT-B/16 | 224 | 162 | 207 |
| YOLOv5s | 640 | 326 | 394 |
| YOLOv6s | 640 | 282 | 322 |
| YOLOv8s | 640 | 248 | 279 |
| YOLOv9s | 640 | 237 | - |
| YOLOv10s | 640 | 298 | - |
| YOLOv11n | 640 | 860 | - |
| YOLOv11s | 640 | 305 | - |
| YOLOv11m | 640 | 114 | - |
| YOLOv11l | 640 | 87 | - |
| YOLOv11x | 640 | 41 | - |
## AXCL Advanced Usage
- [AXCL Documentation](https://axcl-docs.readthedocs.io)
- [RPi 5 AXCL Guide](https://axcl-pi5-examples-cn.readthedocs.io)
- Refer to [here](../m4n/axmodel-deploy.html) for detailed model development.
## Known Issues
### M4N-Hat Fails to Mount After Soft Reboot RPI5
Due to PCIe reset timing limitations, cold boot (power cycle) is required for successful mounting. A soft reboot leaves PCIe link down (line 18):
```bash
7.11 fs_open: 'armstub8-2712.bin'
7.15 Loading 'kernel_2712.img' to 0x00000000 offset 0x200000
7.33 Read kernel_2712.img bytes 9727677 hnd 0x3c43
9.93 PCI1 reset
9.03 PCI2 reset
9.13 set_reboot_order 0
9.13 set_reboot_arg1 0
9.14 USB-OTG disconnect
9.56 MESS:00:00:09.256590:0: Starting OS 9256 ms
9.62 MESS:00:00:09.262115:0: 00000040: -> 00000480
9.63 MESS:00:00:09.263966:0: 00000030: -> 00100080
9.68 MESS:00:00:09.268679:0: 00000034: -> 00100080
9.73 MESS:00:00:09.273392:0: 00000038: -> 00100080
9.78 MESS:00:00:09.278105:0: 0000003c: -> 00100080
NOTICE: BL31: v2.6(release):v2.6-240-gfc45bc492
NOTICE: BL31: Built : 12:55:13, Dec 4 2024
[ 0.695249] brcm-pcie 1000110000.pcie: link down
Debian GNU/Linux 12 raspberrypi ttyAMA10
My IP address is 192.168.10.176 fdae:b0ae:ebf1:0:b270:135e:b646:70c3
raspberrypi login:
```
**Workaround:**
Before rebooting, reset the M4N-Hat via GPIO:
```bash
gpioset gpiochip0 28=0 # Force M4N-Hat reset
reboot
```

View File

@@ -0,0 +1,106 @@
# MicArray UAC Drive Board (MA-USB8)
## Introduction
![](../../assets/modules/micarray_usbboard_bl616/product-front.png)
Driving a [microphone array module]((./micarray.md)), it provides UAC2.0 + CDC ACM + UART interfaces.
- UAC2.0: 8CH S16_LE 48000HZ
- CDC ACM: 16x16 Hotmap Frame
- UART: 16x16 Hotmap Frame on baudrate:2000000
### Hotmap Frame Format:
| frame| bytes | value |
|------|--------------|----------|
| head | 16 | 16x 0xFF |
| data | 16x16 (HxW) | ... |
## Connection
Choose one of the following connection methods:
- Preferred: USB <---> UAC2.0 + CDC ACM (Full functionality: obtain audio data and sound field map simultaneously)
- Or: UART/USB2TTL <---> UART (Limited performance scenarios, e.g., MCU: obtain sound field map only)
### Linux
![](../../assets/modules/micarray_usbboard_bl616/dmesg.png)
![](../../assets/modules/micarray_usbboard_bl616/lsusb.png)
### Windows
![](../../assets/modules/micarray_usbboard_bl616/devmgmt.png)
## Usage
### USB UAC2.0 (Audacity)
![](../../assets/modules/micarray_usbboard_bl616/audacity-linux-sine1k.png)
**Windows WASAPI**
<div style="display: flex; justify-content: space-between;">
<img src="../../assets/modules/micarray_usbboard_bl616/audacity-windows-wasapi-step-1.png" style="width: 48%;">
<img src="../../assets/modules/micarray_usbboard_bl616/audacity-windows-wasapi-step-2.png" style="width: 48%;">
</div>
### USB UAC2.0 Beamforming (Audacity)
This board supports 12-direction beamforming, which suppresses audio from other directions than the user-set monitoring direction, thereby achieving noise reduction and gain for the target monitoring direction. The following example uses a sine wave audio test for demonstration:
Mic0(CH0) is near the 500HZ SINE wave and Mic3(CH3) is near the 1000HZ SINE wave.
Type `0` in serial so that CH6 is the output of beamforming at CH0.
Obviously on CH6, the gain of the 500 Hz sine wave signal near CH0 has been increased, while the impact of the 1000 Hz sine wave signal from other directions has been eliminated.
![](../../assets/modules/micarray_usbboard_bl616/sine500hz@ch0_and_sine1000hz@ch3_with_beamforming@ch0.png)
### USB CDC ACM RAW (Minicom) and USB2TTL UART HEX-CMAP (Picocom)
![](../../assets/modules/micarray_usbboard_bl616/minicom_acm&picocom_uart-combine.png)
### USB CDC ACM RAW (Minicom)
`minicom -D /dev/ttyACM0 -H`
![](../../assets/modules/micarray_usbboard_bl616/minicom_acm-raw.png)
### USB2TTL UART RAW (Minicom)
`minicom -D /dev/ttyUSB0 -b 2000000 -H`
![](../../assets/modules/micarray_usbboard_bl616/minicom_uart-raw.png)
### USB2TTL UART RAW,HEX-CMAP (Picocom)
1. `picocom -b 2000000 /dev/ttyUSB0`
![](../../assets/modules/micarray_usbboard_bl616/picocom_uart-raw-errcode.png)
2. type `F` and then `C`
<div style="display: flex; justify-content: space-between;">
<img src="../../assets/modules/micarray_usbboard_bl616/picocom_uart-hex.png" style="width: 45%;">
<img src="../../assets/modules/micarray_usbboard_bl616/picocom_uart-hex-cmap.png" style="width: 45%;">
</div>
3. type `f`
![](../../assets/modules/micarray_usbboard_bl616/picocom_uart-hex-to-raw-errcode.png)
## Commands
| Command | Input (Lower/Uppercase: Off/On) | Default | Remarks | Input Sources |
|--------------------------------------------------|---------------------------------|---------|----------------------------------------------|-----------------|
| Set UAC CH6 Beamforming Direction Angle | 0,1,..9,A,B | 0 | Actual angle = input value × 30 (0,1,..B => 0°,30°,...,330°). Corresponds to the clockwise direction starting from microphone 0, as per the [microphone array](./micarray.md). | Any |
| UART Sound Source Map Pseudocolor Mapping Toggle | c, C | c | Requires precondition: UART 16x16 sound source map printing enabled. | UART input only |
| UART Internal Debug Info Toggle | d, D | d | Controls internal debugging output. | UART input only |
| LED Real-Time Sound Direction Indicator Toggle | e, E | E | Controls LED indicators. | Any |
| UART 16x16 Sound Field Map Print Toggle | f, F | f | Toggles printing of 16x16 sound source map (ASCII). | UART input only |
| Restore Default Settings | R | \ |Restores a series of configurations to default values. | Any |
## Firmware
Download it from [here](../../assets/modules/micarray_usbboard_bl616/firmware/MA-USB8-250822.bin) and then refer to [this guide](../logic_analyzer/combo8/update_firmware.html#Burn-firmware) to update the firmware.

View File

@@ -109,35 +109,34 @@ items:
file: maixIII/ax-pi/faq_axpi.md
- label: Maix-IV
items:
- label: Maix M4N
# file: maixIV/m4n/m4n.md
- label: M4C SoM
items:
- label: Flashing OS Image
file: maixIV/m4n/system-update.md
file: maixIV/m4c/system-update.md
- label: AI Models Deployment
file: maixIV/m4n/axmodel-deploy.md
file: maixIV/m4c/axmodel-deploy.md
- label: FAQ
file: maixIV/m4n/FAQ.md
- label: Maix M4N-Dock
file: maixIV/m4c/FAQ.md
- label: M4 Dock Carrier Board
items:
- label: Intro
file: maixIV/m4ndock/intro.md
file: maixIV/m4cdock/intro.md
- label: Flashing OS Image
file: maixIV/m4n/system-update.md
file: maixIV/m4c/system-update.md
- label: Quick Start
file: maixIV/m4ndock/quick-start.md
file: maixIV/m4cdock/quick-start.md
- label: FAQ
file: maixIV/m4ndock/FAQ.md
- label: Maix M4N-Hat
file: maixIV/m4cdock/FAQ.md
- label: M4 Hat Carrier Board
items:
- label: Intro
file: maixIV/m4nhat/intro.md
file: maixIV/m4chat/intro.md
- label: Flashing OS Image
file: maixIV/m4n/system-update.md
file: maixIV/m4c/system-update.md
- label: Quick Start
file: maixIV/m4nhat/quick-start.md
file: maixIV/m4chat/quick-start.md
- label: RPI5 PCIe Card
file: maixIV/m4nhat/pcie-slaveboard.md
file: maixIV/m4chat/pcie-slaveboard.md
- label: MaixCAM
items:
- label: MaixCAM AI Series
@@ -552,6 +551,20 @@ items:
file: kvm/NanoKVM_USB/development.md
- label: FAQ
file: kvm/NanoKVM_USB/faq.md
- label: NanoKVM Pro
items:
- label: Introduction
file: kvm/NanoKVM_Pro/introduction.md
- label: NanoKVM-ATX Quick Start
file: kvm/NanoKVM_Pro/atx_start.md
- label: NanoKVM-Desk Quick Start
file: kvm/NanoKVM_Pro/desk_start.md
- label: Advanced Applications
file: kvm/NanoKVM_Pro/extended.md
- label: Screen Color Extension LED Strip
file: kvm/NanoKVM_Pro/ws2812.md
- label: FAQ
file: kvm/NanoKVM_Pro/faq.md
- label: Cluster
items:
- label: NanoCluster
@@ -654,25 +667,19 @@ items:
file: modules_spmod/spmod_lcd1.14.md
- label: SP-Eink
file: modules_spmod/spmod_eink.md
- label: Module && Debugger
- label: Module
items:
- label: Debugger
- label: camera
items:
- label: Sipeed RV Debugger
- label: Dual uart USB module
- label: module
items:
- label: camera
items:
- label: GC0328
- label: Dual cam module(GC0328)
- label: OV7740
- label: OV2640
- label: OV2640-M12
- label: Dual cam module(OV2640)
- label: Mic module
items:
- label: Mic array
file: modules/micarray.md
- label: Sipeed Gamepad
file: modules/Gamepad.md
- label: GC0328
- label: Dual cam module(GC0328)
- label: OV7740
- label: OV2640
- label: OV2640-M12
- label: Dual cam module(OV2640)
- label: Mic array
file: modules/micarray.md
- label: MicArray UAC Drive Board (MA-USB8)
file: modules/micarray_usbboard_bl616.md
- label: Sipeed Gamepad
file: modules/Gamepad.md

View File

@@ -66,6 +66,12 @@ keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
> 若 `VIDevFPS` 非0 、`VIFPS` 为0 则认为NanoKVM没有正确配置HDMI参数Cube可以重新插拔HDMI重新自动获取PCIe可点击`视频`下`重置HDMI`自动获取
> 查看 `VIInImgWidth` 和 `VIInImgHeight`与实际HDMI分辨率是否一致若不同则认为NanoKVM没有自动获取到正确的HDMI参数按照第4点手动配置分辨率参数
### 主机休眠唤醒后无画面
1. 检查是否使用廉价的DP转HDMI无源转换头这类转换接口没有完善的唤醒机制无法通知 NanoKVM 画面已经恢复
2. PCIe 版本可以点击重置HDMI按钮来强制重新获取画面
3. Cube/Lite版本缺少重置功能请更换有源DP转换接头
### 内网环境下画面延迟异常严重
1. 尝试更换交换机或电源

View File

@@ -18,7 +18,7 @@ update:
- Full 版本自带一张 32G 的 SD 卡,需要拆开外壳将其取出;
- Lite 版本需要自己准备一张 8G 以上的 SD 卡。
1. 前往 [Github](https://github.com/sipeed/NanoKVM/releases) 下载最新版本镜像。
1. 前往 [Github](https://github.com/sipeed/NanoKVM/releases/latest) 下载最新版本镜像。
1. 安装烧录软件,推荐使用 [Etcher](https://etcher.balena.io)。

View File

@@ -133,6 +133,10 @@ NanoKVM 的 USB 会默认虚拟出 RNDIS USB网卡从设备当 NanoKVM
1. 永久关闭:执行`touch /etc/kvm/ssh_stop`即可在NanoKVM下一次开机时开始禁用ssh登录删除该文件`rm /etc/kvm/ssh_stop`即可解除
2. 临时开启:执行`touch /boot/start_ssh_once`或在 /boot 分区下创建 start_ssh_once 空文件即可在NanoKVM下一次开机时打开ssh该文件会自动删除
### 设置DNS
+ 如果需要设置DNS列表请在创建/boot/resolv.conf这将在启动后强制使用你自己的DNS配置
### 关于mDNS
+ mDNSMulticast DNS是一种用于在局域网内进行名称解析的协议使设备能够通过主机名而非 IP 地址相互发现和通信。它允许无需中央 DNS 服务器的情况下,自动发现网络中的服务和设备。

View File

@@ -137,6 +137,10 @@ NanoKVM 的 USB 会默认虚拟出 RNDIS USB网卡从设备当 NanoKVM
1. 永久关闭:执行`touch /etc/kvm/ssh_stop`即可在NanoKVM下一次开机时开始禁用ssh登录删除该文件`rm /etc/kvm/ssh_stop`即可解除
2. 临时开启:执行`touch /boot/start_ssh_once`或在 /boot 分区下创建 start_ssh_once 空文件即可在NanoKVM下一次开机时打开ssh该文件会自动删除
### 设置DNS
+ 如果需要设置DNS列表请在创建/boot/resolv.conf这将在启动后强制使用你自己的DNS配置
### 关于mDNS
+ mDNSMulticast DNS是一种用于在局域网内进行名称解析的协议使设备能够通过主机名而非 IP 地址相互发现和通信。它允许无需中央 DNS 服务器的情况下,自动发现网络中的服务和设备。

View File

@@ -0,0 +1,90 @@
---
title: ATX 上手指南
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, ARM, tool, PCIe
update:
- date: 2025-8-26
version: v0.1
author: BuGu
content:
- Release docs
---
## 开箱
### NanoKVM-ATX 开箱清单
![](./../../../assets/NanoKVM/pro/start/unbox1.png)
![](./../../../assets/NanoKVM/pro/start/unbox2.png)
NanoKVM-ATX包含
+ NanoKVM-ATX 主机配全高PCIe挡板+OLED *1
+ HDMI 线缆 150cm *1
+ HDMI 线缆 50cm *1
+ USB TypeA to TypeC 100cm *2
+ 4Pin 机箱内USB线 40cm *1
+ ATX-9Pin 一分二开机线 30+30cm *1
+ 小十字螺丝刀 *1
+ 天线 *1仅WiFi版
## 接口定义
![](./../../../assets/NanoKVM/pro/start/ATX-Interface.jpg)
## 接线
1. 连接电源NanoKVM-Pro 对电源要求略高部分主板的USB接口无法提供充足的电流为保证 NanoKVM-Pro 正常工作强烈建议外接5V1A及其以上的电源实际运行功耗约3W
![](./../../../assets/NanoKVM/pro/start/01_Power.png)
2. 连接USB-HID接口
+ ATX版本可以采用机箱内接线/外部C口接线两种方式
![](./../../../assets/NanoKVM/pro/start/02_USB.png)
> ❗❗❗首批用户线缆和下图b有区别若选择机箱内接线的方式请查收邮件并按照邮件的修改方式连接线缆或者参考[此处](https://wiki.sipeed.com/nanokvmpro-usb)修改线缆
![](./../../../assets/NanoKVM/pro/start/cable.png)
3. 使用网线连接路由器/交换机和NanoKVM-Pro如果没有有线网络可以跳过此步开机后配置Wi-Fi使用需要购买带有WiFi的版本
![](./../../../assets/NanoKVM/pro/start/05_ETH.png)
4. 连接HDMI-IN如果主板仅有一个视频接口且有外接屏幕的需求请将HDMI-OUT连接至你的显示屏
![](./../../../assets/NanoKVM/pro/start/06_HDMI.png)
> 注意 NanoKVM-Pro 采集最大支持4K30FPS内置的HDMI一分二会主动读取外接屏幕的分辨率和帧率并向主机提供屏幕和采集端公共的模式列表
> 如果你连接了一个4K60FPS的显示屏电脑会识别为一个最高支持4K30的屏幕被采集端限制可以关闭采集让4K60直出显示器
> 如果你连接了一个1080P的显示屏电脑会识别为一个最高1080P的屏幕被环出显示器限制
5. 非必须连接ATX电源控制接口
![](./../../../assets/NanoKVM/pro/start/07_ATX.png)
## 内网访问
### 连接网络
1. 如果采用有线连接上电后KVM将会获取一个由路由器DHCP分配的IP地址可以跳过此步骤
2. WiFi连接
+ ATX版本可以通过OLED实现配网步骤如下
1. 连接NanoKVM-ATX的AP长按USR按钮KVM会释放一个WiFi信号APOLED上显示此IP的信息可以扫描二维码快速连接
2. 登陆网页填写要连接的WiFi帐号密码连接WiFi后OLED显示网页链接可以手动输入网址或扫描二维码快速跳转到网页配网
3. 如果有需要也可以通过USB-NCM网络连接
### 访问页面
1. ATX版本连接网络后OLED上显示本地IP地址E IP是有线网络获取的IPW IP是wifi网络获取的IP默认自动切换显示
2. 同一内网环境下使用一台主机在浏览器建议使用Chrome上输入IP地址访问页面
![](./../../../assets/NanoKVM/pro/start/SSL.png)
> 出现此警告是正常现象NanoKVM-Pro开启了https来增强安全性并使用自签名ssl证书
3. 初始默认帐号`admin`,密码`admin`可以登陆至系统内部,强烈建议您立即修改帐号密码;
4. 检查图像/键鼠/开关机按钮是否正常工作
![](./../../../assets/NanoKVM/pro/start/nanokvm4K.png)
## 远程连接
1. NanoKVM-Pro 默认安装了 Tailescale 应用,可以在网页设置中登陆你的 Tailscale 帐号。所有登陆 Tailscale 的设备会自动拉入同一虚拟的内网环境中,并给每一台设备分配`100.xxx.xxx.xxx`的IP可以通过分配给 NanoKVM Pro 的 IP 远程访问并控制你的主机
2. 其他异地组网工具NanoKVM-Pro 基于Ubuntu可以通过`apt`安装应用如zerotier请按照官网提示安装相关应用

View File

@@ -0,0 +1,3 @@
# NanoKVM-Desk 上手指南
敬请期待

View File

@@ -0,0 +1,110 @@
---
title: 高级应用
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, ARM, tool, PCIe
update:
- date: 2025-8-26
version: v0.1
author:
content:
- Release docs
---
## 切换至PiKVM
NanoKVM Pro除运行 NanoKVM 框架外还适配了PiKVM软件框架。您可以根据需求切换使用
### 切换至PiKVM
NanoKVM Pro 出厂默认使用 NanoKVM 框架,可以在`设置`->`关于`->`切换设备`
![](./../../../assets/NanoKVM/pro/extended/SwitchtoPiKVM.png)
点击后系统将自动重启并启动为PiKVM框架。此过程约30s如果长时间不自动切换请手动刷新网页。
![](./../../../assets/NanoKVM/pro/extended/PiKVMLogin.png)
PiKVM框架下默认帐号密码也是`admin``admin`,但两个平台下使用各自的帐号与密码,并不统一,强烈建议登陆后修改。
![](./../../../assets/NanoKVM/pro/extended/PiKVM-Setting.png)
> PiKVM框架下部分功能需要借助网页终端实现如WiFi配网、Tailscale配置
> NanoKVM更新时PiKVM框架将同步更新
### 切换至NanoKVM
从PiKVM系统切换回NanoKVM同样简单只需在`Options`->`Switch to NanoKVM`点击`Switch Now`即可
![](./../../../assets/NanoKVM/pro/extended/SwitchtoNanoKVM.png)
点击后系统将自动重启并启动为NanoKVM框架。此过程约30s如果长时间不自动切换请手动刷新网页
## SSH
NanoKVM Pro为确保安全性出厂默认SSH处于关闭状态若需要SSH服务或预览新版本时可以通过`设置`->`设备`打开SSH选项
出厂默认帐号`root`,密码`sipeed`若在NanoKVM框架下修改网页帐号密码SSH密码会被同步修改。
## 更新
NanoKVM Pro 会不定时推送新版本的应用包含新功能和bug修复您可以在`设置`->`检查更新`中更新应用版本。
![](./../../../assets/NanoKVM/pro/extended/Update.png)
点击下载后会自动下载新应用的安装包,包含`kvmcomm_x.x.x_arm64.deb``nanokvmpro_x.x.x_arm64.deb``pikvm_x.x.x_arm64.deb`
+ `kvmcomm_x.x.x_arm64.deb` 负责驱动 NanoKVM 和 PiKVM 框架中共用的硬件;
+ `nanokvmpro_x.x.x_arm64.deb` NanoKVM 应用软件
+ `pikvm_x.x.x_arm64.deb` PiKVM 应用软件
打开预览更新功能将会获取到最新的实验版应用通常包含更新的功能但稳定性有待验证建议下载预览更新前先打开SSH功能
您也可以下载特定的版本,并手动安装
```shell
# 以下载 1.0.10 版本为例
# 下载文件
curl -L -o nanokvm_pro_1.0.10.tar.gz https://cdn.sipeed.com/nanokvm/pro/kvmcomm_1.0.10_arm64.deb
curl -L -o nanokvm_pro_1.0.10.tar.gz https://cdn.sipeed.com/nanokvm/pro/nanokvmpro_1.0.10_arm64.deb
curl -L -o nanokvm_pro_1.0.10.tar.gz https://cdn.sipeed.com/nanokvm/pro/pikvm_1.0.10_arm64.deb
sudo apt install ./*1.0.10*
```
## 如何使用串口
NanoKVM Pro 提供两组可用串口 UART1/UART2ATX版本受限挡板规范尺寸没有引出仅保留内部焊盘
+ 外接其他串口终端设备
```shell
# 网页终端使用 UART1 以 115200 波特率打开串口使用Ctrl+A+Q退出
picocom -b 115200 /dev/ttyS1
# 网页终端使用 UART2 以 115200 波特率打开串口使用Ctrl+A+Q退出
# picocom -b 115200 /dev/ttyS2
```
+ 仅发送串口指令
```shell
# 设置ttyS1为115200波特率
stty -F /dev/ttyS1 115200
# 发送十六进制数据 0x11, 0x22, 0x33
echo -n -e '\x11\x22\x33' > /dev/ttyS1
```
## 如何修改EDID
EDID扩展显示识别数据是显示设备向主机提供的一组数据包括设备信息、分辨率帧率列表、颜色特性、音频能力等。主机接受到 EDID 后按需调整显示器的设置
NanoKVM Pro 支持修改虚拟显示屏暴露的EDID您可以克隆显示器的EDID或编写自己的EDID来达到特殊的屏幕比例、刷新率或颜色特征
> 修改EDID后可能存在无法正常显示的风险请谨慎修改。如果出现异常请恢复默认EDID
写入方式:
```shell
# 1. 准备edid文件一般大小是256Bytescp 到系统中
ls -l /root/customize.bin
# -rw-r--r-- 1 1000 1000 256 Aug 19 14:44 /root/customize.bin
# 2. 写入EDID
cat /root/customize.bin > /proc/lt6911_info/edid
# 3. 恢复默认EDID
cat /kvmcomm/edid/e18.bin > /proc/lt6911_info/edid
```

View File

@@ -0,0 +1,115 @@
# 常见问题
## 更新解决问题
NanoKVM Pro 会不定期更新应用,一些问题可能在新的应用中已经解决,所以请首先尝试更新应用
## 绿色LED闪烁
绿色LED是 NanoKVM Pro 的电源指示如果连接了供电能力较弱的电源绿色LED会因电压不稳定而无法启动请拔掉所有供电并更换电源
## 镜像烧录方法
### USB 烧录
NanoKVM Pro 支持通过 USB 烧录镜像的方式来恢复或更新系统。
#### 准备工作
- 准备一根 USB 数据线
- 下载最新的 NanoKVM Pro 镜像文件
- 准备烧录工具(如 balenaEtcher、Rufus 或 dd 命令)
#### 烧录步骤
1. **下载镜像与烧录工具**
- 访问 [NanoKVM Pro 发布页面](https://github.com/sipeed/NanoKVM-Pro/releases/latest) 下载最新镜像文件
- 下载并安装烧录工具 [balenaEtcher](https://etcher.balena.io/)
2. **进入烧录模式**
- 使用 USB 数据线连接 NanoKVM Pro 的 HID 接口到电脑
- 先按住 NanoKVM 的 User 按键,然后接通电源(或者在通电状态下按下 Reset 按键),直到橙色 LED 灯熄灭
- 这时设备会进入烧录模式,橙色灯再次开始闪烁,查看电脑是否识别到新的磁盘设备
<div style="display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; align-items: flex-end;">
<div style="text-align: center; flex: 1; max-width: 400px; min-width: 300px;">
<img src="./../../../assets/NanoKVM/pro/faq/update_win.jpeg" alt="Windows 识别设备" style="width: 100%; height: auto; object-fit: contain; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
<p style="margin-top: 8px; margin-bottom: 0; font-style: italic; color: #666; font-size: 16px;">Windows 识别设备</p>
</div>
<div style="text-align: center; flex: 1; max-width: 400px; min-width: 300px;">
<img src="./../../../assets/NanoKVM/pro/faq/update_linux.jpeg" alt="Linux 识别设备" style="width: 100%; height: auto; object-fit: contain; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
<p style="margin-top: 8px; margin-bottom: 0; font-style: italic; color: #666; font-size: 16px;">Linux 识别设备</p>
</div>
</div>
3. **使用 balenaEtcher 烧录**(推荐)
- 启动 balenaEtcher
- 点击 "Flash from file" 选择下载的镜像文件
- 点击 "Select target" 选择识别到的 NanoKVM Pro 设备
- 点击 "Flash!" 开始烧录
- 等待烧录完成并验证
<div align="center">
<img src="./../../../assets/NanoKVM/pro/faq/flash.jpeg" style="width: 80%; height: auto; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);" alt="flash" >
</div>
- 如果提示找不到分区表是正常现象,点击继续即可
<div align="center">
<img src="./../../../assets/NanoKVM/pro/faq/miss_part.jpeg" style="width: 70%; height: auto; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);" alt="miss_part" >
</div>
4. **使用命令行烧录**
```bash
# 查找设备名
sudo fdisk -l
# 解压镜像文件(如果是 .xz 格式)
xz -dv 20250828_NanoKVMPro_1_0_10.img.xz
# 烧录镜像(请替换 /dev/sdX 为实际的设备名)
sudo dd if=20250828_NanoKVMPro_1_0_10.img of=/dev/sdX bs=4M status=progress
sudo sync
```
5. **重启设备**
- 烧录完成后,安全弹出设备
- 断开 USB 连接
- 重新接通电源,设备将自动启动新系统
#### 注意事项
- 确保选择正确的设备,避免误操作其他存储设备
- 烧录过程中不要断开电源或移除 USB 连接
- 首次启动可能需要较长时间进行初始化配置
- 如果橙色灯一直不亮,或者磁盘设备没有出现,请参考下面的方法使用 AXDL 烧录
### AXDL 烧录
AXDL 是爱芯官方推出的镜像烧录工具,可以烧录 AXP 格式的系统镜像,目前仅支持 Windows 平台。
#### 准备工作
- 准备一根 USB 数据线
- 访问 [NanoKVM Pro 发布页面](https://github.com/sipeed/NanoKVM-Pro/releases) 下载最新的 AXP 格式镜像文件
- 下载并安装 AXDL 工具和对应驱动 [下载地址](https://dl.sipeed.com/shareURL/MaixIV/M4N-Dock/10_PC_Software)
#### 烧录步骤
1. **连接设备**
- 使用 USB 数据线连接 NanoKVM Pro 的 HID 接口到电脑
2. **配置烧录工具**
- 打开 AXDL 工具
- 选择下载的 AXP 格式镜像文件
- 点击开始烧录按钮
<div align="center">
<img src="./../../../assets/NanoKVM/pro/faq/axdl.jpeg" style="width: 80%; height: auto; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);" alt="AXDL烧录工具界面">
</div>
3. **进入烧录模式并开始烧录**
- 先按住 NanoKVM 的 User 按键,然后接通电源(或者在通电状态下按下 Reset 按键)
- 烧录将自动开始,等待进度条完成
- 直到提示烧录成功,整个过程完成

View File

@@ -0,0 +1,91 @@
---
title: 简介
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, ARM, tool, PCIe
update:
- date: 2025-8-25
version: v0.1
author: BuGu
content:
- Release docs
---
## 简介
NanoKVM Pro 是 NanoKVM 的延续,作为 IP-KVM 产品继承了 NanoKVM 系列的极致体积和强大扩展性,在性能上有了质的飞跃,更加适合远程办公场景。
为满足不同用户的需求NanoKVM Pro 提供两种形态NanoKVM-Desk 与 NanoKVM-ATX
![](./../../../assets/NanoKVM/pro/introduce/combine.png)
NanoKVM-Desk 意为桌面版NanoKVM Pro主体采用阳极氧化的磨砂金属外壳前面板使用1.47寸触摸屏显示KVM核心信息并且可以方便设置硬件功能或作为mini副屏使用搭配左侧无极旋钮获得更有质感的使用体验。
NanoKVM-ATX 是NanoKVM Pro的机箱内版本标配半高/全高挡板可安装在机箱内部由于可以内置的USB线缆[3]和电源控制接口更方便主机用户安装。通过外部连接HDMI接口、网线和USB即可实现远程控制。
NanoKVM Pro 采用AX630作为主控核心采用 ARM 1.2G 双核 A53 CPU外置 1GB LPDDR4 内存为远程桌面连接提供强有力的计算支持。内置HDMI环出+采集芯片最高提供4K60FPS的HDMI环出和4K45FPS视频采集[1]。得益于AX630高效且强大的图像处理架构NanoKVM-Pro可以以极低的延迟传输高分辨率画面2K画面下典型延迟低至60ms[2]。
IP-KVM系列产品是远程桌面的硬件外挂通过HDMI捕捉画面通过网络实时同步画面与键鼠操作最后模拟键鼠完成对电脑的控制。由于该方式整个流程不需要主机软件完全由外部硬件实现因此NanoKVM可以实现对主机的BIOS级别控制尤其在远程开关机、多系统切换、BIOS配置、远程装机等场景下有广泛的应用空间。
由于升级后的的强大性能NanoKVM Pro 不仅为临时维护提供可靠支持,由于其低延迟高分辨率特性,还能在远程办公领域大展身手。后期我们将对 NanoKVM Pro 的软件进行持续升级,带来更方便的自动化/MCP功能和更广泛的兼容性。
为满足用户不同需求NanoKVM Pro 提供 WiFi、PoE、屏幕边缘同步灯带等可选项相关配置和价格请以购买页面为准。
## 参数
| 产品 | NanoKVM-Pro | NanoKVM | GxxKVM | JxxKVM |
|-------------|----------------|--------------|-------------|-------------|
| 主控 | AX630C | SG2002 | RV1126 | RV1106 |
| 核心 | 2xA53@1.2G | 1xC906@1.0G | 4xA7@1.5G | 1xA7@1.2G |
| 内存 | 1G LPDDR4X | 256M DDR3 | 1G DDR3 | 256M DDR3 |
| 硬盘 | 32G eMMC | 32G microSD | 8G eMMC | 16G eMMC |
| 系统 | NanoKVM+PIKVM | NanoKVM | GxxKVM | JxxKVM |
| 分辨率 | 4K@45fps, 2K@95fps[4] | 1080P@60fps | 4K@30fps, 2K@60fps | 1080P@60fps |
| HDMI环出 | 4K环出 | × | × | × |
| 视频编码 | MJPG/H264/H265[5] | MJPG/H264 | MJPG/H264 | MJPG/H264 |
| 音频传输 | √ | × | √ | × |
| UEFI/BIOS支持 | √ | √ | √ | √ |
| 模拟USB键盘鼠标 | √ | √ | √ | √ |
| 模拟USB ISO | √ | √ | √ | √ |
| IPMI | √ | √ | √ | × |
| 网络唤醒(WOL) | √ | √ | √ | √ |
| WebSSH | √ | √ | √ | √ |
| 自定义脚本 | √ | √ | × | × |
| 串行终端 | 2通道 | 2通道 | 无 | 1通道 |
| 存储性能 | 32G eMMC 300MB/s | 32G MicroSD 12MB/s | 8G eMMC 120MB/s | 8G eMMC 60MB/s |
| 以太网 | 1000M | 100M | 1000M | 100M |
| 机箱内形态 | 可选 ATX版本 | 可选 PCIe版本 | × | × |
| WiFi | 可选WiFi6 | 可选WiFi6 | × | × |
| ATX电源控制 | √ | √ | +15$ | +10$ |
| 显示屏 | 1.47英寸 320x172 LCD<br>0.96英寸 128x64 OLED | 0.96英寸 128x64 OLED | 无 | 1.66英寸 280x240 |
| 更多功能 | 同步LED灯效, 智能助手 | | | |
| 功耗 | 0.6A@5V | 0.2A@5V | 0.4A@5V | 0.2A@5V |
| 电源输入 | USB-C/PoE | USB-C/PoE/PCIe | USB-C | USB-C |
| 尺寸 | 65x65x28mm | 40x36x36mm | 80x60x7.5mm | 60x6x24-30mm |
## NanoKVM-PCIe 资料
+ [NanoKVM Pro 镜像下载 (待更新)](https://github.com/sipeed/NanoKVM-Pro/releases/latest)
+ [ATX上手指南](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM_Pro/atx_start.html)
+ [高级应用](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM_Pro/extended.html)
+ [常见问题](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM_Pro/faq.html)
## 购买入口
[预售页面](https://sipeed.com/nanokvm/pro)
[淘宝官方购买地址 (待更新)]()
[速卖通购买地址 (待更新)]()
## 产品反馈
如果您在使用过程中有任何问题或建议,请通过以下渠道和我们反馈:
+ [Github issues](https://github.com/sipeed/NanoKVM-Pro/issues)
+ [MaixHub 论坛](https://maixhub.com/discussion/nanokvm)
+ QQ 交流群: 703230713
> [1] 在仅环出场景下可以单独关闭采集功能来直接环出4K60的画面环出+采集同时运行时可以达到4K30FPS
> [2] 延迟可能会受到网络带宽和网络节点等原因有所差异实测数据来源于Sipeed实验室
> [3] USB-HID接口可以机箱内部接线也可以外部连接二选一即可
> [4] 由于4K45FPS非标准下的模式出厂默认采用4K30+2K60后续更新解锁4K45FPS/2K95FPS/1080P144FPS的方法
> [5] 目前出厂支持H264/MJPEG模式后续更新将提供H265支持

View File

@@ -0,0 +1,39 @@
---
title: USB 4Pin 如何修改
---
## 方式一 按下图连接
![](./../../../assets/NanoKVM/pro/usb/usb1.png)
注意需要在下图指示的位置剪掉黑色5V线缆。避免线头触碰其他部件导致短路
![](./../../../assets/NanoKVM/pro/usb/usb2.png)
## 方法二:需要调换部分线序
1. 使用镊子/牙签/小螺丝刀等工具挑起1.27mm端子头的塑料片
![](./../../../assets/NanoKVM/pro/usb/usb3.png)
2. 拔出线缆(按步骤1/2重复操作4个线缆都要拔出)
![](./../../../assets/NanoKVM/pro/usb/usb4.png)
3. 按压这里
![](./../../../assets/NanoKVM/pro/usb/usb5.png)
4. 使用镊子/牙签/小螺丝刀等工具挑起2.54mm端子头的红色线缆的塑料片
![](./../../../assets/NanoKVM/pro/usb/usb6.png)
5. 剪掉红色线两端,请一定要尽量把剪刀伸进热缩管剪,避免线头露出来
![](./../../../assets/NanoKVM/pro/usb/usb7.png)
![](./../../../assets/NanoKVM/pro/usb/usb8.png)
6. 将1.27毫米的电线插入连接器,如下图所示
![](./../../../assets/NanoKVM/pro/start/cable.png)

View File

@@ -0,0 +1,110 @@
---
title: 屏扩灯带
keywords: NanoKVM, LED Strip
update:
- date: 2025-9-05
version: v0.1
author: iawak9lkm
content:
- Release docs
---
## 套餐配件概览
如果您购买了灯带套餐,您将获得以下配件:
![ledstrip_ov](../../../assets/NanoKVM/pro/ledstrip/ledstrip_ov.jpg)
1. 一分二数据线
2. 灯带转接套件(含 6 个转接件和 3 根直角转接线)
3. 一卷 LED 灯带
---
## 安装步骤
### 确认安装方向
![ledstrip_screen](../../../assets/NanoKVM/pro/ledstrip/ledstrip_screen.jpg)
> 第④段为可选,支持三边模式和四边模式,根据您的需求来选择即可
>
> 灯带采样顺序为:**屏幕左下角 → 左上角 → 右上角 → 右下角 → 左下角** 。
> 安装时请保持一致。绿色端为灯带的 Type-C 接口,另一端通过转接线连接至 NanoKVM-Pro。
### 裁剪灯带
![ledstrip_cut_st0](../../../assets/NanoKVM/pro/ledstrip/ledstrip_cut_st0.jpg)
根据屏幕长宽裁剪灯带。
> 对边的灯珠数量需要保持一致。
示例:屏幕高度 18 颗灯珠,宽度 30 颗灯珠。
* 第①段18 颗
* 第②段30 颗
* 第③段18 颗
* 第④段30 颗
裁剪时请沿红线位置(触点中间)对半剪开:
![ledstrip_cut_st1](../../../assets/NanoKVM/pro/ledstrip/ledstrip_cut_st1.jpg)
### 打开转接件
在下图右侧为转接件**侧视图**,红框处掰开转接件,效果如左图:
![ledstrip_con_st2](../../../assets/NanoKVM/pro/ledstrip/ledstrip_con_st2.jpg)
### 插入线材
将灯带和直角转接线分别插入转接件两侧,确保金属触点与转接件内的桥接金属对应。闭合转接件后固定。
![ledstrip_con_st3](../../../assets/NanoKVM/pro/ledstrip/ledstrip_con_st3.jpg)
接入另一端直角转接线,**注意灯带箭头方向(信号传输方向)保持一致**。
重复此步骤,直至所有灯带完成连接。
![ledstrip_con_st4](../../../assets/NanoKVM/pro/ledstrip/ledstrip_con_st4.jpg)
### 粘贴灯带
撕开灯带背部的双面胶保护膜,将其牢固粘贴在屏幕背面。
### 连接到 NanoKVM-Pro
连接示意如下:
* ① 接 NanoKVM-Pro PWR 接口
* ② 接灯带
* ③ 接电源适配器
> ⚠️ 注意:请确保输入电源规格 **5V ≥ 3A**。
![ledstrip_pwr](../../../assets/NanoKVM/pro/ledstrip/ledstrip_pwr.jpg)
---
## 启用灯带
* 通过 Web 开启
1. 通过浏览器登录 NanoKVM
2. 依次进入 **设置 → 设备 → LED 灯带设置**
![ledstrip_web1_en](../../../assets/NanoKVM/pro/ledstrip/led_strip_web1_en.jpg)
3. 填写灯带数量并开启
![ledstrip_web2_en](../../../assets/NanoKVM/pro/ledstrip/led_strip_web2_en.jpg)
* 通过 Desk UI 开启
1. 进入 `Settings` 页面
2. 选择 `Ambilight` 进入二级设置页面
3. 配置灯带数量并开启
---
## 效果展示
![ledstrip_show](../../../assets/NanoKVM/pro/ledstrip/ledstrip_show.png)

View File

@@ -26,6 +26,12 @@ keywords: NanoKVM-USB, Lichee, PiKVM, RISCV, tool
## 视频问题
### 视频画质差
+ 首先检查是否使用了 USB2.0 的线缆/HOST接口当分辨率较大时 USB2.0 不足以提供充足的传输带宽,会被动降低画质,建议选用 USB3.0的线缆
+ 2K分辨率下首先于芯片编码能力画质会下降请切换为1080P使用
+ 如果 Target 连接的是 Windws主机请前往系统设置-显示设置-高级显示设置-列出所有模式中更改为 1080P60并检查`桌面分辨率``活动信号分辨率是否一致`
### DP-HDMI转接器
+ 部分无源DP转HDMI转换器内部电路仅做电平转换对NanoKVM-USB兼容性较差表现为视频信号从无到有比如从睡眠唤醒时NanoKVM-USB仍显示然黑屏需要手动拔插HDMI。

View File

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 69 KiB

View File

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Some files were not shown because too many files have changed in this diff Show More