What's new

My experience with the RT-AC86U

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

Oracle

Regular Contributor
Decided I'd setup a sort of online diary about my user experience with the Asus RT-AC86U, a.k.a. Wireless-AC2900.

It has dual-core 1.8 GHz CPU, 512 MB RAM and for what I can tell, good throughput and good WiFi radios.

(If looking for a router in 2022, turns out there are better options for a better price. For example, the RT-AX68U appears to beat it, based on what I read in this forum.)

Unpacked it about 2 weeks ago, let it run with its stock firmware to make sure it's a healthy unit and flashed it to Asuswrt-Merlin (386.5_2).

I've already received a decent amount of help and advice from forum members on how to use it best. So I plan to collect some of the advice here (for my and other users' reference) and I'll also share my own.

This to ASUS R&D & Quality assurance:
1. Thermal design.

With the original factory design, several components inside continuously heat up to 50-90 C in normal room temperature of 25 C.
This is not good for the lifespan of:
- ICs (the silicon chips). These include the CPU, the radios and the voltage regulators (VRMs). They slowly fry inside.
- The solders on the PCB (the device's circuit board). The tiny, hair-thick solders are subjected to mechanical stress from the thermal expansion and contraction of the hot parts.
Every cool-heat-cool cycle brings them closer to breaking off.
- The other components inside, absorbing the heat.
This makes the unit prone to early failure and user frustration.

2. Read NVRAM bug
Scripts will occasionally hang while trying to read a value from the non-volatile RAM. One out of every several thousand instances of nvram get commands gets stuck, blocking the entire script. While it's difficult to predict when exactly the problem will appear, it is certain to appear and consistently reproducible with a test script.
Status of designing a workaround for this problem: temp solution available (using addon timeout command and an alternative with built-in functions).
Same problem is detected with the wl command.

Workarounds for users:

My experience with the RT-AC86U | Page 15 | SmallNetBuilder Forums (snbforums.com)
The code in the linked post can be saved into shell scripts, for example nvram.sh and wl.sh.
Enable the wrappers by executing the scripts.
Disable by running:
umount /bin/nvram - to deactivate nvram wrapper
umount /usr/sbin/wl - to deactivate wl wrapper
There is a dependency on an Entware addon - timeout. For alternative version, check the thread.

3. Power supply.
The unit is powered by 19 V and this has to be stepped down inside to 5V by several VRMs. That's a lot of energy to dissipate and where does it go? More heat and more thermal stress.
Even with the 19 V supply, the USB 3 port isn't able to provide enough power for hungry USB 3 devices. I haven't measured it (I'll have to cut USB cables for that) but the same devices disconnecting on the AC86U worked fine even on a Raspberry Pi.

4. No safe shutdown.
As advertised, the unit comes pre-installed with features to add and share USB storage.
While there is a feature to unmount external drives (thanks for that), there is no router shutdown.
I'd say instead of the hard power switch on the back it would be much, much better for any attached media to have a soft power off. Else, there's considerable risk of data corruption and more user frustration.
 
Last edited:
Hardware

Temperatures

One of the first things that got my attention was that the CPU reached 79 C idle and 89 C under heavy load (reading / writing files to USB 3 attached storage). Room temp: 25 C.
Following advice from Viktor Jaep, I put a fan behind it (12 cm). At around 7-800 rpm, it took the idle temp to around 64-66 C. At 1500 rpm (full speed, noisy): 57-58 C. Unplugging any LAN cables - 53-54 C.
Then I thought - that's not good. So I replaced the pads under the heatsink with brass and Arctic Silver paste. The plan was to use copper but I couldn't find copper pieces with the right size, so resorted to brass (~60-70% copper, 30-40% zinc).
Also modded the back plastic panel to allow a little bit better airflow.
The fan is now back to 700-800 rpm, inaudible to me.
Idle temp: 39-40 C with no LAN clients to the switch, 42 C with a network printer attached. Under heavy load: 44-45 C. Room temp: 23 C, so add 1-2 C to make things comparable.
The temps of the radios have also decreased. I just didn't pay attention to record them before the mod.

NVRAM bug
Scripts will occasionally hang because the router is not able to read from the NVRAM (its persistent memory). Does my router have this bug?
Run the following script to check:
Bash:
#!/bin/sh
#Test nvram get
i=0
while [ $i -le 10000 ]; do
  i=$(( i + 1 ))
  state1="$(nvram get vpn_client1_state)"
  state2="$(nvram get vpn_client2_state)"
  state3="$(nvram get vpn_client3_state)"
  state4="$(nvram get vpn_client4_state)"
  state5="$(nvram get vpn_client5_state)"
  clear
  echo "$state1" "$state2" "$state3" "$state4" "$state5"
  echo "$i"
done

exit 0
The above script will try to perform 10,000 iterations of the 5 nvram get commands to check vpn clients (these are arbitrary, any nvram get can fail). To run it, save it in a file named nvram-test.sh for example (you can use the built-in nano editor for this), give it permissions to execute with chmod +x nvram-test.sh and execute with ./nvram-test.sh. Beware not to insert carriage return symbols in your script like I did the first time ('\r'). In Windows, when you press Enter, you get "CR+LF" or "\r\n" or "carriage return + line feed". In Unix, you only need the LF.
If everything is ok, the counter will get to 10,001 and the script will exit. If it stops before that - hit Ctrl+C to abort it, it is permanently stuck.
If you were able to run the test script on an AC86U unit to 10,001 please share your firmware version.

dave14305 was kind enough to run strace and single out the difference between a successful and failed nvram get command. We now also know that the wl command exhibits the same faulty behavior.
Code:
bind(3, {sa_family=AF_NETLINK, nl_pid=1098, nl_groups=00000000}, 12) = -1 EADDRINUSE (Address already in use)
The difference.

USB Devices
Tried to plug in a WD Green 128 GB SSD via USB-SATA adapter. That didn't work well: the SSD draws more power then the router supplies via the USB 3 port and it simply disconnected.
Note to the ASUS engineers: USB 3 should be fine with this drive, as all my other devices were.
~10 EUR less in my pocket and 5 hours later the SSD was hooked up via powered USB 3 hub (3A). So far so good. The added benefit, besides power stability: I can now use more USB 3 devices with the single USB 3 port on the router.
The SSD has 2 partitions: an EXT4 one and a swap partition. I formatted the drive before reading the forum's advice that I should have used a swap file instead and I just kept it this way. Works fine.

Then I shared folders via the built-in Samba server, selecting only SMB v2.

Transfer speeds via WiFi (5GHz) to the SSD: ~40 MB/s for both read and write. Via Gigabit LAN: 80 MB/s write, 90 MB/s read. While reading big files, the speed goes to above 100 MB/s but then there are also short slowdowns. Overall I find it great.
Then hooked up an external HDD. Same speeds. Interestingly, the router is able to copy 1GB from the SSD to the HDD (both attached to the USB 3 hub) in 10-11 s. That's 100 MB/s average. I expected it to be half that speed because both drives share the same interface.
 

Attachments

  • AC86UTempsMod.png
    AC86UTempsMod.png
    120.6 KB · Views: 132
Last edited:
Software

I started the custom path with firmware Merlin 386.5_2. The firmware is excellent.
Additionally, installed:
1) Diversion for ad-blocking. So far it's been great.
2) dn-vnstat for WAN traffic statistics. I had a rough start with this one because of a problem I caused and because I was somewhat impatient. Now I like it.
3) scMerlin for router live stats. It shows memory and CPU use and cron job schedules among other features. Quite a beautifully laid out page.

