From Waveshare Wiki
Jump to: navigation, search
USB TO M.2 B KEY.jpg

M.2, USB3.1





USB TO M.2 B KEY is a module driver board, to work with the M.2 interface 5G or 4G module, and can not be used alone!


  • Support 5G modules with M.2 (NGFF) Key B interface, suitable for SIMCom and Quectel 5G module.
  • Support 5G modules with 3042/3052 form factor, such as SIM82XX, and RM50XQ series 5G modules.
  • Onboard USB 3.1 Type A interface, easy to be inserted into a computer, Raspberry Pi, or Jetson Nano for a 5G network.
  • Onboard 4-Ch IPEX 4 to the SMA antenna interface, easy to directly install and fix the antenna.
  • Onboard SIM card slot for NANO SIM card.
  • On-board power and network indicators and multiple pads are reserved to check the working status of the module and test other functions.
  • PCB immersion gold process, reserved multi-slots and location holes for integration.
  • Comes with customized aluminum alloy panel with good heat dissipation, which is nice, protective, and durable.

Working With RM50XX Module

Selection Guide

5G Sub-6 RM500U-CNV RM500Q-GL 5G HAT RM502Q-AE 5G HAT RM520N-GL RM530N-GL
Picture RM500U-CN-5G-HAT-details-17-1.jpg RM500U-CN-5G-HAT-details-17-3.jpg RM500U-CN-5G-HAT-details-17-5.jpg RM520N-GL-details-2.jpg RM530N-GL-details-2.jpg
5G Standard 3GPP R15 3GPP R16
5G Chip UNISOC Qualcomm
5G Sub-6 GHz Sub-6 GHz & mmWave
Region/Operator China, EMEA, Asia-Pacific except Americas except China Global
Operating Temperature -30°C ~ +75°C
Extension Temperature -40°C ~ +85°C
Module Size 30.0 × 52.0 × 2.3 (mm)
Module Weight 8.8g 8.7g 8.8g
Power Supply 3.3~4.4V, Typ. 3.7V 3.135~4.4V, Typ. 3.7V
Power Consumption 78μA @ shutdown;

5.1mA @ hibernate;
57mA @ USB 2.0, idle;
71mA @ USB 3.0, idle

70μA @ shutdown;

4.0mA @ hibernate;
32mA @ USB 2.0, idle;
54mA @ USB 3.0, idle

80μA @ shutdown;

4.2mA @ hibernate;
39mA @ USB 2.0, idle;
54.5mA @ USB 3.0, idle

195μA @ shutdown;

4.7mA @ hibernate;
41mA @ USB 2.0, idle;
60mA @ USB 3.0, idle

173μA @ shutdown;

5.1mA @ hibernate;
51mA @ USB 2.0, idle;
69mA @ USB 3.0, idle

Frequency Band
5G 5G NR - n257, n258, n260, n261
5G NR NSA n41, n78, n79 n41, n77, n78, n79 n1, n2, n3, n5, n7, n8, n12, n20, n25, n28, n38, n40, n41, n48, n66, n71, n77, n78, n79 n1, n2, n3, n5, n7, n8, n12, n13, n14, n18, n20, n25, n26, n28, n29, n30, n38, n40, n41, n48, n66, n70, n71, n75, n76, n77, n78, n79
5G NR SA n1, n2, n3, n5, n8, n28, n41, n77, n78, n79 n1, n2, n3, n5, n7, n8, n12, n20, n25, n28, n38, n40, n41, n48, n66, n71, n77, n78, n79 n1, n2, n3, n5, n7, n8, n12, n13, n14, n18, n20, n25, n26, n28, n29, n30, n38, n40, n41, n48, n66, n70, n71, n75, n76, n77, n78, n79
LTE LTE-FDD B1, B3, B5, B8 B1, B2, B3, B4, B5, B7, B8, B12, B13, B14, B17, B18, B19, B20, B25, B26, B28, B29, B30, B32, B66, B71
LTE-TDD B34, B38, B39, B40, B41 B34, B38, B39, B40, B41, B42, B43, B48
LAA - B46
UMTS WCDMA B1, B5, B8 B1, B2, B3, B4, B5, B6, B8, B19 B1, B2, B4, B5, B8, B19
GNSS - GPS / GLONASS / BeiDou(Compass) / Galileo / QZSS (only RM520N-GL and RM530N-GL support)
Data Rate
5G mmWave - DL 4.0Gbps;
UL 1.4Gbps
5G SA Sub-6 DL 2Gbps;
UL 1Gbps
DL 2.1Gbps;
UL 900Mbps
DL 4.2Gbps;
UL 450Mbps
DL 2.4Gbps;
UL 900Mbps
5G NSA Sub-6 DL 2.2Gbps;
UL 575Mbps
DL 2.5Gbps;
UL 600/650Mbps
DL 5Gbps;
UL 650Mbps
DL 3.4Gbps;
UL 550Mbps
LTE DL 600Mbps;
UL 150Mbps
DL 1.0Gbps;
UL 200Mbps
DL 2Gbps;
UL 200Mbps
DL 1.6Gbps;
UL 200Mbps
UMTS DL 42.2Mbps;
UL 11Mbps
DL 42Mbps;
UL 5.76Mbps

Onboard Resources


