Newifi3 D2 WiFi FIX tutorial

I've had enough, so many different forums about this topic but not a good explanation for how to do it. I need you guys!

I am using OpenWrt 21.02.3

Problem: My Newifi3-D2 (ver 1.2) is having wifi problems (on both 2.4G/5G). Weak signal because of low TX power rates etc (Maximum at stock was 16dB for my 5G which is not enough)

Solution: eeprom fix, I've seen a couple different settings from people. But overall this seems to do the trick.

NeWiFi3 D2 eeprom Download – MiniHere

How to:

  1. Install 'kmod-mtd-rw' from Luci->System->Software
  2. SSH into router
  3. type: insmod mtd-rw.ko i_want_a_brick=1
  4. cd /tmp
  5. wget

Final step
6. root@OpenWrt:/tmp# mtd -r write newifid3-d2-eeprom.bin factory

1 Like

The correct name of the module is kmod-mtd-rw. If you search for that on the forums you'll find a few threads with instructions on how to use it. It's pretty straightforward: load the module, use cat to redirect contents from the blob to the MTD partition.

1 Like

I've edited that part now. As shown, the instructions hasnt been very clear before.

Wiki has instructions as well:

Doesn't matter if its straightforward or not, i wouldn't be here asking if I didn't need the help. Especially if these are type of things where if you f* it up. You brick the whole god damn router.

Either way guys. I've updated the post.
Seems the long life lesson still applies here.

If you wanna do something correct, you have to do it yourself.
This is a simple tutorial for how to fix the problem. Cheers!

Literally the instructions I linked to, right? Some manners go a long way.

Nope. You still have to put all the pieces together. Which someone like me who isn't an OpenWRT Wizard is a very hard thing to do. Which is why i didn't ask for directions to 100x links. But a simple step by step.

In the Wiki instructions it only shows an example with 'art', and I dont even have an 'art' section in my mdt. So how would i suppose to know where to go from there? I've spent whole day trying to figure it out.
At long last, cat /proc/mtd gave me the name 'factory'.

This is the problem. Things that seems 'pretty straightforward' to you, doesn't mean it like that for everybody. And I don't wanna brick my router doing a simple mistake (which happens).

But now. I've given a proper tutorial, NOT LINKS. For anyone else that is gonna buy this router and discover the same problem.

Cheers guys! It's been a long ride. But now its finally come to an end.

How the speed after fixed the problems?

Speed and stability on both bands (2.4/5) are completely fine after the eeprom fix. I get full speed now(similar to my previous asus router) and haven't had any wifi drops at all. Seems like a good router so far but ofc time will tell. Bought it really cheap from taobao cause I intend to put pcwrt on it and it has dual cores. But as I suspect, these ones that are bought from China often don't have the eeprom fix from the getgo, hence the many forums of people complaining but not a single good and easy tutorial of how to fix it (until now).

1 Like

Can you pm or tell how to install openwrt on it? I'm planning to buy newifi d2 today.
thanks you

I followed this to the dot on my Newifi D2 upgraded to release 21.02. But it has not worked. Any pointers?

agarg@E7440:~$ ssh -l root
root@'s password: 

BusyBox v1.33.2 (2022-04-16 12:59:34 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 OpenWrt 21.02.3, r16554-1d4dea6d4f
root@NEWIFI:~# opkg install rsyncd nano kmod-mtd-rw
Installing rsyncd (3.2.3-3) to root...
Installing libpopt0 (1.16-2) to root...
Installing zlib (1.2.11-4) to root...
Installing rsync (3.2.3-3) to root...
Installing nano (6.3-1) to root...
Installing terminfo (6.2-3) to root...
Installing libncurses6 (6.2-3) to root...
Installing kmod-mtd-rw (5.4.188+git-20160214-2) to root...
Configuring terminfo.
Configuring libncurses6.
Configuring nano.
Configuring libpopt0.
Configuring zlib.
Configuring rsync.
Configuring rsyncd.
Configuring kmod-mtd-rw.
root@NEWIFI:~# insmod mtd-rw.ko i_want_a_brick=1
root@NEWIFI:~# cd /tmp
root@NEWIFI:/tmp# ls
TZ                                           lib                                          newifid3-d2-eeprom.bin                       shm
board.json                                   lock                                         opkg-lists                                   spool
dhcp.leases                                  log                                          overlay                                      state
dnsmasq.d                                    luci-indexcache.Mz..gIJ3.yOB1bP5bw8.50.lua   resolv.conf                                  sysinfo
etc                                          luci-indexcache.hY4aonR9.sE9eYDdbGXYx0.json  resolv.conf.d                                tmp
hosts                                        luci-modulecache                             run                                          usr
root@NEWIFI:/tmp# mtd -r write newifid3-d2-eeprom.bin factory
Unlocking factory ...

Writing from newifid3-d2-eeprom.bin to factory ...     
Rebooting ...
Connection to closed by remote host.
Connection to closed.

It did not work. I have a picture attached too.

Much appreciate any pointers.


What are your TX power levels if you open up your 5G SSID (Wireless Overview -> SSID -> 'Edit')? Does it go up to 20dB or stay the same as before? You have to set it manually to 20dB after this process if you havent done that. Besides that everything else seems like it went through without errors.

1 Like

Hi Jona

I noticed it was on driver default. I changed it to 20 dBm and saved, applied and then restarted.
Waited for 5 minutes and it has not worked. Then I booted and it still did not work.

I will keep trying different power levels and give it 30 mins gap and see how it behaves. And I will also keep you posted on this thread.

Anything else you'd like me to try in addition?


Jona: Further update. I kept experimenting with 20 dBm, 17 dBm, down to 5 dBm and nothing appeared to be working. Then I changed, under the advanced settings, the country code from driver default to US - United States. And, voila, it started to work right away.

Much thanks to you for launching me to tinker with settings instead of grumbling!!



20 Dbm is minimal power level, lower than that and the wifi range is very limited to a couple of meters(especially if you have many walls the signal must pass through). I'm glad it worked! I'll update the post/solution and clarify you need to manually set it to 20 dBm afterwards. And I had no idea about the country code bug. Assumed it would be the same for everyone. Good thing that got sorted out, many might've had a problem with that


Step 7: Update the default power level to 20 dBm in settings after the eeprom fix. Luci -> Network -> Wireless Overview -> SSID -> 'Edit'.

If you still have a problem, try changing the country code of the driver (for example to US) because it affects the available channels and transmission powers. If it can't be done through Luci, it should be located at /etc/config/wireless

1 Like

I did not know that 20 dBm was that low. I has it lowered to 15 dBm and wasn't facing any problem using 802.11AC through the drywalls. However, I have now updated it to 20 dBm to give me more signal farther away.

The radio / driver combo offers to go upto 23 dBm (199mw). Any reason it should not be marked up to 199 mw? Highest transmit power should be better. Is it not?



I have concrete walls, so anything lower than 20 dBm was creating problems. It depends on the hardware specs. I haven't read about it's maximum settings. Higher dBm means more power and longer range but same time -> More heat generated on the pcb. If the driver isn't designed for those levels and doesn't have big enough heatsink it can (in worse case) be damaged or simply won't last as long until it gets so. I go with 20 dBm because it's a standard value for wireless and is usually enough. But it might be able to handle 23 dBm if you look it up.

1 Like