I'm also running a VPN server and a few small custom scripts of my own. Ah, and a cool script suggested by ColinTaylor and slightly adjusted by me to retain the router's system log files (which otherwise get overwritten).

I've also stumbled upon a few disappointing limitations but say that's enough for today. Disappointing in the sense I thought I'd be able to do more things on this device but that was only my wishful thinking.
 
Last edited:
This router is >4 years old and has a history if higher than usual hardware failures. The most notable one is sudden death with LAN4 LED half lit caused by failed step-down converter IC. It used to have overheating issues caused by failing thermal transfer pads. There is only a hope Asus improved things in never production units. In general I would not recommend this model, based on my findings how it's made. One of the most unreliable Asus models. Many SNB forum members lost their units. Some were lucky to get a replacement, some had to buy another replacement router. Good luck with your AC86U.
 
Yeah, not worth chronicling at this stage of its life and with more current options on the market. But general application notes are always interesting.

OE
 
If one of mine dies, I will look at options for a replecement. Until then, I will keep enjoying their performance and stability.
BTW, I do have fans on them to help keep them cool. :)
 
For the peace of mind of more experienced members I can add in the first post that this model is not recommended, neither is attaching storage to it, etc.
I also don't know what Asus engineers were thinking with the thermal design. Poor heatsink application, poor case airflow. No wonder it would exhibit high failure rates. Continuous high temperatures damage silicon chips.
Other than that, I doesn't look like such a terrible router to me. We'll see.
 
BTW, I do have fans on them to help keep them cool.

You have fans? ;)

- copper shim on the CPU with Arctic Silver 5
- Arctic thermal pads on radio ICs
- dual 70mm 12V ball bearing fans running on 5V
- magnet fan attachment for easy dust cleaning
- dual 50mm case cutouts for increased air flow

