Adaptation of the WQ9201S Private Video Transmission Module O9201UD for the RK3588 Platform

Published on: 2025-02-27 16:05
Read: 12

With the advancement of wireless technology, image transmission solutions have evolved from the previous Wi-Fi 5 to Wi-Fi 6 technology. Private image transmission, due to its superior anti-interference and transmission performance, has been widely adopted in drones. As the technology matures, it is gradually being extended to ground-based image transmission solutions such as HDMI/IPC.

This article will provide a detailed explanation of the adaptation of the high-power private image transmission module O9201UD which is developed by QOGRISYS based on the Wuqi WQ9201S chipset on the RK3588 platform.

1,Platform Information

  • Platform: Touch Intelligence IDO-EVB3588-V1
  • Kernel Version: GNU/Linux 5.10.110 aarch64
  • System Version: Ubuntu 20.04.6 LTS
  • Processor: Equipped with the high-performance RK3588 SoC, integrating a quad-core Cortex-A76 and a quad-core Cortex-A55 CPU, with a main frequency of up to 2.4 GHz.

 

2,Hardware Connection and Recognition

Here, the O9201UD module is soldered onto the test EVB, which is connected to the RK3588 via a USB interface. After powering on, use the lsusb command to check if the module is correctly recognized. The following ID indicates normal recognition:

Bus 002 Device 004: ID 0ffe:0003

Alternatively, you can confirm through kernel logs.

root@Industrio:~/wq9201ud# dmesg -c

[ 5374.211802] usb 2-1.3: USB disconnect, device number 4

[ 5376.190036] usb 2-1.3: new high-speed USB device number 5 using ehci-platform

[ 5376.322792] usb 2-1.3: New USB device found, idVendor=0ffe, idProduct=0003, bcdDevice= 1.01

[ 5376.322805] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[ 5376.322817] usb 2-1.3: Product: Wuqi USB Adapter

[ 5376.322828] usb 2-1.3: Manufacturer: Wuqi

[ 5376.322838] usb 2-1.3: SerialNumber: 123456789

[ 5376.341526] cdc_acm 2-1.3:1.4: ttyACM0: USB ACM device

 

 

3.Driver Compilation and Loading

1、Separate Cross-Compiling the Driver

In the emu_host_drv/wifi/rwnx_drv/Makefile, locate KERNELDIR and set the absolute path to the kernel:

#

# easy to make these kernel modules

#

KERNELDIR ?= /mnt/d/rk3588/evb3588-sdk-v1d/rk3588_linux_230204/kernel/

 

Save and exit. In the rwnx_drv directory, use the following command to compile:

make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu-

 

Note: Input ARCH and CROSS_COMPILE according to your actual environment.

After compilation, the wq_wlan.ko file will be generated.

Copy the .ko file to any directory on the development board, and copy all files from the fw directory in the driver package to the firmware directory on the development board.

Load the driver:

insmod wq_wlan.ko oem_name=wq9201_oem_1_1_0285.bin wifi_phy_name=wq9201_phy_1_1_2285_0102.bin fw_wifi_name=wq9201_fw_wifi_1_1_usb.bin fw_dtop_name=wq9201_fw_dtop_1_1_usb.bin fw_bt_name=wq9201_fw_bt_1_1_usb.bin

Then,use ifconfig -ato check if the wlan node is generated.

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.2.6  netmask 255.255.255.0  broadcast 192.168.2.255

        inet6 fe80::921b:230f:f21b:3bca  prefixlen 64  scopeid 0x20<link>

        ether 28:c6:13:70:cd:21  txqueuelen 1000  (Ethernet)

        RX packets 60  bytes 7219 (7.2 KB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 81  bytes 9301 (9.3 KB)

        TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0

 

After connecting to Wi-Fi, you can use iw wlan0 link to check the connection information:

root@Industrio:~/wq9201ud# iw wlan0 link

Connected to 98:97:cc:62:57:af (on wlan0)

    SSID: OFEIXIN_5G

    freq: 5220

    RX: 359996 bytes (479 packets)

    TX: 0 bytes (0 packets)

    signal: -50 dBm

    rx bitrate: 1200.9 MBits / 80MHz HE-MCS 11 HE-NSS 2 HE-GI 0 HE-DCM 0

    tx bitrate: 1200.9 MBits / 80MHz HE-MCS 11 HE-NSS 2 HE-GI 0 HE-DCM 0

root@Industrio:~/wq9201ud#

 

  • Integrating the Driver into the Kernel Tree

Under kernel/drivers/net/wireless/rockchip_wlan, create a wq9201 directory to store the driver code:

root@Huawei:/mnt/d/rk3588/evb3588-sdk-v1d/rk3588_linux_230204/kernel/drivers/net/wireless/rockchip_wlan# cd wq9201b

root@Huawei:/mnt/d/rk3588/evb3588-sdk-v1d/rk3588_linux_230204/kernel/drivers/net/wireless/rockchip_wlan/wq9201b# ls

emu_host_drv

 

Add the following line to rockchip_wlan/Makefile:

obj-$(CONFIG_WQHDHD) += wq9201b/emu_host_drv/wifi/rwnx_drv/

 

Add the following to rockchip_wlan/Kconfig:

menuconfig WQHDHD

    tristate "WuQi wireless Device Driver Support!"

    default y

 

In the root directory of the kernel, execute the make ARCH=arm64 menuconfig  command to open the graphical configuration interface:

Finally, open the kernel/.config file to check if the macro definitions are enabled.

CONFIG_WQDHD=y

For the RK3588 platform, there are also default configuration files as follows. You need to add CONFIG_WQDHD=y to these files; otherwise, the default configurations may override your settings during compilation, causing the driver code to be excluded:

  • arch/arm64/configs/rockchip_linux_defconfig
  • arch/arm64/configs/rockchip_defconfig

For other platforms, adjust accordingly to ensure the 9201UD driver code is included in the compilation.

At the root directory of the SDK, run ./build.sh kernel to compile the entire kernel and generate the kernel image. Then, flash the image onto the board.

Next, as long as the system can correctly recognize the module and the firmware (fw) is copied to the system's firmware directory, executing ifconfig -a after the system boots should display the wlan interface:

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.2.6  netmask 255.255.255.0  broadcast 192.168.2.255

        inet6 fe80::921b:230f:f21b:3bca  prefixlen 64  scopeid 0x20<link>

        ether 28:c6:13:70:cd:21  txqueuelen 1000  (Ethernet)

From preliminary testing, the transmission distance in an open and interference-free environment can reach 5 to 8 kilometers. Looking at future trends, high-power private video transmission technology based on Wi-Fi will gradually replace existing technologies in air-to-ground image transmission products as the technology matures, showcasing its significant potential.

 

Share

Related recommendations