Number Pin Number SIMxx Description RM50XX Description
56 Antenna tuner control3
(Antenna tuner MIPI CLK)
Used for external MIPI IC control
58 Antenna tuner control2
(Antenna tuner MIPIDATA)
Used for external MIPI IC control
67 System reset control input, low active Reset the module.
Low Active
60 I2S main clock Notification from WLAN to
SDR when WLAN transmitting
61 Antenna tuner control1 Antenna tuner GPIO control
65 WiFi 5G TX indicator Power supply for RFFE
59 Antenna tuner control0 Notification from SDR to
WLAN when LTE transmitting
63 n79 TX indicator Antenna tuner GPIO control
23 Wake on the host, low active Wake up the host.
Low active
25 Dynamic power reduction
H: Max transmitting power
will not be reduced (default)
L: Max transmitting power
will be reduced
Dynamic power reduction
26 GNSS disable, low active GNSS control.
Low active
8 WWAN RF disable, low active Airplane mode control.
Low active
/ Power indicator
/ Network indicator(flickering when access to the network)
/ M.2 B KEY slot
/ USB3.1
/ Antenna connector

4G/5G Module Compatibility Test

Provider 4G/5G Model Test
SIMCom 5G SIM8202G-M2 Support
SIMCom 5G SIM8262E-M2 Support
SIMCom 5G SIM8262A-M2 Support
SIMCom 4G SIM7600G-M2 Support
QUECTEL 5G RM500U-CN Support
QUECTEL 5G RM500Q-GL Support
QUECTEL 5G RM500Q-AE Support
QUECTEL 5G RM502Q-AE Support
QUECTEL 5G RM520N-GL Support

4G/5G Module Compatibility Description

If you need to use the USB TO M.2 B KEY for other 4G/5G modules, you can refer to the M.2 connection diagram below, check whether there is any pin conflict, and then connect to test:

Test Description

Common AT Commands

SSCOM UART AT command Test
Command Description Return
AT AT Test Command OK
ATE ATE1 sets echo
ATE0 closes echo
AT+CGMI Query module manufacturer OK
AT+CGMM Query module model OK
AT+CGSN Query product serial number OK
AT+CSUB Query module version and chip OK
AT+CGMR Query the firmware version serial number OK
AT+IPR? Set the module hardware serial port baud rate +IPR:
AT+CFUN=1,1 Reset module OK
AT+QUIMSLOT? Query SIM card selection:
Return 1, select SIM card 1;
Return 2, select SIM card 2
AT+CPIN? Query the status of the SIM card, return READY, the SIM card can be recognized normally +CPIN: READY
AT+COPS? Query the current operator, the operator information will be returned after normal networking +COPS:
AT+CEREG? Query network registration status +CEREG:
AT+C5GREG? Query 5G network registration status +C5GREG:
AT+QENG="servingcell" Query UE system information
AT+QNWPREFCFG=? Network mode selection command:
"mode_pref": Automatic
"nr5g_band": 5G NR
"lte_band": LTE only
"gw_band": WCDMA only
... ....
For more AT commands, please refer to: [Datasheet 1]
SSCOM Serial Assistant, software download: [Software 1]

Working With Windows

Install Drivers

  • Connect 5G HAT to the computer by the dual plug USB3.0 cable, there will be a series of devices without drivers in "Other devices", as shown below:


Download the driver[Software 2] to your computer and unzip.
  • Enter the RM50XQ_Driver directory.
  • Click "setup.exe" to install the driver, and the "computer management" will show as below after installation:


Networking Speed Test

RM50XQ Internet Speed Test

About the measurement speed

Due to many inconsistencies between actual and laboratory conditions, the 5G speed cannot be ideally maintained at 100MBPS. The following points:

  • Base station distance, the closer you are to the 5G base station, the better the signal and the faster the speed;
  • Base station load, the fewer people use, the faster the speed will be, and the commute will be slower during peak hours;
  • Number of base stations: Due to the spectrum relationship, the same amount of 4G coverage requires double the number of 5G base stations
  • Operator: You need to confirm whether your 5G card is speed-limited, you can periodically ask the operator to reset your network
  • Indoors are worse than outdoors: building penetration loss and indoor diffraction loss

PS: The current number of base stations still does not have good coverage, and the speed measurement in different locations is not the same.

MBIM Dail-up

RM5XXQ series also can choose MBIM to surf the Internet, as shown below:

Download and install MBIM network card driver. [Software 2]
  • Open RM5XXQ AT port, and send the following command for dial-up.
  • After dialing and restarting, the mobile network card appears on the computer network connection interface, and the dialing is successful.


GPS Positioning

  1. Connect the passive GPS antenna to the ANT3 of the module, pay attention to the side with the characters facing down, and place the antenna in an open outdoors.
  2. Then use the AT port to send AT commands:
AT+QGPS=1        //Turn on the GPS positioning
AT+QGPSLOC=0     //Get the GPS position
AT+QGPS=0        //Close the GPS positioning

3. Now open the NEMA port, and you can get GPS data:

For GNSS antenna interface and hardware description. you can refer to: [Datasheet 2]
For more detailed GNSS positioning, you can refer to: [Datasheet 3]

Working With Raspberry Pi

Hardware Connection

Connect the 5G HAT with the dual plug USB 3.0 and connect the external 5V power supply for the 5G HAT by Type-c interface.

Raspberry Pi Board Pi 4B Pi 3B/3B+ CM4-IO-BASE
USB adapter USB3.0 adapter USB2.0 adapter USB2.0 adapter
Connection Diagram USB TO M.2 B KEY-PI4.jpg USB TO M.2 B KEY-PI3.jpg USB TO M.2 B KEY-CM4.jpg

