Make ZTE MF831 works with TP-Link TL-MR3020

Since November last year, after 2degrees upgraded their network and was starting to abandon 2G cross the region, the 3G connection disconnected every 15 minutes. I know it because we have over 50 movie kiosks which originally were using 2degrees 3G network to sync the data.

Flixbox in Countdown Supermarket

We had to move on. Lucky, Spark gave us a good deal to switch the network to them. However, they don’t have the devices we need to connect to the 3G network. After several testing, ZTE MF190 is recognised as the best 3G dongle to be used.

I checked on the AliExpress, there are a plenty of sellers who have the MF190 stocked. We picked one seller and brought all the stock they had – 50 3G dongles. However …

After we got the dongles, it’s not exactly the same as the one we had on hand. It has COMVIQ, A1, or something else printed on the shell. But we didn’t think it’s a huge problem for us. But …

TP-Link TL-MR3020

It was!

The dongle has different USB ID. The USB ID of the one we have on hand is 19d2:0117. But the ID of dongles we brought from China is 19d2:1403. And they are not matched with our low-cost router TP-Link TL-MR3020.

With a further research, the device with ID 19d2:1403 actually is ZTE MF831/MF825/MF823, a newer drive less version 3G dongle from ZTE. It uses USB-Ethernet mode to work with PC/laptop, which means it works as a DHCP & NAT router. Obviously, it can’t work with TL-MR3020 – another DHCP & NAT router. But the dongle also has other modes with different USB IDs, check them out here.

We need to change the working mode of the dongles and make it work as a simple 3G modem. Here is an old article explained the whole process very well. I will repeat the major steps in the following part and make more comments to make things easier.

Turn off auto-connect method

Most of the dongles are pre-configured with the auto-connect function which will block changing the dongle to a simple 3G modem ( download/serial mode). Thus, it has to be turned off before the switching. There are two things need to be noticed. First, the dongle can work with Windows environment without troubles, but Linux system may not detect the dongle sometimes. Second, different ISP use a different dashboard to change the settings. Thus find your best way to change the settings.

In my case, the dashboard can be accessed by visiting through a web browser.

Web UI

Click Manual option and Connect button to turn off the auto-connect method.

Change dongle to Download mode

When the dongle is working under DHCP & NAT Router mode, it has mode switch function build-in the web interface. You can copy and paste the following URL into a browser, commands like curl/wget or anything which can handle a proper HTTP request.

The light of the dongle will be turned off for seconds and turn on with red colour (or the colour which indicates there is no SIM card installed). About 20 to 30 seconds, the light turn to blue (or the colour which indicates the dongle is working properly).

Now, the USB ID has been changed to 19d2:0016 and the dongle is working under Download mode which can work with MR3020 properly.

Reverting back to Ethernet mode

When I changed the dongles to the Download mode one by one, I made a mistake and unplug the dongle too early. It didn’t recognise the SIM card I was using anymore. So, I have to revert it back to Ethernet mode and change to the Download mode again. 

I used minicom to send AT commands to the dongle (/dev/ttyUSB2).

  1. ATZ
  2. AT&F
  3. AT+ZCDRUN=9

The same as changing to Download mode, after 20-30 seconds, once the blue light turned on, the dongle is fully prepared to work under Ethernet mode.

Join the Conversation


  1. Thanks for the tutorial. But I keep running in to this when using wget:

    “‘switchCmd’ is not recognized as an internal or external command,”

    What to do?

Leave a comment

Your email address will not be published. Required fields are marked *