1654988291493.png


20220611_225321560_iOS.jpg


The reason I did not donate this router, heavily modified. It also has both radio ICs reflowed and two VRMs replaced.
 
Last edited:
Other than that, I doesn't look like such a terrible router to me.

It's excellent actually, when it works. Not all AC86U have issues. Many work with no issues for years. Higher failure rate doesn't mean 50% will fail. It means the chances of failure are higher compared to other models. Asus had to cover failed units under extended warranty or recall though.
 
Keep it cool and it will treat you well. I agree with @Tech9 Asus dropped the ball on this model by skimping on its cooling capacity. Copper shim mod is the preferred upgrade.

Code:
MavMAIN|>/jffs/scripts| ./tempmon.sh
        tempmon appears to be already monitoring with PID 2750
        Current 40.4C
        Current Avg 39.5C of 6335 polled temps at 3 second polling
        Logging period 12h CPUhigh 40.9C CPUlow 38.5C
        Alltime - CPUhigh 49.8C recorded Mon Mar 28 00:59:00 2022
        Alltime - CPUlow  33.6C recorded Tue Apr 12 12:59:00 2022
        Alltime - CPUavg  38.2C of last 154 recorded averages
        Monitor uptime: 77 day(s) 3 hr(s) 51 min(s) 41 sec(s)

The 49.8 is when I removed the fan/filter for cleaning
 
This router is like $50 hardware including the fancy red accents plastic. You are over excited about it. Just let it do its thing. Use it as router and skip all TrendMicro bloatware. It will keep running from firmware update to firmware update. You don't need to monitor it constantly.
 
I don't use any of the TrendMicro stuff.
It said it wanted to send my data to third party and that's a no-go. I'm not clear which feature sends what data.