EMC Dial-up Configuration

Step 1: uninstall "modernmanager" and "network-manager".

sudo apt purge modemmanager -y 
sudo apt purge network-manager -y

Step 2: test 5G module.

  • Please make sure "usb-serial" driver program is correctly upload to the module interface, and you check it by the usb-devices:
pi@raspberrypi:~ $ usb-devices 
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=5000 MxCh= 0 
D: Ver= 3.20 Cls=00(>ifc) Sub =00 Prot=00 MxPS= 9 #Cfgs= 1 
P: Vendor=2c7c ProdID=0800 Rev=04.14 
S: Manufacturer= 
Quectel S: Product=RM502Q-AE 
S: SerialNumber=377628d2 
C: #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=896mA 
I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option 
I: If#=0x1 Alt= 0 #EPs= 3 Cls= ff(vend.) Sub=00 Prot=00 Driver=option 
I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option 
I: If#=0x3 Alt = 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option 
I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver= qmi_wwan
  • Execute ls /dev/ttyUSB* to check whether "ttyUSB0~ttyUSB4" is correctly identified:
  • Use minicom to test the transmission of AT commands:
sudo apt-get install minicom
sudo minicom - D /dev/ttyUSB2
Welcome to minicom 2.7.1

Compiled on Aug 13 2017, 15:25:34.
Port /dev/ttyUSB2

Press CTRL-A Z for help on special keys


Step3: use AT command to configure the network.


Please wait for the modem to start up again (about 30 seconds). Once the modem restart, the minicom will be activated again.
After rebooting, open a new Linux terminal and use ifconfig or ipaddr command to check usbX in the network port.

  • After rebooting the module, the NET light is on. The following commands are for checking the network status (optional)
  • The following commands are for getting IP and setting DNS:
sudo dhclient -v usb0
sudo apt-get install udhcpc
sudo udhcpc -i usb0
sudo route add -net usb0

Step 4: test the 5G network:
After dialing up, you can see that usb0 gets ip in the Raspberry Pi by the command ifconfig usb0 or ifconfig.

