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-CN RM500Q-GL RM500Q-AE RM502Q-AE
RM500U-CN-5G-HAT-details-17-1.jpg RM500U-CN-5G-HAT-details-17-3.jpg RM500U-CN-5G-HAT-details-17-5.jpg RM500U-CN-5G-HAT-details-17-4.jpg
Region / Provider China Global (except US) Global (except China) Global (except China)
Operating Temperature -30 °C ~ +75 °C -30 °C ~ +70 °C
Extension Temperature -40 °C ~ +85 °C
Dimensions 30.0 × 52.0 × 2.3 (mm)
Weight 8.9 (g) 8.7 (g)
Power Supply 3.3~4.4 V, typical 3.7 V 3.135~4.4 V, typical 3.7 V
Power Consumption 90 μA @ shutdown

3.7 mA @ hibernate TBD @ USB 2.0, idle TBD @ USB 3.0, idle

70 μA @ shutdown

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

80 μA @ shutdown

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

195μA @ shut down

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

Frequency Band
5G 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, n76, n77, n78, n79
5G NR SA n1, 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, n76, n77, n78, n79
LTE LTE-FDD B1, B2, B3, B5, B7, B8, B20, B28 B1, B2, B3, B4, B5, B7, B8, B12(B17), B13, B14, 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, B2, B5, B8 B1, B2, B3, B4, B5, B6, B8, B19
GNSS - GPS / GLONASS / BeiDou (Compass) / Galileo
Data Rate
5G SA Sub-6 downlink 2 Gbps;
uplink 1 Gbps
downlink 2.1 Gbps;
uplink 900 Mbps
downlink 2.1 Gbps;
uplink 450 Mbps
downlink 4.2 Gbps;
uplink 450 Mbps
5G NSA Sub-6 downlink 2.2 Gbps;
uplink 575 Mbps
downlink 2.5 Gbps;
uplink 600/650 Mbps
downlink 2.5 Gbps;
uplink 650 Mbps
downlink 5 Gbps;
uplink 650 Mbps
LTE downlink 600 Mbps;
uplink 150 Mbps
downlink 1.0 Gbps;
uplink 200 Mbps
downlink 1.0 Gbps;
uplink 200 Mbps
downlink 2 Gbps;
uplink 200 Mbps
UMTS downlink 42.2 Mbps;
uplink 11 Mbps
downlink 42 Mbps;
uplink 5.76 Mbps
* means developing/planning/processing
RM500Q-GL Specification, please refer to[Datasheet 1]

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 master 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:
"nr5g_band" : 5G NR
"lte_band":LTE only
"gw_band":WCDMA only
... ....
For more AT commands, please refer to: [Datasheet 2]
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 show 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:


For the function description of the identified USB ports, please refer to [Datasheet 3] your computer and unzip.

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 4]
For more detailed GNSS positioning, you can refer to: [Datasheet 5]

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: upload "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

In order 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 of PC, you need to add a driver manually. If your PC doesn't recognize any COM ports in Device Manager, find unknown devices and update the driver manually:
d Power on the 5G module and set the Switch to ON. four(it may be more than four) unknown devices are recognized by Windows PC.
Sim8200 windows driver0.png
Right-click the device, update the driver manually, choose SIM8200_OS_Driver\Windows, and then choose the driver according to the version of your OS. You need to update all four/five/six devices.:
Sim8200 windows driver1.png
Four COM ports: AT is used for AT command controlling, 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:


After dialing is successful, as shown in the figure below, the computer can go online normally.
Sim8200 win sendat1.png

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 ANT5 of the module, and place the antenna outdoors facing the sky. Then send the AT command to turn on the GPS:


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

It is recommended to use the latest image The system's Linux kernel version is 5.4. If your kernel is different, it is recommended that you update to the same version as this version. This tutorial is based on the 5.4 kernel, which can minimize the chance of your using errors.
SIM862E-M2 5G HAT USER05.png
SIM862E-M2 5G HAT USER06.png
If the system you used is another Linux system, please download the driver in the SIM8200_OS_Driver\linux. You can port the documents or use the driver in the system. Please refer to SIM820X RNDIS Dial Up.


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

sudo apt-get install p7zip-full
7z x SIM8200-M2_5G_HAT_code.7z
sudo chmod 777 -R SIM8200-M2_5G_HAT_code
cd SIM8200-M2_5G_HAT_code
sudo ./

Please do not modify option, qmi_wwan_simcom, default.script, files or directorys, otherwise the dirver cannot be installed normally.
If you get error information, please check ifyou use the 2020-08-20-raspios-buster-armhf OS and take screenshot of error information and contact our support team for help.

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

5G Networking

cd Goonline
sudo ./simcom-cm

After running codes, DNS information are shown as figure 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 modify rc.local file:

sudo nano /etc/rc.local

Add the line to file as below:

sudo /home/pi/SIM8200-M2_5G_HAT_code/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 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, 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
  • Create the new interface: Network -> Interface -> Create interface
  • 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. (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 —>Create a new interface
SIM820x OpenWrt(EN) (07).png
  • Create new interface: name -> SIM8202G; protocol of new interface - DHCP client; include the following interfaces - ethernet adapter: "usb0", and then submit:
SIM820x OpenWrt(EN) (08).png
  • Confirm that the interface selection in "Firewall Settings" is "wan"
SIM820x OpenWrt(EN) (09).png
  • Wireless configuration: Network->Wireless Network->Interface->Basic Config->Network,check SIM8202G and lan, save and apply.
SIM820x OpenWrt(EN) (010).png
SIM820x OpenWrt(EN) (011).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.

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

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.

Other Use

If you need to use the product on other systems, please download the SIM8200_OS_Driver file, and refer to the SIMCOM official documentation to add the driver.








Assembly Drawing

Demo Codes



Related Application Cases



  • 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 Zhanrui
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 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



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 AM GMT+8 (Monday to Friday)