Now, ever since I installed the temp monitoring script (running the vanilla version of it with all default values), the system log turned to this:
Jun 13 03:03:49 acsd: selected channel spec: 0x100a (10)
Jun 13 03:03:49 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 03:03:49 acsd: selected channel spec: 0x100a (10)
Jun 13 03:18:51 acsd: selected channel spec: 0x100a (10)
Jun 13 03:18:51 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 03:18:51 acsd: selected channel spec: 0x100a (10)
Jun 13 03:33:53 acsd: selected channel spec: 0x100a (10)
Jun 13 03:33:53 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 03:33:53 acsd: selected channel spec: 0x100a (10)
Jun 13 03:48:56 acsd: selected channel spec: 0x100a (10)
Jun 13 03:48:56 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 03:48:56 acsd: selected channel spec: 0x100a (10)
Jun 13 04:03:59 acsd: selected channel spec: 0x100b (11)
Jun 13 04:03:59 acsd: Adjusted channel spec: 0x100b (11)
Jun 13 04:03:59 acsd: selected channel spec: 0x100b (11)
Jun 13 04:03:59 acsd: acs_set_chspec: 0x100b (11) for reason APCS_CSTIMER
Jun 13 04:19:01 acsd: selected channel spec: 0x100a (10)
Jun 13 04:19:01 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 04:19:01 acsd: selected channel spec: 0x100a (10)
Jun 13 04:19:01 acsd: acs_set_chspec: 0x100a (10) for reason APCS_CSTIMER
Jun 13 04:34:03 acsd: selected channel spec: 0x1006 (6)
Jun 13 04:34:03 acsd: Adjusted channel spec: 0x1006 (6)
Jun 13 04:34:03 acsd: selected channel spec: 0x1006 (6)
Jun 13 04:34:03 acsd: acs_set_chspec: 0x1006 (6) for reason APCS_CSTIMER
Jun 13 04:49:06 acsd: selected channel spec: 0x100a (10)
Jun 13 04:49:06 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 04:49:06 acsd: selected channel spec: 0x100a (10)
Jun 13 04:49:06 acsd: acs_set_chspec: 0x100a (10) for reason APCS_CSTIMER
Jun 13 04:59:05 tempmon[19180]: Logperiod - CPUnow: 38.3C CPUavg: 39.0C CPUhigh: 42.7C CPUlow: 37.8C
Jun 13 04:59:05 tempmon[19180]: Alltime - CPUhigh: 42.7C recorded Mon Jun 13 04:59:00 2022
Jun 13 04:59:05 tempmon[19180]: Alltime - CPUlow: 37.8C recorded Sun Jun 12 15:42:44 2022
Jun 13 04:59:05 tempmon[19180]: Alltime - CPUavg: 39.1C of last 5 recorded averages
Jun 13 04:59:05 tempmon[19180]: LogPeriod: 4h PollFreq: 5s Logged/Expected: 2869/2880
Jun 13 04:59:05 tempmon[19180]: Current Monitor PID 30796 Monitor Uptime: 14 hr(s) 27 min(s) 12 sec(s)
Jun 13 05:04:08 acsd: selected channel spec: 0x100a (10)
Jun 13 05:04:08 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 05:04:08 acsd: selected channel spec: 0x100a (10)
Jun 13 05:19:10 acsd: selected channel spec: 0x100b (11)
Jun 13 05:19:10 acsd: Adjusted channel spec: 0x100b (11)
Jun 13 05:19:10 acsd: selected channel spec: 0x100b (11)
Jun 13 05:19:10 acsd: acs_set_chspec: 0x100b (11) for reason APCS_CSTIMER
Jun 13 05:34:12 acsd: selected channel spec: 0x100b (11)
Jun 13 05:34:12 acsd: Adjusted channel spec: 0x100b (11)
Jun 13 05:34:12 acsd: selected channel spec: 0x100b (11)
Jun 13 05:49:15 acsd: selected channel spec: 0x100a (10)
Jun 13 05:49:15 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 05:49:15 acsd: selected channel spec: 0x100a (10)
Jun 13 05:49:15 acsd: acs_set_chspec: 0x100a (10) for reason APCS_CSTIMER
Jun 13 06:01:00 syslog-mgr: Latest system log from 2018-05-05 08:05:05 already saved.
Jun 13 06:04:17 acsd: selected channel spec: 0x100b (11)
Jun 13 06:04:17 acsd: Adjusted channel spec: 0x100b (11)
Jun 13 06:04:17 acsd: selected channel spec: 0x100b (11)
Jun 13 06:04:17 acsd: acs_set_chspec: 0x100b (11) for reason APCS_CSTIMER
Jun 13 06:19:19 acsd: selected channel spec: 0x100a (10)
Jun 13 06:19:19 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 06:19:19 acsd: selected channel spec: 0x100a (10)
Jun 13 06:19:19 acsd: acs_set_chspec: 0x100a (10) for reason APCS_CSTIMER
Jun 13 06:34:21 acsd: selected channel spec: 0x100a (10)
Jun 13 06:34:21 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 06:34:21 acsd: selected channel spec: 0x100a (10)
Jun 13 06:49:23 acsd: selected channel spec: 0x100a (10)
Jun 13 06:49:23 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 06:49:23 acsd: selected channel spec: 0x100a (10)
Jun 13 07:04:25 acsd: selected channel spec: 0x100a (10)
Jun 13 07:04:25 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 07:04:25 acsd: selected channel spec: 0x100a (10)
Jun 13 07:19:27 acsd: selected channel spec: 0x100a (10)
Jun 13 07:19:27 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 07:19:27 acsd: selected channel spec: 0x100a (10)
Jun 13 07:34:29 acsd: selected channel spec: 0x100a (10)
Jun 13 07:34:29 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 07:34:29 acsd: selected channel spec: 0x100a (10)
Jun 13 07:49:31 acsd: selected channel spec: 0x100a (10)
Jun 13 07:49:31 acsd: Adjusted channel spec: 0x100a (10)
Jun 13 07:49:31 acsd: selected channel spec: 0x100a (10)
It's probably a mere coincidence but there are 0 occurrences of this in the past 5 days.
Any idea what is this acsd thing?
 
Normal automatic channel selection daemon messages. You have your Wi-Fi channels set on Auto.
 
Man, after all the comments how unstable and unreliable this model is and how it will crash even without any additional devices and programs on it, I got under the impression it would fail any moment now.

Every morning I see it's still on and all the scripts on the attached storage are running fine, I say to myself: good, I don't have to start the day with recovery. Which is crazy - my previous TP-Link router with Optware packages and scripts and a database on a USB pen-drive had uptime of >1200 days before I switched it off to replace it with this one. It was so stable I forgot it was there.
 
Man, after all the comments how unstable and unreliable this model is and how it will crash even without any additional devices and programs on it, I got under the impression it would fail any moment now.
Apart from the "nvram get" quirk and the lack of thought put into the heatsink situation, the AC86U has been surprisingly stable, and I've enjoyed it these past few years. I don't go to bed thinking tomorrow might be the day that it needs to be restored. It's resilient and keeps on trucking. The more you bolt on and try to overload it beyond its capabilities - sure, you're going to mess with its stability. You have to remember this is not a linux server running on its own dedicated host. It's consumer-based off-the-shelf wifi router hardware that we're pushing to its max with added capabilities here. Just try to say realistic, and it will treat you well.
 

Similar threads

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top