pi@raspberrypi:~ $ ifconfig usb0
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet  netmask  broadcast
        inet6 fe80::8543:f6a0:e678:2e20  prefixlen 64  scopeid 0x20
        ether 4a:aa:f8:62:36:bb  txqueuelen 1000  (Ethernet)
        RX packets 73  bytes 5047 (4.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 100  bytes 15116 (14.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


 ping -I usb0 
pi@raspberrypi:~ $ ping -I usb0
PING ( from usb0: 56(84) bytes of data.
64 bytes from ( icmp_seq=1 ttl=52 time=87 ms
64 bytes from ( icmp_seq=2 ttl=52 time=82 ms
64 bytes from ( icmp_seq=3 ttl=52 time=92 ms
64 bytes from ( icmp_seq=4 ttl=52 time=73 ms
64 bytes from ( icmp_seq=5 ttl=52 time=75 ms

5G Internet Speed Test

In the Linux system, you can install speedtest_cli to test:

## Raspberry Pi OS
sudo apt install speedtest-cli
speedtest      # or use speedtest_cli


## OpenWRT
opkg update   
opkg install python3
opkg install python3-pip
pip install speedtest_cli 
speedtest      # or use speedtest_cli


Check if the module detects SIM:

AT+CPIN? # Should return READY

Check if the module is registered to the network:

AT+CEREG? # Should return 0,1 or 0,5

Check if the APN is correct and has an IP:

AT+CGCONTRDP # Should return APN details and IP address.

Working With Jetson Nano

Hardware Connection

Use the dual plug USB 3.0 cable to connect the USB TO M.2 Key as shown below:
USB TO M.2 B KEY Raspberry Pi090.jpg

Load USB Device Descriptor

To identify the module and add the VID and PID information of the module to the file [kernel].

  • Check the VID and PID of RM500U:

USB TO M.2 B KEY Raspberry Pi091.png

  • Add VID and PID:
sudo apt-get install unzip
sudo chmod 777 -R RM5XXQ_For_Jetson_nano
cd RM5XXQ_For_Jetson_nano
sudo ./
sudo reboot
Please do not delete or modify the four directory files of option directory, default.script and, otherwise it will affect the loading of device descriptors!

After successfully adding the PID and restarting Jetson nano, enter the following command in the command line interface to display five device symbols USB0-USB4

ls /dev/ttyUSB*



  • Enable minicom:
sudo apt-get install minicom
sudo minicom -D /dev/ttyUSB2
  • Send the following command ECM in minicom:

After the module restarts, the NET light is on, use the following command to check the network status (optional).


Get the IP and set the DNS with the following commands:

sudo dhclient -v usb1
sudo apt-get install udhcpc
sudo udhcpc -i usb1
sudo route add -net usb1

After dialing, you can see that usb1 gets the ip through the following command:

ip route

Test usb1 networking status.

 ping -I usb1


Working With SIM82XX Module


SIM8200EA-M2 SIM8202G-M2 SIM8262E-M2 SIM8262A-M2
5G Standard 3GPP R15 3GPP R16
Chip Qualcomm Snapdragon X55 Qualcomm Snapdragon X62
Frequency Band
Sub-6G n1, n2, n3, n5, n7, n8, n12, n20, n28, n38, n40, n41, n48, n66, n71, n78 n1, n2, n3, n5, n7, n8, n12, n20, n28, n38, n40, n41, n66, n71, n77, n78, n79 n1, n3, n5, n7, n8, n20, n28, n38, n40, n41, n77, n78,n79 n2, n5, n7, n12, n13, n14, n25, n30, n41, n48, n66, n71, n77, n78, n79
LTE-FDD B1, B2, B3, B4, B5, B7, B8, B12, B13, B14, B17, B18, B19, B20, B25, B26, B28, B29, B30, B32, B66, B71 B1, B3, B5, B7, B8, B18, B19, B20, B26, B28, B32 B2, B4, B5, B7, B12, B13, B14, B25, B26, B29, B30, B66, B71
LTE-TDD B34, B38, B39, B40, B41, B42, B43, B48 B38, B39, B40, B41, B42, B43 B41, B46, B48
WCDMA B1, B2, B3, B4, B5, B8 B1, B5, B8 B2, B4, B5
GNSS GPS, GLONASS, Beidou, Galileo and QZSS
Data Rate
Sub-6G 2.4 Gbps (DL)  /  500 Mbps (UL)
LTE 1 Gbps (DL)  /  200 Mbps (UL)
HSPA+ 42 Mbps (DL)  /  5.76 Mbps (UL)
Software Function
Operating System Windows/Linux/Android
Communication Protocol TCP/IP, IPV4, IPV6, Multi-PDP, FTP, FTPS, HTTP, HTTPS, MQTTS, DNS, SSL3.0
SMS Support MT, MO, CB, Text, PDU
Firmware Upgrade Supports firmware upgrade via USB port
Hardware Specification
SIM Card 1.8V/2.95V
Antenna For 3G/4G/5G/GNSS
6 × IPEX-4 Connectors 4 × IPEX-4 Connectors
Power Supply 3.135~4.4V
Form Factor M.2
Dimensions 52.0 × 30.0 × 2.3mm 42.0 × 30.0 × 2.3mm
Operating Temperature -30℃ ~ +70℃
Application Scenarios
Region China, US, Japan, and South Korea, Europe, the Middle East, the Americas Other regions except for the Americas Americas
The applicable area is for reference only, and the appropriate module should be selected according to the frequency band covered and supported by the local operator's network.
Typical Application CPE, Smart Gateway, Drone, Live Video, Telemedicine, Smart Security

Working with Windows PC

Install Driver

Download the SIM8200 Driver from the Resources part to your PC and unzip it.
Enter the SIM8200_OS_Driver\Windows directory.
Enter the 1_install directory and run the setup.exe file to install.
Sim8200 windows driver1.png
After connecting, a mobile network icon appears, and you can disconnect the other networks and test the mobile network.

Install Driver Manually

For some hosts, although 1_install is installed, there are no COM ports shown. In this case, you need to manually add the 2_AddManully file folder. Here is the way to add: find the unrecognized device in Device Manager, right-click to add the driver as shown below:
Power on the G module, switch it ON and the module boots, and then the PC will recognize four unrecognized devices (For some motherboards, 5 or 6 devices are recognized). Here the picture only shows 5 devices.
Sim8200 windows driver0.png
Right-click to update the driver, choose to add it manually, and select the path as SIM8200_OS_Driver\Windows. Please select it according to your system (WIN7\WIN8\WIN10), and there are up to 6 devices that can be selected, and then the PC will generate the following devices.
Sim8200 windows driver1.png
Four COM ports: AT is used for AT command control, Audio is used for dialing, Diagnostics is used for debugging, and NMEA is used for GPS.
Sim8200 windows driver2.png
Sim8200 windows driver3.png
A mobile network will be set up automatically after updating, you can disconnect other networks and test it.

Manual NDIS Dial-up Internet

After installing the driver, some computers cannot automatically dial up to access the Internet, so you need to dial manually, the operation is as follows:
Download SSCOM software, open the sim8200 AT port to send the following command:

AT$QCRMCALL=1,1 //carrier return required

Sim8200 win sendat1.png
At this point, NDIS dial-up is active, and the computer can connect to the network. If it returns "No Carrier", the dial-up may have already occurred. Try accessing the internet directly.

GPS Positioning

ANT5 for SIM8200EA-M2; ANT2 for SIM8202G-M2; ANT3 for SIM8262E-M2. For details, you can refer yo the module hardware user manual.

Connect the passive GPS antenna to the GNSS antenna interface of the module, note that place with printed side facing downwards, and place the antenna outdoors in an open area.
Then send the AT command to turn on the GPS:

AT+CGPS=1 #carriage return

Sim8200 gps info0.png
Now open the NEMA port, and you can get GPS data:
Sim8200 gps info1.png
Finally, turn off the GPS, you can use the AT command:


SIM Card Config

  • SIM card 1 is used by default, and you can use the following commands to switch to SIM1 when it is SIM2.
  • Or you can directly switch to SIM2:
  • If it still does not work, consider that the flight mode is on, and turn off the flight mode with the following command:

Working with Raspberry Pi

The following method is for NDIS dial-up, which is temporarily unsupported for Raspbian systems dated April 4, 2022. If errors occur, please verify that the system is dated before April 4, 2022. For Raspbian systems dated after April 4, 2022, it is recommended to use the system's built-in driver for SIM820X RNDIS dial-up, which automatically initiates internal dialing SIM820X RNDIS Dail-up.


This configuration is only required for the first time.
Open a terminal and run the following commands:

sudo apt-get install p7zip-full
7z x SIM8200_for_RPI.7z  -r -o./SIM8200_for_RPI
sudo chmod 777 -R SIM8200_for_RPI
cd SIM8200_for_RPI
sudo ./

Please do not modify option, qmi_wwan_simcom, default.script,, these 4 directory files, otherwise the driver cannot be loaded normally.
Run ifconfig -a command to check WWAN0 interface.
SIM8200 RPI 2.png

Testing with AT command

sudo apt-get install minicom
sudo minicom -D /dev/ttyUSB2

SIM8200 RPI 1.png

NIDS Dial-up Internet Access

cd Goonline
sudo ./simcom-cm

After running codes, DNS information as shown below:
SIM8200 RPI 3.png
After connecting two SIM820X to Raspberry Pi through USB, two network cards—wwan0 and wwan1 can be recognized, and the two network cards can be dialed at the same time through the following commands: (The network speed cannot be superimposed)

sudo ./simcom-cm -i wwan0
sudo ./simcom-cm -i wwan1

SIM8200X Working01.png

  • Note: If the IP cannot be obtained or the networking is not successful, use the following commands to obtain the IP and set the DNS networking:
sudo dhclient -v wwan0
sudo route add -net wwan0


If you want to set the codes to auto-run after booting, you can open the Raspberry PI startup configuration script:

sudo nano /etc/rc.local

Add the startup command to the penultimate line, noting that it is the absolute path of your internet-running file, which is the line above exit 0:

sudo /home/pi/SIM8200_for_RPI/Goonline/simcom-cm &

Note that you have to add "&" to the end of the command, make sure that the command can be run in the background, or the Pi may not boot normally.

Live Streaming With ffmpeg

If you are using the 2020-08-20-raspios-buster-armhf image, then you don't need to install anything as the system already comes with ffmpeg.
Going straight to the topic, assuming you already have a camera and it's properly connected to the Raspberry Pi, then proceed with the tutorial.

  • The camera must be enabled by running the raspi-config command before using it:
sudo raspi-config
Select Enable Camera, select YES

Rpi Enable Camera.png

  • If it is a camera using the CSI interface, the system cannot find the device node of /dev/video0. A line for bcm2835-v4l2 needs to be added to the /etc/modules file:
sudo nano /etc/modules



Pan-tilt hat addmodules.png
Then after the system starts, the system will load the module name in this file and restart the system:

sudo reboot
ls /dev/video*

The video0 device node is found below.
Note: If after performing the first few steps, please confirm that the operation and instructions are correct.
Suppose you are using Douyu Live now, register your account and enable the host function, open Douyu Live Host Center, and find the live broadcast settings.
Open video plug flow setting:
The rtmp address and live code will be obtained, and the Raspberry Pi will execute the command:

ffmpeg -f video4linux2 -s 640x480 -r 25 -i /dev/video0 -c:v h264_omx -f flv "rtmp address/live code"

For example: open a terminal first, runs the 5G network:

cd Goonline
sudo ./simcom-cm

and then open another terminal, run the following command:

ffmpeg -f video4linux2 -s 640x480 -r 25 -i /dev/video0 -c:v h264_omx -f flv "rtmp://"

rtmp:// is the address, and the next section is the live code. Enter the room number at this time, you can observe the live broadcast, the delay is about 1-2S.

How To Use OpenWrt


Soft routing is using desktops or servers and other equipment with software. It mainly depends on the settings of the software to achieve the functions of the router. The hard routing is a unique hardware device, including a processor, power supply, and embedded software to provide router functionality.
OpenWrt is a very popular soft routing system. It is a highly modular and highly automated embedded Linux system with powerful network components and scalability. It is often used in industrial control equipment, routers, and other equipment.
In addition to the functions of general home routers, OpenWrt soft routing can also achieve port forwarding, intranet penetration, 4G networking, FTP server and more powerful functions.

Program the Image

Download the RPI OpenWrt system (minicom has been installed in this system), unzip the system in the Imgs directory, and use the burning tool to burn the system to the SD card.

Login & Initial Settings

  • After the OpenWrt system is turned on, the Raspberry Pi is equivalent to a router. Therefore, you can use a network cable to connect the Raspberry Pi to the computer according to the use of the router (you can also use the mobile phone to search for WIFI, the default name is "OpenWrt"). Enter on the webpage, the default username: root, the default password: password, and enter the Web management interface of OpenWrt.
SIM820x OpenWrt(EN) (2).png
  • Set WIFI password: Network -> Wireless -> Modify -> Interface Configuration -> Wireless Security, as shown below:
SIM820X OpenWrt01.png
  • Modify the IPv4 address of the LAN port to a different IP that is not the same as the LAN port IP of other routers in your home. In this example, set the IP address to (Many routers default the LAN port IP to If you do not modify the IP of the OpenWrt, it will easily lead to conflicts and failure to connect to the Internet.)
If necessary, it is also recommended to disable the IPv6 allocation length. After the modification is completed, click "Save & Apply", and re-use to access the OpenWrt console.
SIM820x OpenWrt(EN) (3).png
  • In addition, it is recommended to adjust the Firewall setting to connect the OpenWrt terminal and Web management interface through the local area.
  • Network —>Firewall, change all "reject" to "accept", and click "Save & Apply" after modification, as shown in the picture below:
SIM820x OpenWrt(EN) (4).png
  • And then select System -> Administration, modify the allowed interface for SSH access to "unspecified" (that is, any interface can be accessed by ssh), check the Gateway port, and click "Save & Apply" after the modification is completed.
SIM820X OpenWrt02.png
  • At this point, you can connect to the OpenWrt web management interface or terminal through the IP address of the LAN port or wan port.

Network Config

  • Insert the SIM card into the card slot of the communication module -> connect all 5G antennas, connect to the Raspberry Pi 4B via USB -> power on;
  • Change the mobile communication module to RNDIS mode (USB network sharing mode), SIM8202G can be changed by sending the following commands through minicom in Openwrt:
sudo minicom -D /dev/ttyUSB2 //(Some modules need to add PID to have ttyUSB* device character)
at+cusbcfg=usbid,1e0e,9011 //(Different models of modules have different setting methods, see the module specification for details)

To switch back to NDIS mode (factory default mode) use this command:

  • Enter the Web management interface of OpenWrt, click Network —> Interface —> Add new interface.
OpenWrt SIM8202G 1.png
  • Create new interface: name -> SIM8202G; protocol of new interface - DHCP client; include the following interfaces - ethernet adapter: "usb0", and then submit:
OpenWrt SIM8202G 2.png
  • Confirm that the interface selection in "Firewall Settings" is "wan", click "save and apply".
OpenWrt SIM8202G 3.png
  • Wireless configuration: Network->Wireless->Edit->Interface Configuration->General Setup->Network, check SIM8202G and lan, save and apply.
OpenWrt SIM8202G 4.png
OpenWrt SIM8202G 5.png

Then the other devices can be connected to the OpenWrt wireless "OpenWrt" or through the network cable to connect to OpenWrt's own network port for networking.

5G Network Speed Test

In terms of the speed measurement, as the Raspberry Pi comes with a Gigabit Ethernet port, and there are few USB network cards above Gigabit, we use the "SpeedTest For Python" tool to test the speed with the command.
Connect to the terminal of the OpenWrt, and enter the command one by one to test:

opkg update
opkg install python3
opkg install python3-pip
pip install speedtest_cli
speedtest or speedtest_cli
When the SIM8202G module is registered to the 5G network and the signal is good, connect to the OpenWrt hotspot (5.8G) through the mobile phone, and the mobile phone can measure the speed of about 100M. The actual speed measurement may be different and is for reference only.

Raspberry Pi minicom Serial Port Debugging

1. Insert the module into the Raspberry Pi, and turn the S_TX and S_RX of the DIP switch to ON:
2. Install minicom, minicom is a serial debugging tool for the Linux platform:

sudo apt-get install minicom

Open ttyUSB2 through minicom

sudo minicom -D /dev/ttyUSB2

Send to enable UART port:


3. Open ttyS0 through minicom——ttyS0 is the serial port of Raspberry Pi 3B/3B+/4B, the default baud rate is 115200;

sudo minicom -D /dev/ttyS0

4. For Raspberry Pi 2B/zero, the user serial device number is ttyAMA0; you can use the following command line to confirm, serial0 is the selected serial device number, as shown below:

ls -l /dev/serial*

RM500U-CN 5G HAT 9.png

Use with Jetson Nano

It is recommended that you use the system image jetson-nano-sd-card-image (updated in October 2020). The Linux kernel version of this system is 4.9.140-tegra. The previous system is 4.4. This tutorial is based on the 4.9 kernels. If there is a difference, please update to the same version as this one, which will minimize the chance of your using it incorrectly.
If you are using other Linux systems, please download the driver under SIM8200_OS_Driver\linux and port it according to the documentation under it.

Configuration Required for First Use

  • Please don't type the wrong letter, it's better to copy and paste:
sudo apt-get install p7zip-full
7z x Sim8200_for_jetsonnano.7z -r -o./Sim8200_for_jetsonnano
sudo chmod 777 -R Sim8200_for_jetsonnano
cd Sim8200_for_jetsonnano
sudo ./

Please do not delete or modify the options directory, qmi_wwan_simcom directory, default. script, these four directory files, otherwise it will affect the loading of the driver.
If there is an error, please confirm whether the system kernel is 4.9.140-tegra, and take a screenshot of the error message so that engineers can help you analyze and solve the problem.
Run ifconfig -a to see that WWAN0 has been generated.
Sim8200 jetsonnano 1.png

AT Test Command

sudo apt-get install minicom
sudo minicom -D /dev/ttyUSB2

SIM8200 RPI 1.png

5G Network

cd Goonline
sudo ./simcom-cm

You can successfully see that DNS has been generated at the bottom.
Sim8200 jetsonnano 2.png

Other Usage

If you want to use this product on other systems, please download SIM8200_OS_Driver and add it according to SIMCOM official tutorials.

About the Speed

Due to the differences between actual and laboratory conditions, the 5G speed will not be ideal and stable at 100MBPS. There are the following points:

  • Base station distance, the closer to the 5G base station, the better the signal and the faster the speed;
  • Base station load, the fewer people using it, the faster the speed will be, and the rush hour will be slower;
  • Number of base stations: Due to spectrum relationships, the same amount of 4G coverage requires double the number of 5G base stations.
  • Operator: You need to confirm whether your 5G card is limited in speed, you can periodically ask the operator to reset your network.
  • Indoors is worse than outdoor: building penetration loss, and indoor diffraction loss.
  • PS: The current number of base stations still does not have good coverage, and the speed measurement in different locations is not the same.

FM650 Usage


Install Driver

  • After connecting the FM650-CN 5G HAT to the computer via a dual-plug usb3.0 cable, a series of unknown devices with no drivers installed appear on other devices:


  • Enter FIBOCOM_Fx650_Series_USB_Driver_Windows directory.
  • Click on DPInst64.exe to install the driver (Click on DPInst32.exe for 32-bit system). After installation, the following devices appear on the Device Manager.


RNDIS Dial-up

  • Install the SIM card and antenna on the device, and connect the USB cable to the computer, power on.
  • Install the USB driver.
  • If it has successfully registered on the network, the SIM7600X sends an AT command to enable USB dial-up Internet access:
  • Observing the Device Manager, several unrecognized devices are detected, such as RNDIS (with an exclamation mark).
  • Right-click on the RNDIS, Search for Devices software prompt window and select "Browse My Computer". Select "Network Adapters" from the list of devices.
  • Select Microsoft Corporation in the Manufacturer list of the Network Adapters window, and then select "Remote NDIS Compatible Device" in the list on the right.

Click Next and wait for the installation to finish, the RNDIS Kitl device will be installed successfully. At this point, the dial-up feature is set up and you can see that the PC can access the Internet through Dongle.

SIM7600X 4G DTU PPP.png
RNDIS Dial-up02.png
RNDIS Dial-up03.png
RNDIS Dial-up04.png

  • If it cannot connect to the network, please set it to obtain the IP automatically.

RNDIS Dial-up08.png








Assembly Drawing

Demo Codes



Related Application Cases




5G consumes a lot of power, and the host's USB interface might not provide enough power. Please use a USB double-plug cable to supply sufficient power to the module, as shown in the diagram.


  • Please check whether the SIM card and the antenna are connected, and note that four antennas must be connected.
  • Please check the hardware connection and use AT Log to check the network connection.




RM500U-CN: based on Spreadtrum.
RM500Q-GL: based on the Qualcomm platform, supports GNSS positioning, mainly for China.
RM500q-AE/RM502Q-AE: based on the Qualcomm platform, supports GNSS positioning, mainly for countries except China.


The 5G module requires a lot of power, especially at the moment of network access; the power supply capacity of the Raspberry Pi is limited, and the 5V (3A) power supply can be connected to the onboard TYPE-C interface.


When using the external power supply, RM500U does not reboot after rebooting the Raspberry Pi, you can use the commands to restart RM500U.


As shown below:
AT+QCFG="usbnet",0 driver type is NDIS(QMI));
AT+QCFG="usbnet",1 The driver type is ECM;
AT+QCFG="usbnet",2 The driver type is MBIM; (RM5XXQ support)
AT+QCFG="usbnet",3 The driver type is RNDIS
AT+QCFG="usbnet",5 The driver type is NCM;


Use the following command to turn on the echo, and press Enter after entering: (Blind typing is required here)


It can be inquired at the following website:


  • Raspberry Pi 2B/zero, with user serial device number ttyAMA0;
ls -l /dev/serial*   
  • You can use the following command line to confirm that serial0 is the selected serial device number, as follows:

RM520n-gl faq90.png


The USB power supply capability of the Raspberry Pi is worse than that of the computer. It needs to be connected to an external power supply. Please set the switch to EXT PWR, and connect the HAT interface to a 5V 3A power supply:

RM500U-CN 5G HAT.png



First of all, there are slight differences between laboratory data and actual data. In practice, due to insufficient base stations, poor signal coverage, and many 5G coverage holes, the network speed may not reach the highest peak. Under normal circumstances, the 4G upload speed is stable at 20-40Mbps, and the 5G upload speed is stable at 100Mbps (the fewer people, the faster the speed is closer to the base station.)


After confirming that the SIM card is open for the 5G package and has sufficient balance and local 5G network coverage, follow the steps below to fix 5G (boost network speed):
AT+CNBP? //(you can copy the band to notepad) backup band
AT+CNBP=0x100600000FC00000,0x00000000000000460000A7E2BB0F38DF,0x0000000000000000,0x00000000003FFE63000681E2090828D7. 0x00000000003FFE63000681E2090828D7 //assign the band to SIM820X
AT+CNBP=0x100600000FC00000,0x0000000000000046000001E2000908DD,0x00000000000000000000,0x00000000000000007042000081A0080808D7. 0x00000000000070000000010000000000 //give the frequency band to SIM820X
AT+CNMP=71 // Fixed 5G



It may be that the APN is not acquired, generally, the APN is able to be acquired automatically, some areas (IoT cards) need to be acquired manually, for example, can be set by the following instructions:

AT+CGDCONT=1, "IP", "APN" // different operators APN is different, here the APN is changed to the corresponding operator

You can check the APNs of major carriers at the following websites: APN Search Website
SIM7600X apn.png


  • The default is to use SIM card 1, it may be switched to SIM card 2, please use the following command to switch to SIM card 1:
  • Or directly switch to SIM card 2:
  • If it still doesn't work, consider that the airplane mode is turned on, and use the following command to turn off the airplane mode:

*It is recommended to use RNDIS Dial-up


Use the following commands to check whether the SIM820X and Raspberry Pi are well connected. If there is no problem, you can see the Qualcomm device and ttyUSB0-USB4:
ls /dev

SIM8262E-M2 5G HAT03.png



In this case, the network connection may not be successful. Follow the steps below to troubleshoot:
1. First confirm the hardware problem:

  • Check whether the connected SIM card can communicate and surf the Internet normally on mobile phones and other devices:
  • Check whether the antenna is connected properly;
  • Check that the NET light is flashing, and it is always on, indicating that it is not registered to the network

2. After confirming that the hardware is OK, you can use the following command (AT LOG) to further confirm the network situation:

*Check the firmware version information: AT+SIMCOMATI
*Check if the sim card is in good contact: AT+CPIN?
*Turn the radio on (turn off airplane mode): AT+CFUN=1
*Check that the network mode is set to auto-seek: AT+CNMP=2
*Check the signal quality of the current environment: AT+CSQ
*Check if the registration to the network is successful: AT+CGREG?
*Check internet connection: AT+CPSI?
*Check if the APN corresponds to the operator of the SIM card: AT+CGDCONT?
*Check operator access: AT+COPS?

SIM8262E-M2 5G HAT04.png


Confirm that the SIM card connected to the SIM820X can use 5G in mobile phones and other devices through methods such as speed measurement:
The fact that the mobile phone can obtain 5G means that there is a 5G signal in the local area, but the mobile phone supports much more 5G frequency bands than the module, and the 5G module may not necessarily be able to register to the 5G network or ask the local operator for the 5G frequency, and the 5G module supports Under the benchmarking, or go to the local city center (where there are 5G NR cells) to test!
  • After confirming that the SIM card is normal and the local 5G network is covered, follow the steps below to fix 5G (to increase the network speed).
AT+CNBP? //(Can copy the frequency band to Notepad) Backup frequency band
AT+CNBP = 0x100600000FC00000, 0x000000000000000046004600001e2000908dd, 0x00000000000000000000000000000070420081a00808d7, 0x0000000000000000000000 //
AT+CNMP=71 // Fixed 5G
  • The 5G operator's SIM card frequency band should cover the SIM820X frequency band; sometimes the 4G network is queried, and the speed has reached 5G. You can directly measure the speed to confirm that the 5G network speed is available.
  • To confirm whether the test environment has 5G network coverage, you can install Cellular-Z on a 5G mobile phone (all major app stores can download it) to view the detailed network information:

5G APP message-1-.png
5G APP message02.png

  • Apple phones can follow the following steps to obtain band information:
    • Open the phone dialer, enter *3001#12345#*, then click the dialer button.
    • In the pop-up page, first, find and click "Serving Cell Info", then find and click "Freg Band Indicator.
    • Check according to the table issued by the operator, and you will know.

5G APP message03.jpg


  • It is recommended to use the more convenient RNDIS dial-up.
  • You can burn the latest Raspberry Pi Raspbian system and reconfigure the NDIS dial-up.
  • Or you can use the image of the RNDIS dial-up with drivers already configured and boot the Raspbian system image (with drivers installed).


Specific frequency bands can be fixed by the following commands, here fixed at 41 and 78:


The antenna must be connected, and the corresponding functions are as follows:

SIM8262E-M2 5G HAT07.png


Plug the GPS antenna into the GNSS antenna socket (SIM8200EA is ANT5; SIM8202G is ANT2), and place the receiver in the open air (note that it cannot be tested in rainy weather). It takes about 1 minute to receive the positioning signal after power-on.


You can use USB to transfer data, and runs "sudo ./install" to load the USB driver. We can use the USB connector of Raspberry Pi 3B/4B to communicate, also you can take the same steps to operate in windows for USB loading. Without a USB driver, it will be identified as an unknown device.


Not occupied by default.


Make sure that your system kernel is above 5.4. Do not use sudo update to upgrade the Raspberry Pi to the latest version, otherwise, the kernel version will be upgraded to a version higher than the current firmware and it will not be recognized.


Yes, connect to different USB ports of different hosts, take Raspberry Pi as an example, and the instructions for dialing up the Internet at the same time are as follows:
sudo ./simcom-cm -i wwan0
sudo ./simcom-cm -i wwan1




The following commands can be used to save the SMS to the module memory:



The VOLTE function can be turned on with the following command:

The VOLTE function can be turned off with the following command:



  • Insert the GPS antenna into the GNSS antenna holder (SIM8200EA is ANT5; SIM8202G is ANT2), and place the receiver in the open outdoors (note that the test cannot be done in rainy weather), the power needs to wait for about 1 minute before the positioning signal is received;

SIMXXX Locates My Location.png

  • M2 module needs a passive antenna to obtain positioning information, if you do not have a passive positioning antenna, the matching 5G antenna is also available, replace the 5G antenna and put the module into outdoor positioning (the 5G antenna does not come with an extension cable)::

SIM8262E-M2 5G HAT FAQ11.png



USB, Raspberry Pi runs "sudo. /install" will load the USB driver, and we connect communication with a 3B/4B USB connector. According to the tutorial, you can load the USB driver on Windows, and it will display as an unknown device when there is no driver.


Not occupied by default.


Make sure your system kernel is above 5.4, Raspberry Pi does not use sudo update to upgrade to the latest version, this will upgrade the kernel version to a higher version than the current firmware will not be recognized.



The following command can be used to detect the presence of Qualcomm Qualcomm devices, and if a COM driver has been loaded (the Raspberry Pi system generally comes with it), a series of ttyUSB* will also appear:

ls /dev/ttyUSB*

SIM7600G-H 4G DTU FQA16.png



After prolonged operation, the lubricating oil in the rolling bearing fan may evaporate, leading to increased noise. This is a common phenomenon with rolling bearing fans and does not indicate a malfunction of the fan.



We use the RTL8125 network port solution.
Theoretically, RTL8125 supports 2.5G, but it depends on the 5G module and the network condition of the test environment.



Technical Support

If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)